@grackle-ai/web 0.137.0 → 0.137.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.
- package/dist/assets/{KnowledgePage-DJkY_8wG.js → KnowledgePage-DdAVRa9w.js} +2 -2
- package/dist/assets/{KnowledgePage-DJkY_8wG.js.map → KnowledgePage-DdAVRa9w.js.map} +1 -1
- package/dist/assets/{SessionsListPage-ujDYORxL.js → SessionsListPage-Bvs_Ji6a.js} +2 -2
- package/dist/assets/{SessionsListPage-ujDYORxL.js.map → SessionsListPage-Bvs_Ji6a.js.map} +1 -1
- package/dist/assets/index-CuzTpEm4.js +761 -0
- package/dist/assets/index-CuzTpEm4.js.map +1 -0
- package/dist/assets/{index-DenpGfzN.css → index-DVHre9_W.css} +1 -1
- package/dist/index.html +2 -2
- package/package.json +3 -3
- package/dist/assets/index-B3qnEIHK.js +0 -761
- package/dist/assets/index-B3qnEIHK.js.map +0 -1
|
@@ -1,761 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/McpAppWidget-D-BOXq5b.js","assets/dagview-B70jDsRo.js","assets/grpc-atodrdN_.js","assets/KnowledgePage-DJkY_8wG.js","assets/markdown-CPoGw-1N.js","assets/KnowledgePage-CcVVrk7r.css","assets/SessionsListPage-ujDYORxL.js","assets/SessionsListPage-DXffE_Gw.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as V2,a as q2,b as y,j as a,d as dd,H as Bo,P as Lo,i as L_,B as z_,c as $_,C as H_,M as P_,e as G2,f as Ic,h as F2,k as K2}from"./dagview-B70jDsRo.js";import{c as Z2,a as Sd,G as Y2,b as J2,d as W2,e as X2,p as Q2,f as ej,g as tj,h as nj,i as sj,M as aj,D as U_,A as V_,W as ij,O as oj,j as rj,C as Bs,k as Sm,l as q_,w as lj,t as cj,m as Oc,n as dj,R as Bc,S as gy}from"./grpc-atodrdN_.js";import{v as uj,r as fj,t as Lc,i as pj,f as mj,M as jm,a as Tm}from"./markdown-CPoGw-1N.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 Jf={exports:{}},zr={},Wf={exports:{}},Xf={};/**
|
|
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 vy;function hj(){return vy||(vy=1,(function(t){function s(H,O){var q=H.length;H.push(O);e:for(;0<q;){var ge=q-1>>>1,se=H[ge];if(0<c(se,O))H[ge]=O,H[q]=se,q=ge;else break e}}function o(H){return H.length===0?null:H[0]}function r(H){if(H.length===0)return null;var O=H[0],q=H.pop();if(q!==O){H[0]=q;e:for(var ge=0,se=H.length,ce=se>>>1;ge<ce;){var me=2*(ge+1)-1,xe=H[me],De=me+1,ot=H[De];if(0>c(xe,q))De<se&&0>c(ot,xe)?(H[ge]=ot,H[De]=q,ge=De):(H[ge]=xe,H[me]=q,ge=me);else if(De<se&&0>c(ot,q))H[ge]=ot,H[De]=q,ge=De;else break e}}return O}function c(H,O){var q=H.sortIndex-O.sortIndex;return q!==0?q:H.id-O.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,b=null,_=3,k=!1,S=!1,j=!1,T=!1,N=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;function A(H){for(var O=o(g);O!==null;){if(O.callback===null)r(g);else if(O.startTime<=H)r(g),O.sortIndex=O.expirationTime,s(m,O);else break;O=o(g)}}function E(H){if(j=!1,A(H),!S)if(o(m)!==null)S=!0,R||(R=!0,X());else{var O=o(g);O!==null&&ne(E,O.startTime-H)}}var R=!1,B=-1,M=5,$=-1;function Y(){return T?!0:!(t.unstable_now()-$<M)}function U(){if(T=!1,R){var H=t.unstable_now();$=H;var O=!0;try{e:{S=!1,j&&(j=!1,C(B),B=-1),k=!0;var q=_;try{t:{for(A(H),b=o(m);b!==null&&!(b.expirationTime>H&&Y());){var ge=b.callback;if(typeof ge=="function"){b.callback=null,_=b.priorityLevel;var se=ge(b.expirationTime<=H);if(H=t.unstable_now(),typeof se=="function"){b.callback=se,A(H),O=!0;break t}b===o(m)&&r(m),A(H)}else r(m);b=o(m)}if(b!==null)O=!0;else{var ce=o(g);ce!==null&&ne(E,ce.startTime-H),O=!1}}break e}finally{b=null,_=q,k=!1}O=void 0}}finally{O?X():R=!1}}}var X;if(typeof D=="function")X=function(){D(U)};else if(typeof MessageChannel<"u"){var te=new MessageChannel,G=te.port2;te.port1.onmessage=U,X=function(){G.postMessage(null)}}else X=function(){N(U,0)};function ne(H,O){B=N(function(){H(t.unstable_now())},O)}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(H){H.callback=null},t.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):M=0<H?Math.floor(1e3/H):5},t.unstable_getCurrentPriorityLevel=function(){return _},t.unstable_next=function(H){switch(_){case 1:case 2:case 3:var O=3;break;default:O=_}var q=_;_=O;try{return H()}finally{_=q}},t.unstable_requestPaint=function(){T=!0},t.unstable_runWithPriority=function(H,O){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var q=_;_=H;try{return O()}finally{_=q}},t.unstable_scheduleCallback=function(H,O,q){var ge=t.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0<q?ge+q:ge):q=ge,H){case 1:var se=-1;break;case 2:se=250;break;case 5:se=1073741823;break;case 4:se=1e4;break;default:se=5e3}return se=q+se,H={id:v++,callback:O,priorityLevel:H,startTime:q,expirationTime:se,sortIndex:-1},q>ge?(H.sortIndex=q,s(g,H),o(m)===null&&H===o(g)&&(j?(C(B),B=-1):j=!0,ne(E,q-ge))):(H.sortIndex=se,s(m,H),S||k||(S=!0,R||(R=!0,X()))),H},t.unstable_shouldYield=Y,t.unstable_wrapCallback=function(H){var O=_;return function(){var q=_;_=O;try{return H.apply(this,arguments)}finally{_=q}}}})(Xf)),Xf}var yy;function gj(){return yy||(yy=1,Wf.exports=hj()),Wf.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 by;function vj(){if(by)return zr;by=1;var t=gj(),s=V2(),o=q2();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 x=!1,w=f.child;w;){if(w===i){x=!0,i=f,l=h;break}if(w===l){x=!0,l=f,i=h;break}w=w.sibling}if(!x){for(w=h.child;w;){if(w===i){x=!0,i=h,l=f;break}if(w===l){x=!0,l=h,i=f;break}w=w.sibling}if(!x)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 b=Object.assign,_=Symbol.for("react.element"),k=Symbol.for("react.transitional.element"),S=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),T=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),D=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),B=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),$=Symbol.for("react.activity"),Y=Symbol.for("react.memo_cache_sentinel"),U=Symbol.iterator;function X(e){return e===null||typeof e!="object"?null:(e=U&&e[U]||e["@@iterator"],typeof e=="function"?e:null)}var te=Symbol.for("react.client.reference");function G(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===te?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case N:return"Profiler";case T:return"StrictMode";case E:return"Suspense";case R:return"SuspenseList";case $:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case S:return"Portal";case D:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case A:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case B:return n=e.displayName||null,n!==null?n:G(e.type)||"Memo";case M:n=e._payload,e=e._init;try{return G(e(n))}catch{}}return null}var ne=Array.isArray,H=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q={pending:!1,data:null,method:null,action:null},ge=[],se=-1;function ce(e){return{current:e}}function me(e){0>se||(e.current=ge[se],ge[se]=null,se--)}function xe(e,n){se++,ge[se]=e.current,e.current=n}var De=ce(null),ot=ce(null),bt=ce(null),lt=ce(null);function Pe(e,n){switch(xe(bt,n),xe(ot,e),xe(De,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?$0(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=$0(n),e=H0(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}me(De),xe(De,e)}function ke(){me(De),me(ot),me(bt)}function ct(e){e.memoizedState!==null&&xe(lt,e);var n=De.current,i=H0(n,e.type);n!==i&&(xe(ot,e),xe(De,i))}function ue(e){ot.current===e&&(me(De),me(ot)),lt.current===e&&(me(lt),Ir._currentValue=q)}var Ie,ee;function nt(e){if(Ie===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);Ie=n&&n[1]||"",ee=-1<i.stack.indexOf(`
|
|
19
|
-
at`)?" (<anonymous>)":-1<i.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
20
|
-
`+Ie+e+ee}var le=!1;function ve(e,n){if(!e||le)return"";le=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(n){var oe=function(){throw Error()};if(Object.defineProperty(oe.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(oe,[])}catch(J){var Z=J}Reflect.construct(e,[],oe)}else{try{oe.call()}catch(J){Z=J}e.call(oe.prototype)}}else{try{throw Error()}catch(J){Z=J}(oe=e())&&typeof oe.catch=="function"&&oe.catch(function(){})}}catch(J){if(J&&Z&&typeof J.stack=="string")return[J.stack,Z.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(),x=h[0],w=h[1];if(x&&w){var I=x.split(`
|
|
21
|
-
`),K=w.split(`
|
|
22
|
-
`);for(f=l=0;l<I.length&&!I[l].includes("DetermineComponentFrameRoot");)l++;for(;f<K.length&&!K[f].includes("DetermineComponentFrameRoot");)f++;if(l===I.length||f===K.length)for(l=I.length-1,f=K.length-1;1<=l&&0<=f&&I[l]!==K[f];)f--;for(;1<=l&&0<=f;l--,f--)if(I[l]!==K[f]){if(l!==1||f!==1)do if(l--,f--,0>f||I[l]!==K[f]){var Q=`
|
|
23
|
-
`+I[l].replace(" at new "," at ");return e.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",e.displayName)),Q}while(1<=l&&0<=f);break}}}finally{le=!1,Error.prepareStackTrace=i}return(i=e?e.displayName||e.name:"")?nt(i):""}function et(e,n){switch(e.tag){case 26:case 27:case 5:return nt(e.type);case 16:return nt("Lazy");case 13:return e.child!==n&&n!==null?nt("Suspense Fallback"):nt("Suspense");case 19:return nt("SuspenseList");case 0:case 15:return ve(e.type,!1);case 11:return ve(e.type.render,!1);case 1:return ve(e.type,!0);case 31:return nt("Activity");default:return""}}function on(e){try{var n="",i=null;do n+=et(e,i),i=e,e=e.return;while(e);return n}catch(l){return`
|
|
24
|
-
Error generating stack: `+l.message+`
|
|
25
|
-
`+l.stack}}var xs=Object.prototype.hasOwnProperty,ds=t.unstable_scheduleCallback,zs=t.unstable_cancelCallback,ha=t.unstable_shouldYield,Bi=t.unstable_requestPaint,Xt=t.unstable_now,ei=t.unstable_getCurrentPriorityLevel,ti=t.unstable_ImmediatePriority,ga=t.unstable_UserBlockingPriority,$s=t.unstable_NormalPriority,ks=t.unstable_LowPriority,va=t.unstable_IdlePriority,we=t.log,Ve=t.unstable_setDisableYieldValue,Qt=null,Ct=null;function vn(e){if(typeof we=="function"&&Ve(e),Ct&&typeof Ct.setStrictMode=="function")try{Ct.setStrictMode(Qt,e)}catch{}}var en=Math.clz32?Math.clz32:$i,Li=Math.log,zi=Math.LN2;function $i(e){return e>>>=0,e===0?32:31-(Li(e)/zi|0)|0}var ya=256,V=262144,ie=4194304;function de(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 pe(e,n,i){var l=e.pendingLanes;if(l===0)return 0;var f=0,h=e.suspendedLanes,x=e.pingedLanes;e=e.warmLanes;var w=l&134217727;return w!==0?(l=w&~h,l!==0?f=de(l):(x&=w,x!==0?f=de(x):i||(i=w&~e,i!==0&&(f=de(i))))):(w=l&~h,w!==0?f=de(w):x!==0?f=de(x):i||(i=l&~e,i!==0&&(f=de(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 ye(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function tt(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 je(){var e=ie;return ie<<=1,(ie&62914560)===0&&(ie=4194304),e}function Le(e){for(var n=[],i=0;31>i;i++)n.push(e);return n}function Ue(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Mt(e,n,i,l,f,h){var x=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 w=e.entanglements,I=e.expirationTimes,K=e.hiddenUpdates;for(i=x&~i;0<i;){var Q=31-en(i),oe=1<<Q;w[Q]=0,I[Q]=-1;var Z=K[Q];if(Z!==null)for(K[Q]=null,Q=0;Q<Z.length;Q++){var J=Z[Q];J!==null&&(J.lane&=-536870913)}i&=~oe}l!==0&&qe(e,l,0),h!==0&&f===0&&e.tag!==0&&(e.suspendedLanes|=h&~(x&~n))}function qe(e,n,i){e.pendingLanes|=n,e.suspendedLanes&=~n;var l=31-en(n);e.entangledLanes|=n,e.entanglements[l]=e.entanglements[l]|1073741824|i&261930}function rn(e,n){var i=e.entangledLanes|=n;for(e=e.entanglements;i;){var l=31-en(i),f=1<<l;f&n|e[l]&n&&(e[l]|=n),i&=~f}}function Cn(e,n){var i=n&-n;return i=(i&42)!==0?1:_t(i),(i&(e.suspendedLanes|n))!==0?0:i}function _t(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 Ss(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Hi(){var e=O.p;return e!==0?e:(e=window.event,e===void 0?32:cy(e.type))}function js(e,n){var i=O.p;try{return O.p=e,n()}finally{O.p=i}}var Ts=Math.random().toString(36).slice(2),ln="__reactFiber$"+Ts,xn="__reactProps$"+Ts,Pi="__reactContainer$"+Ts,Hd="__reactEvents$"+Ts,Mk="__reactListeners$"+Ts,Rk="__reactHandles$"+Ts,Nh="__reactResources$"+Ts,Yo="__reactMarker$"+Ts;function Pd(e){delete e[ln],delete e[xn],delete e[Hd],delete e[Mk],delete e[Rk]}function Ui(e){var n=e[ln];if(n)return n;for(var i=e.parentNode;i;){if(n=i[Pi]||i[ln]){if(i=n.alternate,n.child!==null||i!==null&&i.child!==null)for(e=K0(e);e!==null;){if(i=e[ln])return i;e=K0(e)}return n}e=i,i=e.parentNode}return null}function Vi(e){if(e=e[ln]||e[Pi]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function Jo(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(r(33))}function qi(e){var n=e[Nh];return n||(n=e[Nh]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function tn(e){e[Yo]=!0}var wh=new Set,Ch={};function ni(e,n){Gi(e,n),Gi(e+"Capture",n)}function Gi(e,n){for(Ch[e]=n,e=0;e<n.length;e++)wh.add(n[e])}var Ik=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]*$"),Eh={},Ah={};function Ok(e){return xs.call(Ah,e)?!0:xs.call(Eh,e)?!1:Ik.test(e)?Ah[e]=!0:(Eh[e]=!0,!1)}function kl(e,n,i){if(Ok(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 Sl(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 Un(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dh(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(x){i=""+x,h.call(this,x)}}),Object.defineProperty(e,n,{enumerable:l.enumerable}),{getValue:function(){return i},setValue:function(x){i=""+x},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Ud(e){if(!e._valueTracker){var n=Dh(e)?"checked":"value";e._valueTracker=Bk(e,n,""+e[n])}}function Mh(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var i=n.getValue(),l="";return e&&(l=Dh(e)?e.checked?"true":"false":e.value),e=l,e!==i?(n.setValue(e),!0):!1}function jl(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 Lk=/[\n"\\]/g;function Vn(e){return e.replace(Lk,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Vd(e,n,i,l,f,h,x,w){e.name="",x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"?e.type=x:e.removeAttribute("type"),n!=null?x==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Un(n)):e.value!==""+Un(n)&&(e.value=""+Un(n)):x!=="submit"&&x!=="reset"||e.removeAttribute("value"),n!=null?qd(e,x,Un(n)):i!=null?qd(e,x,Un(i)):l!=null&&e.removeAttribute("value"),f==null&&h!=null&&(e.defaultChecked=!!h),f!=null&&(e.checked=f&&typeof f!="function"&&typeof f!="symbol"),w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"?e.name=""+Un(w):e.removeAttribute("name")}function Rh(e,n,i,l,f,h,x,w){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)){Ud(e);return}i=i!=null?""+Un(i):"",n=n!=null?""+Un(n):i,w||n===e.value||(e.value=n),e.defaultValue=n}l=l??f,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=w?e.checked:!!l,e.defaultChecked=!!l,x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"&&(e.name=x),Ud(e)}function qd(e,n,i){n==="number"&&jl(e.ownerDocument)===e||e.defaultValue===""+i||(e.defaultValue=""+i)}function Fi(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=""+Un(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 Ih(e,n,i){if(n!=null&&(n=""+Un(n),n!==e.value&&(e.value=n),i==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=i!=null?""+Un(i):""}function Oh(e,n,i,l){if(n==null){if(l!=null){if(i!=null)throw Error(r(92));if(ne(l)){if(1<l.length)throw Error(r(93));l=l[0]}i=l}i==null&&(i=""),n=i}i=Un(n),e.defaultValue=i,l=e.textContent,l===i&&l!==""&&l!==null&&(e.value=l),Ud(e)}function Ki(e,n){if(n){var i=e.firstChild;if(i&&i===e.lastChild&&i.nodeType===3){i.nodeValue=n;return}}e.textContent=n}var zk=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 Bh(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||zk.has(n)?n==="float"?e.cssFloat=i:e[n]=(""+i).trim():e[n]=i+"px"}function Lh(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&&Bh(e,f,l)}else for(var h in n)n.hasOwnProperty(h)&&Bh(e,h,n[h])}function Gd(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 $k=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"]]),Hk=/^[\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 Tl(e){return Hk.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function Ps(){}var Fd=null;function Kd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Zi=null,Yi=null;function zh(e){var n=Vi(e);if(n&&(e=n.stateNode)){var i=e[xn]||null;e:switch(e=n.stateNode,n.type){case"input":if(Vd(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="'+Vn(""+n)+'"][type="radio"]'),n=0;n<i.length;n++){var l=i[n];if(l!==e&&l.form===e.form){var f=l[xn]||null;if(!f)throw Error(r(90));Vd(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&&Mh(l)}break e;case"textarea":Ih(e,i.value,i.defaultValue);break e;case"select":n=i.value,n!=null&&Fi(e,!!i.multiple,n,!1)}}}var Zd=!1;function $h(e,n,i){if(Zd)return e(n,i);Zd=!0;try{var l=e(n);return l}finally{if(Zd=!1,(Zi!==null||Yi!==null)&&(fc(),Zi&&(n=Zi,e=Yi,Yi=Zi=null,zh(n),e)))for(n=0;n<e.length;n++)zh(e[n])}}function Wo(e,n){var i=e.stateNode;if(i===null)return null;var l=i[xn]||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"),Yd=!1;if(Us)try{var Xo={};Object.defineProperty(Xo,"passive",{get:function(){Yd=!0}}),window.addEventListener("test",Xo,Xo),window.removeEventListener("test",Xo,Xo)}catch{Yd=!1}var ba=null,Jd=null,Nl=null;function Hh(){if(Nl)return Nl;var e,n=Jd,i=n.length,l,f="value"in ba?ba.value:ba.textContent,h=f.length;for(e=0;e<i&&n[e]===f[e];e++);var x=i-e;for(l=1;l<=x&&n[i-l]===f[h-l];l++);return Nl=f.slice(e,1<l?1-l:void 0)}function wl(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 Cl(){return!0}function Ph(){return!1}function kn(e){function n(i,l,f,h,x){this._reactName=i,this._targetInst=f,this.type=l,this.nativeEvent=h,this.target=x,this.currentTarget=null;for(var w in e)e.hasOwnProperty(w)&&(i=e[w],this[w]=i?i(h):h[w]);return this.isDefaultPrevented=(h.defaultPrevented!=null?h.defaultPrevented:h.returnValue===!1)?Cl:Ph,this.isPropagationStopped=Ph,this}return b(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=Cl)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=Cl)},persist:function(){},isPersistent:Cl}),n}var si={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},El=kn(si),Qo=b({},si,{view:0,detail:0}),Pk=kn(Qo),Wd,Xd,er,Al=b({},Qo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:eu,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!==er&&(er&&e.type==="mousemove"?(Wd=e.screenX-er.screenX,Xd=e.screenY-er.screenY):Xd=Wd=0,er=e),Wd)},movementY:function(e){return"movementY"in e?e.movementY:Xd}}),Uh=kn(Al),Uk=b({},Al,{dataTransfer:0}),Vk=kn(Uk),qk=b({},Qo,{relatedTarget:0}),Qd=kn(qk),Gk=b({},si,{animationName:0,elapsedTime:0,pseudoElement:0}),Fk=kn(Gk),Kk=b({},si,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Zk=kn(Kk),Yk=b({},si,{data:0}),Vh=kn(Yk),Jk={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Wk={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"},Xk={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Qk(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Xk[e])?!!n[e]:!1}function eu(){return Qk}var eS=b({},Qo,{key:function(e){if(e.key){var n=Jk[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=wl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Wk[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:eu,charCode:function(e){return e.type==="keypress"?wl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?wl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),tS=kn(eS),nS=b({},Al,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),qh=kn(nS),sS=b({},Qo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:eu}),aS=kn(sS),iS=b({},si,{propertyName:0,elapsedTime:0,pseudoElement:0}),oS=kn(iS),rS=b({},Al,{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}),lS=kn(rS),cS=b({},si,{newState:0,oldState:0}),dS=kn(cS),uS=[9,13,27,32],tu=Us&&"CompositionEvent"in window,tr=null;Us&&"documentMode"in document&&(tr=document.documentMode);var fS=Us&&"TextEvent"in window&&!tr,Gh=Us&&(!tu||tr&&8<tr&&11>=tr),Fh=" ",Kh=!1;function Zh(e,n){switch(e){case"keyup":return uS.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Yh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ji=!1;function pS(e,n){switch(e){case"compositionend":return Yh(n);case"keypress":return n.which!==32?null:(Kh=!0,Fh);case"textInput":return e=n.data,e===Fh&&Kh?null:e;default:return null}}function mS(e,n){if(Ji)return e==="compositionend"||!tu&&Zh(e,n)?(e=Hh(),Nl=Jd=ba=null,Ji=!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 Gh&&n.locale!=="ko"?null:n.data;default:return null}}var hS={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 Jh(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!hS[e.type]:n==="textarea"}function Wh(e,n,i,l){Zi?Yi?Yi.push(l):Yi=[l]:Zi=l,n=bc(n,"onChange"),0<n.length&&(i=new El("onChange","change",null,i,l),e.push({event:i,listeners:n}))}var nr=null,sr=null;function gS(e){R0(e,0)}function Dl(e){var n=Jo(e);if(Mh(n))return e}function Xh(e,n){if(e==="change")return n}var Qh=!1;if(Us){var nu;if(Us){var su="oninput"in document;if(!su){var eg=document.createElement("div");eg.setAttribute("oninput","return;"),su=typeof eg.oninput=="function"}nu=su}else nu=!1;Qh=nu&&(!document.documentMode||9<document.documentMode)}function tg(){nr&&(nr.detachEvent("onpropertychange",ng),sr=nr=null)}function ng(e){if(e.propertyName==="value"&&Dl(sr)){var n=[];Wh(n,sr,e,Kd(e)),$h(gS,n)}}function vS(e,n,i){e==="focusin"?(tg(),nr=n,sr=i,nr.attachEvent("onpropertychange",ng)):e==="focusout"&&tg()}function yS(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Dl(sr)}function bS(e,n){if(e==="click")return Dl(n)}function _S(e,n){if(e==="input"||e==="change")return Dl(n)}function xS(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var En=typeof Object.is=="function"?Object.is:xS;function ar(e,n){if(En(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(!xs.call(n,f)||!En(e[f],n[f]))return!1}return!0}function sg(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ag(e,n){var i=sg(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=sg(i)}}function ig(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?ig(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function og(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=jl(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=jl(e.document)}return n}function au(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 kS=Us&&"documentMode"in document&&11>=document.documentMode,Wi=null,iu=null,ir=null,ou=!1;function rg(e,n,i){var l=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;ou||Wi==null||Wi!==jl(l)||(l=Wi,"selectionStart"in l&&au(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}),ir&&ar(ir,l)||(ir=l,l=bc(iu,"onSelect"),0<l.length&&(n=new El("onSelect","select",null,n,i),e.push({event:n,listeners:l}),n.target=Wi)))}function ai(e,n){var i={};return i[e.toLowerCase()]=n.toLowerCase(),i["Webkit"+e]="webkit"+n,i["Moz"+e]="moz"+n,i}var Xi={animationend:ai("Animation","AnimationEnd"),animationiteration:ai("Animation","AnimationIteration"),animationstart:ai("Animation","AnimationStart"),transitionrun:ai("Transition","TransitionRun"),transitionstart:ai("Transition","TransitionStart"),transitioncancel:ai("Transition","TransitionCancel"),transitionend:ai("Transition","TransitionEnd")},ru={},lg={};Us&&(lg=document.createElement("div").style,"AnimationEvent"in window||(delete Xi.animationend.animation,delete Xi.animationiteration.animation,delete Xi.animationstart.animation),"TransitionEvent"in window||delete Xi.transitionend.transition);function ii(e){if(ru[e])return ru[e];if(!Xi[e])return e;var n=Xi[e],i;for(i in n)if(n.hasOwnProperty(i)&&i in lg)return ru[e]=n[i];return e}var cg=ii("animationend"),dg=ii("animationiteration"),ug=ii("animationstart"),SS=ii("transitionrun"),jS=ii("transitionstart"),TS=ii("transitioncancel"),fg=ii("transitionend"),pg=new Map,lu="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(" ");lu.push("scrollEnd");function us(e,n){pg.set(e,n),ni(n,[e])}var Ml=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)},qn=[],Qi=0,cu=0;function Rl(){for(var e=Qi,n=cu=Qi=0;n<e;){var i=qn[n];qn[n++]=null;var l=qn[n];qn[n++]=null;var f=qn[n];qn[n++]=null;var h=qn[n];if(qn[n++]=null,l!==null&&f!==null){var x=l.pending;x===null?f.next=f:(f.next=x.next,x.next=f),l.pending=f}h!==0&&mg(i,f,h)}}function Il(e,n,i,l){qn[Qi++]=e,qn[Qi++]=n,qn[Qi++]=i,qn[Qi++]=l,cu|=l,e.lanes|=l,e=e.alternate,e!==null&&(e.lanes|=l)}function du(e,n,i,l){return Il(e,n,i,l),Ol(e)}function oi(e,n){return Il(e,null,null,n),Ol(e)}function mg(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-en(i),e=h.hiddenUpdates,l=e[f],l===null?e[f]=[n]:l.push(n),n.lane=i|536870912),h):null}function Ol(e){if(50<wr)throw wr=0,_f=null,Error(r(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var eo={};function NS(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 An(e,n,i,l){return new NS(e,n,i,l)}function uu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Vs(e,n){var i=e.alternate;return i===null?(i=An(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 hg(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 Bl(e,n,i,l,f,h){var x=0;if(l=e,typeof e=="function")uu(e)&&(x=1);else if(typeof e=="string")x=D2(e,i,De.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case $:return e=An(31,i,n,f),e.elementType=$,e.lanes=h,e;case j:return ri(i.children,f,h,n);case T:x=8,f|=24;break;case N:return e=An(12,i,n,f|2),e.elementType=N,e.lanes=h,e;case E:return e=An(13,i,n,f),e.elementType=E,e.lanes=h,e;case R:return e=An(19,i,n,f),e.elementType=R,e.lanes=h,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case D:x=10;break e;case C:x=9;break e;case A:x=11;break e;case B:x=14;break e;case M:x=16,l=null;break e}x=29,i=Error(r(130,e===null?"null":typeof e,"")),l=null}return n=An(x,i,n,f),n.elementType=e,n.type=l,n.lanes=h,n}function ri(e,n,i,l){return e=An(7,e,l,n),e.lanes=i,e}function fu(e,n,i){return e=An(6,e,null,n),e.lanes=i,e}function gg(e){var n=An(18,null,null,0);return n.stateNode=e,n}function pu(e,n,i){return n=An(4,e.children!==null?e.children:[],e.key,n),n.lanes=i,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var vg=new WeakMap;function Gn(e,n){if(typeof e=="object"&&e!==null){var i=vg.get(e);return i!==void 0?i:(n={value:e,source:n,stack:on(n)},vg.set(e,n),n)}return{value:e,source:n,stack:on(n)}}var to=[],no=0,Ll=null,or=0,Fn=[],Kn=0,_a=null,Ns=1,ws="";function qs(e,n){to[no++]=or,to[no++]=Ll,Ll=e,or=n}function yg(e,n,i){Fn[Kn++]=Ns,Fn[Kn++]=ws,Fn[Kn++]=_a,_a=e;var l=Ns;e=ws;var f=32-en(l)-1;l&=~(1<<f),i+=1;var h=32-en(n)+f;if(30<h){var x=f-f%5;h=(l&(1<<x)-1).toString(32),l>>=x,f-=x,Ns=1<<32-en(n)+f|i<<f|l,ws=h+e}else Ns=1<<h|i<<f|l,ws=e}function mu(e){e.return!==null&&(qs(e,1),yg(e,1,0))}function hu(e){for(;e===Ll;)Ll=to[--no],to[no]=null,or=to[--no],to[no]=null;for(;e===_a;)_a=Fn[--Kn],Fn[Kn]=null,ws=Fn[--Kn],Fn[Kn]=null,Ns=Fn[--Kn],Fn[Kn]=null}function bg(e,n){Fn[Kn++]=Ns,Fn[Kn++]=ws,Fn[Kn++]=_a,Ns=n.id,ws=n.overflow,_a=e}var cn=null,kt=null,Je=!1,xa=null,Zn=!1,gu=Error(r(519));function ka(e){var n=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw rr(Gn(n,e)),gu}function _g(e){var n=e.stateNode,i=e.type,l=e.memoizedProps;switch(n[ln]=e,n[xn]=l,i){case"dialog":Fe("cancel",n),Fe("close",n);break;case"iframe":case"object":case"embed":Fe("load",n);break;case"video":case"audio":for(i=0;i<Er.length;i++)Fe(Er[i],n);break;case"source":Fe("error",n);break;case"img":case"image":case"link":Fe("error",n),Fe("load",n);break;case"details":Fe("toggle",n);break;case"input":Fe("invalid",n),Rh(n,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":Fe("invalid",n);break;case"textarea":Fe("invalid",n),Oh(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||L0(n.textContent,i)?(l.popover!=null&&(Fe("beforetoggle",n),Fe("toggle",n)),l.onScroll!=null&&Fe("scroll",n),l.onScrollEnd!=null&&Fe("scrollend",n),l.onClick!=null&&(n.onclick=Ps),n=!0):n=!1,n||ka(e,!0)}function xg(e){for(cn=e.return;cn;)switch(cn.tag){case 5:case 31:case 13:Zn=!1;return;case 27:case 3:Zn=!0;return;default:cn=cn.return}}function so(e){if(e!==cn)return!1;if(!Je)return xg(e),Je=!0,!1;var n=e.tag,i;if((i=n!==3&&n!==27)&&((i=n===5)&&(i=e.type,i=!(i!=="form"&&i!=="button")||Of(e.type,e.memoizedProps)),i=!i),i&&kt&&ka(e),xg(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(317));kt=F0(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(317));kt=F0(e)}else n===27?(n=kt,Ba(e.type)?(e=Hf,Hf=null,kt=e):kt=n):kt=cn?Jn(e.stateNode.nextSibling):null;return!0}function li(){kt=cn=null,Je=!1}function vu(){var e=xa;return e!==null&&(Nn===null?Nn=e:Nn.push.apply(Nn,e),xa=null),e}function rr(e){xa===null?xa=[e]:xa.push(e)}var yu=ce(null),ci=null,Gs=null;function Sa(e,n,i){xe(yu,n._currentValue),n._currentValue=i}function Fs(e){e._currentValue=yu.current,me(yu)}function bu(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 _u(e,n,i,l){var f=e.child;for(f!==null&&(f.return=e);f!==null;){var h=f.dependencies;if(h!==null){var x=f.child;h=h.firstContext;e:for(;h!==null;){var w=h;h=f;for(var I=0;I<n.length;I++)if(w.context===n[I]){h.lanes|=i,w=h.alternate,w!==null&&(w.lanes|=i),bu(h.return,i,e),l||(x=null);break e}h=w.next}}else if(f.tag===18){if(x=f.return,x===null)throw Error(r(341));x.lanes|=i,h=x.alternate,h!==null&&(h.lanes|=i),bu(x,i,e),x=null}else x=f.child;if(x!==null)x.return=f;else for(x=f;x!==null;){if(x===e){x=null;break}if(f=x.sibling,f!==null){f.return=x.return,x=f;break}x=x.return}f=x}}function ao(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 x=f.alternate;if(x===null)throw Error(r(387));if(x=x.memoizedProps,x!==null){var w=f.type;En(f.pendingProps.value,x.value)||(e!==null?e.push(w):e=[w])}}else if(f===lt.current){if(x=f.alternate,x===null)throw Error(r(387));x.memoizedState.memoizedState!==f.memoizedState.memoizedState&&(e!==null?e.push(Ir):e=[Ir])}f=f.return}e!==null&&_u(n,e,i,l),n.flags|=262144}function zl(e){for(e=e.firstContext;e!==null;){if(!En(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function di(e){ci=e,Gs=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function dn(e){return kg(ci,e)}function $l(e,n){return ci===null&&di(e),kg(e,n)}function kg(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 wS=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()})}},CS=t.unstable_scheduleCallback,ES=t.unstable_NormalPriority,Vt={$$typeof:D,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function xu(){return{controller:new wS,data:new Map,refCount:0}}function lr(e){e.refCount--,e.refCount===0&&CS(ES,function(){e.controller.abort()})}var cr=null,ku=0,io=0,oo=null;function AS(e,n){if(cr===null){var i=cr=[];ku=0,io=Nf(),oo={status:"pending",value:void 0,then:function(l){i.push(l)}}}return ku++,n.then(Sg,Sg),n}function Sg(){if(--ku===0&&cr!==null){oo!==null&&(oo.status="fulfilled");var e=cr;cr=null,io=0,oo=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function DS(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 jg=H.S;H.S=function(e,n){r0=Xt(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&AS(e,n),jg!==null&&jg(e,n)};var ui=ce(null);function Su(){var e=ui.current;return e!==null?e:yt.pooledCache}function Hl(e,n){n===null?xe(ui,ui.current):xe(ui,n.pool)}function Tg(){var e=Su();return e===null?null:{parent:Vt._currentValue,pool:e}}var ro=Error(r(460)),ju=Error(r(474)),Pl=Error(r(542)),Ul={then:function(){}};function Ng(e){return e=e.status,e==="fulfilled"||e==="rejected"}function wg(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,Eg(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,Eg(e),e}throw pi=n,ro}}function fi(e){try{var n=e._init;return n(e._payload)}catch(i){throw i!==null&&typeof i=="object"&&typeof i.then=="function"?(pi=i,ro):i}}var pi=null;function Cg(){if(pi===null)throw Error(r(459));var e=pi;return pi=null,e}function Eg(e){if(e===ro||e===Pl)throw Error(r(483))}var lo=null,dr=0;function Vl(e){var n=dr;return dr+=1,lo===null&&(lo=[]),wg(lo,e,n)}function ur(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function ql(e,n){throw n.$$typeof===_?Error(r(525)):(e=Object.prototype.toString.call(n),Error(r(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function Ag(e){function n(P,z){if(e){var F=P.deletions;F===null?(P.deletions=[z],P.flags|=16):F.push(z)}}function i(P,z){if(!e)return null;for(;z!==null;)n(P,z),z=z.sibling;return null}function l(P){for(var z=new Map;P!==null;)P.key!==null?z.set(P.key,P):z.set(P.index,P),P=P.sibling;return z}function f(P,z){return P=Vs(P,z),P.index=0,P.sibling=null,P}function h(P,z,F){return P.index=F,e?(F=P.alternate,F!==null?(F=F.index,F<z?(P.flags|=67108866,z):F):(P.flags|=67108866,z)):(P.flags|=1048576,z)}function x(P){return e&&P.alternate===null&&(P.flags|=67108866),P}function w(P,z,F,ae){return z===null||z.tag!==6?(z=fu(F,P.mode,ae),z.return=P,z):(z=f(z,F),z.return=P,z)}function I(P,z,F,ae){var Ne=F.type;return Ne===j?Q(P,z,F.props.children,ae,F.key):z!==null&&(z.elementType===Ne||typeof Ne=="object"&&Ne!==null&&Ne.$$typeof===M&&fi(Ne)===z.type)?(z=f(z,F.props),ur(z,F),z.return=P,z):(z=Bl(F.type,F.key,F.props,null,P.mode,ae),ur(z,F),z.return=P,z)}function K(P,z,F,ae){return z===null||z.tag!==4||z.stateNode.containerInfo!==F.containerInfo||z.stateNode.implementation!==F.implementation?(z=pu(F,P.mode,ae),z.return=P,z):(z=f(z,F.children||[]),z.return=P,z)}function Q(P,z,F,ae,Ne){return z===null||z.tag!==7?(z=ri(F,P.mode,ae,Ne),z.return=P,z):(z=f(z,F),z.return=P,z)}function oe(P,z,F){if(typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint")return z=fu(""+z,P.mode,F),z.return=P,z;if(typeof z=="object"&&z!==null){switch(z.$$typeof){case k:return F=Bl(z.type,z.key,z.props,null,P.mode,F),ur(F,z),F.return=P,F;case S:return z=pu(z,P.mode,F),z.return=P,z;case M:return z=fi(z),oe(P,z,F)}if(ne(z)||X(z))return z=ri(z,P.mode,F,null),z.return=P,z;if(typeof z.then=="function")return oe(P,Vl(z),F);if(z.$$typeof===D)return oe(P,$l(P,z),F);ql(P,z)}return null}function Z(P,z,F,ae){var Ne=z!==null?z.key:null;if(typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint")return Ne!==null?null:w(P,z,""+F,ae);if(typeof F=="object"&&F!==null){switch(F.$$typeof){case k:return F.key===Ne?I(P,z,F,ae):null;case S:return F.key===Ne?K(P,z,F,ae):null;case M:return F=fi(F),Z(P,z,F,ae)}if(ne(F)||X(F))return Ne!==null?null:Q(P,z,F,ae,null);if(typeof F.then=="function")return Z(P,z,Vl(F),ae);if(F.$$typeof===D)return Z(P,z,$l(P,F),ae);ql(P,F)}return null}function J(P,z,F,ae,Ne){if(typeof ae=="string"&&ae!==""||typeof ae=="number"||typeof ae=="bigint")return P=P.get(F)||null,w(z,P,""+ae,Ne);if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case k:return P=P.get(ae.key===null?F:ae.key)||null,I(z,P,ae,Ne);case S:return P=P.get(ae.key===null?F:ae.key)||null,K(z,P,ae,Ne);case M:return ae=fi(ae),J(P,z,F,ae,Ne)}if(ne(ae)||X(ae))return P=P.get(F)||null,Q(z,P,ae,Ne,null);if(typeof ae.then=="function")return J(P,z,F,Vl(ae),Ne);if(ae.$$typeof===D)return J(P,z,F,$l(z,ae),Ne);ql(z,ae)}return null}function _e(P,z,F,ae){for(var Ne=null,st=null,Se=z,$e=z=0,Ze=null;Se!==null&&$e<F.length;$e++){Se.index>$e?(Ze=Se,Se=null):Ze=Se.sibling;var at=Z(P,Se,F[$e],ae);if(at===null){Se===null&&(Se=Ze);break}e&&Se&&at.alternate===null&&n(P,Se),z=h(at,z,$e),st===null?Ne=at:st.sibling=at,st=at,Se=Ze}if($e===F.length)return i(P,Se),Je&&qs(P,$e),Ne;if(Se===null){for(;$e<F.length;$e++)Se=oe(P,F[$e],ae),Se!==null&&(z=h(Se,z,$e),st===null?Ne=Se:st.sibling=Se,st=Se);return Je&&qs(P,$e),Ne}for(Se=l(Se);$e<F.length;$e++)Ze=J(Se,P,$e,F[$e],ae),Ze!==null&&(e&&Ze.alternate!==null&&Se.delete(Ze.key===null?$e:Ze.key),z=h(Ze,z,$e),st===null?Ne=Ze:st.sibling=Ze,st=Ze);return e&&Se.forEach(function(Pa){return n(P,Pa)}),Je&&qs(P,$e),Ne}function Ee(P,z,F,ae){if(F==null)throw Error(r(151));for(var Ne=null,st=null,Se=z,$e=z=0,Ze=null,at=F.next();Se!==null&&!at.done;$e++,at=F.next()){Se.index>$e?(Ze=Se,Se=null):Ze=Se.sibling;var Pa=Z(P,Se,at.value,ae);if(Pa===null){Se===null&&(Se=Ze);break}e&&Se&&Pa.alternate===null&&n(P,Se),z=h(Pa,z,$e),st===null?Ne=Pa:st.sibling=Pa,st=Pa,Se=Ze}if(at.done)return i(P,Se),Je&&qs(P,$e),Ne;if(Se===null){for(;!at.done;$e++,at=F.next())at=oe(P,at.value,ae),at!==null&&(z=h(at,z,$e),st===null?Ne=at:st.sibling=at,st=at);return Je&&qs(P,$e),Ne}for(Se=l(Se);!at.done;$e++,at=F.next())at=J(Se,P,$e,at.value,ae),at!==null&&(e&&at.alternate!==null&&Se.delete(at.key===null?$e:at.key),z=h(at,z,$e),st===null?Ne=at:st.sibling=at,st=at);return e&&Se.forEach(function(U2){return n(P,U2)}),Je&&qs(P,$e),Ne}function gt(P,z,F,ae){if(typeof F=="object"&&F!==null&&F.type===j&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case k:e:{for(var Ne=F.key;z!==null;){if(z.key===Ne){if(Ne=F.type,Ne===j){if(z.tag===7){i(P,z.sibling),ae=f(z,F.props.children),ae.return=P,P=ae;break e}}else if(z.elementType===Ne||typeof Ne=="object"&&Ne!==null&&Ne.$$typeof===M&&fi(Ne)===z.type){i(P,z.sibling),ae=f(z,F.props),ur(ae,F),ae.return=P,P=ae;break e}i(P,z);break}else n(P,z);z=z.sibling}F.type===j?(ae=ri(F.props.children,P.mode,ae,F.key),ae.return=P,P=ae):(ae=Bl(F.type,F.key,F.props,null,P.mode,ae),ur(ae,F),ae.return=P,P=ae)}return x(P);case S:e:{for(Ne=F.key;z!==null;){if(z.key===Ne)if(z.tag===4&&z.stateNode.containerInfo===F.containerInfo&&z.stateNode.implementation===F.implementation){i(P,z.sibling),ae=f(z,F.children||[]),ae.return=P,P=ae;break e}else{i(P,z);break}else n(P,z);z=z.sibling}ae=pu(F,P.mode,ae),ae.return=P,P=ae}return x(P);case M:return F=fi(F),gt(P,z,F,ae)}if(ne(F))return _e(P,z,F,ae);if(X(F)){if(Ne=X(F),typeof Ne!="function")throw Error(r(150));return F=Ne.call(F),Ee(P,z,F,ae)}if(typeof F.then=="function")return gt(P,z,Vl(F),ae);if(F.$$typeof===D)return gt(P,z,$l(P,F),ae);ql(P,F)}return typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint"?(F=""+F,z!==null&&z.tag===6?(i(P,z.sibling),ae=f(z,F),ae.return=P,P=ae):(i(P,z),ae=fu(F,P.mode,ae),ae.return=P,P=ae),x(P)):i(P,z)}return function(P,z,F,ae){try{dr=0;var Ne=gt(P,z,F,ae);return lo=null,Ne}catch(Se){if(Se===ro||Se===Pl)throw Se;var st=An(29,Se,null,P.mode);return st.lanes=ae,st.return=P,st}finally{}}}var mi=Ag(!0),Dg=Ag(!1),ja=!1;function Tu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Nu(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 Ta(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=Ol(e),mg(e,null,i),n}return Il(e,l,n,i),Ol(e)}function fr(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,rn(e,i)}}function wu(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 x={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};h===null?f=h=x:h=h.next=x,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 Cu=!1;function pr(){if(Cu){var e=oo;if(e!==null)throw e}}function mr(e,n,i,l){Cu=!1;var f=e.updateQueue;ja=!1;var h=f.firstBaseUpdate,x=f.lastBaseUpdate,w=f.shared.pending;if(w!==null){f.shared.pending=null;var I=w,K=I.next;I.next=null,x===null?h=K:x.next=K,x=I;var Q=e.alternate;Q!==null&&(Q=Q.updateQueue,w=Q.lastBaseUpdate,w!==x&&(w===null?Q.firstBaseUpdate=K:w.next=K,Q.lastBaseUpdate=I))}if(h!==null){var oe=f.baseState;x=0,Q=K=I=null,w=h;do{var Z=w.lane&-536870913,J=Z!==w.lane;if(J?(Ke&Z)===Z:(l&Z)===Z){Z!==0&&Z===io&&(Cu=!0),Q!==null&&(Q=Q.next={lane:0,tag:w.tag,payload:w.payload,callback:null,next:null});e:{var _e=e,Ee=w;Z=n;var gt=i;switch(Ee.tag){case 1:if(_e=Ee.payload,typeof _e=="function"){oe=_e.call(gt,oe,Z);break e}oe=_e;break e;case 3:_e.flags=_e.flags&-65537|128;case 0:if(_e=Ee.payload,Z=typeof _e=="function"?_e.call(gt,oe,Z):_e,Z==null)break e;oe=b({},oe,Z);break e;case 2:ja=!0}}Z=w.callback,Z!==null&&(e.flags|=64,J&&(e.flags|=8192),J=f.callbacks,J===null?f.callbacks=[Z]:J.push(Z))}else J={lane:Z,tag:w.tag,payload:w.payload,callback:w.callback,next:null},Q===null?(K=Q=J,I=oe):Q=Q.next=J,x|=Z;if(w=w.next,w===null){if(w=f.shared.pending,w===null)break;J=w,w=J.next,J.next=null,f.lastBaseUpdate=J,f.shared.pending=null}}while(!0);Q===null&&(I=oe),f.baseState=I,f.firstBaseUpdate=K,f.lastBaseUpdate=Q,h===null&&(f.shared.lanes=0),Da|=x,e.lanes=x,e.memoizedState=oe}}function Mg(e,n){if(typeof e!="function")throw Error(r(191,e));e.call(n)}function Rg(e,n){var i=e.callbacks;if(i!==null)for(e.callbacks=null,e=0;e<i.length;e++)Mg(i[e],n)}var co=ce(null),Gl=ce(0);function Ig(e,n){e=ta,xe(Gl,e),xe(co,n),ta=e|n.baseLanes}function Eu(){xe(Gl,ta),xe(co,co.current)}function Au(){ta=Gl.current,me(co),me(Gl)}var Dn=ce(null),Yn=null;function wa(e){var n=e.alternate;xe(Bt,Bt.current&1),xe(Dn,e),Yn===null&&(n===null||co.current!==null||n.memoizedState!==null)&&(Yn=e)}function Du(e){xe(Bt,Bt.current),xe(Dn,e),Yn===null&&(Yn=e)}function Og(e){e.tag===22?(xe(Bt,Bt.current),xe(Dn,e),Yn===null&&(Yn=e)):Ca()}function Ca(){xe(Bt,Bt.current),xe(Dn,Dn.current)}function Mn(e){me(Dn),Yn===e&&(Yn=null),me(Bt)}var Bt=ce(0);function Fl(e){for(var n=e;n!==null;){if(n.tag===13){var i=n.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||zf(i)||$f(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 Ks=0,ze=null,mt=null,qt=null,Kl=!1,uo=!1,hi=!1,Zl=0,hr=0,fo=null,MS=0;function Rt(){throw Error(r(321))}function Mu(e,n){if(n===null)return!1;for(var i=0;i<n.length&&i<e.length;i++)if(!En(e[i],n[i]))return!1;return!0}function Ru(e,n,i,l,f,h){return Ks=h,ze=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,H.H=e===null||e.memoizedState===null?yv:Zu,hi=!1,h=i(l,f),hi=!1,uo&&(h=Lg(n,i,l,f)),Bg(e),h}function Bg(e){H.H=yr;var n=mt!==null&&mt.next!==null;if(Ks=0,qt=mt=ze=null,Kl=!1,hr=0,fo=null,n)throw Error(r(300));e===null||Gt||(e=e.dependencies,e!==null&&zl(e)&&(Gt=!0))}function Lg(e,n,i,l){ze=e;var f=0;do{if(uo&&(fo=null),hr=0,uo=!1,25<=f)throw Error(r(301));if(f+=1,qt=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)}H.H=bv,h=n(i,l)}while(uo);return h}function RS(){var e=H.H,n=e.useState()[0];return n=typeof n.then=="function"?gr(n):n,e=e.useState()[0],(mt!==null?mt.memoizedState:null)!==e&&(ze.flags|=1024),n}function Iu(){var e=Zl!==0;return Zl=0,e}function Ou(e,n,i){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~i}function Bu(e){if(Kl){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Kl=!1}Ks=0,qt=mt=ze=null,uo=!1,hr=Zl=0,fo=null}function yn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return qt===null?ze.memoizedState=qt=e:qt=qt.next=e,qt}function Lt(){if(mt===null){var e=ze.alternate;e=e!==null?e.memoizedState:null}else e=mt.next;var n=qt===null?ze.memoizedState:qt.next;if(n!==null)qt=n,mt=e;else{if(e===null)throw ze.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},qt===null?ze.memoizedState=qt=e:qt=qt.next=e}return qt}function Yl(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function gr(e){var n=hr;return hr+=1,fo===null&&(fo=[]),e=wg(fo,e,n),n=ze,(qt===null?n.memoizedState:qt.next)===null&&(n=n.alternate,H.H=n===null||n.memoizedState===null?yv:Zu),e}function Jl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return gr(e);if(e.$$typeof===D)return dn(e)}throw Error(r(438,String(e)))}function Lu(e){var n=null,i=ze.updateQueue;if(i!==null&&(n=i.memoCache),n==null){var l=ze.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=Yl(),ze.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 Zs(e,n){return typeof n=="function"?n(e):n}function Wl(e){var n=Lt();return zu(n,mt,e)}function zu(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 x=f.next;f.next=h.next,h.next=x}n.baseQueue=f=h,l.pending=null}if(h=e.baseState,f===null)e.memoizedState=h;else{n=f.next;var w=x=null,I=null,K=n,Q=!1;do{var oe=K.lane&-536870913;if(oe!==K.lane?(Ke&oe)===oe:(Ks&oe)===oe){var Z=K.revertLane;if(Z===0)I!==null&&(I=I.next={lane:0,revertLane:0,gesture:null,action:K.action,hasEagerState:K.hasEagerState,eagerState:K.eagerState,next:null}),oe===io&&(Q=!0);else if((Ks&Z)===Z){K=K.next,Z===io&&(Q=!0);continue}else oe={lane:0,revertLane:K.revertLane,gesture:null,action:K.action,hasEagerState:K.hasEagerState,eagerState:K.eagerState,next:null},I===null?(w=I=oe,x=h):I=I.next=oe,ze.lanes|=Z,Da|=Z;oe=K.action,hi&&i(h,oe),h=K.hasEagerState?K.eagerState:i(h,oe)}else Z={lane:oe,revertLane:K.revertLane,gesture:K.gesture,action:K.action,hasEagerState:K.hasEagerState,eagerState:K.eagerState,next:null},I===null?(w=I=Z,x=h):I=I.next=Z,ze.lanes|=oe,Da|=oe;K=K.next}while(K!==null&&K!==n);if(I===null?x=h:I.next=w,!En(h,e.memoizedState)&&(Gt=!0,Q&&(i=oo,i!==null)))throw i;e.memoizedState=h,e.baseState=x,e.baseQueue=I,l.lastRenderedState=h}return f===null&&(l.lanes=0),[e.memoizedState,l.dispatch]}function $u(e){var n=Lt(),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 x=f=f.next;do h=e(h,x.action),x=x.next;while(x!==f);En(h,n.memoizedState)||(Gt=!0),n.memoizedState=h,n.baseQueue===null&&(n.baseState=h),i.lastRenderedState=h}return[h,l]}function zg(e,n,i){var l=ze,f=Lt(),h=Je;if(h){if(i===void 0)throw Error(r(407));i=i()}else i=n();var x=!En((mt||f).memoizedState,i);if(x&&(f.memoizedState=i,Gt=!0),f=f.queue,Uu(Pg.bind(null,l,f,e),[e]),f.getSnapshot!==n||x||qt!==null&&qt.memoizedState.tag&1){if(l.flags|=2048,po(9,{destroy:void 0},Hg.bind(null,l,f,i,n),null),yt===null)throw Error(r(349));h||(Ks&127)!==0||$g(l,n,i)}return i}function $g(e,n,i){e.flags|=16384,e={getSnapshot:n,value:i},n=ze.updateQueue,n===null?(n=Yl(),ze.updateQueue=n,n.stores=[e]):(i=n.stores,i===null?n.stores=[e]:i.push(e))}function Hg(e,n,i,l){n.value=i,n.getSnapshot=l,Ug(n)&&Vg(e)}function Pg(e,n,i){return i(function(){Ug(n)&&Vg(e)})}function Ug(e){var n=e.getSnapshot;e=e.value;try{var i=n();return!En(e,i)}catch{return!0}}function Vg(e){var n=oi(e,2);n!==null&&wn(n,e,2)}function Hu(e){var n=yn();if(typeof e=="function"){var i=e;if(e=i(),hi){vn(!0);try{i()}finally{vn(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zs,lastRenderedState:e},n}function qg(e,n,i,l){return e.baseState=i,zu(e,mt,typeof l=="function"?l:Zs)}function IS(e,n,i,l,f){if(ec(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(x){h.listeners.push(x)}};H.T!==null?i(!0):h.isTransition=!1,l(h),i=n.pending,i===null?(h.next=n.pending=h,Gg(n,h)):(h.next=i.next,n.pending=i.next=h)}}function Gg(e,n){var i=n.action,l=n.payload,f=e.state;if(n.isTransition){var h=H.T,x={};H.T=x;try{var w=i(f,l),I=H.S;I!==null&&I(x,w),Fg(e,n,w)}catch(K){Pu(e,n,K)}finally{h!==null&&x.types!==null&&(h.types=x.types),H.T=h}}else try{h=i(f,l),Fg(e,n,h)}catch(K){Pu(e,n,K)}}function Fg(e,n,i){i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(function(l){Kg(e,n,l)},function(l){return Pu(e,n,l)}):Kg(e,n,i)}function Kg(e,n,i){n.status="fulfilled",n.value=i,Zg(n),e.state=i,n=e.pending,n!==null&&(i=n.next,i===n?e.pending=null:(i=i.next,n.next=i,Gg(e,i)))}function Pu(e,n,i){var l=e.pending;if(e.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=i,Zg(n),n=n.next;while(n!==l)}e.action=null}function Zg(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function Yg(e,n){return n}function Jg(e,n){if(Je){var i=yt.formState;if(i!==null){e:{var l=ze;if(Je){if(kt){t:{for(var f=kt,h=Zn;f.nodeType!==8;){if(!h){f=null;break t}if(f=Jn(f.nextSibling),f===null){f=null;break t}}h=f.data,f=h==="F!"||h==="F"?f:null}if(f){kt=Jn(f.nextSibling),l=f.data==="F!";break e}}ka(l)}l=!1}l&&(n=i[0])}}return i=yn(),i.memoizedState=i.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Yg,lastRenderedState:n},i.queue=l,i=hv.bind(null,ze,l),l.dispatch=i,l=Hu(!1),h=Ku.bind(null,ze,!1,l.queue),l=yn(),f={state:n,dispatch:null,action:e,pending:null},l.queue=f,i=IS.bind(null,ze,f,h,i),f.dispatch=i,l.memoizedState=e,[n,i,!1]}function Wg(e){var n=Lt();return Xg(n,mt,e)}function Xg(e,n,i){if(n=zu(e,n,Yg)[0],e=Wl(Zs)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=gr(n)}catch(x){throw x===ro?Pl:x}else l=n;n=Lt();var f=n.queue,h=f.dispatch;return i!==n.memoizedState&&(ze.flags|=2048,po(9,{destroy:void 0},OS.bind(null,f,i),null)),[l,h,e]}function OS(e,n){e.action=n}function Qg(e){var n=Lt(),i=mt;if(i!==null)return Xg(n,i,e);Lt(),n=n.memoizedState,i=Lt();var l=i.queue.dispatch;return i.memoizedState=e,[n,l,!1]}function po(e,n,i,l){return e={tag:e,create:i,deps:l,inst:n,next:null},n=ze.updateQueue,n===null&&(n=Yl(),ze.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 ev(){return Lt().memoizedState}function Xl(e,n,i,l){var f=yn();ze.flags|=e,f.memoizedState=po(1|n,{destroy:void 0},i,l===void 0?null:l)}function Ql(e,n,i,l){var f=Lt();l=l===void 0?null:l;var h=f.memoizedState.inst;mt!==null&&l!==null&&Mu(l,mt.memoizedState.deps)?f.memoizedState=po(n,h,i,l):(ze.flags|=e,f.memoizedState=po(1|n,h,i,l))}function tv(e,n){Xl(8390656,8,e,n)}function Uu(e,n){Ql(2048,8,e,n)}function BS(e){ze.flags|=4;var n=ze.updateQueue;if(n===null)n=Yl(),ze.updateQueue=n,n.events=[e];else{var i=n.events;i===null?n.events=[e]:i.push(e)}}function nv(e){var n=Lt().memoizedState;return BS({ref:n,nextImpl:e}),function(){if((rt&2)!==0)throw Error(r(440));return n.impl.apply(void 0,arguments)}}function sv(e,n){return Ql(4,2,e,n)}function av(e,n){return Ql(4,4,e,n)}function iv(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 ov(e,n,i){i=i!=null?i.concat([e]):null,Ql(4,4,iv.bind(null,n,e),i)}function Vu(){}function rv(e,n){var i=Lt();n=n===void 0?null:n;var l=i.memoizedState;return n!==null&&Mu(n,l[1])?l[0]:(i.memoizedState=[e,n],e)}function lv(e,n){var i=Lt();n=n===void 0?null:n;var l=i.memoizedState;if(n!==null&&Mu(n,l[1]))return l[0];if(l=e(),hi){vn(!0);try{e()}finally{vn(!1)}}return i.memoizedState=[l,n],l}function qu(e,n,i){return i===void 0||(Ks&1073741824)!==0&&(Ke&261930)===0?e.memoizedState=n:(e.memoizedState=i,e=c0(),ze.lanes|=e,Da|=e,i)}function cv(e,n,i,l){return En(i,n)?i:co.current!==null?(e=qu(e,i,l),En(e,n)||(Gt=!0),e):(Ks&42)===0||(Ks&1073741824)!==0&&(Ke&261930)===0?(Gt=!0,e.memoizedState=i):(e=c0(),ze.lanes|=e,Da|=e,n)}function dv(e,n,i,l,f){var h=O.p;O.p=h!==0&&8>h?h:8;var x=H.T,w={};H.T=w,Ku(e,!1,n,i);try{var I=f(),K=H.S;if(K!==null&&K(w,I),I!==null&&typeof I=="object"&&typeof I.then=="function"){var Q=DS(I,l);vr(e,n,Q,On(e))}else vr(e,n,l,On(e))}catch(oe){vr(e,n,{then:function(){},status:"rejected",reason:oe},On())}finally{O.p=h,x!==null&&w.types!==null&&(x.types=w.types),H.T=x}}function LS(){}function Gu(e,n,i,l){if(e.tag!==5)throw Error(r(476));var f=uv(e).queue;dv(e,f,n,q,i===null?LS:function(){return fv(e),i(l)})}function uv(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zs,lastRenderedState:q},next:null};var i={};return n.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zs,lastRenderedState:i},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function fv(e){var n=uv(e);n.next===null&&(n=e.alternate.memoizedState),vr(e,n.next.queue,{},On())}function Fu(){return dn(Ir)}function pv(){return Lt().memoizedState}function mv(){return Lt().memoizedState}function zS(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var i=On();e=Ta(i);var l=Na(n,e,i);l!==null&&(wn(l,n,i),fr(l,n,i)),n={cache:xu()},e.payload=n;return}n=n.return}}function $S(e,n,i){var l=On();i={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},ec(e)?gv(n,i):(i=du(e,n,i,l),i!==null&&(wn(i,e,l),vv(i,n,l)))}function hv(e,n,i){var l=On();vr(e,n,i,l)}function vr(e,n,i,l){var f={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(ec(e))gv(n,f);else{var h=e.alternate;if(e.lanes===0&&(h===null||h.lanes===0)&&(h=n.lastRenderedReducer,h!==null))try{var x=n.lastRenderedState,w=h(x,i);if(f.hasEagerState=!0,f.eagerState=w,En(w,x))return Il(e,n,f,0),yt===null&&Rl(),!1}catch{}finally{}if(i=du(e,n,f,l),i!==null)return wn(i,e,l),vv(i,n,l),!0}return!1}function Ku(e,n,i,l){if(l={lane:2,revertLane:Nf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ec(e)){if(n)throw Error(r(479))}else n=du(e,i,l,2),n!==null&&wn(n,e,2)}function ec(e){var n=e.alternate;return e===ze||n!==null&&n===ze}function gv(e,n){uo=Kl=!0;var i=e.pending;i===null?n.next=n:(n.next=i.next,i.next=n),e.pending=n}function vv(e,n,i){if((i&4194048)!==0){var l=n.lanes;l&=e.pendingLanes,i|=l,n.lanes=i,rn(e,i)}}var yr={readContext:dn,use:Jl,useCallback:Rt,useContext:Rt,useEffect:Rt,useImperativeHandle:Rt,useLayoutEffect:Rt,useInsertionEffect:Rt,useMemo:Rt,useReducer:Rt,useRef:Rt,useState:Rt,useDebugValue:Rt,useDeferredValue:Rt,useTransition:Rt,useSyncExternalStore:Rt,useId:Rt,useHostTransitionStatus:Rt,useFormState:Rt,useActionState:Rt,useOptimistic:Rt,useMemoCache:Rt,useCacheRefresh:Rt};yr.useEffectEvent=Rt;var yv={readContext:dn,use:Jl,useCallback:function(e,n){return yn().memoizedState=[e,n===void 0?null:n],e},useContext:dn,useEffect:tv,useImperativeHandle:function(e,n,i){i=i!=null?i.concat([e]):null,Xl(4194308,4,iv.bind(null,n,e),i)},useLayoutEffect:function(e,n){return Xl(4194308,4,e,n)},useInsertionEffect:function(e,n){Xl(4,2,e,n)},useMemo:function(e,n){var i=yn();n=n===void 0?null:n;var l=e();if(hi){vn(!0);try{e()}finally{vn(!1)}}return i.memoizedState=[l,n],l},useReducer:function(e,n,i){var l=yn();if(i!==void 0){var f=i(n);if(hi){vn(!0);try{i(n)}finally{vn(!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=$S.bind(null,ze,e),[l.memoizedState,e]},useRef:function(e){var n=yn();return e={current:e},n.memoizedState=e},useState:function(e){e=Hu(e);var n=e.queue,i=hv.bind(null,ze,n);return n.dispatch=i,[e.memoizedState,i]},useDebugValue:Vu,useDeferredValue:function(e,n){var i=yn();return qu(i,e,n)},useTransition:function(){var e=Hu(!1);return e=dv.bind(null,ze,e.queue,!0,!1),yn().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,i){var l=ze,f=yn();if(Je){if(i===void 0)throw Error(r(407));i=i()}else{if(i=n(),yt===null)throw Error(r(349));(Ke&127)!==0||$g(l,n,i)}f.memoizedState=i;var h={value:i,getSnapshot:n};return f.queue=h,tv(Pg.bind(null,l,h,e),[e]),l.flags|=2048,po(9,{destroy:void 0},Hg.bind(null,l,h,i,n),null),i},useId:function(){var e=yn(),n=yt.identifierPrefix;if(Je){var i=ws,l=Ns;i=(l&~(1<<32-en(l)-1)).toString(32)+i,n="_"+n+"R_"+i,i=Zl++,0<i&&(n+="H"+i.toString(32)),n+="_"}else i=MS++,n="_"+n+"r_"+i.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:Fu,useFormState:Jg,useActionState:Jg,useOptimistic:function(e){var n=yn();n.memoizedState=n.baseState=e;var i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=i,n=Ku.bind(null,ze,!0,i),i.dispatch=n,[e,n]},useMemoCache:Lu,useCacheRefresh:function(){return yn().memoizedState=zS.bind(null,ze)},useEffectEvent:function(e){var n=yn(),i={impl:e};return n.memoizedState=i,function(){if((rt&2)!==0)throw Error(r(440));return i.impl.apply(void 0,arguments)}}},Zu={readContext:dn,use:Jl,useCallback:rv,useContext:dn,useEffect:Uu,useImperativeHandle:ov,useInsertionEffect:sv,useLayoutEffect:av,useMemo:lv,useReducer:Wl,useRef:ev,useState:function(){return Wl(Zs)},useDebugValue:Vu,useDeferredValue:function(e,n){var i=Lt();return cv(i,mt.memoizedState,e,n)},useTransition:function(){var e=Wl(Zs)[0],n=Lt().memoizedState;return[typeof e=="boolean"?e:gr(e),n]},useSyncExternalStore:zg,useId:pv,useHostTransitionStatus:Fu,useFormState:Wg,useActionState:Wg,useOptimistic:function(e,n){var i=Lt();return qg(i,mt,e,n)},useMemoCache:Lu,useCacheRefresh:mv};Zu.useEffectEvent=nv;var bv={readContext:dn,use:Jl,useCallback:rv,useContext:dn,useEffect:Uu,useImperativeHandle:ov,useInsertionEffect:sv,useLayoutEffect:av,useMemo:lv,useReducer:$u,useRef:ev,useState:function(){return $u(Zs)},useDebugValue:Vu,useDeferredValue:function(e,n){var i=Lt();return mt===null?qu(i,e,n):cv(i,mt.memoizedState,e,n)},useTransition:function(){var e=$u(Zs)[0],n=Lt().memoizedState;return[typeof e=="boolean"?e:gr(e),n]},useSyncExternalStore:zg,useId:pv,useHostTransitionStatus:Fu,useFormState:Qg,useActionState:Qg,useOptimistic:function(e,n){var i=Lt();return mt!==null?qg(i,mt,e,n):(i.baseState=e,[e,i.queue.dispatch])},useMemoCache:Lu,useCacheRefresh:mv};bv.useEffectEvent=nv;function Yu(e,n,i,l){n=e.memoizedState,i=i(l,n),i=i==null?n:b({},n,i),e.memoizedState=i,e.lanes===0&&(e.updateQueue.baseState=i)}var Ju={enqueueSetState:function(e,n,i){e=e._reactInternals;var l=On(),f=Ta(l);f.payload=n,i!=null&&(f.callback=i),n=Na(e,f,l),n!==null&&(wn(n,e,l),fr(n,e,l))},enqueueReplaceState:function(e,n,i){e=e._reactInternals;var l=On(),f=Ta(l);f.tag=1,f.payload=n,i!=null&&(f.callback=i),n=Na(e,f,l),n!==null&&(wn(n,e,l),fr(n,e,l))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var i=On(),l=Ta(i);l.tag=2,n!=null&&(l.callback=n),n=Na(e,l,i),n!==null&&(wn(n,e,i),fr(n,e,i))}};function _v(e,n,i,l,f,h,x){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(l,h,x):n.prototype&&n.prototype.isPureReactComponent?!ar(i,l)||!ar(f,h):!0}function xv(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&&Ju.enqueueReplaceState(n,n.state,null)}function gi(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=b({},i));for(var f in e)i[f]===void 0&&(i[f]=e[f])}return i}function kv(e){Ml(e)}function Sv(e){console.error(e)}function jv(e){Ml(e)}function tc(e,n){try{var i=e.onUncaughtError;i(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function Tv(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 Wu(e,n,i){return i=Ta(i),i.tag=3,i.payload={element:null},i.callback=function(){tc(e,n)},i}function Nv(e){return e=Ta(e),e.tag=3,e}function wv(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(){Tv(n,i,l)}}var x=i.stateNode;x!==null&&typeof x.componentDidCatch=="function"&&(e.callback=function(){Tv(n,i,l),typeof f!="function"&&(Ma===null?Ma=new Set([this]):Ma.add(this));var w=l.stack;this.componentDidCatch(l.value,{componentStack:w!==null?w:""})})}function HS(e,n,i,l,f){if(i.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=i.alternate,n!==null&&ao(n,i,f,!0),i=Dn.current,i!==null){switch(i.tag){case 31:case 13:return Yn===null?pc():i.alternate===null&&It===0&&(It=3),i.flags&=-257,i.flags|=65536,i.lanes=f,l===Ul?i.flags|=16384:(n=i.updateQueue,n===null?i.updateQueue=new Set([l]):n.add(l),Sf(e,l,f)),!1;case 22:return i.flags|=65536,l===Ul?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)),Sf(e,l,f)),!1}throw Error(r(435,i.tag))}return Sf(e,l,f),pc(),!1}if(Je)return n=Dn.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=f,l!==gu&&(e=Error(r(422),{cause:l}),rr(Gn(e,i)))):(l!==gu&&(n=Error(r(423),{cause:l}),rr(Gn(n,i))),e=e.current.alternate,e.flags|=65536,f&=-f,e.lanes|=f,l=Gn(l,i),f=Wu(e.stateNode,l,f),wu(e,f),It!==4&&(It=2)),!1;var h=Error(r(520),{cause:l});if(h=Gn(h,i),Nr===null?Nr=[h]:Nr.push(h),It!==4&&(It=2),n===null)return!0;l=Gn(l,i),i=n;do{switch(i.tag){case 3:return i.flags|=65536,e=f&-f,i.lanes|=e,e=Wu(i.stateNode,l,e),wu(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=Nv(f),wv(f,e,i,l),wu(i,f),!1}i=i.return}while(i!==null);return!1}var Xu=Error(r(461)),Gt=!1;function un(e,n,i,l){n.child=e===null?Dg(n,null,i,l):mi(n,e.child,i,l)}function Cv(e,n,i,l,f){i=i.render;var h=n.ref;if("ref"in l){var x={};for(var w in l)w!=="ref"&&(x[w]=l[w])}else x=l;return di(n),l=Ru(e,n,i,x,h,f),w=Iu(),e!==null&&!Gt?(Ou(e,n,f),Ys(e,n,f)):(Je&&w&&mu(n),n.flags|=1,un(e,n,l,f),n.child)}function Ev(e,n,i,l,f){if(e===null){var h=i.type;return typeof h=="function"&&!uu(h)&&h.defaultProps===void 0&&i.compare===null?(n.tag=15,n.type=h,Av(e,n,h,l,f)):(e=Bl(i.type,null,l,n,n.mode,f),e.ref=n.ref,e.return=n,n.child=e)}if(h=e.child,!rf(e,f)){var x=h.memoizedProps;if(i=i.compare,i=i!==null?i:ar,i(x,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 Av(e,n,i,l,f){if(e!==null){var h=e.memoizedProps;if(ar(h,l)&&e.ref===n.ref)if(Gt=!1,n.pendingProps=l=h,rf(e,f))(e.flags&131072)!==0&&(Gt=!0);else return n.lanes=e.lanes,Ys(e,n,f)}return Qu(e,n,i,l,f)}function Dv(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 Mv(e,n,h,i,l)}if((i&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Hl(n,h!==null?h.cachePool:null),h!==null?Ig(n,h):Eu(),Og(n);else return l=n.lanes=536870912,Mv(e,n,h!==null?h.baseLanes|i:i,i,l)}else h!==null?(Hl(n,h.cachePool),Ig(n,h),Ca(),n.memoizedState=null):(e!==null&&Hl(n,null),Eu(),Ca());return un(e,n,f,i),n.child}function br(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function Mv(e,n,i,l,f){var h=Su();return h=h===null?null:{parent:Vt._currentValue,pool:h},n.memoizedState={baseLanes:i,cachePool:h},e!==null&&Hl(n,null),Eu(),Og(n),e!==null&&ao(e,n,l,!0),n.childLanes=f,null}function nc(e,n){return n=ac({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function Rv(e,n,i){return mi(n,e.child,null,i),e=nc(n,n.pendingProps),e.flags|=2,Mn(n),n.memoizedState=null,e}function PS(e,n,i){var l=n.pendingProps,f=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Je){if(l.mode==="hidden")return e=nc(n,l),n.lanes=536870912,br(null,e);if(Du(n),(e=kt)?(e=G0(e,Zn),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:_a!==null?{id:Ns,overflow:ws}:null,retryLane:536870912,hydrationErrors:null},i=gg(e),i.return=n,n.child=i,cn=n,kt=null)):e=null,e===null)throw ka(n);return n.lanes=536870912,null}return nc(n,l)}var h=e.memoizedState;if(h!==null){var x=h.dehydrated;if(Du(n),f)if(n.flags&256)n.flags&=-257,n=Rv(e,n,i);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(r(558));else if(Gt||ao(e,n,i,!1),f=(i&e.childLanes)!==0,Gt||f){if(l=yt,l!==null&&(x=Cn(l,i),x!==0&&x!==h.retryLane))throw h.retryLane=x,oi(e,x),wn(l,e,x),Xu;pc(),n=Rv(e,n,i)}else e=h.treeContext,kt=Jn(x.nextSibling),cn=n,Je=!0,xa=null,Zn=!1,e!==null&&bg(n,e),n=nc(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 sc(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 Qu(e,n,i,l,f){return di(n),i=Ru(e,n,i,l,void 0,f),l=Iu(),e!==null&&!Gt?(Ou(e,n,f),Ys(e,n,f)):(Je&&l&&mu(n),n.flags|=1,un(e,n,i,f),n.child)}function Iv(e,n,i,l,f,h){return di(n),n.updateQueue=null,i=Lg(n,l,i,f),Bg(e),l=Iu(),e!==null&&!Gt?(Ou(e,n,h),Ys(e,n,h)):(Je&&l&&mu(n),n.flags|=1,un(e,n,i,h),n.child)}function Ov(e,n,i,l,f){if(di(n),n.stateNode===null){var h=eo,x=i.contextType;typeof x=="object"&&x!==null&&(h=dn(x)),h=new i(l,h),n.memoizedState=h.state!==null&&h.state!==void 0?h.state:null,h.updater=Ju,n.stateNode=h,h._reactInternals=n,h=n.stateNode,h.props=l,h.state=n.memoizedState,h.refs={},Tu(n),x=i.contextType,h.context=typeof x=="object"&&x!==null?dn(x):eo,h.state=n.memoizedState,x=i.getDerivedStateFromProps,typeof x=="function"&&(Yu(n,i,x,l),h.state=n.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof h.getSnapshotBeforeUpdate=="function"||typeof h.UNSAFE_componentWillMount!="function"&&typeof h.componentWillMount!="function"||(x=h.state,typeof h.componentWillMount=="function"&&h.componentWillMount(),typeof h.UNSAFE_componentWillMount=="function"&&h.UNSAFE_componentWillMount(),x!==h.state&&Ju.enqueueReplaceState(h,h.state,null),mr(n,l,h,f),pr(),h.state=n.memoizedState),typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!0}else if(e===null){h=n.stateNode;var w=n.memoizedProps,I=gi(i,w);h.props=I;var K=h.context,Q=i.contextType;x=eo,typeof Q=="object"&&Q!==null&&(x=dn(Q));var oe=i.getDerivedStateFromProps;Q=typeof oe=="function"||typeof h.getSnapshotBeforeUpdate=="function",w=n.pendingProps!==w,Q||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(w||K!==x)&&xv(n,h,l,x),ja=!1;var Z=n.memoizedState;h.state=Z,mr(n,l,h,f),pr(),K=n.memoizedState,w||Z!==K||ja?(typeof oe=="function"&&(Yu(n,i,oe,l),K=n.memoizedState),(I=ja||_v(n,i,I,l,Z,K,x))?(Q||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=K),h.props=l,h.state=K,h.context=x,l=I):(typeof h.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{h=n.stateNode,Nu(e,n),x=n.memoizedProps,Q=gi(i,x),h.props=Q,oe=n.pendingProps,Z=h.context,K=i.contextType,I=eo,typeof K=="object"&&K!==null&&(I=dn(K)),w=i.getDerivedStateFromProps,(K=typeof w=="function"||typeof h.getSnapshotBeforeUpdate=="function")||typeof h.UNSAFE_componentWillReceiveProps!="function"&&typeof h.componentWillReceiveProps!="function"||(x!==oe||Z!==I)&&xv(n,h,l,I),ja=!1,Z=n.memoizedState,h.state=Z,mr(n,l,h,f),pr();var J=n.memoizedState;x!==oe||Z!==J||ja||e!==null&&e.dependencies!==null&&zl(e.dependencies)?(typeof w=="function"&&(Yu(n,i,w,l),J=n.memoizedState),(Q=ja||_v(n,i,Q,l,Z,J,I)||e!==null&&e.dependencies!==null&&zl(e.dependencies))?(K||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"||x===e.memoizedProps&&Z===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||x===e.memoizedProps&&Z===e.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=J),h.props=l,h.state=J,h.context=I,l=Q):(typeof h.componentDidUpdate!="function"||x===e.memoizedProps&&Z===e.memoizedState||(n.flags|=4),typeof h.getSnapshotBeforeUpdate!="function"||x===e.memoizedProps&&Z===e.memoizedState||(n.flags|=1024),l=!1)}return h=l,sc(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=mi(n,e.child,null,f),n.child=mi(n,null,i,f)):un(e,n,i,f),n.memoizedState=h.state,e=n.child):e=Ys(e,n,f),e}function Bv(e,n,i,l){return li(),n.flags|=256,un(e,n,i,l),n.child}var ef={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function tf(e){return{baseLanes:e,cachePool:Tg()}}function nf(e,n,i){return e=e!==null?e.childLanes&~i:0,n&&(e|=In),e}function Lv(e,n,i){var l=n.pendingProps,f=!1,h=(n.flags&128)!==0,x;if((x=h)||(x=e!==null&&e.memoizedState===null?!1:(Bt.current&2)!==0),x&&(f=!0,n.flags&=-129),x=(n.flags&32)!==0,n.flags&=-33,e===null){if(Je){if(f?wa(n):Ca(),(e=kt)?(e=G0(e,Zn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:_a!==null?{id:Ns,overflow:ws}:null,retryLane:536870912,hydrationErrors:null},i=gg(e),i.return=n,n.child=i,cn=n,kt=null)):e=null,e===null)throw ka(n);return $f(e)?n.lanes=32:n.lanes=536870912,null}var w=l.children;return l=l.fallback,f?(Ca(),f=n.mode,w=ac({mode:"hidden",children:w},f),l=ri(l,f,i,null),w.return=n,l.return=n,w.sibling=l,n.child=w,l=n.child,l.memoizedState=tf(i),l.childLanes=nf(e,x,i),n.memoizedState=ef,br(null,l)):(wa(n),sf(n,w))}var I=e.memoizedState;if(I!==null&&(w=I.dehydrated,w!==null)){if(h)n.flags&256?(wa(n),n.flags&=-257,n=af(e,n,i)):n.memoizedState!==null?(Ca(),n.child=e.child,n.flags|=128,n=null):(Ca(),w=l.fallback,f=n.mode,l=ac({mode:"visible",children:l.children},f),w=ri(w,f,i,null),w.flags|=2,l.return=n,w.return=n,l.sibling=w,n.child=l,mi(n,e.child,null,i),l=n.child,l.memoizedState=tf(i),l.childLanes=nf(e,x,i),n.memoizedState=ef,n=br(null,l));else if(wa(n),$f(w)){if(x=w.nextSibling&&w.nextSibling.dataset,x)var K=x.dgst;x=K,l=Error(r(419)),l.stack="",l.digest=x,rr({value:l,source:null,stack:null}),n=af(e,n,i)}else if(Gt||ao(e,n,i,!1),x=(i&e.childLanes)!==0,Gt||x){if(x=yt,x!==null&&(l=Cn(x,i),l!==0&&l!==I.retryLane))throw I.retryLane=l,oi(e,l),wn(x,e,l),Xu;zf(w)||pc(),n=af(e,n,i)}else zf(w)?(n.flags|=192,n.child=e.child,n=null):(e=I.treeContext,kt=Jn(w.nextSibling),cn=n,Je=!0,xa=null,Zn=!1,e!==null&&bg(n,e),n=sf(n,l.children),n.flags|=4096);return n}return f?(Ca(),w=l.fallback,f=n.mode,I=e.child,K=I.sibling,l=Vs(I,{mode:"hidden",children:l.children}),l.subtreeFlags=I.subtreeFlags&65011712,K!==null?w=Vs(K,w):(w=ri(w,f,i,null),w.flags|=2),w.return=n,l.return=n,l.sibling=w,n.child=l,br(null,l),l=n.child,w=e.child.memoizedState,w===null?w=tf(i):(f=w.cachePool,f!==null?(I=Vt._currentValue,f=f.parent!==I?{parent:I,pool:I}:f):f=Tg(),w={baseLanes:w.baseLanes|i,cachePool:f}),l.memoizedState=w,l.childLanes=nf(e,x,i),n.memoizedState=ef,br(e.child,l)):(wa(n),i=e.child,e=i.sibling,i=Vs(i,{mode:"visible",children:l.children}),i.return=n,i.sibling=null,e!==null&&(x=n.deletions,x===null?(n.deletions=[e],n.flags|=16):x.push(e)),n.child=i,n.memoizedState=null,i)}function sf(e,n){return n=ac({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function ac(e,n){return e=An(22,e,null,n),e.lanes=0,e}function af(e,n,i){return mi(n,e.child,null,i),e=sf(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function zv(e,n,i){e.lanes|=n;var l=e.alternate;l!==null&&(l.lanes|=n),bu(e.return,n,i)}function of(e,n,i,l,f,h){var x=e.memoizedState;x===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:i,tailMode:f,treeForkCount:h}:(x.isBackwards=n,x.rendering=null,x.renderingStartTime=0,x.last=l,x.tail=i,x.tailMode=f,x.treeForkCount=h)}function $v(e,n,i){var l=n.pendingProps,f=l.revealOrder,h=l.tail;l=l.children;var x=Bt.current,w=(x&2)!==0;if(w?(x=x&1|2,n.flags|=128):x&=1,xe(Bt,x),un(e,n,l,i),l=Je?or:0,!w&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&zv(e,i,n);else if(e.tag===19)zv(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&&Fl(e)===null&&(f=i),i=i.sibling;i=f,i===null?(f=n.child,n.child=null):(f=i.sibling,i.sibling=null),of(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&&Fl(e)===null){n.child=f;break}e=f.sibling,f.sibling=i,i=f,f=e}of(n,!0,i,null,h,l);break;case"together":of(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),Da|=n.lanes,(i&n.childLanes)===0)if(e!==null){if(ao(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 rf(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&zl(e)))}function US(e,n,i){switch(n.tag){case 3:Pe(n,n.stateNode.containerInfo),Sa(n,Vt,e.memoizedState.cache),li();break;case 27:case 5:ct(n);break;case 4:Pe(n,n.stateNode.containerInfo);break;case 10:Sa(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,Du(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(wa(n),n.flags|=128,null):(i&n.child.childLanes)!==0?Lv(e,n,i):(wa(n),e=Ys(e,n,i),e!==null?e.sibling:null);wa(n);break;case 19:var f=(e.flags&128)!==0;if(l=(i&n.childLanes)!==0,l||(ao(e,n,i,!1),l=(i&n.childLanes)!==0),f){if(l)return $v(e,n,i);n.flags|=128}if(f=n.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),xe(Bt,Bt.current),l)break;return null;case 22:return n.lanes=0,Dv(e,n,i,n.pendingProps);case 24:Sa(n,Vt,e.memoizedState.cache)}return Ys(e,n,i)}function Hv(e,n,i){if(e!==null)if(e.memoizedProps!==n.pendingProps)Gt=!0;else{if(!rf(e,i)&&(n.flags&128)===0)return Gt=!1,US(e,n,i);Gt=(e.flags&131072)!==0}else Gt=!1,Je&&(n.flags&1048576)!==0&&yg(n,or,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(e=fi(n.elementType),n.type=e,typeof e=="function")uu(e)?(l=gi(e,l),n.tag=1,n=Ov(null,n,e,l,i)):(n.tag=0,n=Qu(null,n,e,l,i));else{if(e!=null){var f=e.$$typeof;if(f===A){n.tag=11,n=Cv(null,n,e,l,i);break e}else if(f===B){n.tag=14,n=Ev(null,n,e,l,i);break e}}throw n=G(e)||e,Error(r(306,n,""))}}return n;case 0:return Qu(e,n,n.type,n.pendingProps,i);case 1:return l=n.type,f=gi(l,n.pendingProps),Ov(e,n,l,f,i);case 3:e:{if(Pe(n,n.stateNode.containerInfo),e===null)throw Error(r(387));l=n.pendingProps;var h=n.memoizedState;f=h.element,Nu(e,n),mr(n,l,null,i);var x=n.memoizedState;if(l=x.cache,Sa(n,Vt,l),l!==h.cache&&_u(n,[Vt],i,!0),pr(),l=x.element,h.isDehydrated)if(h={element:l,isDehydrated:!1,cache:x.cache},n.updateQueue.baseState=h,n.memoizedState=h,n.flags&256){n=Bv(e,n,l,i);break e}else if(l!==f){f=Gn(Error(r(424)),n),rr(f),n=Bv(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(kt=Jn(e.firstChild),cn=n,Je=!0,xa=null,Zn=!0,i=Dg(n,null,l,i),n.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling}else{if(li(),l===f){n=Ys(e,n,i);break e}un(e,n,l,i)}n=n.child}return n;case 26:return sc(e,n),e===null?(i=W0(n.type,null,n.pendingProps,null))?n.memoizedState=i:Je||(i=n.type,e=n.pendingProps,l=_c(bt.current).createElement(i),l[ln]=n,l[xn]=e,fn(l,i,e),tn(l),n.stateNode=l):n.memoizedState=W0(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return ct(n),e===null&&Je&&(l=n.stateNode=Z0(n.type,n.pendingProps,bt.current),cn=n,Zn=!0,f=kt,Ba(n.type)?(Hf=f,kt=Jn(l.firstChild)):kt=f),un(e,n,n.pendingProps.children,i),sc(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Je&&((f=l=kt)&&(l=y2(l,n.type,n.pendingProps,Zn),l!==null?(n.stateNode=l,cn=n,kt=Jn(l.firstChild),Zn=!1,f=!0):f=!1),f||ka(n)),ct(n),f=n.type,h=n.pendingProps,x=e!==null?e.memoizedProps:null,l=h.children,Of(f,h)?l=null:x!==null&&Of(f,x)&&(n.flags|=32),n.memoizedState!==null&&(f=Ru(e,n,RS,null,null,i),Ir._currentValue=f),sc(e,n),un(e,n,l,i),n.child;case 6:return e===null&&Je&&((e=i=kt)&&(i=b2(i,n.pendingProps,Zn),i!==null?(n.stateNode=i,cn=n,kt=null,e=!0):e=!1),e||ka(n)),null;case 13:return Lv(e,n,i);case 4:return Pe(n,n.stateNode.containerInfo),l=n.pendingProps,e===null?n.child=mi(n,null,l,i):un(e,n,l,i),n.child;case 11:return Cv(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,Sa(n,n.type,l.value),un(e,n,l.children,i),n.child;case 9:return f=n.type._context,l=n.pendingProps.children,di(n),f=dn(f),l=l(f),n.flags|=1,un(e,n,l,i),n.child;case 14:return Ev(e,n,n.type,n.pendingProps,i);case 15:return Av(e,n,n.type,n.pendingProps,i);case 19:return $v(e,n,i);case 31:return PS(e,n,i);case 22:return Dv(e,n,i,n.pendingProps);case 24:return di(n),l=dn(Vt),e===null?(f=Su(),f===null&&(f=yt,h=xu(),f.pooledCache=h,h.refCount++,h!==null&&(f.pooledCacheLanes|=i),f=h),n.memoizedState={parent:l,cache:f},Tu(n),Sa(n,Vt,f)):((e.lanes&i)!==0&&(Nu(e,n),mr(n,null,null,i),pr()),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),Sa(n,Vt,l)):(l=h.cache,Sa(n,Vt,l),l!==f.cache&&_u(n,[Vt],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 lf(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(p0())e.flags|=8192;else throw pi=Ul,ju}else e.flags&=-16777217}function Pv(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!ny(n))if(p0())e.flags|=8192;else throw pi=Ul,ju}function ic(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?je():536870912,e.lanes|=n,vo|=n)}function _r(e,n){if(!Je)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 St(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 VS(e,n,i){var l=n.pendingProps;switch(hu(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return St(n),null;case 1:return St(n),null;case 3:return i=n.stateNode,l=null,e!==null&&(l=e.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),Fs(Vt),ke(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(so(n)?Js(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,vu())),St(n),null;case 26:var f=n.type,h=n.memoizedState;return e===null?(Js(n),h!==null?(St(n),Pv(n,h)):(St(n),lf(n,f,null,l,i))):h?h!==e.memoizedState?(Js(n),St(n),Pv(n,h)):(St(n),n.flags&=-16777217):(e=e.memoizedProps,e!==l&&Js(n),St(n),lf(n,f,e,l,i)),null;case 27:if(ue(n),i=bt.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 St(n),null}e=De.current,so(n)?_g(n):(e=Z0(f,l,i),n.stateNode=e,Js(n))}return St(n),null;case 5:if(ue(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 St(n),null}if(h=De.current,so(n))_g(n);else{var x=_c(bt.current);switch(h){case 1:h=x.createElementNS("http://www.w3.org/2000/svg",f);break;case 2:h=x.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;default:switch(f){case"svg":h=x.createElementNS("http://www.w3.org/2000/svg",f);break;case"math":h=x.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;case"script":h=x.createElement("div"),h.innerHTML="<script><\/script>",h=h.removeChild(h.firstChild);break;case"select":h=typeof l.is=="string"?x.createElement("select",{is:l.is}):x.createElement("select"),l.multiple?h.multiple=!0:l.size&&(h.size=l.size);break;default:h=typeof l.is=="string"?x.createElement(f,{is:l.is}):x.createElement(f)}}h[ln]=n,h[xn]=l;e:for(x=n.child;x!==null;){if(x.tag===5||x.tag===6)h.appendChild(x.stateNode);else if(x.tag!==4&&x.tag!==27&&x.child!==null){x.child.return=x,x=x.child;continue}if(x===n)break e;for(;x.sibling===null;){if(x.return===null||x.return===n)break e;x=x.return}x.sibling.return=x.return,x=x.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 St(n),lf(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=bt.current,so(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[ln]=n,e=!!(e.nodeValue===i||l!==null&&l.suppressHydrationWarning===!0||L0(e.nodeValue,i)),e||ka(n,!0)}else e=_c(e).createTextNode(l),e[ln]=n,n.stateNode=e}return St(n),null;case 31:if(i=n.memoizedState,e===null||e.memoizedState!==null){if(l=so(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[ln]=n}else li(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;St(n),e=!1}else i=vu(),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 St(n),null;case 13:if(l=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(f=so(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[ln]=n}else li(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;St(n),f=!1}else f=vu(),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),ic(n,n.updateQueue),St(n),null);case 4:return ke(),e===null&&Af(n.stateNode.containerInfo),St(n),null;case 10:return Fs(n.type),St(n),null;case 19:if(me(Bt),l=n.memoizedState,l===null)return St(n),null;if(f=(n.flags&128)!==0,h=l.rendering,h===null)if(f)_r(l,!1);else{if(It!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(h=Fl(e),h!==null){for(n.flags|=128,_r(l,!1),e=h.updateQueue,n.updateQueue=e,ic(n,e),n.subtreeFlags=0,e=i,i=n.child;i!==null;)hg(i,e),i=i.sibling;return xe(Bt,Bt.current&1|2),Je&&qs(n,l.treeForkCount),n.child}e=e.sibling}l.tail!==null&&Xt()>dc&&(n.flags|=128,f=!0,_r(l,!1),n.lanes=4194304)}else{if(!f)if(e=Fl(h),e!==null){if(n.flags|=128,f=!0,e=e.updateQueue,n.updateQueue=e,ic(n,e),_r(l,!0),l.tail===null&&l.tailMode==="hidden"&&!h.alternate&&!Je)return St(n),null}else 2*Xt()-l.renderingStartTime>dc&&i!==536870912&&(n.flags|=128,f=!0,_r(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=Xt(),e.sibling=null,i=Bt.current,xe(Bt,f?i&1|2:i&1),Je&&qs(n,l.treeForkCount),e):(St(n),null);case 22:case 23:return Mn(n),Au(),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&&(St(n),n.subtreeFlags&6&&(n.flags|=8192)):St(n),i=n.updateQueue,i!==null&&ic(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&&me(ui),null;case 24:return i=null,e!==null&&(i=e.memoizedState.cache),n.memoizedState.cache!==i&&(n.flags|=2048),Fs(Vt),St(n),null;case 25:return null;case 30:return null}throw Error(r(156,n.tag))}function qS(e,n){switch(hu(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Fs(Vt),ke(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return ue(n),null;case 31:if(n.memoizedState!==null){if(Mn(n),n.alternate===null)throw Error(r(340));li()}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));li()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return me(Bt),null;case 4:return ke(),null;case 10:return Fs(n.type),null;case 22:case 23:return Mn(n),Au(),e!==null&&me(ui),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Fs(Vt),null;case 25:return null;default:return null}}function Uv(e,n){switch(hu(n),n.tag){case 3:Fs(Vt),ke();break;case 26:case 27:case 5:ue(n);break;case 4:ke();break;case 31:n.memoizedState!==null&&Mn(n);break;case 13:Mn(n);break;case 19:me(Bt);break;case 10:Fs(n.type);break;case 22:case 23:Mn(n),Au(),e!==null&&me(ui);break;case 24:Fs(Vt)}}function xr(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,x=i.inst;l=h(),x.destroy=l}i=i.next}while(i!==f)}}catch(w){ft(n,n.return,w)}}function Ea(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 x=l.inst,w=x.destroy;if(w!==void 0){x.destroy=void 0,f=n;var I=i,K=w;try{K()}catch(Q){ft(f,I,Q)}}}l=l.next}while(l!==h)}}catch(Q){ft(n,n.return,Q)}}function Vv(e){var n=e.updateQueue;if(n!==null){var i=e.stateNode;try{Rg(n,i)}catch(l){ft(e,e.return,l)}}}function qv(e,n,i){i.props=gi(e.type,e.memoizedProps),i.state=e.memoizedState;try{i.componentWillUnmount()}catch(l){ft(e,n,l)}}function kr(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){ft(e,n,f)}}function Cs(e,n){var i=e.ref,l=e.refCleanup;if(i!==null)if(typeof l=="function")try{l()}catch(f){ft(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){ft(e,n,f)}else i.current=null}function Gv(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){ft(e,e.return,f)}}function cf(e,n,i){try{var l=e.stateNode;f2(l,e.type,i,n),l[xn]=n}catch(f){ft(e,e.return,f)}}function Fv(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ba(e.type)||e.tag===4}function df(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Fv(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 uf(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(uf(e,n,i),e=e.sibling;e!==null;)uf(e,n,i),e=e.sibling}function oc(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(oc(e,n,i),e=e.sibling;e!==null;)oc(e,n,i),e=e.sibling}function Kv(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[ln]=e,n[xn]=i}catch(h){ft(e,e.return,h)}}var Ws=!1,Ft=!1,ff=!1,Zv=typeof WeakSet=="function"?WeakSet:Set,nn=null;function GS(e,n){if(e=e.containerInfo,Rf=wc,e=og(e),au(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 x=0,w=-1,I=-1,K=0,Q=0,oe=e,Z=null;t:for(;;){for(var J;oe!==i||f!==0&&oe.nodeType!==3||(w=x+f),oe!==h||l!==0&&oe.nodeType!==3||(I=x+l),oe.nodeType===3&&(x+=oe.nodeValue.length),(J=oe.firstChild)!==null;)Z=oe,oe=J;for(;;){if(oe===e)break t;if(Z===i&&++K===f&&(w=x),Z===h&&++Q===l&&(I=x),(J=oe.nextSibling)!==null)break;oe=Z,Z=oe.parentNode}oe=J}i=w===-1||I===-1?null:{start:w,end:I}}else i=null}i=i||{start:0,end:0}}else i=null;for(If={focusedElem:e,selectionRange:i},wc=!1,nn=n;nn!==null;)if(n=nn,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,nn=e;else for(;nn!==null;){switch(n=nn,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=gi(i.type,f);e=l.getSnapshotBeforeUpdate(_e,h),l.__reactInternalSnapshotBeforeUpdate=e}catch(Ee){ft(i,i.return,Ee)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,i=e.nodeType,i===9)Lf(e);else if(i===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Lf(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,nn=e;break}nn=n.return}}function Yv(e,n,i){var l=i.flags;switch(i.tag){case 0:case 11:case 15:Qs(e,i),l&4&&xr(5,i);break;case 1:if(Qs(e,i),l&4)if(e=i.stateNode,n===null)try{e.componentDidMount()}catch(x){ft(i,i.return,x)}else{var f=gi(i.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(f,n,e.__reactInternalSnapshotBeforeUpdate)}catch(x){ft(i,i.return,x)}}l&64&&Vv(i),l&512&&kr(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{Rg(e,n)}catch(x){ft(i,i.return,x)}}break;case 27:n===null&&l&4&&Kv(i);case 26:case 5:Qs(e,i),n===null&&l&4&&Gv(i),l&512&&kr(i,i.return);break;case 12:Qs(e,i);break;case 31:Qs(e,i),l&4&&Xv(e,i);break;case 13:Qs(e,i),l&4&&Qv(e,i),l&64&&(e=i.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(i=e2.bind(null,i),_2(e,i))));break;case 22:if(l=i.memoizedState!==null||Ws,!l){n=n!==null&&n.memoizedState!==null||Ft,f=Ws;var h=Ft;Ws=l,(Ft=n)&&!h?ea(e,i,(i.subtreeFlags&8772)!==0):Qs(e,i),Ws=f,Ft=h}break;case 30:break;default:Qs(e,i)}}function Jv(e){var n=e.alternate;n!==null&&(e.alternate=null,Jv(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&Pd(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 Et=null,Sn=!1;function Xs(e,n,i){for(i=i.child;i!==null;)Wv(e,n,i),i=i.sibling}function Wv(e,n,i){if(Ct&&typeof Ct.onCommitFiberUnmount=="function")try{Ct.onCommitFiberUnmount(Qt,i)}catch{}switch(i.tag){case 26:Ft||Cs(i,n),Xs(e,n,i),i.memoizedState?i.memoizedState.count--:i.stateNode&&(i=i.stateNode,i.parentNode.removeChild(i));break;case 27:Ft||Cs(i,n);var l=Et,f=Sn;Ba(i.type)&&(Et=i.stateNode,Sn=!1),Xs(e,n,i),Dr(i.stateNode),Et=l,Sn=f;break;case 5:Ft||Cs(i,n);case 6:if(l=Et,f=Sn,Et=null,Xs(e,n,i),Et=l,Sn=f,Et!==null)if(Sn)try{(Et.nodeType===9?Et.body:Et.nodeName==="HTML"?Et.ownerDocument.body:Et).removeChild(i.stateNode)}catch(h){ft(i,n,h)}else try{Et.removeChild(i.stateNode)}catch(h){ft(i,n,h)}break;case 18:Et!==null&&(Sn?(e=Et,V0(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,i.stateNode),To(e)):V0(Et,i.stateNode));break;case 4:l=Et,f=Sn,Et=i.stateNode.containerInfo,Sn=!0,Xs(e,n,i),Et=l,Sn=f;break;case 0:case 11:case 14:case 15:Ea(2,i,n),Ft||Ea(4,i,n),Xs(e,n,i);break;case 1:Ft||(Cs(i,n),l=i.stateNode,typeof l.componentWillUnmount=="function"&&qv(i,n,l)),Xs(e,n,i);break;case 21:Xs(e,n,i);break;case 22:Ft=(l=Ft)||i.memoizedState!==null,Xs(e,n,i),Ft=l;break;default:Xs(e,n,i)}}function Xv(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{To(e)}catch(i){ft(n,n.return,i)}}}function Qv(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{To(e)}catch(i){ft(n,n.return,i)}}function FS(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new Zv),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new Zv),n;default:throw Error(r(435,e.tag))}}function rc(e,n){var i=FS(e);n.forEach(function(l){if(!i.has(l)){i.add(l);var f=t2.bind(null,e,l);l.then(f,f)}})}function jn(e,n){var i=n.deletions;if(i!==null)for(var l=0;l<i.length;l++){var f=i[l],h=e,x=n,w=x;e:for(;w!==null;){switch(w.tag){case 27:if(Ba(w.type)){Et=w.stateNode,Sn=!1;break e}break;case 5:Et=w.stateNode,Sn=!1;break e;case 3:case 4:Et=w.stateNode.containerInfo,Sn=!0;break e}w=w.return}if(Et===null)throw Error(r(160));Wv(h,x,f),Et=null,Sn=!1,h=f.alternate,h!==null&&(h.return=null),f.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)e0(n,e),n=n.sibling}var fs=null;function e0(e,n){var i=e.alternate,l=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:jn(n,e),Tn(e),l&4&&(Ea(3,e,e.return),xr(3,e),Ea(5,e,e.return));break;case 1:jn(n,e),Tn(e),l&512&&(Ft||i===null||Cs(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=fs;if(jn(n,e),Tn(e),l&512&&(Ft||i===null||Cs(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[Yo]||h[ln]||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[ln]=e,tn(h),l=h;break e;case"link":var x=ey("link","href",f).get(l+(i.href||""));if(x){for(var w=0;w<x.length;w++)if(h=x[w],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)){x.splice(w,1);break t}}h=f.createElement(l),fn(h,l,i),f.head.appendChild(h);break;case"meta":if(x=ey("meta","content",f).get(l+(i.content||""))){for(w=0;w<x.length;w++)if(h=x[w],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)){x.splice(w,1);break t}}h=f.createElement(l),fn(h,l,i),f.head.appendChild(h);break;default:throw Error(r(468,l))}h[ln]=e,tn(h),l=h}e.stateNode=l}else ty(f,e.type,e.stateNode);else e.stateNode=Q0(f,l,e.memoizedProps);else h!==l?(h===null?i.stateNode!==null&&(i=i.stateNode,i.parentNode.removeChild(i)):h.count--,l===null?ty(f,e.type,e.stateNode):Q0(f,l,e.memoizedProps)):l===null&&e.stateNode!==null&&cf(e,e.memoizedProps,i.memoizedProps)}break;case 27:jn(n,e),Tn(e),l&512&&(Ft||i===null||Cs(i,i.return)),i!==null&&l&4&&cf(e,e.memoizedProps,i.memoizedProps);break;case 5:if(jn(n,e),Tn(e),l&512&&(Ft||i===null||Cs(i,i.return)),e.flags&32){f=e.stateNode;try{Ki(f,"")}catch(_e){ft(e,e.return,_e)}}l&4&&e.stateNode!=null&&(f=e.memoizedProps,cf(e,f,i!==null?i.memoizedProps:f)),l&1024&&(ff=!0);break;case 6:if(jn(n,e),Tn(e),l&4){if(e.stateNode===null)throw Error(r(162));l=e.memoizedProps,i=e.stateNode;try{i.nodeValue=l}catch(_e){ft(e,e.return,_e)}}break;case 3:if(Sc=null,f=fs,fs=xc(n.containerInfo),jn(n,e),fs=f,Tn(e),l&4&&i!==null&&i.memoizedState.isDehydrated)try{To(n.containerInfo)}catch(_e){ft(e,e.return,_e)}ff&&(ff=!1,t0(e));break;case 4:l=fs,fs=xc(e.stateNode.containerInfo),jn(n,e),Tn(e),fs=l;break;case 12:jn(n,e),Tn(e);break;case 31:jn(n,e),Tn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,rc(e,l)));break;case 13:jn(n,e),Tn(e),e.child.flags&8192&&e.memoizedState!==null!=(i!==null&&i.memoizedState!==null)&&(cc=Xt()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,rc(e,l)));break;case 22:f=e.memoizedState!==null;var I=i!==null&&i.memoizedState!==null,K=Ws,Q=Ft;if(Ws=K||f,Ft=Q||I,jn(n,e),Ft=Q,Ws=K,Tn(e),l&8192)e:for(n=e.stateNode,n._visibility=f?n._visibility&-2:n._visibility|1,f&&(i===null||I||Ws||Ft||vi(e)),i=null,n=e;;){if(n.tag===5||n.tag===26){if(i===null){I=i=n;try{if(h=I.stateNode,f)x=h.style,typeof x.setProperty=="function"?x.setProperty("display","none","important"):x.display="none";else{w=I.stateNode;var oe=I.memoizedProps.style,Z=oe!=null&&oe.hasOwnProperty("display")?oe.display:null;w.style.display=Z==null||typeof Z=="boolean"?"":(""+Z).trim()}}catch(_e){ft(I,I.return,_e)}}}else if(n.tag===6){if(i===null){I=n;try{I.stateNode.nodeValue=f?"":I.memoizedProps}catch(_e){ft(I,I.return,_e)}}}else if(n.tag===18){if(i===null){I=n;try{var J=I.stateNode;f?q0(J,!0):q0(I.stateNode,!1)}catch(_e){ft(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,rc(e,i))));break;case 19:jn(n,e),Tn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,rc(e,l)));break;case 30:break;case 21:break;default:jn(n,e),Tn(e)}}function Tn(e){var n=e.flags;if(n&2){try{for(var i,l=e.return;l!==null;){if(Fv(l)){i=l;break}l=l.return}if(i==null)throw Error(r(160));switch(i.tag){case 27:var f=i.stateNode,h=df(e);oc(e,h,f);break;case 5:var x=i.stateNode;i.flags&32&&(Ki(x,""),i.flags&=-33);var w=df(e);oc(e,w,x);break;case 3:case 4:var I=i.stateNode.containerInfo,K=df(e);uf(e,K,I);break;default:throw Error(r(161))}}catch(Q){ft(e,e.return,Q)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function t0(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;t0(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;)Yv(e,n.alternate,n),n=n.sibling}function vi(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:Ea(4,n,n.return),vi(n);break;case 1:Cs(n,n.return);var i=n.stateNode;typeof i.componentWillUnmount=="function"&&qv(n,n.return,i),vi(n);break;case 27:Dr(n.stateNode);case 26:case 5:Cs(n,n.return),vi(n);break;case 22:n.memoizedState===null&&vi(n);break;case 30:vi(n);break;default:vi(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,x=h.flags;switch(h.tag){case 0:case 11:case 15:ea(f,h,i),xr(4,h);break;case 1:if(ea(f,h,i),l=h,f=l.stateNode,typeof f.componentDidMount=="function")try{f.componentDidMount()}catch(K){ft(l,l.return,K)}if(l=h,f=l.updateQueue,f!==null){var w=l.stateNode;try{var I=f.shared.hiddenCallbacks;if(I!==null)for(f.shared.hiddenCallbacks=null,f=0;f<I.length;f++)Mg(I[f],w)}catch(K){ft(l,l.return,K)}}i&&x&64&&Vv(h),kr(h,h.return);break;case 27:Kv(h);case 26:case 5:ea(f,h,i),i&&l===null&&x&4&&Gv(h),kr(h,h.return);break;case 12:ea(f,h,i);break;case 31:ea(f,h,i),i&&x&4&&Xv(f,h);break;case 13:ea(f,h,i),i&&x&4&&Qv(f,h);break;case 22:h.memoizedState===null&&ea(f,h,i),kr(h,h.return);break;case 30:break;default:ea(f,h,i)}n=n.sibling}}function pf(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&&lr(i))}function mf(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&lr(e))}function ps(e,n,i,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)n0(e,n,i,l),n=n.sibling}function n0(e,n,i,l){var f=n.flags;switch(n.tag){case 0:case 11:case 15:ps(e,n,i,l),f&2048&&xr(9,n);break;case 1:ps(e,n,i,l);break;case 3:ps(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&&lr(e)));break;case 12:if(f&2048){ps(e,n,i,l),e=n.stateNode;try{var h=n.memoizedProps,x=h.id,w=h.onPostCommit;typeof w=="function"&&w(x,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(I){ft(n,n.return,I)}}else ps(e,n,i,l);break;case 31:ps(e,n,i,l);break;case 13:ps(e,n,i,l);break;case 23:break;case 22:h=n.stateNode,x=n.alternate,n.memoizedState!==null?h._visibility&2?ps(e,n,i,l):Sr(e,n):h._visibility&2?ps(e,n,i,l):(h._visibility|=2,mo(e,n,i,l,(n.subtreeFlags&10256)!==0||!1)),f&2048&&pf(x,n);break;case 24:ps(e,n,i,l),f&2048&&mf(n.alternate,n);break;default:ps(e,n,i,l)}}function mo(e,n,i,l,f){for(f=f&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var h=e,x=n,w=i,I=l,K=x.flags;switch(x.tag){case 0:case 11:case 15:mo(h,x,w,I,f),xr(8,x);break;case 23:break;case 22:var Q=x.stateNode;x.memoizedState!==null?Q._visibility&2?mo(h,x,w,I,f):Sr(h,x):(Q._visibility|=2,mo(h,x,w,I,f)),f&&K&2048&&pf(x.alternate,x);break;case 24:mo(h,x,w,I,f),f&&K&2048&&mf(x.alternate,x);break;default:mo(h,x,w,I,f)}n=n.sibling}}function Sr(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:Sr(i,l),f&2048&&pf(l.alternate,l);break;case 24:Sr(i,l),f&2048&&mf(l.alternate,l);break;default:Sr(i,l)}n=n.sibling}}var jr=8192;function ho(e,n,i){if(e.subtreeFlags&jr)for(e=e.child;e!==null;)s0(e,n,i),e=e.sibling}function s0(e,n,i){switch(e.tag){case 26:ho(e,n,i),e.flags&jr&&e.memoizedState!==null&&M2(i,fs,e.memoizedState,e.memoizedProps);break;case 5:ho(e,n,i);break;case 3:case 4:var l=fs;fs=xc(e.stateNode.containerInfo),ho(e,n,i),fs=l;break;case 22:e.memoizedState===null&&(l=e.alternate,l!==null&&l.memoizedState!==null?(l=jr,jr=16777216,ho(e,n,i),jr=l):ho(e,n,i));break;default:ho(e,n,i)}}function a0(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 Tr(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];nn=l,o0(l,e)}a0(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)i0(e),e=e.sibling}function i0(e){switch(e.tag){case 0:case 11:case 15:Tr(e),e.flags&2048&&Ea(9,e,e.return);break;case 3:Tr(e);break;case 12:Tr(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,lc(e)):Tr(e);break;default:Tr(e)}}function lc(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];nn=l,o0(l,e)}a0(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:Ea(8,n,n.return),lc(n);break;case 22:i=n.stateNode,i._visibility&2&&(i._visibility&=-3,lc(n));break;default:lc(n)}e=e.sibling}}function o0(e,n){for(;nn!==null;){var i=nn;switch(i.tag){case 0:case 11:case 15:Ea(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:lr(i.memoizedState.cache)}if(l=i.child,l!==null)l.return=i,nn=l;else e:for(i=e;nn!==null;){l=nn;var f=l.sibling,h=l.return;if(Jv(l),l===i){nn=null;break e}if(f!==null){f.return=h,nn=f;break e}nn=h}}}var KS={getCacheForType:function(e){var n=dn(Vt),i=n.data.get(e);return i===void 0&&(i=e(),n.data.set(e,i)),i},cacheSignal:function(){return dn(Vt).controller.signal}},ZS=typeof WeakMap=="function"?WeakMap:Map,rt=0,yt=null,Ge=null,Ke=0,ut=0,Rn=null,Aa=!1,go=!1,hf=!1,ta=0,It=0,Da=0,yi=0,gf=0,In=0,vo=0,Nr=null,Nn=null,vf=!1,cc=0,r0=0,dc=1/0,uc=null,Ma=null,Kt=0,Ra=null,yo=null,na=0,yf=0,bf=null,l0=null,wr=0,_f=null;function On(){return(rt&2)!==0&&Ke!==0?Ke&-Ke:H.T!==null?Nf():Hi()}function c0(){if(In===0)if((Ke&536870912)===0||Je){var e=V;V<<=1,(V&3932160)===0&&(V=262144),In=e}else In=536870912;return e=Dn.current,e!==null&&(e.flags|=32),In}function wn(e,n,i){(e===yt&&(ut===2||ut===9)||e.cancelPendingCommit!==null)&&(bo(e,0),Ia(e,Ke,In,!1)),Ue(e,i),((rt&2)===0||e!==yt)&&(e===yt&&((rt&2)===0&&(yi|=i),It===4&&Ia(e,Ke,In,!1)),Es(e))}function d0(e,n,i){if((rt&6)!==0)throw Error(r(327));var l=!i&&(n&127)===0&&(n&e.expiredLanes)===0||ye(e,n),f=l?WS(e,n):kf(e,n,!0),h=l;do{if(f===0){go&&!l&&Ia(e,n,0,!1);break}else{if(i=e.current.alternate,h&&!YS(i)){f=kf(e,n,!1),h=!1;continue}if(f===2){if(h=n,e.errorRecoveryDisabledLanes&h)var x=0;else x=e.pendingLanes&-536870913,x=x!==0?x:x&536870912?536870912:0;if(x!==0){n=x;e:{var w=e;f=Nr;var I=w.current.memoizedState.isDehydrated;if(I&&(bo(w,x).flags|=256),x=kf(w,x,!1),x!==2){if(hf&&!I){w.errorRecoveryDisabledLanes|=h,yi|=h,f=4;break e}h=Nn,Nn=f,h!==null&&(Nn===null?Nn=h:Nn.push.apply(Nn,h))}f=x}if(h=!1,f!==2)continue}}if(f===1){bo(e,0),Ia(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:Ia(l,n,In,!Aa);break e;case 2:Nn=null;break;case 3:case 5:break;default:throw Error(r(329))}if((n&62914560)===n&&(f=cc+300-Xt(),10<f)){if(Ia(l,n,In,!Aa),pe(l,0,!0)!==0)break e;na=n,l.timeoutHandle=P0(u0.bind(null,l,i,Nn,uc,vf,n,In,yi,vo,Aa,h,"Throttled",-0,0),f);break e}u0(l,i,Nn,uc,vf,n,In,yi,vo,Aa,h,null,-0,0)}}break}while(!0);Es(e)}function u0(e,n,i,l,f,h,x,w,I,K,Q,oe,Z,J){if(e.timeoutHandle=-1,oe=n.subtreeFlags,oe&8192||(oe&16785408)===16785408){oe={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ps},s0(n,h,oe);var _e=(h&62914560)===h?cc-Xt():(h&4194048)===h?r0-Xt():0;if(_e=R2(oe,_e),_e!==null){na=h,e.cancelPendingCommit=_e(b0.bind(null,e,n,h,i,l,f,x,w,I,Q,oe,null,Z,J)),Ia(e,h,x,!K);return}}b0(e,n,h,i,l,f,x,w,I)}function YS(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(!En(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 Ia(e,n,i,l){n&=~gf,n&=~yi,e.suspendedLanes|=n,e.pingedLanes&=~n,l&&(e.warmLanes|=n),l=e.expirationTimes;for(var f=n;0<f;){var h=31-en(f),x=1<<h;l[h]=-1,f&=~x}i!==0&&qe(e,i,n)}function fc(){return(rt&6)===0?(Cr(0),!1):!0}function xf(){if(Ge!==null){if(ut===0)var e=Ge.return;else e=Ge,Gs=ci=null,Bu(e),lo=null,dr=0,e=Ge;for(;e!==null;)Uv(e.alternate,e),e=e.return;Ge=null}}function bo(e,n){var i=e.timeoutHandle;i!==-1&&(e.timeoutHandle=-1,h2(i)),i=e.cancelPendingCommit,i!==null&&(e.cancelPendingCommit=null,i()),na=0,xf(),yt=e,Ge=i=Vs(e.current,null),Ke=n,ut=0,Rn=null,Aa=!1,go=ye(e,n),hf=!1,vo=In=gf=yi=Da=It=0,Nn=Nr=null,vf=!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-en(l),h=1<<f;n|=e[f],l&=~h}return ta=n,Rl(),i}function f0(e,n){ze=null,H.H=yr,n===ro||n===Pl?(n=Cg(),ut=3):n===ju?(n=Cg(),ut=4):ut=n===Xu?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,Rn=n,Ge===null&&(It=1,tc(e,Gn(n,e.current)))}function p0(){var e=Dn.current;return e===null?!0:(Ke&4194048)===Ke?Yn===null:(Ke&62914560)===Ke||(Ke&536870912)!==0?e===Yn:!1}function m0(){var e=H.H;return H.H=yr,e===null?yr:e}function h0(){var e=H.A;return H.A=KS,e}function pc(){It=4,Aa||(Ke&4194048)!==Ke&&Dn.current!==null||(go=!0),(Da&134217727)===0&&(yi&134217727)===0||yt===null||Ia(yt,Ke,In,!1)}function kf(e,n,i){var l=rt;rt|=2;var f=m0(),h=h0();(yt!==e||Ke!==n)&&(uc=null,bo(e,n)),n=!1;var x=It;e:do try{if(ut!==0&&Ge!==null){var w=Ge,I=Rn;switch(ut){case 8:xf(),x=6;break e;case 3:case 2:case 9:case 6:Dn.current===null&&(n=!0);var K=ut;if(ut=0,Rn=null,_o(e,w,I,K),i&&go){x=0;break e}break;default:K=ut,ut=0,Rn=null,_o(e,w,I,K)}}JS(),x=It;break}catch(Q){f0(e,Q)}while(!0);return n&&e.shellSuspendCounter++,Gs=ci=null,rt=l,H.H=f,H.A=h,Ge===null&&(yt=null,Ke=0,Rl()),x}function JS(){for(;Ge!==null;)g0(Ge)}function WS(e,n){var i=rt;rt|=2;var l=m0(),f=h0();yt!==e||Ke!==n?(uc=null,dc=Xt()+500,bo(e,n)):go=ye(e,n);e:do try{if(ut!==0&&Ge!==null){n=Ge;var h=Rn;t:switch(ut){case 1:ut=0,Rn=null,_o(e,n,h,1);break;case 2:case 9:if(Ng(h)){ut=0,Rn=null,v0(n);break}n=function(){ut!==2&&ut!==9||yt!==e||(ut=7),Es(e)},h.then(n,n);break e;case 3:ut=7;break e;case 4:ut=5;break e;case 7:Ng(h)?(ut=0,Rn=null,v0(n)):(ut=0,Rn=null,_o(e,n,h,7));break;case 5:var x=null;switch(Ge.tag){case 26:x=Ge.memoizedState;case 5:case 27:var w=Ge;if(x?ny(x):w.stateNode.complete){ut=0,Rn=null;var I=w.sibling;if(I!==null)Ge=I;else{var K=w.return;K!==null?(Ge=K,mc(K)):Ge=null}break t}}ut=0,Rn=null,_o(e,n,h,5);break;case 6:ut=0,Rn=null,_o(e,n,h,6);break;case 8:xf(),It=6;break e;default:throw Error(r(462))}}XS();break}catch(Q){f0(e,Q)}while(!0);return Gs=ci=null,H.H=l,H.A=f,rt=i,Ge!==null?0:(yt=null,Ke=0,Rl(),It)}function XS(){for(;Ge!==null&&!ha();)g0(Ge)}function g0(e){var n=Hv(e.alternate,e,ta);e.memoizedProps=e.pendingProps,n===null?mc(e):Ge=n}function v0(e){var n=e,i=n.alternate;switch(n.tag){case 15:case 0:n=Iv(i,n,n.pendingProps,n.type,void 0,Ke);break;case 11:n=Iv(i,n,n.pendingProps,n.type.render,n.ref,Ke);break;case 5:Bu(n);default:Uv(i,n),n=Ge=hg(n,ta),n=Hv(i,n,ta)}e.memoizedProps=e.pendingProps,n===null?mc(e):Ge=n}function _o(e,n,i,l){Gs=ci=null,Bu(n),lo=null,dr=0;var f=n.return;try{if(HS(e,f,n,i,Ke)){It=1,tc(e,Gn(i,e.current)),Ge=null;return}}catch(h){if(f!==null)throw Ge=f,h;It=1,tc(e,Gn(i,e.current)),Ge=null;return}n.flags&32768?(Je||l===1?e=!0:go||(Ke&536870912)!==0?e=!1:(Aa=e=!0,(l===2||l===9||l===3||l===6)&&(l=Dn.current,l!==null&&l.tag===13&&(l.flags|=16384))),y0(n,e)):mc(n)}function mc(e){var n=e;do{if((n.flags&32768)!==0){y0(n,Aa);return}e=n.return;var i=VS(n.alternate,n,ta);if(i!==null){Ge=i;return}if(n=n.sibling,n!==null){Ge=n;return}Ge=n=e}while(n!==null);It===0&&(It=5)}function y0(e,n){do{var i=qS(e.alternate,e);if(i!==null){i.flags&=32767,Ge=i;return}if(i=e.return,i!==null&&(i.flags|=32768,i.subtreeFlags=0,i.deletions=null),!n&&(e=e.sibling,e!==null)){Ge=e;return}Ge=e=i}while(e!==null);It=6,Ge=null}function b0(e,n,i,l,f,h,x,w,I){e.cancelPendingCommit=null;do hc();while(Kt!==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|=cu,Mt(e,i,h,x,w,I),e===yt&&(Ge=yt=null,Ke=0),yo=n,Ra=e,na=i,yf=h,bf=f,l0=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,n2($s,function(){return j0(),null})):(e.callbackNode=null,e.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=H.T,H.T=null,f=O.p,O.p=2,x=rt,rt|=4;try{GS(e,n,i)}finally{rt=x,O.p=f,H.T=l}}Kt=1,_0(),x0(),k0()}}function _0(){if(Kt===1){Kt=0;var e=Ra,n=yo,i=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||i){i=H.T,H.T=null;var l=O.p;O.p=2;var f=rt;rt|=4;try{e0(n,e);var h=If,x=og(e.containerInfo),w=h.focusedElem,I=h.selectionRange;if(x!==w&&w&&w.ownerDocument&&ig(w.ownerDocument.documentElement,w)){if(I!==null&&au(w)){var K=I.start,Q=I.end;if(Q===void 0&&(Q=K),"selectionStart"in w)w.selectionStart=K,w.selectionEnd=Math.min(Q,w.value.length);else{var oe=w.ownerDocument||document,Z=oe&&oe.defaultView||window;if(Z.getSelection){var J=Z.getSelection(),_e=w.textContent.length,Ee=Math.min(I.start,_e),gt=I.end===void 0?Ee:Math.min(I.end,_e);!J.extend&&Ee>gt&&(x=gt,gt=Ee,Ee=x);var P=ag(w,Ee),z=ag(w,gt);if(P&&z&&(J.rangeCount!==1||J.anchorNode!==P.node||J.anchorOffset!==P.offset||J.focusNode!==z.node||J.focusOffset!==z.offset)){var F=oe.createRange();F.setStart(P.node,P.offset),J.removeAllRanges(),Ee>gt?(J.addRange(F),J.extend(z.node,z.offset)):(F.setEnd(z.node,z.offset),J.addRange(F))}}}}for(oe=[],J=w;J=J.parentNode;)J.nodeType===1&&oe.push({element:J,left:J.scrollLeft,top:J.scrollTop});for(typeof w.focus=="function"&&w.focus(),w=0;w<oe.length;w++){var ae=oe[w];ae.element.scrollLeft=ae.left,ae.element.scrollTop=ae.top}}wc=!!Rf,If=Rf=null}finally{rt=f,O.p=l,H.T=i}}e.current=n,Kt=2}}function x0(){if(Kt===2){Kt=0;var e=Ra,n=yo,i=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||i){i=H.T,H.T=null;var l=O.p;O.p=2;var f=rt;rt|=4;try{Yv(e,n.alternate,n)}finally{rt=f,O.p=l,H.T=i}}Kt=3}}function k0(){if(Kt===4||Kt===3){Kt=0,Bi();var e=Ra,n=yo,i=na,l=l0;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?Kt=5:(Kt=0,yo=Ra=null,S0(e,e.pendingLanes));var f=e.pendingLanes;if(f===0&&(Ma=null),Ss(i),n=n.stateNode,Ct&&typeof Ct.onCommitFiberRoot=="function")try{Ct.onCommitFiberRoot(Qt,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=H.T,f=O.p,O.p=2,H.T=null;try{for(var h=e.onRecoverableError,x=0;x<l.length;x++){var w=l[x];h(w.value,{componentStack:w.stack})}}finally{H.T=n,O.p=f}}(na&3)!==0&&hc(),Es(e),f=e.pendingLanes,(i&261930)!==0&&(f&42)!==0?e===_f?wr++:(wr=0,_f=e):wr=0,Cr(0)}}function S0(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,lr(n)))}function hc(){return _0(),x0(),k0(),j0()}function j0(){if(Kt!==5)return!1;var e=Ra,n=yf;yf=0;var i=Ss(na),l=H.T,f=O.p;try{O.p=32>i?32:i,H.T=null,i=bf,bf=null;var h=Ra,x=na;if(Kt=0,yo=Ra=null,na=0,(rt&6)!==0)throw Error(r(331));var w=rt;if(rt|=4,i0(h.current),n0(h,h.current,x,i),rt=w,Cr(0,!1),Ct&&typeof Ct.onPostCommitFiberRoot=="function")try{Ct.onPostCommitFiberRoot(Qt,h)}catch{}return!0}finally{O.p=f,H.T=l,S0(e,n)}}function T0(e,n,i){n=Gn(i,n),n=Wu(e.stateNode,n,2),e=Na(e,n,2),e!==null&&(Ue(e,2),Es(e))}function ft(e,n,i){if(e.tag===3)T0(e,e,i);else for(;n!==null;){if(n.tag===3){T0(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=Gn(i,e),i=Nv(2),l=Na(n,i,2),l!==null&&(wv(i,l,n,e),Ue(l,2),Es(l));break}}n=n.return}}function Sf(e,n,i){var l=e.pingCache;if(l===null){l=e.pingCache=new ZS;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)||(hf=!0,f.add(i),e=QS.bind(null,e,n,i),n.then(e,e))}function QS(e,n,i){var l=e.pingCache;l!==null&&l.delete(n),e.pingedLanes|=e.suspendedLanes&i,e.warmLanes&=~i,yt===e&&(Ke&i)===i&&(It===4||It===3&&(Ke&62914560)===Ke&&300>Xt()-cc?(rt&2)===0&&bo(e,0):gf|=i,vo===Ke&&(vo=0)),Es(e)}function N0(e,n){n===0&&(n=je()),e=oi(e,n),e!==null&&(Ue(e,n),Es(e))}function e2(e){var n=e.memoizedState,i=0;n!==null&&(i=n.retryLane),N0(e,i)}function t2(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),N0(e,i)}function n2(e,n){return ds(e,n)}var gc=null,xo=null,jf=!1,vc=!1,Tf=!1,Oa=0;function Es(e){e!==xo&&e.next===null&&(xo===null?gc=xo=e:xo=xo.next=e),vc=!0,jf||(jf=!0,a2())}function Cr(e,n){if(!Tf&&vc){Tf=!0;do for(var i=!1,l=gc;l!==null;){if(e!==0){var f=l.pendingLanes;if(f===0)var h=0;else{var x=l.suspendedLanes,w=l.pingedLanes;h=(1<<31-en(42|e)+1)-1,h&=f&~(x&~w),h=h&201326741?h&201326741|1:h?h|2:0}h!==0&&(i=!0,A0(l,h))}else h=Ke,h=pe(l,l===yt?h:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(h&3)===0||ye(l,h)||(i=!0,A0(l,h));l=l.next}while(i);Tf=!1}}function s2(){w0()}function w0(){vc=jf=!1;var e=0;Oa!==0&&m2()&&(e=Oa);for(var n=Xt(),i=null,l=gc;l!==null;){var f=l.next,h=C0(l,n);h===0?(l.next=null,i===null?gc=f:i.next=f,f===null&&(xo=i)):(i=l,(e!==0||(h&3)!==0)&&(vc=!0)),l=f}Kt!==0&&Kt!==5||Cr(e),Oa!==0&&(Oa=0)}function C0(e,n){for(var i=e.suspendedLanes,l=e.pingedLanes,f=e.expirationTimes,h=e.pendingLanes&-62914561;0<h;){var x=31-en(h),w=1<<x,I=f[x];I===-1?((w&i)===0||(w&l)!==0)&&(f[x]=tt(w,n)):I<=n&&(e.expiredLanes|=w),h&=~w}if(n=yt,i=Ke,i=pe(e,e===n?i:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l=e.callbackNode,i===0||e===n&&(ut===2||ut===9)||e.cancelPendingCommit!==null)return l!==null&&l!==null&&zs(l),e.callbackNode=null,e.callbackPriority=0;if((i&3)===0||ye(e,i)){if(n=i&-i,n===e.callbackPriority)return n;switch(l!==null&&zs(l),Ss(i)){case 2:case 8:i=ga;break;case 32:i=$s;break;case 268435456:i=va;break;default:i=$s}return l=E0.bind(null,e),i=ds(i,l),e.callbackPriority=n,e.callbackNode=i,n}return l!==null&&l!==null&&zs(l),e.callbackPriority=2,e.callbackNode=null,2}function E0(e,n){if(Kt!==0&&Kt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var i=e.callbackNode;if(hc()&&e.callbackNode!==i)return null;var l=Ke;return l=pe(e,e===yt?l:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),l===0?null:(d0(e,l,n),C0(e,Xt()),e.callbackNode!=null&&e.callbackNode===i?E0.bind(null,e):null)}function A0(e,n){if(hc())return null;d0(e,n,!0)}function a2(){g2(function(){(rt&6)!==0?ds(ti,s2):w0()})}function Nf(){if(Oa===0){var e=io;e===0&&(e=ya,ya<<=1,(ya&261888)===0&&(ya=256)),Oa=e}return Oa}function D0(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Tl(""+e)}function M0(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 i2(e,n,i,l,f){if(n==="submit"&&i&&i.stateNode===f){var h=D0((f[xn]||null).action),x=l.submitter;x&&(n=(n=x[xn]||null)?D0(n.formAction):x.getAttribute("formAction"),n!==null&&(h=n,x=null));var w=new El("action","action",null,l,f);e.push({event:w,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(Oa!==0){var I=x?M0(f,x):new FormData(f);Gu(i,{pending:!0,data:I,method:f.method,action:h},null,I)}}else typeof h=="function"&&(w.preventDefault(),I=x?M0(f,x):new FormData(f),Gu(i,{pending:!0,data:I,method:f.method,action:h},h,I))},currentTarget:f}]})}}for(var wf=0;wf<lu.length;wf++){var Cf=lu[wf],o2=Cf.toLowerCase(),r2=Cf[0].toUpperCase()+Cf.slice(1);us(o2,"on"+r2)}us(cg,"onAnimationEnd"),us(dg,"onAnimationIteration"),us(ug,"onAnimationStart"),us("dblclick","onDoubleClick"),us("focusin","onFocus"),us("focusout","onBlur"),us(SS,"onTransitionRun"),us(jS,"onTransitionStart"),us(TS,"onTransitionCancel"),us(fg,"onTransitionEnd"),Gi("onMouseEnter",["mouseout","mouseover"]),Gi("onMouseLeave",["mouseout","mouseover"]),Gi("onPointerEnter",["pointerout","pointerover"]),Gi("onPointerLeave",["pointerout","pointerover"]),ni("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ni("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ni("onBeforeInput",["compositionend","keypress","textInput","paste"]),ni("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ni("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ni("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Er="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(" "),l2=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Er));function R0(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 x=l.length-1;0<=x;x--){var w=l[x],I=w.instance,K=w.currentTarget;if(w=w.listener,I!==h&&f.isPropagationStopped())break e;h=w,f.currentTarget=K;try{h(f)}catch(Q){Ml(Q)}f.currentTarget=null,h=I}else for(x=0;x<l.length;x++){if(w=l[x],I=w.instance,K=w.currentTarget,w=w.listener,I!==h&&f.isPropagationStopped())break e;h=w,f.currentTarget=K;try{h(f)}catch(Q){Ml(Q)}f.currentTarget=null,h=I}}}}function Fe(e,n){var i=n[Hd];i===void 0&&(i=n[Hd]=new Set);var l=e+"__bubble";i.has(l)||(I0(n,e,2,!1),i.add(l))}function Ef(e,n,i){var l=0;n&&(l|=4),I0(i,e,l,n)}var yc="_reactListening"+Math.random().toString(36).slice(2);function Af(e){if(!e[yc]){e[yc]=!0,wh.forEach(function(i){i!=="selectionchange"&&(l2.has(i)||Ef(i,!1,e),Ef(i,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[yc]||(n[yc]=!0,Ef("selectionchange",!1,n))}}function I0(e,n,i,l){switch(cy(n)){case 2:var f=B2;break;case 8:f=L2;break;default:f=Gf}i=f.bind(null,n,i,e),f=void 0,!Yd||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 Df(e,n,i,l,f){var h=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var x=l.tag;if(x===3||x===4){var w=l.stateNode.containerInfo;if(w===f)break;if(x===4)for(x=l.return;x!==null;){var I=x.tag;if((I===3||I===4)&&x.stateNode.containerInfo===f)return;x=x.return}for(;w!==null;){if(x=Ui(w),x===null)return;if(I=x.tag,I===5||I===6||I===26||I===27){l=h=x;continue e}w=w.parentNode}}l=l.return}$h(function(){var K=h,Q=Kd(i),oe=[];e:{var Z=pg.get(e);if(Z!==void 0){var J=El,_e=e;switch(e){case"keypress":if(wl(i)===0)break e;case"keydown":case"keyup":J=tS;break;case"focusin":_e="focus",J=Qd;break;case"focusout":_e="blur",J=Qd;break;case"beforeblur":case"afterblur":J=Qd;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=Uh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":J=Vk;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":J=aS;break;case cg:case dg:case ug:J=Fk;break;case fg:J=oS;break;case"scroll":case"scrollend":J=Pk;break;case"wheel":J=lS;break;case"copy":case"cut":case"paste":J=Zk;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":J=qh;break;case"toggle":case"beforetoggle":J=dS}var Ee=(n&4)!==0,gt=!Ee&&(e==="scroll"||e==="scrollend"),P=Ee?Z!==null?Z+"Capture":null:Z;Ee=[];for(var z=K,F;z!==null;){var ae=z;if(F=ae.stateNode,ae=ae.tag,ae!==5&&ae!==26&&ae!==27||F===null||P===null||(ae=Wo(z,P),ae!=null&&Ee.push(Ar(z,ae,F))),gt)break;z=z.return}0<Ee.length&&(Z=new J(Z,_e,null,i,Q),oe.push({event:Z,listeners:Ee}))}}if((n&7)===0){e:{if(Z=e==="mouseover"||e==="pointerover",J=e==="mouseout"||e==="pointerout",Z&&i!==Fd&&(_e=i.relatedTarget||i.fromElement)&&(Ui(_e)||_e[Pi]))break e;if((J||Z)&&(Z=Q.window===Q?Q:(Z=Q.ownerDocument)?Z.defaultView||Z.parentWindow:window,J?(_e=i.relatedTarget||i.toElement,J=K,_e=_e?Ui(_e):null,_e!==null&&(gt=d(_e),Ee=_e.tag,_e!==gt||Ee!==5&&Ee!==27&&Ee!==6)&&(_e=null)):(J=null,_e=K),J!==_e)){if(Ee=Uh,ae="onMouseLeave",P="onMouseEnter",z="mouse",(e==="pointerout"||e==="pointerover")&&(Ee=qh,ae="onPointerLeave",P="onPointerEnter",z="pointer"),gt=J==null?Z:Jo(J),F=_e==null?Z:Jo(_e),Z=new Ee(ae,z+"leave",J,i,Q),Z.target=gt,Z.relatedTarget=F,ae=null,Ui(Q)===K&&(Ee=new Ee(P,z+"enter",_e,i,Q),Ee.target=F,Ee.relatedTarget=gt,ae=Ee),gt=ae,J&&_e)t:{for(Ee=c2,P=J,z=_e,F=0,ae=P;ae;ae=Ee(ae))F++;ae=0;for(var Ne=z;Ne;Ne=Ee(Ne))ae++;for(;0<F-ae;)P=Ee(P),F--;for(;0<ae-F;)z=Ee(z),ae--;for(;F--;){if(P===z||z!==null&&P===z.alternate){Ee=P;break t}P=Ee(P),z=Ee(z)}Ee=null}else Ee=null;J!==null&&O0(oe,Z,J,Ee,!1),_e!==null&>!==null&&O0(oe,gt,_e,Ee,!0)}}e:{if(Z=K?Jo(K):window,J=Z.nodeName&&Z.nodeName.toLowerCase(),J==="select"||J==="input"&&Z.type==="file")var st=Xh;else if(Jh(Z))if(Qh)st=_S;else{st=yS;var Se=vS}else J=Z.nodeName,!J||J.toLowerCase()!=="input"||Z.type!=="checkbox"&&Z.type!=="radio"?K&&Gd(K.elementType)&&(st=Xh):st=bS;if(st&&(st=st(e,K))){Wh(oe,st,i,Q);break e}Se&&Se(e,Z,K),e==="focusout"&&K&&Z.type==="number"&&K.memoizedProps.value!=null&&qd(Z,"number",Z.value)}switch(Se=K?Jo(K):window,e){case"focusin":(Jh(Se)||Se.contentEditable==="true")&&(Wi=Se,iu=K,ir=null);break;case"focusout":ir=iu=Wi=null;break;case"mousedown":ou=!0;break;case"contextmenu":case"mouseup":case"dragend":ou=!1,rg(oe,i,Q);break;case"selectionchange":if(kS)break;case"keydown":case"keyup":rg(oe,i,Q)}var $e;if(tu)e:{switch(e){case"compositionstart":var Ze="onCompositionStart";break e;case"compositionend":Ze="onCompositionEnd";break e;case"compositionupdate":Ze="onCompositionUpdate";break e}Ze=void 0}else Ji?Zh(e,i)&&(Ze="onCompositionEnd"):e==="keydown"&&i.keyCode===229&&(Ze="onCompositionStart");Ze&&(Gh&&i.locale!=="ko"&&(Ji||Ze!=="onCompositionStart"?Ze==="onCompositionEnd"&&Ji&&($e=Hh()):(ba=Q,Jd="value"in ba?ba.value:ba.textContent,Ji=!0)),Se=bc(K,Ze),0<Se.length&&(Ze=new Vh(Ze,e,null,i,Q),oe.push({event:Ze,listeners:Se}),$e?Ze.data=$e:($e=Yh(i),$e!==null&&(Ze.data=$e)))),($e=fS?pS(e,i):mS(e,i))&&(Ze=bc(K,"onBeforeInput"),0<Ze.length&&(Se=new Vh("onBeforeInput","beforeinput",null,i,Q),oe.push({event:Se,listeners:Ze}),Se.data=$e)),i2(oe,e,K,i,Q)}R0(oe,n)})}function Ar(e,n,i){return{instance:e,listener:n,currentTarget:i}}function bc(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=Wo(e,i),f!=null&&l.unshift(Ar(e,f,h)),f=Wo(e,n),f!=null&&l.push(Ar(e,f,h))),e.tag===3)return l;e=e.return}return[]}function c2(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function O0(e,n,i,l,f){for(var h=n._reactName,x=[];i!==null&&i!==l;){var w=i,I=w.alternate,K=w.stateNode;if(w=w.tag,I!==null&&I===l)break;w!==5&&w!==26&&w!==27||K===null||(I=K,f?(K=Wo(i,h),K!=null&&x.unshift(Ar(i,K,I))):f||(K=Wo(i,h),K!=null&&x.push(Ar(i,K,I)))),i=i.return}x.length!==0&&e.push({event:n,listeners:x})}var d2=/\r\n?/g,u2=/\u0000|\uFFFD/g;function B0(e){return(typeof e=="string"?e:""+e).replace(d2,`
|
|
26
|
-
`).replace(u2,"")}function L0(e,n){return n=B0(n),B0(e)===n}function ht(e,n,i,l,f,h){switch(i){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||Ki(e,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&Ki(e,""+l);break;case"className":Sl(e,"class",l);break;case"tabIndex":Sl(e,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Sl(e,i,l);break;case"style":Lh(e,l,h);break;case"data":if(n!=="object"){Sl(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=Tl(""+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=Tl(""+l),e.setAttribute(i,l);break;case"onClick":l!=null&&(e.onclick=Ps);break;case"onScroll":l!=null&&Fe("scroll",e);break;case"onScrollEnd":l!=null&&Fe("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=Tl(""+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":Fe("beforetoggle",e),Fe("toggle",e),kl(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":kl(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=$k.get(i)||i,kl(e,i,l))}}function Mf(e,n,i,l,f,h){switch(i){case"style":Lh(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"?Ki(e,l):(typeof l=="number"||typeof l=="bigint")&&Ki(e,""+l);break;case"onScroll":l!=null&&Fe("scroll",e);break;case"onScrollEnd":l!=null&&Fe("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(!Ch.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[xn]||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,""):kl(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":Fe("error",e),Fe("load",e);var l=!1,f=!1,h;for(h in i)if(i.hasOwnProperty(h)){var x=i[h];if(x!=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,x,i,null)}}f&&ht(e,n,"srcSet",i.srcSet,i,null),l&&ht(e,n,"src",i.src,i,null);return;case"input":Fe("invalid",e);var w=h=x=f=null,I=null,K=null;for(l in i)if(i.hasOwnProperty(l)){var Q=i[l];if(Q!=null)switch(l){case"name":f=Q;break;case"type":x=Q;break;case"checked":I=Q;break;case"defaultChecked":K=Q;break;case"value":h=Q;break;case"defaultValue":w=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(r(137,n));break;default:ht(e,n,l,Q,i,null)}}Rh(e,h,w,I,K,x,f,!1);return;case"select":Fe("invalid",e),l=x=h=null;for(f in i)if(i.hasOwnProperty(f)&&(w=i[f],w!=null))switch(f){case"value":h=w;break;case"defaultValue":x=w;break;case"multiple":l=w;default:ht(e,n,f,w,i,null)}n=h,i=x,e.multiple=!!l,n!=null?Fi(e,!!l,n,!1):i!=null&&Fi(e,!!l,i,!0);return;case"textarea":Fe("invalid",e),h=f=l=null;for(x in i)if(i.hasOwnProperty(x)&&(w=i[x],w!=null))switch(x){case"value":l=w;break;case"defaultValue":f=w;break;case"children":h=w;break;case"dangerouslySetInnerHTML":if(w!=null)throw Error(r(91));break;default:ht(e,n,x,w,i,null)}Oh(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":Fe("beforetoggle",e),Fe("toggle",e),Fe("cancel",e),Fe("close",e);break;case"iframe":case"object":Fe("load",e);break;case"video":case"audio":for(l=0;l<Er.length;l++)Fe(Er[l],e);break;case"image":Fe("error",e),Fe("load",e);break;case"details":Fe("toggle",e);break;case"embed":case"source":case"link":Fe("error",e),Fe("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(K in i)if(i.hasOwnProperty(K)&&(l=i[K],l!=null))switch(K){case"children":case"dangerouslySetInnerHTML":throw Error(r(137,n));default:ht(e,n,K,l,i,null)}return;default:if(Gd(n)){for(Q in i)i.hasOwnProperty(Q)&&(l=i[Q],l!==void 0&&Mf(e,n,Q,l,i,void 0));return}}for(w in i)i.hasOwnProperty(w)&&(l=i[w],l!=null&&ht(e,n,w,l,i,null))}function f2(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,x=null,w=null,I=null,K=null,Q=null;for(J in i){var oe=i[J];if(i.hasOwnProperty(J)&&oe!=null)switch(J){case"checked":break;case"value":break;case"defaultValue":I=oe;default:l.hasOwnProperty(J)||ht(e,n,J,null,l,oe)}}for(var Z in l){var J=l[Z];if(oe=i[Z],l.hasOwnProperty(Z)&&(J!=null||oe!=null))switch(Z){case"type":h=J;break;case"name":f=J;break;case"checked":K=J;break;case"defaultChecked":Q=J;break;case"value":x=J;break;case"defaultValue":w=J;break;case"children":case"dangerouslySetInnerHTML":if(J!=null)throw Error(r(137,n));break;default:J!==oe&&ht(e,n,Z,J,l,oe)}}Vd(e,x,w,I,K,Q,h,f);return;case"select":J=x=w=Z=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":Z=h;break;case"defaultValue":w=h;break;case"multiple":x=h;default:h!==I&&ht(e,n,f,h,l,I)}n=w,i=x,l=J,Z!=null?Fi(e,!!i,Z,!1):!!l!=!!i&&(n!=null?Fi(e,!!i,n,!0):Fi(e,!!i,i?[]:"",!1));return;case"textarea":J=Z=null;for(w in i)if(f=i[w],i.hasOwnProperty(w)&&f!=null&&!l.hasOwnProperty(w))switch(w){case"value":break;case"children":break;default:ht(e,n,w,null,l,f)}for(x in l)if(f=l[x],h=i[x],l.hasOwnProperty(x)&&(f!=null||h!=null))switch(x){case"value":Z=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,x,f,l,h)}Ih(e,Z,J);return;case"option":for(var _e in i)if(Z=i[_e],i.hasOwnProperty(_e)&&Z!=null&&!l.hasOwnProperty(_e))switch(_e){case"selected":e.selected=!1;break;default:ht(e,n,_e,null,l,Z)}for(I in l)if(Z=l[I],J=i[I],l.hasOwnProperty(I)&&Z!==J&&(Z!=null||J!=null))switch(I){case"selected":e.selected=Z&&typeof Z!="function"&&typeof Z!="symbol";break;default:ht(e,n,I,Z,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 Ee in i)Z=i[Ee],i.hasOwnProperty(Ee)&&Z!=null&&!l.hasOwnProperty(Ee)&&ht(e,n,Ee,null,l,Z);for(K in l)if(Z=l[K],J=i[K],l.hasOwnProperty(K)&&Z!==J&&(Z!=null||J!=null))switch(K){case"children":case"dangerouslySetInnerHTML":if(Z!=null)throw Error(r(137,n));break;default:ht(e,n,K,Z,l,J)}return;default:if(Gd(n)){for(var gt in i)Z=i[gt],i.hasOwnProperty(gt)&&Z!==void 0&&!l.hasOwnProperty(gt)&&Mf(e,n,gt,void 0,l,Z);for(Q in l)Z=l[Q],J=i[Q],!l.hasOwnProperty(Q)||Z===J||Z===void 0&&J===void 0||Mf(e,n,Q,Z,l,J);return}}for(var P in i)Z=i[P],i.hasOwnProperty(P)&&Z!=null&&!l.hasOwnProperty(P)&&ht(e,n,P,null,l,Z);for(oe in l)Z=l[oe],J=i[oe],!l.hasOwnProperty(oe)||Z===J||Z==null&&J==null||ht(e,n,oe,Z,l,J)}function z0(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function p2(){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,x=f.initiatorType,w=f.duration;if(h&&w&&z0(x)){for(x=0,w=f.responseEnd,l+=1;l<i.length;l++){var I=i[l],K=I.startTime;if(K>w)break;var Q=I.transferSize,oe=I.initiatorType;Q&&z0(oe)&&(I=I.responseEnd,x+=Q*(I<w?1:(w-K)/(I-K)))}if(--l,n+=8*(h+x)/(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 Rf=null,If=null;function _c(e){return e.nodeType===9?e:e.ownerDocument}function $0(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 H0(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 Of(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 Bf=null;function m2(){var e=window.event;return e&&e.type==="popstate"?e===Bf?!1:(Bf=e,!0):(Bf=null,!1)}var P0=typeof setTimeout=="function"?setTimeout:void 0,h2=typeof clearTimeout=="function"?clearTimeout:void 0,U0=typeof Promise=="function"?Promise:void 0,g2=typeof queueMicrotask=="function"?queueMicrotask:typeof U0<"u"?function(e){return U0.resolve(null).then(e).catch(v2)}:P0;function v2(e){setTimeout(function(){throw e})}function Ba(e){return e==="head"}function V0(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),To(n);return}l--}else if(i==="$"||i==="$?"||i==="$~"||i==="$!"||i==="&")l++;else if(i==="html")Dr(e.ownerDocument.documentElement);else if(i==="head"){i=e.ownerDocument.head,Dr(i);for(var h=i.firstChild;h;){var x=h.nextSibling,w=h.nodeName;h[Yo]||w==="SCRIPT"||w==="STYLE"||w==="LINK"&&h.rel.toLowerCase()==="stylesheet"||i.removeChild(h),h=x}}else i==="body"&&Dr(e.ownerDocument.body);i=f}while(i);To(n)}function q0(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 Lf(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":Lf(i),Pd(i);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(i.rel.toLowerCase()==="stylesheet")continue}e.removeChild(i)}}function y2(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[Yo])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=Jn(e.nextSibling),e===null)break}return null}function b2(e,n,i){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!i||(e=Jn(e.nextSibling),e===null))return null;return e}function G0(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Jn(e.nextSibling),e===null))return null;return e}function zf(e){return e.data==="$?"||e.data==="$~"}function $f(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function _2(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 Jn(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 Hf=null;function F0(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var i=e.data;if(i==="/$"||i==="/&"){if(n===0)return Jn(e.nextSibling);n--}else i!=="$"&&i!=="$!"&&i!=="$?"&&i!=="$~"&&i!=="&"||n++}e=e.nextSibling}return null}function K0(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 Z0(e,n,i){switch(n=_c(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 Dr(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Pd(e)}var Wn=new Map,Y0=new Set;function xc(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var sa=O.d;O.d={f:x2,r:k2,D:S2,C:j2,L:T2,m:N2,X:C2,S:w2,M:E2};function x2(){var e=sa.f(),n=fc();return e||n}function k2(e){var n=Vi(e);n!==null&&n.tag===5&&n.type==="form"?fv(n):sa.r(e)}var ko=typeof document>"u"?null:document;function J0(e,n,i){var l=ko;if(l&&typeof n=="string"&&n){var f=Vn(n);f='link[rel="'+e+'"][href="'+f+'"]',typeof i=="string"&&(f+='[crossorigin="'+i+'"]'),Y0.has(f)||(Y0.add(f),e={rel:e,crossOrigin:i,href:n},l.querySelector(f)===null&&(n=l.createElement("link"),fn(n,"link",e),tn(n),l.head.appendChild(n)))}}function S2(e){sa.D(e),J0("dns-prefetch",e,null)}function j2(e,n){sa.C(e,n),J0("preconnect",e,n)}function T2(e,n,i){sa.L(e,n,i);var l=ko;if(l&&e&&n){var f='link[rel="preload"][as="'+Vn(n)+'"]';n==="image"&&i&&i.imageSrcSet?(f+='[imagesrcset="'+Vn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(f+='[imagesizes="'+Vn(i.imageSizes)+'"]')):f+='[href="'+Vn(e)+'"]';var h=f;switch(n){case"style":h=So(e);break;case"script":h=jo(e)}Wn.has(h)||(e=b({rel:"preload",href:n==="image"&&i&&i.imageSrcSet?void 0:e,as:n},i),Wn.set(h,e),l.querySelector(f)!==null||n==="style"&&l.querySelector(Mr(h))||n==="script"&&l.querySelector(Rr(h))||(n=l.createElement("link"),fn(n,"link",e),tn(n),l.head.appendChild(n)))}}function N2(e,n){sa.m(e,n);var i=ko;if(i&&e){var l=n&&typeof n.as=="string"?n.as:"script",f='link[rel="modulepreload"][as="'+Vn(l)+'"][href="'+Vn(e)+'"]',h=f;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":h=jo(e)}if(!Wn.has(h)&&(e=b({rel:"modulepreload",href:e},n),Wn.set(h,e),i.querySelector(f)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Rr(h)))return}l=i.createElement("link"),fn(l,"link",e),tn(l),i.head.appendChild(l)}}}function w2(e,n,i){sa.S(e,n,i);var l=ko;if(l&&e){var f=qi(l).hoistableStyles,h=So(e);n=n||"default";var x=f.get(h);if(!x){var w={loading:0,preload:null};if(x=l.querySelector(Mr(h)))w.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":n},i),(i=Wn.get(h))&&Pf(e,i);var I=x=l.createElement("link");tn(I),fn(I,"link",e),I._p=new Promise(function(K,Q){I.onload=K,I.onerror=Q}),I.addEventListener("load",function(){w.loading|=1}),I.addEventListener("error",function(){w.loading|=2}),w.loading|=4,kc(x,n,l)}x={type:"stylesheet",instance:x,count:1,state:w},f.set(h,x)}}}function C2(e,n){sa.X(e,n);var i=ko;if(i&&e){var l=qi(i).hoistableScripts,f=jo(e),h=l.get(f);h||(h=i.querySelector(Rr(f)),h||(e=b({src:e,async:!0},n),(n=Wn.get(f))&&Uf(e,n),h=i.createElement("script"),tn(h),fn(h,"link",e),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},l.set(f,h))}}function E2(e,n){sa.M(e,n);var i=ko;if(i&&e){var l=qi(i).hoistableScripts,f=jo(e),h=l.get(f);h||(h=i.querySelector(Rr(f)),h||(e=b({src:e,async:!0,type:"module"},n),(n=Wn.get(f))&&Uf(e,n),h=i.createElement("script"),tn(h),fn(h,"link",e),i.head.appendChild(h)),h={type:"script",instance:h,count:1,state:null},l.set(f,h))}}function W0(e,n,i,l){var f=(f=bt.current)?xc(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=So(i.href),i=qi(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=So(i.href);var h=qi(f).hoistableStyles,x=h.get(e);if(x||(f=f.ownerDocument||f,x={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},h.set(e,x),(h=f.querySelector(Mr(e)))&&!h._p&&(x.instance=h,x.state.loading=5),Wn.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},Wn.set(e,i),h||A2(f,e,i,x.state))),n&&l===null)throw Error(r(528,""));return x}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=jo(i),i=qi(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 So(e){return'href="'+Vn(e)+'"'}function Mr(e){return'link[rel="stylesheet"]['+e+"]"}function X0(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function A2(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),tn(n),e.head.appendChild(n))}function jo(e){return'[src="'+Vn(e)+'"]'}function Rr(e){return"script[async]"+e}function Q0(e,n,i){if(n.count++,n.instance===null)switch(n.type){case"style":var l=e.querySelector('style[data-href~="'+Vn(i.href)+'"]');if(l)return n.instance=l,tn(l),l;var f=b({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),tn(l),fn(l,"style",f),kc(l,i.precedence,e),n.instance=l;case"stylesheet":f=So(i.href);var h=e.querySelector(Mr(f));if(h)return n.state.loading|=4,n.instance=h,tn(h),h;l=X0(i),(f=Wn.get(f))&&Pf(l,f),h=(e.ownerDocument||e).createElement("link"),tn(h);var x=h;return x._p=new Promise(function(w,I){x.onload=w,x.onerror=I}),fn(h,"link",l),n.state.loading|=4,kc(h,i.precedence,e),n.instance=h;case"script":return h=jo(i.src),(f=e.querySelector(Rr(h)))?(n.instance=f,tn(f),f):(l=i,(f=Wn.get(h))&&(l=b({},i),Uf(l,f)),e=e.ownerDocument||e,f=e.createElement("script"),tn(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,kc(l,i.precedence,e));return n.instance}function kc(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,x=0;x<l.length;x++){var w=l[x];if(w.dataset.precedence===n)h=w;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 Pf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Uf(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var Sc=null;function ey(e,n,i){if(Sc===null){var l=new Map,f=Sc=new Map;f.set(i,l)}else f=Sc,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[Yo]||h[ln]||e==="link"&&h.getAttribute("rel")==="stylesheet")&&h.namespaceURI!=="http://www.w3.org/2000/svg"){var x=h.getAttribute(n)||"";x=e+x;var w=l.get(x);w?w.push(h):l.set(x,[h])}}return l}function ty(e,n,i){e=e.ownerDocument||e,e.head.insertBefore(i,n==="title"?e.querySelector("head > title"):null)}function D2(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 ny(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function M2(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=So(l.href),h=n.querySelector(Mr(f));if(h){n=h._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=jc.bind(e),n.then(e,e)),i.state.loading|=4,i.instance=h,tn(h);return}h=n.ownerDocument||n,l=X0(l),(f=Wn.get(f))&&Pf(l,f),h=h.createElement("link"),tn(h);var x=h;x._p=new Promise(function(w,I){x.onload=w,x.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=jc.bind(e),n.addEventListener("load",i),n.addEventListener("error",i))}}var Vf=0;function R2(e,n){return e.stylesheets&&e.count===0&&Nc(e,e.stylesheets),0<e.count||0<e.imgCount?function(i){var l=setTimeout(function(){if(e.stylesheets&&Nc(e,e.stylesheets),e.unsuspend){var h=e.unsuspend;e.unsuspend=null,h()}},6e4+n);0<e.imgBytes&&Vf===0&&(Vf=62500*p2());var f=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Nc(e,e.stylesheets),e.unsuspend)){var h=e.unsuspend;e.unsuspend=null,h()}},(e.imgBytes>Vf?50:800)+n);return e.unsuspend=i,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(f)}}:null}function jc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Nc(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Tc=null;function Nc(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Tc=new Map,n.forEach(I2,e),Tc=null,jc.call(e))}function I2(e,n){if(!(n.state.loading&4)){var i=Tc.get(e);if(i)var l=i.get(null);else{i=new Map,Tc.set(e,i);for(var f=e.querySelectorAll("link[data-precedence],style[data-precedence]"),h=0;h<f.length;h++){var x=f[h];(x.nodeName==="LINK"||x.getAttribute("media")!=="not all")&&(i.set(x.dataset.precedence,x),l=x)}l&&i.set(null,l)}f=n.instance,x=f.getAttribute("data-precedence"),h=i.get(x)||l,h===l&&i.set(null,f),i.set(x,f),this.count++,l=jc.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 Ir={$$typeof:D,Provider:null,Consumer:null,_currentValue:q,_currentValue2:q,_threadCount:0};function O2(e,n,i,l,f,h,x,w,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=Le(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Le(0),this.hiddenUpdates=Le(null),this.identifierPrefix=l,this.onUncaughtError=f,this.onCaughtError=h,this.onRecoverableError=x,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=I,this.incompleteTransitions=new Map}function sy(e,n,i,l,f,h,x,w,I,K,Q,oe){return e=new O2(e,n,i,x,I,K,Q,oe,w),n=1,h===!0&&(n|=24),h=An(3,null,null,n),e.current=h,h.stateNode=e,n=xu(),n.refCount++,e.pooledCache=n,n.refCount++,h.memoizedState={element:l,isDehydrated:i,cache:n},Tu(h),e}function ay(e){return e?(e=eo,e):eo}function iy(e,n,i,l,f,h){f=ay(f),l.context===null?l.context=f:l.pendingContext=f,l=Ta(n),l.payload={element:i},h=h===void 0?null:h,h!==null&&(l.callback=h),i=Na(e,l,n),i!==null&&(wn(i,e,n),fr(i,e,n))}function oy(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var i=e.retryLane;e.retryLane=i!==0&&i<n?i:n}}function qf(e,n){oy(e,n),(e=e.alternate)&&oy(e,n)}function ry(e){if(e.tag===13||e.tag===31){var n=oi(e,67108864);n!==null&&wn(n,e,67108864),qf(e,67108864)}}function ly(e){if(e.tag===13||e.tag===31){var n=On();n=_t(n);var i=oi(e,n);i!==null&&wn(i,e,n),qf(e,n)}}var wc=!0;function B2(e,n,i,l){var f=H.T;H.T=null;var h=O.p;try{O.p=2,Gf(e,n,i,l)}finally{O.p=h,H.T=f}}function L2(e,n,i,l){var f=H.T;H.T=null;var h=O.p;try{O.p=8,Gf(e,n,i,l)}finally{O.p=h,H.T=f}}function Gf(e,n,i,l){if(wc){var f=Ff(l);if(f===null)Df(e,n,l,Cc,i),dy(e,l);else if($2(f,e,n,i,l))l.stopPropagation();else if(dy(e,l),n&4&&-1<z2.indexOf(e)){for(;f!==null;){var h=Vi(f);if(h!==null)switch(h.tag){case 3:if(h=h.stateNode,h.current.memoizedState.isDehydrated){var x=de(h.pendingLanes);if(x!==0){var w=h;for(w.pendingLanes|=2,w.entangledLanes|=2;x;){var I=1<<31-en(x);w.entanglements[1]|=I,x&=~I}Es(h),(rt&6)===0&&(dc=Xt()+500,Cr(0))}}break;case 31:case 13:w=oi(h,2),w!==null&&wn(w,h,2),fc(),qf(h,2)}if(h=Ff(l),h===null&&Df(e,n,l,Cc,i),h===f)break;f=h}f!==null&&l.stopPropagation()}else Df(e,n,l,null,i)}}function Ff(e){return e=Kd(e),Kf(e)}var Cc=null;function Kf(e){if(Cc=null,e=Ui(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 Cc=e,null}function cy(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(ei()){case ti:return 2;case ga:return 8;case $s:case ks:return 32;case va:return 268435456;default:return 32}default:return 32}}var Zf=!1,La=null,za=null,$a=null,Or=new Map,Br=new Map,Ha=[],z2="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 dy(e,n){switch(e){case"focusin":case"focusout":La=null;break;case"dragenter":case"dragleave":za=null;break;case"mouseover":case"mouseout":$a=null;break;case"pointerover":case"pointerout":Or.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Br.delete(n.pointerId)}}function Lr(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=Vi(n),n!==null&&ry(n)),e):(e.eventSystemFlags|=l,n=e.targetContainers,f!==null&&n.indexOf(f)===-1&&n.push(f),e)}function $2(e,n,i,l,f){switch(n){case"focusin":return La=Lr(La,e,n,i,l,f),!0;case"dragenter":return za=Lr(za,e,n,i,l,f),!0;case"mouseover":return $a=Lr($a,e,n,i,l,f),!0;case"pointerover":var h=f.pointerId;return Or.set(h,Lr(Or.get(h)||null,e,n,i,l,f)),!0;case"gotpointercapture":return h=f.pointerId,Br.set(h,Lr(Br.get(h)||null,e,n,i,l,f)),!0}return!1}function uy(e){var n=Ui(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,js(e.priority,function(){ly(i)});return}}else if(n===31){if(n=p(i),n!==null){e.blockedOn=n,js(e.priority,function(){ly(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 Ec(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var i=Ff(e.nativeEvent);if(i===null){i=e.nativeEvent;var l=new i.constructor(i.type,i);Fd=l,i.target.dispatchEvent(l),Fd=null}else return n=Vi(i),n!==null&&ry(n),e.blockedOn=i,!1;n.shift()}return!0}function fy(e,n,i){Ec(e)&&i.delete(n)}function H2(){Zf=!1,La!==null&&Ec(La)&&(La=null),za!==null&&Ec(za)&&(za=null),$a!==null&&Ec($a)&&($a=null),Or.forEach(fy),Br.forEach(fy)}function Ac(e,n){e.blockedOn===n&&(e.blockedOn=null,Zf||(Zf=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,H2)))}var Dc=null;function py(e){Dc!==e&&(Dc=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Dc===e&&(Dc=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(Kf(l||i)===null)continue;break}var h=Vi(i);h!==null&&(e.splice(n,3),n-=3,Gu(h,{pending:!0,data:f,method:i.method,action:l},l,f))}}))}function To(e){function n(I){return Ac(I,e)}La!==null&&Ac(La,e),za!==null&&Ac(za,e),$a!==null&&Ac($a,e),Or.forEach(n),Br.forEach(n);for(var i=0;i<Ha.length;i++){var l=Ha[i];l.blockedOn===e&&(l.blockedOn=null)}for(;0<Ha.length&&(i=Ha[0],i.blockedOn===null);)uy(i),i.blockedOn===null&&Ha.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],x=f[xn]||null;if(typeof h=="function")x||py(i);else if(x){var w=null;if(h&&h.hasAttribute("formAction")){if(f=h,x=h[xn]||null)w=x.formAction;else if(Kf(f)!==null)continue}else w=x.action;typeof w=="function"?i[l+1]=w:(i.splice(l,3),l-=3),py(i)}}}function my(){function e(h){h.canIntercept&&h.info==="react-transition"&&h.intercept({handler:function(){return new Promise(function(x){return f=x})},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 Yf(e){this._internalRoot=e}Mc.prototype.render=Yf.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(r(409));var i=n.current,l=On();iy(i,l,e,n,null,null)},Mc.prototype.unmount=Yf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;iy(e.current,2,null,e,null,null),fc(),n[Pi]=null}};function Mc(e){this._internalRoot=e}Mc.prototype.unstable_scheduleHydration=function(e){if(e){var n=Hi();e={blockedOn:null,target:e,priority:n};for(var i=0;i<Ha.length&&n!==0&&n<Ha[i].priority;i++);Ha.splice(i,0,e),i===0&&uy(e)}};var hy=s.version;if(hy!=="19.2.4")throw Error(r(527,hy,"19.2.4"));O.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 P2={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:H,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Rc.isDisabled&&Rc.supportsFiber)try{Qt=Rc.inject(P2),Ct=Rc}catch{}}return zr.createRoot=function(e,n){if(!c(e))throw Error(r(299));var i=!1,l="",f=kv,h=Sv,x=jv;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&&(x=n.onRecoverableError)),n=sy(e,1,!1,null,null,i,l,null,f,h,x,my),e[Pi]=n.current,Af(e),new Yf(n)},zr.hydrateRoot=function(e,n,i){if(!c(e))throw Error(r(299));var l=!1,f="",h=kv,x=Sv,w=jv,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&&(x=i.onCaughtError),i.onRecoverableError!==void 0&&(w=i.onRecoverableError),i.formState!==void 0&&(I=i.formState)),n=sy(e,1,!0,n,i??null,l,f,I,h,x,w,my),n.context=ay(null),i=n.current,l=On(),l=_t(l),f=Ta(l),f.callback=null,Na(i,f,l),i=l,n.current.lanes=i,Ue(n,i),Es(n),e[Pi]=n.current,Af(e),new Mc(n)},zr.version="19.2.4",zr}var _y;function yj(){if(_y)return Jf.exports;_y=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(),Jf.exports=vj(),Jf.exports}var bj=yj();const _j="modulepreload",xj=function(t){return"/"+t},xy={},Nm=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(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};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=xj(g),g in xy)return;xy[g]=!0;const v=g.endsWith(".css"),b=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${b}`))return;const _=document.createElement("link");if(_.rel=v?"stylesheet":_j,v||(_.as="script"),_.crossOrigin="",_.href=g,m&&_.setAttribute("nonce",m),document.head.appendChild(_),v)return new Promise((k,S)=>{_.addEventListener("load",k),_.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)})},kj=new Proxy(globalThis.fetch,{apply(t,s,o){return Reflect.apply(globalThis.fetch,s,o)}}),jd=Z2({baseUrl:"/",fetch:kj}),Be=Sd(Y2,jd),Ln=Sd(J2,jd),zc=Sd(W2,jd),$c=Sd(X2,jd),Sj="_bar_1xlm9_1",jj="_textarea_1xlm9_32",Tj="_select_1xlm9_73",Nj="_btnPrimary_1xlm9_109",wj="_btnGhost_1xlm9_179",Cj="_badge_1xlm9_201",Ej="_disconnectHint_1xlm9_211",ys={bar:Sj,textarea:jj,select:Tj,btnPrimary:Nj,btnGhost:wj,badge:Cj,disconnectHint:Ej},Aj=200;function Dj(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:ys.disconnectHint,"data-testid":"env-disconnect-hint",children:"Environment unavailable"}),a.jsx("button",{type:"button",onClick:()=>s(t),className:ys.btnGhost,"data-testid":"reconnect-btn",title:"Reconnect the environment to resume messaging",children:"Reconnect"})]})}function Qf({value:t,onChange:s,onSubmit:o,placeholder:r,disabled:c,autoFocus:d,ariaLabel:u}){const p=y.useRef(null);y.useLayoutEffect(()=>{const g=p.current;g&&(g.style.height="auto",g.style.height=`${Math.min(g.scrollHeight,Aj)}px`)},[t]);const m=g=>{g.key==="Enter"&&(g.metaKey||g.ctrlKey)&&!g.nativeEvent.isComposing&&(g.preventDefault(),o())};return a.jsx("textarea",{ref:p,rows:1,value:t,onChange:g=>s(g.target.value),onKeyDown:m,placeholder:r,disabled:c,autoFocus:d,className:ys.textarea,"aria-label":u})}function Td({mode:t,sessionId:s,environmentId:o,taskId:r,showPersonaSelect:c,personas:d,environments:u,onSendInput:p,onSpawn:m,onStartTask:g,onProvisionEnvironment:v,onShowToast:b}){const[_,k]=y.useState(""),[S,j]=y.useState(""),T=Dj(o,u),N=()=>{if(_.trim())if(t==="send"){if(!s||T)return;p(s,_),k("")}else if(t==="spawn"){if(!o)return;m(o,_,S),b==null||b("Session started","success"),k(""),j("")}else{if(!r)return;g(r,void 0,o,_),k("")}},C=D=>{D.preventDefault(),N()};return t==="spawn"?a.jsxs("form",{onSubmit:C,className:ys.bar,children:[a.jsx("span",{className:ys.badge,children:"new chat"}),a.jsx(Qf,{value:_,onChange:k,onSubmit:N,placeholder:"Enter prompt...",autoFocus:!0,ariaLabel:"Enter prompt"}),c&&a.jsxs("select",{value:S,onChange:D=>j(D.target.value),className:ys.select,"aria-label":"Select persona",children:[a.jsx("option",{value:"",children:"(Default)"}),d.map(D=>a.jsx("option",{value:D.id,children:D.name},D.id))]}),a.jsx("button",{type:"submit",disabled:!_.trim()||!o,className:ys.btnPrimary,children:"Go"})]}):t==="start"?a.jsxs("form",{onSubmit:C,className:ys.bar,children:[a.jsx(Qf,{value:_,onChange:k,onSubmit:N,placeholder:"Type a message...",autoFocus:!0,ariaLabel:"Type a message"}),a.jsx("button",{type:"submit",disabled:!_.trim(),className:ys.btnPrimary,children:"Send"})]}):a.jsxs("form",{onSubmit:C,className:ys.bar,children:[T&&o&&a.jsx(Mj,{environmentId:o,onReconnect:v}),a.jsx(Qf,{value:_,onChange:k,onSubmit:N,placeholder:"Type a message...",autoFocus:!T,disabled:T,ariaLabel:"Type a message"}),a.jsx("span",{title:T?"Environment is unavailable — reconnect first":void 0,children:a.jsx("button",{type:"submit",disabled:!_.trim()||T,className:ys.btnPrimary,children:"Send"})})]})}const ky=220,Sy=70,Rj=40,Ij=60,Oj="hierarchy",Bj="dependency";function Lj(t){return y.useMemo(()=>{if(t.length===0)return{nodes:[],edges:[]};const s=new dd.graphlib.Graph({multigraph:!0});s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:"TB",nodesep:Rj,ranksep:Ij});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:ky,height:Sy});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:Oj},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:Bj},style:{stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeDasharray:"6 3"},animated:!1})}}return dd.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-ky/2,y:p.y-Sy/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 zj=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),G_=(...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 $j={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 Hj=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,...$j,width:s,height:s,stroke:t,strokeWidth:r?Number(o)*24/Number(s):o,className:G_("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 Re=(t,s)=>{const o=y.forwardRef(({className:r,...c},d)=>y.createElement(Hj,{ref:d,iconNode:s,className:G_(`lucide-${zj(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 Pj=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Uj=Re("Activity",Pj);/**
|
|
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 Vj=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],jy=Re("ArrowDown",Vj);/**
|
|
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 qj=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Ty=Re("ArrowUp",qj);/**
|
|
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 Gj=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]],Fj=Re("Ban",Gj);/**
|
|
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 Kj=[["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"}]],Zj=Re("Brain",Kj);/**
|
|
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 Yj=[["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"}]],Jj=Re("CalendarClock",Yj);/**
|
|
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 Wj=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Di=Re("Check",Wj);/**
|
|
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 Xj=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],F_=Re("ChevronDown",Xj);/**
|
|
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 Qj=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],fa=Re("ChevronRight",Qj);/**
|
|
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 eT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],wi=Re("Circle",eT);/**
|
|
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 tT=[["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"}]],nT=Re("ClipboardList",tT);/**
|
|
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 sT=[["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"}]],K_=Re("Clipboard",sT);/**
|
|
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 aT=[["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"}]],iT=Re("Cog",aT);/**
|
|
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 oT=[["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"}]],rT=Re("Copy",oT);/**
|
|
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 lT=[["polyline",{points:"15 10 20 15 15 20",key:"1q7qjw"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]],cT=Re("CornerDownRight",lT);/**
|
|
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 dT=[["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"}]],uT=Re("FilePen",dT);/**
|
|
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 fT=[["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"}]],pT=Re("FileText",fT);/**
|
|
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 mT=[["polyline",{points:"15 17 20 12 15 7",key:"1w3sku"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]],hT=Re("Forward",mT);/**
|
|
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 gT=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],vT=Re("GitBranch",gT);/**
|
|
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 yT=[["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"}]],bT=Re("Github",yT);/**
|
|
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 _T=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],xT=Re("Hash",_T);/**
|
|
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 kT=[["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"}]],ST=Re("House",kT);/**
|
|
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 jT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],wm=Re("Info",jT);/**
|
|
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 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=Re("Key",TT);/**
|
|
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 wT=[["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"}]],CT=Re("Keyboard",wT);/**
|
|
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 ET=[["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"}]],AT=Re("ListChecks",ET);/**
|
|
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 DT=[["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"}]],MT=Re("List",DT);/**
|
|
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 RT=[["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"}]],IT=Re("Loader",RT);/**
|
|
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 OT=[["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"}]],BT=Re("Menu",OT);/**
|
|
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 LT=[["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"}]],zT=Re("MessageSquare",LT);/**
|
|
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:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]],HT=Re("MessagesSquare",$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 PT=[["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"}]],UT=Re("Monitor",PT);/**
|
|
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 VT=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],qT=Re("Network",VT);/**
|
|
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 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"}]],FT=Re("Palette",GT);/**
|
|
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 KT=[["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"}]],ZT=Re("Pause",KT);/**
|
|
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 YT=[["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"}]],JT=Re("Pencil",YT);/**
|
|
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 WT=[["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"}]],XT=Re("Puzzle",WT);/**
|
|
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 QT=[["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"}]],eN=Re("RefreshCw",QT);/**
|
|
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 tN=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],qp=Re("Search",tN);/**
|
|
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 nN=[["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"}]],sN=Re("Settings",nN);/**
|
|
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 aN=[["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"}]],iN=Re("SquareCheckBig",aN);/**
|
|
252
|
-
* @license lucide-react v0.474.0 - ISC
|
|
253
|
-
*
|
|
254
|
-
* This source code is licensed under the ISC license.
|
|
255
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
256
|
-
*/const oN=[["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"}]],rN=Re("Star",oN);/**
|
|
257
|
-
* @license lucide-react v0.474.0 - ISC
|
|
258
|
-
*
|
|
259
|
-
* This source code is licensed under the ISC license.
|
|
260
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
261
|
-
*/const lN=[["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"}]],Cm=Re("TriangleAlert",lN);/**
|
|
262
|
-
* @license lucide-react v0.474.0 - ISC
|
|
263
|
-
*
|
|
264
|
-
* This source code is licensed under the ISC license.
|
|
265
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
266
|
-
*/const cN=[["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"}]],dN=Re("User",cN);/**
|
|
267
|
-
* @license lucide-react v0.474.0 - ISC
|
|
268
|
-
*
|
|
269
|
-
* This source code is licensed under the ISC license.
|
|
270
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
271
|
-
*/const uN=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ls=Re("X",uN),Z_=8,Ye=12,Pt=14,Tt=16,Gp={not_started:{color:"var(--text-tertiary)",icon:a.jsx(wi,{size:Ye}),label:"Not Started"},working:{color:"var(--accent-green)",icon:a.jsx(wi,{size:Ye,fill:"currentColor"}),label:"Working"},paused:{color:"var(--accent-yellow)",icon:a.jsx(ZT,{size:Ye}),label:"Paused"},complete:{color:"var(--accent-green)",icon:a.jsx(Di,{size:Ye}),label:"Complete"},failed:{color:"var(--accent-red)",icon:a.jsx(Ls,{size:Ye}),label:"Failed"},blocked:{color:"var(--accent-yellow)",icon:a.jsx(Fj,{size:Ye}),label:"Blocked"}};function Ja(t){return t==="blocked"?Gp.blocked:Gp[fl(t)]}const fN={not_started:"statusPending",working:"statusInProgress",paused:"statusWaitingInput",complete:"statusDone",failed:"statusFailed"};function pN(t){return fN[fl(t)]??"statusPending"}const mN=["working","paused","failed","not_started","blocked","complete"],Ny=["not_started","working","paused","complete","failed"],hN={pending:"not_started",assigned:"not_started",in_progress:"working",waiting_input:"paused",review:"paused",done:"complete"};function fl(t){return t in Gp&&t!=="blocked"?t:hN[t]??"not_started"}const gN={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"},vN="_dagContainer_9nmbw_1",yN="_taskNode_9nmbw_26",bN="_taskNodeBorder_9nmbw_54",_N="_taskNodeContent_9nmbw_60",xN="_taskNodeHeader_9nmbw_70",kN="_taskNodeIcon_9nmbw_77",SN="_taskNodeTitle_9nmbw_82",jN="_taskNodeBadges_9nmbw_90",TN="_childBadge_9nmbw_95",NN="_depBadge_9nmbw_107",wN="_handle_9nmbw_119",CN="_emptyCta_9nmbw_126",EN="_ctaDescription_9nmbw_137",AN="_ctaButton_9nmbw_144",_n={dagContainer:vN,taskNode:yN,taskNodeBorder:bN,taskNodeContent:_N,taskNodeHeader:xN,taskNodeIcon:kN,taskNodeTitle:SN,taskNodeBadges:jN,childBadge:TN,depBadge:NN,handle:wN,emptyCta:CN,ctaDescription:EN,ctaButton:AN};function DN({data:t}){const{task:s,childCount:o,doneChildCount:r,hasDependencies:c}=t,d=Ja(s.status);return a.jsxs("div",{className:_n.taskNode,"data-task-id":s.id,"data-task-title":s.title,children:[a.jsx(Bo,{type:"target",position:Lo.Top,isConnectable:!1,className:_n.handle}),a.jsx("div",{className:_n.taskNodeBorder,style:{backgroundColor:d.color}}),a.jsxs("div",{className:_n.taskNodeContent,children:[a.jsxs("div",{className:_n.taskNodeHeader,children:[a.jsx("span",{className:_n.taskNodeIcon,style:{color:d.color},children:d.icon}),a.jsx("span",{className:_n.taskNodeTitle,children:s.title})]}),a.jsxs("div",{className:_n.taskNodeBadges,children:[o>0&&a.jsxs("span",{className:_n.childBadge,children:[r,"/",o]}),c&&a.jsx("span",{className:_n.depBadge,children:"dep"})]})]}),a.jsx(Bo,{type:"source",position:Lo.Bottom,isConnectable:!1,className:_n.handle})]})}/**
|
|
272
|
-
* react-router v7.13.2
|
|
273
|
-
*
|
|
274
|
-
* Copyright (c) Remix Software Inc.
|
|
275
|
-
*
|
|
276
|
-
* This source code is licensed under the MIT license found in the
|
|
277
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
278
|
-
*
|
|
279
|
-
* @license MIT
|
|
280
|
-
*/var wy="popstate";function Cy(t){return typeof t=="object"&&t!=null&&"pathname"in t&&"search"in t&&"hash"in t&&"state"in t&&"key"in t}function MN(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 Fp("",{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:al(c)}return IN(s,o,null,t)}function Nt(t,s){if(t===!1||t===null||typeof t>"u")throw new Error(s)}function rs(t,s){if(!t){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function RN(){return Math.random().toString(36).substring(2,10)}function Ey(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 Fp(t,s,o=null,r,c){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof s=="string"?qo(s):s,state:o,key:s&&s.key||r||RN(),unstable_mask:c}}function al({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 qo(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 IN(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 b(){p="POP";let T=v(),N=T==null?null:T-g;g=T,m&&m({action:p,location:j.location,delta:N})}function _(T,N){p="PUSH";let C=Cy(T)?T:Fp(j.location,T,N);g=v()+1;let D=Ey(C,g),A=j.createHref(C.unstable_mask||C);try{u.pushState(D,"",A)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;c.location.assign(A)}d&&m&&m({action:p,location:j.location,delta:1})}function k(T,N){p="REPLACE";let C=Cy(T)?T:Fp(j.location,T,N);g=v();let D=Ey(C,g),A=j.createHref(C.unstable_mask||C);u.replaceState(D,"",A),d&&m&&m({action:p,location:j.location,delta:0})}function S(T){return ON(T)}let j={get action(){return p},get location(){return t(c,u)},listen(T){if(m)throw new Error("A history only accepts one active listener");return c.addEventListener(wy,b),m=T,()=>{c.removeEventListener(wy,b),m=null}},createHref(T){return s(c,T)},createURL:S,encodeLocation(T){let N=S(T);return{pathname:N.pathname,search:N.search,hash:N.hash}},push:_,replace:k,go(T){return u.go(T)}};return j}function ON(t,s=!1){let o="http://localhost";typeof window<"u"&&(o=window.location.origin!=="null"?window.location.origin:window.location.href),Nt(o,"No window.location.(origin|href) available to create URL");let r=typeof t=="string"?t:al(t);return r=r.replace(/ $/,"%20"),!s&&r.startsWith("//")&&(r=o+r),new URL(r,o)}function Y_(t,s,o="/"){return BN(t,s,o,!1)}function BN(t,s,o,r){let c=typeof s=="string"?qo(s):s,d=da(c.pathname||"/",o);if(d==null)return null;let u=J_(t);LN(u);let p=null;for(let m=0;p==null&&m<u.length;++m){let g=X_(d);p=FN(u[m],g,r)}return p}function J_(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;Nt(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 b=Rs([r,v.relativePath]),_=o.concat(v);u.children&&u.children.length>0&&(Nt(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),J_(u.children,s,_,b,m)),!(u.path==null&&!u.index)&&s.push({path:b,score:qN(b,u.index),routesMeta:_})};return t.forEach((u,p)=>{var m;if(u.path===""||!((m=u.path)!=null&&m.includes("?")))d(u,p);else for(let g of W_(u.path))d(u,p,!0,g)}),s}function W_(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=W_(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 LN(t){t.sort((s,o)=>s.score!==o.score?o.score-s.score:GN(s.routesMeta.map(r=>r.childrenIndex),o.routesMeta.map(r=>r.childrenIndex)))}var zN=/^:[\w-]+$/,$N=3,HN=2,PN=1,UN=10,VN=-2,Ay=t=>t==="*";function qN(t,s){let o=t.split("/"),r=o.length;return o.some(Ay)&&(r+=VN),s&&(r+=HN),o.filter(c=>!Ay(c)).reduce((c,d)=>c+(zN.test(d)?$N:d===""?PN:UN),r)}function GN(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 FN(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)||"/",b=il({path:m.relativePath,caseSensitive:m.caseSensitive,end:g},v),_=m.route;if(!b&&g&&o&&!r[r.length-1].route.index&&(b=il({path:m.relativePath,caseSensitive:m.caseSensitive,end:!1},v)),!b)return null;Object.assign(c,b.params),u.push({params:c,pathname:Rs([d,b.pathname]),pathnameBase:WN(Rs([d,b.pathnameBase])),route:_}),b.pathnameBase!=="/"&&(d=Rs([d,b.pathnameBase]))}return u}function il(t,s){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[o,r]=KN(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[_]||"";u=d.slice(0,d.length-S.length).replace(/(.)\/+$/,"$1")}const k=p[_];return b&&!k?g[v]=void 0:g[v]=(k||"").replace(/%2F/g,"/"),g},{}),pathname:d,pathnameBase:u,pattern:t}}function KN(t,s=!1,o=!0){rs(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 b=v.charAt(g+u.length);return b&&b!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}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 X_(t){try{return t.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return rs(!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 da(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 ZN=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function YN(t,s="/"){let{pathname:o,search:r="",hash:c=""}=typeof t=="string"?qo(t):t,d;return o?(o=o.replace(/\/\/+/g,"/"),o.startsWith("/")?d=Dy(o.substring(1),"/"):d=Dy(o,s)):d=s,{pathname:d,search:XN(r),hash:QN(c)}}function Dy(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 ep(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 JN(t){return t.filter((s,o)=>o===0||s.route.path&&s.route.path.length>0)}function Em(t){let s=JN(t);return s.map((o,r)=>r===s.length-1?o.pathname:o.pathnameBase)}function Nd(t,s,o,r=!1){let c;typeof t=="string"?c=qo(t):(c={...t},Nt(!c.pathname||!c.pathname.includes("?"),ep("?","pathname","search",c)),Nt(!c.pathname||!c.pathname.includes("#"),ep("#","pathname","hash",c)),Nt(!c.search||!c.search.includes("#"),ep("#","search","hash",c)));let d=t===""||c.pathname==="",u=d?"/":c.pathname,p;if(u==null)p=o;else{let b=s.length-1;if(!r&&u.startsWith("..")){let _=u.split("/");for(;_[0]==="..";)_.shift(),b-=1;c.pathname=_.join("/")}p=b>=0?s[b]:"/"}let m=YN(c,p),g=u&&u!=="/"&&u.endsWith("/"),v=(d||u===".")&&o.endsWith("/");return!m.pathname.endsWith("/")&&(g||v)&&(m.pathname+="/"),m}var Rs=t=>t.join("/").replace(/\/\/+/g,"/"),WN=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),XN=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,QN=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,ew=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 tw(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function nw(t){return t.map(s=>s.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Q_=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function ex(t,s){let o=t;if(typeof o!="string"||!ZN.test(o))return{absoluteURL:void 0,isExternal:!1,to:o};let r=o,c=!1;if(Q_)try{let d=new URL(window.location.href),u=o.startsWith("//")?new URL(d.protocol+o):new URL(o),p=da(u.pathname,s);u.origin===d.origin&&p!=null?o=p+u.search+u.hash:c=!0}catch{rs(!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 tx=["POST","PUT","PATCH","DELETE"];new Set(tx);var sw=["GET",...tx];new Set(sw);var Go=y.createContext(null);Go.displayName="DataRouter";var wd=y.createContext(null);wd.displayName="DataRouterState";var aw=y.createContext(!1),nx=y.createContext({isTransitioning:!1});nx.displayName="ViewTransition";var iw=y.createContext(new Map);iw.displayName="Fetchers";var ow=y.createContext(null);ow.displayName="Await";var Pn=y.createContext(null);Pn.displayName="Navigation";var pl=y.createContext(null);pl.displayName="Location";var cs=y.createContext({outlet:null,matches:[],isDataRoute:!1});cs.displayName="Route";var Am=y.createContext(null);Am.displayName="RouteError";var sx="REACT_ROUTER_ERROR",rw="REDIRECT",lw="ROUTE_ERROR_RESPONSE";function cw(t){if(t.startsWith(`${sx}:${rw}:{`))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 dw(t){if(t.startsWith(`${sx}:${lw}:{`))try{let s=JSON.parse(t.slice(40));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string")return new ew(s.status,s.statusText,s.data)}catch{}}function uw(t,{relative:s}={}){Nt(Mi(),"useHref() may be used only in the context of a <Router> component.");let{basename:o,navigator:r}=y.useContext(Pn),{hash:c,pathname:d,search:u}=ml(t,{relative:s}),p=d;return o!=="/"&&(p=d==="/"?o:Rs([o,d])),r.createHref({pathname:p,search:u,hash:c})}function Mi(){return y.useContext(pl)!=null}function Wt(){return Nt(Mi(),"useLocation() may be used only in the context of a <Router> component."),y.useContext(pl).location}function sn(t){Nt(Mi(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:s}=Wt();return y.useMemo(()=>il(t,X_(s)),[s,t])}var ax="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ix(t){y.useContext(Pn).static||y.useLayoutEffect(t)}function Cd(){let{isDataRoute:t}=y.useContext(cs);return t?Nw():fw()}function fw(){Nt(Mi(),"useNavigate() may be used only in the context of a <Router> component.");let t=y.useContext(Go),{basename:s,navigator:o}=y.useContext(Pn),{matches:r}=y.useContext(cs),{pathname:c}=Wt(),d=JSON.stringify(Em(r)),u=y.useRef(!1);return ix(()=>{u.current=!0}),y.useCallback((m,g={})=>{if(rs(u.current,ax),!u.current)return;if(typeof m=="number"){o.go(m);return}let v=Nd(m,JSON.parse(d),c,g.relative==="path");t==null&&s!=="/"&&(v.pathname=v.pathname==="/"?s:Rs([s,v.pathname])),(g.replace?o.replace:o.push)(v,g.state,g)},[s,o,d,c,t])}var pw=y.createContext(null);function mw(t){let s=y.useContext(cs).outlet;return y.useMemo(()=>s&&y.createElement(pw.Provider,{value:t},s),[s,t])}function pa(){let{matches:t}=y.useContext(cs),s=t[t.length-1];return s?s.params:{}}function ml(t,{relative:s}={}){let{matches:o}=y.useContext(cs),{pathname:r}=Wt(),c=JSON.stringify(Em(o));return y.useMemo(()=>Nd(t,JSON.parse(c),r,s==="path"),[t,c,r,s])}function hw(t,s){return ox(t,s)}function ox(t,s,o){var T;Nt(Mi(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=y.useContext(Pn),{matches:c}=y.useContext(cs),d=c[c.length-1],u=d?d.params:{},p=d?d.pathname:"/",m=d?d.pathnameBase:"/",g=d&&d.route;{let N=g&&g.path||"";lx(p,!g||N.endsWith("*")||N.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${p}" (under <Route path="${N}">) 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.
|
|
281
|
-
|
|
282
|
-
Please change the parent <Route path="${N}"> to <Route path="${N==="/"?"*":`${N}/*`}">.`)}let v=Wt(),b;if(s){let N=typeof s=="string"?qo(s):s;Nt(m==="/"||((T=N.pathname)==null?void 0:T.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 "${N.pathname}" was given in the \`location\` prop.`),b=N}else b=v;let _=b.pathname||"/",k=_;if(m!=="/"){let N=m.replace(/^\//,"").split("/");k="/"+_.replace(/^\//,"").split("/").slice(N.length).join("/")}let S=Y_(t,{pathname:k});rs(g||S!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),rs(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 "${b.pathname}${b.search}${b.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=_w(S&&S.map(N=>Object.assign({},N,{params:Object.assign({},u,N.params),pathname:Rs([m,r.encodeLocation?r.encodeLocation(N.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:N.pathname]),pathnameBase:N.pathnameBase==="/"?m:Rs([m,r.encodeLocation?r.encodeLocation(N.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:N.pathnameBase])})),c,o);return s&&j?y.createElement(pl.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...b},navigationType:"POP"}},j):j}function gw(){let t=Tw(),s=tw(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 vw=y.createElement(gw,null),rx=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=dw(t.digest);o&&(t=o)}let s=t!==void 0?y.createElement(cs.Provider,{value:this.props.routeContext},y.createElement(Am.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?y.createElement(yw,{error:t},s):s}};rx.contextType=aw;var tp=new WeakMap;function yw({children:t,error:s}){let{basename:o}=y.useContext(Pn);if(typeof s=="object"&&s&&"digest"in s&&typeof s.digest=="string"){let r=cw(s.digest);if(r){let c=tp.get(s);if(c)throw c;let d=ex(r.location,o);if(Q_&&!tp.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 tp.set(s,u),u}return y.createElement("meta",{httpEquiv:"refresh",content:`0;url=${d.absoluteURL||d.to}`})}}return t}function bw({routeContext:t,match:s,children:o}){let r=y.useContext(Go);return r&&r.static&&r.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=s.route.id),y.createElement(cs.Provider,{value:t},o)}function _w(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(b=>b.route.id&&(d==null?void 0:d[b.route.id])!==void 0);Nt(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 b=c[v];if((b.route.HydrateFallback||b.route.hydrateFallbackElement)&&(p=v),b.route.id){let{loaderData:_,errors:k}=r,S=b.route.loader&&!_.hasOwnProperty(b.route.id)&&(!k||k[b.route.id]===void 0);if(b.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,b)=>{var _,k;m(v,{location:r.location,params:((k=(_=r.matches)==null?void 0:_[0])==null?void 0:k.params)??{},unstable_pattern:nw(r.matches),errorInfo:b})}:void 0;return c.reduceRight((v,b,_)=>{let k,S=!1,j=null,T=null;r&&(k=d&&b.route.id?d[b.route.id]:void 0,j=b.route.errorElement||vw,u&&(p<0&&_===0?(lx("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),S=!0,T=null):p===_&&(S=!0,T=b.route.hydrateFallbackElement||null)));let N=s.concat(c.slice(0,_+1)),C=()=>{let D;return k?D=j:S?D=T:b.route.Component?D=y.createElement(b.route.Component,null):b.route.element?D=b.route.element:D=v,y.createElement(bw,{match:b,routeContext:{outlet:v,matches:N,isDataRoute:r!=null},children:D})};return r&&(b.route.ErrorBoundary||b.route.errorElement||_===0)?y.createElement(rx,{location:r.location,revalidation:r.revalidation,component:j,error:k,children:C(),routeContext:{outlet:null,matches:N,isDataRoute:!0},onError:g}):C()},null)}function Dm(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function xw(t){let s=y.useContext(Go);return Nt(s,Dm(t)),s}function kw(t){let s=y.useContext(wd);return Nt(s,Dm(t)),s}function Sw(t){let s=y.useContext(cs);return Nt(s,Dm(t)),s}function Mm(t){let s=Sw(t),o=s.matches[s.matches.length-1];return Nt(o.route.id,`${t} can only be used on routes that contain a unique "id"`),o.route.id}function jw(){return Mm("useRouteId")}function Tw(){var r;let t=y.useContext(Am),s=kw("useRouteError"),o=Mm("useRouteError");return t!==void 0?t:(r=s.errors)==null?void 0:r[o]}function Nw(){let{router:t}=xw("useNavigate"),s=Mm("useNavigate"),o=y.useRef(!1);return ix(()=>{o.current=!0}),y.useCallback(async(c,d={})=>{rs(o.current,ax),o.current&&(typeof c=="number"?await t.navigate(c):await t.navigate(c,{fromRouteId:s,...d}))},[t,s])}var My={};function lx(t,s,o){!s&&!My[t]&&(My[t]=!0,rs(!1,o))}y.memo(ww);function ww({routes:t,future:s,state:o,isStatic:r,onError:c}){return ox(t,void 0,{state:o,isStatic:r,onError:c})}function zn({to:t,replace:s,state:o,relative:r}){Nt(Mi(),"<Navigate> may be used only in the context of a <Router> component.");let{static:c}=y.useContext(Pn);rs(!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(cs),{pathname:u}=Wt(),p=Cd(),m=Nd(t,Em(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 Ri(t){return mw(t.context)}function Ce(t){Nt(!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 Cw({basename:t="/",children:s=null,location:o,navigationType:r="POP",navigator:c,static:d=!1,unstable_useTransitions:u}){Nt(!Mi(),"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=qo(o));let{pathname:g="/",search:v="",hash:b="",state:_=null,key:k="default",unstable_mask:S}=o,j=y.useMemo(()=>{let T=da(g,p);return T==null?null:{location:{pathname:T,search:v,hash:b,state:_,key:k,unstable_mask:S},navigationType:r}},[p,g,v,b,_,k,r,S]);return rs(j!=null,`<Router basename="${p}"> is not able to match the URL "${g}${v}${b}" because it does not start with the basename, so the <Router> won't render anything.`),j==null?null:y.createElement(Pn.Provider,{value:m},y.createElement(pl.Provider,{children:s,value:j}))}function Ew({children:t,location:s}){return hw(Kp(t),s)}function Kp(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,Kp(r.props.children,d));return}Nt(r.type===Ce,`[${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>`),Nt(!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=Kp(r.props.children,d)),o.push(u)}),o}var td="get",nd="application/x-www-form-urlencoded";function Ed(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function Aw(t){return Ed(t)&&t.tagName.toLowerCase()==="button"}function Dw(t){return Ed(t)&&t.tagName.toLowerCase()==="form"}function Mw(t){return Ed(t)&&t.tagName.toLowerCase()==="input"}function Rw(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Iw(t,s){return t.button===0&&(!s||s==="_self")&&!Rw(t)}function Zp(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 Ow(t,s){let o=Zp(t);return s&&s.forEach((r,c)=>{o.has(c)||s.getAll(c).forEach(d=>{o.append(c,d)})}),o}var Hc=null;function Bw(){if(Hc===null)try{new FormData(document.createElement("form"),0),Hc=!1}catch{Hc=!0}return Hc}var Lw=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function np(t){return t!=null&&!Lw.has(t)?(rs(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${nd}"`),null):t}function zw(t,s){let o,r,c,d,u;if(Dw(t)){let p=t.getAttribute("action");r=p?da(p,s):null,o=t.getAttribute("method")||td,c=np(t.getAttribute("enctype"))||nd,d=new FormData(t)}else if(Aw(t)||Mw(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?da(m,s):null,o=t.getAttribute("formmethod")||p.getAttribute("method")||td,c=np(t.getAttribute("formenctype"))||np(p.getAttribute("enctype"))||nd,d=new FormData(p,t),!Bw()){let{name:g,type:v,value:b}=t;if(v==="image"){let _=g?`${g}.`:"";d.append(`${_}x`,"0"),d.append(`${_}y`,"0")}else g&&d.append(g,b)}}else{if(Ed(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');o=td,r=null,c=nd,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 $w(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&&da(c.pathname,s)==="/"?c.pathname=`${s.replace(/\/$/,"")}/_root.${r}`:c.pathname=`${c.pathname.replace(/\/$/,"")}.${r}`,c}async function Hw(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 Pw(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 Uw(t,s,o){let r=await Promise.all(t.map(async c=>{let d=s.routes[c.route.id];if(d){let u=await Hw(d,o);return u.links?u.links():[]}return[]}));return Fw(r.flat(1).filter(Pw).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 b;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 _=m.route.shouldRevalidate({currentUrl:new URL(c.pathname+c.search+c.hash,window.origin),currentParams:((b=o[0])==null?void 0:b.params)||{},nextUrl:new URL(t,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof _=="boolean")return _}return!0}):[]}function Vw(t,s,{includeHydrateFallback:o}={}){return qw(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 qw(t){return[...new Set(t)]}function Gw(t){let s={},o=Object.keys(t).sort();for(let r of o)s[r]=t[r];return s}function Fw(t,s){let o=new Set;return new Set(s),t.reduce((r,c)=>{let d=JSON.stringify(Gw(c));return o.has(d)||(o.add(d),r.push({key:d,link:c})),r},[])}function cx(){let t=y.useContext(Go);return Rm(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function Kw(){let t=y.useContext(wd);return Rm(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var Im=y.createContext(void 0);Im.displayName="FrameworkContext";function dx(){let t=y.useContext(Im);return Rm(t,"You must render this element inside a <HydratedRouter> element"),t}function Zw(t,s){let o=y.useContext(Im),[r,c]=y.useState(!1),[d,u]=y.useState(!1),{onFocus:p,onBlur:m,onMouseEnter:g,onMouseLeave:v,onTouchStart:b}=s,_=y.useRef(null);y.useEffect(()=>{if(t==="render"&&u(!0),t==="viewport"){let j=N=>{N.forEach(C=>{u(C.isIntersecting)})},T=new IntersectionObserver(j,{threshold:.5});return _.current&&T.observe(_.current),()=>{T.disconnect()}}},[t]),y.useEffect(()=>{if(r){let j=setTimeout(()=>{u(!0)},100);return()=>{clearTimeout(j)}}},[r]);let k=()=>{c(!0)},S=()=>{c(!1),u(!1)};return o?t!=="intent"?[d,_,{}]:[d,_,{onFocus:$r(p,k),onBlur:$r(m,S),onMouseEnter:$r(g,k),onMouseLeave:$r(v,S),onTouchStart:$r(b,k)}]:[!1,_,{}]}function $r(t,s){return o=>{t&&t(o),o.defaultPrevented||s(o)}}function Yw({page:t,...s}){let{router:o}=cx(),r=y.useMemo(()=>Y_(o.routes,t,o.basename),[o.routes,t,o.basename]);return r?y.createElement(Ww,{page:t,matches:r,...s}):null}function Jw(t){let{manifest:s,routeModules:o}=dx(),[r,c]=y.useState([]);return y.useEffect(()=>{let d=!1;return Uw(t,s,o).then(u=>{d||c(u)}),()=>{d=!0}},[t,s,o]),r}function Ww({page:t,matches:s,...o}){let r=Wt(),{future:c,manifest:d,routeModules:u}=dx(),{basename:p}=cx(),{loaderData:m,matches:g}=Kw(),v=y.useMemo(()=>Ry(t,s,g,d,r,"data"),[t,s,g,d,r]),b=y.useMemo(()=>Ry(t,s,g,d,r,"assets"),[t,s,g,d,r]),_=y.useMemo(()=>{if(t===r.pathname+r.search+r.hash)return[];let j=new Set,T=!1;if(s.forEach(C=>{var A;let D=d.routes[C.route.id];!D||!D.hasLoader||(!v.some(E=>E.route.id===C.route.id)&&C.route.id in m&&((A=u[C.route.id])!=null&&A.shouldRevalidate)||D.hasClientLoader?T=!0:j.add(C.route.id))}),j.size===0)return[];let N=$w(t,p,c.unstable_trailingSlashAwareDataRequests,"data");return T&&j.size>0&&N.searchParams.set("_routes",s.filter(C=>j.has(C.route.id)).map(C=>C.route.id).join(",")),[N.pathname+N.search]},[p,c.unstable_trailingSlashAwareDataRequests,m,r,d,v,s,t,u]),k=y.useMemo(()=>Vw(b,d),[b,d]),S=Jw(b);return y.createElement(y.Fragment,null,_.map(j=>y.createElement("link",{key:j,rel:"prefetch",as:"fetch",href:j,...o})),k.map(j=>y.createElement("link",{key:j,rel:"modulepreload",href:j,...o})),S.map(({key:j,link:T})=>y.createElement("link",{key:j,nonce:o.nonce,...T,crossOrigin:T.crossOrigin??o.crossOrigin})))}function Xw(...t){return s=>{t.forEach(o=>{typeof o=="function"?o(s):o!=null&&(o.current=s)})}}var Qw=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Qw&&(window.__reactRouterVersion="7.13.2")}catch{}function eC({basename:t,children:s,unstable_useTransitions:o,window:r}){let c=y.useRef();c.current==null&&(c.current=MN({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(Cw,{basename:t,children:s,location:u.location,navigationType:u.action,navigator:d,unstable_useTransitions:o})}var ux=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,hl=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:b,viewTransition:_,unstable_defaultShouldRevalidate:k,...S},j){let{basename:T,navigator:N,unstable_useTransitions:C}=y.useContext(Pn),D=typeof v=="string"&&ux.test(v),A=ex(v,T);v=A.to;let E=uw(v,{relative:c}),R=Wt(),B=null;if(p){let ne=Nd(p,[],R.unstable_mask?R.unstable_mask.pathname:"/",!0);T!=="/"&&(ne.pathname=ne.pathname==="/"?T:Rs([T,ne.pathname])),B=N.createHref(ne)}let[M,$,Y]=Zw(r,S),U=aC(v,{replace:u,unstable_mask:p,state:m,target:g,preventScrollReset:b,relative:c,viewTransition:_,unstable_defaultShouldRevalidate:k,unstable_useTransitions:C});function X(ne){s&&s(ne),ne.defaultPrevented||U(ne)}let te=!(A.isExternal||d),G=y.createElement("a",{...S,...Y,href:(te?B:void 0)||A.absoluteURL||E,onClick:te?X:s,ref:Xw(j,$),target:g,"data-discover":!D&&o==="render"?"true":void 0});return M&&!D?y.createElement(y.Fragment,null,G,y.createElement(Yw,{page:E})):G});hl.displayName="Link";var tC=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 b=ml(u,{relative:g.relative}),_=Wt(),k=y.useContext(wd),{navigator:S,basename:j}=y.useContext(Pn),T=k!=null&&cC(b)&&p===!0,N=S.encodeLocation?S.encodeLocation(b).pathname:b.pathname,C=_.pathname,D=k&&k.navigation&&k.navigation.location?k.navigation.location.pathname:null;o||(C=C.toLowerCase(),D=D?D.toLowerCase():null,N=N.toLowerCase()),D&&j&&(D=da(D,j)||D);const A=N!=="/"&&N.endsWith("/")?N.length-1:N.length;let E=C===N||!c&&C.startsWith(N)&&C.charAt(A)==="/",R=D!=null&&(D===N||!c&&D.startsWith(N)&&D.charAt(N.length)==="/"),B={isActive:E,isPending:R,isTransitioning:T},M=E?s:void 0,$;typeof r=="function"?$=r(B):$=[r,E?"active":null,R?"pending":null,T?"transitioning":null].filter(Boolean).join(" ");let Y=typeof d=="function"?d(B):d;return y.createElement(hl,{...g,"aria-current":M,className:$,ref:v,style:Y,to:u,viewTransition:p},typeof m=="function"?m(B):m)});tC.displayName="NavLink";var nC=y.forwardRef(({discover:t="render",fetcherKey:s,navigate:o,reloadDocument:r,replace:c,state:d,method:u=td,action:p,onSubmit:m,relative:g,preventScrollReset:v,viewTransition:b,unstable_defaultShouldRevalidate:_,...k},S)=>{let{unstable_useTransitions:j}=y.useContext(Pn),T=rC(),N=lC(p,{relative:g}),C=u.toLowerCase()==="get"?"get":"post",D=typeof p=="string"&&ux.test(p),A=E=>{if(m&&m(E),E.defaultPrevented)return;E.preventDefault();let R=E.nativeEvent.submitter,B=(R==null?void 0:R.getAttribute("formmethod"))||u,M=()=>T(R||E.currentTarget,{fetcherKey:s,method:B,navigate:o,replace:c,state:d,relative:g,preventScrollReset:v,viewTransition:b,unstable_defaultShouldRevalidate:_});j&&o!==!1?y.startTransition(()=>M()):M()};return y.createElement("form",{ref:S,method:C,action:N,onSubmit:r?m:A,...k,"data-discover":!D&&t==="render"?"true":void 0})});nC.displayName="Form";function sC(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function fx(t){let s=y.useContext(Go);return Nt(s,sC(t)),s}function aC(t,{target:s,replace:o,unstable_mask:r,state:c,preventScrollReset:d,relative:u,viewTransition:p,unstable_defaultShouldRevalidate:m,unstable_useTransitions:g}={}){let v=Cd(),b=Wt(),_=ml(t,{relative:u});return y.useCallback(k=>{if(Iw(k,s)){k.preventDefault();let S=o!==void 0?o:al(b)===al(_),j=()=>v(t,{replace:S,unstable_mask:r,state:c,preventScrollReset:d,relative:u,viewTransition:p,unstable_defaultShouldRevalidate:m});g?y.startTransition(()=>j()):j()}},[b,v,_,o,r,c,s,t,d,u,p,m,g])}function Om(t){rs(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(Zp(t)),o=y.useRef(!1),r=Wt(),c=y.useMemo(()=>Ow(r.search,o.current?null:s.current),[r.search]),d=Cd(),u=y.useCallback((p,m)=>{const g=Zp(typeof p=="function"?p(new URLSearchParams(c)):p);o.current=!0,d("?"+g,m)},[d,c]);return[c,u]}var iC=0,oC=()=>`__${String(++iC)}__`;function rC(){let{router:t}=fx("useSubmit"),{basename:s}=y.useContext(Pn),o=jw(),r=t.fetch,c=t.navigate;return y.useCallback(async(d,u={})=>{let{action:p,method:m,encType:g,formData:v,body:b}=zw(d,s);if(u.navigate===!1){let _=u.fetcherKey||oC();await r(_,o,u.action||p,{unstable_defaultShouldRevalidate:u.unstable_defaultShouldRevalidate,preventScrollReset:u.preventScrollReset,formData:v,body:b,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:b,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 lC(t,{relative:s}={}){let{basename:o}=y.useContext(Pn),r=y.useContext(cs);Nt(r,"useFormAction must be used inside a RouteContext");let[c]=r.matches.slice(-1),d={...ml(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(b=>b).forEach(b=>p.append("index",b));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:Rs([o,d.pathname])),al(d)}function cC(t,{relative:s}={}){let o=y.useContext(nx);Nt(o!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=fx("useViewTransitionState"),c=ml(t,{relative:s});if(!o.isTransitioning)return!1;let d=da(o.currentLocation.pathname,r)||o.currentLocation.pathname,u=da(o.nextLocation.pathname,r)||o.nextLocation.pathname;return il(c.pathname,u)!=null||il(c.pathname,d)!=null}function xt(){const t=Cd();return y.useCallback((s,o)=>{typeof s=="number"?t(s):t(s,o)},[t])}function gl(t){return`/sessions/${encodeURIComponent(t)}`}function Ci(t,s){return s?`/environments/${encodeURIComponent(s)}/workspaces/${encodeURIComponent(t)}`:`/workspaces/${encodeURIComponent(t)}`}function ls(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 Ii(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 px(t){return`/sessions/new?${new URLSearchParams({env:t}).toString()}`}const zo="/environments",dC="/environments/new";function $o(t){return`/environments/${encodeURIComponent(t)}`}function uC(t){return`/environments/${encodeURIComponent(t)}/edit`}const Ti="/settings",fC="/settings/credentials",sp="/settings/personas",pC="/settings/personas/new";function mx(t){return`/settings/personas/${encodeURIComponent(t)}`}const ap="/settings/schedules",mC="/settings/schedules/new";function hx(t){return`/settings/schedules/${encodeURIComponent(t)}`}const hC="/settings/shortcuts",gC="/pair",vC="/chat",gx="/coordination",vx="/sessions",Fo="/",yC="/tasks",yx="/workspaces/new",bx="/knowledge",bC=gN,_C={task:DN};function xC({workspaceId:t,environmentId:s,tasks:o,resolvedThemeId:r}){const c=xt(),d=y.useMemo(()=>o.filter(b=>b.workspaceId===t),[o,t]),{nodes:u,edges:p}=Lj(d),m=y.useMemo(()=>{const b=getComputedStyle(document.documentElement),_={};for(const[k,S]of Object.entries(bC))_[k]=b.getPropertyValue(S).trim()||"#6b7a8d";return _},[r]),g=y.useCallback((b,_)=>{c(ls(_.id,void 0,t,s))},[c,t,s]),v=y.useCallback(b=>{const _=b.data;return m[_.task.status]||m.pending},[m]);return d.length===0?a.jsxs("div",{className:_n.emptyCta,children:[a.jsx("button",{className:_n.ctaButton,onClick:()=>c(Ii(t,void 0,s)),children:"Create Task"}),a.jsx("div",{className:_n.ctaDescription,children:"Create tasks to see the dependency graph"})]}):a.jsx("div",{className:_n.dagContainer,children:a.jsxs(L_,{nodes:u,edges:p,nodeTypes:_C,onNodeClick:g,nodesConnectable:!1,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:2,children:[a.jsx(z_,{variant:$_.Dots,gap:24,size:1,color:"var(--text-disabled)"}),a.jsx(H_,{showInteractive:!1}),a.jsx(P_,{nodeColor:v,maskColor:"var(--bg-overlay)",style:{background:"var(--bg-inset)"}})]})})}const kC="_breadcrumbs_17or2_1",SC="_list_17or2_11",jC="_item_17or2_21",TC="_separator_17or2_28",NC="_link_17or2_34",wC="_current_17or2_57",No={breadcrumbs:kC,list:SC,item:jC,separator:TC,link:NC,current:wC};function ma({segments:t}){return a.jsx("nav",{className:No.breadcrumbs,"aria-label":"Breadcrumb","data-testid":"breadcrumbs",children:a.jsx("ol",{className:No.list,children:t.map((s,o)=>{const r=o===t.length-1;return a.jsxs("li",{className:No.item,children:[o>0&&a.jsx("span",{className:No.separator,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),s.url&&!r?a.jsx(hl,{className:No.link,to:s.url,title:s.label,children:s.label}):a.jsx("span",{className:No.current,"aria-current":"page",title:s.label,children:s.label})]},o)})})})}const CC="_btn_dwk2o_1",EC="_sm_dwk2o_22",AC="_md_dwk2o_28",DC="_lg_dwk2o_34",MC="_primary_dwk2o_40",RC="_danger_dwk2o_55",IC="_outline_dwk2o_70",OC="_ghost_dwk2o_80",ip={btn:CC,sm:EC,md:AC,lg:DC,primary:MC,danger:RC,outline:IC,ghost:OC},an=y.forwardRef(function({variant:s="primary",size:o="md",className:r,children:c,...d},u){const p=[ip.btn,ip[s],ip[o],r].filter(Boolean).join(" ");return a.jsx("button",{ref:u,className:p,...d,children:c})}),BC="_copyButton_1bqk0_1",LC={copyButton:BC},zC=2e3;function $C({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},zC)}catch{}},[t]);return a.jsx("button",{type:"button",className:`${LC.copyButton} ${s??""}`,onClick:()=>{u().catch(()=>{})},"aria-label":r?"Copied":"Copy to clipboard","data-testid":o??"copy-button",children:r?a.jsx(Di,{size:Pt,"aria-hidden":"true"}):a.jsx(K_,{size:Pt,"aria-hidden":"true"})})}const HC="_banner_bxqlh_1",PC="_label_bxqlh_15",UC="_text_bxqlh_25",VC="_link_bxqlh_29",Pc={banner:HC,label:PC,text:UC,link:VC};function qC(){return a.jsxs("div",{className:Pc.banner,"data-testid":"demo-banner",children:[a.jsx("span",{className:Pc.label,children:"DEMO"}),a.jsxs("span",{className:Pc.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:Pc.link,children:"Install Grackle"})," ","to use it for real."]})]})}const GC="_container_og0yp_1",FC="_chevronButton_og0yp_6",KC="_mainButton_og0yp_6",ZC="_sm_og0yp_34",YC="_md_og0yp_34",JC="_lg_og0yp_34",WC="_primary_og0yp_57",XC="_danger_og0yp_70",QC="_outline_og0yp_83",eE="_ghost_og0yp_92",tE="_dropdown_og0yp_100",nE="_option_og0yp_113",sE="_optionLabel_og0yp_130",aE="_optionDesc_og0yp_135",aa={container:GC,chevronButton:FC,mainButton:KC,sm:ZC,md:YC,lg:JC,primary:WC,danger:XC,outline:QC,ghost:eE,dropdown:tE,option:nE,optionLabel:sE,optionDesc:aE};function _x({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 _(k){m.current&&k.target instanceof Node&&!m.current.contains(k.target)&&p(!1)}return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[u]),y.useEffect(()=>{if(!u)return;function _(k){k.key==="Escape"&&p(!1)}return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[u]);const g=aa[r]||"",v=aa[c]||"",b=()=>{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:b,"data-testid":d?`${d}-main`:void 0,children:t}),a.jsx("button",{type:"button",className:`${aa.chevronButton} ${g} ${v}`,onClick:()=>p(_=>!_),"aria-label":`More options for ${t}`,"aria-haspopup":"menu","aria-expanded":u,"data-testid":d?`${d}-chevron`:void 0,children:a.jsx(F_,{size:Pt,"aria-hidden":"true"})}),u&&a.jsx("div",{className:aa.dropdown,"data-testid":d?`${d}-menu`:void 0,children:o.map((_,k)=>a.jsxs("button",{type:"button",className:aa.option,onClick:()=>{_.onClick(),p(!1)},children:[a.jsx("span",{className:aa.optionLabel,children:_.label}),_.description&&a.jsx("span",{className:aa.optionDesc,children:_.description})]},k))})]})}function Yp(){Yp=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)),ud(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&&ud(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)},Yp.apply(this,arguments)}function ud(t,s){return ud=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(o,r){return o.__proto__=r,o},ud(t,s)}function Iy(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 op(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 Iy(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)?Iy(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.
|
|
283
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var iE=(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){uj(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,b=(function(E){for(var R,B=op(E.properties.className);!(R=B()).done;){var M=R.value;if(M.slice(0,9)==="language-")return M.slice(9).toLowerCase()}return null})(r);if(!b&&s.defaultLanguage&&r.properties.className.push("language-"+(b=s.defaultLanguage)),r.properties.className.push("code-highlight"),b)try{var _,k;k=(_=b)!=null&&_.includes("diff-")?b.split("-")[1]:b,g=t.highlight(Lc(r),k),d.properties.className=(d.properties.className||[]).concat("language-"+k)}catch(E){if(!s.ignoreMissing||!/Unknown language/.test(E.message))throw E;g=r}else g=r;g.children=(v=1,function E(R){return R.reduce(function(B,M){if(M.type==="text"){var $=M.value,Y=($.match(/\n/g)||"").length;if(Y===0)M.position={start:{line:v,column:1},end:{line:v,column:1}},B.push(M);else for(var U,X=$.split(`
|
|
284
|
-
`),te=op(X.entries());!(U=te()).done;){var G=U.value,ne=G[0],H=G[1];B.push({type:"text",value:ne===X.length-1?H:H+`
|
|
285
|
-
`,position:{start:{line:v+ne,column:1},end:{line:v+ne,column:1}}})}return v+=Y,B}if(Object.prototype.hasOwnProperty.call(M,"children")){var O=v;return M.children=E(M.children),B.push(M),M.position={start:{line:O,column:1},end:{line:v,column:1}},B}return B.push(M),B},[])})(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 R=/{([\d,-]+)}/,B=E.split(",").map(function(Y){return Y.trim()}).join();if(R.test(B)){var M=R.exec(B)[1],$=pj(M);return function(Y){return $.includes(Y+1)}}return function(){return!1}})(m),T=(function(E){var R=Yp(/showLineNumbers=(\d+)/i,{lines:1});if(R.test(E)){var B=R.exec(E);return Number(B.groups.lines)}return 1})(m),N=(function(E){for(var R=new Array(E),B=0;B<E;B++)R[B]={type:"element",tagName:"span",properties:{className:[]},children:[]};return R})(g.position.end.line),C=["showlinenumbers=false",'showlinenumbers="false"',"showlinenumbers={false}"],D=function(){var E,R,B=S.value,M=B[0],$=B[1];$.properties.className=["code-line"];var Y=mj(g,function(U){return U.position.start.line<=M+1&&U.position.end.line>=M+1});$.children=Y.children,(m.toLowerCase().includes("showLineNumbers".toLowerCase())||s.showLineNumbers===!0||typeof s.showLineNumbers=="object"&&s.showLineNumbers.includes(b))&&!C.some(function(U){return m.toLowerCase().includes(U)})&&($.properties.line=[(M+T).toString()],$.properties.className.push("line-number")),j(M)&&$.properties.className.push("highlight-line"),(b==="diff"||(E=b)!=null&&E.includes("diff-"))&&Lc($).substring(0,1)==="-"?$.properties.className.push("deleted"):(b==="diff"||(R=b)!=null&&R.includes("diff-"))&&Lc($).substring(0,1)==="+"&&$.properties.className.push("inserted")},A=op(N.entries());!(S=A()).done;)D();N.length>0&&Lc(N[N.length-1]).trim()===""&&N.pop(),r.children=N}}}})(fj);function Ho(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 Ms(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 Oy=new Set(["grackle"]);function vl(t){if(!t)return"";if(t.startsWith("mcp__")){const o=t.indexOf("__",5);if(o>5){const r=t.slice(5,o);if(Oy.has(r))return t.slice(o+2)}}const s=t.indexOf("-");if(s>0){const o=t.slice(0,s);if(Oy.has(o))return t.slice(s+1)}return t}const oE={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",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 rE(t){const s=vl(t);return oE[s.toLowerCase()]??"generic"}const lE="_card_qkm9i_2",cE="_cardBlue_qkm9i_20",dE="_cardOrange_qkm9i_24",uE="_cardGreen_qkm9i_28",fE="_cardPurple_qkm9i_32",pE="_cardNeutral_qkm9i_36",mE="_cardRed_qkm9i_40",hE="_cardTeal_qkm9i_44",gE="_header_qkm9i_48",vE="_icon_qkm9i_55",yE="_toolName_qkm9i_64",bE="_fileName_qkm9i_71",_E="_badge_qkm9i_80",xE="_spacer_qkm9i_87",kE="_bodyToggle_qkm9i_91",SE="_chevron_qkm9i_109",jE="_chevronExpanded_qkm9i_115",TE="_pre_qkm9i_119",NE="_diffAdd_qkm9i_143",wE="_diffRemove_qkm9i_155",CE="_diffContext_qkm9i_167",EE="_diffHeader_qkm9i_176",AE="_diffLine_qkm9i_182",DE="_exitOk_qkm9i_188",ME="_exitError_qkm9i_194",RE="_exitPending_qkm9i_200",IE="_inProgress_qkm9i_228",OE="_metadata_qkm9i_232",BE="_metadataPrefix_qkm9i_239",L={card:lE,cardBlue:cE,cardOrange:dE,cardGreen:uE,cardPurple:fE,cardNeutral:pE,cardRed:mE,cardTeal:hE,header:gE,icon:vE,toolName:yE,fileName:bE,badge:_E,spacer:xE,bodyToggle:kE,chevron:SE,chevronExpanded:jE,pre:TE,diffAdd:NE,diffRemove:wE,diffContext:CE,diffHeader:EE,diffLine:AE,exitOk:DE,exitError:ME,exitPending:RE,inProgress:IE,metadata:OE,metadataPrefix:BE};function LE(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 zE(t){const s=t.split(/[/\\]/);return s[s.length-1]||t}const rp=5;function By({tool:t,args:s,result:o,isError:r,writeVariant:c}){const[d,u]=y.useState(!1),p=LE(s),m=zE(p),g=o===void 0,v=r?L.cardRed:c?L.cardGreen:L.cardBlue,b=c?"var(--accent-green)":"var(--accent-blue)",_=c?a.jsx(uT,{size:Pt}):a.jsx(pT,{size:Pt}),k=c?"tool-card-file-write":"tool-card-file-read",S=(o==null?void 0:o.split(`
|
|
286
|
-
`))??[],j=S.length>rp,T=d?S:S.slice(0,rp);return a.jsxs("div",{className:`${L.card} ${v} ${g?L.inProgress:""}`,"data-testid":k,children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,children:_}),a.jsx("span",{className:L.toolName,style:{color:b},children:t}),m&&a.jsx("span",{className:L.fileName,title:p,children:m}),!g&&S.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,children:[S.length," lines"]})]})]}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&!g&&S.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-content",children:T.map((N,C)=>a.jsxs("span",{className:L.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}),N]},C))}),j&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{u(N=>!N)},"aria-expanded":d,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${d?L.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),d?"collapse":`${S.length-rp} more lines`]})]})]})}function $E(t){const s=t.split(`
|
|
287
|
-
`),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 HE(t,s){const o=t.split(`
|
|
288
|
-
`),r=s.split(`
|
|
289
|
-
`),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 PE(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 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 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 qE(t){const s=t.split(/[/\\]/);return s[s.length-1]||t}function GE(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=$E(r);if(c.length>0)return c}}const o=VE(t);if(o)return HE(o.oldStr,o.newStr)}const lp=5;function FE({tool:t,args:s,result:o,isError:r,detailedResult:c}){const[d,u]=y.useState(!1),p=UE(s),m=qE(p),g=o===void 0,v=GE(s,c),b=v?PE(v):null,_=((v==null?void 0:v.length)??0)>lp,k=d?v:v==null?void 0:v.slice(0,lp);return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardOrange} ${g?L.inProgress:""}`,"data-testid":"tool-card-file-edit",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,children:a.jsx(JT,{size:Pt})}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-yellow)"},children:t}),m&&a.jsx("span",{className:L.fileName,title:p,children:m}),b&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,"data-testid":"tool-card-diff-stats",children:[a.jsxs("span",{style:{color:"var(--accent-green)"},children:["+",b.added]})," ",a.jsxs("span",{style:{color:"var(--accent-red)"},children:["−",b.removed]})]})]})]}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&k&&k.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-diff",children:k.map((S,j)=>{let T=L.diffContext;return S.type==="add"&&(T=L.diffAdd),S.type==="remove"&&(T=L.diffRemove),S.type==="header"&&(T=L.diffHeader),a.jsx("span",{className:`${L.diffLine} ${T}`,children:S.content},j)})}),_&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{u(S=>!S)},"aria-expanded":d,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${d?L.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),d?"collapse":`${((v==null?void 0:v.length)??0)-lp} more lines`]})]}),!r&&!v&&!g&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-content",children:o})]})}const KE=/^\[exit (\d+)\]\s*/;function ZE(t){const s=KE.exec(t);return s?{exitCode:Number(s[1]),output:t.slice(s[0].length)}:{exitCode:void 0,output:t}}function YE(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 cp=3;function WE({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=YE(s),p=JE(u),m=o===void 0,g=o?ZE(o):null,v=(g==null?void 0:g.output.split(`
|
|
290
|
-
`))??[],b=v.length>cp,_=c?v:v.slice(0,cp),k=g==null?void 0:g.exitCode,S=r||k!==void 0&&k!==0;return a.jsxs("div",{className:`${L.card} ${S?L.cardRed:L.cardNeutral}`,"data-testid":"tool-card-shell",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,style:{color:"var(--text-secondary)",fontFamily:"var(--font-mono)",fontWeight:"bold"},children:"$"}),a.jsx("span",{className:L.fileName,style:{flex:1,color:"var(--text-primary)"},title:u!==p?u:void 0,"data-testid":"tool-card-command",children:p}),k!==void 0&&a.jsxs("span",{className:k===0?L.exitOk:L.exitError,"data-testid":"tool-card-exit-code",children:[k===0?a.jsx(Di,{size:Ye,"aria-hidden":"true"}):a.jsx(Ls,{size:Ye,"aria-hidden":"true"})," ","exit ",k]}),m&&a.jsx("span",{className:L.exitPending,"data-testid":"tool-card-pending",children:a.jsx(IT,{size:Ye,"aria-hidden":"true"})})]}),!m&&g&&g.output.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-output",children:_.join(`
|
|
291
|
-
`)}),b&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(j=>!j)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),c?"collapse":`${v.length-cp} more lines`]})]})]})}function XE(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 dp=5;function QE({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),{pattern:u,path:p}=XE(s),m=o===void 0,g=(o==null?void 0:o.split(`
|
|
292
|
-
`).filter(_=>_.length>0))??[],v=g.length>dp,b=c?g:g.slice(0,dp);return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardPurple} ${m?L.inProgress:""}`,"data-testid":"tool-card-search",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,children:a.jsx(qp,{size:Pt})}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:t}),u&&a.jsxs("span",{className:L.fileName,"data-testid":"tool-card-pattern",children:['"',u,'"']}),p&&a.jsxs("span",{className:L.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:L.spacer}),a.jsxs("span",{className:L.badge,"data-testid":"tool-card-match-count",children:[g.length," ",g.length===1?"match":"matches"]})]})]}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&b.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-results",children:b.join(`
|
|
293
|
-
`)}),v&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(_=>!_)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),c?"collapse":`${g.length-dp} more matches`]})]})]})}const eA="_progressBar_14f5c_1",tA="_progressFill_14f5c_9",nA="_activeTask_14f5c_16",sA="_activeIcon_14f5c_27",aA="_todoPulse_14f5c_1",iA="_activeText_14f5c_34",oA="_checklist_14f5c_48",rA="_item_14f5c_55",lA="_itemIcon_14f5c_65",cA="_itemText_14f5c_73",dA="_pending_14f5c_78",uA="_in_progress_14f5c_85",fA="_completed_14f5c_97",pA="_emptyMessage_14f5c_108",ms={progressBar:eA,progressFill:tA,activeTask:nA,activeIcon:sA,todoPulse:aA,activeText:iA,checklist:oA,item:rA,itemIcon:lA,itemText:cA,pending:dA,in_progress:uA,completed:fA,emptyMessage:pA},mA=/^[-*]\s*\[([ xX~!/])\]\s*(.+)$/;function hA(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"?gA(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 gA(t){const s=t.split(`
|
|
294
|
-
`),o=[];for(const r of s){const c=mA.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 vA(t){switch(t){case"completed":return a.jsx(Di,{size:Ye});case"in_progress":return a.jsx(wi,{size:Ye,fill:"currentColor"});default:return a.jsx(wi,{size:Ye})}}function yA({args:t}){const s=hA(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:`${L.card} ${L.cardBlue}`,"data-testid":"tool-card-todo",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,children:a.jsx(AT,{size:Pt})}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-blue)"},children:c?"Todos cleared":"Todos"}),!c&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,"data-testid":"tool-card-todo-progress",children:[o,"/",s.length]})]})]}),!c&&a.jsx("div",{className:ms.progressBar,"data-testid":"tool-card-todo-bar",children:a.jsx("div",{className:ms.progressFill,style:{width:`${o/s.length*100}%`}})}),r&&a.jsxs("div",{className:ms.activeTask,"data-testid":"tool-card-todo-active",children:[a.jsx("span",{className:ms.activeIcon,children:a.jsx(wi,{size:Ye,fill:"currentColor"})}),a.jsx("span",{className:ms.activeText,children:r.activeForm||r.content})]}),!c&&a.jsx("div",{className:ms.checklist,"data-testid":"tool-card-todo-list",children:s.map((d,u)=>a.jsxs("div",{className:`${ms.item} ${ms[d.status]}`,"data-testid":"tool-card-todo-item",children:[a.jsx("span",{className:ms.itemIcon,children:vA(d.status)}),a.jsx("span",{className:ms.itemText,children:d.content})]},u))}),c&&a.jsx("div",{className:ms.emptyMessage,children:"All items completed and cleared."})]})}function bA(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 _A({tool:t,args:s}){const o=bA(t,s);return a.jsxs("div",{className:L.metadata,"data-testid":"tool-card-metadata",children:[a.jsx("span",{className:L.metadataPrefix,children:a.jsx(cT,{size:Ye})}),o]})}function xA(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 kA(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 zy(t){switch(t){case"complete":case"completed":return"✓";case"working":case"in_progress":return"●";case"paused":return"⏸";case"failed":return"✗";default:return"○"}}function SA(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 up=5;function jA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=vl(t),p=xA(s),m=o===void 0,{single:g,list:v,sessionId:b}=kA(o),_=(g==null?void 0:g.title)??p.title,k=(g==null?void 0:g.status)??p.status;return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardBlue} ${m?L.inProgress:""}`,"data-testid":"tool-card-task",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,"aria-hidden":"true",children:"📋"}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-blue)"},children:u}),_&&a.jsxs("span",{className:L.fileName,"data-testid":"tool-card-task-title",children:['"',_,'"']}),!_&&p.taskId&&a.jsx("span",{className:L.fileName,"data-testid":"tool-card-task-id",children:p.taskId}),k&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,style:{color:SA(k)},"data-testid":"tool-card-task-status",children:[zy(k)," ",k]})]}),v&&!k&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,"data-testid":"tool-card-task-count",children:[v.length," ",v.length===1?"task":"tasks"]})]})]}),m&&!_&&!p.taskId&&s!==null&&s!==void 0&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&b&&a.jsxs("div",{className:L.pre,style:{padding:"4px 8px",fontSize:"0.85em"},"data-testid":"tool-card-task-session",children:["session: ",b]}),!r&&g&&!v&&!b&&a.jsx("pre",{className:L.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(`
|
|
295
|
-
`)}),!r&&v&&v.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-task-list",children:(c?v:v.slice(0,up)).map(S=>{const j=zy(S.status),T=S.title??S.id??"untitled";return`${j} ${T}`}).join(`
|
|
296
|
-
`)}),v.length>up&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(S=>!S)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${v.length-up} more tasks`]})]})]})}function TA(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 NA(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 wA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=vl(t),p=TA(s),m=o===void 0,g=NA(o),v=g.status??p.status,b=g.summary??p.summary;return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardGreen} ${m?L.inProgress:""}`,"data-testid":"tool-card-workpad",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,"aria-hidden":"true",children:"📓"}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-green, #4ade80)"},children:u}),v&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsx("span",{className:L.badge,"data-testid":"tool-card-workpad-status",children:v})]})]}),b&&a.jsx("pre",{className:L.pre,style:{whiteSpace:"pre-wrap"},"data-testid":"tool-card-workpad-summary",children:b}),m&&!b&&s!==null&&s!==void 0&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&o&&!b&&!v&&!g.extra&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-result",children:o}),!r&&g.extra&&a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(_=>!_)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,children:"▸"}),c?"collapse":"extra data"]}),c&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-workpad-extra",children:JSON.stringify(g.extra,null,2)})]})]})}function CA(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 EA(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 fp=5;function AA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=vl(t),p=CA(s),m=o===void 0,g=EA(o);return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardPurple} ${m?L.inProgress:""}`,"data-testid":"tool-card-knowledge",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,"aria-hidden":"true",children:"🧠"}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:u}),p.query&&a.jsxs("span",{className:L.fileName,"data-testid":"tool-card-knowledge-query",children:['"',p.query,'"']}),p.id&&!p.query&&a.jsx("span",{className:L.fileName,"data-testid":"tool-card-knowledge-id",children:p.id}),g.results&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.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:L.spacer}),a.jsxs("span",{className:L.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:L.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&g.results&&g.results.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-knowledge-results",children:(c?g.results:g.results.slice(0,fp)).map(v=>{var k,S,j;const b=((k=v.node)==null?void 0:k.title)??((S=v.node)==null?void 0:S.label)??((j=v.node)==null?void 0:j.id)??"node",_=v.score!==void 0?` (${(v.score*100).toFixed(0)}%)`:"";return`${b}${_}`}).join(`
|
|
297
|
-
`)}),g.results.length>fp&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(v=>!v)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.results.length-fp} more results`]})]}),!r&&g.node&&!g.results&&a.jsx("pre",{className:L.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(`
|
|
298
|
-
`)})]})}function DA(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 MA(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 RA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),u=vl(t),p=DA(s),m=o===void 0,g=MA(o);let v="";p.pipe?v=`[${p.pipe}]`:p.fd!==void 0?v=`fd:${p.fd}`:p.name&&(v=`"${p.name}"`);const b=p.prompt?p.prompt.length>60?`${p.prompt.slice(0,60)}...`:p.prompt:void 0;return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardOrange} ${m?L.inProgress:""}`,"data-testid":"tool-card-ipc",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,"aria-hidden":"true",children:"🔀"}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-yellow, #fbbf24)"},children:u}),v&&a.jsx("span",{className:L.fileName,"data-testid":"tool-card-ipc-info",children:v}),b&&a.jsx("span",{className:L.fileName,title:p.prompt,"data-testid":"tool-card-ipc-prompt",children:b}),g.fds&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.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:L.spacer}),a.jsx("span",{className:L.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&&!b&&!v&&s!==null&&s!==void 0&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-args",children:JSON.stringify(s,null,2)}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&g.sessionId&&a.jsxs("div",{className:L.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:L.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:L.pre,"data-testid":"tool-card-ipc-fds",children:(c?g.fds:g.fds.slice(0,5)).map(_=>{const k=[`fd:${_.fd??"?"}`,_.permission??"",_.deliveryMode??""];return _.streamName&&k.push(_.streamName),_.owned&&k.push("(owned)"),k.filter(Boolean).join(" ")}).join(`
|
|
299
|
-
`)}),g.fds.length>5&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(_=>!_)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.fds.length-5} more fds`]})]})]})}function IA(t){if(t==null||typeof t!="object")return"";const s=t;return typeof s.query=="string"?s.query:""}const pp=8;function OA({args:t,result:s,isError:o}){const[r,c]=y.useState(!1),d=IA(t),u=s===void 0,p=(s==null?void 0:s.split(`
|
|
300
|
-
`))??[],m=p.length>pp,g=r?s:p.slice(0,pp).join(`
|
|
301
|
-
`);return a.jsxs("div",{className:`${L.card} ${o?L.cardRed:L.cardNeutral} ${u?L.inProgress:""}`,"data-testid":"tool-card-tool-search",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,"aria-hidden":"true",children:"🔧"}),a.jsx("span",{className:L.toolName,children:"ToolSearch"}),d&&a.jsxs("span",{className:L.fileName,"data-testid":"tool-card-tool-search-query",children:['"',d,'"']}),!u&&!o&&s&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:L.spacer}),a.jsxs("span",{className:L.badge,"data-testid":"tool-card-tool-search-count",children:[p.length," lines"]})]})]}),u&&!d&&t!==null&&t!==void 0&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-args",children:JSON.stringify(t,null,2)}),o&&s&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:s}),!o&&!u&&s&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-tool-search-result",children:g}),m&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{c(v=>!v)},"aria-expanded":r,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${r?L.chevronExpanded:""}`,children:"▸"}),r?"collapse":`${p.length-pp} more lines`]})]})]})}function BA(t){const s=/^mcp__([^_]+(?:_[^_]+)*)__(.+)$/.exec(t);return s?{display:`${s[1]} / ${s[2]}`,isMcp:!0}:{display:t,isMcp:!1}}function LA(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 mp=5;function zA({tool:t,args:s,result:o,isError:r}){const[c,d]=y.useState(!1),{display:u}=BA(t),p=LA(s),m=o===void 0,g=(o==null?void 0:o.split(`
|
|
302
|
-
`))??[],v=g.length>mp,b=c?o:g.slice(0,mp).join(`
|
|
303
|
-
`);let _="";if(s!=null)try{_=JSON.stringify(s,null,2)}catch{_=String(s)}return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardBlue} ${m?L.inProgress:""}`,"data-testid":"tool-card-generic",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,children:a.jsx(iT,{size:Pt,"aria-hidden":"true"})}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-blue)"},children:u}),p&&a.jsx("span",{className:L.fileName,children:p})]}),m&&_&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-args",children:_}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&!m&&o&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-result",children:b}),v&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{d(k=>!k)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${c?L.chevronExpanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),c?"collapse":`${g.length-mp} more lines`]})]})]})}const $A="_badgePill_1piak_1",HA="_modelBadge_1piak_14",PA="_backgroundBadge_1piak_26",UA="_backgroundDot_1piak_36",VA="_backgroundDotPulsing_1piak_41",qA="_viewActivity_1piak_55",GA="_description_1piak_74",FA="_statusLine_1piak_81",KA="_statusCompleted_1piak_91",ZA="_statusRunning_1piak_96",YA="_statusError_1piak_102",JA="_promptToggle_1piak_107",Xn={badgePill:$A,modelBadge:HA,backgroundBadge:PA,backgroundDot:UA,backgroundDotPulsing:VA,viewActivity:qA,description:GA,statusLine:FA,statusCompleted:KA,statusRunning:ZA,statusError:YA,promptToggle:JA},WA=/^Agent\s+(completed|running|failed|error)\.\s*agent_id:\s*(\S+),?\s*([^\n]*)(?:\n\n([\s\S]*))?$/i;function XA(t){const s=WA.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 hp=5;function QA({tool:t,args:s,result:o,isError:r,childSessionId:c}){const[d,u]=y.useState(!1),[p,m]=y.useState(!1),g=Q2(t,s),v=o===void 0,b=g.isPoll&&o?XA(o):void 0,_=(b==null?void 0:b.content)??o,k=(_==null?void 0:_.split(`
|
|
304
|
-
`))??[],S=k.length>hp,j=d?_:k.slice(0,hp).join(`
|
|
305
|
-
`),T=g.isPoll?"Subagent":"Agent";return a.jsxs("div",{className:`${L.card} ${r?L.cardRed:L.cardTeal} ${v?L.inProgress:""}`,"data-testid":"tool-card-agent",children:[a.jsxs("div",{className:L.header,children:[a.jsx("span",{className:L.icon,style:{color:"var(--accent-teal, #2dd4bf)"},children:"▶"}),a.jsx("span",{className:L.toolName,style:{color:"var(--accent-teal, #2dd4bf)"},children:T}),g.agentType&&a.jsx("span",{className:Xn.badgePill,"data-testid":"tool-card-agent-type",children:g.agentType}),g.model&&a.jsx("span",{className:Xn.modelBadge,"data-testid":"tool-card-agent-model",children:g.model}),g.isBackground&&a.jsxs("span",{className:Xn.backgroundBadge,"data-testid":"tool-card-agent-background",children:[a.jsx("span",{className:v?Xn.backgroundDotPulsing:Xn.backgroundDot,children:"●"}),"BG"]}),g.agentName&&a.jsx("span",{className:L.fileName,"data-testid":"tool-card-agent-name",children:g.agentName}),g.agentId&&a.jsx("span",{className:L.fileName,"data-testid":"tool-card-agent-id",children:g.agentId}),a.jsx("span",{className:L.spacer}),c&&a.jsx(hl,{to:gl(c),className:Xn.viewActivity,"data-testid":"tool-card-agent-view-activity",children:"View activity →"}),v&&!g.isBackground&&a.jsx("span",{className:L.exitPending,"data-testid":"tool-card-pending",children:"●"})]}),g.description&&a.jsx("div",{className:Xn.description,"data-testid":"tool-card-agent-description",children:g.isResume?`Resuming: ${g.description}`:g.description}),b&&a.jsxs("div",{className:Xn.statusLine,"data-testid":"tool-card-agent-status",children:[a.jsx("span",{className:b.status==="completed"?Xn.statusCompleted:b.status==="running"?Xn.statusRunning:Xn.statusError,children:b.status}),b.metadata&&a.jsx("span",{children:b.metadata})]}),g.prompt&&a.jsxs(a.Fragment,{children:[a.jsxs("button",{type:"button",className:Xn.promptToggle,onClick:()=>{m(N=>!N)},"aria-expanded":p,"data-testid":"tool-card-prompt-toggle",children:[a.jsx("span",{className:`${L.chevron} ${p?L.chevronExpanded:""}`,children:"▸"}),"prompt"]}),p&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-prompt",children:g.prompt})]}),r&&o&&a.jsx("pre",{className:L.pre,"data-testid":"tool-card-error",children:o}),!r&&!v&&_&&a.jsxs(a.Fragment,{children:[a.jsx("pre",{className:L.pre,"data-testid":"tool-card-result",children:j}),S&&a.jsxs("button",{type:"button",className:L.bodyToggle,onClick:()=>{u(N=>!N)},"aria-expanded":d,"data-testid":"tool-card-toggle",children:[a.jsx("span",{className:`${L.chevron} ${d?L.chevronExpanded:""}`,children:"▸"}),d?"collapse":`${k.length-hp} more lines`]})]})]})}function gp(t){switch(rE(t.tool)){case"file-read":return a.jsx(By,{...t});case"file-edit":return a.jsx(FE,{...t});case"file-write":return a.jsx(By,{...t,writeVariant:!0});case"shell":return a.jsx(WE,{...t});case"search":return a.jsx(QE,{...t});case"todo":return a.jsx(yA,{...t});case"metadata":return a.jsx(_A,{...t});case"task":return a.jsx(jA,{...t});case"workpad":return a.jsx(wA,{...t});case"knowledge":return a.jsx(AA,{...t});case"ipc":return a.jsx(RA,{...t});case"tool-search":return a.jsx(OA,{...t});case"agent":return a.jsx(QA,{...t});default:return a.jsx(zA,{...t})}}const eD="_systemContextEvent_1oqvt_1",tD="_systemContextHeader_1oqvt_7",nD="_systemContextBadge_1oqvt_28",sD="_systemContextToggle_1oqvt_37",aD="_systemContextPre_1oqvt_43",iD="_systemContextEllipsis_1oqvt_54",oD="_systemEvent_1oqvt_58",rD="_systemTimestamp_1oqvt_65",lD="_textEvent_1oqvt_69",cD="_codeBlockWrapper_1oqvt_163",dD="_codeBlockCopyButton_1oqvt_166",uD="_errorEvent_1oqvt_170",fD="_statusEvent_1oqvt_178",pD="_userInputEvent_1oqvt_187",mD="_userInputContent_1oqvt_193",hD="_signalEvent_1oqvt_307",gD="_signalBadge_1oqvt_318",vD="_signalContent_1oqvt_327",yD="_usageEvent_1oqvt_332",bD="_usageBadge_1oqvt_339",_D="_defaultEvent_1oqvt_348",Ht={systemContextEvent:eD,systemContextHeader:tD,systemContextBadge:nD,systemContextToggle:sD,systemContextPre:aD,systemContextEllipsis:iD,systemEvent:oD,systemTimestamp:rD,textEvent:lD,codeBlockWrapper:cD,codeBlockCopyButton:dD,errorEvent:uD,statusEvent:fD,userInputEvent:pD,userInputContent:mD,signalEvent:hD,signalBadge:gD,signalContent:vD,usageEvent:yD,usageBadge:bD,defaultEvent:_D},$y=y.lazy(()=>Nm(()=>import("./McpAppWidget-D-BOXq5b.js"),__vite__mapDeps([0,1,2])).then(t=>({default:t.McpAppWidget})));function Hy(t,s,o,r){if(!t||!s)return;const c=ej(o,r);if(c)return tj(t,nj(c,s))}const Py=3;function xD({content:t}){const[s,o]=y.useState(!1),r=t.split(`
|
|
306
|
-
`),c=r.length>Py,d=s?t:r.slice(0,Py).join(`
|
|
307
|
-
`);return a.jsxs("div",{className:Ht.systemContextEvent,"data-testid":"system-context-event",children:[a.jsxs("button",{type:"button",className:Ht.systemContextHeader,onClick:()=>{o(u=>!u)},"aria-expanded":s,children:[a.jsx("span",{className:Ht.systemContextBadge,children:"SYSTEM PROMPT"}),c&&a.jsx("span",{className:Ht.systemContextToggle,"aria-hidden":"true",children:s?a.jsx(F_,{size:Ye}):a.jsx(fa,{size:Ye})})]}),a.jsxs("pre",{className:Ht.systemContextPre,children:[d,!s&&c&&a.jsx("span",{className:Ht.systemContextEllipsis,children:"…"})]})]})}function kD({time:t,content:s}){return a.jsxs("div",{className:Ht.systemEvent,children:[a.jsxs("span",{className:Ht.systemTimestamp,children:["[",t,"]"]})," ",s]})}function Jp(t){return typeof t=="string"?t:typeof t=="number"?String(t):Array.isArray(t)?t.map(Jp).join(""):t!=null&&typeof t=="object"&&"props"in t?Jp(t.props.children):""}function SD({children:t,node:s,...o}){const r=Jp(t);return a.jsxs("div",{className:Ht.codeBlockWrapper,children:[a.jsx("pre",{...o,children:t}),a.jsx($C,{text:r,"data-testid":"copy-code-block",className:Ht.codeBlockCopyButton})]})}const jD={pre:SD};function xx({content:t}){return a.jsx(jm,{remarkPlugins:[Tm],rehypePlugins:[iE],components:jD,children:t})}function TD({content:t}){return a.jsx("div",{className:Ht.textEvent,children:a.jsx(xx,{content:t})})}function ND({content:t}){return a.jsxs("div",{className:Ht.errorEvent,children:["Error: ",t]})}function wD({content:t}){return a.jsxs("div",{className:Ht.statusEvent,children:["--- ",t," ---"]})}function CD({content:t}){return a.jsx("div",{className:Ht.userInputEvent,children:a.jsx("div",{className:Ht.userInputContent,"data-testid":"user-input-content",children:a.jsx(xx,{content:t})})})}function ED({content:t}){return a.jsxs("div",{className:Ht.signalEvent,"data-testid":"signal-event",children:[a.jsx("span",{className:Ht.signalBadge,children:"SIGNAL"}),a.jsx("span",{className:Ht.signalContent,children:t})]})}function AD({content:t}){let s=t;try{const o=JSON.parse(t),r=Number(o.input_tokens)||0,c=Number(o.output_tokens)||0,d=Ho(r+c),u=Ms(Number(o.cost_millicents)||0);s=`${d} tokens · ${u}`}catch{}return a.jsx("div",{className:Ht.usageEvent,"data-testid":"usage-event",children:a.jsx("span",{className:Ht.usageBadge,children:s})})}function Hr({content:t}){return a.jsx("div",{className:Ht.defaultEvent,children:t})}function DD({event:t,toolUseCtx:s,settled:o,sandboxProxyUrl:r}){const c=new Date(t.timestamp).toLocaleTimeString();switch(t.eventType){case"widget":{if(!r)return a.jsx(Hr,{content:t.content});let d={};try{d=JSON.parse(t.content)}catch{}const u=d.rendererKind??"mcp-app-html";if(u==="grackle-react"&&d.html){const m=`<!doctype html><html><head><meta charset="utf-8"></head><body><div id="grackle-root"></div><script type="module" src="${new URL(r,window.location.href).origin}/runtime.js"><\/script></body></html>`;return a.jsx(y.Suspense,{fallback:a.jsx(Hr,{content:"Loading widget..."}),children:a.jsx($y,{widgetHtml:m,sandboxProxyUrl:r,csp:d.csp,toolInput:{source:d.html,props:d.toolInput??{},components:d.components??[]}})})}return u!=="mcp-app-html"||!d.html?a.jsx(Hr,{content:t.content}):a.jsx(y.Suspense,{fallback:a.jsx(Hr,{content:"Loading widget..."}),children:a.jsx($y,{widgetHtml:d.html,sandboxProxyUrl:r,csp:d.csp,toolInput:d.toolInput,toolResult:d.toolResult})})}case"system":{if(t.raw)try{if(JSON.parse(t.raw).systemContext===!0)return a.jsx(xD,{content:t.content})}catch{}return a.jsx(kD,{time:c,content:t.content})}case"text":case"output":return a.jsx(TD,{content:t.content});case"tool_use":{let d="",u={};try{const p=JSON.parse(t.content);d=p.tool||"",u=p.args}catch{}return a.jsx(gp,{tool:d,args:u,result:o?"":void 0,childSessionId:Hy(t.sessionId,t.toolCallId,d,u)})}case"tool_result":{let d=t.toolError===!0;if(!d)try{JSON.parse(t.content).is_ok===!1&&(d=!0)}catch{}if(!d&&t.raw)try{d=JSON.parse(t.raw).is_error===!0}catch{}let u=t.content;if(t.content.trimStart().startsWith("{"))try{const p=JSON.parse(t.content);typeof p.content=="string"&&(u=p.content)}catch{}return s?a.jsx(gp,{tool:s.tool,args:s.args,result:u,isError:d,detailedResult:s.detailedResult,childSessionId:Hy(t.sessionId,t.toolCallId,s.tool,s.args)}):a.jsx(gp,{tool:"Tool output",args:void 0,result:u,isError:d})}case"error":return a.jsx(ND,{content:t.content});case"status":return a.jsx(wD,{content:t.content});case"user_input":return a.jsx(CD,{content:t.content});case"signal":return a.jsx(ED,{content:t.content});case"usage":return a.jsx(AD,{content:t.content});default:return a.jsx(Hr,{content:t.content})}}const Bm=y.createContext({});function Lm(t){const s=y.useRef(null);return s.current===null&&(s.current=t()),s.current}const Ad=y.createContext(null),zm=y.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});class MD 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 RD({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(zm);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(`
|
|
308
|
-
[data-motion-pop-id="${o}"] {
|
|
309
|
-
position: absolute !important;
|
|
310
|
-
width: ${u}px !important;
|
|
311
|
-
height: ${p}px !important;
|
|
312
|
-
top: ${m}px !important;
|
|
313
|
-
left: ${g}px !important;
|
|
314
|
-
}
|
|
315
|
-
`),()=>{document.head.removeChild(v)}},[s]),a.jsx(MD,{isPresent:s,childRef:r,sizeRef:c,children:y.cloneElement(t,{ref:r})})}const ID=({children:t,initial:s,isPresent:o,onExitComplete:r,custom:c,presenceAffectsLayout:d,mode:u})=>{const p=Lm(OD),m=y.useId(),g=y.useCallback(b=>{p.set(b,!0);for(const _ of p.values())if(!_)return;r&&r()},[p,r]),v=y.useMemo(()=>({id:m,initial:s,isPresent:o,custom:c,onExitComplete:g,register:b=>(p.set(b,!1),()=>p.delete(b))}),d?[Math.random(),g]:[o,g]);return y.useMemo(()=>{p.forEach((b,_)=>p.set(_,!1))},[o]),y.useEffect(()=>{!o&&!p.size&&r&&r()},[o]),u==="popLayout"&&(t=a.jsx(RD,{isPresent:o,children:t})),a.jsx(Ad.Provider,{value:v,children:t})};function OD(){return new Map}function kx(t=!0){const s=y.useContext(Ad);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 Uc=t=>t.key||"";function Uy(t){const s=[];return y.Children.forEach(t,o=>{y.isValidElement(o)&&s.push(o)}),s}const $m=typeof window<"u",Sx=$m?y.useLayoutEffect:y.useEffect,os=({children:t,custom:s,initial:o=!0,onExitComplete:r,presenceAffectsLayout:c=!0,mode:d="sync",propagate:u=!1})=>{const[p,m]=kx(u),g=y.useMemo(()=>Uy(t),[t]),v=u&&!p?[]:g.map(Uc),b=y.useRef(!0),_=y.useRef(g),k=Lm(()=>new Map),[S,j]=y.useState(g),[T,N]=y.useState(g);Sx(()=>{b.current=!1,_.current=g;for(let A=0;A<T.length;A++){const E=Uc(T[A]);v.includes(E)?k.delete(E):k.get(E)!==!0&&k.set(E,!1)}},[T,v.length,v.join("-")]);const C=[];if(g!==S){let A=[...g];for(let E=0;E<T.length;E++){const R=T[E],B=Uc(R);v.includes(B)||(A.splice(E,0,R),C.push(R))}d==="wait"&&C.length&&(A=C),N(Uy(A)),j(g);return}const{forceRender:D}=y.useContext(Bm);return a.jsx(a.Fragment,{children:T.map(A=>{const E=Uc(A),R=u&&!p?!1:g===T||v.includes(E),B=()=>{if(k.has(E))k.set(E,!0);else return;let M=!0;k.forEach($=>{$||(M=!1)}),M&&(D==null||D(),N(_.current),u&&(m==null||m()),r&&r())};return a.jsx(ID,{isPresent:R,initial:!b.current||o?void 0:!1,custom:R?void 0:s,presenceAffectsLayout:c,mode:d,onExitComplete:R?void 0:B,children:A},E)})})},$n=t=>t;let jx=$n;const BD={useManualTiming:!1};function LD(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,b=!1)=>{const k=b&&r?s:o;return v&&d.add(g),k.has(g)||k.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 Vc=["read","resolveKeyframes","update","preRender","render","postRender"],zD=40;function Tx(t,s){let o=!1,r=!0;const c={delta:0,timestamp:0,isProcessing:!1},d=()=>o=!0,u=Vc.reduce((N,C)=>(N[C]=LD(d),N),{}),{read:p,resolveKeyframes:m,update:g,preRender:v,render:b,postRender:_}=u,k=()=>{const N=performance.now();o=!1,c.delta=r?1e3/60:Math.max(Math.min(N-c.timestamp,zD),1),c.timestamp=N,c.isProcessing=!0,p.process(c),m.process(c),g.process(c),v.process(c),b.process(c),_.process(c),c.isProcessing=!1,o&&s&&(r=!1,t(k))},S=()=>{o=!0,r=!0,c.isProcessing||t(k)};return{schedule:Vc.reduce((N,C)=>{const D=u[C];return N[C]=(A,E=!1,R=!1)=>(o||S(),D.schedule(A,E,R)),N},{}),cancel:N=>{for(let C=0;C<Vc.length;C++)u[Vc[C]].cancel(N)},state:c,steps:u}}const{schedule:wt,cancel:Wa,state:pn,steps:vp}=Tx(typeof requestAnimationFrame<"u"?requestAnimationFrame:$n,!0),Nx=y.createContext({strict:!1}),Vy={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"]},Po={};for(const t in Vy)Po[t]={isEnabled:s=>Vy[t].some(o=>!!s[o])};function $D(t){for(const s in t)Po[s]={...Po[s],...t[s]}}const HD=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 fd(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||HD.has(t)}let wx=t=>!fd(t);function PD(t){t&&(wx=s=>s.startsWith("on")?!fd(s):t(s))}try{PD(require("@emotion/is-prop-valid").default)}catch{}function UD(t,s,o){const r={};for(const c in t)c==="values"&&typeof t.values=="object"||(wx(c)||o===!0&&fd(c)||!s&&!fd(c)||t.draggable&&c.startsWith("onDrag"))&&(r[c]=t[c]);return r}function VD(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 Dd=y.createContext({});function ol(t){return typeof t=="string"||Array.isArray(t)}function Md(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}const Hm=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Pm=["initial",...Hm];function Rd(t){return Md(t.animate)||Pm.some(s=>ol(t[s]))}function Cx(t){return!!(Rd(t)||t.variants)}function qD(t,s){if(Rd(t)){const{initial:o,animate:r}=t;return{initial:o===!1||ol(o)?o:void 0,animate:ol(r)?r:void 0}}return t.inherit!==!1?s:{}}function GD(t){const{initial:s,animate:o}=qD(t,y.useContext(Dd));return y.useMemo(()=>({initial:s,animate:o}),[qy(s),qy(o)])}function qy(t){return Array.isArray(t)?t.join(" "):t}const FD=Symbol.for("motionComponentSymbol");function Do(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function KD(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):Do(o)&&(o.current=r))},[s])}const Um=t=>t.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),ZD="framerAppearId",Ex="data-"+Um(ZD),{schedule:Vm}=Tx(queueMicrotask,!1),Ax=y.createContext({});function YD(t,s,o,r,c){var d,u;const{visualElement:p}=y.useContext(Dd),m=y.useContext(Nx),g=y.useContext(Ad),v=y.useContext(zm).reducedMotion,b=y.useRef(null);r=r||m.renderer,!b.current&&r&&(b.current=r(t,{visualState:s,parent:p,props:o,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:v}));const _=b.current,k=y.useContext(Ax);_&&!_.projection&&c&&(_.type==="html"||_.type==="svg")&&JD(b.current,o,c,k);const S=y.useRef(!1);y.useInsertionEffect(()=>{_&&S.current&&_.update(o,g)});const j=o[Ex],T=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 Sx(()=>{_&&(S.current=!0,window.MotionIsMounted=!0,_.updateFeatures(),Vm.render(_.render),T.current&&_.animationState&&_.animationState.animateChanges())}),y.useEffect(()=>{_&&(!T.current&&_.animationState&&_.animationState.animateChanges(),T.current&&(queueMicrotask(()=>{var N;(N=window.MotionHandoffMarkAsComplete)===null||N===void 0||N.call(window,j)}),T.current=!1))}),_}function JD(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:Dx(t.parent)),t.projection.setOptions({layoutId:c,layout:d,alwaysMeasureLayout:!!u||p&&Do(p),visualElement:t,animationType:typeof d=="string"?d:"both",initialPromotionConfig:r,layoutScroll:m,layoutRoot:g})}function Dx(t){if(t)return t.options.allowProjection!==!1?t.projection:Dx(t.parent)}function WD({preloadedFeatures:t,createVisualElement:s,useRender:o,useVisualState:r,Component:c}){var d,u;t&&$D(t);function p(g,v){let b;const _={...y.useContext(zm),...g,layoutId:XD(g)},{isStatic:k}=_,S=GD(g),j=r(g,k);if(!k&&$m){QD();const T=eM(_);b=T.MeasureLayout,S.visualElement=YD(c,j,_,s,T.ProjectionNode)}return a.jsxs(Dd.Provider,{value:S,children:[b&&S.visualElement?a.jsx(b,{visualElement:S.visualElement,..._}):null,o(c,g,KD(j,S.visualElement,v),j,k,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[FD]=c,m}function XD({layoutId:t}){const s=y.useContext(Bm).id;return s&&t!==void 0?s+"-"+t:t}function QD(t,s){y.useContext(Nx).strict}function eM(t){const{drag:s,layout:o}=Po;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 tM=["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 qm(t){return typeof t!="string"||t.includes("-")?!1:!!(tM.indexOf(t)>-1||/[A-Z]/u.test(t))}function Gy(t){const s=[{},{}];return t==null||t.values.forEach((o,r)=>{s[0][r]=o.get(),s[1][r]=o.getVelocity()}),s}function Gm(t,s,o,r){if(typeof s=="function"){const[c,d]=Gy(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]=Gy(r);s=s(o!==void 0?o:t.custom,c,d)}return s}const Wp=t=>Array.isArray(t),nM=t=>!!(t&&typeof t=="object"&&t.mix&&t.toValue),sM=t=>Wp(t)?t[t.length-1]||0:t,gn=t=>!!(t&&t.getVelocity);function sd(t){const s=gn(t)?t.get():t;return nM(s)?s.toValue():s}function aM({scrapeMotionValuesFromProps:t,createRenderState:s,onUpdate:o},r,c,d){const u={latestValues:iM(r,c,d,t),renderState:s()};return o&&(u.onMount=p=>o({props:r,current:p,...u}),u.onUpdate=p=>o(p)),u}const Mx=t=>(s,o)=>{const r=y.useContext(Dd),c=y.useContext(Ad),d=()=>aM(t,s,r,c);return o?d():Lm(d)};function iM(t,s,o,r){const c={},d=r(t,{});for(const _ in d)c[_]=sd(d[_]);let{initial:u,animate:p}=t;const m=Rd(t),g=Cx(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 b=v?p:u;if(b&&typeof b!="boolean"&&!Md(b)){const _=Array.isArray(b)?b:[b];for(let k=0;k<_.length;k++){const S=Gm(t,_[k]);if(S){const{transitionEnd:j,transition:T,...N}=S;for(const C in N){let D=N[C];if(Array.isArray(D)){const A=v?D.length-1:0;D=D[A]}D!==null&&(c[C]=D)}for(const C in j)c[C]=j[C]}}}return c}const Ko=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Oi=new Set(Ko),Rx=t=>s=>typeof s=="string"&&s.startsWith(t),Ix=Rx("--"),oM=Rx("var(--"),Fm=t=>oM(t)?rM.test(t.split("/*")[0].trim()):!1,rM=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Ox=(t,s)=>s&&typeof t=="number"?s.transform(t):t,ua=(t,s,o)=>o>s?s:o<t?t:o,Zo={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},rl={...Zo,transform:t=>ua(0,1,t)},qc={...Zo,default:1},yl=t=>({test:s=>typeof s=="string"&&s.endsWith(t)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${t}`}),Za=yl("deg"),Is=yl("%"),Ae=yl("px"),lM=yl("vh"),cM=yl("vw"),Fy={...Is,parse:t=>Is.parse(t)/100,transform:t=>Is.transform(t*100)},dM={borderWidth:Ae,borderTopWidth:Ae,borderRightWidth:Ae,borderBottomWidth:Ae,borderLeftWidth:Ae,borderRadius:Ae,radius:Ae,borderTopLeftRadius:Ae,borderTopRightRadius:Ae,borderBottomRightRadius:Ae,borderBottomLeftRadius:Ae,width:Ae,maxWidth:Ae,height:Ae,maxHeight:Ae,top:Ae,right:Ae,bottom:Ae,left:Ae,padding:Ae,paddingTop:Ae,paddingRight:Ae,paddingBottom:Ae,paddingLeft:Ae,margin:Ae,marginTop:Ae,marginRight:Ae,marginBottom:Ae,marginLeft:Ae,backgroundPositionX:Ae,backgroundPositionY:Ae},uM={rotate:Za,rotateX:Za,rotateY:Za,rotateZ:Za,scale:qc,scaleX:qc,scaleY:qc,scaleZ:qc,skew:Za,skewX:Za,skewY:Za,distance:Ae,translateX:Ae,translateY:Ae,translateZ:Ae,x:Ae,y:Ae,z:Ae,perspective:Ae,transformPerspective:Ae,opacity:rl,originX:Fy,originY:Fy,originZ:Ae},Ky={...Zo,transform:Math.round},Km={...dM,...uM,zIndex:Ky,size:Ae,fillOpacity:rl,strokeOpacity:rl,numOctaves:Ky},fM={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},pM=Ko.length;function mM(t,s,o){let r="",c=!0;for(let d=0;d<pM;d++){const u=Ko[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=Ox(p,Km[u]);if(!m){c=!1;const v=fM[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(Oi.has(m)){u=!0;continue}else if(Ix(m)){c[m]=g;continue}else{const v=Ox(g,Km[m]);m.startsWith("origin")?(p=!0,d[m]=v):r[m]=v}}if(s.transform||(u||o?r.transform=mM(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 hM={offset:"stroke-dashoffset",array:"stroke-dasharray"},gM={offset:"strokeDashoffset",array:"strokeDasharray"};function vM(t,s,o=1,r=0,c=!0){t.pathLength=1;const d=c?hM:gM;t[d.offset]=Ae.transform(-r);const u=Ae.transform(s),p=Ae.transform(o);t[d.array]=`${u} ${p}`}function Zy(t,s,o){return typeof t=="string"?t:Ae.transform(s+o*t)}function yM(t,s,o){const r=Zy(s,t.x,t.width),c=Zy(o,t.y,t.height);return`${r} ${c}`}function Ym(t,{attrX:s,attrY:o,attrScale:r,originX:c,originY:d,pathLength:u,pathSpacing:p=1,pathOffset:m=0,...g},v,b){if(Zm(t,g,b),v){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:_,style:k,dimensions:S}=t;_.transform&&(S&&(k.transform=_.transform),delete _.transform),S&&(c!==void 0||d!==void 0||k.transform)&&(k.transformOrigin=yM(S,c!==void 0?c:.5,d!==void 0?d:.5)),s!==void 0&&(_.x=s),o!==void 0&&(_.y=o),r!==void 0&&(_.scale=r),u!==void 0&&vM(_,u,p,m,!1)}const Jm=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),Bx=()=>({...Jm(),attrs:{}}),Wm=t=>typeof t=="string"&&t.toLowerCase()==="svg";function Lx(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 zx=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 $x(t,s,o,r){Lx(t,s,void 0,r);for(const c in s.attrs)t.setAttribute(zx.has(c)?c:Um(c),s.attrs[c])}const pd={};function bM(t){Object.assign(pd,t)}function Hx(t,{layout:s,layoutId:o}){return Oi.has(t)||t.startsWith("origin")||(s||o!==void 0)&&(!!pd[t]||t==="opacity")}function Xm(t,s,o){var r;const{style:c}=t,d={};for(const u in c)(gn(c[u])||s.style&&gn(s.style[u])||Hx(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 Px(t,s,o){const r=Xm(t,s,o);for(const c in t)if(gn(t[c])||gn(s[c])){const d=Ko.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;r[d]=t[c]}return r}function _M(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 Yy=["x","y","width","height","cx","cy","r"],xM={useVisualState:Mx({scrapeMotionValuesFromProps:Px,createRenderState:Bx,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(Oi.has(p)){d=!0;break}}if(!d)return;let u=!s;if(s)for(let p=0;p<Yy.length;p++){const m=Yy[p];t[m]!==s[m]&&(u=!0)}u&&wt.read(()=>{_M(o,r),wt.render(()=>{Ym(r,c,Wm(o.tagName),t.transformTemplate),$x(o,r)})})}})},kM={useVisualState:Mx({scrapeMotionValuesFromProps:Xm,createRenderState:Jm})};function Ux(t,s,o){for(const r in s)!gn(s[r])&&!Hx(r,o)&&(t[r]=s[r])}function SM({transformTemplate:t},s){return y.useMemo(()=>{const o=Jm();return Zm(o,s,t),Object.assign({},o.vars,o.style)},[s])}function jM(t,s){const o=t.style||{},r={};return Ux(r,o,t),Object.assign(r,SM(t,s)),r}function TM(t,s){const o={},r=jM(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 NM(t,s,o,r){const c=y.useMemo(()=>{const d=Bx();return Ym(d,s,Wm(r),t.transformTemplate),{...d.attrs,style:{...d.style}}},[s]);if(t.style){const d={};Ux(d,t.style,t),c.style={...d,...c.style}}return c}function wM(t=!1){return(o,r,c,{latestValues:d},u)=>{const m=(qm(o)?NM:TM)(r,d,u,o),g=UD(r,typeof o=="string",t),v=o!==y.Fragment?{...g,...m,ref:c}:{},{children:b}=r,_=y.useMemo(()=>gn(b)?b.get():b,[b]);return y.createElement(o,{...v,children:_})}}function CM(t,s){return function(r,{forwardMotionProps:c}={forwardMotionProps:!1}){const u={...qm(r)?xM:kM,preloadedFeatures:t,useRender:wM(c),createVisualElement:s,Component:r};return WD(u)}}function Vx(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 Id(t,s,o){const r=t.getProps();return Gm(r,s,o!==void 0?o:r.custom,t)}function Qm(t,s){return t?t[s]||t.default||t:void 0}const qx=new Set(["width","height","top","left","right","bottom",...Ko]);let ad;function EM(){ad=void 0}const Os={now:()=>(ad===void 0&&Os.set(pn.isProcessing||BD.useManualTiming?pn.timestamp:performance.now()),ad),set:t=>{ad=t,queueMicrotask(EM)}};function eh(t,s){t.indexOf(s)===-1&&t.push(s)}function th(t,s){const o=t.indexOf(s);o>-1&&t.splice(o,1)}class nh{constructor(){this.subscriptions=[]}add(s){return eh(this.subscriptions,s),()=>th(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 Gx(t,s){return s?t*(1e3/s):0}const Jy=30,AM=t=>!isNaN(parseFloat(t));class DM{constructor(s,o={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,c=!0)=>{const d=Os.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=Os.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=AM(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 nh);const r=this.events[s].add(o);return s==="change"?()=>{r(),wt.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=Os.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>Jy)return 0;const o=Math.min(this.updatedAt-this.prevUpdatedAt,Jy);return Gx(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 ll(t,s){return new DM(t,s)}function MM(t,s,o){t.hasValue(s)?t.getValue(s).set(o):t.addValue(s,ll(o))}function RM(t,s){const o=Id(t,s);let{transitionEnd:r={},transition:c={},...d}=o||{};d={...d,...r};for(const u in d){const p=sM(d[u]);MM(t,u,p)}}function IM(t){return!!(gn(t)&&t.add)}function Xp(t,s){const o=t.getValue("willChange");if(IM(o))return o.add(s)}function Fx(t){return t.props[Ex]}function sh(t){let s;return()=>(s===void 0&&(s=t()),s)}const OM=sh(()=>window.ScrollTimeline!==void 0);class BM{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(OM()&&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 LM extends BM{then(s,o){return Promise.all(this.animations).then(s).catch(o)}}const la=t=>t*1e3,ca=t=>t/1e3;function ah(t){return typeof t=="function"}function Wy(t,s){t.timeline=s,t.onfinish=null}const ih=t=>Array.isArray(t)&&typeof t[0]=="number",zM={linearEasing:void 0};function $M(t,s){const o=sh(t);return()=>{var r;return(r=zM[s])!==null&&r!==void 0?r:o()}}const md=$M(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Uo=(t,s,o)=>{const r=s-t;return r===0?1:(o-t)/r},Kx=(t,s,o=10)=>{let r="";const c=Math.max(Math.round(s/o),2);for(let d=0;d<c;d++)r+=t(Uo(0,c-1,d))+", ";return`linear(${r.substring(0,r.length-2)})`};function Zx(t){return!!(typeof t=="function"&&md()||!t||typeof t=="string"&&(t in Qp||md())||ih(t)||Array.isArray(t)&&t.every(Zx))}const Kr=([t,s,o,r])=>`cubic-bezier(${t}, ${s}, ${o}, ${r})`,Qp={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Kr([0,.65,.55,1]),circOut:Kr([.55,0,1,.45]),backIn:Kr([.31,.01,.66,-.59]),backOut:Kr([.33,1.53,.69,.99])};function Yx(t,s){if(t)return typeof t=="function"&&md()?Kx(t,s):ih(t)?Kr(t):Array.isArray(t)?t.map(o=>Yx(o,s)||Qp.easeOut):Qp[t]}const Jx=(t,s,o)=>(((1-3*o+3*s)*t+(3*o-6*s))*t+3*s)*t,HM=1e-7,PM=12;function UM(t,s,o,r,c){let d,u,p=0;do u=s+(o-s)/2,d=Jx(u,r,c)-t,d>0?o=u:s=u;while(Math.abs(d)>HM&&++p<PM);return u}function bl(t,s,o,r){if(t===s&&o===r)return $n;const c=d=>UM(d,0,1,t,o);return d=>d===0||d===1?d:Jx(c(d),s,r)}const Wx=t=>s=>s<=.5?t(2*s)/2:(2-t(2*(1-s)))/2,Xx=t=>s=>1-t(1-s),Qx=bl(.33,1.53,.69,.99),oh=Xx(Qx),e1=Wx(oh),t1=t=>(t*=2)<1?.5*oh(t):.5*(2-Math.pow(2,-10*(t-1))),rh=t=>1-Math.sin(Math.acos(t)),n1=Xx(rh),s1=Wx(rh),a1=t=>/^0[^.\s]+$/u.test(t);function VM(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||a1(t):!0}const Xr=t=>Math.round(t*1e5)/1e5,lh=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function qM(t){return t==null}const GM=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,ch=(t,s)=>o=>!!(typeof o=="string"&&GM.test(o)&&o.startsWith(t)||s&&!qM(o)&&Object.prototype.hasOwnProperty.call(o,s)),i1=(t,s,o)=>r=>{if(typeof r!="string")return r;const[c,d,u,p]=r.match(lh);return{[t]:parseFloat(c),[s]:parseFloat(d),[o]:parseFloat(u),alpha:p!==void 0?parseFloat(p):1}},FM=t=>ua(0,255,t),yp={...Zo,transform:t=>Math.round(FM(t))},ji={test:ch("rgb","red"),parse:i1("red","green","blue"),transform:({red:t,green:s,blue:o,alpha:r=1})=>"rgba("+yp.transform(t)+", "+yp.transform(s)+", "+yp.transform(o)+", "+Xr(rl.transform(r))+")"};function KM(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 em={test:ch("#"),parse:KM,transform:ji.transform},Mo={test:ch("hsl","hue"),parse:i1("hue","saturation","lightness"),transform:({hue:t,saturation:s,lightness:o,alpha:r=1})=>"hsla("+Math.round(t)+", "+Is.transform(Xr(s))+", "+Is.transform(Xr(o))+", "+Xr(rl.transform(r))+")"},hn={test:t=>ji.test(t)||em.test(t)||Mo.test(t),parse:t=>ji.test(t)?ji.parse(t):Mo.test(t)?Mo.parse(t):em.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?ji.transform(t):Mo.transform(t)},ZM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function YM(t){var s,o;return isNaN(t)&&typeof t=="string"&&(((s=t.match(lh))===null||s===void 0?void 0:s.length)||0)+(((o=t.match(ZM))===null||o===void 0?void 0:o.length)||0)>0}const o1="number",r1="color",JM="var",WM="var(",Xy="${}",XM=/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 cl(t){const s=t.toString(),o=[],r={color:[],number:[],var:[]},c=[];let d=0;const p=s.replace(XM,m=>(hn.test(m)?(r.color.push(d),c.push(r1),o.push(hn.parse(m))):m.startsWith(WM)?(r.var.push(d),c.push(JM),o.push(m)):(r.number.push(d),c.push(o1),o.push(parseFloat(m))),++d,Xy)).split(Xy);return{values:o,split:p,indexes:r,types:c}}function l1(t){return cl(t).values}function c1(t){const{split:s,types:o}=cl(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===o1?d+=Xr(c[u]):p===r1?d+=hn.transform(c[u]):d+=c[u]}return d}}const QM=t=>typeof t=="number"?0:t;function eR(t){const s=l1(t);return c1(t)(s.map(QM))}const Xa={test:YM,parse:l1,createTransformer:c1,getAnimatableNone:eR},tR=new Set(["brightness","contrast","saturate","opacity"]);function nR(t){const[s,o]=t.slice(0,-1).split("(");if(s==="drop-shadow")return t;const[r]=o.match(lh)||[];if(!r)return t;const c=o.replace(r,"");let d=tR.has(s)?1:0;return r!==o&&(d*=100),s+"("+d+c+")"}const sR=/\b([a-z-]*)\(.*?\)/gu,tm={...Xa,getAnimatableNone:t=>{const s=t.match(sR);return s?s.map(nR).join(" "):t}},aR={...Km,color:hn,backgroundColor:hn,outlineColor:hn,fill:hn,stroke:hn,borderColor:hn,borderTopColor:hn,borderRightColor:hn,borderBottomColor:hn,borderLeftColor:hn,filter:tm,WebkitFilter:tm},dh=t=>aR[t];function d1(t,s){let o=dh(t);return o!==tm&&(o=Xa),o.getAnimatableNone?o.getAnimatableNone(s):void 0}const iR=new Set(["auto","none","0"]);function oR(t,s,o){let r=0,c;for(;r<t.length&&!c;){const d=t[r];typeof d=="string"&&!iR.has(d)&&cl(d).values.length&&(c=t[r]),r++}if(c&&o)for(const d of s)t[d]=d1(o,c)}const Qy=t=>t===Zo||t===Ae,eb=(t,s)=>parseFloat(t.split(", ")[s]),tb=(t,s)=>(o,{transform:r})=>{if(r==="none"||!r)return 0;const c=r.match(/^matrix3d\((.+)\)$/u);if(c)return eb(c[1],s);{const d=r.match(/^matrix\((.+)\)$/u);return d?eb(d[1],t):0}},rR=new Set(["x","y","z"]),lR=Ko.filter(t=>!rR.has(t));function cR(t){const s=[];return lR.forEach(o=>{const r=t.getValue(o);r!==void 0&&(s.push([o,r.get()]),r.set(o.startsWith("scale")?1:0))}),s}const Vo={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:tb(4,13),y:tb(5,14)};Vo.translateX=Vo.x;Vo.translateY=Vo.y;const Ni=new Set;let nm=!1,sm=!1;function u1(){if(sm){const t=Array.from(Ni).filter(r=>r.needsMeasurement),s=new Set(t.map(r=>r.element)),o=new Map;s.forEach(r=>{const c=cR(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)})}sm=!1,nm=!1,Ni.forEach(t=>t.complete()),Ni.clear()}function f1(){Ni.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(sm=!0)})}function dR(){f1(),u1()}class uh{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?(Ni.add(this),nm||(nm=!0,wt.read(f1),wt.resolveKeyframes(u1))):(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),Ni.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ni.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const p1=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t),uR=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function fR(t){const s=uR.exec(t);if(!s)return[,];const[,o,r,c]=s;return[`--${o??r}`,c]}function m1(t,s,o=1){const[r,c]=fR(t);if(!r)return;const d=window.getComputedStyle(s).getPropertyValue(r);if(d){const u=d.trim();return p1(u)?parseFloat(u):u}return Fm(c)?m1(c,s,o+1):c}const h1=t=>s=>s.test(t),pR={test:t=>t==="auto",parse:t=>t},g1=[Zo,Ae,Is,Za,cM,lM,pR],nb=t=>g1.find(h1(t));class v1 extends uh{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(),Fm(g))){const v=m1(g,o.current);v!==void 0&&(s[m]=v),m===s.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!qx.has(r)||s.length!==2)return;const[c,d]=s,u=nb(c),p=nb(d);if(u!==p)if(Qy(u)&&Qy(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++)VM(s[c])&&r.push(c);r.length&&oR(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=Vo[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]=Vo[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 sb=(t,s)=>s==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Xa.test(t)||t==="0")&&!t.startsWith("url("));function mR(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 hR(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=sb(c,s),p=sb(d,s);return!u||!p?!1:mR(t)||(o==="spring"||ah(o))&&r}const gR=t=>t!==null;function Od(t,{repeat:s,repeatType:o="loop"},r){const c=t.filter(gR),d=s&&o!=="loop"&&s%2===1?0:c.length-1;return!d||r===void 0?c[d]:r}const vR=40;class y1{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=Os.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>vR?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&dR(),this._resolved}onKeyframesResolved(s,o){this.resolvedAt=Os.now(),this.hasAttemptedResolve=!0;const{name:r,type:c,velocity:d,delay:u,onComplete:p,onUpdate:m,isGenerator:g}=this.options;if(!g&&!hR(s,r,c,d))if(u)this.options.duration=0;else{m&&m(Od(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 am=2e4;function b1(t){let s=0;const o=50;let r=t.next(s);for(;!r.done&&s<am;)s+=o,r=t.next(s);return s>=am?1/0:s}const Dt=(t,s,o)=>t+(s-t)*o;function bp(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 yR({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=bp(m,p,t+1/3),d=bp(m,p,t),u=bp(m,p,t-1/3)}return{red:Math.round(c*255),green:Math.round(d*255),blue:Math.round(u*255),alpha:r}}function hd(t,s){return o=>o>0?s:t}const _p=(t,s,o)=>{const r=t*t,c=o*(s*s-r)+r;return c<0?0:Math.sqrt(c)},bR=[em,ji,Mo],_R=t=>bR.find(s=>s.test(t));function ab(t){const s=_R(t);if(!s)return!1;let o=s.parse(t);return s===Mo&&(o=yR(o)),o}const ib=(t,s)=>{const o=ab(t),r=ab(s);if(!o||!r)return hd(t,s);const c={...o};return d=>(c.red=_p(o.red,r.red,d),c.green=_p(o.green,r.green,d),c.blue=_p(o.blue,r.blue,d),c.alpha=Dt(o.alpha,r.alpha,d),ji.transform(c))},xR=(t,s)=>o=>s(t(o)),_l=(...t)=>t.reduce(xR),im=new Set(["none","hidden"]);function kR(t,s){return im.has(t)?o=>o<=0?t:s:o=>o>=1?s:t}function SR(t,s){return o=>Dt(t,s,o)}function fh(t){return typeof t=="number"?SR:typeof t=="string"?Fm(t)?hd:hn.test(t)?ib:NR:Array.isArray(t)?_1:typeof t=="object"?hn.test(t)?ib:jR:hd}function _1(t,s){const o=[...t],r=o.length,c=t.map((d,u)=>fh(d)(d,s[u]));return d=>{for(let u=0;u<r;u++)o[u]=c[u](d);return o}}function jR(t,s){const o={...t,...s},r={};for(const c in o)t[c]!==void 0&&s[c]!==void 0&&(r[c]=fh(t[c])(t[c],s[c]));return c=>{for(const d in r)o[d]=r[d](c);return o}}function TR(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 NR=(t,s)=>{const o=Xa.createTransformer(s),r=cl(t),c=cl(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?im.has(t)&&!c.values.length||im.has(s)&&!r.values.length?kR(t,s):_l(_1(TR(r,c),c.values),o):hd(t,s)};function x1(t,s,o){return typeof t=="number"&&typeof s=="number"&&typeof o=="number"?Dt(t,s,o):fh(t)(t,s)}const wR=5;function k1(t,s,o){const r=Math.max(s-wR,0);return Gx(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},xp=.001;function CR({duration:t=Ot.duration,bounce:s=Ot.bounce,velocity:o=Ot.velocity,mass:r=Ot.mass}){let c,d,u=1-s;u=ua(Ot.minDamping,Ot.maxDamping,u),t=ua(Ot.minDuration,Ot.maxDuration,ca(t)),u<1?(c=g=>{const v=g*u,b=v*t,_=v-o,k=om(g,u),S=Math.exp(-b);return xp-_/k*S},d=g=>{const b=g*u*t,_=b*o+o,k=Math.pow(u,2)*Math.pow(g,2)*t,S=Math.exp(-b),j=om(Math.pow(g,2),u);return(-c(g)+xp>0?-1:1)*((_-k)*S)/j}):(c=g=>{const v=Math.exp(-g*t),b=(g-o)*t+1;return-xp+v*b},d=g=>{const v=Math.exp(-g*t),b=(o-g)*(t*t);return v*b});const p=5/t,m=AR(c,d,p);if(t=la(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 ER=12;function AR(t,s,o){let r=o;for(let c=1;c<ER;c++)r=r-t(r)/s(r);return r}function om(t,s){return t*Math.sqrt(1-s*s)}const DR=["duration","bounce"],MR=["stiffness","damping","mass"];function ob(t,s){return s.some(o=>t[o]!==void 0)}function RR(t){let s={velocity:Ot.velocity,stiffness:Ot.stiffness,damping:Ot.damping,mass:Ot.mass,isResolvedFromDuration:!1,...t};if(!ob(t,MR)&&ob(t,DR))if(t.visualDuration){const o=t.visualDuration,r=2*Math.PI/(o*1.2),c=r*r,d=2*ua(.05,1,1-(t.bounce||0))*Math.sqrt(c);s={...s,mass:Ot.mass,stiffness:c,damping:d}}else{const o=CR(t);s={...s,...o,mass:Ot.mass},s.isResolvedFromDuration=!0}return s}function S1(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:b,velocity:_,isResolvedFromDuration:k}=RR({...o,velocity:-ca(o.velocity||0)}),S=_||0,j=g/(2*Math.sqrt(m*v)),T=u-d,N=ca(Math.sqrt(m/v)),C=Math.abs(T)<5;r||(r=C?Ot.restSpeed.granular:Ot.restSpeed.default),c||(c=C?Ot.restDelta.granular:Ot.restDelta.default);let D;if(j<1){const E=om(N,j);D=R=>{const B=Math.exp(-j*N*R);return u-B*((S+j*N*T)/E*Math.sin(E*R)+T*Math.cos(E*R))}}else if(j===1)D=E=>u-Math.exp(-N*E)*(T+(S+N*T)*E);else{const E=N*Math.sqrt(j*j-1);D=R=>{const B=Math.exp(-j*N*R),M=Math.min(E*R,300);return u-B*((S+j*N*T)*Math.sinh(M)+E*T*Math.cosh(M))/E}}const A={calculatedDuration:k&&b||null,next:E=>{const R=D(E);if(k)p.done=E>=b;else{let B=0;j<1&&(B=E===0?la(S):k1(D,E,R));const M=Math.abs(B)<=r,$=Math.abs(u-R)<=c;p.done=M&&$}return p.value=p.done?u:R,p},toString:()=>{const E=Math.min(b1(A),am),R=Kx(B=>A.next(E*B).value,E,30);return E+"ms "+R}};return A}function rb({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 b=t[0],_={done:!1,value:b},k=M=>p!==void 0&&M<p||m!==void 0&&M>m,S=M=>p===void 0?m:m===void 0||Math.abs(p-M)<Math.abs(m-M)?p:m;let j=o*s;const T=b+j,N=u===void 0?T:u(T);N!==T&&(j=N-b);const C=M=>-j*Math.exp(-M/r),D=M=>N+C(M),A=M=>{const $=C(M),Y=D(M);_.done=Math.abs($)<=g,_.value=_.done?N:Y};let E,R;const B=M=>{k(_.value)&&(E=M,R=S1({keyframes:[_.value,S(_.value)],velocity:k1(D,M,_.value),damping:c,stiffness:d,restDelta:g,restSpeed:v}))};return B(0),{calculatedDuration:null,next:M=>{let $=!1;return!R&&E===void 0&&($=!0,A(M),B(M)),E!==void 0&&M>=E?R.next(M-E):(!$&&A(M),_)}}}const IR=bl(.42,0,1,1),OR=bl(0,0,.58,1),j1=bl(.42,0,.58,1),BR=t=>Array.isArray(t)&&typeof t[0]!="number",LR={linear:$n,easeIn:IR,easeInOut:j1,easeOut:OR,circIn:rh,circInOut:s1,circOut:n1,backIn:oh,backInOut:e1,backOut:Qx,anticipate:t1},lb=t=>{if(ih(t)){jx(t.length===4);const[s,o,r,c]=t;return bl(s,o,r,c)}else if(typeof t=="string")return LR[t];return t};function zR(t,s,o){const r=[],c=o||x1,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]||$n:s;p=_l(m,p)}r.push(p)}return r}function $R(t,s,{clamp:o=!0,ease:r,mixer:c}={}){const d=t.length;if(jx(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=zR(s,r,c),m=p.length,g=v=>{if(u&&v<t[0])return s[0];let b=0;if(m>1)for(;b<t.length-2&&!(v<t[b+1]);b++);const _=Uo(t[b],t[b+1],v);return p[b](_)};return o?v=>g(ua(t[0],t[d-1],v)):g}function HR(t,s){const o=t[t.length-1];for(let r=1;r<=s;r++){const c=Uo(0,s,r);t.push(Dt(o,1,c))}}function PR(t){const s=[0];return HR(s,t.length-1),s}function UR(t,s){return t.map(o=>o*s)}function VR(t,s){return t.map(()=>s||j1).splice(0,t.length-1)}function gd({duration:t=300,keyframes:s,times:o,ease:r="easeInOut"}){const c=BR(r)?r.map(lb):lb(r),d={done:!1,value:s[0]},u=UR(o&&o.length===s.length?o:PR(s),t),p=$R(u,s,{ease:Array.isArray(c)?c:VR(s,c)});return{calculatedDuration:t,next:m=>(d.value=p(m),d.done=m>=t,d)}}const qR=t=>{const s=({timestamp:o})=>t(o);return{start:()=>wt.update(s,!0),stop:()=>Wa(s),now:()=>pn.isProcessing?pn.timestamp:Os.now()}},GR={decay:rb,inertia:rb,tween:gd,keyframes:gd,spring:S1},FR=t=>t/100;class ph extends y1{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)||uh,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=ah(o)?o:GR[o]||gd;let m,g;p!==gd&&typeof s[0]!="number"&&(m=_l(FR,x1(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=b1(v));const{calculatedDuration:b}=v,_=b+c,k=_*(r+1)-c;return{generator:v,mirroredGenerator:g,mapPercentToKeyframes:m,calculatedDuration:b,resolvedDuration:_,totalDuration:k}}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:M}=this.options;return{done:!0,value:M[M.length-1]}}const{finalKeyframe:c,generator:d,mirroredGenerator:u,mapPercentToKeyframes:p,keyframes:m,calculatedDuration:g,totalDuration:v,resolvedDuration:b}=r;if(this.startTime===null)return d.next(0);const{delay:_,repeat:k,repeatType:S,repeatDelay:j,onUpdate:T}=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 N=this.currentTime-_*(this.speed>=0?1:-1),C=this.speed>=0?N<0:N>v;this.currentTime=Math.max(N,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=v);let D=this.currentTime,A=d;if(k){const M=Math.min(this.currentTime,v)/b;let $=Math.floor(M),Y=M%1;!Y&&M>=1&&(Y=1),Y===1&&$--,$=Math.min($,k+1),!!($%2)&&(S==="reverse"?(Y=1-Y,j&&(Y-=j/b)):S==="mirror"&&(A=u)),D=ua(0,1,Y)*b}const E=C?{done:!1,value:m[0]}:A.next(D);p&&(E.value=p(E.value));let{done:R}=E;!C&&g!==null&&(R=this.speed>=0?this.currentTime>=v:this.currentTime<=0);const B=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&R);return B&&c!==void 0&&(E.value=Od(m,this.options,c)),T&&T(E.value),B&&this.finish(),E}get duration(){const{resolved:s}=this;return s?ca(s.calculatedDuration):0}get time(){return ca(this.currentTime)}set time(s){s=la(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=ca(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:s=qR,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 KR=new Set(["opacity","clipPath","filter","transform"]);function ZR(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=Yx(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 YR=sh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),vd=10,JR=2e4;function WR(t){return ah(t.type)||t.type==="spring"||!Zx(t.ease)}function XR(t,s){const o=new ph({...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<JR;)r=o.sample(d),c.push(r.value),d+=vd;return{times:void 0,keyframes:c,duration:d-vd,ease:"linear"}}const T1={anticipate:t1,backInOut:e1,circInOut:s1};function QR(t){return t in T1}class cb extends y1{constructor(s){super(s);const{name:o,motionValue:r,element:c,keyframes:d}=this.options;this.resolver=new v1(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"&&md()&&QR(d)&&(d=T1[d]),WR(this.options)){const{onComplete:b,onUpdate:_,motionValue:k,element:S,...j}=this.options,T=XR(s,j);s=T.keyframes,s.length===1&&(s[1]=s[0]),r=T.duration,c=T.times,d=T.ease,u="keyframes"}const v=ZR(p.owner.current,m,s,{...this.options,duration:r,times:c,ease:d});return v.startTime=g??this.calcStartTime(),this.pendingTimeline?(Wy(v,this.pendingTimeline),this.pendingTimeline=void 0):v.onfinish=()=>{const{onComplete:b}=this.options;p.set(Od(s,this.options,o)),b&&b(),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 ca(o)}get time(){const{resolved:s}=this;if(!s)return 0;const{animation:o}=s;return ca(o.currentTime||0)}set time(s){const{resolved:o}=this;if(!o)return;const{animation:r}=o;r.currentTime=la(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 $n;const{animation:r}=o;Wy(r,s)}return $n}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:b,element:_,...k}=this.options,S=new ph({...k,keyframes:r,duration:c,type:d,ease:u,times:p,isGenerator:!0}),j=la(this.time);g.setWithVelocity(S.sample(j-vd).value,S.sample(j).value,vd)}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 YR()&&r&&KR.has(r)&&!m&&!g&&!c&&d!=="mirror"&&u!==0&&p!=="inertia"}}const e3={type:"spring",stiffness:500,damping:25,restSpeed:10},t3=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),n3={type:"keyframes",duration:.8},s3={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},a3=(t,{keyframes:s})=>s.length>2?n3:Oi.has(t)?t.startsWith("scale")?t3(s[1]):e3:s3;function i3({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 mh=(t,s,o,r={},c,d)=>u=>{const p=Qm(r,t)||{},m=p.delay||r.delay||0;let{elapsed:g=0}=r;g=g-la(m);let v={keyframes:Array.isArray(o)?o:[null,o],ease:"easeOut",velocity:s.getVelocity(),...p,delay:-g,onUpdate:_=>{s.set(_),p.onUpdate&&p.onUpdate(_)},onComplete:()=>{u(),p.onComplete&&p.onComplete()},name:t,motionValue:s,element:d?void 0:c};i3(p)||(v={...v,...a3(t,v)}),v.duration&&(v.duration=la(v.duration)),v.repeatDelay&&(v.repeatDelay=la(v.repeatDelay)),v.from!==void 0&&(v.keyframes[0]=v.from);let b=!1;if((v.type===!1||v.duration===0&&!v.repeatDelay)&&(v.duration=0,v.delay===0&&(b=!0)),b&&!d&&s.get()!==void 0){const _=Od(v.keyframes,p);if(_!==void 0)return wt.update(()=>{v.onUpdate(_),v.onComplete()}),new LM([])}return!d&&cb.supports(v)?new cb(v):new ph(v)};function o3({protectedKeys:t,needsAnimating:s},o){const r=t.hasOwnProperty(o)&&s[o]!==!0;return s[o]=!1,r}function N1(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 b in m){const _=t.getValue(b,(d=t.latestValues[b])!==null&&d!==void 0?d:null),k=m[b];if(k===void 0||v&&o3(v,b))continue;const S={delay:o,...Qm(u||{},b)};let j=!1;if(window.MotionHandoffAnimation){const N=Fx(t);if(N){const C=window.MotionHandoffAnimation(N,b,wt);C!==null&&(S.startTime=C,j=!0)}}Xp(t,b),_.start(mh(b,_,k,t.shouldReduceMotion&&qx.has(b)?{type:!1}:S,t,j));const T=_.animation;T&&g.push(T)}return p&&Promise.all(g).then(()=>{wt.update(()=>{p&&RM(t,p)})}),g}function rm(t,s,o={}){var r;const c=Id(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(N1(t,c,o)):()=>Promise.resolve(),p=t.variantChildren&&t.variantChildren.size?(g=0)=>{const{delayChildren:v=0,staggerChildren:b,staggerDirection:_}=d;return r3(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 r3(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(l3).forEach((g,v)=>{g.notify("AnimationStart",s),u.push(rm(g,s,{...d,delay:o+m(v)}).then(()=>g.notify("AnimationComplete",s)))}),Promise.all(u)}function l3(t,s){return t.sortNodePosition(s)}function c3(t,s,o={}){t.notify("AnimationStart",s);let r;if(Array.isArray(s)){const c=s.map(d=>rm(t,d,o));r=Promise.all(c)}else if(typeof s=="string")r=rm(t,s,o);else{const c=typeof s=="function"?Id(t,s,o.custom):s;r=Promise.all(N1(t,c,o))}return r.then(()=>{t.notify("AnimationComplete",s)})}const d3=Pm.length;function w1(t){if(!t)return;if(!t.isControllingVariants){const o=t.parent?w1(t.parent)||{}:{};return t.props.initial!==void 0&&(o.initial=t.props.initial),o}const s={};for(let o=0;o<d3;o++){const r=Pm[o],c=t.props[r];(ol(c)||c===!1)&&(s[r]=c)}return s}const u3=[...Hm].reverse(),f3=Hm.length;function p3(t){return s=>Promise.all(s.map(({animation:o,options:r})=>c3(t,o,r)))}function m3(t){let s=p3(t),o=db(),r=!0;const c=m=>(g,v)=>{var b;const _=Id(t,v,m==="exit"?(b=t.presenceContext)===null||b===void 0?void 0:b.custom:void 0);if(_){const{transition:k,transitionEnd:S,...j}=_;g={...g,...j,...S}}return g};function d(m){s=m(t)}function u(m){const{props:g}=t,v=w1(t.parent)||{},b=[],_=new Set;let k={},S=1/0;for(let T=0;T<f3;T++){const N=u3[T],C=o[N],D=g[N]!==void 0?g[N]:v[N],A=ol(D),E=N===m?C.isActive:null;E===!1&&(S=T);let R=D===v[N]&&D!==g[N]&&A;if(R&&r&&t.manuallyAnimateOnMount&&(R=!1),C.protectedKeys={...k},!C.isActive&&E===null||!D&&!C.prevProp||Md(D)||typeof D=="boolean")continue;const B=h3(C.prevProp,D);let M=B||N===m&&C.isActive&&!R&&A||T>S&&A,$=!1;const Y=Array.isArray(D)?D:[D];let U=Y.reduce(c(N),{});E===!1&&(U={});const{prevResolvedValues:X={}}=C,te={...X,...U},G=O=>{M=!0,_.has(O)&&($=!0,_.delete(O)),C.needsAnimating[O]=!0;const q=t.getValue(O);q&&(q.liveStyle=!1)};for(const O in te){const q=U[O],ge=X[O];if(k.hasOwnProperty(O))continue;let se=!1;Wp(q)&&Wp(ge)?se=!Vx(q,ge):se=q!==ge,se?q!=null?G(O):_.add(O):q!==void 0&&_.has(O)?G(O):C.protectedKeys[O]=!0}C.prevProp=D,C.prevResolvedValues=U,C.isActive&&(k={...k,...U}),r&&t.blockInitialAnimation&&(M=!1),M&&(!(R&&B)||$)&&b.push(...Y.map(O=>({animation:O,options:{type:N}})))}if(_.size){const T={};_.forEach(N=>{const C=t.getBaseTarget(N),D=t.getValue(N);D&&(D.liveStyle=!0),T[N]=C??null}),b.push({animation:T})}let j=!!b.length;return r&&(g.initial===!1||g.initial===g.animate)&&!t.manuallyAnimateOnMount&&(j=!1),r=!1,j?s(b):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(_=>{var k;return(k=_.animationState)===null||k===void 0?void 0:k.setActive(m,g)}),o[m].isActive=g;const b=u(m);for(const _ in o)o[_].protectedKeys={};return b}return{animateChanges:u,setActive:p,setAnimateFunction:d,getState:()=>o,reset:()=>{o=db(),r=!0}}}function h3(t,s){return typeof s=="string"?s!==t:Array.isArray(s)?!Vx(s,t):!1}function bi(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function db(){return{animate:bi(!0),whileInView:bi(),whileHover:bi(),whileTap:bi(),whileDrag:bi(),whileFocus:bi(),exit:bi()}}class Qa{constructor(s){this.isMounted=!1,this.node=s}update(){}}class g3 extends Qa{constructor(s){super(s),s.animationState||(s.animationState=m3(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Md(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 v3=0;class y3 extends Qa{constructor(){super(...arguments),this.id=v3++}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 b3={animation:{Feature:g3},exit:{Feature:y3}},vs={x:!1,y:!1};function C1(){return vs.x||vs.y}function _3(t){return t==="x"||t==="y"?vs[t]?null:(vs[t]=!0,()=>{vs[t]=!1}):vs.x||vs.y?null:(vs.x=vs.y=!0,()=>{vs.x=vs.y=!1})}const hh=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1;function dl(t,s,o,r={passive:!0}){return t.addEventListener(s,o,r),()=>t.removeEventListener(s,o)}function xl(t){return{point:{x:t.pageX,y:t.pageY}}}const x3=t=>s=>hh(s)&&t(s,xl(s));function Qr(t,s,o,r){return dl(t,s,x3(o),r)}const ub=(t,s)=>Math.abs(t-s);function k3(t,s){const o=ub(t.x,s.x),r=ub(t.y,s.y);return Math.sqrt(o**2+r**2)}class E1{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 b=Sp(this.lastMoveEventInfo,this.history),_=this.startEvent!==null,k=k3(b.offset,{x:0,y:0})>=3;if(!_&&!k)return;const{point:S}=b,{timestamp:j}=pn;this.history.push({...S,timestamp:j});const{onStart:T,onMove:N}=this.handlers;_||(T&&T(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),N&&N(this.lastMoveEvent,b)},this.handlePointerMove=(b,_)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=kp(_,this.transformPagePoint),wt.update(this.updatePoint,!0)},this.handlePointerUp=(b,_)=>{this.end();const{onEnd:k,onSessionEnd:S,resumeAnimation:j}=this.handlers;if(this.dragSnapToOrigin&&j&&j(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const T=Sp(b.type==="pointercancel"?this.lastMoveEventInfo:kp(_,this.transformPagePoint),this.history);this.startEvent&&k&&k(b,T),S&&S(b,T)},!hh(s))return;this.dragSnapToOrigin=d,this.handlers=o,this.transformPagePoint=r,this.contextWindow=c||window;const u=xl(s),p=kp(u,this.transformPagePoint),{point:m}=p,{timestamp:g}=pn;this.history=[{...m,timestamp:g}];const{onSessionStart:v}=o;v&&v(s,Sp(p,this.history)),this.removeListeners=_l(Qr(this.contextWindow,"pointermove",this.handlePointerMove),Qr(this.contextWindow,"pointerup",this.handlePointerUp),Qr(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),Wa(this.updatePoint)}}function kp(t,s){return s?{point:s(t.point)}:t}function fb(t,s){return{x:t.x-s.x,y:t.y-s.y}}function Sp({point:t},s){return{point:t,delta:fb(t,A1(s)),offset:fb(t,S3(s)),velocity:j3(s,.1)}}function S3(t){return t[0]}function A1(t){return t[t.length-1]}function j3(t,s){if(t.length<2)return{x:0,y:0};let o=t.length-1,r=null;const c=A1(t);for(;o>=0&&(r=t[o],!(c.timestamp-r.timestamp>la(s)));)o--;if(!r)return{x:0,y:0};const d=ca(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 D1=1e-4,T3=1-D1,N3=1+D1,M1=.01,w3=0-M1,C3=0+M1;function Hn(t){return t.max-t.min}function E3(t,s,o){return Math.abs(t-s)<=o}function pb(t,s,o,r=.5){t.origin=r,t.originPoint=Dt(s.min,s.max,t.origin),t.scale=Hn(o)/Hn(s),t.translate=Dt(o.min,o.max,t.origin)-t.originPoint,(t.scale>=T3&&t.scale<=N3||isNaN(t.scale))&&(t.scale=1),(t.translate>=w3&&t.translate<=C3||isNaN(t.translate))&&(t.translate=0)}function el(t,s,o,r){pb(t.x,s.x,o.x,r?r.originX:void 0),pb(t.y,s.y,o.y,r?r.originY:void 0)}function mb(t,s,o){t.min=o.min+s.min,t.max=t.min+Hn(s)}function A3(t,s,o){mb(t.x,s.x,o.x),mb(t.y,s.y,o.y)}function hb(t,s,o){t.min=s.min-o.min,t.max=t.min+Hn(s)}function tl(t,s,o){hb(t.x,s.x,o.x),hb(t.y,s.y,o.y)}function D3(t,{min:s,max:o},r){return s!==void 0&&t<s?t=r?Dt(s,t,r.min):Math.max(t,s):o!==void 0&&t>o&&(t=r?Dt(o,t,r.max):Math.min(t,o)),t}function gb(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 M3(t,{top:s,left:o,bottom:r,right:c}){return{x:gb(t.x,o,c),y:gb(t.y,s,r)}}function vb(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 R3(t,s){return{x:vb(t.x,s.x),y:vb(t.y,s.y)}}function I3(t,s){let o=.5;const r=Hn(t),c=Hn(s);return c>r?o=Uo(s.min,s.max-r,t.min):r>c&&(o=Uo(t.min,t.max-c,s.min)),ua(0,1,o)}function O3(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 lm=.35;function B3(t=lm){return t===!1?t=0:t===!0&&(t=lm),{x:yb(t,"left","right"),y:yb(t,"top","bottom")}}function yb(t,s,o){return{min:bb(t,s),max:bb(t,o)}}function bb(t,s){return typeof t=="number"?t:t[s]||0}const _b=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ro=()=>({x:_b(),y:_b()}),xb=()=>({min:0,max:0}),zt=()=>({x:xb(),y:xb()});function is(t){return[t("x"),t("y")]}function R1({top:t,left:s,right:o,bottom:r}){return{x:{min:s,max:o},y:{min:t,max:r}}}function L3({x:t,y:s}){return{top:s.min,right:t.max,bottom:s.max,left:t.min}}function z3(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 jp(t){return t===void 0||t===1}function cm({scale:t,scaleX:s,scaleY:o}){return!jp(t)||!jp(s)||!jp(o)}function ki(t){return cm(t)||I1(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function I1(t){return kb(t.x)||kb(t.y)}function kb(t){return t&&t!=="0%"}function yd(t,s,o){const r=t-o,c=s*r;return o+c}function Sb(t,s,o,r,c){return c!==void 0&&(t=yd(t,c,r)),yd(t,o,r)+s}function dm(t,s=0,o=1,r,c){t.min=Sb(t.min,s,o,r,c),t.max=Sb(t.max,s,o,r,c)}function O1(t,{x:s,y:o}){dm(t.x,s.translate,s.scale,s.originPoint),dm(t.y,o.translate,o.scale,o.originPoint)}const jb=.999999999999,Tb=1.0000000000001;function $3(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&&Oo(t,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),u&&(s.x*=u.x.scale,s.y*=u.y.scale,O1(t,u)),r&&ki(d.latestValues)&&Oo(t,d.latestValues))}s.x<Tb&&s.x>jb&&(s.x=1),s.y<Tb&&s.y>jb&&(s.y=1)}function Io(t,s){t.min=t.min+s,t.max=t.max+s}function Nb(t,s,o,r,c=.5){const d=Dt(t.min,t.max,c);dm(t,s,o,d,r)}function Oo(t,s){Nb(t.x,s.x,s.scaleX,s.scale,s.originX),Nb(t.y,s.y,s.scaleY,s.scale,s.originY)}function B1(t,s){return R1(z3(t.getBoundingClientRect(),s))}function H3(t,s,o){const r=B1(t,o),{scroll:c}=s;return c&&(Io(r.x,c.offset.x),Io(r.y,c.offset.y)),r}const L1=({current:t})=>t?t.ownerDocument.defaultView:null,P3=new WeakMap;class U3{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=zt(),this.visualElement=s}start(s,{snapToCursor:o=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const c=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),o&&this.snapToCursor(xl(v).point)},d=(v,b)=>{const{drag:_,dragPropagation:k,onDragStart:S}=this.getProps();if(_&&!k&&(this.openDragLock&&this.openDragLock(),this.openDragLock=_3(_),!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),is(T=>{let N=this.getAxisMotionValue(T).get()||0;if(Is.test(N)){const{projection:C}=this.visualElement;if(C&&C.layout){const D=C.layout.layoutBox[T];D&&(N=Hn(D)*(parseFloat(N)/100))}}this.originPoint[T]=N}),S&&wt.postRender(()=>S(v,b)),Xp(this.visualElement,"transform");const{animationState:j}=this.visualElement;j&&j.setActive("whileDrag",!0)},u=(v,b)=>{const{dragPropagation:_,dragDirectionLock:k,onDirectionLock:S,onDrag:j}=this.getProps();if(!_&&!this.openDragLock)return;const{offset:T}=b;if(k&&this.currentDirection===null){this.currentDirection=V3(T),this.currentDirection!==null&&S&&S(this.currentDirection);return}this.updateAxis("x",b.point,T),this.updateAxis("y",b.point,T),this.visualElement.render(),j&&j(v,b)},p=(v,b)=>this.stop(v,b),m=()=>is(v=>{var b;return this.getAnimationState(v)==="paused"&&((b=this.getAxisMotionValue(v).animation)===null||b===void 0?void 0:b.play())}),{dragSnapToOrigin:g}=this.getProps();this.panSession=new E1(s,{onSessionStart:c,onStart:d,onMove:u,onSessionEnd:p,resumeAnimation:m},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,contextWindow:L1(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&&wt.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||!Gc(s,c,this.currentDirection))return;const d=this.getAxisMotionValue(s);let u=this.originPoint[s]+r[s];this.constraints&&this.constraints[s]&&(u=D3(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&&Do(o)?this.constraints||(this.constraints=this.resolveRefConstraints()):o&&c?this.constraints=M3(c.layoutBox,o):this.constraints=!1,this.elastic=B3(r),d!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&is(u=>{this.constraints!==!1&&this.getAxisMotionValue(u)&&(this.constraints[u]=O3(c.layoutBox[u],this.constraints[u]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:o}=this.getProps();if(!s||!Do(s))return!1;const r=s.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const d=H3(r,c.root,this.visualElement.getTransformPagePoint());let u=R3(c.layout.layoutBox,d);if(o){const p=o(L3(u));this.hasMutatedConstraints=!!p,p&&(u=R1(p))}return u}startAnimation(s){const{drag:o,dragMomentum:r,dragElastic:c,dragTransition:d,dragSnapToOrigin:u,onDragTransitionEnd:p}=this.getProps(),m=this.constraints||{},g=is(v=>{if(!Gc(v,o,this.currentDirection))return;let b=m&&m[v]||{};u&&(b={min:0,max:0});const _=c?200:1e6,k=c?40:1e7,S={type:"inertia",velocity:r?s[v]:0,bounceStiffness:_,bounceDamping:k,timeConstant:750,restDelta:1,restSpeed:10,...d,...b};return this.startAxisValueAnimation(v,S)});return Promise.all(g).then(p)}startAxisValueAnimation(s,o){const r=this.getAxisMotionValue(s);return Xp(this.visualElement,s),r.start(mh(s,r,0,o,this.visualElement,!1))}stopAnimation(){is(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){is(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){is(o=>{const{drag:r}=this.getProps();if(!Gc(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]-Dt(u,p,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:o}=this.getProps(),{projection:r}=this.visualElement;if(!Do(o)||!r||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};is(u=>{const p=this.getAxisMotionValue(u);if(p&&this.constraints!==!1){const m=p.get();c[u]=I3({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(),is(u=>{if(!Gc(u,s,null))return;const p=this.getAxisMotionValue(u),{min:m,max:g}=this.constraints[u];p.set(Dt(m,g,c[u]))})}addListeners(){if(!this.visualElement.current)return;P3.set(this.visualElement,this);const s=this.visualElement.current,o=Qr(s,"pointerdown",m=>{const{drag:g,dragListener:v=!0}=this.getProps();g&&v&&this.start(m)}),r=()=>{const{dragConstraints:m}=this.getProps();Do(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()),wt.read(r);const u=dl(window,"resize",()=>this.scalePositionWithinConstraints()),p=c.addEventListener("didUpdate",(({delta:m,hasLayoutChanged:g})=>{this.isDragging&&g&&(is(v=>{const b=this.getAxisMotionValue(v);b&&(this.originPoint[v]+=m[v].translate,b.set(b.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=lm,dragMomentum:p=!0}=s;return{...s,drag:o,dragDirectionLock:r,dragPropagation:c,dragConstraints:d,dragElastic:u,dragMomentum:p}}}function Gc(t,s,o){return(s===!0||s===t)&&(o===null||o===t)}function V3(t,s=10){let o=null;return Math.abs(t.y)>s?o="y":Math.abs(t.x)>s&&(o="x"),o}class q3 extends Qa{constructor(s){super(s),this.removeGroupControls=$n,this.removeListeners=$n,this.controls=new U3(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||$n}unmount(){this.removeGroupControls(),this.removeListeners()}}const wb=t=>(s,o)=>{t&&wt.postRender(()=>t(s,o))};class G3 extends Qa{constructor(){super(...arguments),this.removePointerDownListener=$n}onPointerDown(s){this.session=new E1(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:L1(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:o,onPan:r,onPanEnd:c}=this.node.getProps();return{onSessionStart:wb(s),onStart:wb(o),onMove:r,onEnd:(d,u)=>{delete this.session,c&&wt.postRender(()=>c(d,u))}}}mount(){this.removePointerDownListener=Qr(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 id={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Cb(t,s){return s.max===s.min?0:t/(s.max-s.min)*100}const Pr={correct:(t,s)=>{if(!s.target)return t;if(typeof t=="string")if(Ae.test(t))t=parseFloat(t);else return t;const o=Cb(t,s.target.x),r=Cb(t,s.target.y);return`${o}% ${r}%`}},F3={correct:(t,{treeScale:s,projectionDelta:o})=>{const r=t,c=Xa.parse(t);if(c.length>5)return r;const d=Xa.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=Dt(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 K3 extends y.Component{componentDidMount(){const{visualElement:s,layoutGroup:o,switchLayoutGroup:r,layoutId:c}=this.props,{projection:d}=s;bM(Z3),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()})),id.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()||wt.postRender(()=>{const p=u.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Vm.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 z1(t){const[s,o]=kx(),r=y.useContext(Bm);return a.jsx(K3,{...t,layoutGroup:r,switchLayoutGroup:y.useContext(Ax),isPresent:s,safeToRemove:o})}const Z3={borderRadius:{...Pr,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Pr,borderTopRightRadius:Pr,borderBottomLeftRadius:Pr,borderBottomRightRadius:Pr,boxShadow:F3};function Y3(t,s,o){const r=gn(t)?t:ll(t);return r.start(mh("",r,s,o)),r.animation}function J3(t){return t instanceof SVGElement&&t.tagName!=="svg"}const W3=(t,s)=>t.depth-s.depth;class X3{constructor(){this.children=[],this.isDirty=!1}add(s){eh(this.children,s),this.isDirty=!0}remove(s){th(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(W3),this.isDirty=!1,this.children.forEach(s)}}function Q3(t,s){const o=Os.now(),r=({timestamp:c})=>{const d=c-o;d>=s&&(Wa(r),t(d-s))};return wt.read(r,!0),()=>Wa(r)}const $1=["TopLeft","TopRight","BottomLeft","BottomRight"],e4=$1.length,Eb=t=>typeof t=="string"?parseFloat(t):t,Ab=t=>typeof t=="number"||Ae.test(t);function t4(t,s,o,r,c,d){c?(t.opacity=Dt(0,o.opacity!==void 0?o.opacity:1,n4(r)),t.opacityExit=Dt(s.opacity!==void 0?s.opacity:1,0,s4(r))):d&&(t.opacity=Dt(s.opacity!==void 0?s.opacity:1,o.opacity!==void 0?o.opacity:1,r));for(let u=0;u<e4;u++){const p=`border${$1[u]}Radius`;let m=Db(s,p),g=Db(o,p);if(m===void 0&&g===void 0)continue;m||(m=0),g||(g=0),m===0||g===0||Ab(m)===Ab(g)?(t[p]=Math.max(Dt(Eb(m),Eb(g),r),0),(Is.test(g)||Is.test(m))&&(t[p]+="%")):t[p]=g}(s.rotate||o.rotate)&&(t.rotate=Dt(s.rotate||0,o.rotate||0,r))}function Db(t,s){return t[s]!==void 0?t[s]:t.borderRadius}const n4=H1(0,.5,n1),s4=H1(.5,.95,$n);function H1(t,s,o){return r=>r<t?0:r>s?1:o(Uo(t,s,r))}function Mb(t,s){t.min=s.min,t.max=s.max}function Qn(t,s){Mb(t.x,s.x),Mb(t.y,s.y)}function Rb(t,s){t.translate=s.translate,t.scale=s.scale,t.originPoint=s.originPoint,t.origin=s.origin}function Ib(t,s,o,r,c){return t-=s,t=yd(t,1/o,r),c!==void 0&&(t=yd(t,1/c,r)),t}function a4(t,s=0,o=1,r=.5,c,d=t,u=t){if(Is.test(s)&&(s=parseFloat(s),s=Dt(u.min,u.max,s/100)-u.min),typeof s!="number")return;let p=Dt(d.min,d.max,r);t===d&&(p-=s),t.min=Ib(t.min,s,o,p,c),t.max=Ib(t.max,s,o,p,c)}function Ob(t,s,[o,r,c],d,u){a4(t,s[o],s[r],s[c],s.scale,d,u)}const i4=["x","scaleX","originX"],o4=["y","scaleY","originY"];function Bb(t,s,o,r){Ob(t.x,s,i4,o?o.x:void 0,r?r.x:void 0),Ob(t.y,s,o4,o?o.y:void 0,r?r.y:void 0)}function Lb(t){return t.translate===0&&t.scale===1}function P1(t){return Lb(t.x)&&Lb(t.y)}function zb(t,s){return t.min===s.min&&t.max===s.max}function r4(t,s){return zb(t.x,s.x)&&zb(t.y,s.y)}function $b(t,s){return Math.round(t.min)===Math.round(s.min)&&Math.round(t.max)===Math.round(s.max)}function U1(t,s){return $b(t.x,s.x)&&$b(t.y,s.y)}function Hb(t){return Hn(t.x)/Hn(t.y)}function Pb(t,s){return t.translate===s.translate&&t.scale===s.scale&&t.originPoint===s.originPoint}class l4{constructor(){this.members=[]}add(s){eh(this.members,s),s.scheduleRender()}remove(s){if(th(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 c4(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:b,rotateY:_,skewX:k,skewY:S}=o;g&&(r=`perspective(${g}px) ${r}`),v&&(r+=`rotate(${v}deg) `),b&&(r+=`rotateX(${b}deg) `),_&&(r+=`rotateY(${_}deg) `),k&&(r+=`skewX(${k}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 Si={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Zr=typeof window<"u"&&window.MotionDebug!==void 0,Tp=["","X","Y","Z"],d4={visibility:"hidden"},Ub=1e3;let u4=0;function Np(t,s,o,r){const{latestValues:c}=s;c[t]&&(o[t]=c[t],s.setStaticValue(t,0),r&&(r[t]=0))}function V1(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:s}=t.options;if(!s)return;const o=Fx(s);if(window.MotionHasOptimisedAnimation(o,"transform")){const{layout:c,layoutId:d}=t.options;window.MotionCancelOptimisedAnimation(o,"transform",wt,!(c||d))}const{parent:r}=t;r&&!r.hasCheckedOptimisedAppear&&V1(r)}function q1({attachResizeListener:t,defaultParent:s,measureScroll:o,checkIsScrollRoot:r,resetTransform:c}){return class{constructor(u={},p=s==null?void 0:s()){this.id=u4++,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,Zr&&(Si.totalNodes=Si.resolvedTargetDeltas=Si.recalculatedProjection=0),this.nodes.forEach(m4),this.nodes.forEach(b4),this.nodes.forEach(_4),this.nodes.forEach(h4),Zr&&window.MotionDebug.record(Si)},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 X3)}addEventListener(u,p){return this.eventHandlers.has(u)||this.eventHandlers.set(u,new nh),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=J3(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 b;const _=()=>this.root.updateBlockedByResize=!1;t(u,()=>{this.root.updateBlockedByResize=!0,b&&b(),b=Q3(_,250),id.hasAnimatedSinceResize&&(id.hasAnimatedSinceResize=!1,this.nodes.forEach(qb))})}m&&this.root.registerSharedNode(m,this),this.options.animate!==!1&&v&&(m||g)&&this.addEventListener("didUpdate",({delta:b,hasLayoutChanged:_,hasRelativeTargetChanged:k,layout:S})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const j=this.options.transition||v.getDefaultTransition()||T4,{onLayoutAnimationStart:T,onLayoutAnimationComplete:N}=v.getProps(),C=!this.targetLayout||!U1(this.targetLayout,S)||k,D=!_&&k;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||D||_&&(C||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(b,D);const A={...Qm(j,"layout"),onPlay:T,onComplete:N};(v.shouldReduceMotion||this.options.layoutRoot)&&(A.delay=0,A.type=!1),this.startAnimation(A)}else _||qb(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,Wa(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(x4),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&&V1(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let v=0;v<this.path.length;v++){const b=this.path[v];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.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(Vb);return}this.isUpdating||this.nodes.forEach(v4),this.isUpdating=!1,this.nodes.forEach(y4),this.nodes.forEach(f4),this.nodes.forEach(p4),this.clearAllSnapshots();const p=Os.now();pn.delta=ua(0,1e3/60,p-pn.timestamp),pn.timestamp=p,pn.isProcessing=!0,vp.update.process(pn),vp.preRender.process(pn),vp.render.process(pn),pn.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Vm.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(g4),this.sharedNodes.forEach(k4)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,wt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){wt.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=zt(),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&&!P1(this.projectionDelta),m=this.getTransformTemplate(),g=m?m(this.latestValues,""):void 0,v=g!==this.prevTransformTemplateValue;u&&(p||ki(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)),N4(m),{animationId:this.root.animationId,measuredBox:p,layoutBox:m,latestValues:{},source:this.id}}measurePageBox(){var u;const{visualElement:p}=this.options;if(!p)return zt();const m=p.measureViewportBox();if(!(((u=this.scroll)===null||u===void 0?void 0:u.wasRoot)||this.path.some(w4))){const{scroll:v}=this.root;v&&(Io(m.x,v.offset.x),Io(m.y,v.offset.y))}return m}removeElementScroll(u){var p;const m=zt();if(Qn(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:b,options:_}=v;v!==this.root&&b&&_.layoutScroll&&(b.wasRoot&&Qn(m,u),Io(m.x,b.offset.x),Io(m.y,b.offset.y))}return m}applyTransform(u,p=!1){const m=zt();Qn(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&&Oo(m,{x:-v.scroll.offset.x,y:-v.scroll.offset.y}),ki(v.latestValues)&&Oo(m,v.latestValues)}return ki(this.latestValues)&&Oo(m,this.latestValues),m}removeTransform(u){const p=zt();Qn(p,u);for(let m=0;m<this.path.length;m++){const g=this.path[m];if(!g.instance||!ki(g.latestValues))continue;cm(g.latestValues)&&g.updateSnapshot();const v=zt(),b=g.measurePageBox();Qn(v,b),Bb(p,g.latestValues,g.snapshot?g.snapshot.layoutBox:void 0,v)}return ki(this.latestValues)&&Bb(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:b,layoutId:_}=this.options;if(!(!this.layout||!(b||_))){if(this.resolvedRelativeTargetAt=pn.timestamp,!this.targetDelta&&!this.relativeTarget){const k=this.getClosestProjectingParent();k&&k.layout&&this.animationProgress!==1?(this.relativeParent=k,this.forceRelativeParentToResolveTarget(),this.relativeTarget=zt(),this.relativeTargetOrigin=zt(),tl(this.relativeTargetOrigin,this.layout.layoutBox,k.layout.layoutBox),Qn(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=zt(),this.targetWithTransforms=zt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),A3(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Qn(this.target,this.layout.layoutBox),O1(this.target,this.targetDelta)):Qn(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const k=this.getClosestProjectingParent();k&&!!k.resumingFrom==!!this.resumingFrom&&!k.options.layoutScroll&&k.target&&this.animationProgress!==1?(this.relativeParent=k,this.forceRelativeParentToResolveTarget(),this.relativeTarget=zt(),this.relativeTargetOrigin=zt(),tl(this.relativeTargetOrigin,this.target,k.target),Qn(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}Zr&&Si.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||cm(this.parent.latestValues)||I1(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:b}=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||b))return;Qn(this.layoutCorrected,this.layout.layoutBox);const _=this.treeScale.x,k=this.treeScale.y;$3(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=zt());const{target:S}=p;if(!S){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Rb(this.prevProjectionDelta.x,this.projectionDelta.x),Rb(this.prevProjectionDelta.y,this.projectionDelta.y)),el(this.projectionDelta,this.layoutCorrected,S,this.latestValues),(this.treeScale.x!==_||this.treeScale.y!==k||!Pb(this.projectionDelta.x,this.prevProjectionDelta.x)||!Pb(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",S)),Zr&&Si.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=Ro(),this.projectionDelta=Ro(),this.projectionDeltaWithTransform=Ro()}setAnimationOrigin(u,p=!1){const m=this.snapshot,g=m?m.latestValues:{},v={...this.latestValues},b=Ro();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!p;const _=zt(),k=m?m.source:void 0,S=this.layout?this.layout.source:void 0,j=k!==S,T=this.getStack(),N=!T||T.members.length<=1,C=!!(j&&!N&&this.options.crossfade===!0&&!this.path.some(j4));this.animationProgress=0;let D;this.mixTargetDelta=A=>{const E=A/1e3;Gb(b.x,u.x,E),Gb(b.y,u.y,E),this.setTargetDelta(b),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(tl(_,this.layout.layoutBox,this.relativeParent.layout.layoutBox),S4(this.relativeTarget,this.relativeTargetOrigin,_,E),D&&r4(this.relativeTarget,D)&&(this.isProjectionDirty=!1),D||(D=zt()),Qn(D,this.relativeTarget)),j&&(this.animationValues=v,t4(v,g,this.latestValues,E,C,N)),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&&(Wa(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=wt.update(()=>{id.hasAnimatedSinceResize=!0,this.currentAnimation=Y3(0,Ub,{...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(Ub),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&&G1(this.options.animationType,this.layout.layoutBox,g.layoutBox)){m=this.target||zt();const b=Hn(this.layout.layoutBox.x);m.x.min=u.target.x.min,m.x.max=m.x.min+b;const _=Hn(this.layout.layoutBox.y);m.y.min=u.target.y.min,m.y.max=m.y.min+_}Qn(p,m),Oo(p,v),el(this.projectionDeltaWithTransform,this.layoutCorrected,p,v)}}registerSharedNode(u,p){this.sharedNodes.has(u)||this.sharedNodes.set(u,new l4),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&&Np("z",u,g,this.animationValues);for(let v=0;v<Tp.length;v++)Np(`rotate${Tp[v]}`,u,g,this.animationValues),Np(`skew${Tp[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 d4;const g={visibility:""},v=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,g.opacity="",g.pointerEvents=sd(u==null?void 0:u.pointerEvents)||"",g.transform=v?v(this.latestValues,""):"none",g;const b=this.getLead();if(!this.projectionDelta||!this.layout||!b.target){const j={};return this.options.layoutId&&(j.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,j.pointerEvents=sd(u==null?void 0:u.pointerEvents)||""),this.hasProjected&&!ki(this.latestValues)&&(j.transform=v?v({},""):"none",this.hasProjected=!1),j}const _=b.animationValues||b.latestValues;this.applyTransformsToTarget(),g.transform=c4(this.projectionDeltaWithTransform,this.treeScale,_),v&&(g.transform=v(_,g.transform));const{x:k,y:S}=this.projectionDelta;g.transformOrigin=`${k.origin*100}% ${S.origin*100}% 0`,b.animationValues?g.opacity=b===this?(m=(p=_.opacity)!==null&&p!==void 0?p:this.latestValues.opacity)!==null&&m!==void 0?m:1:this.preserveOpacity?this.latestValues.opacity:_.opacityExit:g.opacity=b===this?_.opacity!==void 0?_.opacity:"":_.opacityExit!==void 0?_.opacityExit:0;for(const j in pd){if(_[j]===void 0)continue;const{correct:T,applyTo:N}=pd[j],C=g.transform==="none"?_[j]:T(_[j],b);if(N){const D=N.length;for(let A=0;A<D;A++)g[N[A]]=C}else g[j]=C}return this.options.layoutId&&(g.pointerEvents=b===this?sd(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(Vb),this.root.sharedNodes.clear()}}}function f4(t){t.updateLayout()}function p4(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"?is(b=>{const _=u?o.measuredBox[b]:o.layoutBox[b],k=Hn(_);_.min=r[b].min,_.max=_.min+k}):G1(d,o.layoutBox,r)&&is(b=>{const _=u?o.measuredBox[b]:o.layoutBox[b],k=Hn(r[b]);_.max=_.min+k,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[b].max=t.relativeTarget[b].min+k)});const p=Ro();el(p,r,o.layoutBox);const m=Ro();u?el(m,t.applyTransform(c,!0),o.measuredBox):el(m,r,o.layoutBox);const g=!P1(p);let v=!1;if(!t.resumeFrom){const b=t.getClosestProjectingParent();if(b&&!b.resumeFrom){const{snapshot:_,layout:k}=b;if(_&&k){const S=zt();tl(S,o.layoutBox,_.layoutBox);const j=zt();tl(j,r,k.layoutBox),U1(S,j)||(v=!0),b.options.layoutRoot&&(t.relativeTarget=j,t.relativeTargetOrigin=S,t.relativeParent=b)}}}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 m4(t){Zr&&Si.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 h4(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function g4(t){t.clearSnapshot()}function Vb(t){t.clearMeasurements()}function v4(t){t.isLayoutDirty=!1}function y4(t){const{visualElement:s}=t.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),t.resetTransform()}function qb(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function b4(t){t.resolveTargetDelta()}function _4(t){t.calcProjection()}function x4(t){t.resetSkewAndRotation()}function k4(t){t.removeLeadSnapshot()}function Gb(t,s,o){t.translate=Dt(s.translate,0,o),t.scale=Dt(s.scale,1,o),t.origin=s.origin,t.originPoint=s.originPoint}function Fb(t,s,o,r){t.min=Dt(s.min,o.min,r),t.max=Dt(s.max,o.max,r)}function S4(t,s,o,r){Fb(t.x,s.x,o.x,r),Fb(t.y,s.y,o.y,r)}function j4(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const T4={duration:.45,ease:[.4,0,.1,1]},Kb=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),Zb=Kb("applewebkit/")&&!Kb("chrome/")?Math.round:$n;function Yb(t){t.min=Zb(t.min),t.max=Zb(t.max)}function N4(t){Yb(t.x),Yb(t.y)}function G1(t,s,o){return t==="position"||t==="preserve-aspect"&&!E3(Hb(s),Hb(o),.2)}function w4(t){var s;return t!==t.root&&((s=t.scroll)===null||s===void 0?void 0:s.wasRoot)}const C4=q1({attachResizeListener:(t,s)=>dl(t,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),wp={current:void 0},F1=q1({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!wp.current){const t=new C4({});t.mount(window),t.setOptions({layoutScroll:!0}),wp.current=t}return wp.current},resetTransform:(t,s)=>{t.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),E4={pan:{Feature:G3},drag:{Feature:q3,ProjectionNode:F1,MeasureLayout:z1}};function A4(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 K1(t,s){const o=A4(t),r=new AbortController,c={passive:!0,...s,signal:r.signal};return[o,c,()=>r.abort()]}function Jb(t){return s=>{s.pointerType==="touch"||C1()||t(s)}}function D4(t,s,o={}){const[r,c,d]=K1(t,o),u=Jb(p=>{const{target:m}=p,g=s(p);if(typeof g!="function"||!m)return;const v=Jb(b=>{g(b),m.removeEventListener("pointerleave",v)});m.addEventListener("pointerleave",v,c)});return r.forEach(p=>{p.addEventListener("pointerenter",u,c)}),d}function Wb(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&&wt.postRender(()=>d(s,xl(s)))}class M4 extends Qa{mount(){const{current:s}=this.node;s&&(this.unmount=D4(s,o=>(Wb(this.node,o,"Start"),r=>Wb(this.node,r,"End"))))}unmount(){}}class R4 extends Qa{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=_l(dl(this.node.current,"focus",()=>this.onFocus()),dl(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const Z1=(t,s)=>s?t===s?!0:Z1(t,s.parentElement):!1,I4=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function O4(t){return I4.has(t.tagName)||t.tabIndex!==-1}const Yr=new WeakSet;function Xb(t){return s=>{s.key==="Enter"&&t(s)}}function Cp(t,s){t.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const B4=(t,s)=>{const o=t.currentTarget;if(!o)return;const r=Xb(()=>{if(Yr.has(o))return;Cp(o,"down");const c=Xb(()=>{Cp(o,"up")}),d=()=>Cp(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 Qb(t){return hh(t)&&!C1()}function L4(t,s,o={}){const[r,c,d]=K1(t,o),u=p=>{const m=p.currentTarget;if(!Qb(p)||Yr.has(m))return;Yr.add(m);const g=s(p),v=(k,S)=>{window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",_),!(!Qb(k)||!Yr.has(m))&&(Yr.delete(m),typeof g=="function"&&g(k,{success:S}))},b=k=>{v(k,o.useGlobalTarget||Z1(m,k.target))},_=k=>{v(k,!1)};window.addEventListener("pointerup",b,c),window.addEventListener("pointercancel",_,c)};return r.forEach(p=>{!O4(p)&&p.getAttribute("tabindex")===null&&(p.tabIndex=0),(o.useGlobalTarget?window:p).addEventListener("pointerdown",u,c),p.addEventListener("focus",g=>B4(g,c),c)}),d}function e_(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&&wt.postRender(()=>d(s,xl(s)))}class z4 extends Qa{mount(){const{current:s}=this.node;s&&(this.unmount=L4(s,o=>(e_(this.node,o,"Start"),(r,{success:c})=>e_(this.node,r,c?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const um=new WeakMap,Ep=new WeakMap,$4=t=>{const s=um.get(t.target);s&&s(t)},H4=t=>{t.forEach($4)};function P4({root:t,...s}){const o=t||document;Ep.has(o)||Ep.set(o,{});const r=Ep.get(o),c=JSON.stringify(s);return r[c]||(r[c]=new IntersectionObserver(H4,{root:t,...s})),r[c]}function U4(t,s,o){const r=P4(s);return um.set(t,o),r.observe(t),()=>{um.delete(t),r.unobserve(t)}}const V4={some:0,all:1};class q4 extends Qa{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:V4[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:b}=this.node.getProps(),_=g?v:b;_&&_(m)};return U4(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(G4(s,o))&&this.startObserver()}unmount(){}}function G4({viewport:t={}},{viewport:s={}}={}){return o=>t[o]!==s[o]}const F4={inView:{Feature:q4},tap:{Feature:z4},focus:{Feature:R4},hover:{Feature:M4}},K4={layout:{ProjectionNode:F1,MeasureLayout:z1}},bd={current:null},gh={current:!1};function Y1(){if(gh.current=!0,!!$m)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),s=()=>bd.current=t.matches;t.addListener(s),s()}else bd.current=!1}const Z4=[...g1,hn,Xa],Y4=t=>Z4.find(h1(t)),t_=new WeakMap;function J4(t,s,o){for(const r in s){const c=s[r],d=o[r];if(gn(c))t.addValue(r,c);else if(gn(d))t.addValue(r,ll(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,ll(u!==void 0?u:c,{owner:t}))}}for(const r in o)s[r]===void 0&&t.removeValue(r);return s}const n_=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class W4{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=uh,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 k=Os.now();this.renderScheduledAt<k&&(this.renderScheduledAt=k,wt.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=Rd(o),this.isVariantNode=Cx(o),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:b,..._}=this.scrapeMotionValuesFromProps(o,{},this);for(const k in _){const S=_[k];m[k]!==void 0&&gn(S)&&S.set(m[k],!1)}}mount(s){this.current=s,t_.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)),gh.current||Y1(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:bd.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){t_.delete(this.current),this.projection&&this.projection.unmount(),Wa(this.notifyUpdate),Wa(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=Oi.has(s),c=o.on("change",p=>{this.latestValues[s]=p,this.props.onUpdate&&wt.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 Po){const o=Po[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):zt()}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<n_.length;r++){const c=n_[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=J4(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=ll(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"&&(p1(c)||a1(c))?c=parseFloat(c):!Y4(c)&&Xa.test(o)&&(c=d1(s,o)),this.setBaseTarget(s,gn(c)?c.get():c)),gn(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=Gm(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&&!gn(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 nh),this.events[s].add(o)}notify(s,...o){this.events[s]&&this.events[s].notify(...o)}}class J1 extends W4{constructor(){super(...arguments),this.KeyframeResolver=v1}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;gn(s)&&(this.childSubscription=s.on("change",o=>{this.current&&(this.current.textContent=`${o}`)}))}}function X4(t){return window.getComputedStyle(t)}class Q4 extends J1{constructor(){super(...arguments),this.type="html",this.renderInstance=Lx}readValueFromInstance(s,o){if(Oi.has(o)){const r=dh(o);return r&&r.default||0}else{const r=X4(s),c=(Ix(o)?r.getPropertyValue(o):r[o])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(s,{transformPagePoint:o}){return B1(s,o)}build(s,o,r){Zm(s,o,r.transformTemplate)}scrapeMotionValuesFromProps(s,o,r){return Xm(s,o,r)}}class e6 extends J1{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=zt}getBaseTargetFromProps(s,o){return s[o]}readValueFromInstance(s,o){if(Oi.has(o)){const r=dh(o);return r&&r.default||0}return o=zx.has(o)?o:Um(o),s.getAttribute(o)}scrapeMotionValuesFromProps(s,o,r){return Px(s,o,r)}build(s,o,r){Ym(s,o,this.isSVGTag,r.transformTemplate)}renderInstance(s,o,r,c){$x(s,o,r,c)}mount(s){this.isSVGTag=Wm(s.tagName),super.mount(s)}}const t6=(t,s)=>qm(t)?new e6(s):new Q4(s,{allowProjection:t!==y.Fragment}),n6=CM({...b3,...F4,...E4,...K4},t6),Ut=VD(n6);function s6(){!gh.current&&Y1();const[t]=y.useState(bd.current);return t}const a6="_overlay_cmicx_1",i6="_dialog_cmicx_11",o6="_title_cmicx_30",r6="_description_cmicx_38",l6="_actions_cmicx_45",c6="_cancelButton_cmicx_52",d6="_confirmButton_cmicx_79",_i={overlay:a6,dialog:i6,title:o6,description:r6,actions:l6,cancelButton:c6,confirmButton:d6};function bs({isOpen:t,title:s,description:o,confirmLabel:r="Delete",onConfirm:c,onCancel:d}){const u=y.useId(),p=y.useId();return a.jsx(os,{children:t&&a.jsx(Ut.div,{className:_i.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(Ut.div,{className:_i.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:_i.title,children:s}),o&&a.jsx("p",{id:p,className:_i.description,children:o}),a.jsxs("div",{className:_i.actions,children:[a.jsx("button",{type:"button",className:_i.cancelButton,onClick:d,autoFocus:!0,children:"Cancel"}),a.jsx("button",{type:"button",className:_i.confirmButton,onClick:c,children:r})]})]})})})}const u6="_skeleton_1gqp4_9",f6="_circular_1gqp4_17",p6="_textContainer_1gqp4_26",m6="_card_1gqp4_31",_d={skeleton:u6,circular:f6,textContainer:p6,card:m6};function Te({width:t="100%",height:s="1rem",borderRadius:o,variant:r="rectangular",className:c}){const d=[_d.skeleton,r==="circular"?_d.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 fm({lines:t=3,lastLineWidth:s="60%",lineHeight:o="0.75rem",gap:r="var(--space-sm)",className:c}){return a.jsx("div",{className:`${_d.textContainer} ${c??""}`,style:{gap:r},"aria-hidden":"true","data-testid":"skeleton-text",children:Array.from({length:t},(d,u)=>a.jsx(Te,{width:u===t-1&&t>1?s:"100%",height:o},u))})}function pm({lines:t=2,className:s}){return a.jsxs("div",{className:`${_d.card} ${s??""}`,"aria-hidden":"true","data-testid":"skeleton-card",children:[a.jsx(Te,{width:"40%",height:"1.25rem"}),a.jsx(fm,{lines:t})]})}const h6="_spinner_1uyt1_1",g6="_spin_1uyt1_1",v6="_sm_1uyt1_14",y6="_md_1uyt1_20",b6="_lg_1uyt1_26",_6="_xl_1uyt1_32",s_={spinner:h6,spin:g6,sm:v6,md:y6,lg:b6,xl:_6};function W1({size:t="md",className:s,label:o="Loading",liveRegion:r=!1}){return a.jsx("span",{className:`${s_.spinner} ${s_[t]} ${s??""}`,role:r?"status":void 0,"aria-label":o,"aria-hidden":r?void 0:!0})}function Bd(t){return`/${t.replace(/^\//,"")}`}const x6="_splash_1bn1g_1",k6="_logo_1bn1g_11",a_={splash:x6,logo:k6};function mm(){return a.jsxs("div",{className:a_.splash,"data-testid":"splash-screen",children:[a.jsx("img",{src:Bd("grackle-logo.png"),alt:"Grackle",className:a_.logo}),a.jsx(W1,{size:"xl",label:"Loading Grackle",liveRegion:!0})]})}const S6="_wrapper_4e5yt_1",j6="_wrapperBlock_4e5yt_6",T6="_tooltip_4e5yt_11",N6="_visible_4e5yt_31",w6="_top_4e5yt_41",C6="_bottom_4e5yt_48",E6="_left_4e5yt_55",A6="_right_4e5yt_62",Ur={wrapper:S6,wrapperBlock:j6,tooltip:T6,visible:N6,top:w6,bottom:C6,left:E6,right:A6},D6=300,Fc=6;function Ei({text:t,placement:s="top",delayMs:o=D6,inline:r=!0,children:c,className:d,"data-testid":u}){const[p,m]=y.useState(!1),[g,v]=y.useState({top:0,left:0}),b=y.useRef(null),_=y.useRef(null),k=y.useRef(void 0),S=y.useId(),j=typeof document<"u",T=y.useCallback(()=>{if(!b.current||!_.current)return;const $=b.current.getBoundingClientRect(),Y=_.current.getBoundingClientRect();let U=0,X=0;switch(s){case"top":U=$.top-Y.height-Fc,X=$.left+$.width/2-Y.width/2;break;case"bottom":U=$.bottom+Fc,X=$.left+$.width/2-Y.width/2;break;case"left":U=$.top+$.height/2-Y.height/2,X=$.left-Y.width-Fc;break;case"right":U=$.top+$.height/2-Y.height/2,X=$.right+Fc;break}v({top:U,left:X})},[s]),N=y.useCallback($=>{k.current!==void 0&&clearTimeout(k.current),k.current=setTimeout(()=>{T(),m(!0),k.current=void 0},$)},[T]),C=y.useCallback(()=>{N(o)},[o,N]),D=y.useCallback(()=>{N(0)},[N]),A=y.useCallback(()=>{k.current!==void 0&&(clearTimeout(k.current),k.current=void 0),m(!1)},[]);y.useEffect(()=>{if(!p)return;const $=Y=>{Y.key==="Escape"&&A()};return document.addEventListener("keydown",$),window.addEventListener("scroll",T,!0),window.addEventListener("resize",T),()=>{document.removeEventListener("keydown",$),window.removeEventListener("scroll",T,!0),window.removeEventListener("resize",T)}},[p,A,T]),y.useEffect(()=>()=>{k.current!==void 0&&clearTimeout(k.current)},[]);const E=r?"span":"div",R=[r?Ur.wrapper:Ur.wrapperBlock,d].filter(Boolean).join(" ");let B=c;if(y.isValidElement(c)){const $=c,Y=$.props["aria-describedby"],U=p?Y?`${Y} ${S}`:S:Y;B=y.cloneElement($,{"aria-describedby":U})}const M=a.jsx("div",{ref:_,id:S,role:"tooltip",className:`${Ur.tooltip} ${Ur[s]} ${p?Ur.visible:""}`,style:{top:g.top,left:g.left},"data-testid":u??"tooltip",children:t});return a.jsxs(E,{ref:b,className:R,onMouseEnter:C,onMouseLeave:A,onFocus:D,onBlur:A,children:[B,j?G2.createPortal(M,document.body):null]})}const M6="_attemptSelector_ggigl_1",R6="_attemptLabel_ggigl_17",I6="_attemptButton_ggigl_21",O6="_attemptActive_ggigl_38",B6="_attemptStatus_ggigl_44",Vr={attemptSelector:M6,attemptLabel:R6,attemptButton:I6,attemptActive:O6,attemptStatus:B6};function L6({taskSessions:t,selectedSessionId:s,onSelect:o}){if(!(t.length<2))return a.jsxs("div",{className:Vr.attemptSelector,"data-testid":"attempt-selector",children:[a.jsx("span",{className:Vr.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:`${Vr.attemptButton} ${d?Vr.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:Vr.attemptStatus,children:u})]},r.id)})]})}const z6="_row_ldkru_1",$6="_hoverActions_ldkru_5",H6="_hoverButton_ldkru_31",P6="_selectingRow_ldkru_72",U6="_selected_ldkru_83",V6="_checkboxArea_ldkru_90",q6="_checkbox_ldkru_90",G6="_contentArea_ldkru_106",hs={row:z6,hoverActions:$6,hoverButton:H6,selectingRow:P6,selected:U6,checkboxArea:V6,checkbox:q6,contentArea:G6};function F6({copyText:t,isContentBearing:s,isSelecting:o,isSelected:r,checkboxLabel:c,onSelect:d,onToggle:u,onCopied:p,children:m}){const[g,v]=y.useState(!1),b=y.useRef(void 0);y.useEffect(()=>()=>{b.current!==void 0&&clearTimeout(b.current)},[]);const _=y.useCallback(async()=>{try{await navigator.clipboard.writeText(t),v(!0),p==null||p(),b.current!==void 0&&clearTimeout(b.current),b.current=setTimeout(()=>{v(!1)},2e3)}catch{}},[t,p]),k=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:`${hs.row} ${hs.selectingRow} ${r?hs.selected:""}`,onClick:k,"data-testid":"event-selectable-row",children:[a.jsx("div",{className:hs.checkboxArea,children:a.jsx("input",{type:"checkbox",checked:r,onChange:S=>{u(S.nativeEvent.shiftKey)},onClick:S=>{S.stopPropagation()},className:hs.checkbox,"aria-label":c??"Select this event","data-testid":"event-select-checkbox"})}),a.jsx("div",{className:hs.contentArea,children:m})]}):a.jsxs("div",{className:hs.row,"data-testid":"event-hover-row",children:[a.jsxs("div",{className:hs.hoverActions,"data-testid":"event-hover-actions",children:[a.jsx("button",{type:"button",className:hs.hoverButton,onClick:()=>{_().catch(()=>{})},"aria-label":"Copy event content","data-testid":"event-hover-copy",children:g?a.jsx(Di,{size:Ye,"aria-hidden":"true"}):a.jsx(K_,{size:Ye,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:hs.hoverButton,onClick:d,"aria-label":"Select this event","data-testid":"event-hover-select",children:a.jsx(iN,{size:Ye,"aria-hidden":"true"})})]}),m]}):a.jsx("div",{className:hs.row,children:m})}const K6="_bar_lagql_1",Z6="_left_lagql_21",Y6="_right_lagql_27",J6="_count_lagql_33",W6="_toggleButton_lagql_40",X6="_copyButton_lagql_68",Q6="_forwardButton_lagql_108",eI="_cancelButton_lagql_148",Ua={bar:K6,left:Z6,right:Y6,count:J6,toggleButton:W6,copyButton:X6,forwardButton:Q6,cancelButton:eI};function tI({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(Ut.div,{className:Ua.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:Ua.left,children:[a.jsxs("span",{className:Ua.count,"data-testid":"floating-bar-count",children:[t," selected"]}),a.jsx("button",{type:"button",className:Ua.toggleButton,onClick:m?r:o,"data-testid":"floating-bar-select-all",children:m?"Deselect all":"Select all"})]}),a.jsxs("div",{className:Ua.right,children:[a.jsxs("button",{type:"button",className:Ua.copyButton,onClick:c,disabled:t===0,"data-testid":"floating-bar-copy",children:[a.jsx(rT,{size:Ye,"aria-hidden":"true"}),"Copy"]}),d!==void 0&&a.jsx(Ei,{text:u?"No active sessions to forward to":"Forward to another session",children:a.jsxs("button",{type:"button",className:Ua.forwardButton,"aria-disabled":u||t===0,onClick:()=>{!u&&t>0&&d()},"data-testid":"floating-bar-forward",children:[a.jsx(hT,{size:Ye,"aria-hidden":"true"}),"Forward"]})}),a.jsx("button",{type:"button",className:Ua.cancelButton,onClick:p,"aria-label":"Cancel selection","data-testid":"floating-bar-cancel",children:a.jsx(Ls,{size:Ye,"aria-hidden":"true"})})]})]})}const nI="_overlay_1hra6_1",sI="_dialog_1hra6_11",aI="_header_1hra6_27",iI="_title_1hra6_35",oI="_closeButton_1hra6_42",rI="_filterRow_1hra6_78",lI="_searchIcon_1hra6_86",cI="_filterInput_1hra6_91",dI="_list_1hra6_108",uI="_emptyItem_1hra6_116",fI="_sessionRow_1hra6_123",pI="_sessionMain_1hra6_158",mI="_envName_1hra6_165",hI="_personaName_1hra6_175",gI="_statusBadge_1hra6_189",vI="_status_running_1hra6_198",yI="_status_idle_1hra6_202",bI="_status_other_1hra6_206",_I="_sessionPrompt_1hra6_211",xI="_noSessions_1hra6_220",Zt={overlay:nI,dialog:sI,header:aI,title:iI,closeButton:oI,filterRow:rI,searchIcon:lI,filterInput:cI,list:dI,emptyItem:uI,sessionRow:fI,sessionMain:pI,envName:mI,personaName:hI,statusBadge:gI,status_running:vI,status_idle:yI,status_other:bI,sessionPrompt:_I,noSessions:xI};function kI(t){return t==="running"?"running":t==="idle"?"idle":t}function SI({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])),b=new Map((r??[]).map(j=>[j.id,j.name])),_=s.map(j=>({session:j,environmentName:v.get(j.environmentId)??j.environmentId})),k=s.length>4,S=u.trim()?_.filter(({session:j,environmentName:T})=>T.toLowerCase().includes(u.toLowerCase())||j.prompt.toLowerCase().includes(u.toLowerCase())):_;return a.jsx(os,{children:t&&a.jsx(Ut.div,{className:Zt.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(Ut.div,{ref:m,className:Zt.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:Zt.header,children:[a.jsx("h3",{className:Zt.title,children:"Forward to session"}),a.jsx("button",{ref:g,type:"button",className:Zt.closeButton,onClick:d,"aria-label":"Close session picker","data-testid":"session-picker-close",children:a.jsx(Ls,{size:Ye,"aria-hidden":"true"})})]}),k&&a.jsxs("div",{className:Zt.filterRow,children:[a.jsx(qp,{size:Ye,className:Zt.searchIcon,"aria-hidden":"true"}),a.jsx("input",{type:"text",className:Zt.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:Zt.noSessions,"data-testid":"session-picker-no-sessions",children:[a.jsx(qp,{size:Pt,"aria-hidden":"true"}),a.jsx("p",{children:"No active sessions to forward to."})]}):a.jsx("ul",{className:Zt.list,"data-testid":"session-picker-list",children:S.length===0?a.jsx("li",{className:Zt.emptyItem,"data-testid":"session-picker-empty",children:"No matching sessions"}):S.map(({session:j,environmentName:T})=>{const N=j.personaId?b.get(j.personaId)??void 0:void 0;return a.jsx("li",{children:a.jsxs("button",{type:"button",className:Zt.sessionRow,onClick:()=>{c(j.id)},"data-testid":`session-picker-item-${j.id}`,children:[a.jsxs("div",{className:Zt.sessionMain,children:[a.jsx("span",{className:Zt.envName,children:T}),N!==void 0&&a.jsx("span",{className:Zt.personaName,"data-testid":`session-picker-persona-${j.id}`,children:N}),a.jsx("span",{className:`${Zt.statusBadge} ${Zt[`status_${j.status}`]??Zt.status_other}`,"data-testid":`session-picker-status-${j.id}`,children:kI(j.status)})]}),a.jsx("div",{className:Zt.sessionPrompt,children:j.prompt.length>80?`${j.prompt.slice(0,80)}...`:j.prompt})]})},j.id)})})]})})})}const X1=50;function jI(t,s,o,r,c=X1){return r?t<c:s-t-o<c}function TI(t,s){const o=s-t;return o>0?o:0}function NI({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 b=!0;const _=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0;const k=jI(v.scrollTop,v.scrollHeight,v.clientHeight,o,X1);k!==b&&(b=k,d(k))}))};return v.addEventListener("scroll",_,{passive:!0}),()=>{v.removeEventListener("scroll",_),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 b=TI(u.current,v.scrollHeight);b>0&&(v.scrollTop+=b)}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 b=o?0:v.scrollHeight;v.scrollTo({top:b,behavior:"smooth"}),d(!0)},[t,o]);return{isAtAnchor:c,scrollToAnchor:g}}const wI=new Set(["text","output","user_input","tool_use","tool_result","error"]);function ul(t){return wI.has(t.eventType)}function CI(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}
|
|
316
|
-
${c}`}catch{return t.content}default:return t.content}}function i_(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 Q1(t){var o;const s=[];for(const r of t){if(!ul(r))continue;const c=new Date(r.timestamp).toLocaleTimeString();switch(r.eventType){case"text":case"output":{s.push(`**Assistant** (${c}):
|
|
317
|
-
${r.content}`);break}case"user_input":{s.push(`**User** (${c}):
|
|
318
|
-
${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=i_(r.toolUseCtx.args),p=u?`**Tool: ${r.toolUseCtx.tool}** ${u}`:`**Tool: ${r.toolUseCtx.tool}**`;s.push(`${p} (${c}):
|
|
319
|
-
${d}`)}else s.push(`**Tool output** (${c}):
|
|
320
|
-
${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=i_(u),m=p?`**Tool: ${d}** ${p}`:`**Tool: ${d}**`;u!==void 0?s.push(`${m} (${c}):
|
|
321
|
-
\`\`\`json
|
|
322
|
-
${JSON.stringify(u,void 0,2)}
|
|
323
|
-
\`\`\``):s.push(`${m} (${c}):`);break}case"error":{s.push(`**Error** (${c}):
|
|
324
|
-
${r.content}`);break}}}return s.join(`
|
|
325
|
-
|
|
326
|
-
`)}function EI(t,s){const o=AI(t),r=Q1(s);return`--- Forwarded from ${o} ---
|
|
327
|
-
|
|
328
|
-
${r}
|
|
329
|
-
|
|
330
|
-
--- End forwarded ---`}function AI(t){return t.replace(/[\r\n]+/g," ").trim().replace(/---/g,"—")}function DI({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 T=Math.min(u.current,S),N=Math.max(u.current,S);d(C=>{const D=new Set(C);for(let A=T;A<=N;A++)A<t.length&&ul(t[A])&&D.add(A);return D})}else d(T=>{const N=new Set(T);return N.has(S)?N.delete(S):N.add(S),N.size===0?(r(!1),u.current=void 0):u.current=S,N})},[t]),b=y.useCallback(()=>{const S=new Set;for(let j=0;j<t.length;j++)ul(t[j])&&S.add(j);d(S)},[t]),_=y.useCallback(()=>{d(new Set)},[]),k=y.useCallback(async()=>{const j=[...c].sort((N,C)=>N-C).filter(N=>N<t.length).map(N=>t[N]);if(j.length===0)return!1;const T=s(j);try{return await navigator.clipboard.writeText(T),!0}catch{return!1}},[c,t,s]);return{isSelecting:o,selectedIndices:c,selectedCount:p,enterSelectionMode:m,cancelSelection:g,toggleEvent:v,selectAll:b,deselectAll:_,copySelected:k}}const MI="_wrapper_1cdza_1",RI="_scrollContainer_1cdza_9",II="_selectingPadding_1cdza_16",OI="_toolbar_1cdza_20",BI="_directionToggle_1cdza_27",LI="_scrollToAnchor_1cdza_65",zI="_scrollToAnchorBottom_1cdza_89",$I="_scrollToAnchorTop_1cdza_93",HI="_eventOverflowWarning_1cdza_97",oa={wrapper:MI,scrollContainer:RI,selectingPadding:II,toolbar:OI,directionToggle:BI,scrollToAnchor:LI,scrollToAnchorBottom:zI,scrollToAnchorTop:$I,eventOverflowWarning:HI},PI=10*1024,UI=new Set(["running","idle"]);function VI(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 ek="grackle-stream-direction";function qI(){try{return localStorage.getItem(ek)==="reversed"}catch{return!1}}function GI({eventsDropped:t}){return t<=0?a.jsx(a.Fragment,{}):a.jsxs("div",{className:oa.eventOverflowWarning,role:"alert",children:[a.jsx(Cm,{size:Pt,"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 vh({events:t,eventsDropped:s,emptyState:o,onShowToast:r,sessions:c,currentSessionId:d,environments:u,personas:p,onForward:m,sandboxProxyUrl:g}){const v=y.useRef(null),[b,_]=y.useState(qI),k=s6(),[S,j]=y.useState(!1),[T,N]=y.useState(!1),[C,D]=y.useState(void 0),A=DI({events:t,formatForClipboard:Q1}),E=y.useMemo(()=>t.filter(ul).length,[t]),R=y.useMemo(()=>c?c.filter(ce=>UI.has(ce.status)&&ce.id!==d):[],[c,d]),B=y.useMemo(()=>b?[...t].reverse():t,[t,b]),{isAtAnchor:M,scrollToAnchor:$}=NI({scrollRef:v,contentLength:t.length,isReversed:b,paused:A.isSelecting}),Y=()=>{const ce=!b;_(ce);try{localStorage.setItem(ek,ce?"reversed":"default")}catch{}};y.useEffect(()=>{if(!A.isSelecting)return;const ce=me=>{me.key==="Escape"&&!S&&!T&&A.cancelSelection()};return window.addEventListener("keydown",ce),()=>{window.removeEventListener("keydown",ce)}},[A.isSelecting,A.cancelSelection,S,T]);const U=y.useCallback(async()=>{await A.copySelected()&&(r==null||r(`Copied ${A.selectedCount} message${A.selectedCount===1?"":"s"} to clipboard`,"success"))},[A,r]),X=y.useCallback(()=>[...A.selectedIndices].sort((me,xe)=>me-xe).filter(me=>me<t.length).map(me=>t[me]),[A.selectedIndices,t]),te=y.useCallback(ce=>{if(!ce)return"this session";const me=c==null?void 0:c.find(De=>De.id===ce);if(!me)return ce.slice(0,8);const xe=u==null?void 0:u.find(De=>De.id===me.environmentId);return(xe==null?void 0:xe.displayName)??me.environmentId.slice(0,8)},[c,u]),G=y.useCallback(async(ce,me)=>{if(!m)return;const xe=te(ce);try{await m(ce,me);const De=A.selectedCount;r==null||r(`Forwarded ${De} message${De===1?"":"s"} to ${xe}`,"success"),A.cancelSelection()}catch{r==null||r("Failed to forward messages","error")}},[m,te,r,A]),ne=y.useCallback(ce=>{j(!1);const me=X(),xe=te(d),De=EI(xe,me);if(new TextEncoder().encode(De).length>PI){D({sessionId:ce,text:De}),N(!0);return}G(ce,De).catch(()=>{})},[X,te,d,G]),H=y.useCallback(()=>{N(!1),C&&(G(C.sessionId,C.text).catch(()=>{}),D(void 0))},[C,G]),O=y.useCallback(()=>{N(!1),D(void 0)},[]),q=k?0:.2,ge=b?-8:8,se=C?Math.round(new TextEncoder().encode(C.text).length/1024):0;return a.jsxs("div",{className:oa.wrapper,children:[a.jsx("div",{className:oa.toolbar,children:a.jsx(Ei,{text:b?"Showing newest first":"Showing oldest first",children:a.jsx("button",{className:oa.directionToggle,onClick:Y,"aria-label":b?"Switch to newest at bottom":"Switch to newest at top","data-testid":"direction-toggle",children:b?a.jsx(jy,{size:Pt,"aria-hidden":"true"}):a.jsx(Ty,{size:Pt,"aria-hidden":"true"})})})}),a.jsxs("div",{ref:v,className:`${oa.scrollContainer} ${A.isSelecting?oa.selectingPadding:""}`,"data-testid":"event-stream-scroll",children:[t.length===0&&o,a.jsx(GI,{eventsDropped:s}),a.jsx(os,{initial:!1,children:B.map((ce,me)=>{const xe=b?t.length-1-me:me;return a.jsx(Ut.div,{initial:{opacity:0,y:ge},animate:{opacity:1,y:0},transition:{duration:q,ease:"easeOut"},children:a.jsx(F6,{copyText:CI(ce),isContentBearing:ul(ce),isSelecting:A.isSelecting,isSelected:A.selectedIndices.has(xe),checkboxLabel:VI(ce),onSelect:()=>{A.enterSelectionMode(xe)},onToggle:De=>{A.toggleEvent(xe,De)},onCopied:()=>{r==null||r("Copied to clipboard","success")},children:a.jsx(DD,{event:ce,toolUseCtx:ce.toolUseCtx,settled:ce.settled,sandboxProxyUrl:g})})},`${ce.sessionId}-${ce.timestamp}-${xe}`)})})]}),a.jsx(os,{children:A.isSelecting&&a.jsx(tI,{selectedCount:A.selectedCount,totalSelectable:E,onSelectAll:A.selectAll,onDeselectAll:A.deselectAll,onCopy:()=>{U().catch(()=>{})},onForward:m!==void 0?()=>{j(!0)}:void 0,forwardDisabled:R.length===0,onCancel:A.cancelSelection})}),a.jsx(SI,{isOpen:S,sessions:R,environments:u??[],personas:p,onSelect:ne,onCancel:()=>{j(!1)}}),a.jsx(bs,{isOpen:T,title:"Send large message?",description:`This will forward a large message (${se} KB). Continue?`,confirmLabel:"Send",onConfirm:H,onCancel:O}),a.jsx(os,{children:!M&&a.jsxs(Ut.button,{className:`${oa.scrollToAnchor} ${b?oa.scrollToAnchorTop:oa.scrollToAnchorBottom}`,onClick:$,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:[b?a.jsx(Ty,{size:Pt,"aria-hidden":"true"}):a.jsx(jy,{size:Pt,"aria-hidden":"true"})," ","New events"]})})]})}function hm(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 tk(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()}`}function Ap(t){return t.length>0?t.charAt(0).toUpperCase()+t.slice(1):t}const FI=["--accent-green","--accent-yellow","--accent-red","--text-tertiary"];function nk(t,s){if(s)return{varName:"--text-tertiary",label:"External"};switch(t){case"running":return{varName:"--accent-green",label:"Running"};case"idle":case"suspended":case"hibernating":return{varName:"--accent-yellow",label:Ap(t)};case"failed":case"interrupted":return{varName:"--accent-red",label:Ap(t)};default:return{varName:"--text-tertiary",label:t.length>0?Ap(t):"Unknown"}}}function yh(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(""),k=y.useRef(!1),S=d===c,j=y.useCallback(B=>{v(B),_("")},[]),T=y.useCallback(()=>{_("")},[]),N=y.useCallback(()=>{k.current=!1,u==null||u(null),v(""),_("")},[u]),C=y.useCallback(()=>{const B=m?g.trim():g;if(r){const $=r(g);if($){_($);return}}const M=m?s.trim():s;if(B===M){N();return}o(B),N()},[g,s,m,r,o,N]),D=y.useCallback(()=>{k.current=!0,u==null||u(c),v(s),_("")},[c,s,u]),A=y.useCallback(B=>{if(k.current){k.current=!1;return}B.relatedTarget instanceof HTMLElement&&B.relatedTarget.dataset.editAction===c||C()},[c,C]),E=y.useCallback(B=>{B.key==="Escape"?N():B.key==="Enter"&&p&&C()},[N,p,C]),R=(()=>{if(!S)return!1;const B=m?s.trim():s;return(m?g.trim():g)!==B})();return y.useEffect(()=>{!S&&(g!==""||b!=="")&&(v(""),_(""))},[S,g,b]),{isEditing:S,draft:g,error:b,isDirty:R,startEdit:D,cancelEdit:N,save:C,setDraft:j,clearError:T,handleBlur:A,handleKeyDown:E,ignoreInitialBlurRef:k}}const KI="_editFieldWrapper_yuzty_1",ZI="_editInput_yuzty_10",YI="_editTextarea_yuzty_42",JI="_editSelect_yuzty_78",WI="_editError_yuzty_111",XI="_editInputInvalid_yuzty_118",QI="_editHint_yuzty_123",e5="_unsavedDot_yuzty_132",t5="_metaValueClickable_yuzty_140",n5="_editButton_yuzty_159",s5="_metaPlaceholder_yuzty_175",a5="_worktreeToggle_yuzty_180",it={editFieldWrapper:KI,editInput:ZI,editTextarea:YI,editSelect:JI,editError:WI,editInputInvalid:XI,editHint:QI,unsavedDot:e5,metaValueClickable:t5,editButton:n5,metaPlaceholder:s5,worktreeToggle:a5};function $t(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:b,ariaLabel:_,"data-testid":k}=t,S=y.useRef(null),j=yh({value:s,onSave:o,validate:r,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!0,trimOnSave:!0});if(y.useEffect(()=>{if(j.isEditing){const N=window.setTimeout(()=>{var C;(C=S.current)==null||C.focus()},0);return()=>window.clearTimeout(N)}},[j.isEditing]),c==="create"){const N=D=>{m==null||m(D.target.value)},C=r==null?void 0:r(s);return a.jsxs("div",{className:it.editFieldWrapper,children:[a.jsx("input",{className:`${it.editInput} ${C?it.editInputInvalid:""}`,value:s,onChange:N,maxLength:b,placeholder:v,"aria-label":_,"data-testid":k?`${k}-input`:void 0}),C&&a.jsx("span",{className:it.editError,"data-testid":"edit-error",children:C})]})}if(j.isEditing)return a.jsxs("div",{className:it.editFieldWrapper,children:[a.jsx("input",{ref:S,className:`${it.editInput} ${j.error?it.editInputInvalid:""}`,value:j.draft,onChange:N=>j.setDraft(N.target.value),onBlur:j.handleBlur,onKeyDown:j.handleKeyDown,maxLength:b,placeholder:v,"aria-label":_,"data-testid":k?`${k}-input`:void 0}),j.isDirty&&a.jsx("span",{className:it.unsavedDot,title:"Unsaved changes"}),j.error&&a.jsx("span",{className:it.editError,"data-testid":"edit-error",children:j.error}),a.jsx("span",{className:it.editHint,children:"Enter to save · Esc to cancel"})]});const T=g==null?void 0:g(s);return a.jsxs("span",{role:"button",tabIndex:0,className:it.metaValueClickable,onClick:()=>j.startEdit(),onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),j.startEdit())},title:"Click to edit","aria-label":_,"data-testid":k?`${k}-button`:void 0,children:[T!==void 0?T:s?a.jsx("span",{children:s}):a.jsx("span",{className:it.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:it.editButton,"aria-hidden":"true",children:"✏️"})]})}function gm(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:b,"data-testid":_}=t,k=y.useRef(null),S=yh({value:s,onSave:o,validate:r,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!1,trimOnSave:!1});if(y.useEffect(()=>{if(S.isEditing){const T=window.setTimeout(()=>{var N;(N=k.current)==null||N.focus()},0);return()=>window.clearTimeout(T)}},[S.isEditing]),c==="create"){const T=C=>{m==null||m(C.target.value)},N=r==null?void 0:r(s);return a.jsxs("div",{className:it.editFieldWrapper,children:[a.jsx("textarea",{className:`${it.editTextarea} ${N?it.editInputInvalid:""}`,value:s,onChange:T,placeholder:v,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),N&&a.jsx("span",{className:it.editError,"data-testid":"edit-error",children:N})]})}if(S.isEditing)return a.jsxs("div",{className:it.editFieldWrapper,children:[a.jsx("textarea",{ref:k,className:`${it.editTextarea} ${S.error?it.editInputInvalid:""}`,value:S.draft,onChange:T=>S.setDraft(T.target.value),onBlur:S.handleBlur,onKeyDown:S.handleKeyDown,title:b,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),S.isDirty&&a.jsx("span",{className:it.unsavedDot,title:"Unsaved changes"}),S.error&&a.jsx("span",{className:it.editError,"data-testid":"edit-error",children:S.error}),a.jsx("span",{className:it.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:it.metaValueClickable,onClick:()=>S.startEdit(),onKeyDown:T=>{(T.key==="Enter"||T.key===" ")&&(T.preventDefault(),S.startEdit())},title:"Click to edit","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[j!==void 0?j:s?a.jsx("span",{children:s}):a.jsx("span",{className:it.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:it.editButton,"aria-hidden":"true",children:"✏️"})]})}function xd(t){var D;const{value:s,onSave:o,mode:r="edit",options:c,fieldId:d="select",activeFieldId:u,onActivate:p,onChange:m,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=t,k=y.useRef(null),S=yh({value:s,onSave:o,fieldId:d,activeFieldId:u,onActivate:p,enterToSave:!1,trimOnSave:!1});y.useEffect(()=>{if(S.isEditing){const A=window.setTimeout(()=>{var E;(E=k.current)==null||E.focus()},0);return()=>window.clearTimeout(A)}},[S.isEditing]);const j=y.useCallback(A=>{const E=A.target.value;S.ignoreInitialBlurRef.current=!1,E!==s&&o(E),S.cancelEdit()},[s,o,S]),T=y.useCallback(A=>{if(S.ignoreInitialBlurRef.current){S.ignoreInitialBlurRef.current=!1;return}A.relatedTarget instanceof HTMLElement&&A.relatedTarget.dataset.editAction===d||S.cancelEdit()},[d,S]);if(r==="create")return a.jsx("select",{className:it.editSelect,value:s,onChange:A=>m==null?void 0:m(A.target.value),"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(A=>a.jsx("option",{value:A.value,children:A.label},A.value))});if(S.isEditing)return a.jsx("select",{ref:k,className:it.editSelect,value:S.draft,onChange:j,onBlur:T,title:b,"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(A=>a.jsx("option",{value:A.value,children:A.label},A.value))});const N=g==null?void 0:g(s),C=(D=c.find(A=>A.value===s))==null?void 0:D.label;return a.jsxs("button",{type:"button",className:it.metaValueClickable,onClick:()=>S.startEdit(),title:"Click to change","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[N!==void 0?N:C?a.jsx("span",{children:C}):a.jsx("span",{className:it.metaPlaceholder,children:v||"None"}),a.jsx("span",{className:it.editButton,"aria-hidden":"true",children:"✏️"})]})}function i5(t){const{checked:s,onChange:o,label:r,ariaLabel:c,"data-testid":d}=t;return a.jsxs("label",{className:it.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 o5="_nav_1snmp_1",r5="_searchForm_1snmp_8",l5="_searchInput_1snmp_15",c5="_searchButton_1snmp_33",d5="_clearButton_1snmp_68",u5="_workspaceSelect_1snmp_85",f5="_listHeader_1snmp_99",p5="_nodeList_1snmp_108",m5="_nodeItem_1snmp_116",h5="_indicator_1snmp_129",g5="_label_1snmp_136",v5="_badge_1snmp_145",es={nav:o5,searchForm:r5,searchInput:l5,searchButton:c5,clearButton:d5,workspaceSelect:u5,listHeader:f5,nodeList:p5,nodeItem:m5,indicator:h5,label:g5,badge:v5};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]),b=y.useCallback(()=>{g(""),d()},[d]),_=y.useCallback(S=>{u(S)},[u]),k=y.useCallback(S=>{g(""),p(S)},[p]);return a.jsxs("div",{className:es.nav,"data-testid":"knowledge-nav",children:[a.jsxs("form",{className:es.searchForm,onSubmit:v,children:[a.jsx("input",{className:es.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:es.searchButton,disabled:o,children:"Go"})]}),r&&a.jsx("button",{type:"button",className:es.clearButton,onClick:b,children:"Clear search"}),a.jsxs("select",{className:es.workspaceSelect,onChange:S=>{k(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:es.listHeader,children:["Nodes (",t.length,")"]}),a.jsx("ul",{className:es.nodeList,children:t.map(S=>a.jsxs("li",{className:es.nodeItem,onClick:()=>{_(S.id)},onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),_(S.id))},role:"button",tabIndex:0,children:[a.jsx("span",{className:es.indicator,style:{backgroundColor:S.kind==="reference"?"#4A9EFF":S.category==="decision"?"#22C55E":S.category==="concept"?"#A855F7":S.category==="snippet"?"#6B7280":"#EAB308"}}),a.jsx("span",{className:es.label,children:S.label}),a.jsx("span",{className:es.badge,children:S.kind==="reference"?S.sourceType:S.category})]},S.id))})]})}const b5="_container_bwu10_1",_5="_hamburger_bwu10_33",x5="_brand_bwu10_49",k5="_brandLogo_bwu10_68",S5="_info_bwu10_75",j5="_connectionLabel_bwu10_90",T5="_connectionDot_bwu10_103",N5="_connected_bwu10_106",w5="_disconnected_bwu10_110",C5="_connecting_bwu10_113",Ds={container:b5,hamburger:_5,brand:x5,brandLogo:k5,info:S5,connectionLabel:j5,connectionDot:T5,connected:N5,disconnected:w5,connecting:C5},E5={connected:"Connected",connecting:"Connecting...",disconnected:"Disconnected"},A5={connected:Ds.connected,connecting:Ds.connecting,disconnected:Ds.disconnected};function D5({connectionStatus:t,environments:s,sessions:o,onToggleSidebar:r,sidebarOpen:c}){const d=xt(),u=s.length,p=s.filter(v=>v.status==="connected").length,m=o.filter(v=>["running","idle"].includes(v.status)).length,g=E5[t];return a.jsxs("div",{className:Ds.container,children:[r&&a.jsx("button",{type:"button",className:Ds.hamburger,onClick:r,"aria-label":"Toggle sidebar","aria-expanded":c,children:a.jsx(BT,{size:Tt,"aria-hidden":"true"})}),a.jsx(Ei,{text:"Home",placement:"bottom",children:a.jsxs("button",{type:"button",className:Ds.brand,onClick:()=>d(Fo),"data-testid":"statusbar-brand",children:[a.jsx("img",{src:Bd("icon-192x192.png"),alt:"",className:Ds.brandLogo,"aria-hidden":"true","data-testid":"statusbar-logo"}),"Grackle"]})}),a.jsxs("div",{className:Ds.info,children:[a.jsxs("span",{"aria-label":g,children:[a.jsx("span",{className:`${Ds.connectionDot} ${A5[t]}`,"aria-hidden":"true",children:a.jsx(wi,{size:Z_,fill:"currentColor"})})," ",a.jsx("span",{className:Ds.connectionLabel,"aria-hidden":"true",children:g})]}),a.jsxs("span",{children:[p,"/",u," env",u!==1?"s":""]}),a.jsxs("span",{children:[m," active"]})]})]})}const M5="_nav_gx5h3_1",R5="_tab_gx5h3_35",I5="_tabIcon_gx5h3_68",O5="_tabLabel_gx5h3_79",B5="_tabActive_gx5h3_84",L5="_tabEnd_gx5h3_90",wo={nav:M5,tab:R5,tabIcon:I5,tabLabel:O5,tabActive:B5,tabEnd:L5},od=[{view:"dashboard",label:"Dashboard",icon:a.jsx(ST,{size:Tt}),route:Fo,testId:"sidebar-tab-dashboard",order:0},{view:"tasks",label:"Tasks",icon:a.jsx(nT,{size:Tt}),route:yC,testId:"sidebar-tab-tasks",order:1},{view:"environments",label:"Environments",icon:a.jsx(UT,{size:Tt}),route:zo,testId:"sidebar-tab-environments",order:2},{view:"chat",label:"Root",icon:a.jsx(zT,{size:Tt}),route:vC,testId:"sidebar-tab-chat",order:3},{view:"sessions",label:"Sessions",icon:a.jsx(Uj,{size:Tt}),route:vx,testId:"sidebar-tab-sessions",order:4},{view:"knowledge",label:"Knowledge",icon:a.jsx(Zj,{size:Tt}),route:bx,testId:"sidebar-tab-knowledge",order:5},{view:"coordination",label:"Coordination",icon:a.jsx(qT,{size:Tt}),route:gx,testId:"sidebar-tab-coordination",order:6},{view:"settings",label:"Settings",icon:a.jsx(sN,{size:Tt}),route:fC,testId:"sidebar-tab-settings",align:"end"}];function z5(t){return t===Fo||t==="/"?"dashboard":t.startsWith(gx)?"coordination":t.startsWith(vx)?"sessions":t.startsWith("/chat")?"chat":t.startsWith("/workspaces")||t.startsWith("/environments")?"environments":t.startsWith(bx)?"knowledge":t.startsWith(Ti)?"settings":"tasks"}function $5({tabs:t=od}){var g;const s=Wt(),o=xt(),r=y.useRef(null),c=z5(s.pathname),d=y.useMemo(()=>{const v=(b,_)=>(b.order??Number.MAX_SAFE_INTEGER)-(_.order??Number.MAX_SAFE_INTEGER);return[...t.filter(b=>b.align!=="end").sort(v),...t.filter(b=>b.align==="end")]},[t]),u=(g=d.find(v=>v.align==="end"))==null?void 0:g.view,p=y.useCallback(v=>{o(v.route)},[o]),m=y.useCallback(v=>{var j,T;const b=(j=r.current)==null?void 0:j.querySelectorAll('[role="tab"]');if(!b)return;const _=Array.from(b).findIndex(N=>N===document.activeElement),k=_>=0?_:d.findIndex(N=>N.view===c);let S=k;if(v.key==="ArrowRight"||v.key==="j"||v.key==="J")v.preventDefault(),S=(k+1)%d.length;else if(v.key==="ArrowLeft"||v.key==="k"||v.key==="K")v.preventDefault(),S=(k-1+d.length)%d.length;else if(v.key==="Home")v.preventDefault(),S=0;else if(v.key==="End")v.preventDefault(),S=d.length-1;else return;o(d[S].route),(T=b[S])==null||T.focus()},[c,o,d]);return a.jsx("nav",{className:wo.nav,ref:r,role:"tablist","aria-orientation":"horizontal","aria-label":"App navigation",onKeyDown:m,"data-testid":"sidebar-nav",children:d.map(v=>{const b=v.view===c,_=v.view===u;return a.jsx(Ei,{text:v.label,placement:"bottom",className:_?wo.tabEnd:void 0,children:a.jsxs("button",{role:"tab",type:"button","aria-selected":b,tabIndex:b?0:-1,className:`${wo.tab} ${b?wo.tabActive:""}`,onClick:()=>p(v),"data-testid":v.testId,"aria-label":v.label,children:[a.jsx("span",{className:wo.tabIcon,"aria-hidden":"true",children:v.icon}),a.jsx("span",{className:wo.tabLabel,children:v.label})]})},v.view)})})}const H5="_container_pi6ii_1",P5="_content_pi6ii_66",o_={container:H5,content:P5},U5=320,sk=220,ak=600,ik="grackle-sidebar-width";function V5(){try{const t=localStorage.getItem(ik);if(t!==null){const s=Number(t);if(Number.isFinite(s)&&s>=sk&&s<=ak)return s}}catch{}return U5}function q5(t){try{localStorage.setItem(ik,String(t))}catch{}}function G5({content:t}){const[s]=y.useState(V5),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>=sk&&m<=ak&&q5(m)}}});return c.observe(r),()=>{c.disconnect()}},[]),t!==void 0)return a.jsx("div",{className:o_.container,ref:o,"data-testid":"sidebar",style:{width:s},children:a.jsx("div",{className:o_.content,children:t})})}const F5="_bar_tnfsh_1",K5="_btnPrimary_tnfsh_32",Z5="_statusText_tnfsh_85",Y5="_statusCompleted_tnfsh_90",J5="_statusFailed_tnfsh_94",W5="_statusBlocked_tnfsh_98",X5="_hintText_tnfsh_103",At={bar:F5,btnPrimary:K5,statusText:Z5,statusCompleted:Y5,statusFailed:J5,statusBlocked:W5,hintText:X5};function Q5({sessions:t,tasks:s,environments:o}){const r=xt(),c=Wt(),d=sn("/sessions/:sessionId"),u=sn("/tasks/:taskId"),p=sn("/tasks/:taskId/stream"),m=sn("/tasks/:taskId/edit"),g=sn("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId"),v=sn("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream"),b=sn("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit"),_=sn("/sessions/new"),k=sn("/environments/:environmentId/workspaces/:workspaceId"),S=sn("/tasks/new"),j=sn("/chat"),T=sn("/"),N=sn("/settings/*"),C=d==null?void 0:d.params.sessionId,D=(u==null?void 0:u.params.taskId)??(p==null?void 0:p.params.taskId)??(g==null?void 0:g.params.taskId)??(v==null?void 0:v.params.taskId)??(b==null?void 0:b.params.taskId),A=g??v??b,E=(A==null?void 0:A.params.environmentId)??(k==null?void 0:k.params.environmentId),R=c.pathname.startsWith("/environments")&&!k&&!A,B=!!j,M=!!_,$=!!k&&!g&&!v&&!b,Y=!!S;if(!!T&&!M&&!$&&!Y||!!N||(!!m||!!b)||Y||R||M)return a.jsx(a.Fragment,{});if(B)return o.find(ne=>ne.adapterType==="local"&&ne.status==="connected")?a.jsx(a.Fragment,{}):a.jsx("div",{className:At.bar,children:a.jsx("span",{className:At.hintText,children:"Add a local environment to start chatting"})});if($)return a.jsx("div",{className:At.bar,children:a.jsx("span",{className:At.hintText,children:"Select a task or click + to create one"})});if(D){const G=s.find(O=>O.id===D);if(!G)return a.jsx("div",{className:At.bar,children:a.jsx("span",{className:At.hintText,children:"Loading..."})});const ne=new Map(s.map(O=>[O.id,O])),H=G.dependsOn.some(O=>{const q=ne.get(O);return q!==void 0&&q.status!=="complete"});if(G.status==="not_started"){const O=H?G.dependsOn.map(q=>ne.get(q)).filter(q=>q&&q.status!=="complete").map(q=>q.title):[];return a.jsx("div",{className:At.bar,children:H?a.jsxs("span",{className:At.statusBlocked,children:["Blocked by: ",O.join(", ")]}):a.jsx("span",{className:At.hintText,children:"Use the buttons above to start or manage this task"})})}if(G.status==="working"||G.status==="paused"){const O=G.latestSessionId||void 0,q=O?t.find(se=>se.id===O):void 0;return q&&q.status!=="stopped"?a.jsx(a.Fragment,{}):a.jsx("div",{className:At.bar,children:a.jsx("span",{className:At.hintText,children:"Waiting for agent..."})})}if(G.status==="complete")return a.jsxs("div",{className:At.bar,children:[a.jsx("span",{className:`${At.statusText} ${At.statusCompleted}`,children:"Task completed"}),a.jsx("button",{onClick:()=>r(Ii(G.workspaceId,void 0,E)),className:At.btnPrimary,children:"+ New Task"})]});if(G.status==="failed")return a.jsx("div",{className:At.bar,children:a.jsx("span",{className:`${At.statusText} ${At.statusFailed}`,children:"Task failed"})})}if(C){const G=t.find(O=>O.id===C),ne=(G==null?void 0:G.status)==="stopped";if(G!==void 0&&!ne)return a.jsx(a.Fragment,{});if(ne)return a.jsxs("div",{className:At.bar,children:[a.jsxs("span",{className:`${At.statusText} ${At.hintText}`,children:["Session ",G.endReason||G.status]}),a.jsx("button",{onClick:()=>r(px(G.environmentId)),className:At.btnPrimary,children:"+ New Chat"})]})}return a.jsx("div",{className:At.bar,children:a.jsx("span",{className:At.hintText,children:"Loading..."})})}const eO="_nav_14i94_1",tO="_tab_14i94_24",nO="_tabActive_14i94_62",sO="_tabLabel_14i94_75",aO="_statusDot_14i94_81",iO="_pulse_14i94_87",oO="_addButton_14i94_99",rO="_empty_14i94_132",Va={nav:eO,tab:tO,tabActive:nO,tabLabel:sO,statusDot:aO,pulse:iO,addButton:oO,empty:rO},lO={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function cO({environments:t}){const s=xt(),o=y.useRef(null),r=sn("/environments/:environmentId"),c=sn("/environments/:environmentId/edit"),d=sn("/environments/:environmentId/workspaces/:workspaceId"),u=sn("/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(_=>{s($o(_))},[s]),v=y.useCallback(_=>{var N;const k=(N=o.current)==null?void 0:N.querySelectorAll('[role="tab"]');if(!k||k.length===0)return;const S=Array.from(k).findIndex(C=>C===document.activeElement),j=S>=0?S:t.findIndex(C=>C.id===m);let T=j;if(_.key==="ArrowDown"||_.key==="j"||_.key==="J")_.preventDefault(),T=(j+1)%k.length;else if(_.key==="ArrowUp"||_.key==="k"||_.key==="K")_.preventDefault(),T=(j-1+k.length)%k.length;else if(_.key==="Home")_.preventDefault(),T=0;else if(_.key==="End")_.preventDefault(),T=k.length-1;else return;T<t.length&&s($o(t[T].id)),k[T].focus()},[m,t,s]),b=m??(t.length>0?t[0].id:void 0);return a.jsxs("div",{className:Va.nav,"data-testid":"environment-nav",children:[a.jsx("nav",{ref:o,role:"tablist","aria-orientation":"vertical","aria-label":"Environments",onKeyDown:v,children:t.map(_=>{const k=_.id===m,S=_.id===b,j=lO[_.status]||"var(--text-tertiary)",T=_.status==="connected";return a.jsxs("button",{role:"tab",type:"button","aria-selected":k,tabIndex:S?0:-1,className:`${Va.tab} ${k?Va.tabActive:""}`,onClick:()=>g(_.id),"data-testid":"env-nav-item",children:[a.jsx("span",{className:`${Va.statusDot} ${T?Va.pulse:""}`,style:{color:j},"aria-hidden":"true",children:a.jsx(wi,{size:Z_,fill:"currentColor"})}),a.jsx("span",{className:Va.tabLabel,title:_.displayName||_.id,children:_.displayName||_.id})]},_.id)})}),a.jsx("button",{type:"button",className:Va.addButton,onClick:()=>s(dC),title:"Add environment","data-testid":"env-nav-add",children:"+ Add Environment"}),t.length===0&&a.jsx("div",{className:Va.empty,children:"No environments yet."})]})}function dO(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 ok({text:t,indices:s,highlightClass:o}){if(!s||s.length===0)return a.jsx(a.Fragment,{children:t});const r=dO(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 uO(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 fO(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 mN){c.add(d);const u=o.get(d);if(u&&u.length>0){u.sort((m,g)=>m.sortOrder-g.sortOrder);const p=Ja(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=Ja(d);r.push({status:d,label:p.label,style:p,tasks:u})}return r}const pO="_container_z4i38_1",mO="_header_z4i38_5",hO="_headerActions_z4i38_17",gO="_searchInput_z4i38_23",vO="_searchHighlight_z4i38_56",yO="_groupToggle_z4i38_62",bO="_groupToggleActive_z4i38_89",_O="_addButton_z4i38_93",xO="_taskRow_z4i38_120",kO="_selected_z4i38_140",SO="_expandArrow_z4i38_150",jO="_expanded_z4i38_157",TO="_leafSpacer_z4i38_161",NO="_taskStatusIcon_z4i38_166",wO="_taskTitle_z4i38_170",CO="_workspaceBadge_z4i38_177",EO="_childCountBadge_z4i38_195",AO="_dependencyBadge_z4i38_208",DO="_blockedBadge_z4i38_220",MO="_addChildButton_z4i38_225",RO="_emptyState_z4i38_268",IO="_statusGroupHeader_z4i38_275",OO="_statusGroupIcon_z4i38_294",BO="_statusGroupLabel_z4i38_298",LO="_statusGroupCount_z4i38_303",We={container:pO,header:mO,headerActions:hO,searchInput:gO,searchHighlight:vO,groupToggle:yO,groupToggleActive:bO,addButton:_O,taskRow:xO,selected:kO,expandArrow:SO,expanded:jO,leafSpacer:TO,taskStatusIcon:NO,taskTitle:wO,workspaceBadge:CO,childCountBadge:EO,dependencyBadge:AO,blockedBadge:DO,addChildButton:MO,emptyState:RO,statusGroupHeader:IO,statusGroupIcon:OO,statusGroupLabel:BO,statusGroupCount:LO},zO=[{name:"title",weight:2},{name:"description",weight:1}],rk=16,$O=16,lk="grackle-task-group-by-status";function r_(){try{return localStorage.getItem(lk)==="true"}catch{return!1}}function HO(t){try{localStorage.setItem(lk,String(t))}catch{}}function PO({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:We.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:`${We.expandArrow} ${s?We.expanded:""}`,"aria-hidden":"true",children:a.jsx(fa,{size:Ye})}),a.jsx("span",{className:We.statusGroupIcon,style:{color:t.style.color},"aria-hidden":"true",children:t.style.icon}),a.jsx("span",{className:We.statusGroupLabel,children:t.label}),a.jsx("span",{className:We.statusGroupCount,children:t.tasks.length})]}),a.jsx(os,{children:s&&a.jsx(Ut.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=Ja(p.status),g=r===p.id,v=p.parentTaskId||!p.workspaceId?void 0:u.get(p.workspaceId);return a.jsxs("div",{onClick:()=>c(ls(p.id)),role:"button",tabIndex:0,"aria-label":p.title,onKeyDown:b=>{b.currentTarget===b.target&&(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),c(ls(p.id)))},className:`${We.taskRow} ${g?We.selected:""}`,style:{"--task-indent":`${rk}px`},"data-task-id":p.id,children:[a.jsx("span",{className:We.leafSpacer}),a.jsx("span",{className:We.taskStatusIcon,style:{color:m.color},"aria-hidden":"true","data-testid":`task-status-${fl(p.status)}`,children:m.icon}),a.jsx("span",{className:We.taskTitle,title:p.title,children:a.jsx(ok,{text:p.title,indices:d.get(p.id),highlightClass:We.searchHighlight})}),v&&a.jsx("span",{className:We.workspaceBadge,title:v,children:v})]},p.id)})})})]})}function ck({node:t,depth:s,expandedTasks:o,toggleTask:r,selectedTaskId:c,navigate:d,taskStatusById:u,titleHighlights:p,workspaceNames:m}){const g=Ja(t.status),v=t.dependsOn.length>0&&t.dependsOn.some(N=>u.get(N)!=="complete"),b=o.has(t.id),_=t.children.length>0,k=c===t.id,S=rk+s*$O,T=s===0&&!t.parentTaskId&&t.workspaceId?m.get(t.workspaceId):void 0;return a.jsxs(a.Fragment,{children:[a.jsxs("div",{onClick:()=>d(ls(t.id)),role:"button",tabIndex:0,"aria-label":t.title,onKeyDown:N=>{N.currentTarget===N.target&&(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),d(ls(t.id)))},className:`${We.taskRow} ${k?We.selected:""}`,style:{"--task-indent":`${S}px`},"data-task-id":t.id,children:[_&&a.jsx("span",{className:`${We.expandArrow} ${b?We.expanded:""}`,role:"button",tabIndex:0,"aria-label":b?"Collapse task":"Expand task",onClick:N=>{N.stopPropagation(),r(t.id)},onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),N.stopPropagation(),r(t.id))},children:a.jsx(fa,{size:Ye,"aria-hidden":"true"})}),!_&&a.jsx("span",{className:We.leafSpacer}),a.jsx("span",{className:We.taskStatusIcon,style:{color:g.color},"aria-hidden":"true","data-testid":`task-status-${fl(t.status)}`,children:g.icon}),a.jsx("span",{className:We.taskTitle,title:t.title,children:a.jsx(ok,{text:t.title,indices:p.get(t.id),highlightClass:We.searchHighlight})}),T&&a.jsx("span",{className:We.workspaceBadge,title:T,children:T}),_&&a.jsxs("span",{className:We.childCountBadge,children:[t.children.filter(N=>N.status==="complete").length,"/",t.children.length]}),t.dependsOn.length>0&&a.jsx("span",{className:`${We.dependencyBadge} ${v?We.blockedBadge:""}`,title:`Depends on: ${t.dependsOn.join(", ")}`,children:v?"blocked":"dep"}),s<aj&&a.jsx(Ei,{text:"Add child task",children:a.jsx("button",{onClick:N=>{N.stopPropagation(),d(Ii(t.workspaceId,t.id))},"aria-label":"Add child task",className:We.addChildButton,children:"+"})})]}),a.jsx(os,{children:_&&b&&a.jsx(Ut.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(N=>a.jsx(ck,{node:N,depth:s+1,expandedTasks:o,toggleTask:r,selectedTaskId:c,navigate:d,taskStatusById:u,titleHighlights:p,workspaceNames:m},N.id))})})]})}function UO({workspaces:t,tasks:s}){const o=xt(),[r,c]=y.useState(new Set),[d,u]=y.useState(new Set),[p,m]=y.useState(r_),[g,v]=y.useState(r_),[b,_]=y.useState(new Map),k=sn("/tasks/:taskId/*"),S=(k==null?void 0:k.params.taskId)!=="new"?k==null?void 0:k.params.taskId:void 0,j=y.useMemo(()=>new Map(s.map(G=>[G.id,G.status])),[s]),T=y.useMemo(()=>new Map(t.map(G=>[G.id,G.name])),[t]),N=()=>{const G=!p;HO(G),m(G),G&&(v(!0),_(new Map))},C=G=>{_(ne=>{const H=new Map(ne),O=H.has(G)?H.get(G):g;return H.set(G,!O),H})},D=G=>b.has(G)?b.get(G):g,A=G=>{c(ne=>{const H=new Set(ne);return H.has(G)?(H.delete(G),u(O=>new Set(O).add(G))):(H.add(G),u(O=>{const q=new Set(O);return q.delete(G),q})),H})};y.useEffect(()=>{const G=new Set(s.filter(ne=>ne.parentTaskId).map(ne=>ne.parentTaskId));G.size>0&&c(ne=>{const H=new Set(ne);for(const O of G)d.has(O)||H.add(O);return H})},[s,d]);const[E,R]=y.useState(""),{directMatchTaskIds:B,treeMatchTaskIds:M,titleHighlights:$}=y.useMemo(()=>{if(!E.trim())return{directMatchTaskIds:null,treeMatchTaskIds:null,titleHighlights:new Map};const G=sj(s,E,zO),ne=new Set(G.map(ge=>ge.item.id)),H=new Map;for(const ge of G){const se=ge.matches.find(ce=>ce.key==="title");se&&H.set(ge.item.id,se.indices)}const O=new Set(ne),q=new Map(s.map(ge=>[ge.id,ge]));for(const ge of[...ne]){let se=q.get(ge);for(;se!=null&&se.parentTaskId;)O.add(se.parentTaskId),se=q.get(se.parentTaskId)}return{directMatchTaskIds:ne,treeMatchTaskIds:O,titleHighlights:H}},[E,s]),Y=B!==null,U=Y?p?B:M:null,X=U?s.filter(G=>U.has(G.id)):s,te=p?[]:uO(X);return a.jsxs("div",{className:We.container,children:[a.jsxs("div",{className:We.header,children:[a.jsx("span",{children:"Tasks"}),a.jsxs("div",{className:We.headerActions,children:[a.jsx(Ei,{text:p?"Switch to tree view":"Group tasks by status",children:a.jsx("button",{className:`${We.groupToggle} ${p?We.groupToggleActive:""}`,onClick:N,"aria-label":p?"Switch to tree view":"Group tasks by status","aria-pressed":p,"data-testid":"task-group-by-status-toggle",children:a.jsx(MT,{size:Pt})})}),a.jsx(Ei,{text:"New task",children:a.jsx("button",{className:We.addButton,onClick:()=>o(Ii()),"aria-label":"New task","data-testid":"new-task-button",children:"+"})})]})]}),s.length>0&&a.jsx("input",{type:"text",value:E,onChange:G=>R(G.target.value),placeholder:"Filter...","aria-label":"Filter tasks",className:We.searchInput,"data-testid":"sidebar-search"}),p?fO(X,j).map(G=>a.jsx(PO,{group:G,isExpanded:D(G.status),onToggle:()=>C(G.status),selectedTaskId:S,navigate:o,titleHighlights:$,workspaceNames:T},G.status)):te.map(G=>a.jsx(ck,{node:G,depth:0,expandedTasks:r,toggleTask:A,selectedTaskId:S,navigate:o,taskStatusById:j,titleHighlights:$,workspaceNames:T},G.id)),X.length===0&&!Y&&a.jsx("div",{className:We.emptyState,children:"No tasks yet. Click + to create one."}),X.length===0&&Y&&a.jsx("div",{className:We.emptyState,children:"No matching tasks"})]})}const VO="_toast_ed2dk_1",qO="_success_ed2dk_18",GO="_icon_ed2dk_22",FO="_error_ed2dk_25",KO="_warning_ed2dk_32",ZO="_info_ed2dk_38",YO="_message_ed2dk_53",JO="_close_ed2dk_60",qr={toast:VO,success:qO,icon:GO,error:FO,warning:KO,info:ZO,message:YO,close:JO},WO={success:a.jsx(Di,{size:Tt}),error:a.jsx(Ls,{size:Tt}),warning:a.jsx(Cm,{size:Tt}),info:a.jsx(wm,{size:Tt})};function XO({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(Ut.div,{className:`${qr.toast} ${qr[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:qr.icon,"aria-hidden":"true",children:WO[t.variant]}),a.jsx("span",{className:qr.message,children:t.message}),a.jsx("button",{type:"button",className:qr.close,onClick:()=>s(t.id),"aria-label":"Dismiss notification",children:a.jsx(Ls,{size:Pt,"aria-hidden":"true"})})]})}const QO="_container_qqse2_1",eB={container:QO};function tB({toasts:t,onDismiss:s}){return a.jsx("div",{className:eB.container,"data-testid":"toast-container",children:a.jsx(os,{children:t.map(o=>a.jsx(XO,{toast:o,onDismiss:s},o.id))})})}const nB="_callout_e5awm_1",sB="_success_e5awm_11",aB="_icon_e5awm_15",iB="_error_e5awm_18",oB="_warning_e5awm_25",rB="_info_e5awm_32",lB="_content_e5awm_48",cB="_close_e5awm_53",Gr={callout:nB,success:sB,icon:aB,error:iB,warning:oB,info:rB,content:lB,close:cB},dB={success:a.jsx(Di,{size:Tt}),error:a.jsx(Ls,{size:Tt}),warning:a.jsx(Cm,{size:Tt}),info:a.jsx(wm,{size:Tt})};function uB({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:[Gr.callout,Gr[t],r].filter(Boolean).join(" "),role:t==="error"||t==="warning"?"alert":"status",children:[a.jsx("span",{className:Gr.icon,"aria-hidden":"true",children:dB[t]}),a.jsx("span",{className:Gr.content,children:s}),o&&a.jsx("button",{type:"button",className:Gr.close,onClick:()=>d(!0),"aria-label":"Dismiss",children:a.jsx(Ls,{size:Pt,"aria-hidden":"true"})})]})})}function fB({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(uB,{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 pB="_container_m1fsr_1",mB="_heading_m1fsr_7",hB="_section_m1fsr_14",gB="_sectionTitle_m1fsr_26",vB="_sectionDescription_m1fsr_35",yB="_emptyState_m1fsr_41",bB="_tokenList_m1fsr_48",_B="_tokenRow_m1fsr_55",xB="_tokenBadge_m1fsr_68",kB="_tokenName_m1fsr_83",SB="_tokenTarget_m1fsr_90",jB="_deleteButton_m1fsr_99",TB="_addForm_m1fsr_113",NB="_formRow_m1fsr_119",wB="_input_m1fsr_125",CB="_select_m1fsr_155",EB="_addButton_m1fsr_187",AB="_emptyStateInfo_m1fsr_221",DB="_themeOptions_m1fsr_229",MB="_themeOption_m1fsr_229",RB="_themeOptionSelected_m1fsr_254",IB="_themeOptionHeader_m1fsr_259",OB="_themeOptionLabel_m1fsr_266",BB="_themeOptionDesc_m1fsr_273",LB="_variantToggle_m1fsr_279",zB="_variantButton_m1fsr_286",$B="_variantActive_m1fsr_305",HB="_themeSwatches_m1fsr_311",PB="_themeSwatch_m1fsr_311",UB="_systemToggle_m1fsr_325",VB="_systemToggleHint_m1fsr_341",qB="_themeActive_m1fsr_348",GB="_aboutGrid_m1fsr_354",FB="_aboutItem_m1fsr_360",KB="_aboutLabel_m1fsr_373",ZB="_aboutValue_m1fsr_379",YB="_aboutDot_m1fsr_387",JB="_aboutDotConnected_m1fsr_394",WB="_aboutDotDisconnected_m1fsr_398",XB="_aboutDotConnecting_m1fsr_402",fe={container:pB,heading:mB,section:hB,sectionTitle:gB,sectionDescription:vB,emptyState:yB,tokenList:bB,tokenRow:_B,tokenBadge:xB,tokenName:kB,tokenTarget:SB,deleteButton:jB,addForm:TB,formRow:NB,input:wB,select:CB,addButton:EB,emptyStateInfo:AB,themeOptions:DB,themeOption:MB,themeOptionSelected:RB,themeOptionHeader:IB,themeOptionLabel:OB,themeOptionDesc:BB,variantToggle:LB,variantButton:zB,variantActive:$B,themeSwatches:HB,themeSwatch:PB,systemToggle:UB,systemToggleHint:VB,themeActive:qB,aboutGrid:GB,aboutItem:FB,aboutLabel:KB,aboutValue:ZB,aboutDot:YB,aboutDotConnected:JB,aboutDotDisconnected:WB,aboutDotConnecting:XB},QB=[{value:"env_var",label:"Environment Variable"},{value:"file",label:"File"}];function eL({tokens:t,onSetToken:s,onDeleteToken:o,onShowToast:r}){const[c,d]=y.useState(""),[u,p]=y.useState(""),[m,g]=y.useState("env_var"),[v,b]=y.useState(""),[_,k]=y.useState(null),S=N=>{if(N.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(""),b("")},j=N=>{k(N)},T=()=>{_&&(o(_),r==null||r("Token deleted","info")),k(null)};return a.jsxs(a.Fragment,{children:[a.jsx(bs,{isOpen:_!==null,title:"Delete Token?",description:_?`"${_}" will be permanently removed.`:void 0,onConfirm:T,onCancel:()=>k(null)}),a.jsxs("section",{className:fe.section,children:[a.jsx("h3",{className:fe.sectionTitle,children:"Tokens"}),a.jsx("p",{className:fe.sectionDescription,children:"API tokens are auto-pushed to environments when set or updated. Values are write-only."}),t.length===0?a.jsx("div",{className:fe.emptyStateInfo,children:"Add your first API token to enable service integrations."}):a.jsx("div",{className:fe.tokenList,children:t.map(N=>a.jsxs("div",{className:fe.tokenRow,children:[a.jsx("span",{className:fe.tokenBadge,children:N.tokenType}),a.jsx("span",{className:fe.tokenName,children:N.name}),a.jsx("span",{className:fe.tokenTarget,children:N.tokenType==="env_var"?N.envVar:N.filePath}),a.jsx("button",{className:fe.deleteButton,onClick:()=>j(N.name),title:`Delete ${N.name}`,"aria-label":`Delete ${N.name}`,children:a.jsx(Ls,{size:Pt,"aria-hidden":"true"})})]},N.name))}),a.jsxs("form",{className:fe.addForm,onSubmit:S,children:[a.jsxs("div",{className:fe.formRow,children:[a.jsx("input",{className:fe.input,type:"text",placeholder:"Token name",value:c,onChange:N=>d(N.target.value)}),a.jsx("input",{className:fe.input,type:"password",placeholder:"Value",value:u,onChange:N=>p(N.target.value)})]}),a.jsxs("div",{className:fe.formRow,children:[a.jsx("select",{className:fe.select,value:m,onChange:N=>g(N.target.value),children:QB.map(N=>a.jsx("option",{value:N.value,children:N.label},N.value))}),a.jsx("input",{className:fe.input,type:"text",placeholder:m==="env_var"?"Env var name (e.g. API_TOKEN)":"File path (e.g. /home/user/.token)",value:v,onChange:N=>b(N.target.value)}),a.jsx("button",{className:fe.addButton,type:"submit",children:"Add Token"})]})]})]})]})}const Ld=[{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"]}],dk=new Set(Ld.map(t=>t.id)),l_="grackle";function vm(t){return Ld.find(s=>s.id===t)}function tL({themeId:t,resolvedThemeId:s,onSetTheme:o,preferSystem:r,onSetPreferSystem:c}){return a.jsxs("section",{className:fe.section,children:[a.jsx("h3",{className:fe.sectionTitle,children:"Appearance"}),a.jsx("p",{className:fe.sectionDescription,children:"Choose how Grackle looks across the app."}),a.jsx("div",{className:fe.themeOptions,children:Ld.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:`${fe.themeOption} ${p?fe.themeOptionSelected:""}`,"aria-pressed":p,onClick:()=>o(d.id),children:[a.jsxs("span",{className:fe.themeOptionHeader,children:[a.jsxs("span",{children:[a.jsx("span",{className:fe.themeOptionLabel,children:d.label}),a.jsx("span",{className:fe.themeOptionDesc,children:d.description})]}),u&&a.jsxs("span",{className:fe.variantToggle,children:[a.jsx("span",{role:"button",tabIndex:0,className:`${fe.variantButton} ${p&&m?fe.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:`${fe.variantButton} ${p&&!m?fe.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:fe.themeSwatches,children:d.swatches.map((g,v)=>a.jsx("span",{className:fe.themeSwatch,style:{background:g}},v))})]},d.id)})}),a.jsxs("label",{className:fe.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:fe.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),a.jsxs("p",{className:fe.themeActive,children:["Active theme: ",a.jsx("strong",{children:s})]})]})}const nL={connected:"Connected",connecting:"Connecting...",disconnected:"Disconnected"},sL={connected:fe.aboutDotConnected,connecting:fe.aboutDotConnecting,disconnected:fe.aboutDotDisconnected};function aL({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:fe.section,"data-testid":"about-panel",children:[a.jsx("h3",{className:fe.sectionTitle,children:"About"}),a.jsx("p",{className:fe.sectionDescription,children:"Connection status and application information."}),a.jsxs("div",{className:fe.aboutGrid,children:[a.jsxs("div",{className:fe.aboutItem,children:[a.jsx("span",{className:fe.aboutLabel,children:"Connection"}),a.jsxs("span",{className:fe.aboutValue,children:[a.jsx("span",{className:`${fe.aboutDot} ${sL[t]}`}),nL[t]]})]}),a.jsxs("div",{className:fe.aboutItem,children:[a.jsx("span",{className:fe.aboutLabel,children:"Environments"}),a.jsxs("span",{className:fe.aboutValue,children:[r,"/",c," connected"]})]}),a.jsxs("div",{className:fe.aboutItem,children:[a.jsx("span",{className:fe.aboutLabel,children:"Active Sessions"}),a.jsx("span",{className:fe.aboutValue,children:d})]}),a.jsxs("div",{className:fe.aboutItem,children:[a.jsx("span",{className:fe.aboutLabel,children:"Version"}),a.jsx("span",{className:fe.aboutValue,children:"0.136.2"})]})]})]})}const iL="_container_cddyd_1",oL="_header_cddyd_8",rL="_headerTitle_cddyd_35",lL="_badge_cddyd_44",cL="_headerActions_cddyd_54",dL="_body_cddyd_61",uL="_formContent_cddyd_73",fL="_section_cddyd_85",pL="_label_cddyd_91",mL="_titleInput_cddyd_98",hL="_descriptionTextarea_cddyd_131",gL="_parentContext_cddyd_167",vL="_parentLabel_cddyd_175",yL="_parentName_cddyd_182",bL="_personaSelect_cddyd_186",_L="_depList_cddyd_220",xL="_depItem_cddyd_226",kL="_depItemSelected_cddyd_248",SL="_noDeps_cddyd_252",jL="_btnPrimary_cddyd_258",TL="_btnGhost_cddyd_289",Qe={container:iL,header:oL,headerTitle:rL,badge:lL,headerActions:cL,body:dL,formContent:uL,section:fL,label:pL,titleInput:mL,descriptionTextarea:hL,parentContext:gL,parentLabel:vL,parentName:yL,personaSelect:bL,depList:_L,depItem:xL,depItemSelected:kL,noDeps:SL,btnPrimary:jL,btnGhost:TL};function uk({mode:t,taskId:s,workspaceId:o,parentTaskId:r,environmentId:c,tasks:d,workspaces:u,personas:p,onCreateTask:m,onUpdateTask:g,onEditDone:v,onShowToast:b}){const _=xt(),k=t==="edit",S=k&&s?d.find(ke=>ke.id===s):void 0,j=k?(S==null?void 0:S.workspaceId)??"":o??"",[T,N]=y.useState(j),C=j||T,D=u.find(ke=>ke.id===C),A=c??(D==null?void 0:D.linkedEnvironmentIds[0]),E=!k&&!o,R=k?(S==null?void 0:S.parentTaskId)??"":r??"",B=R?d.find(ke=>ke.id===R):void 0,[M,$]=y.useState((S==null?void 0:S.title)??""),[Y,U]=y.useState((S==null?void 0:S.description)??""),[X,te]=y.useState((S==null?void 0:S.dependsOn)??[]),[G,ne]=y.useState((S==null?void 0:S.defaultPersonaId)??""),[H,O]=y.useState((S==null?void 0:S.canDecompose)??!1),[q,ge]=y.useState((S==null?void 0:S.injectKnowledge)??!0),[se,ce]=y.useState(!1),me=y.useRef(!1);y.useEffect(()=>{k&&S&&!me.current&&(me.current=!0,$(S.title),U(S.description),te(S.dependsOn),ne(S.defaultPersonaId),O(S.canDecompose),ge(S.injectKnowledge))},[k,S]);const xe=d.filter(ke=>ke.workspaceId===C&&(!k||ke.id!==s)&&ke.id!==R),De=M.trim().length>0&&(!k||S!==void 0)&&C.length>0,ot=ke=>{te(ct=>ct.includes(ke)?ct.filter(ue=>ue!==ke):[...ct,ke])},bt=()=>{!De||se||k&&S===void 0||(k&&s?(g(s,M.trim(),Y,X,G),b==null||b("Task updated","success"),v?v():_(ls(s,void 0,C,A),{replace:!0})):(ce(!0),m(C,M.trim(),Y,X.length>0?X:void 0,R||void 0,G,H,q,()=>{b==null||b("Task created","success"),_(o?Ci(o,A):"/tasks",{replace:!0})},ke=>{b==null||b(ke,"error"),ce(!1)})))},lt=()=>{if(v){v();return}_(k&&s?ls(s,void 0,C,A):o?Ci(o,A):"/tasks")},Pe=k?"edit task":R?"child task":"new task";return a.jsxs("div",{className:Qe.container,children:[a.jsxs("div",{className:Qe.header,children:[a.jsxs("div",{className:Qe.headerTitle,children:[a.jsx("span",{className:Qe.badge,children:Pe}),B&&a.jsxs("span",{className:Qe.parentContext,children:[a.jsx("span",{className:Qe.parentLabel,children:"Child of"}),a.jsx("span",{className:Qe.parentName,children:B.title})]})]}),a.jsxs("div",{className:Qe.headerActions,children:[a.jsx("button",{onClick:bt,disabled:!De||se,className:Qe.btnPrimary,"data-testid":"task-edit-save",children:se?"Creating…":k?"Save Changes":"Create"}),a.jsx("button",{onClick:lt,className:Qe.btnGhost,children:"Cancel"})]})]}),a.jsx("div",{className:Qe.body,children:a.jsxs("div",{className:Qe.formContent,children:[E&&a.jsxs("div",{className:Qe.section,children:[a.jsx("label",{className:Qe.label,htmlFor:"task-edit-workspace",children:"Workspace"}),a.jsxs("select",{id:"task-edit-workspace",value:T,onChange:ke=>N(ke.target.value),className:Qe.personaSelect,"data-testid":"task-edit-workspace",children:[a.jsx("option",{value:"",children:"Select a workspace..."}),u.map(ke=>a.jsx("option",{value:ke.id,children:ke.name},ke.id))]})]}),a.jsxs("div",{className:Qe.section,children:[a.jsx("label",{className:Qe.label,htmlFor:"task-edit-title",children:"Title"}),a.jsx("input",{id:"task-edit-title",type:"text",value:M,onChange:ke=>$(ke.target.value),placeholder:"Task title...",autoFocus:!0,className:Qe.titleInput,"data-testid":"task-edit-title",onKeyDown:ke=>{ke.key==="Enter"&&De&&bt()}})]}),a.jsxs("div",{className:Qe.section,children:[a.jsx("label",{className:Qe.label,htmlFor:"task-edit-description",children:"Description"}),a.jsx("textarea",{id:"task-edit-description",value:Y,onChange:ke=>U(ke.target.value),placeholder:"Describe the task... (markdown supported)",className:Qe.descriptionTextarea,"data-testid":"task-edit-description",rows:8})]}),a.jsxs("div",{className:Qe.section,children:[a.jsx("label",{className:Qe.label,htmlFor:"task-edit-persona",children:"Default Persona"}),a.jsxs("select",{id:"task-edit-persona",value:G,onChange:ke=>ne(ke.target.value),className:Qe.personaSelect,"data-testid":"task-edit-persona",children:[a.jsx("option",{value:"",children:"(Inherit)"}),p.map(ke=>a.jsx("option",{value:ke.id,children:ke.name},ke.id))]})]}),!k&&a.jsx("div",{className:Qe.section,children:a.jsxs("label",{className:Qe.depItem,"data-testid":"task-edit-can-decompose",children:[a.jsx("input",{type:"checkbox",checked:H,onChange:ke=>O(ke.target.checked)}),"Can spawn subtasks"]})}),!k&&a.jsx("div",{className:Qe.section,children:a.jsxs("label",{className:Qe.depItem,"data-testid":"task-edit-inject-knowledge",children:[a.jsx("input",{type:"checkbox",checked:q,onChange:ke=>ge(ke.target.checked)}),"Inject related prior work from the knowledge graph"]})}),a.jsxs("div",{className:Qe.section,children:[a.jsx("div",{className:Qe.label,children:"Dependencies"}),xe.length===0?a.jsx("div",{className:Qe.noDeps,children:"No other tasks in this workspace"}):a.jsx("div",{className:Qe.depList,children:xe.map(ke=>{const ct=X.includes(ke.id);return a.jsxs("label",{className:`${Qe.depItem} ${ct?Qe.depItemSelected:""}`,"data-testid":`dep-option-${ke.id}`,children:[a.jsx("input",{type:"checkbox",checked:ct,onChange:()=>ot(ke.id)}),ke.title,a.jsxs("span",{style:{opacity:.5,fontSize:"11px",marginLeft:"4px"},children:["(",ke.status,")"]})]},ke.id)})})]})]})})]})}const NL="_actionButtons_1rjka_1",wL="_btnPrimary_1rjka_8",CL="_btnDanger_1rjka_39",EL="_btnGhost_1rjka_78",Yt={actionButtons:NL,btnPrimary:wL,btnDanger:CL,btnGhost:EL},AL=new Set(["stopped","suspended"]);function DL({task:t,sessionId:s,latestSessionStatus:o,isBlocked:r,onStart:c,onResume:d,onStop:u,onPause:p,onDelete:m,onEdit:g}){if(t.status==="not_started")return r?a.jsxs("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:g,className:Yt.btnGhost,"data-testid":"task-action-edit",children:"Edit"}),a.jsx("button",{onClick:m,className:Yt.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]}):a.jsxs("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{"data-testid":"task-header-start",onClick:c,className:Yt.btnPrimary,children:"Start"}),a.jsx("button",{onClick:g,className:Yt.btnGhost,"data-testid":"task-action-edit",children:"Edit"}),a.jsx("button",{onClick:m,className:Yt.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]});if(t.status==="working")return a.jsxs("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:u,className:Yt.btnDanger,"data-testid":"task-action-stop",children:"Stop"}),a.jsx("button",{onClick:p,disabled:!s,className:Yt.btnGhost,"data-testid":"task-action-pause",children:"Pause"})]});if(t.status==="paused"){const v=o!==void 0&&AL.has(o);return a.jsxs("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:u,className:Yt.btnPrimary,"data-testid":"task-action-stop",children:"Stop"}),v&&a.jsx("button",{onClick:d,className:Yt.btnGhost,"data-testid":"task-action-resume",children:"Resume"}),a.jsx("button",{onClick:m,className:Yt.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]})}if(t.status==="complete")return a.jsx("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:a.jsx("button",{onClick:m,className:Yt.btnDanger,"data-testid":"task-action-delete",children:"Delete"})});if(t.status==="failed")return a.jsxs("div",{className:Yt.actionButtons,"data-testid":"task-action-buttons",children:[a.jsx("button",{onClick:c,className:Yt.btnPrimary,"data-testid":"task-header-start",children:"Retry"}),a.jsx("button",{onClick:m,className:Yt.btnDanger,"data-testid":"task-action-delete",children:"Delete"})]})}const ML="_workpadSection_y8nj9_1",RL="_workpadLabel_y8nj9_9",IL="_workpadStatus_y8nj9_17",OL="_workpadSummary_y8nj9_23",BL="_workpadExtra_y8nj9_29",qa={workpadSection:ML,workpadLabel:RL,workpadStatus:IL,workpadSummary:OL,workpadExtra:BL};function LL({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:qa.workpadSection,"data-testid":"workpad-panel",children:[a.jsx("div",{className:qa.workpadLabel,children:"Workpad"}),a.jsx("div",{className:qa.workpadExtra,children:t})]})}if(!(!s.status&&!s.summary&&!s.extra))return a.jsxs("div",{className:qa.workpadSection,"data-testid":"workpad-panel",children:[a.jsx("div",{className:qa.workpadLabel,children:"Workpad"}),s.status&&a.jsx("div",{className:qa.workpadStatus,"data-testid":"workpad-status",children:s.status}),s.summary&&a.jsx("div",{className:qa.workpadSummary,"data-testid":"workpad-summary",children:s.summary}),s.extra&&Object.keys(s.extra).length>0&&a.jsx("div",{className:qa.workpadExtra,"data-testid":"workpad-extra",children:JSON.stringify(s.extra,null,2)})]})}const zL="_overviewDashboard_ng7kf_1",$L="_overviewHero_ng7kf_7",HL="_statusBadge_ng7kf_14",PL="_statusPending_ng7kf_26",UL="_statusAssigned_ng7kf_31",VL="_statusInProgress_ng7kf_36",qL="_statusReview_ng7kf_41",GL="_statusDone_ng7kf_46",FL="_statusFailed_ng7kf_51",KL="_statusWaitingInput_ng7kf_56",ZL="_overviewBranchPill_ng7kf_61",YL="_branchLink_ng7kf_76",JL="_overviewSection_ng7kf_87",WL="_overviewLabel_ng7kf_93",XL="_overviewValue_ng7kf_100",QL="_overviewMuted_ng7kf_105",e8="_overviewMarkdown_ng7kf_111",t8="_envRow_ng7kf_186",n8="_envDot_ng7kf_192",s8="_envDotGreen_ng7kf_199",a8="_envDotYellow_ng7kf_203",i8="_envDotRed_ng7kf_207",o8="_envDotGray_ng7kf_211",r8="_depList_ng7kf_215",l8="_depItem_ng7kf_221",c8="_depBlocked_ng7kf_228",d8="_depDone_ng7kf_232",u8="_timeline_ng7kf_236",f8="_timelineRow_ng7kf_242",p8="_timelineKey_ng7kf_249",m8="_timelineValue_ng7kf_255",h8="_timelineDelta_ng7kf_259",g8="_reviewNotes_ng7kf_270",be={overviewDashboard:zL,overviewHero:$L,statusBadge:HL,statusPending:PL,statusAssigned:UL,statusInProgress:VL,statusReview:qL,statusDone:GL,statusFailed:FL,statusWaitingInput:KL,overviewBranchPill:ZL,branchLink:YL,overviewSection:JL,overviewLabel:WL,overviewValue:XL,overviewMuted:QL,overviewMarkdown:e8,envRow:t8,envDot:n8,envDotGreen:s8,envDotYellow:a8,envDotRed:i8,envDotGray:o8,depList:r8,depItem:l8,depBlocked:c8,depDone:d8,timeline:u8,timelineRow:f8,timelineKey:p8,timelineValue:m8,timelineDelta:h8,reviewNotes:g8};function Kc(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 Dp(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 c_(t){const s=t.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?be.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?be.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?be.envDotRed:be.envDotGray}function v8({status:t}){const s=Ja(t),o=pN(t);return a.jsx("span",{className:`${be.statusBadge} ${be[o]??be.statusPending}`,"data-testid":"task-overview-status-badge",children:s.label})}function y8({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,b=r.find(S=>S.id===t.workspaceId),_=o.find(S=>S.id===d),k=t.branch&&(b!=null&&b.repoUrl)?`${b.repoUrl.replace(/\/$/,"")}/tree/${encodeURIComponent(t.branch)}`:void 0;return a.jsxs("div",{className:be.overviewDashboard,"data-testid":"task-overview-panel",children:[a.jsxs("div",{className:be.overviewHero,children:[a.jsx(v8,{status:t.status}),t.branch&&a.jsx("span",{className:be.overviewBranchPill,"data-testid":"task-overview-branch",children:k?a.jsxs("a",{href:k,target:"_blank",rel:"noreferrer noopener",className:be.branchLink,children:["🔗"," ",t.branch]}):a.jsxs("span",{children:["🔗"," ",t.branch]})})]}),typeof t.description=="string"&&t.description&&a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-description",children:[a.jsx("div",{className:be.overviewLabel,children:"Description"}),a.jsx("div",{className:be.overviewMarkdown,children:a.jsx(jm,{remarkPlugins:[Tm],children:t.description})})]}),t.workpad&&a.jsx(LL,{workpad:t.workpad}),a.jsxs("div",{className:be.overviewSection,children:[a.jsx("div",{className:be.overviewLabel,children:"Environment"}),g&&v?a.jsxs("div",{className:be.envRow,"data-testid":"task-overview-environment",children:[a.jsx("span",{className:`${be.envDot} ${c_(v.status)}`,title:v.status,"aria-label":`Status: ${v.status}`,role:"img"}),a.jsx("span",{className:be.overviewValue,children:v.displayName})]}):_?a.jsxs("div",{className:be.envRow,"data-testid":"task-overview-environment",children:[a.jsx("span",{className:`${be.envDot} ${c_(_.status)}`,title:_.status,"aria-label":`Status: ${_.status}`,role:"img"}),a.jsx("span",{className:be.overviewValue,children:_.displayName}),a.jsx("span",{className:be.overviewMuted,children:"(workspace default)"})]}):a.jsx("div",{className:be.overviewMuted,children:"Set in workspace settings"})]}),a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-dependencies",children:[a.jsx("div",{className:be.overviewLabel,children:"Dependencies"}),t.dependsOn.length===0?a.jsx("div",{className:be.overviewMuted,children:"None"}):a.jsx("div",{className:be.depList,children:t.dependsOn.map(S=>{const j=s.get(S),T=(j==null?void 0:j.status)==="complete";return a.jsxs("div",{className:`${be.depItem} ${T?be.depDone:be.depBlocked}`,children:[a.jsx("span",{children:T?"✓":"○"}),a.jsx("span",{children:(j==null?void 0:j.title)??S})]},S)})})]}),a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-timeline",children:[a.jsx("div",{className:be.overviewLabel,children:"Timeline"}),a.jsxs("div",{className:be.timeline,children:[t.createdAt&&a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Created"}),a.jsx("span",{className:be.timelineValue,children:Kc(t.createdAt)})]}),t.assignedAt&&(()=>{const S=Dp(t.createdAt,t.assignedAt);return a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Assigned"}),a.jsx("span",{className:be.timelineValue,children:Kc(t.assignedAt)}),S!==void 0&&a.jsx("span",{className:be.timelineDelta,children:S})]})})(),t.startedAt&&(()=>{const S=Dp(t.assignedAt??t.createdAt,t.startedAt);return a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Started"}),a.jsx("span",{className:be.timelineValue,children:Kc(t.startedAt)}),S!==void 0&&a.jsx("span",{className:be.timelineDelta,children:S})]})})(),t.completedAt&&(()=>{const S=Dp(t.startedAt,t.completedAt);return a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Completed"}),a.jsx("span",{className:be.timelineValue,children:Kc(t.completedAt)}),S!==void 0&&a.jsx("span",{className:be.timelineDelta,children:S})]})})(),!t.createdAt&&!t.assignedAt&&!t.startedAt&&!t.completedAt&&a.jsx("div",{className:be.overviewMuted,children:"No timing data"})]})]}),u&&u.costMillicents>0&&a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-usage",children:[a.jsx("div",{className:be.overviewLabel,children:"Usage"}),a.jsxs("div",{className:be.timeline,children:[a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Cost"}),a.jsx("span",{className:be.timelineValue,children:Ms(u.costMillicents)}),a.jsxs("span",{className:be.timelineDelta,children:[u.sessionCount," session",u.sessionCount!==1?"s":""]})]}),p&&p.costMillicents>u.costMillicents&&a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Total (incl. subtasks)"}),a.jsx("span",{className:be.timelineValue,children:Ms(p.costMillicents)}),a.jsxs("span",{className:be.timelineDelta,children:[p.sessionCount," session",p.sessionCount!==1?"s":""]})]})]})]}),(t.tokenBudget>0||t.costBudgetMillicents>0)&&a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-budget",children:[a.jsx("div",{className:be.overviewLabel,children:"Budget"}),a.jsxs("div",{className:be.timeline,children:[t.tokenBudget>0&&a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Tokens"}),a.jsxs("span",{className:be.timelineValue,children:[Ho(((u==null?void 0:u.inputTokens)??0)+((u==null?void 0:u.outputTokens)??0))," /"," ",Ho(t.tokenBudget)]})]}),t.costBudgetMillicents>0&&a.jsxs("div",{className:be.timelineRow,children:[a.jsx("span",{className:be.timelineKey,children:"Cost"}),a.jsxs("span",{className:be.timelineValue,children:[Ms((u==null?void 0:u.costMillicents)??0)," /"," ",Ms(t.costBudgetMillicents)]})]})]})]}),t.reviewNotes&&a.jsxs("div",{className:be.overviewSection,"data-testid":"task-overview-review-notes",children:[a.jsx("div",{className:be.overviewLabel,children:"Review Notes"}),a.jsx("div",{className:be.reviewNotes,children:t.reviewNotes})]})]})}function b8({plugins:t,loading:s,onSetPluginEnabled:o}){return a.jsxs("div",{className:fe.container,"data-testid":"plugins-panel",children:[a.jsx("h2",{className:fe.heading,children:"Plugins"}),a.jsxs("div",{className:fe.section,children:[a.jsx("p",{className:fe.sectionDescription,children:"Enable or disable optional Grackle plugins. A server restart is required for changes to take effect."}),s&&a.jsx("p",{className:fe.emptyState,children:"Loading plugins..."}),!s&&t.length===0&&a.jsx("p",{className:fe.emptyState,children:"No plugins found."}),!s&&t.map(r=>{const c=r.enabled!==r.loaded;return a.jsxs("div",{className:fe.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:fe.tokenName,children:r.name}),r.required&&a.jsx("span",{className:fe.tokenBadge,title:"Required — cannot be disabled",children:"required"})]}),a.jsx("div",{className:fe.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 _8({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),[k,S]=y.useState(!1),[j,T]=y.useState(!1),[N,C]=y.useState(null),D=t.find(M=>M.id===N),A=async M=>{if(M.preventDefault(),!(!p.trim()||!g.trim())){S(!0);try{await o(p.trim(),g.trim(),"",b),u==null||u("GitHub account added","success"),m(""),v(""),_(!1)}catch($){const Y=$ instanceof Error?$.message:"Failed to add account";u==null||u(Y,"error")}finally{S(!1)}}},E=async M=>{try{await r(M,{isDefault:!0}),u==null||u("Default account updated","success")}catch($){const Y=$ instanceof Error?$.message:"Failed to update account";u==null||u(Y,"error")}},R=async()=>{if(N)try{await c(N),u==null||u("GitHub account removed","info")}catch(M){const $=M instanceof Error?M.message:"Failed to remove account";u==null||u($,"error")}finally{C(null)}},B=async()=>{T(!0);try{const M=await d();M.imported>0?u==null||u(`Imported ${M.imported} account(s): ${M.usernames.join(", ")}`,"success"):u==null||u("No new accounts to import","info")}catch(M){const $=M instanceof Error?M.message:"Import failed";u==null||u($,"error")}finally{T(!1)}};return a.jsxs(a.Fragment,{children:[a.jsx(bs,{isOpen:N!==null,title:"Remove GitHub Account?",description:D?`"${D.label}"${D.username?` (@${D.username})`:""} will be permanently removed.`:void 0,onConfirm:()=>{R().catch(()=>{})},onCancel:()=>C(null)}),a.jsxs("section",{className:fe.section,"data-testid":"github-accounts-panel",children:[a.jsx("h3",{className:fe.sectionTitle,children:"GitHub Accounts"}),a.jsx("p",{className:fe.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:fe.emptyState,children:"Loading..."}):t.length===0?a.jsx("div",{className:fe.emptyStateInfo,children:"No GitHub accounts registered. Add one below or import from the gh CLI."}):a.jsx("div",{className:fe.tokenList,children:t.map(M=>a.jsxs("div",{className:fe.tokenRow,"data-testid":`github-account-row-${M.id}`,children:[M.isDefault&&a.jsx("span",{className:fe.tokenBadge,title:"Default account",children:"default"}),a.jsx("span",{className:fe.tokenName,children:M.label}),M.username&&a.jsxs("span",{className:fe.tokenTarget,children:["@",M.username]}),!M.isDefault&&a.jsx("button",{className:fe.deleteButton,onClick:()=>{E(M.id).catch(()=>{})},title:"Set as default","aria-label":`Set ${M.label} as default`,"data-testid":`github-account-set-default-${M.id}`,children:a.jsx(rN,{size:Pt,"aria-hidden":"true"})}),a.jsx("button",{className:fe.deleteButton,onClick:()=>C(M.id),title:`Remove ${M.label}`,"aria-label":`Remove ${M.label}`,"data-testid":`github-account-remove-${M.id}`,children:a.jsx(Ls,{size:Pt,"aria-hidden":"true"})})]},M.id))}),a.jsxs("form",{className:fe.addForm,onSubmit:M=>{A(M).catch(()=>{})},children:[a.jsxs("div",{className:fe.formRow,children:[a.jsx("input",{className:fe.input,type:"text",placeholder:"Label (e.g. personal, work)",value:p,onChange:M=>m(M.target.value),"data-testid":"github-account-label-input"}),a.jsx("input",{className:fe.input,type:"password",placeholder:"Personal access token",value:g,onChange:M=>v(M.target.value),"data-testid":"github-account-token-input"})]}),a.jsxs("div",{className:fe.formRow,children:[a.jsxs("label",{className:fe.tokenTarget,style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},children:[a.jsx("input",{type:"checkbox",checked:b,onChange:M=>_(M.target.checked),"data-testid":"github-account-default-checkbox"}),"Set as default"]}),a.jsx("button",{className:fe.addButton,type:"submit",disabled:!p.trim()||!g.trim()||k,"data-testid":"github-account-add-button",children:k?"Adding...":"Add Account"}),a.jsx("button",{className:fe.addButton,type:"button",onClick:()=>{B().catch(()=>{})},disabled:j,"data-testid":"github-account-import-button",children:j?"Importing...":"Import from gh CLI"})]})]})]})]})}const x8="_container_legrg_1",k8="_header_legrg_8",S8="_headerTitle_legrg_35",j8="_badge_legrg_44",T8="_headerActions_legrg_54",N8="_body_legrg_61",w8="_formContent_legrg_73",C8="_section_legrg_85",E8="_label_legrg_91",A8="_nameInput_legrg_98",D8="_fieldInput_legrg_131",M8="_adapterSelect_legrg_164",R8="_readOnlyValue_legrg_198",I8="_codespaceSection_legrg_204",O8="_codespaceActions_legrg_210",B8="_creatingHint_legrg_216",L8="_errorHint_legrg_222",z8="_btnPrimary_legrg_235",$8="_btnGhost_legrg_266",re={container:x8,header:k8,headerTitle:S8,badge:j8,headerActions:T8,body:N8,formContent:w8,section:C8,label:E8,nameInput:A8,fieldInput:D8,adapterSelect:M8,readOnlyValue:R8,codespaceSection:I8,codespaceActions:O8,creatingHint:B8,errorHint:L8,btnPrimary:z8,btnGhost:$8},rd=1,ld=65535;function Mp(t){if(!t.trim())return!0;const s=Number(t);return Number.isInteger(s)&&s>=rd&&s<=ld}function Rp(t){try{const s=JSON.parse(t);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}catch{}return{}}function H8({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(""),[k,S]=y.useState("");return g==="create"?a.jsxs("div",{className:re.codespaceSection,children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Repository"}),a.jsx("input",{type:"text",value:b,onChange:j=>_(j.target.value),placeholder:"owner/repo",className:re.fieldInput,"data-testid":"env-codespace-repo"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Machine Type"}),a.jsx("input",{type:"text",value:k,onChange:j=>S(j.target.value),placeholder:"Machine type (optional)...",className:re.fieldInput,"data-testid":"env-codespace-machine"})]}),a.jsxs("div",{className:re.codespaceActions,children:[a.jsx("button",{onClick:()=>{b.trim()&&(m(b.trim(),k.trim()||void 0),v("pick"),_(""),S(""))},disabled:!b.trim(),className:re.btnPrimary,children:"Create"}),a.jsx("button",{onClick:()=>{v("pick"),_(""),S("")},className:re.btnGhost,children:"Cancel"})]})]}):a.jsx("div",{className:re.codespaceSection,children:a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.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:re.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:re.creatingHint,children:"Creating codespace..."}),u&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:re.errorHint,children:u}),a.jsx("input",{type:"text",value:t,onChange:j=>s(j.target.value),placeholder:"Or enter codespace name manually...",className:re.fieldInput,"data-testid":"env-codespace-manual"})]}),d&&!u&&a.jsx("span",{className:re.errorHint,children:d})]})})}function fk({mode:t,environmentId:s,environments:o,githubAccounts:r,onAddEnvironment:c,onUpdateEnvironment:d,onListCodespaces:u,codespaces:p,codespaceError:m,codespaceListError:g,codespaceCreating:v,onCreateCodespace:b,onListDockerContainers:_,dockerContainers:k,dockerContainersError:S,onShowToast:j}){const T=xt(),N=t==="edit",C=N&&s?o.find(le=>le.id===s):void 0,[D,A]=y.useState(""),[E,R]=y.useState("local"),[B,M]=y.useState(""),[$,Y]=y.useState(""),[U,X]=y.useState(""),[te,G]=y.useState(""),[ne,H]=y.useState(""),[O,q]=y.useState(""),[ge,se]=y.useState(""),[ce,me]=y.useState(""),[xe,De]=y.useState("create"),[ot,bt]=y.useState(""),[lt,Pe]=y.useState(null),ke=y.useCallback(()=>{const le={};if(E==="local"){if(B.trim()&&(le.host=B.trim()),$.trim()){const ve=Number($);Number.isInteger(ve)&&(le.port=ve)}}else if(E==="ssh"){if(le.host=B.trim(),U.trim()&&(le.user=U.trim()),$.trim()){const ve=Number($);Number.isInteger(ve)&&(le.sshPort=ve)}te.trim()&&(le.identityFile=te.trim())}else E==="docker"?xe==="attach"?ot.trim()&&(le.attach=ot.trim()):(ne.trim()&&(le.image=ne.trim()),O.trim()&&(le.repo=O.trim())):E==="codespace"&&(le.codespaceName=ge.trim());return le},[E,B,$,U,te,ne,O,ge,xe,ot]),ct=()=>!(!D.trim()||E==="ssh"&&!B.trim()||E==="codespace"&&!ge.trim()||E==="docker"&&xe==="attach"&&!ot.trim()||(E==="local"||E==="ssh")&&!Mp($)),ue=()=>{ct()&&(c(D.trim(),E,ke(),ce||void 0),j==null||j("Environment added successfully","success"),T(zo,{replace:!0}))},Ie=()=>{T(s?$o(s):zo)},ee=y.useCallback((le,ve)=>{if(!C||!s)return;const et=Rp(C.adapterConfig),on=ve.trim();on?et[le]=on:delete et[le],d(s,{adapterConfig:et})},[C,s,d]),nt=y.useCallback((le,ve)=>{if(!C||!s)return;const et=Rp(C.adapterConfig);if(ve.trim()){const on=Number(ve);Number.isInteger(on)&&on>=rd&&on<=ld&&(et[le]=on)}else delete et[le];d(s,{adapterConfig:et})},[C,s,d]);if(N){if(!C)return a.jsxs("div",{className:re.container,children:[a.jsxs("div",{className:re.header,children:[a.jsx("div",{className:re.headerTitle,children:a.jsx("span",{className:re.badge,children:"edit environment"})}),a.jsx("div",{className:re.headerActions,children:a.jsx("button",{onClick:Ie,className:re.btnGhost,children:"Back"})})]}),a.jsx("div",{className:re.body,children:a.jsx("div",{className:re.formContent,children:a.jsx("span",{className:re.readOnlyValue,children:"Environment not found"})})})]});const le=Rp(C.adapterConfig);return a.jsxs("div",{className:re.container,"data-testid":"env-edit-panel",children:[a.jsxs("div",{className:re.header,children:[a.jsx("div",{className:re.headerTitle,children:a.jsx("span",{className:re.badge,children:"edit environment"})}),a.jsx("div",{className:re.headerActions,children:a.jsx("button",{onClick:Ie,className:re.btnGhost,"data-testid":"env-edit-back",children:"Back"})})]}),a.jsx("div",{className:re.body,children:a.jsxs("div",{className:re.formContent,children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Name"}),a.jsx($t,{value:C.displayName,onSave:ve=>{s&&d(s,{displayName:ve})},validate:ve=>ve.trim()===""?"Name cannot be empty":void 0,mode:"edit",fieldId:"name",activeFieldId:lt,onActivate:Pe,placeholder:"Environment name",ariaLabel:"Environment name","data-testid":"env-edit-name"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Adapter Type"}),a.jsx("span",{className:re.readOnlyValue,"data-testid":"env-edit-adapter-type",children:C.adapterType})]}),(C.adapterType==="codespace"||C.adapterType==="docker")&&(r.length>0||!!C.githubAccountId)&&a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"GitHub Account"}),a.jsxs("select",{value:C.githubAccountId||"",onChange:ve=>{s&&d(s,{githubAccountId:ve.target.value})},className:re.adapterSelect,"data-testid":"env-edit-github-account",children:[a.jsx("option",{value:"",children:"(Default)"}),r.map(ve=>a.jsxs("option",{value:ve.id,children:[ve.label,ve.username?` (@${ve.username})`:"",ve.isDefault?" — default":""]},ve.id))]})]}),C.adapterType==="local"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Host"}),a.jsx($t,{value:String(le.host??""),onSave:ve=>ee("host",ve),mode:"edit",fieldId:"host",activeFieldId:lt,onActivate:Pe,placeholder:"(default)",ariaLabel:"Host","data-testid":"env-edit-host"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Port"}),a.jsx($t,{value:String(le.port??""),onSave:ve=>nt("port",ve),validate:ve=>Mp(ve)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"port",activeFieldId:lt,onActivate:Pe,placeholder:"(default)",ariaLabel:"Port","data-testid":"env-edit-port"})]})]}),C.adapterType==="ssh"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Host"}),a.jsx($t,{value:String(le.host??""),onSave:ve=>ee("host",ve),validate:ve=>ve.trim()===""?"Host is required":void 0,mode:"edit",fieldId:"host",activeFieldId:lt,onActivate:Pe,placeholder:"hostname or IP",ariaLabel:"Host","data-testid":"env-edit-host"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"User"}),a.jsx($t,{value:String(le.user??""),onSave:ve=>ee("user",ve),mode:"edit",fieldId:"user",activeFieldId:lt,onActivate:Pe,placeholder:"(default)",ariaLabel:"User","data-testid":"env-edit-user"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"SSH Port"}),a.jsx($t,{value:String(le.sshPort??""),onSave:ve=>nt("sshPort",ve),validate:ve=>Mp(ve)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"sshPort",activeFieldId:lt,onActivate:Pe,placeholder:"22",ariaLabel:"SSH Port","data-testid":"env-edit-ssh-port"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Identity File"}),a.jsx($t,{value:String(le.identityFile??""),onSave:ve=>ee("identityFile",ve),mode:"edit",fieldId:"identityFile",activeFieldId:lt,onActivate:Pe,placeholder:"~/.ssh/id_rsa",ariaLabel:"Identity File","data-testid":"env-edit-identity-file"})]})]}),C.adapterType==="docker"&&le.attach!==void 0&&a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Attach (container)"}),a.jsx($t,{value:String(le.attach??""),onSave:ve=>ee("attach",ve),validate:ve=>ve.trim()===""?"Container name is required":void 0,mode:"edit",fieldId:"attach",activeFieldId:lt,onActivate:Pe,placeholder:"container name or ID",ariaLabel:"Attach container","data-testid":"env-edit-attach"})]}),C.adapterType==="docker"&&le.attach===void 0&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Image"}),a.jsx($t,{value:String(le.image??""),onSave:ve=>ee("image",ve),mode:"edit",fieldId:"image",activeFieldId:lt,onActivate:Pe,placeholder:"(default)",ariaLabel:"Image","data-testid":"env-edit-image"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Repo"}),a.jsx($t,{value:String(le.repo??""),onSave:ve=>ee("repo",ve),mode:"edit",fieldId:"repo",activeFieldId:lt,onActivate:Pe,placeholder:"(none)",ariaLabel:"Repo","data-testid":"env-edit-repo"})]})]}),C.adapterType==="codespace"&&a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Codespace Name"}),a.jsx($t,{value:String(le.codespaceName??""),onSave:ve=>ee("codespaceName",ve),validate:ve=>ve.trim()===""?"Codespace name is required":void 0,mode:"edit",fieldId:"codespaceName",activeFieldId:lt,onActivate:Pe,placeholder:"codespace-name",ariaLabel:"Codespace Name","data-testid":"env-edit-codespace-name"})]})]})})]})}return a.jsxs("div",{className:re.container,"data-testid":"env-create-panel",children:[a.jsxs("div",{className:re.header,children:[a.jsx("div",{className:re.headerTitle,children:a.jsx("span",{className:re.badge,children:"new environment"})}),a.jsxs("div",{className:re.headerActions,children:[a.jsx("button",{onClick:ue,disabled:!ct(),className:re.btnPrimary,"data-testid":"env-create-submit",children:"Create"}),a.jsx("button",{onClick:Ie,className:re.btnGhost,children:"Cancel"})]})]}),a.jsx("div",{className:re.body,children:a.jsxs("div",{className:re.formContent,children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-name",children:"Name"}),a.jsx("input",{id:"env-create-name",type:"text",value:D,onChange:le=>A(le.target.value),placeholder:"Environment name...",autoFocus:!0,className:re.nameInput,"data-testid":"env-create-name",onKeyDown:le=>{le.key==="Enter"&&ct()&&ue()}})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-adapter",children:"Adapter Type"}),a.jsxs("select",{id:"env-create-adapter",value:E,onChange:le=>{R(le.target.value),le.target.value==="codespace"&&u(ce||void 0)},className:re.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"})]})]}),(E==="codespace"||E==="docker")&&r.length>0&&a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-github-account",children:"GitHub Account"}),a.jsxs("select",{id:"env-create-github-account",value:ce,onChange:le=>{me(le.target.value),E==="codespace"&&u(le.target.value||void 0)},className:re.adapterSelect,"data-testid":"env-create-github-account",children:[a.jsx("option",{value:"",children:"(Default)"}),r.map(le=>a.jsxs("option",{value:le.id,children:[le.label," (@",le.username,")",le.isDefault?" — default":""]},le.id))]})]}),E==="local"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-host",children:"Host"}),a.jsx("input",{id:"env-create-host",type:"text",value:B,onChange:le=>M(le.target.value),placeholder:"Host (optional)...",className:re.fieldInput,"data-testid":"env-create-host"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-port",children:"Port"}),a.jsx("input",{id:"env-create-port",type:"number",min:rd,max:ld,value:$,onChange:le=>Y(le.target.value),placeholder:"Port (optional)...",className:re.fieldInput,"data-testid":"env-create-port"})]})]}),E==="ssh"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-host",children:"Host"}),a.jsx("input",{id:"env-create-host",type:"text",value:B,onChange:le=>M(le.target.value),placeholder:"Host (required)...",className:re.fieldInput,"data-testid":"env-create-host"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-user",children:"User"}),a.jsx("input",{id:"env-create-user",type:"text",value:U,onChange:le=>X(le.target.value),placeholder:"User (optional)...",className:re.fieldInput,"data-testid":"env-create-user"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-port",children:"SSH Port"}),a.jsx("input",{id:"env-create-port",type:"number",min:rd,max:ld,value:$,onChange:le=>Y(le.target.value),placeholder:"SSH port (optional)...",className:re.fieldInput,"data-testid":"env-create-port"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-identity",children:"Identity File"}),a.jsx("input",{id:"env-create-identity",type:"text",value:te,onChange:le=>G(le.target.value),placeholder:"Identity file (optional)...",className:re.fieldInput,"data-testid":"env-create-identity"})]})]}),E==="docker"&&a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-docker-mode",children:"Source"}),a.jsxs("select",{id:"env-docker-mode",value:xe,onChange:le=>{const ve=le.target.value;De(ve),ve==="attach"&&_()},className:re.adapterSelect,"data-testid":"env-docker-mode",children:[a.jsx("option",{value:"create",children:"Create new container"}),a.jsx("option",{value:"attach",children:"Attach to existing container"})]})]}),xe==="create"?a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-image",children:"Image"}),a.jsx("input",{id:"env-create-image",type:"text",value:ne,onChange:le=>H(le.target.value),placeholder:"Image (optional)...",className:re.fieldInput,"data-testid":"env-create-image"})]}),a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,htmlFor:"env-create-repo",children:"Repo"}),a.jsx("input",{id:"env-create-repo",type:"text",value:O,onChange:le=>q(le.target.value),placeholder:"Repo (optional)...",className:re.fieldInput,"data-testid":"env-create-repo"})]})]}):a.jsxs("div",{className:re.section,children:[a.jsx("label",{className:re.label,children:"Container"}),!S&&k.length>0&&a.jsxs("select",{value:ot,onChange:le=>{bt(le.target.value),le.target.value&&!D.trim()&&A(le.target.value)},className:re.adapterSelect,"data-testid":"env-docker-container-select",children:[a.jsx("option",{value:"",children:"Select a container..."}),k.map(le=>a.jsxs("option",{value:le.name,children:[le.name," (",le.image,") ",le.status]},le.id))]}),(S||k.length===0)&&a.jsxs(a.Fragment,{children:[S?a.jsx("span",{className:re.errorHint,children:S}):a.jsx("span",{className:re.creatingHint,children:"No running containers found."}),a.jsx("input",{type:"text",value:ot,onChange:le=>{bt(le.target.value),le.target.value&&!D.trim()&&A(le.target.value)},placeholder:"Enter container name/ID...",className:re.fieldInput,"data-testid":"env-docker-container-manual"})]})]})]}),E==="codespace"&&a.jsx(H8,{codespaceName:ge,onCodespaceNameChange:se,envName:D,onEnvNameChange:A,codespaces:p,codespaceError:m,codespaceListError:g,codespaceCreating:v,onCreateCodespace:b})]})})]})}const P8="_group_1iprv_1",U8="_groupTitle_1iprv_8",V8="_shortcutList_1iprv_17",q8="_shortcutRow_1iprv_23",G8="_keys_1iprv_36",F8="_kbd_1iprv_43",K8="_description_1iprv_60",xi={group:P8,groupTitle:U8,shortcutList:V8,shortcutRow:q8,keys:G8,kbd:F8,description:K8},Z8=[{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"}]},{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:"Root",shortcuts:[{keys:["Ctrl/Cmd","Enter"],description:"Send message (when the composer is focused)"},{keys:["Enter"],description:"Insert a new line in the message composer"}]}];function Y8(){return a.jsxs("section",{className:fe.section,"data-testid":"keyboard-shortcuts-panel",children:[a.jsx("h3",{className:fe.sectionTitle,children:"Keyboard Shortcuts"}),a.jsx("p",{className:fe.sectionDescription,children:"Keyboard shortcuts for navigating and interacting with Grackle. Global shortcuts are suppressed while typing in text fields."}),Z8.map(t=>a.jsxs("div",{className:xi.group,children:[a.jsx("h4",{className:xi.groupTitle,children:t.title}),a.jsx("div",{className:xi.shortcutList,children:t.shortcuts.map(s=>a.jsxs("div",{className:xi.shortcutRow,children:[a.jsx("span",{className:xi.keys,children:s.keys.map(o=>a.jsx("kbd",{className:xi.kbd,children:o},o))}),a.jsx("span",{className:xi.description,children:s.description})]},s.description))})]},t.title))]})}const J8=[{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 W8({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:fe.section,children:[a.jsx("h3",{className:fe.sectionTitle,children:"Credential Providers"}),a.jsx("p",{className:fe.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:fe.tokenList,children:J8.map(r=>a.jsxs("div",{className:fe.tokenRow,children:[a.jsx("span",{className:fe.tokenName,children:r.label}),a.jsx("span",{className:fe.tokenTarget,children:r.description}),a.jsx("select",{className:fe.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 X8="_container_10efq_1",Q8="_header_10efq_7",e7="_list_10efq_105",t7="_card_10efq_111",n7="_cardHeader_10efq_125",s7="_cardTitle_10efq_135",a7="_defaultBadge_10efq_141",i7="_cardActions_10efq_155",o7="_description_10efq_160",r7="_meta_10efq_166",l7="_empty_10efq_212",c7="_typeBadge_10efq_362",ts={container:X8,header:Q8,list:e7,card:t7,cardHeader:n7,cardTitle:s7,defaultBadge:a7,cardActions:i7,description:o7,meta:r7,empty:l7,typeBadge:c7};function d7({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:ts.container,children:[a.jsxs("div",{className:ts.header,children:[a.jsx("h2",{children:"Personas"}),a.jsx(an,{variant:"primary",size:"md",onClick:c,"data-testid":"persona-new-button",children:"+ New Persona"})]}),t.length===0?a.jsx("p",{className:ts.empty,children:"No personas yet. Create one to get started."}):a.jsx("div",{className:ts.list,children:t.map(v=>{const b=s===v.id,_=v.type==="script";return a.jsxs("div",{className:ts.card,"data-testid":`persona-card-${v.id}`,onClick:()=>d(v.id),role:"button",tabIndex:0,onKeyDown:k=>{k.currentTarget===k.target&&(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),d(v.id))},children:[a.jsxs("div",{className:ts.cardHeader,children:[a.jsxs("span",{className:ts.cardTitle,children:[a.jsx("strong",{children:v.name}),a.jsx("span",{className:ts.typeBadge,"data-testid":`persona-type-badge-${v.id}`,children:_?"Script":"Agent"}),b&&a.jsx("span",{className:ts.defaultBadge,"data-testid":`persona-default-badge-${v.id}`,children:"App Default"})]}),a.jsxs("div",{className:ts.cardActions,onClick:k=>k.stopPropagation(),children:[!b&&a.jsx(an,{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(an,{variant:"ghost",size:"sm",onClick:()=>d(v.id),children:"Edit"}),a.jsx(an,{variant:"ghost",size:"sm",onClick:()=>p(v.id),"data-testid":`persona-delete-${v.id}`,children:"Delete"})]})]}),v.description&&a.jsx("p",{className:ts.description,children:v.description}),a.jsxs("div",{className:ts.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(bs,{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 u7="_container_uy08i_1",f7="_header_uy08i_7",p7="_count_uy08i_13",m7="_presets_uy08i_18",h7="_presetButton_uy08i_24",g7="_filterInput_uy08i_41",v7="_groups_uy08i_53",y7="_group_uy08i_53",b7="_groupHeader_uy08i_68",_7="_groupName_uy08i_77",x7="_groupCount_uy08i_81",k7="_toolList_uy08i_87",S7="_toolItem_uy08i_95",j7="_toolName_uy08i_103",bn={container:u7,header:f7,count:p7,presets:m7,presetButton:h7,filterInput:g7,groups:v7,group:y7,groupHeader:b7,groupName:_7,groupCount:x7,toolList:k7,toolItem:S7,toolName:j7},T7=(()=>{const t=new Map;for(const s of V_){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()}))})(),N7=[{name:"default",label:"Default",tools:U_},{name:"worker",label:"Worker",tools:ij},{name:"orchestrator",label:"Orchestrator",tools:oj},{name:"admin",label:"Admin",tools:rj}];function d_({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 b=new Set(d);b.has(v)?b.delete(v):b.add(v),s([...b].sort())},[d,s,o]),p=y.useCallback((v,b)=>{if(o)return;const _=new Set(d);for(const k of v)b?_.delete(k):_.add(k);s([..._].sort())},[d,s,o]),m=y.useCallback(v=>{o||s([...v].sort())},[s,o]),g=r.toLowerCase();return a.jsxs("div",{className:bn.container,"data-testid":"mcp-tool-selector",children:[a.jsx("div",{className:bn.header,children:a.jsx("span",{className:bn.count,children:t.length===0?`Using default (${U_.length} tools)`:`${t.length} of ${V_.size} tools selected`})}),a.jsxs("div",{className:bn.presets,"data-testid":"mcp-tool-presets",children:[N7.map(v=>a.jsx("button",{type:"button",className:bn.presetButton,disabled:o,onClick:()=>m(v.tools),"data-testid":`preset-${v.name}`,children:v.label},v.name)),a.jsx("button",{type:"button",className:bn.presetButton,disabled:o,onClick:()=>s([]),"data-testid":"preset-clear",children:"Clear"})]}),a.jsx("input",{type:"text",className:bn.filterInput,placeholder:"Filter tools...",value:r,onChange:v=>c(v.target.value),disabled:o,"data-testid":"mcp-tool-filter"}),a.jsx("div",{className:bn.groups,children:T7.map(({group:v,tools:b})=>{const _=g?b.filter(S=>S.toLowerCase().includes(g)):b;if(_.length===0)return null;const k=_.every(S=>d.has(S));return a.jsxs("div",{className:bn.group,"data-testid":`tool-group-${v}`,children:[a.jsxs("label",{className:bn.groupHeader,children:[a.jsx("input",{type:"checkbox",checked:k,onChange:()=>p(_,k),disabled:o,"data-testid":`group-toggle-${v}`}),a.jsx("span",{className:bn.groupName,children:v}),a.jsxs("span",{className:bn.groupCount,children:["(",_.filter(S=>d.has(S)).length,"/",_.length,")"]})]}),a.jsx("div",{className:bn.toolList,children:_.map(S=>a.jsxs("label",{className:bn.toolItem,children:[a.jsx("input",{type:"checkbox",checked:d.has(S),onChange:()=>u(S),disabled:o,"data-testid":`tool-${S}`}),a.jsx("span",{className:bn.toolName,children:S})]},S))})]},v)})})]})}const w7="_container_1gfuq_1",C7="_header_1gfuq_7",E7="_list_1gfuq_19",A7="_card_1gfuq_25",D7="_cardHeader_1gfuq_40",M7="_cardTitle_1gfuq_46",R7="_statusBadge_1gfuq_56",I7="_enabled_1gfuq_68",O7="_disabled_1gfuq_71",B7="_cardActions_1gfuq_75",L7="_cardMeta_1gfuq_80",z7="_empty_1gfuq_98",ns={container:w7,header:C7,list:E7,card:A7,cardHeader:D7,cardTitle:M7,statusBadge:R7,enabled:I7,disabled:O7,cardActions:B7,cardMeta:L7,empty:z7};function $7({schedules:t,personas:s,onDeleteSchedule:o,onToggleEnabled:r,onNavigateToNew:c,onNavigateToSchedule:d}){const[u,p]=y.useState(null),m=u?t.find(_=>_.id===u):void 0,g=async _=>{await o(_),p(null)},v=y.useMemo(()=>{const _=new Map;for(const k of s)_.set(k.id,k.name);return _},[s]),b=_=>v.get(_)??_;return a.jsxs("div",{className:ns.container,children:[a.jsxs("div",{className:ns.header,children:[a.jsx("h2",{children:"Schedules"}),a.jsx(an,{variant:"primary",size:"md",onClick:c,"data-testid":"schedule-new-button",children:"+ New Schedule"})]}),t.length===0?a.jsx("p",{className:ns.empty,"data-testid":"schedule-empty-state",children:"No schedules yet. Create one to run tasks on a recurring cadence."}):a.jsx("div",{className:ns.list,children:t.map(_=>a.jsxs("div",{className:ns.card,"data-testid":`schedule-card-${_.id}`,onClick:()=>d(_.id),role:"button",tabIndex:0,onKeyDown:k=>{k.currentTarget===k.target&&(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),d(_.id))},children:[a.jsxs("div",{className:ns.cardHeader,children:[a.jsxs("span",{className:ns.cardTitle,children:[a.jsx("strong",{children:_.title}),a.jsx("span",{className:`${ns.statusBadge} ${_.enabled?ns.enabled:ns.disabled}`,"data-testid":`schedule-status-badge-${_.id}`,children:_.enabled?"Enabled":"Disabled"})]}),a.jsxs("div",{className:ns.cardActions,onClick:k=>k.stopPropagation(),children:[a.jsx(an,{variant:"ghost",size:"sm",onClick:()=>{(async()=>{await r(_.id,{enabled:!_.enabled})})().catch(()=>{})},"data-testid":`schedule-toggle-${_.id}`,title:_.enabled?"Disable schedule":"Enable schedule",children:_.enabled?"Disable":"Enable"}),a.jsx(an,{variant:"ghost",size:"sm",onClick:()=>d(_.id),"data-testid":`schedule-edit-${_.id}`,children:"Edit"}),a.jsx(an,{variant:"ghost",size:"sm",onClick:()=>p(_.id),"data-testid":`schedule-delete-${_.id}`,children:"Delete"})]})]}),a.jsxs("div",{className:ns.cardMeta,children:[a.jsx("span",{"data-testid":`schedule-expression-${_.id}`,children:_.scheduleExpression}),_.personaId&&a.jsxs("span",{"data-testid":`schedule-persona-${_.id}`,children:["Persona: ",b(_.personaId)]}),a.jsxs("span",{"data-testid":`schedule-last-run-${_.id}`,children:["Last run: ",_.lastRunAt?hm(_.lastRunAt):"Never"]}),_.enabled&&_.nextRunAt?a.jsxs("span",{"data-testid":`schedule-next-run-${_.id}`,children:["Next run: ",tk(_.nextRunAt)]}):null,_.runCount>0&&a.jsxs("span",{"data-testid":`schedule-run-count-${_.id}`,children:["Runs: ",_.runCount]})]})]},_.id))}),a.jsx(bs,{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 H7="_nav_1bhou_1",P7="_tab_1bhou_24",U7="_tabIcon_1bhou_62",V7="_tabActive_1bhou_68",Zc={nav:H7,tab:P7,tabIcon:U7,tabActive:V7},ia=[{path:"credentials",label:"Credentials",icon:a.jsx(NT,{size:Tt})},{path:"github-accounts",label:"GitHub Accounts",icon:a.jsx(bT,{size:Tt})},{path:"personas",label:"Personas",icon:a.jsx(dN,{size:Tt})},{path:"schedules",label:"Schedules",icon:a.jsx(Jj,{size:Tt})},{path:"appearance",label:"Appearance",icon:a.jsx(FT,{size:Tt})},{path:"shortcuts",label:"Shortcuts",icon:a.jsx(CT,{size:Tt})},{path:"plugins",label:"Plugins",icon:a.jsx(XT,{size:Tt})},{path:"about",label:"About",icon:a.jsx(wm,{size:Tt})}];function q7(){var u;const t=Wt(),s=xt(),o=y.useRef(null),r=((u=ia.find(p=>{const m=`${Ti}/${p.path}`;return t.pathname===m||t.pathname.startsWith(`${m}/`)}))==null?void 0:u.path)??ia[0].path,c=y.useCallback(p=>{s(`${Ti}/${p}`)},[s]),d=y.useCallback(p=>{var k,S;const m=(k=o.current)==null?void 0:k.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 b=v;if(p.key==="ArrowDown"||p.key==="j"||p.key==="J")p.preventDefault(),b=(v+1)%ia.length;else if(p.key==="ArrowUp"||p.key==="k"||p.key==="K")p.preventDefault(),b=(v-1+ia.length)%ia.length;else if(p.key==="Home")p.preventDefault(),b=0;else if(p.key==="End")p.preventDefault(),b=ia.length-1;else return;const _=ia[b].path;s(`${Ti}/${_}`),(S=m[b])==null||S.focus()},[r,s]);return a.jsx("nav",{className:Zc.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:`${Zc.tab} ${m?Zc.tabActive:""}`,onClick:()=>c(p.path),children:[a.jsx("span",{className:Zc.tabIcon,"aria-hidden":"true",children:p.icon}),p.label]},p.path)})})}const G7=["lifecycle:","pipe:","stdin:"];function bh(t){return t.selfEcho?"chatroom":t.name.startsWith("pipe:")?"pipe":"channel"}function pk(t,s){let o=!1;for(const r of t.subscribers){const c=s.get(r.sessionId);if(c&&(o=!0,c.taskId))return{kind:"task",taskId:c.taskId}}return o?{kind:"unattached"}:{kind:"external"}}function F7(t,s){const o=new Map(s.map(u=>[u.id,u])),r=new Map,c=[];for(const u of t){const p=pk(u,o);if(p.kind==="task"){const m=r.get(p.taskId);m?m.push(u):r.set(p.taskId,[u])}else c.push(u)}const d=Array.from(r,([u,p])=>({taskId:u,streams:p}));return c.length>0&&d.push({taskId:void 0,streams:c}),d}const K7="_container_16qkd_1",Z7="_header_16qkd_7",Y7="_title_16qkd_15",J7="_headerActions_16qkd_21",W7="_internalsToggle_16qkd_27",X7="_refreshButton_16qkd_37",Q7="_state_16qkd_52",ez="_group_16qkd_59",tz="_groupHeader_16qkd_63",nz="_row_16qkd_72",sz="_selected_16qkd_92",az="_kindBadge_16qkd_96",iz="_kindChatroom_16qkd_108",oz="_kindPipe_16qkd_114",rz="_kindChannel_16qkd_120",lz="_streamName_16qkd_126",cz="_meta_16qkd_135",Jt={container:K7,header:Z7,title:Y7,headerActions:J7,internalsToggle:W7,refreshButton:X7,state:Q7,group:ez,groupHeader:tz,row:nz,selected:sz,kindBadge:az,kindChatroom:iz,kindPipe:oz,kindChannel:rz,streamName:lz,meta:cz},dz={chatroom:"Chatroom",pipe:"Pipe",channel:"Channel"};function uz({kind:t}){return t==="chatroom"?a.jsx(HT,{size:Ye,"aria-hidden":"true"}):t==="pipe"?a.jsx(vT,{size:Ye,"aria-hidden":"true"}):a.jsx(xT,{size:Ye,"aria-hidden":"true"})}function fz({streams:t,sessions:s,tasks:o,loading:r,loadError:c=!1,loadedOnce:d=!0,showInternals:u,onToggleInternals:p,selectedStreamId:m,onSelectStream:g,onRefresh:v,hideHeaderControls:b=!1}){const _=F7(t,s),k={chatroom:Jt.kindChatroom,pipe:Jt.kindPipe,channel:Jt.kindChannel},S=j=>{var T;return((T=o.find(N=>N.id===j))==null?void 0:T.title)??j};return a.jsxs("div",{className:Jt.container,"data-testid":"coordination-list",children:[a.jsxs("div",{className:Jt.header,children:[a.jsx("span",{className:Jt.title,children:"Coordination"}),!b&&a.jsxs("div",{className:Jt.headerActions,children:[a.jsxs("label",{className:Jt.internalsToggle,children:[a.jsx("input",{type:"checkbox",checked:u,onChange:j=>p(j.target.checked),"data-testid":"coordination-show-internals"}),"Show internals"]}),v&&a.jsx("button",{type:"button",className:Jt.refreshButton,onClick:v,"aria-label":"Refresh streams","data-testid":"coordination-refresh",children:a.jsx(eN,{size:Ye,"aria-hidden":"true"})})]})]}),r&&t.length===0&&a.jsxs("div",{className:Jt.state,children:["Loading","…"]}),!r&&c&&a.jsx("div",{className:Jt.state,"data-testid":"coordination-error",children:"Unable to load streams"}),!r&&!c&&d&&t.length===0&&a.jsx("div",{className:Jt.state,"data-testid":"coordination-empty",children:"No active streams"}),_.map(j=>a.jsxs("div",{className:Jt.group,children:[a.jsx("div",{className:Jt.groupHeader,children:j.taskId?S(j.taskId):"Unattached / external (CLI · MCP)"}),j.streams.map(T=>{const N=bh(T),C=T.id===m;return a.jsxs("button",{type:"button",className:`${Jt.row}${C?` ${Jt.selected}`:""}`,onClick:()=>g(T.id),"data-testid":`coordination-row-${T.id}`,"aria-current":C?"page":void 0,children:[a.jsxs("span",{className:`${Jt.kindBadge} ${k[N]}`,children:[a.jsx(uz,{kind:N})," ",dz[N]]}),a.jsx("span",{className:Jt.streamName,children:T.name}),a.jsxs("span",{className:Jt.meta,children:[T.subscriberCount," ",T.subscriberCount===1?"sub":"subs"," ","·"," ",T.messageBufferDepth," buffered"]})]},T.id)})]},j.taskId??"__orphans__"))]})}const pz="_transcript_1p4cm_1",mz="_message_1p4cm_10",hz="_meta_1p4cm_16",gz="_sender_1p4cm_24",vz="_time_1p4cm_29",yz="_content_1p4cm_34",bz="_state_1p4cm_42",Ga={transcript:pz,message:mz,meta:hz,sender:gz,time:vz,content:yz,state:bz};function _z(t){const s=new Date(t);return Number.isNaN(s.getTime())?t:s.toLocaleTimeString()}function xz({messages:t,loading:s=!1}){return s?a.jsx("div",{className:Ga.state,"data-testid":"stream-transcript-loading",children:"Loading transcript…"}):t.length===0?a.jsx("div",{className:Ga.state,"data-testid":"stream-transcript-empty",children:"No messages yet."}):a.jsx("div",{className:Ga.transcript,"data-testid":"stream-transcript",children:t.map(o=>a.jsxs("div",{className:Ga.message,"data-testid":"stream-transcript-message",children:[a.jsxs("div",{className:Ga.meta,children:[a.jsx("span",{className:Ga.sender,title:o.senderId,children:o.senderId.slice(0,12)}),a.jsx("span",{className:Ga.time,children:_z(o.timestamp)})]}),a.jsx("div",{className:Ga.content,children:o.content})]},o.seq))})}const kz="_panel_i6ltf_1",Sz="_header_i6ltf_24",jz="_title_i6ltf_33",Tz="_closeButton_i6ltf_43",Nz="_body_i6ltf_57",wz="_section_i6ltf_63",Cz="_sectionLabel_i6ltf_67",Ez="_metaRow_i6ltf_76",Az="_metaKey_i6ltf_84",Dz="_metaValue_i6ltf_90",Mz="_subscriberCard_i6ltf_99",Rz="_subscriberHeader_i6ltf_107",Iz="_sessionLink_i6ltf_114",Oz="_badges_i6ltf_132",Bz="_badgeRw_i6ltf_150 _badge_i6ltf_132",Lz="_badgeR_i6ltf_150 _badge_i6ltf_132",zz="_badgeW_i6ltf_162 _badge_i6ltf_132",$z="_badgeAsync_i6ltf_168 _badge_i6ltf_132",Hz="_badgeSync_i6ltf_174 _badge_i6ltf_132",Pz="_badgeDetach_i6ltf_178 _badge_i6ltf_132",Uz="_spawnTag_i6ltf_184 _badge_i6ltf_132",Vz="_fdNumber_i6ltf_189",qz="_emptySubscribers_i6ltf_195",Gz="_metaValueMono_i6ltf_201 _metaValue_i6ltf_90",Fz="_advanced_i6ltf_216",Kz="_advancedSummary_i6ltf_220",He={panel:kz,header:Sz,title:jz,closeButton:Tz,body:Nz,section:wz,sectionLabel:Cz,metaRow:Ez,metaKey:Az,metaValue:Dz,subscriberCard:Mz,subscriberHeader:Rz,sessionLink:Iz,badges:Oz,badgeRw:Bz,badgeR:Lz,badgeW:zz,badgeAsync:$z,badgeSync:Hz,badgeDetach:Pz,spawnTag:Uz,fdNumber:Vz,emptySubscribers:qz,metaValueMono:Gz,advanced:Fz,advancedSummary:Kz},Zz={chatroom:"Chatroom",pipe:"Pipe",channel:"Channel"};function Yz({permission:t}){const s=t==="rw"?He.badgeRw:t==="r"?He.badgeR:He.badgeW;return a.jsx("span",{className:s,children:t})}function Jz({mode:t}){const s=t==="async"?He.badgeAsync:t==="detach"?He.badgeDetach:He.badgeSync;return a.jsx("span",{className:s,children:t})}function Wz({stream:t,messages:s,transcriptLoading:o,onClose:r}){const c=xt();return y.useEffect(()=>{const d=u=>{u.key==="Escape"&&r()};return document.addEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)}},[r]),a.jsxs("div",{className:He.panel,"data-testid":"stream-detail-panel",children:[a.jsxs("div",{className:He.header,children:[a.jsx("h3",{className:He.title,children:t.name}),a.jsx("button",{type:"button",className:He.closeButton,onClick:r,"aria-label":"Close stream details",children:"×"})]}),a.jsxs("div",{className:He.body,children:[a.jsxs("div",{className:He.section,children:[a.jsx("div",{className:He.sectionLabel,children:"Overview"}),a.jsxs("div",{className:He.metaRow,children:[a.jsx("span",{className:He.metaKey,children:"Kind"}),a.jsx("span",{className:He.metaValue,children:Zz[bh(t)]})]}),a.jsxs("div",{className:He.metaRow,children:[a.jsx("span",{className:He.metaKey,children:"Participants"}),a.jsx("span",{className:He.metaValue,children:t.subscriberCount})]}),a.jsxs("div",{className:He.metaRow,children:[a.jsx("span",{className:He.metaKey,children:"Buffered"}),a.jsxs("span",{className:He.metaValue,children:[t.messageBufferDepth," msgs"]})]})]}),a.jsxs("div",{className:He.section,children:[a.jsx("div",{className:He.sectionLabel,children:"Participants"}),t.subscribers.length===0?a.jsx("div",{className:He.emptySubscribers,children:"No active subscribers"}):t.subscribers.map(d=>a.jsxs("div",{className:He.subscriberCard,"data-testid":`subscriber-card-${d.subscriptionId}`,children:[a.jsxs("button",{type:"button",className:He.sessionLink,onClick:()=>{c(gl(d.sessionId))},title:d.sessionId,children:[d.sessionId.slice(0,12),"…"]}),d.createdBySpawn&&a.jsx("span",{className:He.spawnTag,children:"spawn"})]},d.subscriptionId))]}),a.jsxs("div",{className:He.section,children:[a.jsx("div",{className:He.sectionLabel,children:"Conversation"}),a.jsx(xz,{messages:s??[],loading:o??!1})]}),a.jsxs("details",{className:He.advanced,"data-testid":"stream-advanced",children:[a.jsx("summary",{className:He.advancedSummary,children:"Advanced"}),a.jsxs("div",{className:He.metaRow,children:[a.jsx("span",{className:He.metaKey,children:"Stream ID"}),a.jsx("span",{className:He.metaValueMono,children:t.id})]}),t.subscribers.map(d=>a.jsxs("div",{className:He.subscriberCard,children:[a.jsxs("div",{className:He.subscriberHeader,children:[a.jsxs("span",{className:He.fdNumber,children:["fd ",d.fd]}),a.jsxs("span",{className:He.metaValueMono,title:d.subscriptionId,children:[d.subscriptionId.slice(0,12),"…"]})]}),a.jsxs("div",{className:He.badges,children:[a.jsx(Yz,{permission:d.permission}),a.jsx(Jz,{mode:d.deliveryMode})]})]},d.subscriptionId))]})]})]})}const mk="session",_h="stream",u_="messageDot";function Yc(t){return`session:${t}`}function f_(t){return`stream:${t}`}function Xz(t){return{id:t,environmentId:"",runtime:"external",status:"external",prompt:"",startedAt:""}}function Qz(t,s){return t==="detach"?{stroke:s,strokeWidth:1.5,strokeDasharray:"4 4",opacity:.6}:{stroke:s,strokeWidth:1.5}}function e$(t,s){const o=t.permission.includes("w"),r=s.permission.includes("w"),c=t.permission.includes("r"),d=s.permission.includes("r");if(o&&!r&&d)return{source:t,target:s,bidirectional:!1};if(r&&!o&&c)return{source:s,target:t,bidirectional:!1};const u=[t,s].sort((p,m)=>p.sessionId.localeCompare(m.sessionId));return{source:u[0],target:u[1],bidirectional:!0}}function t$(t,s){if(t.length===0)return{nodes:[],edges:[]};const o=new Map(s.map(m=>[m.id,m])),r=new Map,c=new Map,d=[],u=m=>{let g=r.get(m);if(!g){const v=o.get(m);g={kind:"session",session:v??Xz(m),streamCount:0,external:v===void 0},r.set(m,g)}return g};for(const m of t){const g=bh(m);if(g==="pipe"&&m.subscribers.length===2&&m.subscribers[0].sessionId!==m.subscribers[1].sessionId){const[v,b]=m.subscribers;u(v.sessionId).streamCount+=1,u(b.sessionId).streamCount+=1;const{source:_,target:k,bidirectional:S}=e$(v,b);d.push({id:`edge-pipe-${m.id}`,source:Yc(_.sessionId),target:Yc(k.sessionId),type:u_,data:{edgeKind:"pipe",streamId:m.id,permission:S?"rw":_.permission,deliveryMode:_.deliveryMode},style:{stroke:"var(--accent-yellow)",strokeWidth:1.5,strokeDasharray:"6 3"},markerEnd:{type:Ic.ArrowClosed},markerStart:S?{type:Ic.ArrowClosed}:void 0,animated:!1});continue}c.set(m.id,{kind:"stream",stream:m,streamKind:g,ownership:pk(m,o)});for(const v of m.subscribers){u(v.sessionId).streamCount+=1;const b=f_(m.id),_=Yc(v.sessionId),k=v.permission.includes("w"),S=v.permission.includes("r");let j,T,N=!1;k&&S?(j=_,T=b,N=!0):S?(j=b,T=_):(j=_,T=b),d.push({id:`edge-part-${m.id}-${v.subscriptionId}`,source:j,target:T,type:u_,data:{edgeKind:"participation",streamId:m.id,permission:v.permission,deliveryMode:v.deliveryMode},style:Qz(v.deliveryMode,"var(--text-tertiary)"),markerEnd:{type:Ic.ArrowClosed},markerStart:N?{type:Ic.ArrowClosed}:void 0,animated:!1})}}const p=[];for(const[m,g]of r)p.push({id:Yc(m),type:mk,position:{x:0,y:0},data:g});for(const[m,g]of c)p.push({id:f_(m),type:_h,position:{x:0,y:0},data:g});return{nodes:p,edges:d}}const n$=200,s$=64,a$=180,i$=56,o$=40,r$=70;function p_(t){return t===_h?{width:a$,height:i$}:{width:n$,height:s$}}function l$(t){if(t.nodes.length===0)return t;const s=new dd.graphlib.Graph({multigraph:!0});s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:"LR",nodesep:o$,ranksep:r$});for(const r of t.nodes){const{width:c,height:d}=p_(r.type);s.setNode(r.id,{width:c,height:d})}for(const r of t.edges)s.setEdge(r.source,r.target,{},r.id);return dd.layout(s),{nodes:t.nodes.map(r=>{const c=s.node(r.id),{width:d,height:u}=p_(r.type);return{...r,position:{x:c.x-d/2,y:c.y-u/2}}}),edges:t.edges}}function c$(t,s){return y.useMemo(()=>l$(t$(t,s)),[t,s])}const d$="_graphContainer_1uzcp_1",u$="_empty_1uzcp_18",f$="_nodeContent_1uzcp_28",p$="_nodeHeader_1uzcp_38",m$="_nodeTitle_1uzcp_50",h$="_nodeMeta_1uzcp_58",g$="_nodeSubtle_1uzcp_64",v$="_countBadge_1uzcp_69",y$="_sessionNode_1uzcp_81",b$="_sessionAccent_1uzcp_103",_$="_external_1uzcp_109",x$="_streamNode_1uzcp_114",k$="_chatroom_1uzcp_134",S$="_channel_1uzcp_139",j$="_pipe_1uzcp_143",T$="_haloless_1uzcp_147",N$="_selected_1uzcp_153",w$="_kindBadge_1uzcp_158",C$="_handle_1uzcp_172",E$="_messageDot_1uzcp_179",vt={graphContainer:d$,empty:u$,nodeContent:f$,nodeHeader:p$,nodeTitle:m$,nodeMeta:h$,nodeSubtle:g$,countBadge:v$,sessionNode:y$,sessionAccent:b$,external:_$,streamNode:x$,chatroom:k$,channel:S$,pipe:j$,haloless:T$,selected:N$,kindBadge:w$,handle:C$,messageDot:E$};function A$({data:t}){const{session:s,streamCount:o,external:r}=t,c=nk(s.status,r),d=`var(${c.varName})`,u=r?`${vt.sessionNode} ${vt.external}`:vt.sessionNode;return a.jsxs("div",{className:u,"data-testid":`coordination-node-session-${s.id}`,children:[a.jsx(Bo,{type:"target",position:Lo.Left,isConnectable:!1,className:vt.handle}),a.jsx("div",{className:vt.sessionAccent,style:{backgroundColor:d}}),a.jsxs("div",{className:vt.nodeContent,children:[a.jsx("div",{className:vt.nodeHeader,children:a.jsx("span",{className:vt.nodeTitle,children:r?s.id:s.runtime})}),a.jsxs("div",{className:vt.nodeMeta,children:[a.jsx("span",{className:vt.nodeSubtle,style:{color:d},children:c.label}),o>0&&a.jsx("span",{className:vt.countBadge,children:o})]})]}),a.jsx(Bo,{type:"source",position:Lo.Right,isConnectable:!1,className:vt.handle})]})}function D$({data:t,selected:s}){const{stream:o,streamKind:r,ownership:c}=t,d=r==="chatroom"?vt.chatroom:r==="pipe"?vt.pipe:vt.channel,u=[vt.streamNode,d];return c.kind!=="task"&&u.push(vt.haloless),s&&u.push(vt.selected),a.jsxs("div",{className:u.join(" "),"data-testid":`coordination-node-stream-${o.id}`,children:[a.jsx(Bo,{type:"target",position:Lo.Left,isConnectable:!1,className:vt.handle}),a.jsxs("div",{className:vt.nodeContent,children:[a.jsx("div",{className:vt.nodeHeader,children:a.jsx("span",{className:vt.kindBadge,children:r})}),a.jsx("span",{className:vt.nodeTitle,children:o.name}),a.jsxs("span",{className:vt.nodeSubtle,children:[o.subscriberCount," ",o.subscriberCount===1?"subscriber":"subscribers"]})]}),a.jsx(Bo,{type:"source",position:Lo.Right,isConnectable:!1,className:vt.handle})]})}const m_="0.7s",M$=3;function R$(t){const{sourceX:s,sourceY:o,targetX:r,targetY:c,sourcePosition:d,targetPosition:u,markerStart:p,markerEnd:m,style:g,data:v}=t,[b]=F2({sourceX:s,sourceY:o,targetX:r,targetY:c,sourcePosition:d,targetPosition:u}),_=v==null?void 0:v.pulseSeq;return a.jsxs(a.Fragment,{children:[a.jsx(K2,{path:b,markerStart:p,markerEnd:m,style:g}),_!==void 0&&a.jsxs("circle",{r:M$,opacity:0,className:vt.messageDot,"data-testid":"coordination-message-dot",children:[a.jsx("animateMotion",{dur:m_,repeatCount:"1",path:b}),a.jsx("animate",{attributeName:"opacity",dur:m_,repeatCount:"1",values:"0;1;1;0",keyTimes:"0;0.1;0.85;1"})]},_)]})}const Ip="#6b7a8d",I$={[mk]:A$,[_h]:D$},O$={messageDot:R$};function B$({streams:t,sessions:s,selectedStreamId:o,onSelectStream:r,recentMessages:c,resolvedThemeId:d}){const u=c$(t,s),p=y.useMemo(()=>u.edges.map(_=>{var S,j;if(!_.data)return _;const k=(j=(S=c==null?void 0:c[_.data.streamId])==null?void 0:S.at(-1))==null?void 0:j.seq;return k===void 0?_:{..._,data:{..._.data,pulseSeq:k}}}),[u.edges,c]),m=y.useMemo(()=>u.nodes.map(_=>{const k=_.data;return k.kind==="stream"&&k.stream.id===o?{..._,selected:!0}:_}),[u.nodes,o]),g=y.useMemo(()=>{const _=getComputedStyle(document.documentElement),k={};for(const S of FI)k[S]=_.getPropertyValue(S).trim()||Ip;return k},[d]),v=y.useCallback((_,k)=>{const S=k.data;S.kind==="stream"&&r(S.stream.id)},[r]),b=y.useCallback(_=>{const k=_.data;return k.kind==="session"?g[nk(k.session.status,k.external).varName]??Ip:Ip},[g]);return u.nodes.length===0?a.jsx("div",{className:vt.empty,"data-testid":"coordination-graph-empty",children:"No active streams to visualize"}):a.jsx("div",{className:vt.graphContainer,"data-testid":"coordination-graph",children:a.jsxs(L_,{nodes:m,edges:p,nodeTypes:I$,edgeTypes:O$,onNodeClick:v,nodesConnectable:!1,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:2,children:[a.jsx(z_,{variant:$_.Dots,gap:24,size:1,color:"var(--text-disabled)"}),a.jsx(H_,{showInteractive:!1}),a.jsx(P_,{nodeColor:b,maskColor:"var(--bg-overlay)",style:{background:"var(--bg-inset)"}})]})})}function L$({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(Ny.map(d=>[d,[]]));for(const d of t){const u=fl(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 b;if(u==="paused"&&o){const S=o.get(d.id);S==="idle"?b="Needs input":S==="completed"&&(b="Ready to complete")}const _={task:d,isBlocked:p,childCount:g,doneChildCount:v,pausedSubBadge:b},k=c.get(u);k?k.push(_):c.get("not_started").push(_)}for(const d of c.values())d.sort((u,p)=>u.task.sortOrder-p.task.sortOrder);return Ny.map(d=>{const u=Ja(d);return{status:d,label:u.label,style:u,tasks:c.get(d)??[]}})}const z$="_boardContainer_1c4y1_1",$$="_column_1c4y1_17",H$="_columnHeader_1c4y1_34",P$="_columnIcon_1c4y1_47",U$="_columnLabel_1c4y1_52",V$="_columnCount_1c4y1_57",q$="_cardList_1c4y1_67",G$="_emptyPlaceholder_1c4y1_76",F$="_card_1c4y1_67",K$="_cardHeader_1c4y1_107",Z$="_cardStatusIcon_1c4y1_113",Y$="_cardTitle_1c4y1_119",J$="_cardBadges_1c4y1_127",W$="_badge_1c4y1_134",X$="_blockedBadge_1c4y1_146",Q$="_childBadge_1c4y1_151",e9="_depBadge_1c4y1_155",t9="_parentBadge_1c4y1_159",n9="_pausedSubBadge_1c4y1_166",s9="_personaBadge_1c4y1_170",a9="_envBadge_1c4y1_174",i9="_emptyCta_1c4y1_178",o9="_ctaButton_1c4y1_188",r9="_ctaDescription_1c4y1_204",dt={boardContainer:z$,column:$$,columnHeader:H$,columnIcon:P$,columnLabel:U$,columnCount:V$,cardList:q$,emptyPlaceholder:G$,card:F$,cardHeader:K$,cardStatusIcon:Z$,cardTitle:Y$,cardBadges:J$,badge:W$,blockedBadge:X$,childBadge:Q$,depBadge:e9,parentBadge:t9,pausedSubBadge:n9,personaBadge:s9,envBadge:a9,emptyCta:i9,ctaButton:o9,ctaDescription:r9};function l9({workspaceId:t,environmentId:s,tasks:o,sessions:r,personas:c,environments:d}){const u=xt(),p=y.useMemo(()=>o.filter(_=>_.workspaceId===t),[o,t]),m=y.useMemo(()=>new Map(o.map(_=>[_.id,_.status])),[o]),g=y.useMemo(()=>new Map(p.map(_=>[_.id,_])),[p]),v=y.useMemo(()=>{const _=new Map(r.map(C=>[C.id,C])),k=new Map(c.map(C=>[C.id,C])),S=new Map(d.map(C=>[C.id,C])),j=new Map,T=new Map,N=new Map;for(const C of p)if(C.latestSessionId){const D=_.get(C.latestSessionId);if(D){if(j.set(C.id,D.endReason||D.status),D.personaId){const A=k.get(D.personaId);A&&T.set(C.id,A.name)}if(D.environmentId){const A=S.get(D.environmentId);A&&N.set(C.id,A.displayName)}}}return{sessionStatusByTaskId:j,personaNameByTaskId:T,environmentNameByTaskId:N}},[p,r,c,d]),b=y.useMemo(()=>L$({tasks:p,taskStatusById:m,sessionStatusByTaskId:v.sessionStatusByTaskId}),[p,m,v]);return p.length===0?a.jsxs("div",{className:dt.emptyCta,"data-testid":"board-empty-cta",children:[a.jsx("button",{className:dt.ctaButton,onClick:()=>u(Ii(t,void 0,s)),children:"Create Task"}),a.jsx("div",{className:dt.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}):a.jsx("div",{className:dt.boardContainer,"data-testid":"board-container",children:b.map(_=>a.jsxs("section",{className:dt.column,"data-testid":`board-column-${_.status}`,"aria-label":`${_.label}, ${_.tasks.length} ${_.tasks.length===1?"task":"tasks"}`,children:[a.jsxs("div",{className:dt.columnHeader,children:[a.jsx("span",{className:dt.columnIcon,style:{color:_.style.color},children:_.style.icon}),a.jsx("span",{className:dt.columnLabel,children:_.label}),a.jsx("span",{className:dt.columnCount,"data-testid":`board-count-${_.status}`,children:_.tasks.length})]}),a.jsx("div",{className:dt.cardList,children:_.tasks.length===0?a.jsx("div",{className:dt.emptyPlaceholder,children:"No tasks"}):a.jsx(os,{mode:"popLayout",children:_.tasks.map(k=>a.jsx(Ut.div,{layout:!0,initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},children:a.jsx(c9,{boardTask:k,tasksById:g,personaName:v.personaNameByTaskId.get(k.task.id),envName:v.environmentNameByTaskId.get(k.task.id),onClick:()=>u(ls(k.task.id,void 0,t,s))})},k.task.id))})})]},_.status))})}function c9({boardTask:t,tasksById:s,personaName:o,envName:r,onClick:c}){const{task:d,isBlocked:u,childCount:p,doneChildCount:m,pausedSubBadge:g}=t,v=Ja(d.status),b=d.parentTaskId?s.get(d.parentTaskId):void 0;return a.jsxs("div",{className:dt.card,tabIndex:0,role:"button","data-testid":`board-card-${d.id}`,onClick:c,onKeyDown:_=>{(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),c())},children:[a.jsxs("div",{className:dt.cardHeader,children:[a.jsx("span",{className:dt.cardStatusIcon,style:{color:v.color},children:v.icon}),a.jsx("span",{className:dt.cardTitle,children:d.title})]}),a.jsxs("div",{className:dt.cardBadges,children:[b&&a.jsx("span",{className:`${dt.badge} ${dt.parentBadge}`,title:b.title,children:b.title}),p>0&&a.jsxs("span",{className:`${dt.badge} ${dt.childBadge}`,children:[m,"/",p]}),u&&a.jsx("span",{className:`${dt.badge} ${dt.blockedBadge}`,children:"blocked"}),d.dependsOn.length>0&&!u&&a.jsx("span",{className:`${dt.badge} ${dt.depBadge}`,children:"dep"}),g&&a.jsx("span",{className:`${dt.badge} ${dt.pausedSubBadge}`,children:g}),o&&a.jsx("span",{className:`${dt.badge} ${dt.personaBadge}`,children:o}),r&&a.jsx("span",{className:`${dt.badge} ${dt.envBadge}`,children:r})]})]})}const d9="_formContent_ymnez_1",u9="_section_ymnez_13",f9="_label_ymnez_19",p9="_titleInput_ymnez_26",m9="_descriptionTextarea_ymnez_58",h9="_selectField_ymnez_94",g9="_checkboxRow_ymnez_128",v9="_checkboxLabel_ymnez_141",y9="_fieldError_ymnez_146",jt={formContent:d9,section:u9,label:f9,titleInput:p9,descriptionTextarea:m9,selectField:h9,checkboxRow:g9,checkboxLabel:v9,fieldError:y9};function b9(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 _9=100;function x9({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:jt.formContent,children:[a.jsxs("div",{className:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-name",children:"Name"}),a.jsx("input",{id:"ws-name",className:jt.titleInput,type:"text",value:t.name,onChange:m=>p("name",m.target.value),placeholder:"Workspace name",maxLength:_9,autoFocus:u,disabled:d,"data-testid":"workspace-form-name"}),(c==null?void 0:c.name)&&a.jsx("span",{className:jt.fieldError,"data-testid":"workspace-form-error-name",children:c.name})]}),a.jsxs("div",{className:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-description",children:"Description"}),a.jsx("textarea",{id:"ws-description",className:jt.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:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-repo",children:"Repository URL"}),a.jsx("input",{id:"ws-repo",className:jt.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:jt.fieldError,"data-testid":"workspace-form-error-repoUrl",children:c.repoUrl})]}),a.jsxs("div",{className:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-environment",children:"Environment"}),a.jsxs("select",{id:"ws-environment",className:jt.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:jt.fieldError,"data-testid":"workspace-form-error-environmentId",children:c.environmentId})]}),a.jsxs("div",{className:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-persona",children:"Default Persona"}),a.jsxs("select",{id:"ws-persona",className:jt.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:jt.section,children:a.jsxs("label",{className:jt.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:jt.checkboxLabel,children:"Enable worktree isolation"})]})}),a.jsxs("div",{className:jt.section,children:[a.jsx("label",{className:jt.label,htmlFor:"ws-workdir",children:"Working Directory"}),a.jsx("input",{id:"ws-workdir",className:jt.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 hk=y.createContext(void 0),k9=4e3;function S9({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=k9)=>{const g=`toast-${++r.current}`;o(v=>[...v,{id:g,message:u,variant:p,duration:m}])},[]);return a.jsx(hk.Provider,{value:{toasts:s,showToast:d,dismissToast:c},children:t})}function mn(){const t=y.useContext(hk);if(!t)throw new Error("useToast must be used within ToastProvider");return t}const ym="grackle-theme",gk="grackle-prefer-system",vk="(prefers-color-scheme: dark)";let Jr=[],cd;function Op(){cd=void 0;for(const t of Jr)t()}function bm(){return typeof window>"u"?!1:window.matchMedia(vk).matches}function nl(){if(typeof localStorage>"u")return l_;try{const t=localStorage.getItem(ym);if(t!==null&&dk.has(t))return t}catch{}return l_}function kd(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(gk)==="true"}catch{return!1}}function _m(t){return Ld.find(s=>s.variantLightId===t||s.variantDarkId===t)}function yk(t,s){const o=vm(t);if(o!=null&&o.variantDarkId)return s&&o.variantLightId?bm()?o.variantDarkId:o.variantLightId:o.variantDarkId;if(o!=null&&o.hidden&&s){const r=_m(t);if(r!=null&&r.variantLightId&&r.variantDarkId)return bm()?r.variantDarkId:r.variantLightId}return t}function Ao(t,s,o=!1){o&&document.documentElement.classList.add("no-transitions"),document.documentElement.dataset.theme=yk(t,s),o&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove("no-transitions")}))}typeof document<"u"&&Ao(nl(),kd());function j9(){return cd===void 0&&(cd={themeId:nl(),systemDark:bm(),preferSystem:kd()}),cd}function T9(t){return Jr=[...Jr,t],()=>{Jr=Jr.filter(s=>s!==t)}}function N9(){const t=y.useSyncExternalStore(T9,j9),{themeId:s,preferSystem:o}=t,r=yk(s,o),c=y.useCallback(u=>{if(dk.has(u)){try{localStorage.setItem(ym,u)}catch{}Ao(u,kd(),!0),Op()}},[]),d=y.useCallback(u=>{try{localStorage.setItem(gk,u?"true":"false")}catch{}if(u){const p=nl(),m=vm(p);if(m!=null&&m.hidden){const g=_m(p);if(g)try{localStorage.setItem(ym,g.id)}catch{}}}Ao(nl(),u,!0),Op()},[]);return y.useEffect(()=>{Ao(s,o)},[s,o]),y.useEffect(()=>{if(typeof window>"u")return;const u=window.matchMedia(vk),p=()=>{const m=nl(),g=kd();if(g){const v=vm(m);if(v!=null&&v.variantDarkId&&v.variantLightId&&Ao(m,g),v!=null&&v.hidden){const b=_m(m);b!=null&&b.variantDarkId&&b.variantLightId&&Ao(m,g)}}Op()};return u.addEventListener("change",p),()=>{u.removeEventListener("change",p)}},[]),{themeId:s,setTheme:c,resolvedThemeId:r,preferSystem:o,setPreferSystem:d}}const bk=y.createContext(void 0);function w9({children:t}){const s=N9();return a.jsx(bk.Provider,{value:s,children:t})}function xh(){const t=y.useContext(bk);if(!t)throw new Error("useThemeContext must be used within ThemeProvider");return t}const _k=y.createContext(void 0),xk=y.createContext(void 0);function C9({children:t}){const[s,o]=y.useState(void 0),r=y.useCallback(c=>{o(c)},[]);return a.jsx(xk.Provider,{value:r,children:a.jsx(_k.Provider,{value:s,children:t})})}function E9(){return y.useContext(_k)}function A9(){const t=y.useContext(xk);if(t===void 0)throw new Error("useSidebarSetter must be used within a SidebarProvider");return t}const kh=y.createContext(void 0);function pt(){const t=y.useContext(kh);if(!t)throw new Error("useGrackle must be used within GrackleProvider");return t}function kk(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Sk(t,s){return console.warn(`[ws] Malformed "${t}" message: ${s}`),!1}function D9(t){return kk(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")&&(t.toolCallId===void 0||typeof t.toolCallId=="string")&&(t.turnId===void 0||typeof t.turnId=="string")&&(t.serverSeq===void 0||typeof t.serverSeq=="string")}const M9=new Set(["off","subscription","api_key"]),Jc=new Set(["off","on"]);function R9(t){return kk(t)&&M9.has(t.claude)&&Jc.has(t.github)&&Jc.has(t.copilot)&&Jc.has(t.codex)&&Jc.has(t.goose)}function jk(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 Tk(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 Co=5e3;function I9(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 Ai={label:"Home",url:Fo};function O9(t){return t?[Ai,{label:"Settings",url:Ti},{label:t,url:void 0}]:[Ai,{label:"Settings",url:void 0}]}const Nk={label:"Environments",url:zo};function B9(){return[Ai,{label:"Environments",url:void 0}]}function L9(){return[Ai,{label:"New Chat",url:void 0}]}function z9(t){return[Ai,{label:`Session ${t.slice(0,8)}`,url:void 0}]}function $9(t,s,o,r){const c=o.find(u=>u.id===t),d=r.find(u=>u.id===s);return[Ai,Nk,{label:(d==null?void 0:d.displayName)??"Environment",url:$o(s)},{label:(c==null?void 0:c.name)??"Workspace",url:void 0}]}function H9(t,s,o,r,c){const d=I9(t,c),u=c.get(t),p=u==null?void 0:u.workspaceId,m=p?o.find(k=>k.id===p):void 0,g=s??(m==null?void 0:m.linkedEnvironmentIds[0]),v=g?r.find(k=>k.id===g):void 0,b=[Ai];v&&g&&(b.push(Nk),b.push({label:v.displayName,url:$o(g)})),m&&g&&b.push({label:m.name,url:Ci(m.id,g)});for(let k=0;k<d.length-1;k++)b.push({label:d[k].title,url:ls(d[k].id,void 0,p,g)});const _=d[d.length-1];return b.push({label:(_==null?void 0:_.title)??t,url:void 0}),b}function Sh(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 h_(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 P9(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 Bp(t,s,o){return t.toolCallId?t.toolCallId:s?o(s):void 0}function jh(t){const s=new Map;for(const u of t)if(u.raw)try{s.set(u,JSON.parse(u.raw))}catch{}const o=new Map;for(const u of t){if(u.eventType!=="tool_use")continue;const p=Bp(u,s.get(u),h_);if(p)try{const m=JSON.parse(u.content);o.set(p,{tool:m.tool,args:m.args})}catch{}}const r=new Set,d=t.map(u=>{if(u.eventType!=="tool_result")return u;const p=Bp(u,s.get(u),P9);if(!p)return u;const m=o.get(p);if(!m)return u;r.add(p);let g;const v=u.content.trim();if(v.startsWith("{"))try{const b=JSON.parse(v);typeof b.detailedContent=="string"&&(g=b.detailedContent)}catch{}return{...u,toolUseCtx:{...m,detailedResult:g}}}).filter(u=>{if(u.eventType!=="tool_use")return!0;const p=Bp(u,s.get(u),h_);return!(p&&r.has(p))});for(let u=0;u<d.length;u++){if(d[u].eventType!=="tool_use")continue;let p=!1;for(let m=u+1;m<d.length;m++)if(d[m].eventType!=="tool_use"){p=!0;break}p&&(d[u]={...d[u],settled:!0})}return d}function U9(t,s,o){const r=t.filter(m=>m.status==="running"||m.status==="idle"||m.status==="waiting").length,c=wk(s),d=s.filter(m=>xm(m,c)).length,u=s.filter(m=>m.status==="paused"||m.status==="failed"||xm(m,c)).length,p=o.filter(m=>m.status==="disconnected"||m.status==="error").length;return{activeSessions:r,blockedTasks:d,attentionTasks:u,unhealthyEnvironments:p}}function wk(t){const s=new Map;for(const o of t)s.set(o.id,o.status);return s}function xm(t,s){return t.dependsOn.some(o=>s.get(o)!=="complete")}function V9(t,s){var u;const o=new Map;for(const p of s)o.set(p.id,p);const r=wk(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}):xm(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 q9(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 G9(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 As=[{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
|
|
331
|
-
export function verifyToken(req: Request, res: Response, next: NextFunction): void {
|
|
332
|
-
const header = req.headers.authorization;
|
|
333
|
-
if (!header?.startsWith("Bearer ")) {
|
|
334
|
-
res.status(401).json({ error: "Missing token" });
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
|
|
338
|
-
req.user = decoded;
|
|
339
|
-
next();
|
|
340
|
-
}
|
|
341
|
-
\`\`\``,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
|
|
342
|
-
CREATE TABLE audit_log (
|
|
343
|
-
id BIGSERIAL PRIMARY KEY,
|
|
344
|
-
user_id UUID REFERENCES users(id),
|
|
345
|
-
action TEXT NOT NULL,
|
|
346
|
-
entity_type TEXT NOT NULL,
|
|
347
|
-
entity_id TEXT NOT NULL,
|
|
348
|
-
old_value JSONB,
|
|
349
|
-
new_value JSONB,
|
|
350
|
-
ip_address INET,
|
|
351
|
-
created_at TIMESTAMPTZ DEFAULT now()
|
|
352
|
-
);
|
|
353
|
-
\`\`\``,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"}],F9=new Map(As.map(t=>[t.id,t]));function Lp(t){const s=F9.get(t);if(!s)throw new Error(`MOCK_KNOWLEDGE_NODES is missing node "${t}"`);return s}const g_={"kn-auth-flow":{node:Lp("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:Lp("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:Lp("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"}]}},v_=[{id:"stream-planning",name:"jwt-planning-room",selfEcho:!0,subscriberCount:2,messageBufferDepth:3,subscribers:[{subscriptionId:"sub-p1",sessionId:"sess-001",fd:3,permission:"rw",deliveryMode:"async",createdBySpawn:!1},{subscriptionId:"sub-p2",sessionId:"sess-002",fd:4,permission:"r",deliveryMode:"async",createdBySpawn:!0}]},{id:"stream-metrics",name:"rate-limit-metrics",selfEcho:!1,subscriberCount:1,messageBufferDepth:0,subscribers:[{subscriptionId:"sub-m1",sessionId:"sess-004",fd:3,permission:"r",deliveryMode:"sync",createdBySpawn:!1}]},{id:"stream-cli",name:"cli-inspector",selfEcho:!1,subscriberCount:1,messageBufferDepth:1,subscribers:[{subscriptionId:"sub-c1",sessionId:"external-cli-session",fd:5,permission:"rw",deliveryMode:"async",createdBySpawn:!1}]},{id:"stream-lifecycle",name:"lifecycle:sess-001-7f3a",selfEcho:!1,subscriberCount:1,messageBufferDepth:0,subscribers:[{subscriptionId:"sub-l1",sessionId:"sess-001",fd:6,permission:"rw",deliveryMode:"detach",createdBySpawn:!0}]},{id:"stream-pipe",name:"pipe:sess-001-sess-004",selfEcho:!1,subscriberCount:2,messageBufferDepth:0,subscribers:[{subscriptionId:"sub-pp1",sessionId:"sess-001",fd:7,permission:"rw",deliveryMode:"async",createdBySpawn:!1},{subscriptionId:"sub-pp2",sessionId:"sess-004",fd:8,permission:"rw",deliveryMode:"async",createdBySpawn:!0}]},{id:"stream-stdin",name:"stdin:sess-002-9c2e",selfEcho:!1,subscriberCount:1,messageBufferDepth:0,subscribers:[{subscriptionId:"sub-s1",sessionId:"sess-002",fd:9,permission:"w",deliveryMode:"detach",createdBySpawn:!0}]}],K9={"stream-planning":[{streamId:"stream-planning",seq:"01J0000000000000000000MSG1",senderId:"sess-001",content:"Proposing JWT with RS256 + 15-min access tokens.",timestamp:"2026-05-24T18:00:01.000Z"},{streamId:"stream-planning",seq:"01J0000000000000000000MSG2",senderId:"sess-002",content:"Agreed. Refresh tokens rotate on use; store the jti denylist in Redis.",timestamp:"2026-05-24T18:00:07.000Z"},{streamId:"stream-planning",seq:"01J0000000000000000000MSG3",senderId:"sess-001",content:"Ship it. I'll wire the middleware; you take the refresh endpoint.",timestamp:"2026-05-24T18:00:14.000Z"}]},Z9=[{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:""}],Y9=[{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",taskId:"task-001",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",taskId:"task-003",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",taskId:"task-006c",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},{id:"sub_sess-002_toolu_1",environmentId:"env-docker-01",runtime:"subagent",status:"stopped",endReason:"completed",prompt:"Investigate the failing registration test",startedAt:"2026-02-27T07:31:00Z",endedAt:"2026-02-27T07:32:30Z",parentSessionId:"sess-002"}],J9=[{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.
|
|
354
|
-
Project: acme/alpha — Node.js + Express REST API
|
|
355
|
-
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";
|
|
356
|
-
import type { Request, Response, NextFunction } from "express";
|
|
357
|
-
|
|
358
|
-
export function requireAuth(req: Request, res: Response, next: NextFunction): void {
|
|
359
|
-
if (!req.session?.userId) {
|
|
360
|
-
res.status(401).json({ error: "Not authenticated" });
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
next();
|
|
364
|
-
}`,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) {
|
|
365
|
-
src/routes/login.ts:18: req.session.userId = user.id;
|
|
366
|
-
src/routes/login.ts:19: req.session.role = user.role;
|
|
367
|
-
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";
|
|
368
|
-
import bcrypt from "bcrypt";
|
|
369
|
-
import { db } from "../db.js";
|
|
370
|
-
|
|
371
|
-
const router = Router();
|
|
372
|
-
|
|
373
|
-
router.post("/login", async (req, res) => {
|
|
374
|
-
const { email, password } = req.body;
|
|
375
|
-
const user = await db.users.findByEmail(email);
|
|
376
|
-
if (!user || !await bcrypt.compare(password, user.passwordHash)) {
|
|
377
|
-
return res.status(401).json({ error: "Invalid credentials" });
|
|
378
|
-
}
|
|
379
|
-
req.session.userId = user.id;
|
|
380
|
-
req.session.role = user.role;
|
|
381
|
-
res.json({ ok: true });
|
|
382
|
-
});
|
|
383
|
-
|
|
384
|
-
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.
|
|
385
|
-
Project: acme/alpha — Node.js + Express REST API
|
|
386
|
-
Task: Implement auth middleware using JWT tokens
|
|
387
|
-
|
|
388
|
-
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:"user_input",timestamp:"2026-02-27T08:15:03Z",content:"Pick up the **JWT auth migration** from the previous session. A few requirements:\n\n- use `jsonwebtoken`, not `jose`\n- access tokens expire in `24h`\n- store refresh tokens in the DB\n\nMake sure the existing tests still pass."},{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
|
|
389
|
-
src/routes/login.ts
|
|
390
|
-
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
|
|
391
|
-
|
|
392
|
-
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";
|
|
393
|
-
import type { Request, Response, NextFunction } from "express";
|
|
394
|
-
|
|
395
|
-
const JWT_SECRET = process.env.JWT_SECRET || "change-me";
|
|
396
|
-
|
|
397
|
-
export interface JwtPayload {
|
|
398
|
-
userId: string;
|
|
399
|
-
role: string;
|
|
400
|
-
iat: number;
|
|
401
|
-
exp: number;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
export function verifyToken(req: Request, res: Response, next: NextFunction): void {
|
|
405
|
-
const header = req.headers.authorization;
|
|
406
|
-
if (!header?.startsWith("Bearer ")) {
|
|
407
|
-
res.status(401).json({ error: "Missing or malformed token" });
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
|
-
try {
|
|
411
|
-
const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
|
|
412
|
-
req.user = decoded;
|
|
413
|
-
next();
|
|
414
|
-
} catch (err) {
|
|
415
|
-
if (err instanceof jwt.TokenExpiredError) {
|
|
416
|
-
res.status(401).json({ error: "Token expired" });
|
|
417
|
-
} else {
|
|
418
|
-
res.status(403).json({ error: "Invalid token" });
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
`}}),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.
|
|
423
|
-
|
|
424
|
-
The new login flow will:
|
|
425
|
-
1. Validate credentials (unchanged)
|
|
426
|
-
2. Generate a JWT with \`userId\` and \`role\` claims
|
|
427
|
-
3. Return the token in the response body
|
|
428
|
-
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";
|
|
429
|
-
import bcrypt from "bcrypt";
|
|
430
|
-
import jwt from "jsonwebtoken";
|
|
431
|
-
import crypto from "node:crypto";
|
|
432
|
-
import { db } from "../db.js";
|
|
433
|
-
|
|
434
|
-
const JWT_SECRET = process.env.JWT_SECRET || "change-me";
|
|
435
|
-
const ACCESS_TOKEN_EXPIRY = "24h";
|
|
436
|
-
const REFRESH_TOKEN_BYTES = 48;
|
|
437
|
-
|
|
438
|
-
const router = Router();
|
|
439
|
-
|
|
440
|
-
router.post("/login", async (req, res) => {
|
|
441
|
-
const { email, password } = req.body;
|
|
442
|
-
const user = await db.users.findByEmail(email);
|
|
443
|
-
if (!user || !(await bcrypt.compare(password, user.passwordHash))) {
|
|
444
|
-
return res.status(401).json({ error: "Invalid credentials" });
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
const accessToken = jwt.sign(
|
|
448
|
-
{ userId: user.id, role: user.role },
|
|
449
|
-
JWT_SECRET,
|
|
450
|
-
{ expiresIn: ACCESS_TOKEN_EXPIRY },
|
|
451
|
-
);
|
|
452
|
-
|
|
453
|
-
const refreshToken = crypto.randomBytes(REFRESH_TOKEN_BYTES).toString("hex");
|
|
454
|
-
await db.refreshTokens.create({ userId: user.id, token: refreshToken });
|
|
455
|
-
|
|
456
|
-
res.json({ accessToken, refreshToken, expiresIn: ACCESS_TOKEN_EXPIRY });
|
|
457
|
-
});
|
|
458
|
-
|
|
459
|
-
export default router;
|
|
460
|
-
`}}),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
|
|
461
|
-
PASS src/routes/__tests__/protected.test.ts
|
|
462
|
-
FAIL src/middleware/__tests__/auth.test.ts
|
|
463
|
-
x should reject missing session (12ms)
|
|
464
|
-
x should allow valid session (8ms)
|
|
465
|
-
|
|
466
|
-
2 failed, 12 passed, 14 total
|
|
467
|
-
|
|
468
|
-
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.
|
|
469
|
-
|
|
470
|
-
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";
|
|
471
|
-
import jwt from "jsonwebtoken";
|
|
472
|
-
import { verifyToken } from "../auth.js";
|
|
473
|
-
import { createMockReqRes } from "../../test-utils/mock-express.js";
|
|
474
|
-
|
|
475
|
-
const SECRET = "test-secret";
|
|
476
|
-
process.env.JWT_SECRET = SECRET;
|
|
477
|
-
|
|
478
|
-
describe("verifyToken", () => {
|
|
479
|
-
it("should reject requests without Authorization header", () => {
|
|
480
|
-
const { req, res, next } = createMockReqRes();
|
|
481
|
-
verifyToken(req, res, next);
|
|
482
|
-
expect(res.status).toHaveBeenCalledWith(401);
|
|
483
|
-
});
|
|
484
|
-
|
|
485
|
-
it("should reject expired tokens", () => {
|
|
486
|
-
const token = jwt.sign({ userId: "u1", role: "user" }, SECRET, { expiresIn: "-1h" });
|
|
487
|
-
const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
|
|
488
|
-
verifyToken(req, res, next);
|
|
489
|
-
expect(res.status).toHaveBeenCalledWith(401);
|
|
490
|
-
});
|
|
491
|
-
|
|
492
|
-
it("should accept valid tokens and attach user to request", () => {
|
|
493
|
-
const token = jwt.sign({ userId: "u1", role: "admin" }, SECRET, { expiresIn: "1h" });
|
|
494
|
-
const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
|
|
495
|
-
verifyToken(req, res, next);
|
|
496
|
-
expect(next).toHaveBeenCalled();
|
|
497
|
-
expect(req.user).toMatchObject({ userId: "u1", role: "admin" });
|
|
498
|
-
});
|
|
499
|
-
});
|
|
500
|
-
`}}),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
|
|
501
|
-
PASS src/routes/__tests__/protected.test.ts
|
|
502
|
-
PASS src/middleware/__tests__/auth.test.ts
|
|
503
|
-
|
|
504
|
-
Test Suites: 3 passed, 3 total
|
|
505
|
-
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:
|
|
506
|
-
|
|
507
|
-
### Changes made
|
|
508
|
-
|
|
509
|
-
| File | Action |
|
|
510
|
-
|------|--------|
|
|
511
|
-
| \`src/middleware/auth.ts\` | Rewrote to verify JWT Bearer tokens |
|
|
512
|
-
| \`src/routes/login.ts\` | Now issues JWT access + refresh tokens |
|
|
513
|
-
| \`src/routes/protected.ts\` | Updated to read \`req.user\` from JWT payload |
|
|
514
|
-
| \`src/middleware/__tests__/auth.test.ts\` | Updated tests for JWT verification |
|
|
515
|
-
|
|
516
|
-
### Key decisions
|
|
517
|
-
- **Access token expiry**: 24 hours (configurable via \`JWT_SECRET\` env var)
|
|
518
|
-
- **Refresh tokens**: 48-byte random hex, stored in DB
|
|
519
|
-
- **Error handling**: Distinguishes expired tokens (401) from invalid tokens (403)`},{sessionId:"sess-001",eventType:"user_input",timestamp:"2026-02-27T08:15:50Z",content:"Looks great! Two follow-ups:\n\n1. add a `/refresh` endpoint that swaps a refresh token for a new access token\n2. note the token flow in `README.md`"},{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.
|
|
520
|
-
Project: acme/alpha — Node.js + Express REST API
|
|
521
|
-
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";
|
|
522
|
-
import bcrypt from "bcrypt";
|
|
523
|
-
import { db } from "../db.js";
|
|
524
|
-
import { validateEmail, validatePassword } from "../utils/validators.js";
|
|
525
|
-
|
|
526
|
-
const SALT_ROUNDS = 12;
|
|
527
|
-
const router = Router();
|
|
528
|
-
|
|
529
|
-
router.post("/register", async (req, res) => {
|
|
530
|
-
const { name, email, password } = req.body;
|
|
531
|
-
|
|
532
|
-
if (!name || !email || !password) {
|
|
533
|
-
return res.status(400).json({ error: "Missing required fields" });
|
|
534
|
-
}
|
|
535
|
-
if (!validateEmail(email)) {
|
|
536
|
-
return res.status(400).json({ error: "Invalid email format" });
|
|
537
|
-
}
|
|
538
|
-
if (!validatePassword(password)) {
|
|
539
|
-
return res.status(400).json({ error: "Password too weak" });
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
const existing = await db.users.findByEmail(email);
|
|
543
|
-
if (existing) {
|
|
544
|
-
return res.status(409).json({ error: "Email already registered" });
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
const passwordHash = await bcrypt.hash(password, SALT_ROUNDS);
|
|
548
|
-
const user = await db.users.create({ name, email, passwordHash });
|
|
549
|
-
res.status(201).json({ id: user.id, name: user.name, email: user.email });
|
|
550
|
-
});
|
|
551
|
-
|
|
552
|
-
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:
|
|
553
|
-
|
|
554
|
-
1. **Happy path** - valid registration
|
|
555
|
-
2. **Missing fields** - each required field missing
|
|
556
|
-
3. **Invalid email** - malformed email format
|
|
557
|
-
4. **Weak password** - password validation failure
|
|
558
|
-
5. **Duplicate email** - conflict with existing user
|
|
559
|
-
6. **SQL injection** - malicious email input
|
|
560
|
-
7. **XSS payload** - HTML in the name field
|
|
561
|
-
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
|
|
562
|
-
POST /api/register
|
|
563
|
-
✓ should register a valid user (28ms)
|
|
564
|
-
✓ should reject missing name (4ms)
|
|
565
|
-
✓ should reject missing email (3ms)
|
|
566
|
-
✓ should reject missing password (3ms)
|
|
567
|
-
✓ should reject invalid email format (5ms)
|
|
568
|
-
✓ should reject weak password (4ms)
|
|
569
|
-
✓ should reject duplicate email (12ms)
|
|
570
|
-
✓ should sanitize HTML in name field (6ms)
|
|
571
|
-
|
|
572
|
-
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.
|
|
573
|
-
Project: acme/alpha — Node.js + Express + PostgreSQL
|
|
574
|
-
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 (
|
|
575
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
576
|
-
name TEXT NOT NULL,
|
|
577
|
-
email TEXT UNIQUE NOT NULL,
|
|
578
|
-
password_hash TEXT NOT NULL,
|
|
579
|
-
role TEXT DEFAULT 'user',
|
|
580
|
-
created_at TIMESTAMPTZ DEFAULT now(),
|
|
581
|
-
updated_at TIMESTAMPTZ DEFAULT now()
|
|
582
|
-
);
|
|
583
|
-
|
|
584
|
-
CREATE TABLE sessions (
|
|
585
|
-
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
586
|
-
user_id UUID REFERENCES users(id),
|
|
587
|
-
expires_at TIMESTAMPTZ NOT NULL,
|
|
588
|
-
created_at TIMESTAMPTZ DEFAULT now()
|
|
589
|
-
);`,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
|
|
590
|
-
-- Add audit logging and user activity tracking
|
|
591
|
-
|
|
592
|
-
BEGIN;
|
|
593
|
-
|
|
594
|
-
-- 1. Add last_login_at to users
|
|
595
|
-
ALTER TABLE users ADD COLUMN last_login_at TIMESTAMPTZ;
|
|
596
|
-
|
|
597
|
-
-- 2. Index for session cleanup queries
|
|
598
|
-
CREATE INDEX CONCURRENTLY idx_sessions_expires_at ON sessions (expires_at);
|
|
599
|
-
|
|
600
|
-
-- 3. Audit log table
|
|
601
|
-
CREATE TABLE audit_log (
|
|
602
|
-
id BIGSERIAL PRIMARY KEY,
|
|
603
|
-
user_id UUID REFERENCES users(id),
|
|
604
|
-
action TEXT NOT NULL,
|
|
605
|
-
entity_type TEXT NOT NULL,
|
|
606
|
-
entity_id TEXT NOT NULL,
|
|
607
|
-
old_value JSONB,
|
|
608
|
-
new_value JSONB,
|
|
609
|
-
ip_address INET,
|
|
610
|
-
created_at TIMESTAMPTZ DEFAULT now()
|
|
611
|
-
);
|
|
612
|
-
|
|
613
|
-
CREATE INDEX idx_audit_log_user ON audit_log (user_id);
|
|
614
|
-
CREATE INDEX idx_audit_log_entity ON audit_log (entity_type, entity_id);
|
|
615
|
-
CREATE INDEX idx_audit_log_created ON audit_log (created_at);
|
|
616
|
-
|
|
617
|
-
COMMIT;
|
|
618
|
-
`}}),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
|
|
619
|
-
- ALTER TABLE users ADD COLUMN last_login_at
|
|
620
|
-
- CREATE INDEX CONCURRENTLY idx_sessions_expires_at
|
|
621
|
-
- CREATE TABLE audit_log
|
|
622
|
-
- 3 indexes on audit_log
|
|
623
|
-
|
|
624
|
-
WARNING: CREATE INDEX CONCURRENTLY cannot run inside a transaction block.
|
|
625
|
-
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.
|
|
626
|
-
Project: acme/data-pipeline — ETL pipelines for analytics
|
|
627
|
-
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
|
|
628
|
-
src/middleware/error-handler.ts
|
|
629
|
-
src/middleware/logger.ts
|
|
630
|
-
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:
|
|
631
|
-
|
|
632
|
-
- Uses an **in-memory token bucket** per client IP
|
|
633
|
-
- Supports configurable rate (requests/second) and burst size
|
|
634
|
-
- Returns \`429 Too Many Requests\` with \`Retry-After\` header
|
|
635
|
-
- Has a Redis adapter option for multi-instance deployments
|
|
636
|
-
|
|
637
|
-
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.
|
|
638
|
-
Project: acme/alpha — Node.js + Express + PostgreSQL
|
|
639
|
-
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";
|
|
640
|
-
|
|
641
|
-
const pool = new pg.Pool({
|
|
642
|
-
connectionString: process.env.DATABASE_URL,
|
|
643
|
-
max: 20,
|
|
644
|
-
idleTimeoutMillis: 30000,
|
|
645
|
-
});
|
|
646
|
-
|
|
647
|
-
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:
|
|
648
|
-
|
|
649
|
-
1. **A \`PoolManager\` class** that creates and caches per-tenant pools
|
|
650
|
-
2. **Configurable limits** per tenant (max connections, idle timeout)
|
|
651
|
-
3. **Health checks** with automatic pool eviction for unhealthy connections
|
|
652
|
-
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";
|
|
653
|
-
src/routes/users.ts:2:import { pool } from "../db/pool.js";
|
|
654
|
-
src/routes/register.ts:3:import { pool } from "../db/pool.js";
|
|
655
|
-
src/routes/admin.ts:4:import { pool } from "../db/pool.js";
|
|
656
|
-
src/services/billing.ts:2:import { pool } from "../db/pool.js";
|
|
657
|
-
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:
|
|
658
|
-
1. Create a new \`PoolManager\` abstraction
|
|
659
|
-
2. Update all consumers to use \`getPool(tenantId)\` instead of the global pool
|
|
660
|
-
3. Add middleware to extract tenant ID from the request
|
|
661
|
-
|
|
662
|
-
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"}],W9=[{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"}],X9=[{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,injectKnowledge:!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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!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,injectKnowledge:!0,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,injectKnowledge:!0,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,injectKnowledge:!0,defaultPersonaId:"",workpad:"",tokenBudget:0,costBudgetMillicents:0}],Q9=[{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:""}],eH=[{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","knowledge_search","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. Reports issues discovered.",systemPrompt:"You are a meticulous code reviewer. Check for security vulnerabilities, performance issues, and style consistency. Report 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:["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 logs a 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));\nfor (const f of files) {\n const eslintResult = await host.exec("npx", ["eslint", "--fix", f.filename]);\n if (eslintResult.exitCode !== 0) {\n console.log(`Lint issues in ${f.filename}: ${eslintResult.stderr}`);\n }\n const prettierResult = await host.exec("npx", ["prettier", "--write", f.filename]);\n if (prettierResult.exitCode !== 0) {\n console.log(`Prettier issues in ${f.filename}: ${prettierResult.stderr}`);\n }\n}\nconsole.log(`Ran ESLint and Prettier on ${files.length} files`);',allowedMcpTools:[]}],tH={"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 Oe(t){return new Date(Date.now()+t).toISOString()}const y_=[{label:"API Refactor",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Oe(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Oe(600),content:"I'll start by finding all API route files that need refactoring."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(1600),content:`src/routes/users.ts
|
|
663
|
-
src/routes/auth.ts
|
|
664
|
-
src/routes/billing.ts
|
|
665
|
-
src/routes/admin.ts
|
|
666
|
-
src/routes/health.ts`,raw:JSON.stringify({tool_use_id:"stream-a-01"})}},{delayMs:2200,event:{eventType:"text",timestamp:Oe(2200),content:`Found 5 route files. Let me refactor users.ts to use Express Router with a middleware chain.
|
|
667
|
-
|
|
668
|
-
\`\`\`typescript
|
|
669
|
-
const router = Router();
|
|
670
|
-
router.use(authenticate);
|
|
671
|
-
router.use(validateBody);
|
|
672
|
-
|
|
673
|
-
router.get("/", listUsers);
|
|
674
|
-
router.post("/", createUser);
|
|
675
|
-
router.get("/:id", getUser);
|
|
676
|
-
router.put("/:id", updateUser);
|
|
677
|
-
router.delete("/:id", deleteUser);
|
|
678
|
-
\`\`\``}},{delayMs:3200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(4e3),content:` PASS src/routes/__tests__/users.test.ts
|
|
679
|
-
PASS src/routes/__tests__/auth.test.ts
|
|
680
|
-
PASS src/routes/__tests__/billing.test.ts
|
|
681
|
-
|
|
682
|
-
Test Suites: 3 passed, 3 total
|
|
683
|
-
Tests: 22 passed, 22 total`,raw:JSON.stringify({tool_use_id:"stream-a-02"})}},{delayMs:4500,event:{eventType:"usage",timestamp:Oe(4500),content:JSON.stringify({input_tokens:28400,output_tokens:7200,cost_millicents:15e3})}},{delayMs:5e3,event:{eventType:"text",timestamp:Oe(5e3),content:"All 22 tests pass. The route refactoring is complete."}},{delayMs:5500,event:{eventType:"status",timestamp:Oe(5500),content:"completed"}}]},{label:"Database Migration",pauseForInput:!0,pauseAfterStep:4,steps:[{delayMs:0,event:{eventType:"status",timestamp:Oe(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Oe(600),content:"Scanning the current database schema to plan the migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(1800),content:`CREATE TABLE users (
|
|
684
|
-
id UUID PRIMARY KEY,
|
|
685
|
-
name TEXT NOT NULL,
|
|
686
|
-
email TEXT UNIQUE NOT NULL,
|
|
687
|
-
created_at TIMESTAMPTZ DEFAULT now()
|
|
688
|
-
);
|
|
689
|
-
|
|
690
|
-
CREATE TABLE sessions (
|
|
691
|
-
id UUID PRIMARY KEY,
|
|
692
|
-
user_id UUID REFERENCES users(id),
|
|
693
|
-
expires_at TIMESTAMPTZ NOT NULL
|
|
694
|
-
);`,raw:JSON.stringify({tool_use_id:"stream-b-01"})}},{delayMs:2600,event:{eventType:"text",timestamp:Oe(2600),content:`I found the tables to modify:
|
|
695
|
-
- **users**: add column \`last_login_at\`
|
|
696
|
-
- **sessions**: add index on \`expires_at\`
|
|
697
|
-
- **audit_log**: new table
|
|
698
|
-
|
|
699
|
-
This migration will add a NOT NULL column to the \`users\` table. The table has **50,000+ rows** which may lock the table briefly.
|
|
700
|
-
|
|
701
|
-
Please confirm to proceed.`}}],resumeSteps:[{delayMs:500,event:{eventType:"text",timestamp:Oe(0),content:"Proceeding with migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(1700),content:`Applying 002_add_last_login.sql... done
|
|
702
|
-
Applying 003_sessions_index.sql... done
|
|
703
|
-
Applying 004_audit_log.sql... done
|
|
704
|
-
|
|
705
|
-
3 migrations applied successfully.`,raw:JSON.stringify({tool_use_id:"stream-b-02"})}},{delayMs:2800,event:{eventType:"text",timestamp:Oe(2300),content:"All 3 migrations applied successfully. The `audit_log` table is ready."}},{delayMs:3200,event:{eventType:"status",timestamp:Oe(2700),content:"completed"}}]},{label:"Test Writer",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Oe(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Oe(600),content:"I'll generate tests for `src/services/billing.ts`. Let me read the implementation first."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(1800),content:`import { StripeClient } from "./stripe-client.js";
|
|
706
|
-
import type { Invoice, LineItem } from "../types/billing.js";
|
|
707
|
-
|
|
708
|
-
export class BillingService {
|
|
709
|
-
constructor(private stripe: StripeClient) {}
|
|
710
|
-
|
|
711
|
-
async calculateMonthlyTotal(userId: string): Promise<number> {
|
|
712
|
-
const invoices = await this.stripe.listInvoices(userId);
|
|
713
|
-
return invoices.reduce((sum, inv) => sum + inv.total, 0);
|
|
714
|
-
}
|
|
715
|
-
}`,raw:JSON.stringify({tool_use_id:"stream-c-01"})}},{delayMs:2400,event:{eventType:"text",timestamp:Oe(2400),content:"The billing service imports from `./stripe-client.js`. Let me check if that module exists."}},{delayMs:2800,event:{eventType:"tool_use",timestamp:Oe(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:Oe(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:Oe(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:Oe(4e3),content:"failed"}}]},{label:"Fix Auth Bug",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Oe(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Oe(600),content:"Let me investigate the authentication bug..."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Oe(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:Oe(1800),content:`import jwt from "jsonwebtoken";
|
|
716
|
-
import type { Request, Response, NextFunction } from "express";
|
|
717
|
-
|
|
718
|
-
const JWT_SECRET = process.env.JWT_SECRET || "change-me";
|
|
719
|
-
|
|
720
|
-
export function verifyToken(req: Request, res: Response, next: NextFunction): void {
|
|
721
|
-
const header = req.headers.authorization;
|
|
722
|
-
if (!header?.startsWith("Bearer ")) {
|
|
723
|
-
res.status(401).json({ error: "Missing token" });
|
|
724
|
-
return;
|
|
725
|
-
}
|
|
726
|
-
try {
|
|
727
|
-
const decoded = jwt.verify(header.slice(7), JWT_SECRET);
|
|
728
|
-
if (decoded.exp > Date.now() / 1000) {
|
|
729
|
-
res.status(403).json({ error: "Token expired" });
|
|
730
|
-
return;
|
|
731
|
-
}
|
|
732
|
-
req.user = decoded;
|
|
733
|
-
next();
|
|
734
|
-
} catch {
|
|
735
|
-
res.status(403).json({ error: "Invalid token" });
|
|
736
|
-
}
|
|
737
|
-
}`,raw:JSON.stringify({tool_use_id:"tool-mock-001",is_error:!1})}},{delayMs:2600,event:{eventType:"text",timestamp:Oe(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:Oe(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:Oe(4e3),content:"File updated successfully",raw:JSON.stringify({tool_use_id:"tool-mock-002",is_error:!1})}},{delayMs:4600,event:{eventType:"tool_use",timestamp:Oe(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:Oe(5800),content:`[exit 0] > jest --grep auth
|
|
738
|
-
|
|
739
|
-
PASS src/auth.test.ts
|
|
740
|
-
✓ validates JWT token (12ms)
|
|
741
|
-
✓ rejects expired token (3ms)
|
|
742
|
-
✓ handles missing header (1ms)
|
|
743
|
-
|
|
744
|
-
Tests: 3 passed, 3 total
|
|
745
|
-
Time: 1.234s`,raw:JSON.stringify({tool_use_id:"tool-mock-003",is_error:!1})}},{delayMs:6400,event:{eventType:"tool_use",timestamp:Oe(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:Oe(7e3),content:`src/middleware/auth.ts:14: if (decoded.exp < Date.now() / 1000) {
|
|
746
|
-
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:Oe(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:Oe(8400),content:JSON.stringify({input_tokens:42600,output_tokens:1850,cost_millicents:12e3})}},{delayMs:8800,event:{eventType:"status",timestamp:Oe(8800),content:"completed"}}]}],ss={onConnect:async()=>{},onDisconnect:()=>{},handleEvent:()=>!1};function b_(t){return t?v_:v_.filter(s=>!G7.some(o=>s.name.startsWith(o)))}const __=400;function nH({children:t}){const[s,o]=y.useState(Z9),[r,c]=y.useState(Y9),[d,u]=y.useState(()=>b_(!1)),[p,m]=y.useState(J9),[g,v]=y.useState(void 0),[b,_]=y.useState(W9),[k,S]=y.useState(""),[j,T]=y.useState(X9),[N,C]=y.useState(Q9),[D,A]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),[E,R]=y.useState(eH),[B,M]=y.useState([]),[$]=y.useState(tH),[Y,U]=y.useState(""),[X,te]=y.useState(As),[G,ne]=y.useState(Fa),[H,O]=y.useState(void 0),[q,ge]=y.useState(void 0),[se,ce]=y.useState(""),me=y.useRef(void 0),xe=y.useRef(0),De=y.useRef(0),ot=y.useRef(new Set),bt=y.useRef(new Map),lt=y.useRef(j);lt.current=j;const Pe=y.useRef(new Map),ke=y.useRef(new Map),ct=y.useCallback(V=>(xe.current+=1,`mock-${V}-${String(xe.current).padStart(3,"0")}`),[]),ue=y.useCallback(()=>{const V=y_[De.current%y_.length];return De.current+=1,V},[]),Ie=y.useCallback((V,ie,de)=>{const pe=setTimeout(()=>{var ye;ot.current.delete(pe),de&&((ye=bt.current.get(de))==null||ye.delete(pe)),V()},ie);ot.current.add(pe),de&&(bt.current.has(de)||bt.current.set(de,new Set),bt.current.get(de).add(pe))},[]),ee=y.useCallback(V=>{const ie=bt.current.get(V);ie&&(ie.forEach(de=>{clearTimeout(de),ot.current.delete(de)}),bt.current.delete(V))},[]),nt=y.useCallback((V,ie,de)=>{c(pe=>pe.map(ye=>ye.id===V?{...ye,status:ie,...de!==void 0?{endReason:de}:{}}:ye))},[]),le=y.useCallback(V=>{m(ie=>[...ie,V])},[]),ve=y.useCallback((V,ie,de)=>{ie.forEach((pe,ye)=>{Ie(()=>{const tt={sessionId:V,...pe.event,timestamp:new Date().toISOString()};if(le(tt),pe.event.eventType==="status"){const je=jk(pe.event.content),Le=Tk(pe.event.content);nt(V,je,Le)}ye===ie.length-1&&de&&de()},pe.delayMs,V)})},[Ie,le,nt]),et=y.useCallback(async(V,ie,de,pe)=>{console.log("[MockGrackle] spawn",{environmentId:V,prompt:ie,runtime:pe});const ye=ct("sess"),tt={id:ye,environmentId:V,runtime:pe||"claude-code",status:"running",prompt:ie,startedAt:new Date().toISOString()};c(Le=>[...Le,tt]),v(ye);const je=ue();if(console.log(`[MockGrackle] Playing scenario: ${je.label}`),je.pauseForInput){const Le=je.pauseAfterStep??je.steps.length-1,Ue=je.steps.slice(0,Le+1),Mt=Ue.length>0?Ue[Ue.length-1].delayMs:0;ve(ye,Ue),Ie(()=>{nt(ye,"idle"),le({sessionId:ye,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},Mt+__,ye),je.resumeSteps&&Pe.current.set(ye,je.resumeSteps)}else ve(ye,je.steps)},[ct,ue,ve,Ie,nt,le]),on=y.useCallback(async V=>{console.log("[MockGrackle] kill",V),ee(V),Pe.current.delete(V),nt(V,"stopped","killed"),le({sessionId:V,eventType:"status",timestamp:new Date().toISOString(),content:"killed"}),T(ie=>ie.map(de=>de.latestSessionId===V&&de.status==="working"?{...de,status:"not_started"}:de))},[ee,nt,le]),xs=y.useCallback(async V=>{console.log("[MockGrackle] stopGraceful",V),ee(V),Pe.current.delete(V),nt(V,"stopped","terminated"),le({sessionId:V,eventType:"status",timestamp:new Date().toISOString(),content:"terminated"}),T(ie=>ie.map(de=>de.latestSessionId===V&&de.status==="working"?{...de,status:"not_started"}:de))},[ee,nt,le]),ds=y.useCallback(()=>{console.log("[MockGrackle] refresh")},[]),zs=y.useCallback(async V=>{console.log("[MockGrackle] loadSessionEvents",V)},[]),ha=y.useCallback(()=>{console.log("[MockGrackle] clearEvents"),m([])},[]),Bi=y.useCallback(async(V,ie,de,pe,ye,tt,je,Le,Ue)=>{console.log("[MockGrackle] createWorkspace",{name:V,description:ie});const Mt={id:ct("proj"),name:V,description:ie||"",repoUrl:de||"",linkedEnvironmentIds:pe?[pe]:[],status:"active",workingDirectory:je||"",useWorktrees:tt??!0,defaultPersonaId:ye||"",tokenBudget:0,costBudgetMillicents:0,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};_(qe=>[...qe,Mt]),Le&&Le(Mt)},[ct]),Xt=y.useCallback(async V=>{console.log("[MockGrackle] archiveWorkspace",V),_(ie=>ie.map(de=>de.id===V?{...de,status:"archived"}:de))},[]),ei=y.useCallback(async V=>{console.log("[MockGrackle] loadTasks",V)},[]),ti=y.useCallback(async(V,ie,de,pe,ye,tt,je,Le,Ue,Mt)=>{console.log("[MockGrackle] createTask",{workspaceId:V,title:ie,parentTaskId:ye}),T(qe=>{const Cn=qe.filter(js=>js.workspaceId===V).reduce((js,Ts)=>Math.max(js,Ts.sortOrder),0),_t=ye?qe.find(js=>js.id===ye):void 0;if(ye&&!_t)return console.warn("[MockGrackle] Parent task not found:",ye),qe;if(_t&&!_t.canDecompose)return console.warn("[MockGrackle] Parent task does not have decomposition rights:",ye),qe;const Ss=_t?_t.depth+1:0,Hi={id:ct("task"),workspaceId:V,title:ie,description:de||"",status:"not_started",branch:"",latestSessionId:"",dependsOn:pe||[],reviewNotes:void 0,sortOrder:Cn+1,createdAt:new Date().toISOString(),parentTaskId:ye||"",depth:Ss,childTaskIds:[],canDecompose:je??!ye,injectKnowledge:Le??!0,defaultPersonaId:tt||"",workpad:"",tokenBudget:0,costBudgetMillicents:0};return[...qe,Hi]}),Ue&&Ue()},[ct]),ga=y.useCallback(async(V,ie,de,pe)=>{var Mt;console.log("[MockGrackle] startTask",{taskId:V});const ye=lt.current.find(qe=>qe.id===V),tt=(ye==null?void 0:ye.title)??"",je=ct("sess"),Le={id:je,environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:tt||V,startedAt:new Date().toISOString()};c(qe=>[...qe,Le]),T(qe=>qe.map(rn=>rn.id===V?{...rn,status:"working",latestSessionId:je,branch:`mock/${V.slice(0,8)}`}:rn));const Ue=ue();if(console.log(`[MockGrackle] Playing task scenario: ${Ue.label}`),Ue.pauseForInput){const qe=Ue.pauseAfterStep??Ue.steps.length-1,rn=Ue.steps.slice(0,qe+1),Cn=rn.length>0?rn[rn.length-1].delayMs:0;if(ve(je,rn),Ie(()=>{nt(je,"idle"),le({sessionId:je,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},Cn+__,je),Ue.resumeSteps){const _t=[...Ue.resumeSteps];Pe.current.set(je,_t);const Ss=_t.reduce((Hi,js)=>Math.max(Hi,js.delayMs),0);ke.current.set(je,{taskId:V,delayAfterResume:Ss+200})}}else{const qe=Ue.steps.length>0?Ue.steps[Ue.steps.length-1].delayMs:0;ve(je,Ue.steps);const rn=(Mt=Ue.steps[Ue.steps.length-1])==null?void 0:Mt.event.content;Ie(()=>{rn==="completed"?T(Cn=>Cn.map(_t=>_t.id===V&&_t.status==="working"?{..._t,status:"paused"}:_t)):rn==="failed"&&T(Cn=>Cn.map(_t=>_t.id===V&&_t.status==="working"?{..._t,status:"failed"}:_t))},qe+100,je)}},[ct,ue,ve,Ie,nt,le]),$s=y.useCallback(async(V,ie)=>{console.log("[MockGrackle] sendInput",{sessionId:V,text:ie}),le({sessionId:V,eventType:"output",timestamp:new Date().toISOString(),content:`User input: ${ie}`}),nt(V,"running"),le({sessionId:V,eventType:"status",timestamp:new Date().toISOString(),content:"running"});const de=Pe.current.get(V);if(de)Pe.current.delete(V),ve(V,de);else{const ye=[{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"}}];ve(V,ye)}const pe=ke.current.get(V);pe&&(ke.current.delete(V),Ie(()=>{T(ye=>ye.map(tt=>tt.id===pe.taskId&&tt.status==="working"?{...tt,status:"paused"}:tt))},pe.delayAfterResume,V))},[le,nt,ve,Ie]),ks=y.useCallback(async V=>{console.log("[MockGrackle] completeTask",V),T(ie=>ie.map(de=>de.id===V?{...de,status:"complete"}:de))},[]),va=y.useCallback(async V=>{console.log("[MockGrackle] resumeTask",V)},[]),we=y.useCallback(async(V,ie,de,pe,ye)=>{console.log("[MockGrackle] updateTask",{taskId:V,title:ie}),T(tt=>tt.map(je=>je.id===V?{...je,title:ie.trim()||je.title,description:de,dependsOn:pe,...ye!==void 0?{defaultPersonaId:ye}:{}}:je))},[]),Ve=y.useCallback(async V=>{console.log("[MockGrackle] deleteTask",V),T(ie=>ie.filter(de=>de.id!==V))},[]),Qt=y.useCallback(async()=>{console.log("[MockGrackle] loadEnvironments")},[]),Ct=y.useCallback(async(V,ie,de)=>{console.log("[MockGrackle] addEnvironment",{displayName:V,adapterType:ie,adapterConfig:de})},[]),vn=y.useCallback(async(V,ie)=>{console.log("[MockGrackle] updateEnvironment",{environmentId:V,...ie}),o(de=>de.map(pe=>pe.id!==V?pe:{...pe,...ie.displayName!==void 0?{displayName:ie.displayName}:{},...ie.adapterConfig!==void 0?{adapterConfig:JSON.stringify(ie.adapterConfig)}:{}}))},[]),en=y.useCallback(async()=>{console.log("[MockGrackle] loadTokens")},[]),Li=y.useCallback(async(V,ie,de,pe,ye)=>{console.log("[MockGrackle] setToken",{name:V,tokenType:de}),C(tt=>[...tt.filter(Le=>Le.name!==V),{name:V,tokenType:de,envVar:pe,filePath:ye,expiresAt:""}])},[]),zi=y.useCallback(async V=>{console.log("[MockGrackle] deleteToken",V),C(ie=>ie.filter(de=>de.name!==V))},[]),$i=y.useCallback(async V=>{console.log("[MockGrackle] updateCredentialProviders",V),A(V)},[]);y.useEffect(()=>()=>{ot.current.forEach(clearTimeout),ot.current.clear()},[]);const ya=y.useMemo(()=>({connectionStatus:"connected",environments:{environments:s,environmentsLoading:!1,provisionStatus:{},operationError:"",clearOperationError:()=>{},loadEnvironments:Qt,addEnvironment:Ct,updateEnvironment:vn,provisionEnvironment:async(V,ie)=>{},stopEnvironment:async()=>{},removeEnvironment:async()=>{},domainHook:ss},sessions:{sessions:r,sessionsLoading:!1,events:p,eventsDropped:0,lastSpawnedId:g,taskSessions:$,spawn:et,sendInput:$s,kill:on,stopGraceful:xs,loadSessionEvents:zs,clearEvents:ha,loadTaskSessions:async V=>{console.log("[MockGrackle] loadTaskSessions",V)},domainHook:ss},workspaces:{workspaces:b,workspacesLoading:!1,workspaceCreating:!1,loadWorkspaces:async()=>{console.log("[MockGrackle] loadWorkspaces")},createWorkspace:Bi,archiveWorkspace:Xt,updateWorkspace:async(V,ie)=>{console.log("[MockGrackle] updateWorkspace",{workspaceId:V,...ie}),_(de=>de.map(pe=>pe.id!==V?pe:{...pe,...ie.name!==void 0?{name:ie.name}:{},...ie.description!==void 0?{description:ie.description}:{},...ie.repoUrl!==void 0?{repoUrl:ie.repoUrl}:{},...ie.environmentId!==void 0?{environmentId:ie.environmentId}:{},...ie.workingDirectory!==void 0?{workingDirectory:ie.workingDirectory}:{},...ie.useWorktrees!==void 0?{useWorktrees:ie.useWorktrees}:{},...ie.defaultPersonaId!==void 0?{defaultPersonaId:ie.defaultPersonaId}:{},updatedAt:new Date().toISOString()}))},linkEnvironment:async(V,ie)=>{if(console.log("[MockGrackle] linkEnvironment",{workspaceId:V,environmentId:ie}),ie==="error-env"){S("Failed to link environment");return}S(""),_(de=>de.map(pe=>pe.id!==V||pe.linkedEnvironmentIds.includes(ie)?pe:{...pe,linkedEnvironmentIds:[...pe.linkedEnvironmentIds,ie]}))},unlinkEnvironment:async(V,ie)=>{if(console.log("[MockGrackle] unlinkEnvironment",{workspaceId:V,environmentId:ie}),ie==="error-env"){S("Failed to unlink environment");return}S(""),_(de=>de.map(pe=>pe.id!==V?pe:{...pe,linkedEnvironmentIds:pe.linkedEnvironmentIds.filter(ye=>ye!==ie)}))},linkOperationError:k,clearLinkOperationError:()=>{S("")},domainHook:ss},tasks:{tasks:j,tasksLoading:!1,taskStartingId:void 0,loadTasks:ei,loadAllTasks:async()=>{console.log("[MockGrackle] loadAllTasks")},createTask:ti,startTask:ga,stopTask:async V=>{console.log("[MockGrackle] stopTask",{taskId:V}),await ks(V)},completeTask:ks,resumeTask:va,updateTask:we,deleteTask:Ve,domainHook:ss},tokens:{tokens:N,tokensLoading:!1,loadTokens:en,setToken:Li,deleteToken:zi,domainHook:ss},credentials:{credentialProviders:D,credentialsLoading:!1,updateCredentialProviders:$i,domainHook:ss},codespaces:{codespaces:[],codespaceError:"",codespaceListError:"",codespaceCreating:!1,listCodespaces:async()=>{},createCodespace:async()=>{},domainHook:ss},dockerContainers:{dockerContainers:[],dockerContainersError:"",listDockerContainers:async()=>{},domainHook:ss},personas:{personas:E,personasLoading:!1,createPersona:async(V,ie,de,pe,ye,tt,je,Le,Ue)=>{console.log("[MockGrackle] createPersona",{name:V});const Mt={id:`mock-persona-${Date.now()}`,name:V,description:ie,systemPrompt:de,toolConfig:"{}",runtime:pe??"claude-code",model:ye||"",maxTurns:tt||0,mcpServers:"[]",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),type:je||"agent",script:Le||"",allowedMcpTools:Ue||[]};return R(qe=>[...qe,Mt]),Mt},updatePersona:async(V,ie,de,pe,ye,tt,je,Le,Ue,Mt)=>{console.log("[MockGrackle] updatePersona",{personaId:V,name:ie});const qe=E.find(_t=>_t.id===V);if(!qe)throw new Error(`Persona not found: ${V}`);const rn=new Date().toISOString(),Cn={...qe,...ie!==void 0?{name:ie}:{},...de!==void 0?{description:de}:{},...pe!==void 0?{systemPrompt:pe}:{},...ye!==void 0?{runtime:ye}:{},...tt!==void 0?{model:tt}:{},...je!==void 0?{maxTurns:je}:{},...Le!==void 0?{type:Le}:{},...Ue!==void 0?{script:Ue}:{},...Mt!==void 0?{allowedMcpTools:Mt}:{},updatedAt:rn};return R(_t=>_t.map(Ss=>Ss.id===V?Cn:Ss)),Cn},deletePersona:async V=>{console.log("[MockGrackle] deletePersona",V),R(ie=>ie.filter(de=>de.id!==V))},domainHook:ss},schedules:{schedules:B,schedulesLoading:!1,createSchedule:async(V,ie,de,pe,ye)=>{console.log("[MockGrackle] createSchedule",{title:V});const tt={id:`mock-schedule-${Date.now()}`,title:V,description:ie,scheduleExpression:de,personaId:pe,workspaceId:ye??"",parentTaskId:"",enabled:!0,lastRunAt:"",nextRunAt:new Date(Date.now()+6e4).toISOString(),runCount:0,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return M(je=>[...je,tt]),tt},updateSchedule:async(V,ie)=>{console.log("[MockGrackle] updateSchedule",{scheduleId:V,fields:ie});let de;if(M(pe=>pe.map(ye=>ye.id!==V?ye:(de={...ye,...ie,updatedAt:new Date().toISOString()},de))),!de)throw new Error(`Schedule not found: ${V}`);return de},deleteSchedule:async V=>{console.log("[MockGrackle] deleteSchedule",V),M(ie=>ie.filter(de=>de.id!==V))},domainHook:ss},streams:{streams:d,streamsLoading:!1,streamsLoadedOnce:!0,streamsLoadError:!1,loadStreams:async(V=!1)=>{u(b_(V))},liveMessages:K9,loadTranscript:async()=>{},handleStreamMessage:()=>{},domainHook:ss},knowledge:{graphData:{nodes:X,links:G},selectedNode:H,loading:!1,loadError:void 0,selectedId:q,searchQuery:se,search:async V=>{if(console.log("[MockGrackle] knowledge.search",V),!V.trim()){ce(V);return}ce(V);const ie=me.current,de=ie?As.filter(je=>!je.workspaceId||je.workspaceId===ie):As,pe=V.toLowerCase(),ye=de.filter(je=>{var Le,Ue,Mt;return je.label.toLowerCase().includes(pe)||((Le=je.content)==null?void 0:Le.toLowerCase().includes(pe))||((Ue=je.tags)==null?void 0:Ue.some(qe=>qe.toLowerCase().includes(pe)))||((Mt=je.category)==null?void 0:Mt.toLowerCase().includes(pe))});te(ye);const tt=new Set(ye.map(je=>je.id));ne(Fa.filter(je=>tt.has(je.source)&&tt.has(je.target))),ge(void 0),O(void 0)},clearSearch:()=>{console.log("[MockGrackle] knowledge.clearSearch"),ce("");const V=me.current,ie=V?As.filter(pe=>!pe.workspaceId||pe.workspaceId===V):As;te(ie);const de=new Set(ie.map(pe=>pe.id));ne(Fa.filter(pe=>de.has(pe.source)&&de.has(pe.target)))},selectNode:async V=>{console.log("[MockGrackle] knowledge.selectNode",V),ge(V);const ie=V in g_?g_[V]:void 0;if(ie)O(ie);else{const de=As.find(pe=>pe.id===V);if(de){const pe=Fa.filter(ye=>ye.source===V||ye.target===V).map(ye=>({fromId:ye.source,toId:ye.target,type:ye.type}));O({node:de,edges:pe})}}},clearSelection:()=>{console.log("[MockGrackle] knowledge.clearSelection"),ge(void 0),O(void 0)},expandNode:async V=>{console.log("[MockGrackle] knowledge.expandNode",V),te(ie=>{const de=new Set(ie.map(Le=>Le.id)),pe=Fa.filter(Le=>Le.source===V||Le.target===V),ye=new Set;for(const Le of pe)de.has(Le.source)||ye.add(Le.source),de.has(Le.target)||ye.add(Le.target);if(ye.size===0)return ie;const tt=As.filter(Le=>ye.has(Le.id)),je=new Set([...de,...ye]);return ne(Le=>{const Ue=new Set(Le.map(qe=>`${qe.source}|${qe.target}|${qe.type}`)),Mt=Fa.filter(qe=>je.has(qe.source)&&je.has(qe.target)&&!Ue.has(`${qe.source}|${qe.target}|${qe.type}`));return Mt.length>0?[...Le,...Mt]:Le}),[...ie,...tt]})},loadRecent:async V=>{if(console.log("[MockGrackle] knowledge.loadRecent",V),me.current=V,V){const ie=As.filter(pe=>!pe.workspaceId||pe.workspaceId===V);te(ie);const de=new Set(ie.map(pe=>pe.id));ne(Fa.filter(pe=>de.has(pe.source)&&de.has(pe.target)))}else te(As),ne(Fa);ce("")},handleEvent:()=>!1,domainHook:ss},githubAccounts:{githubAccounts:[],githubAccountsLoading:!1,loadGitHubAccounts:async()=>{console.log("[MockGrackle] loadGitHubAccounts")},addGitHubAccount:async(V,ie,de,pe)=>{console.log("[MockGrackle] addGitHubAccount",V)},updateGitHubAccount:async(V,ie)=>{console.log("[MockGrackle] updateGitHubAccount",V,ie)},removeGitHubAccount:async V=>{console.log("[MockGrackle] removeGitHubAccount",V)},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(V,ie)=>{console.log("[MockGrackle] setPluginEnabled",V,ie)}},appDefaultPersonaId:Y,setAppDefaultPersonaId:async V=>{console.log("[MockGrackle] setAppDefaultPersonaId",V),U(V)},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(V,ie)=>{console.log(`[MockGrackle] loadUsage(${V}, ${ie})`)},refresh:ds}),[s,r,d,p,g,$,b,k,j,N,D,E,B,Y,X,G,H,q,se,et,$s,on,xs,zs,ha,Bi,Xt,ei,ti,ga,ks,va,we,Ve,Qt,Ct,vn,en,Li,zi,$i,ds]);return a.jsx(kh.Provider,{value:ya,children:t})}const Ck=3e3,sH=Ck;function aH(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.onStreamMessage);d.current=t.onStreamMessage;const u=y.useRef(t.onConnect);u.current=t.onConnect;const p=y.useRef(t.onDisconnect);return p.current=t.onDisconnect,y.useEffect(()=>{let m=!1,g,v;async function b(){var S,j,T;if(m)return;Promise.resolve((S=u.current)==null?void 0:S.call(u)).catch(()=>{});let _=!1;const k=()=>{!_&&!m&&(_=!0,o("connected"))};v=setTimeout(k,sH);try{const N=Be.streamEvents({});for await(const C of N){if(k(),m)break;const D=C.event;if(D.case==="sessionEvent"){const A=D.value;r.current({sessionId:A.sessionId,type:A.type,timestamp:A.timestamp,content:A.content,raw:A.raw,toolCallId:A.toolCallId,turnId:A.turnId,serverSeq:A.serverSeq,toolError:A.toolError})}else if(D.case==="domainEvent"){const A=D.value;c.current({id:A.id,type:A.type,timestamp:A.timestamp,payloadJson:A.payloadJson})}else if(D.case==="streamMessageEvent"){const A=D.value;(j=d.current)==null||j.call(d,{streamId:A.streamId,seq:A.seq,senderId:A.senderId,content:A.content,timestamp:A.timestamp})}}}catch(N){if(clearTimeout(v),N instanceof Bs&&N.code===Sm.Unauthenticated){window.location.href=gC;return}}clearTimeout(v),m||(o("connecting"),(T=p.current)==null||T.call(p),g=setTimeout(()=>{b().catch(()=>{})},Ck))}return b().catch(()=>{}),()=>{m=!0,clearTimeout(g),clearTimeout(v)}},[]),{connectionStatus:s}}const km=["core","orchestration","scheduling"],Ek=y.createContext({pluginNames:[...km],sandboxPort:void 0,sandboxOrigin:void 0,loading:!1,error:void 0});function iH({children:t}){const[s,o]=y.useState([...km]),[r,c]=y.useState(void 0),[d,u]=y.useState(void 0),[p,m]=y.useState(!0),[g,v]=y.useState(void 0);return y.useEffect(()=>{let b=!1;return fetch("/api/manifest").then(async _=>{if(!_.ok)throw new Error(`Manifest fetch returned ${_.status}`);return _.json()}).then(_=>{b||(o(_.plugins.map(k=>k.name)),c(_.sandboxPort),u(_.sandboxOrigin),m(!1))}).catch(_=>{b||(o([...km]),v(_ instanceof Error?_:new Error(String(_))),m(!1))}),()=>{b=!0}},[]),a.jsx(Ek.Provider,{value:{pluginNames:s,sandboxPort:r,sandboxOrigin:d,loading:p,error:g},children:t})}function zd(){return y.useContext(Ek)}function Th(){const{sandboxPort:t,sandboxOrigin:s}=zd();if(typeof window>"u")return;if(s!==void 0&&s!=="")try{return new URL("/sandbox.html",s).toString()}catch{}if(t===void 0)return;const o=new URL(window.location.origin);return o.port=String(t),o.pathname="/sandbox.html",o.toString()}const oH=new Set(["dashboard","chat","environments","sessions","coordination","settings"]),rH=new Set(["tasks"]),lH=new Set(["knowledge"]),Ak={core:{navItems:od.filter(t=>oH.has(t.view)),domainHookKeys:["environments","sessions","workspaces","tokens","credentials","codespaces","dockerContainers","streams","plugins"]},orchestration:{navItems:od.filter(t=>rH.has(t.view)),domainHookKeys:["tasks","personas","notifications"]},scheduling:{navItems:[],domainHookKeys:["schedules"]},knowledge:{navItems:od.filter(t=>lH.has(t.view)),domainHookKeys:["knowledge"]}};function cH(t){return t.flatMap(s=>{var o;return((o=Ak[s])==null?void 0:o.navItems)??[]})}function dH(t){return new Set(t.flatMap(s=>{var o;return((o=Ak[s])==null?void 0:o.domainHookKeys)??[]}))}function uH(t){return{id:t.id,displayName:t.displayName,adapterType:t.adapterType,adapterConfig:t.adapterConfig||"{}",status:t.status,bootstrapped:t.bootstrapped,githubAccountId:t.githubAccountId||""}}function x_(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,taskId:t.taskId||void 0,parentSessionId:t.parentSessionId||void 0,inputTokens:t.inputTokens,outputTokens:t.outputTokens,costMillicents:t.costMillicents}}function fH(t){return{sessionId:t.sessionId,eventType:q_(t.type),timestamp:t.timestamp,content:t.content,raw:t.raw||void 0,toolCallId:t.toolCallId||void 0,turnId:t.turnId||void 0,serverSeq:t.serverSeq||void 0,toolError:t.toolError||void 0}}function k_(t){return{id:t.id,name:t.name,description:t.description,repoUrl:t.repoUrl,linkedEnvironmentIds:[...t.linkedEnvironmentIds],status:lj(t.status),workingDirectory:t.workingDirectory,useWorktrees:t.useWorktrees,defaultPersonaId:t.defaultPersonaId,tokenBudget:t.tokenBudget,costBudgetMillicents:t.costBudgetMillicents,createdAt:t.createdAt,updatedAt:t.updatedAt}}function S_(t){return{id:t.id,workspaceId:t.workspaceId??void 0,title:t.title,description:t.description,status:cj(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,injectKnowledge:t.injectKnowledge,defaultPersonaId:t.defaultPersonaId,workpad:t.workpad,tokenBudget:t.tokenBudget,costBudgetMillicents:t.costBudgetMillicents}}function pH(t){return{name:t.name,tokenType:t.type,envVar:t.envVar,filePath:t.filePath,expiresAt:t.expiresAt}}function mH(t){return{claude:dj(t.claude),github:Oc(t.github),copilot:Oc(t.copilot),codex:Oc(t.codex),goose:Oc(t.goose)}}function hH(t){return{name:t.name,repository:t.repository,state:t.state,gitStatus:t.gitStatus}}function gH(t){return{id:t.id,name:t.name,image:t.image,state:t.state,status:t.status}}function zp(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 vH(t){return{inputTokens:t.inputTokens,outputTokens:t.outputTokens,costMillicents:t.costMillicents,sessionCount:t.sessionCount}}function $p(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 Wc(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 Hp(t){return{source:t.fromId,target:t.toId,type:t.type}}function yH(t){return{subscriptionId:t.subscriptionId,sessionId:t.sessionId,fd:t.fd,permission:t.permission,deliveryMode:t.deliveryMode,createdBySpawn:t.createdBySpawn}}function bH(t){return{id:t.id,name:t.name,subscriberCount:t.subscriberCount,messageBufferDepth:t.messageBufferDepth,subscribers:t.subscribers.map(yH),selfEcho:t.selfEcho}}function _s(){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 j_=5e3;function Fr(t){return t instanceof Bs?t.message:"Operation failed"}function _H(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),[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(uH))}catch{}},[r]),v=y.useCallback(C=>{switch(C.type){case"environment.added":return!0;case"environment.removed":{const D=C.payload.environmentId;return D&&(s(A=>A.filter(E=>E.id!==D)),d(A=>{const E={...A};return delete E[D],E})),!0}case"environment.changed":return g().catch(()=>{}),!0;case"environment.provision_progress":{const D=C.payload;if(typeof D.environmentId!="string"||typeof D.stage!="string"||typeof D.message!="string"||typeof D.progress!="number")return Sk("environment.provision_progress","invalid payload"),!0;if(d(A=>({...A,[D.environmentId]:{stage:D.stage,message:D.message,progress:D.progress}})),D.stage==="ready"){const A=D.environmentId;setTimeout(()=>{d(E=>{const R={...E};return delete R[A],R})},j_)}return!0}default:return!1}},[g]),b=y.useCallback(C=>{var D;if(C.type==="environments"){const A=Array.isArray((D=C.payload)==null?void 0:D.environments)?C.payload.environments:[];return s(A),!0}return!1},[]),_=y.useCallback(async(C,D,A,E)=>{p("");try{await Be.addEnvironment({displayName:C,adapterType:D,adapterConfig:JSON.stringify(A??{}),githubAccountId:E??""})}catch(R){p(Fr(R))}},[]),k=y.useCallback(async(C,D)=>{p("");try{await Be.updateEnvironment({id:C,displayName:D.displayName,adapterConfig:D.adapterConfig?JSON.stringify(D.adapterConfig):void 0,githubAccountId:D.githubAccountId})}catch(A){p(Fr(A))}},[]),S=y.useCallback(async(C,D)=>{p("");try{const A=Be.provisionEnvironment({id:C,force:D??!1});for await(const E of A)d(R=>({...R,[C]:{stage:E.stage,message:E.message,progress:E.progress}})),E.stage==="ready"&&setTimeout(()=>{d(R=>{const B={...R};return delete B[C],B})},j_)}catch(A){d(E=>{const R={...E};return delete R[C],R}),p(Fr(A))}},[]),j=y.useCallback(async C=>{p("");try{await Be.stopEnvironment({id:C})}catch(D){p(Fr(D))}},[]),T=y.useCallback(async C=>{p("");try{await Be.removeEnvironment({id:C})}catch(D){p(Fr(D))}},[]);return{environments:t,environmentsLoading:o,provisionStatus:c,operationError:u,clearOperationError:m,loadEnvironments:g,addEnvironment:_,updateEnvironment:k,provisionEnvironment:S,stopEnvironment:j,removeEnvironment:T,handleEvent:v,handleLegacyMessage:b,domainHook:{onConnect:()=>g(),onDisconnect:()=>{},handleEvent:v}}}const Pp=new Set(["pending","running","idle"]),xH=new Set(["completed","failed","interrupted","hibernating","suspended"]),T_=["pending","running","idle"];function kH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),[c,d]=y.useState([]),[u,p]=y.useState(0),[m,g]=y.useState(void 0),[v,b]=y.useState({}),_=y.useCallback(async()=>{try{const $=(await r(Be.listSessions({}))).sessions.map(x_);s(Y=>{const U=new Map(Y.map(X=>[X.id,X]));return $.map(X=>{const te=U.get(X.id),G=te==null?void 0:te.status;return!G||G===X.status?X:xH.has(G)&&Pp.has(X.status)?{...X,status:G,...te.endReason!==void 0?{endReason:te.endReason}:{}}:Pp.has(G)&&Pp.has(X.status)&&T_.indexOf(G)>T_.indexOf(X.status)?{...X,status:G}:X})})}catch{}},[r]),k=y.useCallback(M=>{if(M.type!=="session_event")return!1;if(!D9(M.payload))return Sk("session_event","payload is not a valid SessionEvent"),!0;const $=M.payload;let Y=0;if(d(U=>{const X=[...U,$];return X.length>Co?(Y=X.length-Co,X.slice(-Co)):X}),Y>0&&p(U=>U+Y),$.eventType==="usage")try{const U=JSON.parse($.content),X=Number(U.input_tokens)||0,te=Number(U.output_tokens)||0,G=Number(U.cost_millicents)||0;(X>0||te>0||G>0)&&s(ne=>ne.map(H=>H.id===$.sessionId?{...H,inputTokens:(H.inputTokens??0)+X,outputTokens:(H.outputTokens??0)+te,costMillicents:(H.costMillicents??0)+G}:H))}catch{}if($.eventType==="status"){const U=jk($.content),X=Tk($.content);s(te=>te.some(ne=>ne.id===$.sessionId)?te.map(ne=>ne.id===$.sessionId?{...ne,status:U,...X!==void 0?{endReason:X}:{}}:ne):[...te,{id:$.sessionId,environmentId:"",runtime:"",status:U,prompt:"",startedAt:$.timestamp,...X!==void 0?{endReason:X}:{}}])}return!0},[]),S=y.useCallback(M=>{k({type:"session_event",payload:M})},[k]),j=y.useCallback(M=>{var $,Y,U,X,te;switch(M.type){case"sessions":{const G=Array.isArray(($=M.payload)==null?void 0:$.sessions)?M.payload.sessions:[];return s(G),!0}case"spawned":{const G=(Y=M.payload)==null?void 0:Y.sessionId;return typeof G=="string"&&G&&g(G),_().catch(()=>{}),!0}case"session_events":{const G=Array.isArray((U=M.payload)==null?void 0:U.events)?M.payload.events:[];return G.length>0&&d(G),!0}case"task_sessions":{const G=(X=M.payload)==null?void 0:X.taskId;if(typeof G=="string"&&G){const ne=Array.isArray((te=M.payload)==null?void 0:te.sessions)?M.payload.sessions:[];b(H=>({...H,[G]:ne}))}return!0}default:return!1}},[_]),T=y.useCallback(async(M,$,Y,U,X)=>{try{const te=await Be.spawnAgent({environmentId:M,prompt:$,config:{personaId:Y||"",workingDirectory:U||"",workspaceId:X||""}});g(te.id),await _()}catch{}},[_]),N=y.useCallback(async(M,$)=>{await Be.sendInput({sessionId:M,text:$})},[]),C=y.useCallback(async M=>{try{await Be.killAgent({id:M,graceful:!1})}catch{}},[]),D=y.useCallback(async M=>{try{await Be.killAgent({id:M,graceful:!0})}catch{}},[]),A=y.useCallback(async M=>{try{const Y=(await Be.getSessionEvents({id:M})).events.map(fH);if(Y.length>0){let U=0;d(X=>{const te=O=>O.serverSeq?`seq:${O.serverSeq}`:`t:${O.timestamp}|${O.eventType}`,G=new Set;for(const O of X)O.sessionId===M&&G.add(te(O));const ne=Y.filter(O=>!G.has(te(O))),H=[...X,...ne].sort((O,q)=>O.sessionId!==q.sessionId?0:O.serverSeq&&q.serverSeq?O.serverSeq.localeCompare(q.serverSeq):O.timestamp.localeCompare(q.timestamp));return H.length>Co?(U=H.length-Co,H.slice(-Co)):H}),U>0&&p(X=>X+U)}}catch{}},[]),E=y.useCallback(()=>{d([]),p(0)},[]),R=y.useCallback(async M=>{try{const Y=(await Be.getTaskSessions({id:M})).sessions.map(x_);b(U=>({...U,[M]:Y}))}catch{}},[]);return{sessions:t,sessionsLoading:o,events:c,eventsDropped:u,lastSpawnedId:m,taskSessions:v,loadSessions:_,spawn:T,sendInput:N,kill:C,stopGraceful:D,loadSessionEvents:A,clearEvents:E,loadTaskSessions:R,handleMessage:k,handleSessionEvent:S,handleLegacyMessage:j,domainHook:{onConnect:()=>_(),onDisconnect:()=>{E()},handleEvent:()=>!1}}}function N_(t){return t instanceof Bs?t.message:"Operation failed"}function SH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),[c,d]=y.useState(!1),[u,p]=y.useState(""),m=y.useCallback(async()=>{try{const C=await r(Be.listWorkspaces({}));s(C.workspaces.map(k_))}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)},[]),b=y.useCallback(async(C,D,A,E,R,B,M,$,Y)=>{d(!0);try{const U=await Be.createWorkspace({name:C,description:D||"",repoUrl:A||"",environmentId:E||"",defaultPersonaId:R||void 0,useWorktrees:B??!0,workingDirectory:M||void 0}),X=k_(U);s(te=>te.some(G=>G.id===X.id)?te:[...te,X]),d(!1),$==null||$(X)}catch(U){d(!1);const X=U instanceof Bs?U.message:"Failed to create workspace";Y==null||Y(X)}},[]),_=y.useCallback(async C=>{try{await Be.archiveWorkspace({id:C})}catch{}},[]),k=y.useCallback(async(C,D)=>{try{await Be.updateWorkspace({id:C,...D})}catch{}},[]),S=y.useCallback(()=>{p("")},[]),j=y.useCallback(async(C,D)=>{try{p(""),await Be.linkEnvironment({workspaceId:C,environmentId:D}),await m().catch(()=>{})}catch(A){p(N_(A))}},[m]),T=y.useCallback(async(C,D)=>{try{p(""),await Be.unlinkEnvironment({workspaceId:C,environmentId:D}),await m().catch(()=>{})}catch(A){p(N_(A))}},[m]);return{workspaces:t,workspacesLoading:o,workspaceCreating:c,loadWorkspaces:m,createWorkspace:b,archiveWorkspace:_,updateWorkspace:k,linkEnvironment:j,unlinkEnvironment:T,linkOperationError:u,clearLinkOperationError:S,handleEvent:g,onDisconnect:v,domainHook:{onConnect:()=>m(),onDisconnect:v,handleEvent:g}}}function jH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),[c,d]=y.useState(void 0),u=y.useRef({}),p=y.useCallback(async E=>{try{const B=(await Ln.listTasks({workspaceId:E})).tasks.map(S_);s(M=>[...M.filter($=>$.workspaceId!==E),...B])}catch{}},[]),m=y.useCallback(async()=>{try{const R=(await r(Ln.listTasks({}))).tasks.map(S_);s(B=>{const M=new Set(R.map($=>$.id));return[...B.filter($=>!M.has($.id)),...R]})}catch{}},[r]),g=y.useCallback((E,R)=>{const B=M=>{clearTimeout(u.current[M]),u.current[M]=setTimeout(()=>{delete u.current[M],p(M).catch(()=>{})},200)};E?B(E):R&&s(M=>{const $=M.find(Y=>Y.id===R);return $!=null&&$.workspaceId?B($.workspaceId):m().catch(()=>{}),M})},[p,m]),v=y.useCallback(E=>{const R=E.payload;switch(E.type){case"task.created":{const B=typeof R.workspaceId=="string"?R.workspaceId:"";return B&&p(B).catch(()=>{}),!0}case"task.started":{const B=typeof R.taskId=="string"?R.taskId:"",M=typeof R.sessionId=="string"?R.sessionId:"",$=typeof R.workspaceId=="string"?R.workspaceId:"";return d(Y=>B&&Y===B?void 0:Y),M&&B&&s(Y=>Y.map(U=>U.id===B?{...U,latestSessionId:M}:U)),g($,B),!0}case"task.completed":case"task.deleted":case"task.reparented":case"task.updated":{const B=typeof R.workspaceId=="string"?R.workspaceId:"",M=typeof R.taskId=="string"?R.taskId:"";return d($=>M&&$===M?void 0:$),g(B,M),!0}default:return!1}},[p,g]),b=y.useCallback(()=>{d(void 0)},[]),_=y.useCallback(E=>{var R,B;if(E.type==="tasks"){const M=Array.isArray((R=E.payload)==null?void 0:R.tasks)?E.payload.tasks:[],$=typeof((B=E.payload)==null?void 0:B.workspaceId)=="string"&&E.payload.workspaceId?E.payload.workspaceId:"";return s($?Y=>[...Y.filter(U=>U.workspaceId!==$),...M]:Y=>{const U=new Set(M.map(X=>X.id));return[...Y.filter(X=>!U.has(X.id)),...M]}),!0}return!1},[]),k=y.useCallback(async(E,R,B,M,$,Y,U,X,te,G)=>{try{await Ln.createTask({workspaceId:E,title:R,description:B||"",dependsOn:M||[],parentTaskId:$||"",defaultPersonaId:Y||void 0,canDecompose:U??void 0,injectKnowledge:X??void 0}),te==null||te()}catch(ne){const H=ne instanceof Bs?ne.message:"Failed to create task";G==null||G(H)}},[]),S=y.useCallback(async(E,R,B,M)=>{d(E);try{await Ln.startTask({taskId:E,personaId:R||"",environmentId:B||"",notes:M||""})}catch($){if($ instanceof Bs&&$.code===Sm.ResourceExhausted)return;throw d(void 0),$}},[]),j=y.useCallback(async E=>{try{await Ln.stopTask({id:E})}catch{}},[]),T=y.useCallback(async E=>{try{await Ln.completeTask({id:E})}catch{}},[]),N=y.useCallback(async E=>{try{await Ln.resumeTask({id:E})}catch{}},[]),C=y.useCallback(async(E,R,B,M,$)=>{try{await Ln.updateTask({id:E,title:R,description:B,dependsOn:M,...$!==void 0?{defaultPersonaId:$}:{}})}catch{}},[]),D=y.useCallback(async E=>{try{await Ln.deleteTask({id:E})}catch{}},[]);return{tasks:t,tasksLoading:o,taskStartingId:c,loadTasks:p,loadAllTasks:m,createTask:k,startTask:S,stopTask:j,completeTask:T,resumeTask:N,updateTask:C,deleteTask:D,handleEvent:v,onDisconnect:b,handleLegacyMessage:_,domainHook:{onConnect:()=>m(),onDisconnect:b,handleEvent:v}}}function TH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),c=y.useCallback(async()=>{try{const g=await r(Be.listTokens({}));s(g.tokens.map(pH))}catch{}},[r]),d=y.useCallback(g=>g.type==="token.changed"?(c().catch(()=>{}),!0):!1,[c]),u=y.useCallback(async(g,v,b,_,k)=>{try{await Be.setToken({name:g,value:v,type:b,envVar:_,filePath:k})}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 NH(){const[t,s]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),{loading:o,track:r}=_s(),c=y.useCallback(async()=>{try{const m=await r(Be.getCredentialProviders({}));s(mH(m))}catch{}},[r]),d=y.useCallback(m=>m.type==="credential.providers_changed"?(R9(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:b})=>Be.setCredentialProvider({provider:v,value:b})))},[]);return{credentialProviders:t,credentialsLoading:o,loadCredentials:c,updateCredentialProviders:u,handleEvent:d,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function wH(){const[t,s]=y.useState([]),[o,r]=y.useState(""),[c,d]=y.useState(""),[u,p]=y.useState(!1),m=y.useCallback(async b=>{try{const _=await Be.listCodespaces({githubAccountId:b??""});s(_.codespaces.map(hH)),d(_.error)}catch{}},[]),g=y.useCallback(async(b,_)=>{p(!0),r("");try{await Be.createCodespace({repo:b,machine:_??""}),p(!1),await m()}catch(k){p(!1);const S=k instanceof Bs?k.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 CH(){const[t,s]=y.useState([]),[o,r]=y.useState(""),c=y.useCallback(async()=>{try{const u=await Be.listDockerContainers({});s(u.containers.map(gH)),r(u.error)}catch(u){s([]),r(u instanceof Error?u.message:"Failed to list Docker containers")}},[]);return{dockerContainers:t,dockerContainersError:o,listDockerContainers:c,domainHook:{onConnect:async()=>{},onDisconnect:()=>{},handleEvent:()=>!1}}}function EH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),c=y.useCallback(async()=>{try{const v=await r(Ln.listPersonas({}));s(v.personas.map(zp))}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,_,k,S,j,T,N,C)=>{const D=await Ln.createPersona({name:v,description:b,systemPrompt:_,runtime:k||"",model:S||"",maxTurns:j||0,type:T||"agent",script:N||"",allowedMcpTools:C||[]}),A=zp(D);return s(E=>[...E.filter(R=>R.id!==A.id),A]),A},[]),p=y.useCallback(async(v,b,_,k,S,j,T,N,C,D)=>{const A={id:v};b!==void 0&&(A.name=b),_!==void 0&&(A.description=_),k!==void 0&&(A.systemPrompt=k),S!==void 0&&(A.runtime=S),j!==void 0&&(A.model=j),T!==void 0&&(A.maxTurns=T),N!==void 0&&(A.type=N),C!==void 0&&(A.script=C),D!==void 0&&(A.allowedMcpTools={tools:D});const E=await Ln.updatePersona(A),R=zp(E);return s(B=>B.map(M=>M.id===R.id?R:M)),R},[]),m=y.useCallback(async v=>{await Ln.deletePersona({id:v}),s(b=>b.filter(_=>_.id!==v))},[]);return{personas:t,personasLoading:o,loadPersonas:c,createPersona:u,updatePersona:p,deletePersona:m,handleEvent:d,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function AH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),c=y.useRef(void 0),d=y.useCallback(async()=>{try{const b=await r(zc.listSchedules({}));s(b.schedules.map($p))}catch{}},[r]),u=y.useCallback(b=>{switch(b.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,_,k,S,j,T)=>{const N=await zc.createSchedule({title:b,description:_,scheduleExpression:k,personaId:S,workspaceId:j||"",parentTaskId:T||""}),C=$p(N);return s(D=>[...D.filter(A=>A.id!==C.id),C]),C},[]),m=y.useCallback(async(b,_)=>{const k={id:b};_.title!==void 0&&(k.title=_.title),_.description!==void 0&&(k.description=_.description),_.scheduleExpression!==void 0&&(k.scheduleExpression=_.scheduleExpression),_.personaId!==void 0&&(k.personaId=_.personaId),_.enabled!==void 0&&(k.enabled=_.enabled);const S=await zc.updateSchedule(k),j=$p(S);return s(T=>T.map(N=>N.id===j.id?j:N)),j},[]),g=y.useCallback(async b=>{await zc.deleteSchedule({id:b}),s(_=>_.filter(k=>k.id!==b))},[]);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 DH(t){if(t)try{return JSON.parse(t)}catch{return}}function w_(t){return Bs.from(t).code===Sm.Unavailable?"unavailable":"error"}function MH(){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,b]=y.useState(void 0),[_,k]=y.useState(""),S=y.useRef(""),j=y.useCallback(async M=>{const $=M??"";S.current=$,k(""),b(void 0),g(!0);try{const Y=await $c.listRecentKnowledgeNodes({limit:30,workspaceId:$}),U=new Map,X=[];for(const te of Y.nodes)U.set(te.id,Wc(te));for(const te of Y.edges)X.push(Hp(te));for(const te of X){const G=U.get(te.source);G&&(G.val+=1);const ne=U.get(te.target);ne&&(ne.val+=1)}s(U),r(X)}catch(Y){b(w_(Y))}finally{g(!1)}},[]),T=y.useCallback(async M=>{if(M.trim()){k(M),p(void 0),d(void 0),b(void 0),g(!0);try{const $=await $c.searchKnowledge({query:M,limit:20,workspaceId:S.current}),Y=new Map,U=[];for(const X of $.results){X.node&&Y.set(X.node.id,Wc(X.node,X.edges.length));for(const te of X.edges)U.push(Hp(te))}s(Y),r(U)}catch($){b(w_($))}finally{g(!1)}}},[]),N=y.useCallback(()=>{j(S.current).catch(()=>{})},[j]),C=y.useCallback(async M=>{p(M);try{const $=await $c.getKnowledgeNode({id:M});if(!$.node){d(void 0);return}d({node:Wc($.node,$.edges.length),edges:$.edges.map(Y=>({fromId:Y.fromId,toId:Y.toId,type:Y.type,metadata:DH(Y.metadataJson)}))})}catch{d(void 0)}},[]),D=y.useCallback(()=>{p(void 0),d(void 0)},[]),A=y.useCallback(async M=>{try{const $=await $c.expandKnowledgeNode({id:M,depth:1});s(Y=>{const U=new Map(Y);for(const X of $.nodes)U.has(X.id)||U.set(X.id,Wc(X));return U}),r(Y=>{const U=new Set(Y.map(te=>`${te.source}:${te.target}:${te.type}`)),X=[];for(const te of $.edges){const G=Hp(te),ne=`${G.source}:${G.target}:${G.type}`;U.has(ne)||X.push(G)}return[...Y,...X]})}catch{}},[]),E=y.useCallback(M=>!1,[]),R=y.useMemo(()=>({onConnect:async()=>{},onDisconnect:()=>{},handleEvent:E}),[E]),B=y.useMemo(()=>({nodes:[...t.values()],links:o}),[t,o]);return y.useMemo(()=>({graphData:B,selectedNode:c,selectedId:u,loading:m,loadError:v,searchQuery:_,search:T,clearSearch:N,selectNode:C,clearSelection:D,expandNode:A,loadRecent:j,handleEvent:E,domainHook:R}),[B,c,u,m,v,_,T,N,C,D,A,j,E,R])}function RH(){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:Bd("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}}}const Xc=500;function IH(){const[t,s]=y.useState([]),[o,r]=y.useState({}),[c,d]=y.useState(!1),[u,p]=y.useState(!1),{loading:m,track:g}=_s(),v=y.useRef(0),b=y.useCallback(async(T=!1)=>{const N=v.current;try{const C=await g(Be.listStreams({includeInternal:T}));v.current===N&&(s(C.streams.map(bH)),p(!1))}catch{v.current===N&&p(!0)}finally{v.current===N&&d(!0)}},[g]),_=y.useCallback(async(T,N)=>{let C;try{C=(await Be.getStreamTranscript({streamId:T,beforeSeq:N??"",limit:0})).messages.map(A=>({streamId:A.streamId,seq:A.seq,senderId:A.senderId,content:A.content,timestamp:A.timestamp}))}catch{return}r(D=>{const A=new Map;for(const B of D[T]??[])A.set(B.seq,B);for(const B of C)A.set(B.seq,B);const E=Array.from(A.values()).sort((B,M)=>B.seq.localeCompare(M.seq)),R=E.length>Xc?E.slice(E.length-Xc):E;return{...D,[T]:R}})},[]),k=y.useCallback(T=>{r(N=>{const C=N[T.streamId]??[];if(C.some(E=>E.seq===T.seq))return N;const D=[...C,T],A=D.length>Xc?D.slice(D.length-Xc):D;return{...N,[T.streamId]:A}})},[]),S=y.useCallback(T=>!1,[]);return{streams:t,streamsLoading:m,streamsLoadedOnce:c,streamsLoadError:u,loadStreams:b,liveMessages:o,loadTranscript:_,handleStreamMessage:k,handleEvent:S,domainHook:{onConnect:b,onDisconnect:()=>{v.current+=1,s([]),r({}),d(!1),p(!1)},handleEvent:S}}}function OH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),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(b=>b.map(_=>_.name===v.name?{..._,enabled:v.enabled}:_))}catch{}},[]);return{plugins:t,pluginsLoading:o,loadPlugins:c,setPluginEnabled:u,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function BH(){const[t,s]=y.useState([]),{loading:o,track:r}=_s(),c=y.useCallback(async()=>{try{const b=await r(Be.listGitHubAccounts({}));s(b.accounts.map(_=>({id:_.id,label:_.label,username:_.username,isDefault:_.isDefault,createdAt:_.createdAt})))}catch{}},[r]),d=y.useCallback(b=>b.type==="github_account.changed"?(c().catch(()=>{}),!0):!1,[c]),u=y.useCallback(async(b,_,k,S)=>{const j=await Be.addGitHubAccount({label:b,token:_,username:k,isDefault:S});s(T=>[...j.isDefault?T.map(C=>({...C,isDefault:!1})):T,{id:j.id,label:j.label,username:j.username,isDefault:j.isDefault,createdAt:j.createdAt}])},[]),p=y.useCallback(async(b,_)=>{const k=await Be.updateGitHubAccount({id:b,..._});s(S=>S.map(j=>j.id===k.id?{...j,label:k.label,username:k.username,isDefault:k.isDefault}:_.isDefault?{...j,isDefault:!1}:j))},[]),m=y.useCallback(async b=>{await Be.removeGitHubAccount({id:b}),s(_=>_.filter(k=>k.id!==b))},[]),g=y.useCallback(async()=>{const b=await Be.importGitHubAccounts({});return b.imported>0&&await c(),{imported:b.imported,usernames:b.usernames}},[c]);return{githubAccounts:t,githubAccountsLoading:o,loadGitHubAccounts:c,addGitHubAccount:u,updateGitHubAccount:p,removeGitHubAccount:m,importGitHubAccounts:g,domainHook:{onConnect:()=>c(),onDisconnect:()=>{},handleEvent:d}}}function LH(){const[t,s]=y.useState(""),[o,r]=y.useState(void 0),[c,d]=y.useState({}),{pluginNames:u}=zd(),p=dH(u),m=_H(),g=kH(),v=SH(),b=jH(),_=TH(),k=NH(),S=wH(),j=CH(),T=EH(),N=AH(),C=MH(),D=RH(),A=IH(),E=OH(),R=BH(),B=[...p.has("environments")?[m.domainHook]:[],...p.has("sessions")?[g.domainHook]:[],...p.has("workspaces")?[v.domainHook]:[],...p.has("tasks")?[b.domainHook]:[],...p.has("tokens")?[_.domainHook]:[],...p.has("credentials")?[k.domainHook]:[],...p.has("codespaces")?[S.domainHook]:[],...p.has("dockerContainers")?[j.domainHook]:[],...p.has("personas")?[T.domainHook]:[],...p.has("schedules")?[N.domainHook]:[],...p.has("knowledge")?[C.domainHook]:[],...p.has("notifications")?[D.domainHook]:[],...p.has("streams")?[A.domainHook]:[],...p.has("plugins")?[E.domainHook]:[],R.domainHook],{connectionStatus:M}=aH({onSessionEvent:q=>{g.handleSessionEvent({sessionId:q.sessionId,eventType:q_(q.type),timestamp:q.timestamp,content:q.content,raw:q.raw||void 0,toolCallId:q.toolCallId||void 0,turnId:q.turnId||void 0,serverSeq:q.serverSeq||void 0,toolError:q.toolError||void 0})},onDomainEvent:q=>{try{const ge=JSON.parse(q.payloadJson);G({id:q.id,type:q.type,timestamp:q.timestamp,payload:ge})}catch{console.warn("[grackle] Failed to parse domain event payloadJson:",q.payloadJson)}},onStreamMessage:q=>{A.handleStreamMessage(q)},onConnect:ne,onDisconnect:H}),$="default_persona_id",Y="onboarding_completed",U=y.useCallback(async q=>{const ge=await Be.setSetting({key:$,value:q});s(ge.value)},[]),X=y.useCallback(async()=>{r(!0);try{await Be.setSetting({key:Y,value:"true"})}catch{}},[]),te=y.useCallback(async(q,ge)=>{try{const se=await Be.getUsage({scope:q,id:ge}),ce=`${q}:${ge}`;d(me=>({...me,[ce]:vH(se)}))}catch{}},[]);function G(q){const ge=q.payload.key,se=q.payload.value;if(q.type==="setting.changed"){ge===$&&s(se??""),ge===Y&&r(se==="true");return}for(const ce of B)if(ce.handleEvent(q))break;(q.type==="environment.removed"||q.type==="task.started")&&g.loadSessions().catch(()=>{}),(q.type==="session.started"||q.type==="session.stopped")&&A.loadStreams().catch(()=>{})}async function ne(){for(const q of B)q.onConnect().catch(()=>{});try{const q=await Be.getSetting({key:$});s(q.value)}catch{}try{const q=await Be.getSetting({key:Y});r(q.value==="true")}catch{}}function H(){B.forEach(q=>q.onDisconnect())}const O=y.useCallback(()=>{m.loadEnvironments().catch(()=>{}),g.loadSessions().catch(()=>{}),v.loadWorkspaces().catch(()=>{}),_.loadTokens().catch(()=>{})},[m.loadEnvironments,g.loadSessions,v.loadWorkspaces,_.loadTokens]);return{connectionStatus:M,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:b.tasks,tasksLoading:b.tasksLoading,taskStartingId:b.taskStartingId,loadTasks:b.loadTasks,loadAllTasks:b.loadAllTasks,createTask:b.createTask,startTask:b.startTask,stopTask:b.stopTask,completeTask:b.completeTask,resumeTask:b.resumeTask,updateTask:b.updateTask,deleteTask:b.deleteTask,domainHook:b.domainHook},tokens:{tokens:_.tokens,tokensLoading:_.tokensLoading,loadTokens:_.loadTokens,setToken:_.setToken,deleteToken:_.deleteToken,domainHook:_.domainHook},credentials:{credentialProviders:k.credentialProviders,credentialsLoading:k.credentialsLoading,updateCredentialProviders:k.updateCredentialProviders,domainHook:k.domainHook},codespaces:{codespaces:S.codespaces,codespaceError:S.codespaceError,codespaceListError:S.codespaceListError,codespaceCreating:S.codespaceCreating,listCodespaces:S.listCodespaces,createCodespace:S.createCodespace,domainHook:S.domainHook},dockerContainers:{dockerContainers:j.dockerContainers,dockerContainersError:j.dockerContainersError,listDockerContainers:j.listDockerContainers,domainHook:j.domainHook},personas:{personas:T.personas,personasLoading:T.personasLoading,createPersona:T.createPersona,updatePersona:T.updatePersona,deletePersona:T.deletePersona,domainHook:T.domainHook},schedules:{schedules:N.schedules,schedulesLoading:N.schedulesLoading,createSchedule:N.createSchedule,updateSchedule:N.updateSchedule,deleteSchedule:N.deleteSchedule,domainHook:N.domainHook},streams:{streams:A.streams,streamsLoading:A.streamsLoading,streamsLoadedOnce:A.streamsLoadedOnce,streamsLoadError:A.streamsLoadError,loadStreams:A.loadStreams,liveMessages:A.liveMessages,loadTranscript:A.loadTranscript,handleStreamMessage:A.handleStreamMessage,domainHook:A.domainHook},knowledge:C,plugins:{plugins:E.plugins,pluginsLoading:E.pluginsLoading,loadPlugins:E.loadPlugins,setPluginEnabled:E.setPluginEnabled},githubAccounts:{githubAccounts:R.githubAccounts,githubAccountsLoading:R.githubAccountsLoading,loadGitHubAccounts:R.loadGitHubAccounts,addGitHubAccount:R.addGitHubAccount,updateGitHubAccount:R.updateGitHubAccount,removeGitHubAccount:R.removeGitHubAccount,importGitHubAccounts:R.importGitHubAccounts},appDefaultPersonaId:t,setAppDefaultPersonaId:U,onboardingCompleted:o,completeOnboarding:X,usageCache:c,loadUsage:te,refresh:O}}function zH({children:t}){const s=LH();return a.jsx(kh.Provider,{value:s,children:t})}function $H(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 HH(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 PH={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 UH(t){return PH[t]}function VH(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=UH(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 qH(t,s){const o=y.useRef(void 0);y.useEffect(()=>{const r=o.current;o.current=t;const c=VH(r,t);for(const d of c)s(d.message,d.variant)},[t,s])}const GH="_dashboard_16pzm_1",FH="_kpiStrip_16pzm_11",KH="_kpiCard_16pzm_23",ZH="_kpiValue_16pzm_68",YH="_kpiLabel_16pzm_76",JH="_bodyGrid_16pzm_84",WH="_section_16pzm_96",XH="_sectionHeader_16pzm_109",QH="_sectionIcon_16pzm_118",eP="_sectionTitle_16pzm_123",tP="_sectionCount_16pzm_131",nP="_sectionBody_16pzm_138",sP="_emptyHint_16pzm_143",aP="_sessionRow_16pzm_150",iP="_sessionPrompt_16pzm_177",oP="_sessionEnv_16pzm_186",rP="_sessionRuntime_16pzm_192",lP="_sessionStatus_16pzm_198",cP="_statusDot_16pzm_207",dP="_attentionRow_16pzm_233",uP="_attentionTitle_16pzm_259",fP="_attentionMeta_16pzm_267",pP="_reasonBadge_16pzm_274",mP="_bottomGrid_16pzm_301",hP="_envRow_16pzm_312",gP="_envName_16pzm_323",vP="_envStatusBadge_16pzm_333",yP="_workspaceRow_16pzm_369",bP="_workspaceTop_16pzm_395",_P="_workspaceName_16pzm_401",xP="_workspaceCounts_16pzm_407",kP="_progressBar_16pzm_415",SP="_progressFill_16pzm_422",he={dashboard:GH,kpiStrip:FH,kpiCard:KH,kpiValue:ZH,kpiLabel:YH,bodyGrid:JH,section:WH,sectionHeader:XH,sectionIcon:QH,sectionTitle:eP,sectionCount:tP,sectionBody:nP,emptyHint:sP,sessionRow:aP,sessionPrompt:iP,sessionEnv:oP,sessionRuntime:rP,sessionStatus:lP,statusDot:cP,attentionRow:dP,attentionTitle:uP,attentionMeta:fP,reasonBadge:pP,bottomGrid:mP,envRow:hP,envName:gP,envStatusBadge:vP,workspaceRow:yP,workspaceTop:bP,workspaceName:_P,workspaceCounts:xP,progressBar:kP,progressFill:SP};function jP(){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(Te,{width:"3rem",height:"2rem"}),a.jsx(Te,{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(Te,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Te,{width:"8rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Te,{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(Te,{width:"60%",height:"0.875rem"}),a.jsx(Te,{width:"4rem",height:"0.75rem"}),a.jsx(Te,{width:"3rem",height:"0.75rem"}),a.jsx(Te,{width:"3rem",height:"0.75rem"})]},s))})]}),a.jsxs("div",{className:he.section,children:[a.jsxs("div",{className:he.sectionHeader,children:[a.jsx(Te,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Te,{width:"8rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Te,{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(Te,{width:"3rem",height:"0.875rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"70%",height:"0.875rem"})]}),a.jsx("div",{className:he.attentionMeta,children:a.jsx(Te,{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(Te,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Te,{width:"9rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Te,{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(Te,{width:"60%",height:"0.875rem"}),a.jsx(Te,{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(Te,{width:"1rem",height:"1rem",variant:"circular"}),a.jsx(Te,{width:"6rem",height:"0.75rem"}),a.jsx("span",{className:he.sectionCount,children:a.jsx(Te,{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(Te,{width:"50%",height:"0.875rem"}),a.jsx(Te,{width:"2rem",height:"0.75rem"})]}),a.jsx("div",{className:he.progressBar,children:a.jsx("div",{className:he.progressFill,style:{width:"0%"}})})]},s))})]})]})]})}const TP={hidden:{opacity:0,y:12},visible:t=>({opacity:1,y:0,transition:{delay:t*.06,duration:.3,ease:"easeOut"}})},Qc={hidden:{opacity:0,y:16},visible:t=>({opacity:1,y:0,transition:{delay:.15+t*.08,duration:.35,ease:"easeOut"}})};function NP(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 ed({value:t,label:s,accent:o,index:r,testId:c}){return a.jsxs(Ut.div,{className:he.kpiCard,"data-accent":o,"data-testid":c,variants:TP,initial:"hidden",animate:"visible",custom:r,children:[a.jsx("span",{className:he.kpiValue,children:t}),a.jsx("span",{className:he.kpiLabel,children:s})]})}function wP(){const{workspaces:{workspaces:t,workspacesLoading:s},tasks:{tasks:o,tasksLoading:r,loadTasks:c},sessions:{sessions:d,sessionsLoading:u},environments:{environments:p,environmentsLoading:m}}=pt(),g=xt(),v=y.useRef(new Set);y.useEffect(()=>{for(const T of t)v.current.has(T.id)||(v.current.add(T.id),c(T.id).catch(()=>{}))},[t,c]);const b=y.useMemo(()=>U9(d,o,p),[d,o,p]),_=y.useMemo(()=>q9(d,p),[d,p]),k=y.useMemo(()=>V9(o,t),[o,t]),S=y.useMemo(()=>G9(t,o),[t,o,p]);return d.length===0&&o.length===0&&p.length===0&&t.length===0&&(u||r||m||s)?a.jsx(jP,{}):a.jsxs("div",{className:he.dashboard,"data-testid":"dashboard",children:[a.jsxs("div",{className:he.kpiStrip,"data-testid":"dashboard-kpi-strip",children:[a.jsx(ed,{value:b.activeSessions,label:"Active Sessions",accent:"green",index:0,testId:"kpi-active-sessions"}),a.jsx(ed,{value:b.blockedTasks,label:"Blocked Tasks",accent:"yellow",index:1,testId:"kpi-blocked-tasks"}),a.jsx(ed,{value:b.attentionTasks,label:"Needs Attention",accent:"red",index:2,testId:"kpi-attention-tasks"}),a.jsx(ed,{value:b.unhealthyEnvironments,label:"Unhealthy Envs",accent:"blue",index:3,testId:"kpi-unhealthy-envs"})]}),a.jsxs("div",{className:he.bodyGrid,children:[a.jsxs(Ut.div,{className:he.section,variants:Qc,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:_.length})]}),a.jsx("div",{className:he.sectionBody,children:_.length===0?a.jsx("div",{className:he.emptyHint,children:"No active sessions"}):_.map(({session:T,environmentName:N})=>a.jsxs("button",{type:"button",className:he.sessionRow,onClick:()=>g(gl(T.id)),"data-testid":"session-row",children:[a.jsx("span",{className:he.sessionPrompt,title:T.prompt,children:T.prompt||"—"}),a.jsx("span",{className:he.sessionEnv,children:N}),a.jsx("span",{className:he.sessionRuntime,children:T.runtime}),a.jsxs("span",{className:he.sessionStatus,children:[a.jsx("span",{className:he.statusDot,"data-status":T.status}),T.status]})]},T.id))})]}),a.jsxs(Ut.div,{className:he.section,variants:Qc,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:k.length})]}),a.jsx("div",{className:he.sectionBody,children:k.length===0?a.jsx("div",{className:he.emptyHint,children:"All clear"}):k.map(({task:T,reason:N,workspaceName:C})=>a.jsxs("button",{type:"button",className:he.attentionRow,onClick:()=>g(ls(T.id)),"data-testid":"attention-row",children:[a.jsxs("div",{className:he.attentionTitle,children:[a.jsx("span",{className:he.reasonBadge,"data-reason":N,children:N}),T.title]}),a.jsx("div",{className:he.attentionMeta,children:a.jsx("span",{children:C})})]},T.id))})]})]}),a.jsxs("div",{className:he.bottomGrid,children:[a.jsxs(Ut.div,{className:he.section,variants:Qc,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(T=>a.jsxs("div",{className:he.envRow,"data-testid":"dashboard-env-row",children:[a.jsx("span",{className:he.envName,children:T.displayName}),a.jsx("span",{className:he.envStatusBadge,"data-status":T.status,children:T.status})]},T.id))})]}),a.jsxs(Ut.div,{className:he.section,variants:Qc,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:T,totalTasks:N,completedTasks:C,workingTasks:D,failedTasks:A})=>{const E=N>0?Math.round(C/N*100):0;return a.jsxs("button",{type:"button",className:he.workspaceRow,onClick:()=>g(Ci(T.id,T.linkedEnvironmentIds[0])),"data-testid":"workspace-row",children:[a.jsxs("div",{className:he.workspaceTop,children:[a.jsx("span",{className:he.workspaceName,children:T.name}),a.jsxs("span",{className:he.workspaceCounts,"aria-label":NP(C,N,D,A),children:[C,"/",N,D>0&&a.jsxs("span",{style:{color:"var(--accent-green)"},"aria-hidden":"true",children:["▸",D]}),A>0&&a.jsxs("span",{style:{color:"var(--accent-red)"},"aria-hidden":"true",children:["✗",A]})]})]}),N>0&&a.jsx("div",{className:he.progressBar,children:a.jsx("div",{className:he.progressFill,style:{width:`${E}%`}})})]},T.id)})})]})]})]})}const CP="_panelContainer_1udy7_1",EP="_emptyState_1udy7_8",AP="_workspaceSummary_1udy7_17",DP="_workspaceSummaryTitle_1udy7_28",MP="_workspaceSummarySubtitle_1udy7_32",RP="_header_1udy7_36",IP="_headerInfo_1udy7_71",OP="_headerTitle_1udy7_106",BP="_taskStatusBadge_1udy7_128",LP="_taskBranch_1udy7_137",zP="_taskBlockedBadge_1udy7_143",$P="_tabBar_1udy7_277",HP="_tab_1udy7_277",PP="_active_1udy7_303",UP="_eventScroll_1udy7_308",VP="_overviewContent_1udy7_325",qP="_overviewDashboard_1udy7_334",GP="_overviewHero_1udy7_340",FP="_overviewSection_1udy7_347",KP="_overviewLabel_1udy7_353",ZP="_envRow_1udy7_360",YP="_timeline_1udy7_366",JP="_timelineRow_1udy7_372",WP="_waitingMessage_1udy7_379",XP="_errorMessage_1udy7_383",QP="_emptyCta_1udy7_387",eU="_ctaTitle_1udy7_399",tU="_ctaDescription_1udy7_405",nU="_ctaButton_1udy7_412",sU="_workspaceHeader_1udy7_533",aU="_workspaceName_1udy7_558",iU="_workspaceMeta_1udy7_571",oU="_metaRow_1udy7_579",rU="_metaLabel_1udy7_592",lU="_metaValue_1udy7_607",cU="_archiveButton_1udy7_617",dU="_repoLink_1udy7_647",uU="_metaToggle_1udy7_657",fU="_metaToggleArrow_1udy7_678",pU="_metaToggleArrowOpen_1udy7_683",mU="_progressBarContainer_1udy7_687",hU="_progressBar_1udy7_687",gU="_progressFill_1udy7_703",vU="_progressLabel_1udy7_710",yU="_metaTimestamps_1udy7_717",bU="_metaTimestamp_1udy7_717",_U="_metaPlaceholder_1udy7_739",xU="_linkedEnvList_1udy7_744",kU="_linkedEnvChip_1udy7_750",SU="_chipDismiss_1udy7_762",jU="_linkError_1udy7_777",TU="_linkEnvSelect_1udy7_782",W={panelContainer:CP,emptyState:EP,workspaceSummary:AP,workspaceSummaryTitle:DP,workspaceSummarySubtitle:MP,header:RP,headerInfo:IP,headerTitle:OP,taskStatusBadge:BP,taskBranch:LP,taskBlockedBadge:zP,tabBar:$P,tab:HP,active:PP,eventScroll:UP,overviewContent:VP,overviewDashboard:qP,overviewHero:GP,overviewSection:FP,overviewLabel:KP,envRow:ZP,timeline:YP,timelineRow:JP,waitingMessage:WP,errorMessage:XP,emptyCta:QP,ctaTitle:eU,ctaDescription:tU,ctaButton:nU,workspaceHeader:sU,workspaceName:aU,workspaceMeta:iU,metaRow:oU,metaLabel:rU,metaValue:lU,archiveButton:cU,repoLink:dU,metaToggle:uU,metaToggleArrow:fU,metaToggleArrowOpen:pU,progressBarContainer:mU,progressBar:hU,progressFill:gU,progressLabel:vU,metaTimestamps:yU,metaTimestamp:bU,metaPlaceholder:_U,linkedEnvList:xU,linkedEnvChip:kU,chipDismiss:SU,linkError:jU,linkEnvSelect:TU};function NU(){return a.jsx("div",{className:W.emptyState,children:"Select a task or click + to create one"})}function wU(){return a.jsx("div",{className:W.emptyState,children:"Select an environment to manage its workspaces, or add a new one."})}function CU(){const{workspaces:{workspaces:t},environments:{environments:s}}=pt(),o=xt(),r=s.length>0;return t.length>0?a.jsx(wP,{}):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(yx),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 EU="_panelContainer_1rih4_1",AU="_chatHeader_1rih4_9",DU="_chatHeaderInfo_1rih4_38",MU="_chatHeaderActions_1rih4_44",RU="_emptyState_1rih4_64",IU="_emptyTitle_1rih4_76",OU="_emptyDescription_1rih4_82",BU="_emptyHint_1rih4_88",ra={panelContainer:EU,chatHeader:AU,chatHeaderInfo:DU,chatHeaderActions:MU,emptyState:RU,emptyTitle:IU,emptyDescription:OU,emptyHint:BU};function C_(){return a.jsx("div",{className:ra.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(Te,{width:"65%",height:"2.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"85%",height:"4rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"45%",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"75%",height:"3rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"55%",height:"2.5rem",borderRadius:"var(--radius-sm)"})]})})}function LU({hasLocalEnvironment:t}){return a.jsxs("div",{className:ra.emptyState,"data-testid":"chat-empty-state",children:[a.jsx("div",{className:ra.emptyTitle,children:"Welcome to Grackle"}),a.jsx("div",{className:ra.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:ra.emptyHint,children:"Go to Settings → Environments to add one."})]})}function zU(){const t=Th(),{tasks:{tasks:s,tasksLoading:o,startTask:r},sessions:{sessions:c,sessionsLoading:d,events:u,eventsDropped:p,taskSessions:m,loadTaskSessions:g,loadSessionEvents:v,kill:b,stopGraceful:_,sendInput:k,spawn:S},environments:{environments:j,provisionEnvironment:T},personas:{personas:N}}=pt(),{showToast:C}=mn(),D=y.useRef(void 0),[A,E]=y.useState(),R=s.find(te=>te.id===Bc),B=R!=null&&R.latestSessionId?c.find(te=>te.id===R.latestSessionId)??(m[Bc]??[]).find(te=>te.id===R.latestSessionId):void 0;y.useEffect(()=>{g(Bc).catch(()=>{})},[R==null?void 0:R.latestSessionId,g]),y.useEffect(()=>{B&&B.id!==D.current&&(D.current=B.id,v(B.id).catch(()=>{}))},[B==null?void 0:B.id,v]);const M=y.useMemo(()=>{if(!B)return[];const te=u.filter(G=>G.sessionId===B.id);return jh(Sh(te))},[u,B==null?void 0:B.id]),$=j.find(te=>te.adapterType==="local"&&te.status==="connected"),Y=B!==void 0&&B.status!=="stopped"&&B.status!=="suspended",U=(B==null?void 0:B.status)==="idle";y.useEffect(()=>{A&&B&&U&&(k(B.id,A).catch(()=>{C("Failed to send message","error")}),E(void 0))},[A,U,B==null?void 0:B.id,k,C]);const X=y.useCallback((te,G,ne,H)=>{H&&E(H),r(te,G,ne).catch(()=>{})},[r]);return!R&&(d||o)?a.jsx(C_,{}):R!=null&&R.latestSessionId&&!B?a.jsx(C_,{}):a.jsxs("div",{className:ra.panelContainer,"data-testid":"chat-page",children:[Y&&a.jsxs("div",{className:ra.chatHeader,children:[a.jsxs("span",{className:ra.chatHeaderInfo,children:["Session: ",B.id.slice(0,8)," | ",B.runtime," |"," ",B.status]}),a.jsx("div",{className:ra.chatHeaderActions,children:a.jsx(_x,{label:"Stop",onClick:()=>{_(B.id).catch(()=>{})},variant:"danger",size:"sm","data-testid":"stop-split-button",options:[{label:"Stop",description:"Graceful shutdown",onClick:()=>{_(B.id).catch(()=>{})}},{label:"Kill",description:"Force kill",onClick:()=>{b(B.id).catch(()=>{})}}]})})]}),a.jsx(vh,{events:M,eventsDropped:p,sandboxProxyUrl:t,emptyState:a.jsx(LU,{hasLocalEnvironment:!!$}),onShowToast:C}),$&&a.jsx(Td,{mode:Y?"send":"start",sessionId:Y?B.id:void 0,taskId:Bc,environmentId:Y?B.environmentId:$.id,personas:N,environments:j,onSendInput:(te,G)=>{k(te,G).catch(()=>{C("Failed to send message","error")})},onSpawn:(te,G,ne)=>{S(te,G,ne).catch(()=>{})},onStartTask:X,onProvisionEnvironment:te=>{T(te).catch(()=>{})},onShowToast:C})]})}const $U="_container_h5uod_1",HU="_toolbar_h5uod_9",PU="_viewToggle_h5uod_18",UU="_toolbarControls_h5uod_23",VU="_internalsToggle_h5uod_30",qU="_refreshButton_h5uod_39",GU="_toggleButton_h5uod_53",FU="_toggleActive_h5uod_67",as={container:$U,toolbar:HU,viewToggle:PU,toolbarControls:UU,internalsToggle:VU,refreshButton:qU,toggleButton:GU,toggleActive:FU};function KU(){const{streams:{streams:t,streamsLoading:s,streamsLoadedOnce:o,streamsLoadError:r,loadStreams:c,liveMessages:d,loadTranscript:u},sessions:{sessions:p},tasks:{tasks:m}}=pt(),{resolvedThemeId:g}=xh(),[v,b]=y.useState("list"),[_,k]=y.useState(!1),[S,j]=y.useState(void 0),[T,N]=y.useState(!1);y.useEffect(()=>{if(S===void 0){N(!1);return}let E=!0;return N(!0),u(S).then(()=>{E&&N(!1)}).catch(()=>{E&&N(!1)}),()=>{E=!1}},[S,u]);const C=y.useRef(!1);y.useEffect(()=>{if(!C.current){C.current=!0;return}c(_).catch(()=>{})},[_,c]);const D=y.useCallback(()=>{c(_).catch(()=>{})},[c,_]),A=S!==void 0?t.find(E=>E.id===S):void 0;return a.jsxs("div",{className:as.container,"data-testid":"coordination-page",children:[a.jsxs("div",{className:as.toolbar,children:[a.jsxs("div",{className:as.viewToggle,role:"group","aria-label":"Coordination view","data-testid":"coordination-view-toggle",children:[a.jsx("button",{type:"button",className:v==="list"?`${as.toggleButton} ${as.toggleActive}`:as.toggleButton,"aria-pressed":v==="list","data-testid":"coordination-view-list",onClick:()=>b("list"),children:"List"}),a.jsx("button",{type:"button",className:v==="graph"?`${as.toggleButton} ${as.toggleActive}`:as.toggleButton,"aria-pressed":v==="graph","data-testid":"coordination-view-graph",onClick:()=>b("graph"),children:"Graph"})]}),a.jsxs("div",{className:as.toolbarControls,children:[a.jsxs("label",{className:as.internalsToggle,children:[a.jsx("input",{type:"checkbox",checked:_,onChange:E=>k(E.target.checked),"data-testid":"coordination-show-internals"}),"Show internals"]}),a.jsx("button",{type:"button",className:as.refreshButton,onClick:D,"aria-label":"Refresh streams","data-testid":"coordination-refresh",children:"Refresh"})]})]}),v==="list"?a.jsx(fz,{streams:t,sessions:p,tasks:m,loading:s,loadError:r,loadedOnce:o,showInternals:_,onToggleInternals:k,selectedStreamId:S,onSelectStream:j,onRefresh:D,hideHeaderControls:!0}):a.jsx(B$,{streams:t,sessions:p,selectedStreamId:S,onSelectStream:j,recentMessages:d,resolvedThemeId:g}),A&&a.jsx(Wz,{stream:A,messages:d[A.id]??[],transcriptLoading:T,onClose:()=>j(void 0)})]})}function ZU(){const t=L9(),[s]=Om(),o=s.get("env")??"",{sessions:{sendInput:r,spawn:c},tasks:{startTask:d},personas:{personas:u},environments:{environments:p,provisionEnvironment:m}}=pt(),{showToast:g}=mn();return a.jsxs("div",{className:W.panelContainer,children:[a.jsx(ma,{segments:t}),a.jsx("div",{className:W.emptyState,children:"Enter a prompt below to start a new session"}),a.jsx(Td,{mode:"spawn",environmentId:o,showPersonaSelect:!0,personas:u,environments:p,onSendInput:(v,b)=>{r(v,b).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 YU(){return a.jsxs("div",{className:W.panelContainer,"aria-hidden":"true",children:[a.jsxs("div",{className:W.header,children:[a.jsx("span",{children:a.jsx(Te,{width:"10rem",height:"0.875rem"})}),a.jsx("span",{className:W.headerInfo,children:a.jsx(Te,{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(Te,{width:"70%",height:"2.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"90%",height:"4rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"50%",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"80%",height:"3.5rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"60%",height:"2.5rem",borderRadius:"var(--radius-sm)"})]})})]})}function JU({sessionId:t,session:s,isActive:o,onStop:r,onKill:c}){return a.jsxs("div",{className:W.header,children:[a.jsxs("span",{children:[(s==null?void 0:s.parentSessionId)&&a.jsxs(hl,{to:gl(s.parentSessionId),"data-testid":"session-parent-link",title:"Back to parent session",children:["← parent"," | "]}),"Session: ",t.slice(0,8),s&&` | ${s.runtime} | ${s.endReason||s.status}`,s!=null&&s.inputTokens||s!=null&&s.outputTokens||s!=null&&s.costMillicents?` | ${Ho((s.inputTokens??0)+(s.outputTokens??0))} tokens · ${Ms(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(_x,{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 WU({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 XU(){const{sessionId:t}=pa(),s=Th(),{sessions:{events:o,eventsDropped:r,sessions:c,sessionsLoading:d,kill:u,stopGraceful:p,loadSessionEvents:m,sendInput:g,spawn:v},tasks:{startTask:b},personas:{personas:_},environments:{environments:k,provisionEnvironment:S}}=pt(),{showToast:j}=mn(),T=y.useRef(void 0),N=z9(t),C=c.find(E=>E.id===t)??void 0,D=y.useMemo(()=>{const E=t?o.filter(R=>R.sessionId===t):[];return jh(Sh(E))},[o,t]);if(y.useEffect(()=>{t&&t!==T.current&&(T.current=t,m(t).catch(()=>{}))},[t,m]),!C&&d)return a.jsx(YU,{});if(!t)return a.jsx("div",{className:W.emptyState,children:"No session selected"});const A=(C==null?void 0:C.status)==="running"||(C==null?void 0:C.status)==="idle";return a.jsxs("div",{className:W.panelContainer,children:[a.jsx(ma,{segments:N}),a.jsx(JU,{sessionId:t,session:C,isActive:A,onStop:()=>{p(t).catch(()=>{})},onKill:()=>{u(t).catch(()=>{})}}),a.jsx(vh,{events:D,eventsDropped:r,emptyState:a.jsx(WU,{session:C}),onShowToast:j,sandboxProxyUrl:s,sessions:c,currentSessionId:t,environments:k,personas:_,onForward:(E,R)=>g(E,R)}),A&&a.jsx(Td,{mode:"send",sessionId:t,environmentId:C.environmentId,personas:_,environments:k,onSendInput:(E,R)=>{g(E,R).catch(()=>{j("Failed to send message","error")})},onSpawn:(E,R,B)=>{v(E,R,B).catch(()=>{})},onStartTask:(E,R,B)=>{b(E,R,B).catch(()=>{})},onProvisionEnvironment:E=>{S(E).catch(()=>{})},onShowToast:j})]})}function QU(t){if(!t)return!1;const s=t.tagName;return!!(s==="INPUT"||s==="TEXTAREA"||s==="SELECT"||t.isContentEditable)}function Ya(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&&QU(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 eV(){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(Te,{width:"12rem",height:"1.25rem"})})}),a.jsx("div",{className:W.metaToggle,style:{cursor:"default"},children:a.jsx(Te,{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(Te,{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(pm,{lines:2},s))})]})}function E_(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 Up=100;function tV(t){try{const s=new URL(t);return s.protocol!=="http:"&&s.protocol!=="https:"?void 0:s.toString()}catch{return}}function nV(){const{workspaceId:t,environmentId:s}=pa(),o=xt(),{tasks:{tasks:r},environments:{environments:c},workspaces:{workspaces:d,workspacesLoading:u,archiveWorkspace:p,updateWorkspace:m,linkEnvironment:g,unlinkEnvironment:v,linkOperationError:b,clearLinkOperationError:_},personas:{personas:k},sessions:{sessions:S},usageCache:j,loadUsage:T}=pt(),{resolvedThemeId:N}=xh(),[C,D]=y.useState("tasks"),[A,E]=y.useState(!1),[R,B]=y.useState(null),[M,$]=y.useState(!1),Y=y.useRef(void 0),U=d.find(se=>se.id===t),X=s??(U==null?void 0:U.linkedEnvironmentIds[0])??"",te=$9(t,X,d,c);Ya({key:"1"},()=>D("graph")),Ya({key:"2"},()=>D("board")),Ya({key:"3"},()=>D("tasks")),y.useEffect(()=>{const se=Y.current;Y.current=t,!(se===void 0||se===t)&&R!==null&&B(null)},[t,R]);const G=S.reduce((se,ce)=>se+(ce.costMillicents??0),0);y.useEffect(()=>{t&&T("workspace",t).catch(()=>{})},[t,T,G]);const ne=t?j[`workspace:${t}`]:void 0,H=r.filter(se=>se.workspaceId===t),O=H.filter(se=>se.status==="complete").length,q=H.length,ge=q>0?Math.round(O/q*100):0;return!U&&u?a.jsx(eV,{}):a.jsxs("div",{className:W.panelContainer,children:[a.jsx(ma,{segments:te}),a.jsxs("div",{className:W.workspaceHeader,children:[a.jsx("span",{className:W.workspaceName,"data-testid":"workspace-name",children:a.jsx($t,{value:(U==null?void 0:U.name)||"",onSave:se=>{U&&m(U.id,{name:se}).catch(()=>{})},validate:se=>{const ce=se.trim();if(!ce)return"Name is required";if(ce.length>Up)return`Max ${Up} characters`},maxLength:Up,fieldId:"name",activeFieldId:R,onActivate:B,ariaLabel:"Workspace name",renderDisplay:se=>se||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:()=>$(!M),"aria-expanded":!M,"aria-controls":"workspace-meta-panel","data-testid":"meta-toggle",children:[a.jsx("span",{className:`${W.metaToggleArrow} ${M?"":W.metaToggleArrowOpen}`,children:"▶"}),"Details"]}),!M&&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(gm,{value:(U==null?void 0:U.description)||"",onSave:se=>{U&&m(U.id,{description:se}).catch(()=>{})},fieldId:"description",activeFieldId:R,onActivate:B,renderDisplay:se=>se?a.jsx("span",{className:W.overviewMarkdown,children:a.jsx(jm,{remarkPlugins:[Tm],children:se})}):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($t,{value:(U==null?void 0:U.repoUrl)||"",onSave:se=>{U&&m(U.id,{repoUrl:se}).catch(()=>{})},validate:se=>{const ce=se.trim();if(ce&&!/^https?:\/\/.+/.test(ce))return"Must be a valid http(s) URL"},fieldId:"repoUrl",activeFieldId:R,onActivate:B,renderDisplay:se=>{const ce=tV(se);return ce?a.jsx("a",{className:W.repoLink,href:ce,target:"_blank",rel:"noopener noreferrer",onClick:me=>me.stopPropagation(),children:se}):se?a.jsx("span",{children:se}):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:U?a.jsxs("span",{className:W.linkedEnvList,children:[(()=>{const se=[...new Set(U.linkedEnvironmentIds)];return se.length===0?a.jsx("span",{className:W.metaPlaceholder,children:"None"}):se.map(ce=>{const me=c.find(xe=>xe.id===ce);return a.jsxs("span",{className:W.linkedEnvChip,"data-testid":`linked-env-${ce}`,children:[(me==null?void 0:me.displayName)||ce,a.jsx("button",{className:W.chipDismiss,onClick:()=>{v(U.id,ce).catch(()=>{})},title:`Unlink ${(me==null?void 0:me.displayName)||ce}`,"aria-label":`Unlink ${(me==null?void 0:me.displayName)||ce}`,"data-testid":`unlink-env-${ce}`,disabled:se.length<=1,children:"x"})]},ce)})})(),(()=>{const se=new Set(U.linkedEnvironmentIds),ce=c.filter(me=>!se.has(me.id));return ce.length===0?null:a.jsxs("select",{className:W.linkEnvSelect,value:"",onChange:me=>{me.target.value&&g(U.id,me.target.value).catch(()=>{})},"aria-label":"Link environment","data-testid":"link-env-select",children:[a.jsx("option",{value:"",children:"+ Link"}),ce.map(me=>a.jsx("option",{value:me.id,children:me.displayName||me.id},me.id))]})})(),b&&a.jsxs("span",{className:W.linkError,"data-testid":"link-operation-error",role:"alert",children:[b,a.jsx("button",{className:W.chipDismiss,onClick:_,"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(xd,{value:(U==null?void 0:U.defaultPersonaId)||"",onSave:se=>{U&&m(U.id,{defaultPersonaId:se}).catch(()=>{})},options:[{value:"",label:"(Inherit)"},...k.map(se=>({value:se.id,label:se.name}))],fieldId:"defaultPersonaId",activeFieldId:R,onActivate:B,renderDisplay:se=>{const ce=k.find(me=>me.id===se);if(ce)return a.jsx("span",{children:ce.name})},placeholder:(U==null?void 0:U.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(i5,{checked:(U==null?void 0:U.useWorktrees)??!0,onChange:se=>{U&&m(U.id,{useWorktrees:se}).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($t,{value:(U==null?void 0:U.workingDirectory)||"",onSave:se=>{U&&m(U.id,{workingDirectory:se}).catch(()=>{})},fieldId:"workingDirectory",activeFieldId:R,onActivate:B,placeholder:"Default (server default)",ariaLabel:"Working directory","data-testid":"edit-working-directory"})})]}),U&&a.jsxs("div",{className:W.metaTimestamps,children:[a.jsxs("span",{className:W.metaTimestamp,children:["Created ",E_(U.createdAt)]}),U.updatedAt&&U.updatedAt!==U.createdAt&&a.jsxs("span",{className:W.metaTimestamp,children:["· Updated ",E_(U.updatedAt)]})]})]}),q>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:`${ge}%`}})}),a.jsxs("span",{className:W.progressLabel,children:[O,"/",q]})]}),ne&&ne.costMillicents>0&&a.jsx("div",{className:W.progressBarContainer,children:a.jsxs("span",{className:W.progressLabel,children:["Usage: ",Ms(ne.costMillicents)," (",ne.sessionCount," session",ne.sessionCount!==1?"s":"",")"]})}),U&&(U.tokenBudget>0||U.costBudgetMillicents>0)&&a.jsx("div",{className:W.progressBarContainer,children:a.jsxs("span",{className:W.progressLabel,children:["Budget:"," ",U.tokenBudget>0&&a.jsxs(a.Fragment,{children:["Tokens: ",Ho(((ne==null?void 0:ne.inputTokens)??0)+((ne==null?void 0:ne.outputTokens)??0))," /"," ",Ho(U.tokenBudget)]}),U.tokenBudget>0&&U.costBudgetMillicents>0&&" | ",U.costBudgetMillicents>0&&a.jsxs(a.Fragment,{children:["Cost: ",Ms((ne==null?void 0:ne.costMillicents)??0)," /"," ",Ms(U.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:()=>D("graph"),children:"Graph"}),a.jsx("button",{role:"tab","aria-selected":C==="board",className:`${W.tab} ${C==="board"?W.active:""}`,onClick:()=>D("board"),"data-testid":"board-tab",children:"Board"}),a.jsx("button",{role:"tab","aria-selected":C==="tasks",className:`${W.tab} ${C==="tasks"?W.active:""}`,onClick:()=>D("tasks"),children:"Tasks"})]}),C==="tasks"&&q>0&&a.jsxs("div",{className:W.workspaceSummary,children:[a.jsx("span",{className:W.workspaceSummaryTitle,children:`${O}/${q} tasks complete`}),a.jsx("span",{className:W.workspaceSummarySubtitle,children:"Select a task or click + to create one"})]}),C==="tasks"&&q===0&&a.jsxs("div",{className:W.emptyCta,children:[a.jsx("button",{className:W.ctaButton,onClick:()=>o(Ii(t,void 0,X)),children:"Create Task"}),a.jsx("div",{className:W.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}),C==="board"&&a.jsx(l9,{workspaceId:t,environmentId:X,tasks:r,sessions:S,personas:k,environments:c}),C==="graph"&&a.jsx(xC,{workspaceId:t,environmentId:X,tasks:r,resolvedThemeId:N}),a.jsx(bs,{isOpen:A,title:"Archive Workspace?",description:"This will hide the workspace from the sidebar. Tasks will not be deleted.",confirmLabel:"Archive",onConfirm:()=>{U&&(p(U.id).catch(()=>{}),o("/",{replace:!0})),E(!1)},onCancel:()=>E(!1)})]})}const sV="_container_3pgew_1",aV="_header_3pgew_8",iV="_headerTitle_3pgew_35",oV="_headerActions_3pgew_44",rV="_body_3pgew_51",lV="_btnPrimary_3pgew_63",cV="_btnGhost_3pgew_94",dV="_error_3pgew_116",Ka={container:sV,header:aV,headerTitle:iV,headerActions:oV,body:rV,btnPrimary:lV,btnGhost:cV,error:dV};function uV(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 fV=[{label:"Home",url:Fo},{label:"New Workspace",url:void 0}];function pV(){const[t]=Om(),s=t.get("environment")??void 0,{environments:{environments:o},personas:{personas:r},workspaces:{createWorkspace:c,workspaceCreating:d}}=pt(),{showToast:u}=mn(),p=xt(),[m,g]=y.useState(()=>{var T;return b9(void 0,s||((T=o[0])==null?void 0:T.id))}),[v,b]=y.useState(),[_,k]=y.useState();y.useEffect(()=>{s||m.environmentId||o.length===0||g(T=>{var N;return T.environmentId?T:{...T,environmentId:((N=o[0])==null?void 0:N.id)??""}})},[o,s,m.environmentId]);const S=()=>{const T=uV(m);if(T){b(T),k(void 0);return}b(void 0),k(void 0),c(m.name.trim(),m.description,m.repoUrl.trim(),m.environmentId,m.defaultPersonaId,m.useWorktrees,m.workingDirectory,N=>{u("Workspace created","success"),p(Ci(N.id,N.linkedEnvironmentIds[0]??m.environmentId),{replace:!0})},N=>{k(N)}).catch(()=>{})},j=()=>{p(s?$o(s):Fo,{replace:!0})};return a.jsxs("div",{className:Ka.container,children:[a.jsxs("div",{className:Ka.header,children:[a.jsx("div",{className:Ka.headerTitle,children:a.jsx(ma,{segments:fV})}),a.jsxs("div",{className:Ka.headerActions,children:[a.jsx("button",{className:Ka.btnGhost,onClick:j,disabled:d,"data-testid":"workspace-create-cancel",children:"Cancel"}),a.jsx("button",{className:Ka.btnPrimary,onClick:S,disabled:d||!m.name.trim()||!m.environmentId,"data-testid":"workspace-create-save",children:d?a.jsx(W1,{size:"sm",label:"Creating"}):"Create Workspace"})]})]}),a.jsxs("div",{className:Ka.body,children:[a.jsx(x9,{values:m,onChange:T=>{g(T),b(void 0),k(void 0)},environments:o,personas:r,errors:v,disabled:d,autoFocusName:!0}),_&&a.jsx("div",{className:Ka.error,"data-testid":"workspace-create-submit-error",children:_})]})]})}function A_(){const{workspaceId:t,environmentId:s}=pa(),[o]=Om(),r=t??o.get("workspace")??"",c=o.get("parent")??void 0,{tasks:{tasks:d,createTask:u,updateTask:p},workspaces:{workspaces:m},personas:{personas:g}}=pt(),{showToast:v}=mn();return a.jsx(uk,{mode:"new",workspaceId:r,parentTaskId:c,environmentId:s,tasks:d,workspaces:m,personas:g,onCreateTask:(b,_,k,S,j,T,N,C,D,A)=>{u(b,_,k,S,j,T,N,C,D,A).catch(()=>{})},onUpdateTask:(b,_,k,S,j)=>{p(b,_,k,S,j).catch(()=>{})},onShowToast:v})}function mV(){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(Te,{width:"12rem",height:"1rem"}),a.jsx(Te,{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("div",{className:W.overviewContent,children:a.jsxs("div",{className:W.overviewDashboard,children:[a.jsx("div",{className:W.overviewHero,children:a.jsx(Te,{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(fm,{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(Te,{width:"0.5rem",height:"0.5rem",variant:"circular"}),a.jsx(Te,{width:"8rem",height:"0.875rem"})]})]}),a.jsxs("div",{className:W.overviewSection,children:[a.jsx("div",{className:W.overviewLabel,children:"Dependencies"}),a.jsx(fm,{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(Te,{width:"4rem",height:"0.75rem"}),a.jsx(Te,{width:"10rem",height:"0.75rem"})]},s))})]})]})})]})}function Eo(){var va;const{taskId:t,workspaceId:s,environmentId:o}=pa(),r=Th(),c=Wt(),d=xt(),{showToast:u}=mn(),{sessions:{events:p,eventsDropped:m,sessions:g,loadSessionEvents:v,taskSessions:b,loadTaskSessions:_,sendInput:k,spawn:S,kill:j},tasks:{tasks:T,tasksLoading:N,startTask:C,stopTask:D,resumeTask:A,deleteTask:E,createTask:R,updateTask:B},environments:{environments:M,provisionEnvironment:$},workspaces:{workspaces:Y},personas:{personas:U},usageCache:X,loadUsage:te}=pt(),G=y.useRef(void 0),ne=y.useRef(void 0),H=y.useRef(void 0),O=y.useRef(void 0),q=y.useRef(void 0),ge=c.pathname.endsWith("/stream")?"stream":"overview",se=c.pathname.endsWith("/edit"),[ce,me]=y.useState(ge),[xe,De]=y.useState(!1),[ot,bt]=y.useState(void 0),[lt,Pe]=y.useState(""),[ke,ct]=y.useState(se),ue=y.useRef(ge),Ie=y.useRef(se),ee=T.find(we=>we.id===t),nt=(ee==null?void 0:ee.workspaceId)||void 0,le=Y.find(we=>we.id===nt);y.useEffect(()=>{ge!==ue.current&&(ue.current=ge,ge!==ce&&me(ge))},[ge,ce]),y.useEffect(()=>{se!==Ie.current&&(Ie.current=se,se!==ke&&ct(se))},[se,ke]),y.useEffect(()=>{if(lt===""){if(le!=null&&le.linkedEnvironmentIds[0])Pe(le.linkedEnvironmentIds[0]);else if(M.length>0){const we=M.find(Ve=>Ve.status==="connected");Pe((we==null?void 0:we.id)??M[0].id)}}},[lt,le==null?void 0:le.linkedEnvironmentIds[0],M]);const ve=ee?b[ee.id]??[]:[];let et;ot&&ve.some(we=>we.id===ot)?et=ot:et=(ee==null?void 0:ee.latestSessionId)||void 0;const on=()=>{De(!0)},xs=()=>{if(!ee)return;E(ee.id).catch(()=>{}),De(!1);const we=o??(le==null?void 0:le.linkedEnvironmentIds[0]);d(ee.workspaceId&&we?Ci(ee.workspaceId,we):"/",{replace:!0})};y.useEffect(()=>{(ee==null?void 0:ee.id)!==ne.current&&(ne.current=ee==null?void 0:ee.id,bt(void 0),Pe(""),ct(se))},[ee==null?void 0:ee.id,se]),y.useEffect(()=>{if(!(ee!=null&&ee.id))return;const we=ee.id!==O.current,Ve=ee.latestSessionId!==q.current;(we||Ve)&&(O.current=ee.id,q.current=ee.latestSessionId,_(ee.id).catch(()=>{}))},[ee==null?void 0:ee.id,ee==null?void 0:ee.latestSessionId,_]),y.useEffect(()=>{if((ee==null?void 0:ee.status)!==H.current){const we=H.current===void 0;H.current=ee==null?void 0:ee.status;const Ve=(ee==null?void 0:ee.status)==="not_started"?"overview":(ee==null?void 0:ee.status)==="working"||(ee==null?void 0:ee.status)==="paused"?"stream":(ee==null?void 0:ee.status)==="complete"?"overview":void 0;Ve&&Ve!==ce&&!(we&&ge!=="overview")&&me(Ve)}},[ee==null?void 0:ee.status,ce,ge]);const ds=y.useMemo(()=>new Map(T.map(we=>[we.id,we])),[T]),zs=y.useMemo(()=>{const we=et?p.filter(Ve=>Ve.sessionId===et):[];return jh(Sh(we))},[p,et]),ha=ee?ee.dependsOn.some(we=>{const Ve=ds.get(we);return Ve!==void 0&&Ve.status!=="complete"}):!1,Bi=y.useMemo(()=>H9(t,o,Y,M,ds),[t,o,Y,M,ds]);y.useEffect(()=>{et&&et!==G.current&&(G.current=et,v(et).catch(()=>{}))},[et,v]);const Xt=ve.reduce((we,Ve)=>we+(Ve.costMillicents??0),0);y.useEffect(()=>{ee&&(te("task",ee.id).catch(()=>{}),ee.childTaskIds.length>0&&te("task_tree",ee.id).catch(()=>{}))},[ee==null?void 0:ee.id,ee==null?void 0:ee.childTaskIds.length,te,Xt]);const ei=ee?`task:${ee.id}`:"",ti=ei in X?X[ei]:void 0,ga=ee?`task_tree:${ee.id}`:"",$s=ee&&ee.childTaskIds.length>0&&ga in X?X[ga]:void 0,ks=we=>{me(we),d(ls(t,we==="overview"?void 0:we,s,o))};return Ya({key:"1"},()=>ks("overview")),Ya({key:"2"},()=>ks("stream")),!ee&&N?a.jsx(mV,{}):a.jsxs("div",{className:W.panelContainer,children:[a.jsx(ma,{segments:Bi}),a.jsxs("div",{className:W.header,children:[a.jsxs("span",{className:W.headerTitle,children:[a.jsx("span",{"data-testid":"task-title",children:(ee==null?void 0:ee.title)||t}),ee&&a.jsx("span",{className:W.taskStatusBadge,"data-testid":"task-status",children:ee.status}),(ee==null?void 0:ee.branch)&&a.jsx("span",{className:W.taskBranch,children:ee.branch}),ha&&a.jsx("span",{className:W.taskBlockedBadge,children:"blocked"})]}),ee&&a.jsx(DL,{task:ee,sessionId:et,latestSessionStatus:(va=g.find(we=>we.id===ee.latestSessionId))==null?void 0:va.status,isBlocked:ha,onStart:()=>{C(ee.id,void 0,lt).catch(we=>{const Ve=we instanceof Bs?we.message:"Failed to start task";u(Ve,"error")})},onResume:()=>{A(ee.id).catch(()=>{})},onStop:()=>{D(ee.id).catch(()=>{})},onPause:()=>{et&&j(et).catch(()=>{})},onDelete:on,onEdit:()=>ct(!0)})]}),a.jsxs("div",{className:W.tabBar,role:"tablist","aria-label":"Task view",children:[a.jsx("button",{role:"tab","aria-selected":ce==="overview",className:`${W.tab} ${ce==="overview"?W.active:""}`,onClick:()=>ks("overview"),children:"Overview"}),a.jsx("button",{role:"tab","aria-selected":ce==="stream",className:`${W.tab} ${ce==="stream"?W.active:""}`,onClick:()=>ks("stream"),children:"Stream"})]}),a.jsxs(os,{mode:"wait",children:[ce==="overview"&&a.jsx(Ut.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:ke&&ee?a.jsx(uk,{mode:"edit",taskId:ee.id,workspaceId:nt,environmentId:o,tasks:T,workspaces:Y,personas:U,onCreateTask:(we,Ve,Qt,Ct,vn,en,Li,zi,$i,ya)=>{R(we,Ve,Qt,Ct,vn,en,Li,zi,$i,ya).catch(()=>{})},onUpdateTask:(we,Ve,Qt,Ct,vn)=>{B(we,Ve,Qt,Ct,vn).catch(()=>{})},onEditDone:()=>{se?d(ls(ee.id,void 0,s,o),{replace:!0}):ct(!1)},onShowToast:u}):ee?a.jsx(y8,{task:ee,tasksById:ds,environments:M,workspaces:Y,taskSessions:ve,selectedEnvId:lt,taskUsage:ti,treeUsage:$s}):a.jsx("div",{className:W.waitingMessage,children:"No additional details"})},"overview"),ce==="stream"&&a.jsxs(Ut.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(L6,{taskSessions:ve,selectedSessionId:et,onSelect:we=>bt(we)}),a.jsx(vh,{events:zs,eventsDropped:m,sandboxProxyUrl:r,emptyState:!et&&ee?ha?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:()=>{C(ee.id,void 0,lt).catch(we=>{const Ve=we instanceof Bs?we.message:"Failed to start task";u(Ve,"error")})},children:"Start Task"}),a.jsx("div",{className:W.ctaDescription,children:"Click to begin agent execution"})]}):et&&zs.length===0?a.jsx("div",{className:W.waitingMessage,children:"Waiting for events..."}):void 0,onShowToast:u})]},"stream")]}),(()=>{if(!ee||ee.status!=="working"&&ee.status!=="paused")return;const we=et?g.find(Ve=>Ve.id===et):void 0;if(!(!we||we.status==="stopped"))return a.jsx(Td,{mode:"send",sessionId:we.id,environmentId:we.environmentId,personas:U,environments:M,onSendInput:(Ve,Qt)=>{k(Ve,Qt).catch(()=>{u("Failed to send message","error")})},onSpawn:(Ve,Qt,Ct)=>{S(Ve,Qt,Ct,void 0,nt).catch(()=>{})},onStartTask:(Ve,Qt,Ct)=>{C(Ve,Qt,Ct).catch(()=>{})},onProvisionEnvironment:Ve=>{$(Ve).catch(()=>{})},onShowToast:u})})(),ee&&a.jsx(bs,{isOpen:xe,title:"Delete Task?",description:`"${ee.title}" will be permanently removed.`,onConfirm:xs,onCancel:()=>De(!1)})]})}function hV(){const{environments:{environments:t,addEnvironment:s,updateEnvironment:o},codespaces:{codespaces:r,codespaceError:c,codespaceListError:d,codespaceCreating:u,listCodespaces:p,createCodespace:m},dockerContainers:{dockerContainers:g,dockerContainersError:v,listDockerContainers:b},githubAccounts:{githubAccounts:_}}=pt(),{showToast:k}=mn();return a.jsx(fk,{mode:"new",environments:t,githubAccounts:_,onAddEnvironment:(S,j,T,N)=>{s(S,j,T,N).catch(()=>{})},onUpdateEnvironment:(S,j)=>{o(S,j).catch(()=>{})},onListCodespaces:S=>{p(S).catch(()=>{})},codespaces:r,codespaceError:c,codespaceListError:d,codespaceCreating:u,onCreateCodespace:(S,j)=>{m(S,j).catch(()=>{})},onListDockerContainers:()=>{b().catch(()=>{})},dockerContainers:g,dockerContainersError:v,onShowToast:k})}function gV(){const{environmentId:t}=pa(),{environments:{environments:s,addEnvironment:o,updateEnvironment:r},codespaces:{codespaces:c,codespaceError:d,codespaceListError:u,codespaceCreating:p,listCodespaces:m,createCodespace:g},dockerContainers:{dockerContainers:v,dockerContainersError:b,listDockerContainers:_},githubAccounts:{githubAccounts:k}}=pt(),{showToast:S}=mn();return a.jsx(fk,{mode:"edit",environmentId:t,environments:s,githubAccounts:k,onAddEnvironment:(j,T,N,C)=>{o(j,T,N,C).catch(()=>{})},onUpdateEnvironment:(j,T)=>{r(j,T).catch(()=>{})},onListCodespaces:j=>{m(j).catch(()=>{})},codespaces:c,codespaceError:d,codespaceListError:u,codespaceCreating:p,onCreateCodespace:(j,T)=>{g(j,T).catch(()=>{})},onListDockerContainers:()=>{_().catch(()=>{})},dockerContainers:v,dockerContainersError:b,onShowToast:S})}const vV="_layout_11u79_1",yV="_content_11u79_8",bV="_tabPanel_11u79_14",sl={layout:vV,content:yV,tabPanel:bV};function _V(){const t=B9();return a.jsxs("div",{className:sl.layout,children:[a.jsx(ma,{segments:t}),a.jsx("div",{className:sl.content,children:a.jsx(Ri,{})})]})}const xV="_container_144a4_1",kV="_envHeader_144a4_6",SV="_envTitleRow_144a4_10",jV="_statusDot_144a4_16",TV="_envName_144a4_21",NV="_statusBadge_144a4_27",wV="_envMeta_144a4_33",CV="_metaTag_144a4_39",EV="_actions_144a4_51",AV="_provisionMessage_144a4_59",DV="_errorMessage_144a4_64",MV="_section_144a4_69",RV="_sectionHeader_144a4_73",IV="_cardList_144a4_121",OV="_card_144a4_121",BV="_cardHeader_144a4_138",LV="_cardName_144a4_144",zV="_cardActions_144a4_149",$V="_cardDescription_144a4_154",HV="_cardMeta_144a4_160",PV="_repoLink_144a4_166",UV="_empty_144a4_174",VV="_errorHint_144a4_180",qV="_btnPrimary_144a4_186",GV="_btnOutline_144a4_220",FV="_btnSmall_144a4_247",KV="_btnDanger_144a4_273",Me={container:xV,envHeader:kV,envTitleRow:SV,statusDot:jV,envName:TV,statusBadge:NV,envMeta:wV,metaTag:CV,actions:EV,provisionMessage:AV,errorMessage:DV,section:MV,sectionHeader:RV,cardList:IV,card:OV,cardHeader:BV,cardName:LV,cardActions:zV,cardDescription:$V,cardMeta:HV,repoLink:PV,empty:UV,errorHint:VV,btnPrimary:qV,btnOutline:GV,btnSmall:FV,btnDanger:KV};function ZV(){return a.jsxs("div",{className:Me.container,"aria-hidden":"true",children:[a.jsxs("div",{className:Me.envHeader,children:[a.jsxs("div",{className:Me.envTitleRow,children:[a.jsx(Te,{width:"0.875rem",height:"0.875rem",variant:"circular"}),a.jsx(Te,{width:"12rem",height:"1.5rem"}),a.jsx(Te,{width:"4rem",height:"0.875rem"})]}),a.jsxs("div",{className:Me.envMeta,children:[a.jsx(Te,{width:"6rem",height:"1.25rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"5rem",height:"1.25rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"4.5rem",height:"1.25rem",borderRadius:"var(--radius-sm)"})]})]}),a.jsxs("div",{className:Me.actions,children:[a.jsx(Te,{width:"5rem",height:"2rem",borderRadius:"var(--radius-sm)"}),a.jsx(Te,{width:"4rem",height:"2rem",borderRadius:"var(--radius-sm)"})]}),a.jsxs("div",{className:Me.section,children:[a.jsx("div",{className:Me.sectionHeader,children:a.jsx("h3",{style:{margin:0},children:"Workspaces"})}),a.jsxs("div",{className:Me.cardList,children:[a.jsx(pm,{lines:2}),a.jsx(pm,{lines:2})]})]})]})}const YV={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function JV(){const{environmentId:t}=pa(),s=xt(),{environments:{environments:o,environmentsLoading:r,provisionStatus:c,provisionEnvironment:d,stopEnvironment:u,removeEnvironment:p},workspaces:{workspaces:m,archiveWorkspace:g,linkEnvironment:v,unlinkEnvironment:b,linkOperationError:_,clearLinkOperationError:k},sessions:{sessions:S}}=pt(),[j,T]=y.useState(!1),[N,C]=y.useState(!1),[D,A]=y.useState(void 0),E=o.find(O=>O.id===t);if(!E&&r)return a.jsx(ZV,{});if(!t||!E)return a.jsx(zn,{to:zo,replace:!0});const R=m.filter(O=>O.linkedEnvironmentIds.includes(E.id)),B=S.filter(O=>O.environmentId===E.id),M=B.reduce((O,q)=>O+(q.costMillicents??0),0),$=YV[E.status]||"var(--text-tertiary)",Y=E.status==="connected",U=E.status==="connecting",X=E.status==="disconnected"||E.status==="error"||E.status==="sleeping",te=E.id in c?c[E.id]:void 0,G=()=>{p(E.id).catch(()=>{}),T(!1),s(zo,{replace:!0})},ne=()=>{C(!1),d(E.id,!0).catch(()=>{})},H=O=>{g(O).catch(()=>{}),A(void 0)};return a.jsxs("div",{className:Me.container,children:[a.jsx(bs,{isOpen:j,title:"Delete Environment?",description:`"${E.displayName||E.id}" will be permanently removed along with all its data.`,onConfirm:G,onCancel:()=>T(!1)}),a.jsx(bs,{isOpen:N,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:ne,onCancel:()=>C(!1)}),a.jsxs("div",{className:Me.envHeader,children:[a.jsxs("div",{className:Me.envTitleRow,children:[a.jsx("span",{className:Me.statusDot,style:{color:$},children:"●"}),a.jsx("h2",{className:Me.envName,children:E.displayName||E.id}),a.jsx("span",{className:Me.statusBadge,style:{color:$},children:E.status})]}),a.jsxs("div",{className:Me.envMeta,children:[a.jsxs("span",{className:Me.metaTag,children:["Adapter: ",E.adapterType]}),B.length>0&&a.jsxs("span",{className:Me.metaTag,children:[B.length," session",B.length!==1?"s":""]}),M>0&&a.jsxs("span",{className:Me.metaTag,children:["Cost: ",Ms(M)]})]})]}),a.jsxs("div",{className:Me.actions,children:[Y&&a.jsxs(a.Fragment,{children:[a.jsx("button",{className:Me.btnPrimary,onClick:()=>s(px(E.id)),children:"New Chat"}),a.jsx("button",{className:Me.btnOutline,onClick:()=>{u(E.id).catch(()=>{})},children:"Stop"}),a.jsx("button",{className:Me.btnOutline,onClick:()=>C(!0),disabled:te!==void 0,"data-testid":"env-reprovision-btn",children:"Reprovision"})]}),X&&a.jsx("button",{className:Me.btnPrimary,onClick:()=>{d(E.id).catch(()=>{})},children:E.status==="error"?"Retry":E.status==="sleeping"?"Wake":"Connect"}),U&&te!==void 0&&a.jsx("span",{className:Me.provisionMessage,children:te.message}),E.status==="error"&&(te==null?void 0:te.stage)==="error"&&a.jsx("span",{className:Me.errorMessage,children:te.message}),a.jsx("button",{className:Me.btnOutline,onClick:()=>s(uC(E.id)),"data-testid":"env-edit-btn",children:"Edit Config"}),a.jsx("button",{className:Me.btnDanger,onClick:()=>T(!0),children:"Delete"})]}),a.jsxs("div",{className:Me.section,children:[a.jsxs("div",{className:Me.sectionHeader,children:[a.jsx("h3",{children:"Workspaces"}),a.jsx("button",{className:Me.btnPrimary,onClick:()=>s(`${yx}?environment=${encodeURIComponent(E.id)}`),"data-testid":"workspace-create-button",children:"+ New Workspace"}),(()=>{const O=m.filter(q=>!q.linkedEnvironmentIds.includes(E.id)&&q.status==="active");return O.length===0?null:a.jsxs("select",{className:Me.btnPrimary,value:"",onChange:q=>{q.target.value&&v(q.target.value,E.id).catch(()=>{})},"aria-label":"Link a workspace","data-testid":"link-workspace-select",children:[a.jsx("option",{value:"",children:"+ Link Workspace"}),O.map(q=>a.jsx("option",{value:q.id,children:q.name},q.id))]})})()]}),_&&a.jsxs("p",{className:Me.errorHint,"data-testid":"link-operation-error",role:"alert",children:[_,a.jsx("button",{className:Me.btnSmall,onClick:k,"aria-label":"Dismiss error","data-testid":"dismiss-link-error",children:"Dismiss"})]}),R.length===0&&a.jsx("p",{className:Me.empty,"data-testid":"linked-workspaces-empty",children:"No workspaces yet. Create one to get started."}),a.jsx("div",{className:Me.cardList,"data-testid":"linked-workspaces-list",children:R.map(O=>a.jsx(WV,{workspace:O,confirmArchiveId:D,onOpen:()=>s(Ci(O.id,E.id)),onArchive:()=>A(O.id),onConfirmArchive:()=>H(O.id),onCancelArchive:()=>A(void 0),onUnlink:()=>{b(O.id,E.id).catch(()=>{})}},O.id))})]})]})}function WV({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:Me.card,"data-testid":"workspace-card","data-workspace-id":t.id,children:[a.jsxs("div",{className:Me.cardHeader,children:[a.jsx("strong",{className:Me.cardName,children:t.name}),a.jsxs("div",{className:Me.cardActions,children:[a.jsx("button",{className:Me.btnSmall,onClick:o,children:"Open"}),a.jsx("button",{className:Me.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:Me.btnDanger,onClick:c,children:"Confirm"}),a.jsx("button",{className:Me.btnSmall,onClick:d,children:"Cancel"})]}):a.jsx("button",{className:Me.btnSmall,onClick:r,children:"Archive"})]})]}),t.description&&a.jsx("p",{className:Me.cardDescription,children:t.description}),t.repoUrl&&a.jsx("div",{className:Me.cardMeta,children:m?a.jsx("a",{href:t.repoUrl,target:"_blank",rel:"noopener noreferrer",className:Me.repoLink,children:t.repoUrl}):a.jsx("span",{children:t.repoUrl})})]})}const XV={credentials:"Credentials","github-accounts":"GitHub Accounts",personas:"Personas",schedules:"Schedules",appearance:"Appearance",about:"About",shortcuts:"Shortcuts",plugins:"Plugins"};function QV(){const s=Wt().pathname.replace(/^\/settings\/?/,"").split("/")[0],o=XV[s],r=O9(o);return a.jsxs("div",{className:sl.layout,children:[a.jsx(ma,{segments:r}),a.jsx("div",{className:sl.content,children:a.jsx("div",{className:sl.tabPanel,children:a.jsx(Ri,{})},s)})]})}function eq(){const{tokens:{tokens:t,setToken:s,deleteToken:o},credentials:{credentialProviders:r,updateCredentialProviders:c}}=pt(),{showToast:d}=mn();return a.jsxs(a.Fragment,{children:[a.jsx(W8,{credentialProviders:r,onUpdateCredentialProviders:u=>{c(u).catch(()=>{})}}),a.jsx(eL,{tokens:t,onSetToken:(u,p,m,g,v)=>{s(u,p,m,g,v).catch(()=>{})},onDeleteToken:u=>{o(u).catch(()=>{})},onShowToast:d})]})}function tq(){const{githubAccounts:{githubAccounts:t,githubAccountsLoading:s,addGitHubAccount:o,updateGitHubAccount:r,removeGitHubAccount:c,importGitHubAccounts:d}}=pt(),{showToast:u}=mn();return a.jsx(_8,{githubAccounts:t,githubAccountsLoading:s,onAddGitHubAccount:o,onUpdateGitHubAccount:r,onRemoveGitHubAccount:c,onImportGitHubAccounts:d,onShowToast:u})}function nq(){const{personas:{personas:t,deletePersona:s},appDefaultPersonaId:o,setAppDefaultPersonaId:r}=pt(),{showToast:c}=mn(),d=xt();return a.jsx(d7,{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(pC),onNavigateToPersona:u=>d(mx(u))})}const sq="_container_1ooin_1",aq="_form_1ooin_7",iq="_formActions_1ooin_75",oq="_editableSection_1ooin_82",rq="_defaultBadge_1ooin_93",lq="_typeToggle_1ooin_107",cq="_scriptEditor_1ooin_121",dq="_optional_1ooin_128",gs={container:sq,form:aq,formActions:iq,editableSection:oq,defaultBadge:rq,typeToggle:lq,scriptEditor:cq,optional:dq},D_=[{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)"}],M_=[{value:"genaiscript",label:"genaiscript"}],uq="0";function R_(){const{personaId:t}=pa(),s=xt(),{showToast:o}=mn(),{personas:{personas:r,createPersona:c,updatePersona:d,deletePersona:u},appDefaultPersonaId:p,setAppDefaultPersonaId:m}=pt(),g=t===void 0,v=g?void 0:r.find(_=>_.id===t);if(!g&&r.length>0&&!v)return a.jsx(zn,{to:sp,replace:!0});const b=[{label:"Settings",url:Ti},{label:"Personas",url:sp},{label:g?"New Persona":(v==null?void 0:v.name)??"Persona",url:void 0}];return a.jsxs("div",{className:gs.container,children:[a.jsx(ma,{segments:b}),a.jsx(fq,{existing:v,isNew:g,appDefaultPersonaId:p,onCreatePersona:c,onUpdatePersona:d,onDeletePersona:u,onSetAppDefaultPersonaId:m,onDone:()=>{s(sp)},showToast:o})]})}function fq({existing:t,isNew:s,appDefaultPersonaId:o,onCreatePersona:r,onUpdatePersona:c,onDeletePersona:d,onSetAppDefaultPersonaId:u,onDone:p,showToast:m}){const g=xt(),[v,b]=y.useState((t==null?void 0:t.name)??""),[_,k]=y.useState((t==null?void 0:t.description)??""),[S,j]=y.useState((t==null?void 0:t.systemPrompt)??""),[T,N]=y.useState((t==null?void 0:t.runtime)??"claude-code"),[C,D]=y.useState((t==null?void 0:t.model)??"sonnet"),[A,E]=y.useState((t==null?void 0:t.maxTurns)??0),[R,B]=y.useState((t==null?void 0:t.type)==="script"?"script":"agent"),[M,$]=y.useState((t==null?void 0:t.script)??""),[Y,U]=y.useState((t==null?void 0:t.allowedMcpTools)??[]),[X,te]=y.useState(!1),[G,ne]=y.useState(null),[H,O]=y.useState(!!s);y.useEffect(()=>{if(!s&&t&&!H){O(!0),b(t.name),k(t.description),j(t.systemPrompt);const ue=t.type==="script"?"script":"agent";N(ue==="script"?t.runtime||"genaiscript":t.runtime),D(t.model),E(t.maxTurns),B(ue),$(t.script||""),U(t.allowedMcpTools)}},[s,t,H]);const q=ue=>{B(ue),ue==="script"?N("genaiscript"):T==="genaiscript"&&N("claude-code")},ge=!s&&t===void 0,se=v.trim().length>0&&!ge&&S.trim().length>0&&(R==="script"?M.trim().length>0:!!T&&!!C),ce=s&&se,me=!s&&o===(t==null?void 0:t.id),xe=!s&&t&&!me&&R==="agent"&&!!T&&!!C,De=(ue,Ie)=>{if(!ue.trim())return`${Ie} is required`},ot=ue=>{if(ue.preventDefault(),!(ge||!se)){if(t){c(t.id,v,_,S,T,C,A,R,M).then(()=>{m("Persona updated","success"),p()},()=>{m("Failed to save persona","error")});return}r(v,_,S,T,C,A,R,M,Y).then(Ie=>{m("Persona created","success"),g(mx(Ie.id),{replace:!0})},()=>{m("Failed to save persona","error")})}},bt=()=>{t&&d(t.id).then(()=>{m("Persona deleted","success"),p()},()=>{m("Failed to delete persona","error")})},lt=async(ue,Ie,ee,nt)=>ue().then(()=>{Ie(),m(ee,"success")},()=>{m(nt,"error")}),Pe=(ue,Ie)=>{if(!t)return;const ee=ue==="type"?String(Ie):R,nt=ue==="runtime"?String(Ie):ue==="type"?String(Ie)==="script"?"genaiscript":T==="genaiscript"?"claude-code":T:T,le=ue==="model"?String(Ie):C,ve=ue==="maxTurns"?Number(Ie):A,et=ue==="systemPrompt"?String(Ie):S,on=ue==="script"?String(Ie):M;lt(()=>c(t.id,ue==="name"?String(Ie):v,ue==="description"?String(Ie):_,et,nt,le,ve,ee,on),()=>{if(ue==="type"){const xs=String(Ie)==="script"?"script":"agent";B(xs),N(nt)}ue==="runtime"&&N(String(Ie)),ue==="name"&&b(String(Ie)),ue==="description"&&k(String(Ie)),ue==="systemPrompt"&&j(String(Ie)),ue==="model"&&D(String(Ie)),ue==="maxTurns"&&E(Number(Ie)),ue==="script"&&$(String(Ie))},"Persona updated","Failed to update persona").catch(()=>{})},ke=ue=>{ot(ue)},ct=()=>{t&&u(t.id).then(()=>{m("Set as app default","success")},()=>{m("Failed to set app default","error")})};return a.jsxs(a.Fragment,{children:[ge?a.jsxs("div",{className:gs.form,children:[a.jsx("h3",{children:"Edit Persona"}),a.jsx("p",{children:"Loading persona..."})]}):s?a.jsxs("form",{onSubmit:ke,className:gs.form,children:[a.jsx("h3",{children:"Create Persona"}),a.jsxs("div",{className:gs.typeToggle,"data-testid":"persona-type-toggle",children:[a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"personaType",value:"agent",checked:R==="agent",onChange:()=>q("agent")}),"Agent"]}),a.jsxs("label",{children:[a.jsx("input",{type:"radio",name:"personaType",value:"script",checked:R==="script",onChange:()=>q("script")}),"Script"]})]}),a.jsxs("label",{children:["Name",a.jsx("input",{type:"text",value:v,onChange:ue=>b(ue.target.value),placeholder:R==="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:_,onChange:ue=>k(ue.target.value),placeholder:"Brief description...","data-testid":"persona-detail-description"})]}),a.jsxs("label",{children:["Runtime",a.jsx("select",{value:T,onChange:ue=>N(ue.target.value),"data-testid":"persona-runtime-select",children:(R==="script"?M_:D_).map(ue=>a.jsx("option",{value:ue.value,children:ue.label},ue.value))})]}),R==="agent"&&a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Model",a.jsx("input",{type:"text",value:C,onChange:ue=>D(ue.target.value),placeholder:"e.g. sonnet","data-testid":"persona-detail-model"})]}),a.jsxs("label",{children:["Max Turns",a.jsx("input",{type:"number",value:A,onChange:ue=>E(parseInt(ue.target.value,10)||0),min:0,"data-testid":"persona-detail-max-turns"})]}),a.jsxs("label",{children:["System Prompt",a.jsx("textarea",{value:S,onChange:ue=>j(ue.target.value),placeholder:"You are a senior frontend engineer...",rows:10,required:!0,"data-testid":"persona-detail-prompt"})]})]}),R==="script"&&a.jsxs(a.Fragment,{children:[a.jsxs("label",{children:["Model ",a.jsx("span",{className:gs.optional,children:"(optional)"}),a.jsx("input",{type:"text",value:C,onChange:ue=>D(ue.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:ue=>j(ue.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:M,onChange:ue=>$(ue.target.value),placeholder:`script({ model: "openai:gpt-4o" });
|
|
747
|
-
|
|
748
|
-
const grackle = await host.mcpServer({
|
|
749
|
-
id: "grackle",
|
|
750
|
-
url: env.vars.GRACKLE_MCP_URL,
|
|
751
|
-
});
|
|
752
|
-
|
|
753
|
-
$\`Summarize the current tasks.\`;`,rows:20,className:gs.scriptEditor,required:!0,"data-testid":"persona-script-editor"})]})]}),R==="agent"&&a.jsxs("div",{children:[a.jsx("label",{children:"Allowed MCP Tools"}),a.jsx(d_,{selectedTools:Y,onChange:U})]}),a.jsxs("div",{className:gs.formActions,children:[a.jsx(an,{type:"submit",variant:"primary",size:"md",disabled:!ce,"data-testid":"persona-detail-save",children:"Create"}),a.jsx(an,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"persona-detail-cancel",children:"Cancel"})]})]}):t?a.jsxs("div",{className:gs.form,children:[a.jsx("h3",{children:"Edit Persona"}),a.jsxs("div",{className:gs.formActions,children:[a.jsx(an,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"persona-detail-cancel",children:"Back to Personas"}),xe&&a.jsx(an,{type:"button",variant:"ghost",size:"md",onClick:ct,"data-testid":"persona-detail-set-default",children:"Set as App Default"}),me&&a.jsx("span",{className:gs.defaultBadge,children:"App Default"}),a.jsx(an,{type:"button",variant:"danger",size:"md",onClick:()=>te(!0),"data-testid":"persona-detail-delete",children:"Delete"})]}),a.jsxs("div",{className:gs.editableSection,children:[a.jsxs("label",{children:["Name",a.jsx($t,{value:v,onSave:ue=>{Pe("name",ue)},validate:ue=>De(ue,"Name"),fieldId:"persona-name",activeFieldId:G,onActivate:ne,ariaLabel:"Persona name","data-testid":"persona-detail-name"})]}),a.jsxs("label",{children:["Description",a.jsx($t,{value:_,onSave:ue=>{Pe("description",ue)},fieldId:"persona-description",activeFieldId:G,onActivate:ne,placeholder:"Brief description...",ariaLabel:"Persona description","data-testid":"persona-detail-description"})]}),a.jsxs("label",{children:["Type",a.jsx(xd,{value:R,onSave:ue=>{Pe("type",ue)},options:[{value:"agent",label:"Agent"},{value:"script",label:"Script"}],fieldId:"persona-type",activeFieldId:G,onActivate:ne,ariaLabel:"Persona type","data-testid":"persona-type-toggle"})]}),a.jsxs("label",{children:["Runtime",a.jsx(xd,{value:T,onSave:ue=>{Pe("runtime",ue)},options:R==="script"?M_:D_,fieldId:"persona-runtime",activeFieldId:G,onActivate:ne,ariaLabel:"Persona runtime","data-testid":"persona-runtime"})]}),a.jsxs("label",{children:["Model",R==="script"?" (optional)":"",a.jsx($t,{value:C,onSave:ue=>{Pe("model",ue)},validate:R==="agent"?ue=>De(ue,"Model"):void 0,fieldId:"persona-model",activeFieldId:G,onActivate:ne,placeholder:R==="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($t,{value:String(A),onSave:ue=>{Pe("maxTurns",parseInt(ue,10)||0)},validate:ue=>/^\d+$/.test(ue.trim())?void 0:"Max Turns must be a non-negative integer",fieldId:"persona-max-turns",activeFieldId:G,onActivate:ne,placeholder:uq,ariaLabel:"Persona max turns","data-testid":"persona-detail-max-turns"})]}),a.jsxs("label",{children:["System Prompt",a.jsx(gm,{value:S,onSave:ue=>{Pe("systemPrompt",ue)},validate:ue=>De(ue,"System Prompt"),fieldId:"persona-system-prompt",activeFieldId:G,onActivate:ne,placeholder:R==="script"?"Context for the script...":"You are a senior frontend engineer...",ariaLabel:"Persona system prompt","data-testid":"persona-detail-prompt"})]}),R==="script"&&a.jsxs("label",{children:["Script",a.jsx(gm,{value:M,onSave:ue=>{Pe("script",ue)},validate:ue=>De(ue,"Script"),fieldId:"persona-script",activeFieldId:G,onActivate:ne,placeholder:`script({ model: "openai:gpt-4o" });
|
|
754
|
-
|
|
755
|
-
const grackle = await host.mcpServer({
|
|
756
|
-
id: "grackle",
|
|
757
|
-
url: env.vars.GRACKLE_MCP_URL,
|
|
758
|
-
});
|
|
759
|
-
|
|
760
|
-
$\`Summarize the current tasks.\`;`,ariaLabel:"Persona script","data-testid":"persona-script-editor"})]}),R==="agent"&&a.jsxs("div",{children:[a.jsx("label",{children:"Allowed MCP Tools"}),a.jsx(d_,{selectedTools:Y,onChange:ue=>{U(ue),lt(()=>c(t.id,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,ue),()=>{},"MCP tools updated","Failed to update MCP tools").catch(()=>{})}})]})]}),!xe&&!me&&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(bs,{isOpen:X,title:"Delete Persona?",description:`"${t==null?void 0:t.name}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:bt,onCancel:()=>te(!1)})]})}function pq(){const{schedules:{schedules:t,deleteSchedule:s,updateSchedule:o},personas:{personas:r}}=pt(),{showToast:c}=mn(),d=xt();return a.jsx($7,{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(mC),onNavigateToSchedule:u=>d(hx(u))})}const mq="_container_1g4qh_1",hq="_form_1g4qh_7",gq="_formActions_1g4qh_66",vq="_editableSection_1g4qh_73",yq="_helperText_1g4qh_84",bq="_metaSection_1g4qh_90",_q="_optional_1g4qh_108",xq="_readonlyValue_1g4qh_113",Bn={container:mq,form:hq,formActions:gq,editableSection:vq,helperText:yq,metaSection:bq,optional:_q,readonlyValue:xq};function I_(){const{scheduleId:t}=pa(),s=xt(),{showToast:o}=mn(),{schedules:{schedules:r,schedulesLoading:c,createSchedule:d,updateSchedule:u,deleteSchedule:p},personas:{personas:m},workspaces:{workspaces:g}}=pt(),v=t===void 0,b=v?void 0:r.find(k=>k.id===t);if(!v&&!c&&r.length>0&&!b)return a.jsx(zn,{to:ap,replace:!0});const _=[{label:"Settings",url:Ti},{label:"Schedules",url:ap},{label:v?"New Schedule":(b==null?void 0:b.title)??"Schedule",url:void 0}];return a.jsxs("div",{className:Bn.container,children:[a.jsx(ma,{segments:_}),a.jsx(kq,{existing:b,isNew:v,personas:m,workspaces:g,onCreateSchedule:d,onUpdateSchedule:u,onDeleteSchedule:p,onDone:()=>{s(ap)},showToast:o})]})}function kq({existing:t,isNew:s,personas:o,workspaces:r,onCreateSchedule:c,onUpdateSchedule:d,onDeleteSchedule:u,onDone:p,showToast:m}){var H;const g=xt(),[v,b]=y.useState((t==null?void 0:t.title)??""),[_,k]=y.useState((t==null?void 0:t.description)??""),[S,j]=y.useState((t==null?void 0:t.scheduleExpression)??""),[T,N]=y.useState((t==null?void 0:t.personaId)??""),[C,D]=y.useState((t==null?void 0:t.workspaceId)??""),[A,E]=y.useState(!1),[R,B]=y.useState(null);y.useEffect(()=>{s||t&&R===null&&(b(t.title),k(t.description),j(t.scheduleExpression),N(t.personaId),D(t.workspaceId))},[s,t,R]);const M=!s&&t===void 0,$=s&&v.trim().length>0&&S.trim().length>0&&T.length>0,Y=o.map(O=>({value:O.id,label:O.name})),U=[{value:"",label:"System-level (no workspace)"},...r.map(O=>({value:O.id,label:O.name}))],X=O=>{O.preventDefault(),$&&c(v,_,S,T,C||void 0).then(q=>{m("Schedule created","success"),g(hx(q.id),{replace:!0})},()=>{m("Failed to create schedule","error")})},te=(O,q)=>{t&&d(t.id,{[O]:q}).then(()=>{m("Schedule updated","success"),O==="title"&&b(String(q)),O==="description"&&k(String(q)),O==="scheduleExpression"&&j(String(q)),O==="personaId"&&N(String(q))},()=>{m("Failed to update schedule","error")})},G=()=>{if(!t)return;const O=!t.enabled;d(t.id,{enabled:O}).then(()=>{m(O?"Schedule enabled":"Schedule disabled","success")},()=>{m("Failed to update schedule","error")})},ne=()=>{t&&u(t.id).then(()=>{m("Schedule deleted","success"),p()},()=>{m("Failed to delete schedule","error")})};return a.jsxs(a.Fragment,{children:[M?a.jsxs("div",{className:Bn.form,children:[a.jsx("h3",{children:"Edit Schedule"}),a.jsx("p",{children:"Loading schedule..."})]}):s?a.jsxs("form",{onSubmit:X,className:Bn.form,children:[a.jsx("h3",{children:"Create Schedule"}),a.jsxs("label",{children:["Title",a.jsx("input",{type:"text",value:v,onChange:O=>b(O.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:_,onChange:O=>k(O.target.value),placeholder:"Brief description...","data-testid":"schedule-detail-description"})]}),a.jsxs("label",{children:["Schedule Expression",a.jsx("input",{type:"text",value:S,onChange:O=>j(O.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:T,onChange:O=>N(O.target.value),required:!0,"data-testid":"schedule-detail-persona",children:[a.jsx("option",{value:"",children:"Select a persona..."}),Y.map(O=>a.jsx("option",{value:O.value,children:O.label},O.value))]})]}),a.jsxs("label",{children:["Workspace ",a.jsx("span",{className:Bn.optional,children:"(optional)"}),a.jsx("select",{value:C,onChange:O=>D(O.target.value),"data-testid":"schedule-detail-workspace",children:U.map(O=>a.jsx("option",{value:O.value,children:O.label},O.value))})]}),a.jsxs("div",{className:Bn.formActions,children:[a.jsx(an,{type:"submit",variant:"primary",size:"md",disabled:!$,"data-testid":"schedule-detail-save",children:"Create"}),a.jsx(an,{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(an,{type:"button",variant:"outline",size:"md",onClick:p,"data-testid":"schedule-detail-cancel",children:"Back to Schedules"}),a.jsx(an,{type:"button",variant:t.enabled?"ghost":"primary",size:"md",onClick:G,"data-testid":"schedule-detail-toggle",children:t.enabled?"Disable":"Enable"}),a.jsx(an,{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($t,{value:v,onSave:O=>{te("title",O)},validate:O=>O.trim()?void 0:"Title is required",fieldId:"schedule-title",activeFieldId:R,onActivate:B,ariaLabel:"Schedule title","data-testid":"schedule-detail-title"})]}),a.jsxs("label",{children:["Description",a.jsx($t,{value:_,onSave:O=>{te("description",O)},fieldId:"schedule-description",activeFieldId:R,onActivate:B,placeholder:"Brief description...",ariaLabel:"Schedule description","data-testid":"schedule-detail-description"})]}),a.jsxs("label",{children:["Schedule Expression",a.jsx($t,{value:S,onSave:O=>{te("scheduleExpression",O)},validate:O=>O.trim()?void 0:"Schedule expression is required",fieldId:"schedule-expression",activeFieldId:R,onActivate:B,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(xd,{value:T,onSave:O=>{te("personaId",O)},options:Y,fieldId:"schedule-persona",activeFieldId:R,onActivate:B,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:((H=r.find(O=>O.id===t.workspaceId))==null?void 0:H.name)??"System-level (no workspace)"})]})]}),a.jsxs("div",{className:Bn.metaSection,children:[t.lastRunAt?a.jsxs("span",{children:["Last run: ",hm(t.lastRunAt)]}):a.jsx("span",{children:"Last run: Never"}),t.enabled&&t.nextRunAt?a.jsxs("span",{children:["Next run: ",tk(t.nextRunAt)]}):null,t.runCount>0&&a.jsxs("span",{children:["Total runs: ",t.runCount]}),a.jsxs("span",{children:["Created: ",hm(t.createdAt)]})]})]}):null,a.jsx(bs,{isOpen:A,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:ne,onCancel:()=>E(!1)})]})}function Sq(){const{themeId:t,resolvedThemeId:s,setTheme:o,preferSystem:r,setPreferSystem:c}=xh();return a.jsx(tL,{themeId:t,resolvedThemeId:s,onSetTheme:o,preferSystem:r,onSetPreferSystem:c})}function jq(){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 Tq(){const{connectionStatus:t,environments:{environments:s},sessions:{sessions:o}}=pt(),r=jq();return a.jsxs(a.Fragment,{children:[r&&a.jsx(fB,{currentVersion:r.currentVersion,latestVersion:r.latestVersion,updateAvailable:r.updateAvailable,isDocker:r.isDocker}),a.jsx(aL,{connectionStatus:t,environments:s,sessions:o})]})}function Nq(){return a.jsx(Y8,{})}function wq(){const{plugins:{plugins:t,pluginsLoading:s,setPluginEnabled:o}}=pt();return a.jsx(b8,{plugins:t,loading:s,onSetPluginEnabled:(r,c)=>{o(r,c).catch(()=>{})}})}const O_=Ii();function Cq(){const t=xt();return Ya({key:"?"},()=>{t(hC)}),Ya({key:"n"},()=>{t(O_)}),Ya({key:"N"},()=>{t(O_)}),a.jsx(a.Fragment,{})}function $d(t){const s=A9();y.useLayoutEffect(()=>(s(t),()=>{s(void 0)}),[t,s])}function Eq(){const{workspaces:{workspaces:t},tasks:{tasks:s}}=pt(),o=y.useMemo(()=>a.jsx(UO,{workspaces:t,tasks:s}),[t,s]);return $d(o),a.jsx(Ri,{})}function Aq(){const{environments:{environments:t}}=pt(),s=y.useMemo(()=>a.jsx(cO,{environments:t}),[t]);return $d(s),a.jsx(Ri,{})}function Dq(){const t=y.useMemo(()=>a.jsx(q7,{}),[]);return $d(t),a.jsx(Ri,{})}function Mq(){const{knowledge:t,workspaces:{workspaces:s}}=pt(),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 $d(u),a.jsx(Ri,{})}const Rq="_wizard_1260s_1",Iq="_container_1260s_10",Oq="_stepContent_1260s_19",Bq="_logoArea_1260s_28",Lq="_logoImage_1260s_32",zq="_heading_1260s_41",$q="_tagline_1260s_49",Hq="_subtitle_1260s_56",Pq="_featureList_1260s_64",Uq="_runtimeGrid_1260s_89",Vq="_runtimeCard_1260s_101",qq="_runtimeName_1260s_133",Gq="_runtimeDescription_1260s_139",Fq="_buttonRow_1260s_144",Kq="_primaryButton_1260s_151",Zq="_ghostButton_1260s_185",Yq="_dots_1260s_213",Jq="_dot_1260s_213",Xe={wizard:Rq,container:Iq,stepContent:Oq,logoArea:Bq,logoImage:Lq,heading:zq,tagline:$q,subtitle:Hq,featureList:Pq,runtimeGrid:Uq,runtimeCard:Vq,runtimeName:qq,runtimeDescription:Gq,buttonRow:Fq,primaryButton:Kq,ghostButton:Zq,dots:Yq,dot:Jq};function Wq({onNext:t}){return a.jsxs("div",{className:Xe.stepContent,"data-testid":"setup-welcome",children:[a.jsx("div",{className:Xe.logoArea,children:a.jsx("img",{src:Bd("grackle-logo.png"),alt:"Grackle",className:Xe.logoImage})}),a.jsx("h1",{className:Xe.heading,children:"Welcome to Grackle"}),a.jsx("p",{className:Xe.tagline,children:"Multi-agent orchestration for software teams"}),a.jsx("button",{type:"button",className:Xe.primaryButton,onClick:t,"data-testid":"setup-get-started",children:"Get Started"})]})}function Xq({onNext:t,onBack:s}){return a.jsxs("div",{className:Xe.stepContent,"data-testid":"setup-about",children:[a.jsx("h2",{className:Xe.heading,children:"What is Grackle?"}),a.jsxs("ul",{className:Xe.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:Xe.buttonRow,children:[a.jsx("button",{type:"button",className:Xe.ghostButton,onClick:s,children:"Back"}),a.jsx("button",{type:"button",className:Xe.primaryButton,onClick:t,"data-testid":"setup-about-next",children:"Next"})]})]})}const Qq=[{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 eG({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:Xe.stepContent,"data-testid":"setup-runtime",children:[a.jsx("h2",{className:Xe.heading,children:"Choose Your Runtime"}),a.jsx("p",{className:Xe.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),a.jsx("div",{className:Xe.runtimeGrid,children:Qq.map(u=>a.jsxs("button",{type:"button",className:Xe.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:Xe.runtimeName,children:u.name}),a.jsx("span",{className:Xe.runtimeDescription,children:u.description})]},u.id))}),a.jsxs("div",{className:Xe.buttonRow,children:[a.jsx("button",{type:"button",className:Xe.ghostButton,onClick:o,children:"Back"}),a.jsx("button",{type:"button",className:Xe.primaryButton,onClick:()=>{s(c)},disabled:r,"data-testid":"setup-runtime-next",children:"Next"})]})]})}function tG(){return typeof Notification<"u"}function nG({onFinish:t,onBack:s,finishDisabled:o}){const r=tG(),c=r&&Notification.permission!=="default";function d(){r&&Notification.requestPermission().catch(()=>{}),t()}return a.jsxs("div",{className:Xe.stepContent,"data-testid":"setup-notifications",children:[a.jsx("h2",{className:Xe.heading,children:"Stay in the Loop"}),a.jsx("p",{className:Xe.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:Xe.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:Xe.buttonRow,children:[a.jsx("button",{type:"button",className:Xe.ghostButton,onClick:s,disabled:o,children:"Back"}),!c&&r?a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:Xe.ghostButton,onClick:t,disabled:o,"data-testid":"setup-notifications-skip",children:"Skip"}),a.jsx("button",{type:"button",className:Xe.primaryButton,onClick:d,disabled:o,"data-testid":"setup-notifications-enable",children:"Enable Notifications"})]}):a.jsx("button",{type:"button",className:Xe.primaryButton,onClick:t,disabled:o,"data-testid":"setup-finish",children:"Finish"})]})]})}const sG=4,B_={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function aG(){const{personas:{personas:t,updatePersona:s},completeOnboarding:o,onboardingCompleted:r}=pt(),{showToast:c}=mn(),d=xt(),[u,p]=y.useState(0),[m,g]=y.useState("claude-code"),[v,b]=y.useState(!1),_=t.find(j=>j.id==="claude-code"),k=y.useCallback(j=>{g(j),p(3)},[]),S=y.useCallback(()=>{const j=m;b(!0);const T=[];if(_&&j!==_.runtime){const C=B_[j]??"sonnet";T.push(s(_.id,void 0,void 0,void 0,j,C))}const N=t.find(C=>C.id===gy);if(N&&j!==N.runtime){const C=B_[j]??"sonnet";T.push(s(gy,void 0,void 0,void 0,j,C))}Promise.all(T).then(()=>o()).then(()=>{d("/",{replace:!0})},()=>{c("Failed to update runtime -- please try again","error"),b(!1)})},[m,_,t,s,o,d,c]);return r===!0?a.jsx(zn,{to:"/",replace:!0}):a.jsx("div",{className:Xe.wizard,"data-testid":"setup-wizard",children:a.jsxs("div",{className:Xe.container,children:[a.jsx(os,{mode:"wait",children:a.jsxs(Ut.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(Wq,{onNext:()=>p(1)}),u===1&&a.jsx(Xq,{onNext:()=>p(2),onBack:()=>p(0)}),u===2&&a.jsx(eG,{currentRuntime:m,onFinish:k,onBack:()=>p(1),finishDisabled:!_}),u===3&&a.jsx(nG,{onFinish:S,onBack:()=>p(2),finishDisabled:v})]},u)}),a.jsx("div",{className:Xe.dots,children:Array.from({length:sG},(j,T)=>a.jsx("span",{className:Xe.dot,"data-active":T===u},T))})]})})}const iG="_root_zndgp_1",oG="_body_zndgp_7",rG="_main_zndgp_19",lG="_sidebarWrapper_zndgp_26",cG="_overlay_zndgp_51",Wr={root:iG,body:oG,main:rG,sidebarWrapper:lG,overlay:cG},dG=y.lazy(()=>Nm(()=>import("./KnowledgePage-DJkY_8wG.js"),__vite__mapDeps([3,1,2,4,5])).then(t=>({default:t.KnowledgePage}))),uG=y.lazy(()=>Nm(()=>import("./SessionsListPage-ujDYORxL.js"),__vite__mapDeps([6,1,2,4,7])).then(t=>({default:t.SessionsListPage}))),Dk=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function fG({tabs:t}){const{connectionStatus:s,environments:{environments:o},sessions:{sessions:r},tasks:{tasks:c}}=pt(),{toasts:d,dismissToast:u}=mn(),p=Wt(),m=E9(),g=m!==void 0,[v,b]=y.useState(!1),_=y.useCallback(()=>b(k=>!k),[]);return y.useEffect(()=>{b(!1)},[p.pathname]),y.useEffect(()=>{if(!v)return;const k=S=>{S.key==="Escape"&&b(!1)};return document.addEventListener("keydown",k),()=>{document.removeEventListener("keydown",k)}},[v]),a.jsxs(a.Fragment,{children:[a.jsx(D5,{connectionStatus:s,environments:o,sessions:r,onToggleSidebar:g?_:void 0,sidebarOpen:v}),a.jsx($5,{tabs:t}),a.jsxs("div",{className:Wr.body,children:[g&&a.jsx("div",{className:Wr.sidebarWrapper,"data-sidebar-open":v,children:a.jsx(G5,{content:m})}),g&&v&&a.jsx("div",{className:Wr.overlay,"data-testid":"drawer-overlay",onClick:()=>b(!1)}),a.jsxs("div",{className:Wr.main,children:[a.jsx(Ri,{}),a.jsx(Q5,{sessions:r,tasks:c,environments:o})]})]}),a.jsx(tB,{toasts:d,onDismiss:u}),a.jsx(Cq,{})]})}function pG(){const{sessions:{lastSpawnedId:t},environments:{environments:s,operationError:o,clearOperationError:r},tasks:{tasks:c},connectionStatus:d,onboardingCompleted:u}=pt(),{pluginNames:p}=zd(),{showToast:m}=mn();$H(s,m),qH(c,m),HH(o,r,m);const g=xt(),v=Wt(),b=y.useRef(void 0);if(y.useEffect(()=>{t&&t!==b.current&&!v.pathname.includes("/tasks/")&&(b.current=t,g(gl(t),{replace:!0}))},[t,g,v.pathname]),d==="connected"&&u===!1)return a.jsx(zn,{to:"/setup",replace:!0});const _=cH(p);return a.jsx(C9,{children:a.jsxs("div",{className:Wr.root,children:[Dk&&a.jsx(qC,{}),a.jsx(fG,{tabs:_})]})})}function Vp(){const{workspaceId:t}=pa(),{workspaces:{workspaces:s}}=pt(),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(zn,{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(zn,{to:m,replace:!0})}function mG(){const{pluginNames:t}=zd(),s=t.includes("orchestration"),o=t.includes("knowledge");return a.jsxs(Ew,{children:[a.jsx(Ce,{path:"setup",element:a.jsx(aG,{})}),a.jsxs(Ce,{element:a.jsx(pG,{}),children:[a.jsx(Ce,{index:!0,element:a.jsx(CU,{})}),a.jsx(Ce,{path:"sessions/new",element:a.jsx(ZU,{})}),a.jsx(Ce,{path:"chat",element:a.jsx(zU,{})}),a.jsx(Ce,{path:"chat/:streamId",element:a.jsx(zn,{to:"/coordination",replace:!0})}),a.jsx(Ce,{path:"coordination",element:a.jsx(KU,{})}),a.jsx(Ce,{path:"sessions",element:a.jsx(y.Suspense,{fallback:a.jsx(mm,{}),children:a.jsx(uG,{})})}),a.jsx(Ce,{path:"sessions/:sessionId",element:a.jsx(XU,{})}),o&&a.jsx(Ce,{element:a.jsx(Mq,{}),children:a.jsx(Ce,{path:"knowledge",element:a.jsx(y.Suspense,{fallback:a.jsx(mm,{}),children:a.jsx(dG,{})})})}),s&&a.jsxs(Ce,{element:a.jsx(Eq,{}),children:[a.jsx(Ce,{path:"tasks",element:a.jsx(NU,{})}),a.jsx(Ce,{path:"tasks/new",element:a.jsx(A_,{})}),a.jsx(Ce,{path:"tasks/:taskId",element:a.jsx(Eo,{})}),a.jsx(Ce,{path:"tasks/:taskId/edit",element:a.jsx(Eo,{})}),a.jsx(Ce,{path:"tasks/:taskId/stream",element:a.jsx(Eo,{})})]}),a.jsxs(Ce,{element:a.jsx(Aq,{}),children:[a.jsx(Ce,{path:"workspaces",element:a.jsx(zn,{to:"/environments",replace:!0})}),a.jsx(Ce,{path:"workspaces/new",element:a.jsx(pV,{})}),a.jsx(Ce,{path:"workspaces/:workspaceId",element:a.jsx(Vp,{})}),a.jsx(Ce,{path:"workspaces/:workspaceId/tasks/:taskId",element:a.jsx(Vp,{})}),a.jsx(Ce,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:a.jsx(Vp,{})}),a.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId",element:a.jsx(nV,{})}),a.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:a.jsx(A_,{})}),a.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:a.jsx(Eo,{})}),a.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:a.jsx(Eo,{})}),a.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:a.jsx(Eo,{})}),a.jsxs(Ce,{path:"environments",element:a.jsx(_V,{}),children:[a.jsx(Ce,{index:!0,element:a.jsx(wU,{})}),a.jsx(Ce,{path:"new",element:a.jsx(hV,{})}),a.jsx(Ce,{path:":environmentId",element:a.jsx(JV,{})}),a.jsx(Ce,{path:":environmentId/edit",element:a.jsx(gV,{})})]})]}),a.jsx(Ce,{element:a.jsx(Dq,{}),children:a.jsxs(Ce,{path:"settings",element:a.jsx(QV,{}),children:[a.jsx(Ce,{index:!0,element:a.jsx(zn,{to:"credentials",replace:!0})}),a.jsx(Ce,{path:"environments",element:a.jsx(zn,{to:"/environments",replace:!0})}),a.jsx(Ce,{path:"credentials",element:a.jsx(eq,{})}),a.jsx(Ce,{path:"github-accounts",element:a.jsx(tq,{})}),a.jsx(Ce,{path:"tokens",element:a.jsx(zn,{to:"../credentials",replace:!0})}),a.jsx(Ce,{path:"personas",element:a.jsx(nq,{})}),a.jsx(Ce,{path:"personas/new",element:a.jsx(R_,{})}),a.jsx(Ce,{path:"personas/:personaId",element:a.jsx(R_,{})}),a.jsx(Ce,{path:"schedules",element:a.jsx(pq,{})}),a.jsx(Ce,{path:"schedules/new",element:a.jsx(I_,{})}),a.jsx(Ce,{path:"schedules/:scheduleId",element:a.jsx(I_,{})}),a.jsx(Ce,{path:"appearance",element:a.jsx(Sq,{})}),a.jsx(Ce,{path:"shortcuts",element:a.jsx(Nq,{})}),a.jsx(Ce,{path:"plugins",element:a.jsx(wq,{})}),a.jsx(Ce,{path:"about",element:a.jsx(Tq,{})})]})}),a.jsx(Ce,{path:"*",element:a.jsx(zn,{to:"/",replace:!0})})]})]})}const hG=1e4;function gG(){const{onboardingCompleted:t}=pt(),[s,o]=y.useState(!1);y.useEffect(()=>{if(t!==void 0)return;const c=setTimeout(()=>o(!0),hG);return()=>clearTimeout(c)},[t]);const r=t===void 0&&!s;return a.jsx(os,{mode:"wait",children:r?a.jsx(Ut.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:a.jsx(mm,{})},"splash"):a.jsx(Ut.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:a.jsx(eC,{basename:"/".replace(/\/$/,""),children:a.jsx(mG,{})})},"app")})}function vG(){const t=Dk?nH:zH;return a.jsx(iH,{children:a.jsx(w9,{children:a.jsx(S9,{children:a.jsx(t,{children:a.jsx(gG,{})})})})})}bj.createRoot(document.getElementById("root")).render(a.jsx(y.StrictMode,{children:a.jsx(vG,{})}));export{os as A,ma as B,fa as C,Ye as I,bx as K,UT as M,qp as S,pt as a,Ap as b,Re as c,F_ as d,Ho as e,hm as f,Ms as g,nT as h,Ut as m,gl as s,ls as t,xt as u};
|
|
761
|
-
//# sourceMappingURL=index-B3qnEIHK.js.map
|