@mastra/deployer-cloud 1.70.0-alpha.4 → 1.70.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./core-YKSXHkoL.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js","./html-C2L_23MC.js","./javascript-ySlJ1b_l.js","./css-BPhBrDlE.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./core-DYXS4GHk.js","./engine-compile-BkERmzkH.js","./preload-helper-PPVm8Dsz.js","./engine-javascript-CSIo_1eZ.js","./html-C2L_23MC.js","./javascript-ySlJ1b_l.js","./css-BPhBrDlE.js"])))=>i.map(i=>d[i]);
2
2
  import{_ as Uo}from"./preload-helper-PPVm8Dsz.js";function xrn(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const s in r)if(s!=="default"&&!(s in e)){const o=Object.getOwnPropertyDescriptor(r,s);o&&Object.defineProperty(e,s,o.get?o:{enumerable:!0,get:()=>r[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var V7=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Pm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var dte={exports:{}},CP={};var X4e;function wrn(){if(X4e)return CP;X4e=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,s,o){var i=null;if(o!==void 0&&(i=""+o),s.key!==void 0&&(i=""+s.key),"key"in s){o={};for(var l in s)l!=="key"&&(o[l]=s[l])}else o=s;return s=o.ref,{$$typeof:e,type:r,key:i,ref:s!==void 0?s:null,props:o}}return CP.Fragment=t,CP.jsx=n,CP.jsxs=n,CP}var J4e;function Srn(){return J4e||(J4e=1,dte.exports=wrn()),dte.exports}var a=Srn(),fte={exports:{}},Yr={},e3e;function krn(){if(e3e)return Yr;e3e=1;var e={env:{}};var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),p=Symbol.iterator;function m(D){return D===null||typeof D!="object"?null:(D=p&&D[p]||D["@@iterator"],typeof D=="function"?D:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,b={};function x(D,R,M){this.props=D,this.context=R,this.refs=b,this.updater=M||y}x.prototype.isReactComponent={},x.prototype.setState=function(D,R){if(typeof D!="object"&&typeof D!="function"&&D!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,D,R,"setState")},x.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function w(){}w.prototype=x.prototype;function k(D,R,M){this.props=D,this.context=R,this.refs=b,this.updater=M||y}var C=k.prototype=new w;C.constructor=k,v(C,x.prototype),C.isPureReactComponent=!0;var _=Array.isArray;function T(){}var E={H:null,A:null,T:null,S:null},I=Object.prototype.hasOwnProperty;function N(D,R,M){var U=M.ref;return{$$typeof:t,type:D,key:R,ref:U!==void 0?U:null,props:M}}function A(D,R){return N(D.type,R,D.props)}function P(D){return typeof D=="object"&&D!==null&&D.$$typeof===t}function F(D){var R={"=":"=0",":":"=2"};return"$"+D.replace(/[=:]/g,function(M){return R[M]})}var L=/\/+/g;function q(D,R){return typeof D=="object"&&D!==null&&D.key!=null?F(""+D.key):R.toString(36)}function V(D){switch(D.status){case"fulfilled":return D.value;case"rejected":throw D.reason;default:switch(typeof D.status=="string"?D.then(T,T):(D.status="pending",D.then(function(R){D.status==="pending"&&(D.status="fulfilled",D.value=R)},function(R){D.status==="pending"&&(D.status="rejected",D.reason=R)})),D.status){case"fulfilled":return D.value;case"rejected":throw D.reason}}throw D}function H(D,R,M,U,Q){var ee=typeof D;(ee==="undefined"||ee==="boolean")&&(D=null);var X=!1;if(D===null)X=!0;else switch(ee){case"bigint":case"string":case"number":X=!0;break;case"object":switch(D.$$typeof){case t:case n:X=!0;break;case f:return X=D._init,H(X(D._payload),R,M,U,Q)}}if(X)return Q=Q(D),X=U===""?"."+q(D,0):U,_(Q)?(M="",X!=null&&(M=X.replace(L,"$&/")+"/"),H(Q,R,M,"",function(ce){return ce})):Q!=null&&(P(Q)&&(Q=A(Q,M+(Q.key==null||D&&D.key===Q.key?"":(""+Q.key).replace(L,"$&/")+"/")+X)),R.push(Q)),1;X=0;var te=U===""?".":U+":";if(_(D))for(var ne=0;ne<D.length;ne++)U=D[ne],ee=te+q(U,ne),X+=H(U,R,M,ee,Q);else if(ne=m(D),typeof ne=="function")for(D=ne.call(D),ne=0;!(U=D.next()).done;)U=U.value,ee=te+q(U,ne++),X+=H(U,R,M,ee,Q);else if(ee==="object"){if(typeof D.then=="function")return H(V(D),R,M,U,Q);throw R=String(D),Error("Objects are not valid as a React child (found: "+(R==="[object Object]"?"object with keys {"+Object.keys(D).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.")}return X}function B(D,R,M){if(D==null)return D;var U=[],Q=0;return H(D,U,"","",function(ee){return R.call(M,ee,Q++)}),U}function W(D){if(D._status===-1){var R=D._result;R=R(),R.then(function(M){(D._status===0||D._status===-1)&&(D._status=1,D._result=M)},function(M){(D._status===0||D._status===-1)&&(D._status=2,D._result=M)}),D._status===-1&&(D._status=0,D._result=R)}if(D._status===1)return D._result.default;throw D._result}var z=typeof reportError=="function"?reportError:function(D){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var R=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof D=="object"&&D!==null&&typeof D.message=="string"?String(D.message):String(D),error:D});if(!window.dispatchEvent(R))return}else if(typeof e=="object"&&typeof e.emit=="function"){e.emit("uncaughtException",D);return}console.error(D)},Y={map:B,forEach:function(D,R,M){B(D,function(){R.apply(this,arguments)},M)},count:function(D){var R=0;return B(D,function(){R++}),R},toArray:function(D){return B(D,function(R){return R})||[]},only:function(D){if(!P(D))throw Error("React.Children.only expected to receive a single React element child.");return D}};return Yr.Activity=h,Yr.Children=Y,Yr.Component=x,Yr.Fragment=r,Yr.Profiler=o,Yr.PureComponent=k,Yr.StrictMode=s,Yr.Suspense=u,Yr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,Yr.__COMPILER_RUNTIME={__proto__:null,c:function(D){return E.H.useMemoCache(D)}},Yr.cache=function(D){return function(){return D.apply(null,arguments)}},Yr.cacheSignal=function(){return null},Yr.cloneElement=function(D,R,M){if(D==null)throw Error("The argument must be a React element, but you passed "+D+".");var U=v({},D.props),Q=D.key;if(R!=null)for(ee in R.key!==void 0&&(Q=""+R.key),R)!I.call(R,ee)||ee==="key"||ee==="__self"||ee==="__source"||ee==="ref"&&R.ref===void 0||(U[ee]=R[ee]);var ee=arguments.length-2;if(ee===1)U.children=M;else if(1<ee){for(var X=Array(ee),te=0;te<ee;te++)X[te]=arguments[te+2];U.children=X}return N(D.type,Q,U)},Yr.createContext=function(D){return D={$$typeof:l,_currentValue:D,_currentValue2:D,_threadCount:0,Provider:null,Consumer:null},D.Provider=D,D.Consumer={$$typeof:i,_context:D},D},Yr.createElement=function(D,R,M){var U,Q={},ee=null;if(R!=null)for(U in R.key!==void 0&&(ee=""+R.key),R)I.call(R,U)&&U!=="key"&&U!=="__self"&&U!=="__source"&&(Q[U]=R[U]);var X=arguments.length-2;if(X===1)Q.children=M;else if(1<X){for(var te=Array(X),ne=0;ne<X;ne++)te[ne]=arguments[ne+2];Q.children=te}if(D&&D.defaultProps)for(U in X=D.defaultProps,X)Q[U]===void 0&&(Q[U]=X[U]);return N(D,ee,Q)},Yr.createRef=function(){return{current:null}},Yr.forwardRef=function(D){return{$$typeof:c,render:D}},Yr.isValidElement=P,Yr.lazy=function(D){return{$$typeof:f,_payload:{_status:-1,_result:D},_init:W}},Yr.memo=function(D,R){return{$$typeof:d,type:D,compare:R===void 0?null:R}},Yr.startTransition=function(D){var R=E.T,M={};E.T=M;try{var U=D(),Q=E.S;Q!==null&&Q(M,U),typeof U=="object"&&U!==null&&typeof U.then=="function"&&U.then(T,z)}catch(ee){z(ee)}finally{R!==null&&M.types!==null&&(R.types=M.types),E.T=R}},Yr.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},Yr.use=function(D){return E.H.use(D)},Yr.useActionState=function(D,R,M){return E.H.useActionState(D,R,M)},Yr.useCallback=function(D,R){return E.H.useCallback(D,R)},Yr.useContext=function(D){return E.H.useContext(D)},Yr.useDebugValue=function(){},Yr.useDeferredValue=function(D,R){return E.H.useDeferredValue(D,R)},Yr.useEffect=function(D,R){return E.H.useEffect(D,R)},Yr.useEffectEvent=function(D){return E.H.useEffectEvent(D)},Yr.useId=function(){return E.H.useId()},Yr.useImperativeHandle=function(D,R,M){return E.H.useImperativeHandle(D,R,M)},Yr.useInsertionEffect=function(D,R){return E.H.useInsertionEffect(D,R)},Yr.useLayoutEffect=function(D,R){return E.H.useLayoutEffect(D,R)},Yr.useMemo=function(D,R){return E.H.useMemo(D,R)},Yr.useOptimistic=function(D,R){return E.H.useOptimistic(D,R)},Yr.useReducer=function(D,R,M){return E.H.useReducer(D,R,M)},Yr.useRef=function(D){return E.H.useRef(D)},Yr.useState=function(D){return E.H.useState(D)},Yr.useSyncExternalStore=function(D,R,M){return E.H.useSyncExternalStore(D,R,M)},Yr.useTransition=function(){return E.H.useTransition()},Yr.version="19.2.7",Yr}var t3e;function nA(){return t3e||(t3e=1,fte.exports=krn()),fte.exports}var g=nA();const Pe=Pm(g),rA=xrn({__proto__:null,default:Pe},[g]);var hte={exports:{}},_P={},pte={exports:{}},mte={};var n3e;function Orn(){return n3e||(n3e=1,(function(e){function t(V,H){var B=V.length;V.push(H);e:for(;0<B;){var W=B-1>>>1,z=V[W];if(0<s(z,H))V[W]=H,V[B]=z,B=W;else break e}}function n(V){return V.length===0?null:V[0]}function r(V){if(V.length===0)return null;var H=V[0],B=V.pop();if(B!==H){V[0]=B;e:for(var W=0,z=V.length,Y=z>>>1;W<Y;){var D=2*(W+1)-1,R=V[D],M=D+1,U=V[M];if(0>s(R,B))M<z&&0>s(U,R)?(V[W]=U,V[M]=B,W=M):(V[W]=R,V[D]=B,W=D);else if(M<z&&0>s(U,B))V[W]=U,V[M]=B,W=M;else break e}}return H}function s(V,H){var B=V.sortIndex-H.sortIndex;return B!==0?B:V.id-H.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],u=[],d=1,f=null,h=3,p=!1,m=!1,y=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function k(V){for(var H=n(u);H!==null;){if(H.callback===null)r(u);else if(H.startTime<=V)r(u),H.sortIndex=H.expirationTime,t(c,H);else break;H=n(u)}}function C(V){if(y=!1,k(V),!m)if(n(c)!==null)m=!0,_||(_=!0,P());else{var H=n(u);H!==null&&q(C,H.startTime-V)}}var _=!1,T=-1,E=5,I=-1;function N(){return v?!0:!(e.unstable_now()-I<E)}function A(){if(v=!1,_){var V=e.unstable_now();I=V;var H=!0;try{e:{m=!1,y&&(y=!1,x(T),T=-1),p=!0;var B=h;try{t:{for(k(V),f=n(c);f!==null&&!(f.expirationTime>V&&N());){var W=f.callback;if(typeof W=="function"){f.callback=null,h=f.priorityLevel;var z=W(f.expirationTime<=V);if(V=e.unstable_now(),typeof z=="function"){f.callback=z,k(V),H=!0;break t}f===n(c)&&r(c),k(V)}else r(c);f=n(c)}if(f!==null)H=!0;else{var Y=n(u);Y!==null&&q(C,Y.startTime-V),H=!1}}break e}finally{f=null,h=B,p=!1}H=void 0}}finally{H?P():_=!1}}}var P;if(typeof w=="function")P=function(){w(A)};else if(typeof MessageChannel<"u"){var F=new MessageChannel,L=F.port2;F.port1.onmessage=A,P=function(){L.postMessage(null)}}else P=function(){b(A,0)};function q(V,H){T=b(function(){V(e.unstable_now())},H)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(V){V.callback=null},e.unstable_forceFrameRate=function(V){0>V||125<V?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):E=0<V?Math.floor(1e3/V):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_next=function(V){switch(h){case 1:case 2:case 3:var H=3;break;default:H=h}var B=h;h=H;try{return V()}finally{h=B}},e.unstable_requestPaint=function(){v=!0},e.unstable_runWithPriority=function(V,H){switch(V){case 1:case 2:case 3:case 4:case 5:break;default:V=3}var B=h;h=V;try{return H()}finally{h=B}},e.unstable_scheduleCallback=function(V,H,B){var W=e.unstable_now();switch(typeof B=="object"&&B!==null?(B=B.delay,B=typeof B=="number"&&0<B?W+B:W):B=W,V){case 1:var z=-1;break;case 2:z=250;break;case 5:z=1073741823;break;case 4:z=1e4;break;default:z=5e3}return z=B+z,V={id:d++,callback:H,priorityLevel:V,startTime:B,expirationTime:z,sortIndex:-1},B>W?(V.sortIndex=B,t(u,V),n(c)===null&&V===n(u)&&(y?(x(T),T=-1):y=!0,q(C,B-W))):(V.sortIndex=z,t(c,V),m||p||(m=!0,_||(_=!0,P()))),V},e.unstable_shouldYield=N,e.unstable_wrapCallback=function(V){var H=h;return function(){var B=h;h=H;try{return V.apply(this,arguments)}finally{h=B}}}})(mte)),mte}var r3e;function Crn(){return r3e||(r3e=1,pte.exports=Orn()),pte.exports}var gte={exports:{}},$u={};var s3e;function _rn(){if(s3e)return $u;s3e=1;var e=nA();function t(c){var u="https://react.dev/errors/"+c;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)u+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+c+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},s=Symbol.for("react.portal");function o(c,u,d){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:s,key:f==null?null:""+f,children:c,containerInfo:u,implementation:d}}var i=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(c,u){if(c==="font")return"";if(typeof u=="string")return u==="use-credentials"?u:""}return $u.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,$u.createPortal=function(c,u){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)throw Error(t(299));return o(c,u,null,d)},$u.flushSync=function(c){var u=i.T,d=r.p;try{if(i.T=null,r.p=2,c)return c()}finally{i.T=u,r.p=d,r.d.f()}},$u.preconnect=function(c,u){typeof c=="string"&&(u?(u=u.crossOrigin,u=typeof u=="string"?u==="use-credentials"?u:"":void 0):u=null,r.d.C(c,u))},$u.prefetchDNS=function(c){typeof c=="string"&&r.d.D(c)},$u.preinit=function(c,u){if(typeof c=="string"&&u&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin),h=typeof u.integrity=="string"?u.integrity:void 0,p=typeof u.fetchPriority=="string"?u.fetchPriority:void 0;d==="style"?r.d.S(c,typeof u.precedence=="string"?u.precedence:void 0,{crossOrigin:f,integrity:h,fetchPriority:p}):d==="script"&&r.d.X(c,{crossOrigin:f,integrity:h,fetchPriority:p,nonce:typeof u.nonce=="string"?u.nonce:void 0})}},$u.preinitModule=function(c,u){if(typeof c=="string")if(typeof u=="object"&&u!==null){if(u.as==null||u.as==="script"){var d=l(u.as,u.crossOrigin);r.d.M(c,{crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0})}}else u==null&&r.d.M(c)},$u.preload=function(c,u){if(typeof c=="string"&&typeof u=="object"&&u!==null&&typeof u.as=="string"){var d=u.as,f=l(d,u.crossOrigin);r.d.L(c,d,{crossOrigin:f,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0,type:typeof u.type=="string"?u.type:void 0,fetchPriority:typeof u.fetchPriority=="string"?u.fetchPriority:void 0,referrerPolicy:typeof u.referrerPolicy=="string"?u.referrerPolicy:void 0,imageSrcSet:typeof u.imageSrcSet=="string"?u.imageSrcSet:void 0,imageSizes:typeof u.imageSizes=="string"?u.imageSizes:void 0,media:typeof u.media=="string"?u.media:void 0})}},$u.preloadModule=function(c,u){if(typeof c=="string")if(u){var d=l(u.as,u.crossOrigin);r.d.m(c,{as:typeof u.as=="string"&&u.as!=="script"?u.as:void 0,crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0})}else r.d.m(c)},$u.requestFormReset=function(c){r.d.r(c)},$u.unstable_batchedUpdates=function(c,u){return c(u)},$u.useFormState=function(c,u,d){return i.H.useFormState(c,u,d)},$u.useFormStatus=function(){return i.H.useHostTransitionStatus()},$u.version="19.2.7",$u}var o3e;function Dht(){if(o3e)return gte.exports;o3e=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),gte.exports=_rn(),gte.exports}var i3e;function Ern(){if(i3e)return _P;i3e=1;var e={env:{}};var t=Crn(),n=nA(),r=Dht();function s(S){var O="https://react.dev/errors/"+S;if(1<arguments.length){O+="?args[]="+encodeURIComponent(arguments[1]);for(var j=2;j<arguments.length;j++)O+="&args[]="+encodeURIComponent(arguments[j])}return"Minified React error #"+S+"; visit "+O+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(S){return!(!S||S.nodeType!==1&&S.nodeType!==9&&S.nodeType!==11)}function i(S){var O=S,j=S;if(S.alternate)for(;O.return;)O=O.return;else{S=O;do O=S,(O.flags&4098)!==0&&(j=O.return),S=O.return;while(S)}return O.tag===3?j:null}function l(S){if(S.tag===13){var O=S.memoizedState;if(O===null&&(S=S.alternate,S!==null&&(O=S.memoizedState)),O!==null)return O.dehydrated}return null}function c(S){if(S.tag===31){var O=S.memoizedState;if(O===null&&(S=S.alternate,S!==null&&(O=S.memoizedState)),O!==null)return O.dehydrated}return null}function u(S){if(i(S)!==S)throw Error(s(188))}function d(S){var O=S.alternate;if(!O){if(O=i(S),O===null)throw Error(s(188));return O!==S?null:S}for(var j=S,$=O;;){var G=j.return;if(G===null)break;var K=G.alternate;if(K===null){if($=G.return,$!==null){j=$;continue}break}if(G.child===K.child){for(K=G.child;K;){if(K===j)return u(G),S;if(K===$)return u(G),O;K=K.sibling}throw Error(s(188))}if(j.return!==$.return)j=G,$=K;else{for(var ie=!1,we=G.child;we;){if(we===j){ie=!0,j=G,$=K;break}if(we===$){ie=!0,$=G,j=K;break}we=we.sibling}if(!ie){for(we=K.child;we;){if(we===j){ie=!0,j=K,$=G;break}if(we===$){ie=!0,$=K,j=G;break}we=we.sibling}if(!ie)throw Error(s(189))}}if(j.alternate!==$)throw Error(s(190))}if(j.tag!==3)throw Error(s(188));return j.stateNode.current===j?S:O}function f(S){var O=S.tag;if(O===5||O===26||O===27||O===6)return S;for(S=S.child;S!==null;){if(O=f(S),O!==null)return O;S=S.sibling}return null}var h=Object.assign,p=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),k=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),I=Symbol.for("react.lazy"),N=Symbol.for("react.activity"),A=Symbol.for("react.memo_cache_sentinel"),P=Symbol.iterator;function F(S){return S===null||typeof S!="object"?null:(S=P&&S[P]||S["@@iterator"],typeof S=="function"?S:null)}var L=Symbol.for("react.client.reference");function q(S){if(S==null)return null;if(typeof S=="function")return S.$$typeof===L?null:S.displayName||S.name||null;if(typeof S=="string")return S;switch(S){case v:return"Fragment";case x:return"Profiler";case b:return"StrictMode";case _:return"Suspense";case T:return"SuspenseList";case N:return"Activity"}if(typeof S=="object")switch(S.$$typeof){case y:return"Portal";case k:return S.displayName||"Context";case w:return(S._context.displayName||"Context")+".Consumer";case C:var O=S.render;return S=S.displayName,S||(S=O.displayName||O.name||"",S=S!==""?"ForwardRef("+S+")":"ForwardRef"),S;case E:return O=S.displayName||null,O!==null?O:q(S.type)||"Memo";case I:O=S._payload,S=S._init;try{return q(S(O))}catch{}}return null}var V=Array.isArray,H=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,B=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W={pending:!1,data:null,method:null,action:null},z=[],Y=-1;function D(S){return{current:S}}function R(S){0>Y||(S.current=z[Y],z[Y]=null,Y--)}function M(S,O){Y++,z[Y]=S.current,S.current=O}var U=D(null),Q=D(null),ee=D(null),X=D(null);function te(S,O){switch(M(ee,O),M(Q,S),M(U,null),O.nodeType){case 9:case 11:S=(S=O.documentElement)&&(S=S.namespaceURI)?w4e(S):0;break;default:if(S=O.tagName,O=O.namespaceURI)O=w4e(O),S=S4e(O,S);else switch(S){case"svg":S=1;break;case"math":S=2;break;default:S=0}}R(U),M(U,S)}function ne(){R(U),R(Q),R(ee)}function ce(S){S.memoizedState!==null&&M(X,S);var O=U.current,j=S4e(O,S.type);O!==j&&(M(Q,S),M(U,j))}function J(S){Q.current===S&&(R(U),R(Q)),X.current===S&&(R(X),wP._currentValue=W)}var re,se;function ae(S){if(re===void 0)try{throw Error()}catch(j){var O=j.stack.trim().match(/\n( *(at )?)/);re=O&&O[1]||"",se=-1<j.stack.indexOf(`
3
3
  at`)?" (<anonymous>)":-1<j.stack.indexOf("@")?"@unknown:0:0":""}return`
4
4
  `+re+S+se}var ue=!1;function pe(S,O){if(!S||ue)return"";ue=!0;var j=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var $={DetermineComponentFrameRoot:function(){try{if(O){var Mt=function(){throw Error()};if(Object.defineProperty(Mt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Mt,[])}catch(bt){var dt=bt}Reflect.construct(S,[],Mt)}else{try{Mt.call()}catch(bt){dt=bt}S.call(Mt.prototype)}}else{try{throw Error()}catch(bt){dt=bt}(Mt=S())&&typeof Mt.catch=="function"&&Mt.catch(function(){})}}catch(bt){if(bt&&dt&&typeof bt.stack=="string")return[bt.stack,dt.stack]}return[null,null]}};$.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var G=Object.getOwnPropertyDescriptor($.DetermineComponentFrameRoot,"name");G&&G.configurable&&Object.defineProperty($.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var K=$.DetermineComponentFrameRoot(),ie=K[0],we=K[1];if(ie&&we){var Ze=ie.split(`
@@ -246,7 +246,7 @@ attempted value: ${i}
246
246
  \${}
247
247
  }
248
248
  }`,{label:"class",detail:"definition",type:"keyword"}),yf('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),yf('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],YTt=FEe.concat([yf("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),yf("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),yf("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),HVe=new JCt,KTt=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function XP(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const Qnr=["FunctionDeclaration"],Ynr={FunctionDeclaration:XP("function"),ClassDeclaration:XP("class"),ClassExpression:()=>!0,EnumDeclaration:XP("constant"),TypeAliasDeclaration:XP("type"),NamespaceDeclaration:XP("namespace"),VariableDefinition(e,t){e.matchContext(Qnr)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function XTt(e,t){let n=HVe.get(t);if(n)return n;let r=[],s=!0;function o(i,l){let c=e.sliceString(i.from,i.to);r.push({label:c,type:l})}return t.cursor(Vo.IncludeAnonymous).iterate(i=>{if(s)s=!1;else if(i.name){let l=Ynr[i.name];if(l&&l(i,o)||KTt.has(i.name))return!1}else if(i.to-i.from>8192){for(let l of XTt(e,i.node))r.push(l);return!1}}),HVe.set(t,r),r}const fq=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,zEe=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function JTt(e){let t=bi(e.state).resolveInner(e.pos,-1);if(zEe.indexOf(t.name)>-1)return null;let n=t.name=="VariableName"||t.to-t.from<20&&fq.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let s=t;s;s=s.parent)KTt.has(s.name)&&(r=r.concat(XTt(e.state.doc,s)));return{options:r,from:n?t.from:e.pos,validFor:fq}}function cse(e,t,n){var r;let s=[];for(;;){let o=t.firstChild,i;if(o?.name=="VariableName")return s.push(e(o)),{path:s.reverse(),name:n};if(o?.name=="MemberExpression"&&((r=i=o.lastChild)===null||r===void 0?void 0:r.name)=="PropertyName")s.push(e(i)),t=o;else return null}}function ejt(e){let t=r=>e.state.doc.sliceString(r.from,r.to),n=bi(e.state).resolveInner(e.pos,-1);return n.name=="PropertyName"?cse(t,n.parent,t(n)):(n.name=="."||n.name=="?.")&&n.parent.name=="MemberExpression"?cse(t,n.parent,""):zEe.indexOf(n.name)>-1?null:n.name=="VariableName"||n.to-n.from<20&&fq.test(t(n))?{path:[],name:t(n)}:n.name=="MemberExpression"?cse(t,n,""):e.explicit?{path:[],name:""}:null}function Knr(e,t){let n=e,r=[],s=new Set;for(let o=0;;o++){for(let l of(Object.getOwnPropertyNames||Object.keys)(e)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(l)||s.has(l))continue;s.add(l);let c;try{c=n[l]}catch{continue}r.push({label:l,type:typeof c=="function"?/^[A-Z]/.test(l)?"class":t?"function":"method":t?"variable":"property",boost:-o})}let i=Object.getPrototypeOf(e);if(!i)return r;e=i}}function Xnr(e){let t=new Map;return n=>{let r=ejt(n);if(!r)return null;let s=e;for(let i of r.path)if(s=s[i],!s)return null;let o=t.get(s);return o||t.set(s,o=Knr(s,!r.path.length)),{from:n.pos-r.name.length,options:o,validFor:fq}}}const mm=WC.define({name:"javascript",parser:Gnr.configure({props:[eE.add({IfStatement:Xj({except:/^\s*({|else\b)/}),TryStatement:Xj({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:WXn,SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:HXn({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":Xj({except:/^\s*{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),tE.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":yEe,BlockComment(e){return{from:e.from+2,to:e.to-2}},JSXElement(e){let t=e.firstChild;if(!t||t.name=="JSXSelfClosingTag")return null;let n=e.lastChild;return{from:t.to,to:n.type.isError?e.to:n.from}},"JSXSelfClosingTag JSXOpenTag"(e){var t;let n=(t=e.firstChild)===null||t===void 0?void 0:t.nextSibling,r=e.lastChild;return!n||n.type.isError?null:{from:n.to,to:r.type.isError?e.to:r.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),tjt={test:e=>/^JSX/.test(e.name),facet:XG({commentTokens:{block:{open:"{/*",close:"*/}"}}})},BEe=mm.configure({dialect:"ts"},"typescript"),UEe=mm.configure({dialect:"jsx",props:[mEe.add(e=>e.isTop?[tjt]:void 0)]}),VEe=mm.configure({dialect:"jsx ts",props:[mEe.add(e=>e.isTop?[tjt]:void 0)]},"typescript");let njt=e=>({label:e,type:"keyword"});const rjt="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(njt),Jnr=rjt.concat(["declare","implements","private","protected","public"].map(njt));function hq(e={}){let t=e.jsx?e.typescript?VEe:UEe:e.typescript?BEe:mm,n=e.typescript?YTt.concat(Jnr):FEe.concat(rjt);return new GC(t,[mm.data.of({autocomplete:IJn(zEe,tTt(n))}),mm.data.of({autocomplete:JTt}),e.jsx?sjt:[]])}function err(e){for(;;){if(e.name=="JSXOpenTag"||e.name=="JSXSelfClosingTag"||e.name=="JSXFragmentTag")return e;if(e.name=="JSXEscape"||!e.parent)return null;e=e.parent}}function WVe(e,t,n=e.length){for(let r=t?.firstChild;r;r=r.nextSibling)if(r.name=="JSXIdentifier"||r.name=="JSXBuiltin"||r.name=="JSXNamespacedName"||r.name=="JSXMemberExpression")return e.sliceString(r.from,Math.min(r.to,n));return""}const trr=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),sjt=zt.inputHandler.of((e,t,n,r,s)=>{if((trr?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||r!=">"&&r!="/"||!mm.isActiveAt(e.state,t,-1))return!1;let o=s(),{state:i}=o,l=i.changeByRange(c=>{var u;let{head:d}=c,f=bi(i).resolveInner(d-1,-1),h;if(f.name=="JSXStartTag"&&(f=f.parent),!(i.doc.sliceString(d-1,d)!=r||f.name=="JSXAttributeValue"&&f.to>d)){if(r==">"&&f.name=="JSXFragmentTag")return{range:c,changes:{from:d,insert:"</>"}};if(r=="/"&&f.name=="JSXStartCloseTag"){let p=f.parent,m=p.parent;if(m&&p.from==d-2&&((h=WVe(i.doc,m.firstChild,d))||((u=m.firstChild)===null||u===void 0?void 0:u.name)=="JSXFragmentTag")){let y=`${h}>`;return{range:Ot.cursor(d+y.length,-1),changes:{from:d,insert:y}}}}else if(r==">"){let p=err(f);if(p&&p.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(i.doc.sliceString(d,d+2))&&(h=WVe(i.doc,p,d)))return{range:c,changes:{from:d,insert:`</${h}>`}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([o,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});function nrr(e,t){return t||(t={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},e.getRules().forEach((n,r)=>{var s;!((s=n.meta.docs)===null||s===void 0)&&s.recommended&&(t.rules[r]=2)})),n=>{let{state:r}=n,s=[];for(let{from:o,to:i}of mm.findRegions(r)){let l=r.doc.lineAt(o),c={line:l.number-1,col:o-l.from,pos:o};for(let u of e.verify(r.sliceDoc(o,i),t))s.push(rrr(u,r.doc,c))}return s}}function ZVe(e,t,n,r){return n.line(e+r.line).from+t+(e==1?r.col-1:-1)}function rrr(e,t,n){let r=ZVe(e.line,e.column,t,n),s={from:r,to:e.endLine!=null&&e.endColumn!=1?ZVe(e.endLine,e.endColumn,t,n):r,message:e.message,source:e.ruleId?"eslint:"+e.ruleId:"eslint",severity:e.severity==1?"warning":"error"};if(e.fix){let{range:o,text:i}=e.fix,l=o[0]+n.pos-r,c=o[1]+n.pos-r;s.actions=[{name:"fix",apply(u,d){u.dispatch({changes:{from:d+l,to:d+c,insert:i},scrollIntoView:!0})}}]}return s}const p9=Object.freeze(Object.defineProperty({__proto__:null,autoCloseTags:sjt,completionPath:ejt,esLint:nrr,javascript:hq,javascriptLanguage:mm,jsxLanguage:UEe,localCompletionSource:JTt,scopeCompletionSource:Xnr,snippets:FEe,tsxLanguage:VEe,typescriptLanguage:BEe,typescriptSnippets:YTt},Symbol.toStringTag,{value:"Module"})),JP=["_blank","_self","_top","_parent"],use=["ascii","utf-8","utf-16","latin1","latin1"],dse=["get","post","put","delete"],fse=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],hh=["true","false"],lr={},srr={a:{attrs:{href:null,ping:null,type:null,media:null,target:JP,hreflang:null}},abbr:lr,address:lr,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:lr,aside:lr,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:lr,base:{attrs:{href:null,target:JP}},bdi:lr,bdo:lr,blockquote:{attrs:{cite:null}},body:lr,br:lr,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:fse,formmethod:dse,formnovalidate:["novalidate"],formtarget:JP,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:lr,center:lr,cite:lr,code:lr,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:lr,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:lr,div:lr,dl:lr,dt:lr,em:lr,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:lr,figure:lr,footer:lr,form:{attrs:{action:null,name:null,"accept-charset":use,autocomplete:["on","off"],enctype:fse,method:dse,novalidate:["novalidate"],target:JP}},h1:lr,h2:lr,h3:lr,h4:lr,h5:lr,h6:lr,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:lr,hgroup:lr,hr:lr,html:{attrs:{manifest:null}},i:lr,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:fse,formmethod:dse,formnovalidate:["novalidate"],formtarget:JP,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:lr,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:lr,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:lr,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:use,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:lr,noscript:lr,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:lr,param:{attrs:{name:null,value:null}},pre:lr,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:lr,rt:lr,ruby:lr,samp:lr,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:use}},section:lr,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:lr,source:{attrs:{src:null,type:null,media:null}},span:lr,strong:lr,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:lr,summary:lr,sup:lr,table:lr,tbody:lr,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:lr,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:lr,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:lr,time:{attrs:{datetime:null}},title:lr,tr:lr,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:lr,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:lr},ojt={accesskey:null,class:null,contenteditable:hh,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:hh,autocorrect:hh,autocapitalize:hh,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":hh,"aria-autocomplete":["inline","list","both","none"],"aria-busy":hh,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":hh,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":hh,"aria-hidden":hh,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":hh,"aria-multiselectable":hh,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":hh,"aria-relevant":null,"aria-required":hh,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},ijt="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>"on"+e);for(let e of ijt)ojt[e]=null;let wL=class{constructor(t,n){this.tags={...srr,...t},this.globalAttrs={...ojt,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};wL.default=new wL;function rI(e,t,n=e.length){if(!t)return"";let r=t.firstChild,s=r&&r.getChild("TagName");return s?e.sliceString(s.from,Math.min(s.to,n)):""}function sI(e,t=!1){for(;e;e=e.parent)if(e.name=="Element")if(t)t=!1;else return e;return null}function ajt(e,t,n){let r=n.tags[rI(e,sI(t))];return r?.children||n.allTags}function qEe(e,t){let n=[];for(let r=sI(t);r&&!r.type.isTop;r=sI(r.parent)){let s=rI(e,r);if(s&&r.lastChild.name=="CloseTag")break;s&&n.indexOf(s)<0&&(t.name=="EndTag"||t.from>=r.firstChild.to)&&n.push(s)}return n}const ljt=/^[:\-\.\w\u00b7-\uffff]*$/;function GVe(e,t,n,r,s){let o=/\s*>/.test(e.sliceDoc(s,s+5))?"":">",i=sI(n,n.name=="StartTag"||n.name=="TagName");return{from:r,to:s,options:ajt(e.doc,i,t).map(l=>({label:l,type:"type"})).concat(qEe(e.doc,n).map((l,c)=>({label:"/"+l,apply:"/"+l+o,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function QVe(e,t,n,r){let s=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:qEe(e.doc,t).map((o,i)=>({label:o,apply:o+s,type:"type",boost:99-i})),validFor:ljt}}function orr(e,t,n,r){let s=[],o=0;for(let i of ajt(e.doc,n,t))s.push({label:"<"+i,type:"type"});for(let i of qEe(e.doc,n))s.push({label:"</"+i+">",type:"type",boost:99-o++});return{from:r,to:r,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function irr(e,t,n,r,s){let o=sI(n),i=o?t.tags[rI(e.doc,o)]:null,l=i&&i.attrs?Object.keys(i.attrs):[],c=i&&i.globalAttrs===!1?l:l.length?l.concat(t.globalAttrNames):t.globalAttrNames;return{from:r,to:s,options:c.map(u=>({label:u,type:"property"})),validFor:ljt}}function arr(e,t,n,r,s){var o;let i=(o=n.parent)===null||o===void 0?void 0:o.getChild("AttributeName"),l=[],c;if(i){let u=e.sliceDoc(i.from,i.to),d=t.globalAttrs[u];if(!d){let f=sI(n),h=f?t.tags[rI(e.doc,f)]:null;d=h?.attrs&&h.attrs[u]}if(d){let f=e.sliceDoc(r,s).toLowerCase(),h='"',p='"';/^['"]/.test(f)?(c=f[0]=='"'?/^[^"]*$/:/^[^']*$/,h="",p=e.sliceDoc(s,s+1)==f[0]?"":f[0],f=f.slice(1),r++):c=/^[^\s<>='"]*$/;for(let m of d)l.push({label:m,apply:h+m+p,type:"constant"})}}return{from:r,to:s,options:l,validFor:c}}function cjt(e,t){let{state:n,pos:r}=t,s=bi(n).resolveInner(r,-1),o=s.resolve(r);for(let i=r,l;o==s&&(l=s.childBefore(i));){let c=l.lastChild;if(!c||!c.type.isError||c.from<c.to)break;o=s=l,i=c.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?QVe(n,s,s.from,r):GVe(n,e,s,s.from,r):s.name=="StartTag"||s.name=="IncompleteTag"?GVe(n,e,s,r,r):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?QVe(n,s,r,r):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?irr(n,e,s,s.name=="AttributeName"?s.from:r,r):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?arr(n,e,s,s.name=="Is"?r:s.from,r):t.explicit&&(o.name=="Element"||o.name=="Text"||o.name=="Document")?orr(n,e,s,r):null}function lrr(e){return cjt(wL.default,e)}function crr(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new wL(t,n):wL.default;return s=>cjt(r,s)}const urr=mm.parser.configure({top:"SingleExpression"}),ujt=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:BEe.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:UEe.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:VEe.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:urr},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:mm.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:dq.parser}],djt=[{name:"style",parser:dq.parser.configure({top:"Styles"})}].concat(ijt.map(e=>({name:e,parser:mm.parser}))),fjt=WC.define({name:"html",parser:$tr.configure({props:[eE.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].length<e.node.to)return e.continue();let t=null,n;for(let r=e.node;;){let s=r.lastChild;if(!s||s.name!="Element"||s.to!=r.to)break;t=r=s}return t&&!((n=t.lastChild)&&(n.name=="CloseTag"||n.name=="SelfClosingTag"))?e.lineIndent(t.from)+e.unit:null}}),tE.add({Element(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!="OpenTag"?null:{from:t.to,to:n.name=="CloseTag"?n.from:e.to}}}),GEt.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),JB=fjt.configure({wrap:VTt(ujt,djt)});function drr(e={}){let t="",n;e.matchClosingTags===!1&&(t="noMatch"),e.selfClosingTags===!0&&(t=(t?t+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(n=VTt((e.nestedLanguages||[]).concat(ujt),(e.nestedAttributes||[]).concat(djt)));let r=n?fjt.configure({wrap:n,dialect:t}):t?JB.configure({dialect:t}):JB;return new GC(r,[JB.data.of({autocomplete:crr(e)}),e.autoCloseTags!==!1?frr:[],hq().support,vnr().support])}const YVe=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),frr=zt.inputHandler.of((e,t,n,r,s)=>{if(e.composing||e.state.readOnly||t!=n||r!=">"&&r!="/"||!JB.isActiveAt(e.state,t,-1))return!1;let o=s(),{state:i}=o,l=i.changeByRange(c=>{var u,d,f;let h=i.doc.sliceString(c.from-1,c.to)==r,{head:p}=c,m=bi(i).resolveInner(p,-1),y;if(h&&r==">"&&m.name=="EndTag"){let v=m.parent;if(((d=(u=v.parent)===null||u===void 0?void 0:u.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(y=rI(i.doc,v.parent,p))&&!YVe.has(y)){let b=p+(i.doc.sliceString(p,p+1)===">"?1:0),x=`</${y}>`;return{range:c,changes:{from:p,to:b,insert:x}}}}else if(h&&r=="/"&&m.name=="IncompleteCloseTag"){let v=m.parent;if(m.from==p-2&&((f=v.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(y=rI(i.doc,v,p))&&!YVe.has(y)){let b=p+(i.doc.sliceString(p,p+1)===">"?1:0),x=`${y}>`;return{range:Ot.cursor(p+x.length,-1),changes:{from:p,to:b,insert:x}}}}return{range:c}});return l.changes.empty?!1:(e.dispatch([o,i.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),hjt=XG({commentTokens:{block:{open:"<!--",close:"-->"}}}),pjt=new Lr,mjt=Der.configure({props:[tE.add(e=>!e.is("Block")||e.is("Document")||Mbe(e)!=null||hrr(e)?void 0:(t,n)=>({from:n.doc.lineAt(t.from).to,to:t.to})),pjt.add(Mbe),eE.add({Document:()=>null}),hS.add({Document:hjt})]});function Mbe(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function hrr(e){return e.name=="OrderedList"||e.name=="BulletList"}function prr(e,t){let n=e;for(;;){let r=n.nextSibling,s;if(!r||(s=Mbe(r.type))!=null&&s<=t)break;n=r}return n.to}const mrr=MEt.of((e,t,n)=>{for(let r=bi(e).resolveInner(n,-1);r&&!(r.from<t);r=r.parent){let s=r.type.prop(pjt);if(s==null)continue;let o=prr(r,s);if(o>n)return{from:n,to:o}}return null});function HEe(e){return new Mh(hjt,e,[],"markdown")}const gjt=HEe(mjt),grr=mjt.configure([Ger,Yer,Qer,Ker,{props:[tE.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]),oI=HEe(grr);function vrr(e,t){return n=>{if(n&&e){let r=null;if(n=/\S*/.exec(n)[0],typeof e=="function"?r=e(n):r=Tg.matchLanguageName(e,n,!0),r instanceof Tg)return r.support?r.support.language.parser:ZC.getSkippingParser(r.load());if(r)return r.parser}return t?t.parser:null}}class hse{constructor(t,n,r,s,o,i,l){this.node=t,this.from=n,this.to=r,this.spaceBefore=s,this.spaceAfter=o,this.type=i,this.item=l}blank(t,n=!0){let r=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(t!=null){for(;r.length<t;)r+=" ";return r}else{for(let s=this.to-this.from-r.length-this.spaceAfter.length;s>0;s--)r+=" ";return r+(n?this.spaceAfter:"")}}marker(t,n){let r=this.node.name=="OrderedList"?String(+yjt(this.item,t)[2]+n):"";return this.spaceBefore+r+this.type+this.spaceAfter}}function vjt(e,t){let n=[],r=[];for(let s=e;s;s=s.parent){if(s.name=="FencedCode")return r;(s.name=="ListItem"||s.name=="Blockquote")&&n.push(s)}for(let s=n.length-1;s>=0;s--){let o=n[s],i,l=t.lineAt(o.from),c=o.from-l.from;if(o.name=="Blockquote"&&(i=/^ *>( ?)/.exec(l.text.slice(c))))r.push(new hse(o,c,c+i[0].length,"",i[1],">",null));else if(o.name=="ListItem"&&o.parent.name=="OrderedList"&&(i=/^( *)\d+([.)])( *)/.exec(l.text.slice(c)))){let u=i[3],d=i[0].length;u.length>=4&&(u=u.slice(0,u.length-4),d-=4),r.push(new hse(o.parent,c,c+d,i[1],u,i[2],o))}else if(o.name=="ListItem"&&o.parent.name=="BulletList"&&(i=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(c)))){let u=i[4],d=i[0].length;u.length>4&&(u=u.slice(0,u.length-4),d-=4);let f=i[2];i[3]&&(f+=i[3].replace(/[xX]/," ")),r.push(new hse(o.parent,c,c+d,i[1],u,f,o))}}return r}function yjt(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function pse(e,t,n,r=0){for(let s=-1,o=e;;){if(o.name=="ListItem"){let l=yjt(o,t),c=+l[2];if(s>=0){if(c!=s+1)return;n.push({from:o.from+l[1].length,to:o.from+l[0].length,insert:String(s+2+r)})}s=c}let i=o.nextSibling;if(!i)break;o=i}}function WEe(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||t.facet(DA)!=" ")return e;let r=nv(e,4,n),s="";for(let o=r;o>0;)o>=4?(s+=" ",o-=4):(s+=" ",o--);return s+e.slice(n)}const bjt=(e={})=>({state:t,dispatch:n})=>{let r=bi(t),{doc:s}=t,o=null,i=t.changeByRange(l=>{if(!l.empty||!oI.isActiveAt(t,l.from,-1)&&!oI.isActiveAt(t,l.from,1))return o={range:l};let c=l.from,u=s.lineAt(c),d=vjt(r.resolveInner(c,-1),s);for(;d.length&&d[d.length-1].from>c-u.from;)d.pop();if(!d.length)return o={range:l};let f=d[d.length-1];if(f.to-f.spaceAfter.length>c-u.from)return o={range:l};let h=c>=f.to-f.spaceAfter.length&&!/\S/.test(u.text.slice(f.to));if(f.item&&h){let b=f.node.firstChild,x=f.node.getChild("ListItem","ListItem");if(b.to>=c||x&&x.to<c||u.from>0&&!/[^\s>]/.test(s.lineAt(u.from-1).text)||e.nonTightLists===!1){let w=d.length>1?d[d.length-2]:null,k,C="";w&&w.item?(k=u.from+w.from,C=w.marker(s,1)):k=u.from+(w?w.to:0);let _=[{from:k,to:c,insert:C}];return f.node.name=="OrderedList"&&pse(f.item,s,_,-2),w&&w.node.name=="OrderedList"&&pse(w.item,s,_),{range:Ot.cursor(k+C.length),changes:_}}else{let w=XVe(d,t,u);return{range:Ot.cursor(c+w.length+1),changes:{from:u.from,insert:w+t.lineBreak}}}}if(f.node.name=="Blockquote"&&h&&u.from){let b=s.lineAt(u.from-1),x=/>\s*$/.exec(b.text);if(x&&x.index==f.from){let w=t.changes([{from:b.from+x.index,to:b.to},{from:u.from+f.from,to:u.to}]);return{range:l.map(w),changes:w}}}let p=[];f.node.name=="OrderedList"&&pse(f.item,s,p);let m=f.item&&f.item.from<u.from,y="";if(!m||/^[\s\d.)\-+*>]*/.exec(u.text)[0].length>=f.to)for(let b=0,x=d.length-1;b<=x;b++)y+=b==x&&!m?d[b].marker(s,1):d[b].blank(b<x?nv(u.text,4,d[b+1].from)-y.length:null);let v=c;for(;v>u.from&&/\s/.test(u.text.charAt(v-u.from-1));)v--;return y=WEe(y,t),yrr(f.node,t.doc)&&(y=XVe(d,t,u)+t.lineBreak+y),p.push({from:v,to:c,insert:t.lineBreak+y}),{range:Ot.cursor(v+y.length+1),changes:p}});return o?!1:(n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0)},xjt=bjt();function KVe(e){return e.name=="QuoteMark"||e.name=="ListMark"}function yrr(e,t){if(e.name!="OrderedList"&&e.name!="BulletList")return!1;let n=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return!1;let s=t.lineAt(n.to),o=t.lineAt(r.from),i=/^[\s>]*$/.test(s.text);return s.number+(i?0:1)<o.number}function XVe(e,t,n){let r="";for(let s=0,o=e.length-2;s<=o;s++)r+=e[s].blank(s<o?nv(n.text,4,e[s+1].from)-r.length:null,s<o);return WEe(r,t)}function brr(e,t){let n=e.resolveInner(t,-1),r=t;KVe(n)&&(r=n.from,n=n.parent);for(let s;s=n.childBefore(r);)if(KVe(s))r=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")n=s.lastChild,r=n.to;else break;return n}const wjt=({state:e,dispatch:t})=>{let n=bi(e),r=null,s=e.changeByRange(o=>{let i=o.from,{doc:l}=e;if(o.empty&&oI.isActiveAt(e,o.from)){let c=l.lineAt(i),u=vjt(brr(n,i),l);if(u.length){let d=u[u.length-1],f=d.to-d.spaceAfter.length+(d.spaceAfter?1:0);if(i-c.from>f&&!/\S/.test(c.text.slice(f,i-c.from)))return{range:Ot.cursor(c.from+f),changes:{from:c.from+f,to:i}};if(i-c.from==f&&(!d.item||c.from<=d.item.from||!/\S/.test(c.text.slice(0,d.to)))){let h=c.from+d.from;if(d.item&&d.node.from<d.item.from&&/\S/.test(c.text.slice(d.from,d.to))){let p=d.blank(nv(c.text,4,d.to)-nv(c.text,4,d.from));return h==c.from&&(p=WEe(p,e)),{range:Ot.cursor(h+p.length),changes:{from:h,to:c.from+d.to,insert:p}}}if(h<i)return{range:Ot.cursor(h),changes:{from:h,to:i}}}}}return r={range:o}});return r?!1:(t(e.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},Sjt=[{key:"Enter",run:xjt},{key:"Backspace",run:wjt}],kjt=drr({matchClosingTags:!1});function Ojt(e={}){let{codeLanguages:t,defaultCodeLanguage:n,addKeymap:r=!0,base:{parser:s}=gjt,completeHTMLTags:o=!0,pasteURLAsLink:i=!0,htmlTagLanguage:l=kjt}=e;if(!(s instanceof nQ))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let c=e.extensions?[e.extensions]:[],u=[l.support,mrr],d;i&&u.push(Cjt),n instanceof GC?(u.push(n.support),d=n.language):n&&(d=n);let f=t||d?vrr(t,d):void 0;c.push(Fer({codeParser:f,htmlParser:l.language.parser})),r&&u.push(fp.high(MA.of(Sjt)));let h=HEe(s.configure(c));return o&&u.push(h.data.of({autocomplete:xrr})),new GC(h,u)}function xrr(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=bi(t).resolveInner(n,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:n-r[0].length,to:n,options:wrr(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let mse=null;function wrr(){if(mse)return mse;let e=lrr(new kEe(xs.create({extensions:kjt}),0,!0));return mse=e?e.options:[]}const Srr=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,Cjt=zt.domEventHandlers({paste:(e,t)=>{var n;let{main:r}=t.state.selection;if(r.empty)return!1;let s=(n=e.clipboardData)===null||n===void 0?void 0:n.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!oI.isActiveAt(t.state,r.from,1)))return!1;let o=bi(t.state),i=!1;return o.iterate({from:r.from,to:r.to,enter:l=>{(l.from>r.from||Srr.test(l.name))&&(i=!0)},leave:l=>{l.to<r.to&&(i=!0)}}),i?!1:(t.dispatch({changes:[{from:r.from,insert:"["},{from:r.to,insert:`](${s})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),krr=Object.freeze(Object.defineProperty({__proto__:null,commonmarkLanguage:gjt,deleteMarkupBackward:wjt,insertNewlineContinueMarkup:xjt,insertNewlineContinueMarkupCommand:bjt,markdown:Ojt,markdownKeymap:Sjt,markdownLanguage:oI,pasteURLAsLink:Cjt},Symbol.toStringTag,{value:"Module"}));function KC(){return KC=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},KC.apply(null,arguments)}var Orr=e=>{var t=e.theme,n=e.settings,r=n===void 0?{}:n,s=e.styles,o=s===void 0?[]:s,i={".cm-gutters":{}},l={};r.background&&(l.backgroundColor=r.background),r.backgroundImage&&(l.backgroundImage=r.backgroundImage),r.foreground&&(l.color=r.foreground),r.fontSize&&(l.fontSize=r.fontSize),(r.background||r.foreground)&&(i["&"]=l),r.fontFamily&&(i["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(i[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(i[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(i[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(i[".cm-content"]={caretColor:r.caret},i[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var c={};r.gutterActiveForeground&&(c.color=r.gutterActiveForeground),r.lineHighlight&&(i[".cm-activeLine"]={backgroundColor:r.lineHighlight},c.backgroundColor=r.lineHighlight),i[".cm-activeLineGutter"]=c,r.selection&&(i["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(i["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var u=zt.theme(i,{dark:t==="dark"}),d=M0.define(o),f=[u,LA(d)];return f},Crr={background:"#282a36",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"#282a36",gutterForeground:"#6D8A88",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},_rr=[{tag:he.comment,color:"#6272a4"},{tag:he.string,color:"#f1fa8c"},{tag:he.atom,color:"#bd93f9"},{tag:he.meta,color:"#f8f8f2"},{tag:[he.keyword,he.operator,he.tagName],color:"#ff79c6"},{tag:[he.function(he.propertyName),he.propertyName],color:"#66d9ef"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"#50fa7b"},{tag:he.atom,color:"#bd93f9"}],rQ=e=>{var t=e||{},n=t.theme,r=n===void 0?"dark":n,s=t.settings,o=s===void 0?{}:s,i=t.styles,l=i===void 0?[]:i;return Orr({theme:r,settings:KC({},Crr,o),styles:[..._rr,...l]})};rQ();function _jt(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}const Err=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=GEe(e.state,n.from);return r.line?Trr(e):r.block?Nrr(e):!1};function ZEe(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let s=e(t,n);return s?(r(n.update(s)),!0):!1}}const Trr=ZEe(Rrr,0),jrr=ZEe(Ejt,0),Nrr=ZEe((e,t)=>Ejt(e,t,Arr(t)),0);function GEe(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}const e$=50;function Irr(e,{open:t,close:n},r,s){let o=e.sliceDoc(r-e$,r),i=e.sliceDoc(s,s+e$),l=/\s*$/.exec(o)[0].length,c=/^\s*/.exec(i)[0].length,u=o.length-l;if(o.slice(u-t.length,u)==t&&i.slice(c,c+n.length)==n)return{open:{pos:r-l,margin:l&&1},close:{pos:s+c,margin:c&&1}};let d,f;s-r<=2*e$?d=f=e.sliceDoc(r,s):(d=e.sliceDoc(r,r+e$),f=e.sliceDoc(s-e$,s));let h=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(f)[0].length,m=f.length-p-n.length;return d.slice(h,h+t.length)==t&&f.slice(m,m+n.length)==n?{open:{pos:r+h+t.length,margin:/\s/.test(d.charAt(h+t.length))?1:0},close:{pos:s-p-n.length,margin:/\s/.test(f.charAt(m-1))?1:0}}:null}function Arr(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),s=n.to<=r.to?r:e.doc.lineAt(n.to);s.from>r.from&&s.from==n.to&&(s=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=s.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:s.to})}return t}function Ejt(e,t,n=t.selection.ranges){let r=n.map(o=>GEe(t,o.from).block);if(!r.every(o=>o))return null;let s=n.map((o,i)=>Irr(t,r[i],o.from,o.to));if(e!=2&&!s.every(o=>o))return{changes:t.changes(n.map((o,i)=>s[i]?[]:[{from:o.from,insert:r[i].open+" "},{from:o.to,insert:" "+r[i].close}]))};if(e!=1&&s.some(o=>o)){let o=[];for(let i=0,l;i<s.length;i++)if(l=s[i]){let c=r[i],{open:u,close:d}=l;o.push({from:u.pos-c.open.length,to:u.pos+u.margin},{from:d.pos-d.margin,to:d.pos+c.close.length})}return{changes:o}}return null}function Rrr(e,t,n=t.selection.ranges){let r=[],s=-1;e:for(let{from:o,to:i}of n){let l=r.length,c=1e9,u;for(let d=o;d<=i;){let f=t.doc.lineAt(d);if(u==null&&(u=GEe(t,f.from).line,!u))continue e;if(f.from>s&&(o==i||i>f.from)){s=f.from;let h=/^\s*/.exec(f.text)[0].length,p=h==f.length,m=f.text.slice(h,h+u.length)==u?h:-1;h<f.text.length&&h<c&&(c=h),r.push({line:f,comment:m,token:u,indent:h,empty:p,single:!1})}d=f.to+1}if(c<1e9)for(let d=l;d<r.length;d++)r[d].indent<r[d].line.text.length&&(r[d].indent=c);r.length==l+1&&(r[l].single=!0)}if(e!=2&&r.some(o=>o.comment<0&&(!o.empty||o.single))){let o=[];for(let{line:l,token:c,indent:u,empty:d,single:f}of r)(f||!d)&&o.push({from:l.from+u,insert:c+" "});let i=t.changes(o);return{changes:i,selection:t.selection.map(i,1)}}else if(e!=1&&r.some(o=>o.comment>=0)){let o=[];for(let{line:i,comment:l,token:c}of r)if(l>=0){let u=i.from+l,d=u+c.length;i.text[d-i.from]==" "&&d++,o.push({from:u,to:d})}return{changes:o}}return null}const Dbe=hb.define(),Prr=hb.define(),$rr=En.define(),Tjt=En.define({combine(e){return pb(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,s)=>t(r,s)||n(r,s)})}}),jjt=ql.define({create(){return wy.empty},update(e,t){let n=t.state.facet(Tjt),r=t.annotation(Dbe);if(r){let c=Rf.fromTransaction(t,r.selection),u=r.side,d=u==0?e.undone:e.done;return c?d=pq(d,d.length,n.minDepth,c):d=Ajt(d,t.startState.selection),new wy(u==0?r.rest:d,u==0?d:r.rest)}let s=t.annotation(Prr);if((s=="full"||s=="before")&&(e=e.isolate()),t.annotation(Ml.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let o=Rf.fromTransaction(t),i=t.annotation(Ml.time),l=t.annotation(Ml.userEvent);return o?e=e.addChanges(o,i,l,n,t):t.selection&&(e=e.addSelection(t.startState.selection,i,l,n.newGroupDelay)),(s=="full"||s=="after")&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(t=>t.toJSON()),undone:e.undone.map(t=>t.toJSON())}},fromJSON(e){return new wy(e.done.map(Rf.fromJSON),e.undone.map(Rf.fromJSON))}});function Mrr(e={}){return[jjt,Tjt.of(e),zt.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Njt:t.inputType=="historyRedo"?Lbe:null;return r?(t.preventDefault(),r(n)):!1}})]}function sQ(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let s=n.field(jjt,!1);if(!s)return!1;let o=s.pop(e,n,t);return o?(r(o),!0):!1}}const Njt=sQ(0,!1),Lbe=sQ(1,!1),Drr=sQ(0,!0),Lrr=sQ(1,!0);class Rf{constructor(t,n,r,s,o){this.changes=t,this.effects=n,this.mapped=r,this.startSelection=s,this.selectionsAfter=o}setSelAfter(t){return new Rf(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,n,r;return{changes:(t=this.changes)===null||t===void 0?void 0:t.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(r=this.startSelection)===null||r===void 0?void 0:r.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(t){return new Rf(t.changes&&Pl.fromJSON(t.changes),[],t.mapped&&Iy.fromJSON(t.mapped),t.startSelection&&Ot.fromJSON(t.startSelection),t.selectionsAfter.map(Ot.fromJSON))}static fromTransaction(t,n){let r=nm;for(let s of t.startState.facet($rr)){let o=s(t);o.length&&(r=r.concat(o))}return!r.length&&t.changes.empty?null:new Rf(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,nm)}static selection(t){return new Rf(void 0,nm,void 0,void 0,t)}}function pq(e,t,n,r){let s=t+1>n+20?t-n-1:0,o=e.slice(s,t);return o.push(r),o}function Frr(e,t){let n=[],r=!1;return e.iterChangedRanges((s,o)=>n.push(s,o)),t.iterChangedRanges((s,o,i,l)=>{for(let c=0;c<n.length;){let u=n[c++],d=n[c++];l>=u&&i<=d&&(r=!0)}}),r}function zrr(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function Ijt(e,t){return e.length?t.length?e.concat(t):e:t}const nm=[],Brr=200;function Ajt(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Brr));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),pq(e,e.length-1,1e9,n.setSelAfter(r)))}else return[Rf.selection([t])]}function Urr(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function gse(e,t){if(!e.length)return e;let n=e.length,r=nm;for(;n;){let s=Vrr(e[n-1],t,r);if(s.changes&&!s.changes.empty||s.effects.length){let o=e.slice(0,n);return o[n-1]=s,o}else t=s.mapped,n--,r=s.selectionsAfter}return r.length?[Rf.selection(r)]:nm}function Vrr(e,t,n){let r=Ijt(e.selectionsAfter.length?e.selectionsAfter.map(l=>l.map(t)):nm,n);if(!e.changes)return Rf.selection(r);let s=e.changes.map(t),o=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(o):o;return new Rf(s,Sr.mapEffects(e.effects,t),i,e.startSelection.map(o),r)}const qrr=/^(input\.type|delete)($|\.)/;class wy{constructor(t,n,r=0,s=void 0){this.done=t,this.undone=n,this.prevTime=r,this.prevUserEvent=s}isolate(){return this.prevTime?new wy(this.done,this.undone):this}addChanges(t,n,r,s,o){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&t.changes&&(!r||qrr.test(r))&&(!l.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(o,Frr(l.changes,t.changes))||r=="input.type.compose")?i=pq(i,i.length-1,s.minDepth,new Rf(t.changes.compose(l.changes),Ijt(Sr.mapEffects(t.effects,l.changes),l.effects),l.mapped,l.startSelection,nm)):i=pq(i,i.length,s.minDepth,t),new wy(i,nm,n,r)}addSelection(t,n,r,s){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:nm;return o.length>0&&n-this.prevTime<s&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&zrr(o[o.length-1],t)?this:new wy(Ajt(this.done,t),this.undone,n,r)}addMapping(t){return new wy(gse(this.done,t),gse(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,n,r){let s=t==0?this.done:this.undone;if(s.length==0)return null;let o=s[s.length-1],i=o.selectionsAfter[0]||(o.startSelection?o.startSelection.map(o.changes.invertedDesc,1):n.selection);if(r&&o.selectionsAfter.length)return n.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:Dbe.of({side:t,rest:Urr(s),selection:i}),userEvent:t==0?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let l=s.length==1?nm:s.slice(0,s.length-1);return o.mapped&&(l=gse(l,o.mapped)),n.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:Dbe.of({side:t,rest:l,selection:i}),filter:!1,userEvent:t==0?"undo":"redo",scrollIntoView:!0})}else return null}}wy.empty=new wy(nm,nm);const Hrr=[{key:"Mod-z",run:Njt,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Lbe,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Lbe,preventDefault:!0},{key:"Mod-u",run:Drr,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Lrr,preventDefault:!0}];function zA(e,t){return Ot.create(e.ranges.map(t),e.mainIndex)}function mv(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function gv({state:e,dispatch:t},n){let r=zA(e.selection,n);return r.eq(e.selection,!0)?!1:(t(mv(e,r)),!0)}function oQ(e,t){return Ot.cursor(t?e.to:e.from)}function Rjt(e,t){return gv(e,n=>n.empty?e.moveByChar(n,t):oQ(n,t))}function od(e){return e.textDirectionAt(e.state.selection.main.head)==Ei.LTR}const Pjt=e=>Rjt(e,!od(e)),$jt=e=>Rjt(e,od(e));function Mjt(e,t){return gv(e,n=>n.empty?e.moveByGroup(n,t):oQ(n,t))}const Wrr=e=>Mjt(e,!od(e)),Zrr=e=>Mjt(e,od(e));function Grr(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function iQ(e,t,n){let r=bi(e).resolveInner(t.head),s=n?Lr.closedBy:Lr.openedBy;for(let c=t.head;;){let u=n?r.childAfter(c):r.childBefore(c);if(!u)break;Grr(e,u,s)?r=u:c=n?u.to:u.from}let o=r.type.prop(s),i,l;return o&&(i=n?xy(e,r.from,1):xy(e,r.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?r.to:r.from,Ot.cursor(l,n?-1:1)}const Qrr=e=>gv(e,t=>iQ(e.state,t,!od(e))),Yrr=e=>gv(e,t=>iQ(e.state,t,od(e)));function Djt(e,t){return gv(e,n=>{if(!n.empty)return oQ(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}const Ljt=e=>Djt(e,!1),Fjt=e=>Djt(e,!0);function zjt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,s;if(t){for(let o of e.state.facet(zt.scrollMargins)){let i=o(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}s=e.scrollDOM.clientHeight-n-r}else s=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,s-5)}}function Bjt(e,t){let n=zjt(e),{state:r}=e,s=zA(r.selection,i=>i.empty?e.moveVertically(i,t,n.height):oQ(i,t));if(s.eq(r.selection))return!1;let o;if(n.selfScroll){let i=e.coordsAtPos(r.selection.main.head),l=e.scrollDOM.getBoundingClientRect(),c=l.top+n.marginTop,u=l.bottom-n.marginBottom;i&&i.top>c&&i.bottom<u&&(o=zt.scrollIntoView(s.main.head,{y:"start",yMargin:i.top-c}))}return e.dispatch(mv(r,s),{effects:o}),!0}const JVe=e=>Bjt(e,!1),Fbe=e=>Bjt(e,!0);function Z1(e,t,n){let r=e.lineBlockAt(t.head),s=e.moveToLineBoundary(t,n);if(s.head==t.head&&s.head!=(n?r.to:r.from)&&(s=e.moveToLineBoundary(t,n,!1)),!n&&s.head==r.from&&r.length){let o=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;o&&t.head!=r.from+o&&(s=Ot.cursor(r.from+o))}return s}const Krr=e=>gv(e,t=>Z1(e,t,!0)),Xrr=e=>gv(e,t=>Z1(e,t,!1)),Jrr=e=>gv(e,t=>Z1(e,t,!od(e))),esr=e=>gv(e,t=>Z1(e,t,od(e))),tsr=e=>gv(e,t=>Ot.cursor(e.lineBlockAt(t.head).from,1)),nsr=e=>gv(e,t=>Ot.cursor(e.lineBlockAt(t.head).to,-1));function rsr(e,t,n){let r=!1,s=zA(e.selection,o=>{let i=xy(e,o.head,-1)||xy(e,o.head,1)||o.head>0&&xy(e,o.head-1,1)||o.head<e.doc.length&&xy(e,o.head+1,-1);if(!i||!i.end)return o;r=!0;let l=i.start.from==o.head?i.end.to:i.end.from;return Ot.cursor(l)});return r?(t(mv(e,s)),!0):!1}const ssr=({state:e,dispatch:t})=>rsr(e,t);function qm(e,t,n){let r=zA(e.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=t&&(s=Ot.range(s.head,s.anchor));let o=n(s);return Ot.range(s.anchor,o.head,o.goalColumn,o.bidiLevel||void 0,o.assoc)});return r.eq(e.state.selection)?!1:(e.dispatch(mv(e.state,r)),!0)}function Ujt(e,t){return qm(e,t,n=>e.moveByChar(n,t))}const Vjt=e=>Ujt(e,!od(e)),qjt=e=>Ujt(e,od(e));function Hjt(e,t){return qm(e,t,n=>e.moveByGroup(n,t))}const osr=e=>Hjt(e,!od(e)),isr=e=>Hjt(e,od(e)),asr=e=>{let t=!od(e);return qm(e,t,n=>iQ(e.state,n,t))},lsr=e=>{let t=od(e);return qm(e,t,n=>iQ(e.state,n,t))};function Wjt(e,t){return qm(e,t,n=>e.moveVertically(n,t))}const Zjt=e=>Wjt(e,!1),Gjt=e=>Wjt(e,!0);function Qjt(e,t){return qm(e,t,n=>e.moveVertically(n,t,zjt(e).height))}const eqe=e=>Qjt(e,!1),tqe=e=>Qjt(e,!0),csr=e=>qm(e,!0,t=>Z1(e,t,!0)),usr=e=>qm(e,!1,t=>Z1(e,t,!1)),dsr=e=>{let t=!od(e);return qm(e,t,n=>Z1(e,n,t))},fsr=e=>{let t=od(e);return qm(e,t,n=>Z1(e,n,t))},hsr=e=>qm(e,!1,t=>Ot.cursor(e.lineBlockAt(t.head).from)),psr=e=>qm(e,!0,t=>Ot.cursor(e.lineBlockAt(t.head).to)),nqe=({state:e,dispatch:t})=>(t(mv(e,{anchor:0})),!0),rqe=({state:e,dispatch:t})=>(t(mv(e,{anchor:e.doc.length})),!0),sqe=({state:e,dispatch:t})=>(t(mv(e,{anchor:e.selection.main.anchor,head:0})),!0),oqe=({state:e,dispatch:t})=>(t(mv(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),msr=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),gsr=({state:e,dispatch:t})=>{let n=aQ(e).map(({from:r,to:s})=>Ot.range(r,Math.min(s+1,e.doc.length)));return t(e.update({selection:Ot.create(n),userEvent:"select"})),!0},vsr=({state:e,dispatch:t})=>{let n=zA(e.selection,r=>{let s=bi(e),o=s.resolveStack(r.from,1);if(r.empty){let i=s.resolveStack(r.from,-1);i.node.from>=o.node.from&&i.node.to<=o.node.to&&(o=i)}for(let i=o;i;i=i.next){let{node:l}=i;if((l.from<r.from&&l.to>=r.to||l.to>r.to&&l.from<=r.from)&&i.next)return Ot.range(l.to,l.from)}return r});return n.eq(e.selection)?!1:(t(mv(e,n)),!0)};function Yjt(e,t){let{state:n}=e,r=n.selection,s=n.selection.ranges.slice();for(let o of n.selection.ranges){let i=n.doc.lineAt(o.head);if(t?i.to<e.state.doc.length:i.from>0)for(let l=o;;){let c=e.moveVertically(l,t);if(c.head<i.from||c.head>i.to){s.some(u=>u.head==c.head)||s.push(c);break}else{if(c.head==l.head)break;l=c}}}return s.length==r.ranges.length?!1:(e.dispatch(mv(n,Ot.create(s,s.length-1))),!0)}const ysr=e=>Yjt(e,!1),bsr=e=>Yjt(e,!0),xsr=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=Ot.create([n.main]):n.main.empty||(r=Ot.create([Ot.cursor(n.main.head)])),r?(t(mv(e,r)),!0):!1};function G3(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,s=r.changeByRange(o=>{let{from:i,to:l}=o;if(i==l){let c=t(o);c<i?(n="delete.backward",c=m9(e,c,!1)):c>i&&(n="delete.forward",c=m9(e,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=m9(e,i,!1),l=m9(e,l,!0);return i==l?{range:o}:{changes:{from:i,to:l},range:Ot.cursor(i,i<o.head?-1:1)}});return s.changes.empty?!1:(e.dispatch(r.update(s,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?zt.announce.of(r.phrase("Selection deleted")):void 0})),!0)}function m9(e,t,n){if(e instanceof zt)for(let r of e.state.facet(zt.atomicRanges).map(s=>s(e)))r.between(t,t,(s,o)=>{s<t&&o>t&&(t=n?o:s)});return t}const Kjt=(e,t,n)=>G3(e,r=>{let s=r.from,{state:o}=e,i=o.doc.lineAt(s),l,c;if(n&&!t&&s>i.from&&s<i.from+200&&!/[^ \t]/.test(l=i.text.slice(0,s-i.from))){if(l[l.length-1]==" ")return s-1;let u=nv(l,o.tabSize),d=u%QC(o)||QC(o);for(let f=0;f<d&&l[l.length-1-f]==" ";f++)s--;c=s}else c=Nc(i.text,s-i.from,t,t)+i.from,c==s&&i.number!=(t?o.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(i.text.slice(c-i.from,s-i.from))&&(c=Nc(i.text,c-i.from,!1,!1)+i.from);return c}),zbe=e=>Kjt(e,!1,!0),Xjt=e=>Kjt(e,!0,!1),Jjt=(e,t)=>G3(e,n=>{let r=n.head,{state:s}=e,o=s.doc.lineAt(r),i=s.charCategorizer(r);for(let l=null;;){if(r==(t?o.to:o.from)){r==n.head&&o.number!=(t?s.doc.lines:1)&&(r+=t?1:-1);break}let c=Nc(o.text,r-o.from,t)+o.from,u=o.text.slice(Math.min(r,c)-o.from,Math.max(r,c)-o.from),d=i(u);if(l!=null&&d!=l)break;(u!=" "||r!=n.head)&&(l=d),r=c}return r}),eNt=e=>Jjt(e,!1),wsr=e=>Jjt(e,!0),Ssr=e=>G3(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),ksr=e=>G3(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),Osr=e=>G3(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),Csr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>({changes:{from:r.from,to:r.to,insert:to.of(["",""])},range:Ot.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},_sr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let s=r.from,o=e.doc.lineAt(s),i=s==o.from?s-1:Nc(o.text,s-o.from,!1)+o.from,l=s==o.to?s+1:Nc(o.text,s-o.from,!0)+o.from;return{changes:{from:i,to:l,insert:e.doc.slice(s,l).append(e.doc.slice(i,s))},range:Ot.cursor(l)}});return n.changes.empty?!1:(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function aQ(e){let t=[],n=-1;for(let r of e.selection.ranges){let s=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(!r.empty&&r.to==o.from&&(o=e.doc.lineAt(r.to-1)),n>=s.number){let i=t[t.length-1];i.to=o.to,i.ranges.push(r)}else t.push({from:s.from,to:o.to,ranges:[r]});n=o.number+1}return t}function tNt(e,t,n){if(e.readOnly)return!1;let r=[],s=[];for(let o of aQ(e)){if(n?o.to==e.doc.length:o.from==0)continue;let i=e.doc.lineAt(n?o.to+1:o.from-1),l=i.length+1;if(n){r.push({from:o.to,to:i.to},{from:o.from,insert:i.text+e.lineBreak});for(let c of o.ranges)s.push(Ot.range(Math.min(e.doc.length,c.anchor+l),Math.min(e.doc.length,c.head+l)))}else{r.push({from:i.from,to:o.from},{from:o.to,insert:e.lineBreak+i.text});for(let c of o.ranges)s.push(Ot.range(c.anchor-l,c.head-l))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:Ot.create(s,e.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Esr=({state:e,dispatch:t})=>tNt(e,t,!1),Tsr=({state:e,dispatch:t})=>tNt(e,t,!0);function nNt(e,t,n){if(e.readOnly)return!1;let r=[];for(let o of aQ(e))n?r.push({from:o.from,insert:e.doc.slice(o.from,o.to)+e.lineBreak}):r.push({from:o.to,insert:e.lineBreak+e.doc.slice(o.from,o.to)});let s=e.changes(r);return t(e.update({changes:s,selection:e.selection.map(s,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const jsr=({state:e,dispatch:t})=>nNt(e,t,!1),Nsr=({state:e,dispatch:t})=>nNt(e,t,!0),Isr=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(aQ(t).map(({from:s,to:o})=>(s>0?s--:o<t.doc.length&&o++,{from:s,to:o}))),r=zA(t.selection,s=>{let o;if(e.lineWrapping){let i=e.lineBlockAt(s.head),l=e.coordsAtPos(s.head,s.assoc||1);l&&(o=i.bottom+e.documentTop-l.bottom+e.defaultLineHeight/2)}return e.moveVertically(s,!0,o)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Asr(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=bi(e).resolveInner(t),r=n.childBefore(t),s=n.childAfter(t),o;return r&&s&&r.to<=t&&s.from>=t&&(o=r.type.prop(Lr.closedBy))&&o.indexOf(s.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}const iqe=rNt(!1),Rsr=rNt(!0);function rNt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(s=>{let{from:o,to:i}=s,l=t.doc.lineAt(o),c=!e&&o==i&&Asr(t,o);e&&(o=i=(i<=l.to?l:t.doc.lineAt(i)).to);let u=new JG(t,{simulateBreak:o,simulateDoubleBreak:!!c}),d=gEe(u,o);for(d==null&&(d=nv(/^\s*/.exec(t.doc.lineAt(o).text)[0],t.tabSize));i<l.to&&/\s/.test(l.text[i-l.from]);)i++;c?{from:o,to:i}=c:o>l.from&&o<l.from+100&&!/\S/.test(l.text.slice(0,o))&&(o=l.from);let f=["",hL(t,d)];return c&&f.push(hL(t,u.lineIndent(l.from,-1))),{changes:{from:o,to:i,insert:to.of(f)},range:Ot.cursor(o+1+f[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function QEe(e,t){let n=-1;return e.changeByRange(r=>{let s=[];for(let i=r.from;i<=r.to;){let l=e.doc.lineAt(i);l.number>n&&(r.empty||r.to>l.from)&&(t(l,s,r),n=l.number),i=l.to+1}let o=e.changes(s);return{changes:s,range:Ot.range(o.mapPos(r.anchor,1),o.mapPos(r.head,1))}})}const Psr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new JG(e,{overrideIndentation:o=>{let i=n[o];return i??-1}}),s=QEe(e,(o,i,l)=>{let c=gEe(r,o.from);if(c==null)return;/\S/.test(o.text)||(c=0);let u=/^\s*/.exec(o.text)[0],d=hL(e,c);(u!=d||l.from<o.from+u.length)&&(n[o.from]=c,i.push({from:o.from,to:o.from+u.length,insert:d}))});return s.changes.empty||t(e.update(s,{userEvent:"indent"})),!0},sNt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(QEe(e,(n,r)=>{r.push({from:n.from,insert:e.facet(DA)})}),{userEvent:"input.indent"})),!0),oNt=({state:e,dispatch:t})=>e.readOnly?!1:(t(e.update(QEe(e,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let o=nv(s,e.tabSize),i=0,l=hL(e,Math.max(0,o-QC(e)));for(;i<s.length&&i<l.length&&s.charCodeAt(i)==l.charCodeAt(i);)i++;r.push({from:n.from+i,to:n.from+s.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0),$sr=e=>(e.setTabFocusMode(),!0),Msr=[{key:"Ctrl-b",run:Pjt,shift:Vjt,preventDefault:!0},{key:"Ctrl-f",run:$jt,shift:qjt},{key:"Ctrl-p",run:Ljt,shift:Zjt},{key:"Ctrl-n",run:Fjt,shift:Gjt},{key:"Ctrl-a",run:tsr,shift:hsr},{key:"Ctrl-e",run:nsr,shift:psr},{key:"Ctrl-d",run:Xjt},{key:"Ctrl-h",run:zbe},{key:"Ctrl-k",run:Ssr},{key:"Ctrl-Alt-h",run:eNt},{key:"Ctrl-o",run:Csr},{key:"Ctrl-t",run:_sr},{key:"Ctrl-v",run:Fbe}],Dsr=[{key:"ArrowLeft",run:Pjt,shift:Vjt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Wrr,shift:osr,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Jrr,shift:dsr,preventDefault:!0},{key:"ArrowRight",run:$jt,shift:qjt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Zrr,shift:isr,preventDefault:!0},{mac:"Cmd-ArrowRight",run:esr,shift:fsr,preventDefault:!0},{key:"ArrowUp",run:Ljt,shift:Zjt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:nqe,shift:sqe},{mac:"Ctrl-ArrowUp",run:JVe,shift:eqe},{key:"ArrowDown",run:Fjt,shift:Gjt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:rqe,shift:oqe},{mac:"Ctrl-ArrowDown",run:Fbe,shift:tqe},{key:"PageUp",run:JVe,shift:eqe},{key:"PageDown",run:Fbe,shift:tqe},{key:"Home",run:Xrr,shift:usr,preventDefault:!0},{key:"Mod-Home",run:nqe,shift:sqe},{key:"End",run:Krr,shift:csr,preventDefault:!0},{key:"Mod-End",run:rqe,shift:oqe},{key:"Enter",run:iqe,shift:iqe},{key:"Mod-a",run:msr},{key:"Backspace",run:zbe,shift:zbe,preventDefault:!0},{key:"Delete",run:Xjt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:eNt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:wsr,preventDefault:!0},{mac:"Mod-Backspace",run:ksr,preventDefault:!0},{mac:"Mod-Delete",run:Osr,preventDefault:!0}].concat(Msr.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),Lsr=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Qrr,shift:asr},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Yrr,shift:lsr},{key:"Alt-ArrowUp",run:Esr},{key:"Shift-Alt-ArrowUp",run:jsr},{key:"Alt-ArrowDown",run:Tsr},{key:"Shift-Alt-ArrowDown",run:Nsr},{key:"Mod-Alt-ArrowUp",run:ysr},{key:"Mod-Alt-ArrowDown",run:bsr},{key:"Escape",run:xsr},{key:"Mod-Enter",run:Rsr},{key:"Alt-l",mac:"Ctrl-l",run:gsr},{key:"Mod-i",run:vsr,preventDefault:!0},{key:"Mod-[",run:oNt},{key:"Mod-]",run:sNt},{key:"Mod-Alt-\\",run:Psr},{key:"Shift-Mod-k",run:Isr},{key:"Shift-Mod-\\",run:ssr},{key:"Mod-/",run:Err},{key:"Alt-A",run:jrr},{key:"Ctrl-m",mac:"Shift-Alt-m",run:$sr}].concat(Dsr),Fsr={key:"Tab",run:sNt,shift:oNt},aqe=typeof String.prototype.normalize=="function"?e=>e.normalize("NFKD"):e=>e;class iI{constructor(t,n,r=0,s=t.length,o,i){this.test=i,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(r,s),this.bufferStart=r,this.normalize=o?l=>o(aqe(l)):aqe,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Cf(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let n=K_e(t),r=this.bufferStart+this.bufferPos;this.bufferPos+=ly(t);let s=this.normalize(n);if(s.length)for(let o=0,i=r,l=!0;;o++){let c=s.charCodeAt(o),u=this.match(c,i,l,this.bufferPos+this.bufferStart,o==s.length-1);if(u)return this.value=u,this;if(o==s.length-1)break;l&&o<n.length&&n.charCodeAt(o)==c?i++:l=!1}}}match(t,n,r,s,o){let i=null;for(let l=0;l<this.matches.length;){let c=this.matches[l],u=!1;this.query.charCodeAt(c.index)==t&&(c.index==this.query.length-1?i={from:c.from,to:s,precise:o&&c.precise}:(c.index++,u=!0)),u?l++:this.matches.splice(l,1)}return this.query.charCodeAt(0)==t&&(this.query.length==1?i={from:n,to:s,precise:r&&o}:this.matches.push({from:n,index:1,precise:r})),i&&this.test&&!this.test(i.from,i.to,this.buffer,this.bufferStart)&&(i=null),i}}typeof Symbol<"u"&&(iI.prototype[Symbol.iterator]=function(){return this});const iNt={from:-1,to:-1,match:/.*/.exec(""),precise:!0},YEe="gm"+(/x/.unicode==null?"":"u");class aNt{constructor(t,n,r,s=0,o=t.length){if(this.text=t,this.to=o,this.curLine="",this.done=!1,this.value=iNt,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new lNt(t,n,r,s,o);this.re=new RegExp(n,YEe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.iter=t.iter();let i=t.lineAt(s);this.curLineStart=i.from,this.matchPos=mq(t,s),this.getLine(this.curLineStart)}getLine(t){this.iter.next(t),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let r=this.curLineStart+n.index,s=r+n[0].length;if(this.matchPos=mq(this.text,s+(r==s?1:0)),r==this.curLineStart+this.curLine.length&&this.nextLine(),(r<s||r>this.value.to)&&(!this.test||this.test(r,s,n)))return this.value={from:r,to:s,precise:!0,match:n},this;t=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),t=0;else return this.done=!0,this}}}const vse=new WeakMap;class eN{constructor(t,n){this.from=t,this.text=n}get to(){return this.from+this.text.length}static get(t,n,r){let s=vse.get(t);if(!s||s.from>=r||s.to<=n){let l=new eN(n,t.sliceString(n,r));return vse.set(t,l),l}if(s.from==n&&s.to==r)return s;let{text:o,from:i}=s;return i>n&&(o=t.sliceString(n,i)+o,i=n),s.to<r&&(o+=t.sliceString(s.to,r)),vse.set(t,new eN(i,o)),new eN(n,o.slice(n-i,r-i))}}class lNt{constructor(t,n,r,s,o){this.text=t,this.to=o,this.done=!1,this.value=iNt,this.matchPos=mq(t,s),this.re=new RegExp(n,YEe+(r?.ignoreCase?"i":"")),this.test=r?.test,this.flat=eN.get(t,s,this.chunkEnd(s+5e3))}chunkEnd(t){return t>=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==t&&(this.re.lastIndex=t+1,n=this.re.exec(this.flat.text)),n){let r=this.flat.from+n.index,s=r+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(r,s,n)))return this.value={from:r,to:s,precise:!0,match:n},this.matchPos=mq(this.text,s+(r==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=eN.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(aNt.prototype[Symbol.iterator]=lNt.prototype[Symbol.iterator]=function(){return this});function zsr(e){try{return new RegExp(e,YEe),!0}catch{return!1}}function mq(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}const Bsr=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:s}=kXn(e,{label:t.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:t.phrase("go")});return s.then(o=>{let i=o&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(o.elements.line.value);if(!i){e.dispatch({effects:r});return}let l=t.doc.lineAt(t.selection.main.head),[,c,u,d,f]=i,h=d?+d.slice(1):0,p=u?+u:l.number;if(u&&f){let v=p/100;c&&(v=v*(c=="-"?-1:1)+l.number/t.doc.lines),p=Math.round(t.doc.lines*v)}else u&&c&&(p=p*(c=="-"?-1:1)+l.number);let m=t.doc.line(Math.max(1,Math.min(t.doc.lines,p))),y=Ot.cursor(m.from+Math.max(0,Math.min(h,m.length)));e.dispatch({effects:[r,zt.scrollIntoView(y.from,{y:"center"})],selection:y})}),!0},Usr={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Vsr=En.define({combine(e){return pb(e,Usr,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function qsr(e){return[Qsr,Gsr]}const Hsr=Fn.mark({class:"cm-selectionMatch"}),Wsr=Fn.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function lqe(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=wa.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=wa.Word)}function Zsr(e,t,n,r){return e(t.sliceDoc(n,n+1))==wa.Word&&e(t.sliceDoc(r-1,r))==wa.Word}const Gsr=Ca.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Vsr),{state:n}=e,r=n.selection;if(r.ranges.length>1)return Fn.none;let s=r.main,o,i=null;if(s.empty){if(!t.highlightWordAroundCursor)return Fn.none;let c=n.wordAt(s.head);if(!c)return Fn.none;i=n.charCategorizer(s.head),o=n.sliceDoc(c.from,c.to)}else{let c=s.to-s.from;if(c<t.minSelectionLength||c>200)return Fn.none;if(t.wholeWords){if(o=n.sliceDoc(s.from,s.to),i=n.charCategorizer(s.head),!(lqe(i,n,s.from,s.to)&&Zsr(i,n,s.from,s.to)))return Fn.none}else if(o=n.sliceDoc(s.from,s.to),!o)return Fn.none}let l=[];for(let c of e.visibleRanges){let u=new iI(n.doc,o,c.from,c.to);for(;!u.next().done;){let{from:d,to:f}=u.value;if((!i||lqe(i,n,d,f))&&(s.empty&&d<=s.from&&f>=s.to?l.push(Wsr.range(d,f)):(d>=s.to||f<=s.from)&&l.push(Hsr.range(d,f)),l.length>t.maxMatches))return Fn.none}}return Fn.set(l)}},{decorations:e=>e.decorations}),Qsr=zt.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Ysr=({state:e,dispatch:t})=>{let{selection:n}=e,r=Ot.create(n.ranges.map(s=>e.wordAt(s.head)||Ot.cursor(s.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function Ksr(e,t){let{main:n,ranges:r}=e.selection,s=e.wordAt(n.head),o=s&&s.from==n.from&&s.to==n.to;for(let i=!1,l=new iI(e.doc,t,r[r.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new iI(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),i=!0}else{if(i&&r.some(c=>c.from==l.value.from))continue;if(o){let c=e.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const Xsr=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(o=>o.from===o.to))return Ysr({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(o=>e.sliceDoc(o.from,o.to)!=r))return!1;let s=Ksr(e,r);return s?(t(e.update({selection:e.selection.addRange(Ot.range(s.from,s.to),!1),effects:zt.scrollIntoView(s.to)})),!0):!1},BA=En.define({combine(e){return pb(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new hor(t),scrollToMatch:t=>zt.scrollIntoView(t)})}});class cNt{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||zsr(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord,this.test=t.test}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,(n,r)=>r=="n"?`
249
- `:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new sor(this):new tor(this)}getCursor(t,n=0,r){let s=t.doc?t:xs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?XT(this,s,n,r):KT(this,s,n,r)}}class uNt{constructor(t){this.spec=t}}function Jsr(e,t,n){return(r,s,o,i)=>{if(n&&!n(r,s,o,i))return!1;let l=r>=i&&s<=i+o.length?o.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function KT(e,t,n,r){let s;return e.wholeWord&&(s=eor(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=Jsr(e.test,t,s)),new iI(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:o=>o.toLowerCase(),s)}function eor(e,t){return(n,r,s,o)=>((o>n||o+s.length<r)&&(o=Math.max(0,n-2),s=e.sliceString(o,Math.min(e.length,r+2))),(t(gq(s,n-o))!=wa.Word||t(vq(s,n-o))!=wa.Word)&&(t(vq(s,r-o))!=wa.Word||t(gq(s,r-o))!=wa.Word))}class tor extends uNt{constructor(t){super(t)}nextMatch(t,n,r){let s=KT(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let o=Math.min(t.doc.length,n+this.spec.unquoted.length);s=KT(this.spec,t,0,o).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let o=Math.max(n,s-1e4-this.spec.unquoted.length),i=KT(this.spec,t,o,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(o==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=KT(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let o=KT(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!o.next().done;)s(o.value.from,o.value.to)}}function nor(e,t,n){return(r,s,o)=>(!n||n(r,s,o))&&e(o[0],t,r,s)}function XT(e,t,n,r){let s;return e.wholeWord&&(s=ror(t.charCategorizer(t.selection.main.head))),e.test&&(s=nor(e.test,t,s)),new aNt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function gq(e,t){return e.slice(Nc(e,t,!1),t)}function vq(e,t){return e.slice(t,Nc(e,t))}function ror(e){return(t,n,r)=>!r[0].length||(e(gq(r.input,r.index))!=wa.Word||e(vq(r.input,r.index))!=wa.Word)&&(e(vq(r.input,r.index+r[0].length))!=wa.Word||e(gq(r.input,r.index+r[0].length))!=wa.Word)}class sor extends uNt{nextMatch(t,n,r){let s=XT(this.spec,t,r,t.doc.length).next();return s.done&&(s=XT(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let o=Math.max(n,r-s*1e4),i=XT(this.spec,t,o,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(o==n||l.from>o+10))return l;if(o==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let o=+r.slice(0,s);if(o>0&&o<t.match.length)return t.match[o]+r.slice(s)}return n})}matchAll(t,n){let r=XT(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let o=XT(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!o.next().done;)s(o.value.from,o.value.to)}}const SL=Sr.define(),KEe=Sr.define(),NS=ql.define({create(e){return new yse(Bbe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(SL)?e=new yse(n.value.create(),e.panel):n.is(KEe)&&(e=new yse(e.query,n.value?XEe:null));return e},provide:e=>fL.from(e,t=>t.panel)});class yse{constructor(t,n){this.query=t,this.panel=n}}const oor=Fn.mark({class:"cm-searchMatch"}),ior=Fn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),aor=Ca.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(NS))}update(e){let t=e.state.field(NS);(t!=e.startState.field(NS)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return Fn.none;let{view:n}=this,r=new Wf;for(let s=0,o=n.visibleRanges,i=o.length;s<i;s++){let{from:l,to:c}=o[s];for(;s<i-1&&c>o[s+1].from-500;)c=o[++s].to;e.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?ior:oor)})}return r.finish()}},{decorations:e=>e.decorations});function Q3(e){return t=>{let n=t.state.field(NS,!1);return n&&n.query.spec.valid?e(t,n):hNt(t)}}const yq=Q3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=Ot.single(r.from,r.to),o=e.state.facet(BA);return e.dispatch({selection:s,effects:[JEe(e,r),o.scrollToMatch(s.main,e)],userEvent:"select.search"}),fNt(e),!0}),bq=Q3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let o=Ot.single(s.from,s.to),i=e.state.facet(BA);return e.dispatch({selection:o,effects:[JEe(e,s),i.scrollToMatch(o.main,e)],userEvent:"select.search"}),fNt(e),!0}),lor=Q3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:Ot.create(n.map(r=>Ot.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),cor=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:s}=n.main,o=[],i=0;for(let l=new iI(e.doc,e.sliceDoc(r,s));!l.next().done;){if(o.length>1e3)return!1;l.value.from==r&&(i=o.length),o.push(Ot.range(l.value.from,l.value.to))}return t(e.update({selection:Ot.create(o,i),userEvent:"select.search.matches"})),!0},cqe=Q3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let o=t.nextMatch(n,r,r);if(!o)return!1;let i=o,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(zt.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=Ot.single(i.from,i.to).map(f),d.push(JEe(e,i)),d.push(n.facet(BA).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),uor=Q3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:o,to:i,precise:l}=s;l&&n.push({from:o,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:zt.announce.of(r),userEvent:"input.replace.all"}),!0});function XEe(e){return e.state.facet(BA).createPanel(e)}function Bbe(e,t){var n,r,s,o,i;let l=e.selection.main,c=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!c)return t;let u=e.facet(BA);return new cNt({search:((n=t?.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=t?.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(s=t?.literal)!==null&&s!==void 0?s:u.literal,regexp:(o=t?.regexp)!==null&&o!==void 0?o:u.regexp,wholeWord:(i=t?.wholeWord)!==null&&i!==void 0?i:u.wholeWord})}function dNt(e){let t=pEe(e,XEe);return t&&t.dom.querySelector("[main-field]")}function fNt(e){let t=dNt(e);t&&t==e.root.activeElement&&t.select()}const hNt=e=>{let t=e.state.field(NS,!1);if(t&&t.panel){let n=dNt(e);if(n&&n!=e.root.activeElement){let r=Bbe(e.state,t.query.spec);r.valid&&e.dispatch({effects:SL.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[KEe.of(!0),t?SL.of(Bbe(e.state,t.query.spec)):Sr.appendConfig.of(mor)]});return!0},pNt=e=>{let t=e.state.field(NS,!1);if(!t||!t.panel)return!1;let n=pEe(e,XEe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:KEe.of(!1)}),!0},dor=[{key:"Mod-f",run:hNt,scope:"editor search-panel"},{key:"F3",run:yq,shift:bq,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:yq,shift:bq,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:pNt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:cor},{key:"Mod-Alt-g",run:Bsr},{key:"Mod-d",run:Xsr,preventDefault:!0}];class hor{constructor(t){this.view=t;let n=this.query=t.state.field(NS).query.spec;this.commit=this.commit.bind(this),this.searchField=pi("input",{value:n.search,placeholder:ph(t,"Find"),"aria-label":ph(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=pi("input",{value:n.replace,placeholder:ph(t,"Replace"),"aria-label":ph(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=pi("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=pi("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=pi("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,o,i){return pi("button",{class:"cm-button",name:s,onclick:o,type:"button"},i)}this.dom=pi("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>yq(t),[ph(t,"next")]),r("prev",()=>bq(t),[ph(t,"previous")]),r("select",()=>lor(t),[ph(t,"all")]),pi("label",null,[this.caseField,ph(t,"match case")]),pi("label",null,[this.reField,ph(t,"regexp")]),pi("label",null,[this.wordField,ph(t,"by word")]),...t.state.readOnly?[]:[pi("br"),this.replaceField,r("replace",()=>cqe(t),[ph(t,"replace")]),r("replaceAll",()=>uor(t),[ph(t,"replace all")])],pi("button",{name:"close",onclick:()=>pNt(t),"aria-label":ph(t,"close"),type:"button"},["×"])])}commit(){let t=new cNt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:SL.of(t)}))}keydown(t){RKn(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?bq:yq)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),cqe(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(SL)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(BA).top}}function ph(e,t){return e.state.phrase(t)}const g9=30,v9=/[\s\.,:;?!]/;function JEe(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),s=e.state.doc.lineAt(n).to,o=Math.max(r.from,t-g9),i=Math.min(s,n+g9),l=e.state.sliceDoc(o,i);if(o!=r.from){for(let c=0;c<g9;c++)if(!v9.test(l[c+1])&&v9.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-g9;c--)if(!v9.test(l[c-1])&&v9.test(l[c])){l=l.slice(0,c);break}}return zt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const por=zt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),mor=[NS,fp.low(aor),por];class uqe{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class SO{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(kL).markerFilter;s&&(t=s(t,r));let o=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Wf,l=[],c=0;for(let d=0;;){let f=d==o.length?null:o[d];if(!f&&!l.length)break;let h,p;for(l.length?(h=c,p=l.reduce((y,v)=>Math.min(y,v.to),f&&f.from>h?f.from:1e8)):(h=f.from,p=f.to,l.push(f),d++);d<o.length;){let y=o[d];if(y.from==h&&(y.to>y.from||y.to==h))l.push(y),d++,p=Math.min(y.to,p);else{p=Math.min(y.from,p);break}}let m=Tor(l);if(l.some(y=>y.from==y.to||y.from==y.to-1&&r.doc.lineAt(y.from).to==y.from))i.add(h,h,Fn.widget({widget:new Oor(m),diagnostics:l.slice()}));else{let y=l.reduce((v,b)=>b.markClass?v+" "+b.markClass:v,"");i.add(h,p,Fn.mark({class:"cm-lintRange cm-lintRange-"+m+y,diagnostics:l.slice(),inclusiveEnd:l.some(v=>v.to>p)}))}c=p;for(let y=0;y<l.length;y++)l[y].to<=c&&l.splice(y--,1)}let u=i.finish();return new SO(u,n,aI(u))}}function aI(e,t=null,n=0){let r=null;return e.between(n,1e9,(s,o,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new uqe(s,o,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new uqe(r.from,o,r.diagnostic)}}),r}function gor(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(kL).hideOn(e,n,r);if(s!=null)return s;let o=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(mNt))||e.changes.touchesRange(o.from,Math.max(o.to,r)))}function vor(e,t){return e.field(Dh,!1)?t:t.concat(Sr.appendConfig.of(jor))}const mNt=Sr.define(),eTe=Sr.define(),gNt=Sr.define(),Dh=ql.define({create(){return new SO(Fn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let o=t.changes.mapPos(e.selected.from,1);r=aI(n,e.selected.diagnostic,o)||aI(n,null,o)}!n.size&&s&&t.state.facet(kL).autoPanel&&(s=null),e=new SO(n,s,r)}for(let n of t.effects)if(n.is(mNt)){let r=t.state.facet(kL).autoPanel?n.value.length?OL.open:null:e.panel;e=SO.init(n.value,r,t.state)}else n.is(eTe)?e=new SO(e.diagnostics,n.value?OL.open:null,e.selected):n.is(gNt)&&(e=new SO(e.diagnostics,e.panel,n.value));return e},provide:e=>[fL.from(e,t=>t.panel),zt.decorations.from(e,t=>t.diagnostics)]}),yor=Fn.mark({class:"cm-lintRange cm-lintRange-active"});function bor(e,t,n){let{diagnostics:r}=e.state.field(Dh),s,o=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,o=c,i=u,!1});let l=e.state.facet(kL).tooltipFilter;return s&&l&&(s=l(s,e.state)),s?{pos:o,end:i,above:e.state.doc.lineAt(o).to<i,create(){return{dom:xor(e,s)}}}:null}function xor(e,t){return pi("ul",{class:"cm-tooltip-lint"},t.map(n=>yNt(e,n,!1)))}const wor=e=>{let t=e.state.field(Dh,!1);(!t||!t.panel)&&e.dispatch({effects:vor(e.state,[eTe.of(!0)])});let n=pEe(e,OL.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},dqe=e=>{let t=e.state.field(Dh,!1);return!t||!t.panel?!1:(e.dispatch({effects:eTe.of(!1)}),!0)},Sor=e=>{let t=e.state.field(Dh,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},kor=[{key:"Mod-Shift-m",run:wor,preventDefault:!0},{key:"F8",run:Sor}],kL=En.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...pb(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:fqe,tooltipFilter:fqe,needsRefresh:(t,n)=>t?n?r=>t(r)||n(r):t:n,hideOn:(t,n)=>t?n?(r,s,o)=>t(r,s,o)||n(r,s,o):t:n,autoPanel:(t,n)=>t||n})}}});function fqe(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function vNt(e){let t=[];if(e)e:for(let{name:n}of e){for(let r=0;r<n.length;r++){let s=n[r];if(/[a-zA-Z]/.test(s)&&!t.some(o=>o.toLowerCase()==s.toLowerCase())){t.push(s);continue e}}t.push("")}return t}function yNt(e,t,n){var r;let s=n?vNt(t.actions):[];return pi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},pi("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),(r=t.actions)===null||r===void 0?void 0:r.map((o,i)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=aI(e.state.field(Dh).diagnostics,t);m&&o.apply(e,m.from,m.to)},{name:u}=o,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),pi("u",u.slice(d,d+1)),u.slice(d+1)],h=o.markClass?" "+o.markClass:"";return pi("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&pi("div",{class:"cm-diagnosticSource"},t.source))}class Oor extends hp{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return pi("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class hqe{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=yNt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class OL{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)dqe(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],i=vNt(o.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=aI(this.view.state.field(Dh).diagnostics,o);c&&o.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let o=0;o<this.items.length;o++)this.items[o].dom.contains(s.target)&&this.moveSelection(o)};this.list=pi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=pi("div",{class:"cm-panel-lint"},this.list,pi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>dqe(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Dh).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(Dh),r=0,s=!1,o=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,h;for(let p=r;p<this.items.length;p++)if(this.items[p].diagnostic==d){f=p;break}f<0?(h=new hqe(this.view,d),this.items.splice(r,0,h),s=!0):(h=this.items[f],f>r&&(this.items.splice(r,f-r),s=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),o=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new hqe(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),o?(this.list.setAttribute("aria-activedescendant",o.id),this.view.requestMeasure({key:this,read:()=>({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(Dh),r=aI(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:gNt.of(r)})}static open(t){return new OL(t)}}function Cor(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function y9(e){return Cor(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const _or=zt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:y9("#d11")},".cm-lintRange-warning":{backgroundImage:y9("orange")},".cm-lintRange-info":{backgroundImage:y9("#999")},".cm-lintRange-hint":{backgroundImage:y9("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Eor(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function Tor(e){let t="hint",n=1;for(let r of e){let s=Eor(r.severity);s>n&&(n=s,t=r.severity)}return t}const jor=[Dh,zt.decorations.compute([Dh],e=>{let{selected:t,panel:n}=e.field(Dh);return!t||!n||t.from==t.to?Fn.none:Fn.set([yor.range(t.from,t.to)])}),wXn(bor,{hideOn:gor}),_or];var pqe=function(t){t===void 0&&(t={});var n=t,r=n.crosshairCursor,s=r===void 0?!1:r,o=[];t.closeBracketsKeymap!==!1&&(o=o.concat(ver)),t.defaultKeymap!==!1&&(o=o.concat(Lsr)),t.searchKeymap!==!1&&(o=o.concat(dor)),t.historyKeymap!==!1&&(o=o.concat(Hrr)),t.foldKeymap!==!1&&(o=o.concat(nJn)),t.completionKeymap!==!1&&(o=o.concat(dTt)),t.lintKeymap!==!1&&(o=o.concat(kor));var i=[];return t.lineNumbers!==!1&&i.push(AEt()),t.highlightActiveLineGutter!==!1&&i.push($Xn()),t.highlightSpecialChars!==!1&&i.push(QKn()),t.history!==!1&&i.push(Mrr()),t.foldGutter!==!1&&i.push(iJn()),t.drawSelection!==!1&&i.push(FKn()),t.dropCursor!==!1&&i.push(qKn()),t.allowMultipleSelections!==!1&&i.push(xs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(GXn()),t.syntaxHighlighting!==!1&&i.push(LA(uJn,{fallback:!0})),t.bracketMatching!==!1&&i.push(vJn()),t.closeBrackets!==!1&&i.push(her()),t.autocompletion!==!1&&i.push(uTt()),t.rectangularSelection!==!1&&i.push(cXn()),s!==!1&&i.push(fXn()),t.highlightActiveLine!==!1&&i.push(tXn()),t.highlightSelectionMatches!==!1&&i.push(qsr()),t.tabSize&&typeof t.tabSize=="number"&&i.push(DA.of(" ".repeat(t.tabSize))),i.concat([MA.of(o.flat())]).filter(Boolean)};const Nor="#e5c07b",mqe="#e06c75",Ior="#56b6c2",Aor="#ffffff",e7="#abb2bf",Ube="#7d8799",Ror="#61afef",Por="#98c379",gqe="#d19a66",$or="#c678dd",Mor="#21252b",vqe="#2c313a",yqe="#282c34",bse="#353a42",Dor="#3E4451",bqe="#528bff",Lor=zt.theme({"&":{color:e7,backgroundColor:yqe},".cm-content":{caretColor:bqe},".cm-cursor, .cm-dropCursor":{borderLeftColor:bqe},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Dor},".cm-panels":{backgroundColor:Mor,color:e7},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:yqe,color:Ube,border:"none"},".cm-activeLineGutter":{backgroundColor:vqe},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:bse},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:bse,borderBottomColor:bse},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:vqe,color:e7}}},{dark:!0}),For=M0.define([{tag:he.keyword,color:$or},{tag:[he.name,he.deleted,he.character,he.propertyName,he.macroName],color:mqe},{tag:[he.function(he.variableName),he.labelName],color:Ror},{tag:[he.color,he.constant(he.name),he.standard(he.name)],color:gqe},{tag:[he.definition(he.name),he.separator],color:e7},{tag:[he.typeName,he.className,he.number,he.changed,he.annotation,he.modifier,he.self,he.namespace],color:Nor},{tag:[he.operator,he.operatorKeyword,he.url,he.escape,he.regexp,he.link,he.special(he.string)],color:Ior},{tag:[he.meta,he.comment],color:Ube},{tag:he.strong,fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.link,color:Ube,textDecoration:"underline"},{tag:he.heading,fontWeight:"bold",color:mqe},{tag:[he.atom,he.bool,he.special(he.variableName)],color:gqe},{tag:[he.processingInstruction,he.string,he.inserted],color:Por},{tag:he.invalid,color:Aor}]),zor=[Lor,LA(For)];var Bor=zt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Uor=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,o=n.editable,i=o===void 0?!0:o,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,h=f===void 0?"":f,p=n.basicSetup,m=p===void 0?!0:p,y=[];switch(s&&y.unshift(MA.of([Fsr])),m&&(typeof m=="boolean"?y.unshift(pqe()):y.unshift(pqe(m))),h&&y.unshift(oXn(h)),d){case"light":y.push(Bor);break;case"dark":y.push(zor);break;case"none":break;default:y.push(d);break}return i===!1&&y.push(zt.editable.of(!1)),c&&y.push(xs.readOnly.of(!0)),[...y]},Vor=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(t=>!t.empty)});class qor{constructor(t,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(t)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var t=this.callbacks.slice();this.callbacks.length=0,t.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class xqe{constructor(){this.interval=null,this.latches=new Set}add(t){this.latches.add(t),this.start()}remove(t){this.latches.delete(t),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(t=>{t.tick(),t.isDone&&this.remove(t)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var xse=null,Hor=()=>typeof window>"u"?new xqe:(xse||(xse=new xqe),xse),Wor=zt.theme({"& .cm-scroller":{height:"100% !important"}}),wqe=null,wse=null;function Zor(e,t,n,r,s,o){if(!e&&!t&&!n&&!r&&!s&&!o)return null;var i=JSON.stringify({height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:o});return i===wqe||(wqe=i,wse=zt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:o}})),wse}var Sqe=hb.define(),Gor=200,Qor=[];function Yor(e){var t=e.value,n=e.selection,r=e.onChange,s=e.onStatistics,o=e.onCreateEditor,i=e.onUpdate,l=e.extensions,c=l===void 0?Qor:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,h=e.height,p=h===void 0?null:h,m=e.minHeight,y=m===void 0?null:m,v=e.maxHeight,b=v===void 0?null:v,x=e.width,w=x===void 0?null:x,k=e.minWidth,C=k===void 0?null:k,_=e.maxWidth,T=_===void 0?null:_,E=e.placeholder,I=E===void 0?"":E,N=e.editable,A=N===void 0?!0:N,P=e.readOnly,F=P===void 0?!1:P,L=e.indentWithTab,q=L===void 0?!0:L,V=e.basicSetup,H=V===void 0?!0:V,B=e.root,W=e.initialState,z=g.useState(),Y=z[0],D=z[1],R=g.useState(),M=R[0],U=R[1],Q=g.useState(),ee=Q[0],X=Q[1],te=g.useState(()=>({current:null}))[0],ne=g.useState(()=>({current:null}))[0],ce=Zor(p,y,b,w,C,T),J=zt.updateListener.of(ae=>{if(ae.docChanged&&typeof r=="function"&&!ae.transactions.some(Se=>Se.annotation(Sqe))){te.current?te.current.reset():(te.current=new qor(()=>{if(ne.current){var Se=ne.current;ne.current=null,Se()}te.current=null},Gor),Hor().add(te.current));var ue=ae.state.doc,pe=ue.toString();r(pe,ae)}s&&s(Vor(ae))}),re=Uor({theme:f,editable:A,readOnly:F,placeholder:I,indentWithTab:q,basicSetup:H}),se=[J,...ce?[ce]:[],Wor,...re];return i&&typeof i=="function"&&se.push(zt.updateListener.of(i)),se=se.concat(c),g.useLayoutEffect(()=>{if(Y&&!ee){var ae={doc:t,selection:n,extensions:se},ue=W?xs.fromJSON(W.json,ae,W.fields):xs.create(ae);if(X(ue),!M){var pe=new zt({state:ue,parent:Y,root:B});U(pe),o&&o(pe,ue)}}return()=>{M&&(X(void 0),U(void 0))}},[Y,ee]),g.useEffect(()=>{e.container&&D(e.container)},[e.container]),g.useEffect(()=>()=>{M&&(M.destroy(),U(void 0)),te.current&&(te.current.cancel(),te.current=null)},[M]),g.useEffect(()=>{u&&M&&M.focus()},[u,M]),g.useEffect(()=>{M&&M.dispatch({effects:Sr.reconfigure.of(se)})},[f,c,p,y,b,w,C,T,I,A,F,q,H,r,i]),g.useEffect(()=>{if(t!==void 0){var ae=M?M.state.doc.toString():"";if(M&&t!==ae){var ue=te.current&&!te.current.isDone,pe=()=>{M&&t!==M.state.doc.toString()&&M.dispatch({changes:{from:0,to:M.state.doc.toString().length,insert:t||""},annotations:[Sqe.of(!0)]})};ue?ne.current=pe:pe()}}},[t,M]),{state:ee,setState:X,view:M,setView:U,container:Y,setContainer:D}}var Kor=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],f1=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,o=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,h=e.autoFocus,p=e.theme,m=p===void 0?"light":p,y=e.height,v=e.minHeight,b=e.maxHeight,x=e.width,w=e.minWidth,k=e.maxWidth,C=e.basicSetup,_=e.placeholder,T=e.indentWithTab,E=e.editable,I=e.readOnly,N=e.root,A=e.initialState,P=_jt(e,Kor),F=g.useRef(null),L=Yor({root:N,value:s,autoFocus:h,theme:m,height:y,minHeight:v,maxHeight:b,width:x,minWidth:w,maxWidth:k,basicSetup:C,placeholder:_,indentWithTab:T,editable:E,readOnly:I,selection:o,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),q=L.state,V=L.view,H=L.container,B=L.setContainer;g.useImperativeHandle(t,()=>({editor:F.current,state:q,view:V}),[F,H,q,V]);var W=g.useCallback(Y=>{F.current=Y,B(Y)},[B]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var z=typeof m=="string"?"cm-theme-"+m:"cm-theme";return a.jsx("div",KC({ref:W,className:""+z+(n?" "+n:"")},P))});f1.displayName="CodeMirror";function Xor(e){return new GC(bEe.define(e))}const Jor=[Tg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Uo(()=>Promise.resolve().then(()=>p9),[],import.meta.url).then(e=>e.javascript())}}),Tg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return Uo(()=>Promise.resolve().then(()=>jJn),void 0,import.meta.url).then(e=>e.json())}}),Tg.of({name:"JSX",extensions:["jsx"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),Tg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Uo(()=>Promise.resolve().then(()=>krr),void 0,import.meta.url).then(e=>e.markdown())}}),Tg.of({name:"TSX",extensions:["tsx"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),Tg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),Tg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return Uo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>Xor(e.shell))}})];function eir(e,t=5){if(!e?.properties)return[];const n=[];function r(s,o,i){if(i>t)return;const l=Array.isArray(s.type)?s.type.join(" | "):s.type;if(n.push({path:o,label:o,description:s.description??s.title,type:l}),s.properties)for(const[c,u]of Object.entries(s.properties))r(u,`${o}.${c}`,i+1);if(s.items?.properties)for(const[c,u]of Object.entries(s.items.properties))r(u,`${o}[].${c}`,i+1)}for(const[s,o]of Object.entries(e.properties))r(o,s,1);return n}function tir(e){const t=eir(e);return uTt({override:[nir(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function nir(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",o=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,h)=>{const y=u.state.sliceDoc(h,h+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:h,insert:y},selection:{anchor:f+y.length}})}}));return{from:o,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const rir=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,sir=Fn.mark({class:"cm-variable-highlight"}),kqe=new kEt({regexp:rir,decoration:()=>sir}),oir=Ca.fromClass(class{decorations;constructor(e){this.decorations=kqe.createDeco(e)}update(e){this.decorations=kqe.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),iir=oir;function air(){const e=rQ({settings:{fontFamily:"var(--font-mono)",fontSize:"var(--text-body-sm)",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--placeholder)",background:"transparent",foreground:"var(--foreground)",caret:"var(--foreground)"},styles:[{tag:[he.className,he.propertyName],color:"var(--foreground)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic",color:"var(--foreground)"},{tag:he.strong,fontWeight:"bold",color:"var(--foreground)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--foreground)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.quote,fontStyle:"italic",color:"var(--placeholder)"}]}),t=zt.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--foreground)",caretColor:"var(--foreground)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--placeholder)"},".cm-activeLineGutter":{color:"var(--muted-foreground)"},".cm-cursor":{borderLeftColor:"var(--foreground)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--background)",border:"1px solid var(--border)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--foreground)"},".cm-completionDetail":{color:"var(--muted-foreground)",fontSize:"var(--text-caption)",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--background)",border:"1px solid var(--border)",color:"var(--muted-foreground)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--fill-hover)",color:"var(--foreground)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function lir(){const e=zt.theme({"&":{backgroundColor:"transparent",color:"var(--foreground)",fontSize:"var(--text-body-sm)"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--placeholder)",borderRight:"none"},".cm-content":{color:"var(--foreground)",caretColor:"var(--foreground)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--placeholder)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--muted-foreground)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--foreground)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--background)",border:"1px solid var(--border)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--foreground)"},".cm-completionDetail":{color:"var(--muted-foreground)",fontSize:"var(--text-caption)",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--background)",border:"1px solid var(--border)",color:"var(--muted-foreground)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--fill-hover)",color:"var(--foreground)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=M0.define([{tag:[he.comment,he.bracket],color:"var(--placeholder)"},{tag:[he.string,he.meta,he.regexp],color:"var(--accent1)"},{tag:[he.atom,he.bool,he.special(he.variableName)],color:"var(--accent6)"},{tag:[he.keyword,he.operator,he.tagName],color:"var(--accent2)"},{tag:[he.function(he.propertyName),he.propertyName],color:"var(--accent5)"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"var(--accent3)"},{tag:[he.variableName,he.number],color:"var(--accent5)"},{tag:[he.name,he.quote],color:"var(--accent1)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[he.emphasis],fontStyle:"italic",color:"var(--foreground)"},{tag:[he.strong],fontWeight:"bold",color:"var(--foreground)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--foreground)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:[he.deleted],color:"var(--accent2)"},{tag:he.invalid,color:"var(--error)"},{tag:[he.standard(he.tagName)],color:"var(--accent1)"}]);return[e,LA(t)]}const Y3=()=>{const e=T3().resolvedTheme==="dark";return g.useMemo(()=>e?air():lir(),[e])},cir=sd(Z("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","transition-colors duration-normal ease-out-custom"),{variants:{variant:{default:Z(XZ,"rounded-md p-1",Fwt),embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),uir=fp.highest(zt.editorAttributes.of({style:"outline: none"})),dir=fp.highest(zt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),fir=[uir,dir],Or=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:o="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:h,variant:p,id:m,"aria-label":y="Code editor","aria-describedby":v,"aria-invalid":b,...x},w)=>{const k=Y3(),C=e?JSON.stringify(e,null,2):t??"",_=g.useMemo(()=>{const T={"aria-label":y};m&&(T.id=m),v&&(T["aria-describedby"]=v),b!==void 0&&(T["aria-invalid"]=String(b));const E=[...fir,zt.contentAttributes.of(T)];return f&&E.push(zt.lineWrapping),o==="json"?E.push(Bx):o==="markdown"&&E.push(Ojt({base:oI,codeLanguages:Jor})),i&&o==="markdown"&&E.push(iir),c&&o==="markdown"&&E.push(tir(c)),h===!1&&E.push(xs.readOnly.of(!0)),E},[o,i,c,h,f,m,y,v,b]);return a.jsxs("div",{className:Z(cir({variant:p}),s),...x,children:[r&&a.jsx(Co,{content:C,className:"absolute top-2 right-2 z-20"}),a.jsx(f1,{ref:w,value:C,theme:k,extensions:_,onChange:n,editable:h,"aria-label":y,placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),bNt={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let Sse=null;function hir(){return Sse||(Sse=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([Uo(()=>import("./core-YKSXHkoL.js"),__vite__mapDeps([0,1,2]),import.meta.url),Uo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[Uo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),Uo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[Uo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),Uo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),Uo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),Uo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),Uo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),Uo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),Uo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),Uo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),Uo(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),Uo(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),Uo(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),Uo(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),Uo(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),Uo(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),Sse}async function pir(e,t){const n=bNt[t?.toLowerCase()];if(!n)return null;const r=await hir(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function mir(e){const t=e?.split(".").pop()?.toLowerCase();return t?bNt[t]:void 0}const gir=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},vir=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Y3(),{settings:r,setSettings:s}=LG(),o=r?.tracingOptions,i=g.useMemo(()=>gir(o),[o]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=h=>{u.current=!0,c(h)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const h=JSON.parse(l);typeof h=="object"&&h!==null&&s({...r,tracingOptions:h})}catch{return}t?.()};return a.jsxs("div",{className:"space-y-2 px-5 py-2",children:[a.jsx(Ae,{as:"h3",variant:"body",tone:"muted",children:"Tracing Options"}),a.jsx(f1,{value:l,onChange:d,theme:n,extensions:[Bx],className:Z("overflow-hidden overflow-y-scroll rounded-lg bg-card p-3",e)}),a.jsx("div",{className:"flex items-center justify-end",children:a.jsx(le,{icon:a.jsx(Hn,{}),type:"button",onClick:f,children:"Save"})})]})},yir=({resourceId:e,onResourceIdChange:t})=>{const[n,r]=g.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx(le,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>r(!0),children:a.jsx(Et,{children:a.jsx(cCe,{})})})}),a.jsx(Cn,{children:"Run Options"})]}),a.jsx(gs,{open:n,onOpenChange:r,children:a.jsxs(ss,{children:[a.jsxs(os,{children:[a.jsx(es,{children:"Run Options"}),a.jsx(Fs,{children:"Configure resource attribution, tracing and debug options for this workflow run"})]}),a.jsxs(ws,{children:[a.jsx("div",{className:"px-5 py-2",children:a.jsx(Wi,{name:"workflow-run-resource-id",label:"Resource ID",value:e,onChange:s=>t(s.target.value),placeholder:"e.g. tenant-42",helpText:"Ignored when server auth derives the resource ID from the user."})}),a.jsx(vir,{onSaved:()=>r(!1)})]})]})})]})};function Hl(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Hl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var bir={value:()=>{}};function lQ(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new t7(n)}function t7(e){this._=e}function xir(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}t7.prototype=lQ.prototype={constructor:t7,on:function(e,t){var n=this._,r=xir(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=wir(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=Oqe(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Oqe(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new t7(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function wir(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Oqe(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=bir,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Vbe="http://www.w3.org/1999/xhtml";const Cqe={svg:"http://www.w3.org/2000/svg",xhtml:Vbe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function cQ(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Cqe.hasOwnProperty(t)?{space:Cqe[t],local:e}:e}function Sir(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Vbe&&t.documentElement.namespaceURI===Vbe?t.createElement(e):t.createElementNS(n,e)}}function kir(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function xNt(e){var t=cQ(e);return(t.local?kir:Sir)(t)}function Oir(){}function tTe(e){return e==null?Oir:function(){return this.querySelector(e)}}function Cir(e){typeof e!="function"&&(e=tTe(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=new Array(i),c,u,d=0;d<i;++d)(c=o[d])&&(u=e.call(c,c.__data__,d,o))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new tp(r,this._parents)}function _ir(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Eir(){return[]}function wNt(e){return e==null?Eir:function(){return this.querySelectorAll(e)}}function Tir(e){return function(){return _ir(e.apply(this,arguments))}}function jir(e){typeof e=="function"?e=Tir(e):e=wNt(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],l=i.length,c,u=0;u<l;++u)(c=i[u])&&(r.push(e.call(c,c.__data__,u,i)),s.push(c));return new tp(r,s)}function SNt(e){return function(){return this.matches(e)}}function kNt(e){return function(t){return t.matches(e)}}var Nir=Array.prototype.find;function Iir(e){return function(){return Nir.call(this.children,e)}}function Air(){return this.firstElementChild}function Rir(e){return this.select(e==null?Air:Iir(typeof e=="function"?e:kNt(e)))}var Pir=Array.prototype.filter;function $ir(){return Array.from(this.children)}function Mir(e){return function(){return Pir.call(this.children,e)}}function Dir(e){return this.selectAll(e==null?$ir:Mir(typeof e=="function"?e:kNt(e)))}function Lir(e){typeof e!="function"&&(e=SNt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=[],c,u=0;u<i;++u)(c=o[u])&&e.call(c,c.__data__,u,o)&&l.push(c);return new tp(r,this._parents)}function ONt(e){return new Array(e.length)}function Fir(){return new tp(this._enter||this._groups.map(ONt),this._parents)}function xq(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}xq.prototype={constructor:xq,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function zir(e){return function(){return e}}function Bir(e,t,n,r,s,o){for(var i=0,l,c=t.length,u=o.length;i<u;++i)(l=t[i])?(l.__data__=o[i],r[i]=l):n[i]=new xq(e,o[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Uir(e,t,n,r,s,o,i){var l,c,u=new Map,d=t.length,f=o.length,h=new Array(d),p;for(l=0;l<d;++l)(c=t[l])&&(h[l]=p=i.call(c,c.__data__,l,t)+"",u.has(p)?s[l]=c:u.set(p,c));for(l=0;l<f;++l)p=i.call(e,o[l],l,o)+"",(c=u.get(p))?(r[l]=c,c.__data__=o[l],u.delete(p)):n[l]=new xq(e,o[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(h[l])===c&&(s[l]=c)}function Vir(e){return e.__data__}function qir(e,t){if(!arguments.length)return Array.from(this,Vir);var n=t?Uir:Bir,r=this._parents,s=this._groups;typeof e!="function"&&(e=zir(e));for(var o=s.length,i=new Array(o),l=new Array(o),c=new Array(o),u=0;u<o;++u){var d=r[u],f=s[u],h=f.length,p=Hir(e.call(d,d&&d.__data__,u,r)),m=p.length,y=l[u]=new Array(m),v=i[u]=new Array(m),b=c[u]=new Array(h);n(d,f,y,v,b,p,t);for(var x=0,w=0,k,C;x<m;++x)if(k=y[x]){for(x>=w&&(w=x+1);!(C=v[w])&&++w<m;);k._next=C||null}}return i=new tp(i,r),i._enter=l,i._exit=c,i}function Hir(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Wir(){return new tp(this._exit||this._groups.map(ONt),this._parents)}function Zir(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function Gir(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),l=new Array(s),c=0;c<i;++c)for(var u=n[c],d=r[c],f=u.length,h=l[c]=new Array(f),p,m=0;m<f;++m)(p=u[m]||d[m])&&(h[m]=p);for(;c<s;++c)l[c]=n[c];return new tp(l,this._parents)}function Qir(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Yir(e){e||(e=Kir);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],l=i.length,c=s[o]=new Array(l),u,d=0;d<l;++d)(u=i[d])&&(c[d]=u);c.sort(t)}return new tp(s,this._parents).order()}function Kir(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Xir(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Jir(){return Array.from(this)}function ear(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function tar(){let e=0;for(const t of this)++e;return e}function nar(){return!this.node()}function rar(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,l;o<i;++o)(l=s[o])&&e.call(l,l.__data__,o,s);return this}function sar(e){return function(){this.removeAttribute(e)}}function oar(e){return function(){this.removeAttributeNS(e.space,e.local)}}function iar(e,t){return function(){this.setAttribute(e,t)}}function aar(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function lar(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function car(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function uar(e,t){var n=cQ(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?oar:sar:typeof t=="function"?n.local?car:lar:n.local?aar:iar)(n,t))}function CNt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function dar(e){return function(){this.style.removeProperty(e)}}function far(e,t,n){return function(){this.style.setProperty(e,t,n)}}function har(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function par(e,t,n){return arguments.length>1?this.each((t==null?dar:typeof t=="function"?har:far)(e,t,n??"")):lI(this.node(),e)}function lI(e,t){return e.style.getPropertyValue(t)||CNt(e).getComputedStyle(e,null).getPropertyValue(t)}function mar(e){return function(){delete this[e]}}function gar(e,t){return function(){this[e]=t}}function yar(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function bar(e,t){return arguments.length>1?this.each((t==null?mar:typeof t=="function"?yar:gar)(e,t)):this.node()[e]}function _Nt(e){return e.trim().split(/^|\s+/)}function nTe(e){return e.classList||new ENt(e)}function ENt(e){this._node=e,this._names=_Nt(e.getAttribute("class")||"")}ENt.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function TNt(e,t){for(var n=nTe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function jNt(e,t){for(var n=nTe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function xar(e){return function(){TNt(this,e)}}function war(e){return function(){jNt(this,e)}}function Sar(e,t){return function(){(t.apply(this,arguments)?TNt:jNt)(this,e)}}function kar(e,t){var n=_Nt(e+"");if(arguments.length<2){for(var r=nTe(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Sar:t?xar:war)(n,t))}function Oar(){this.textContent=""}function Car(e){return function(){this.textContent=e}}function _ar(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ear(e){return arguments.length?this.each(e==null?Oar:(typeof e=="function"?_ar:Car)(e)):this.node().textContent}function Tar(){this.innerHTML=""}function jar(e){return function(){this.innerHTML=e}}function Nar(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Iar(e){return arguments.length?this.each(e==null?Tar:(typeof e=="function"?Nar:jar)(e)):this.node().innerHTML}function Aar(){this.nextSibling&&this.parentNode.appendChild(this)}function Rar(){return this.each(Aar)}function Par(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $ar(){return this.each(Par)}function Mar(e){var t=typeof e=="function"?e:xNt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Dar(){return null}function Lar(e,t){var n=typeof e=="function"?e:xNt(e),r=t==null?Dar:typeof t=="function"?t:tTe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Far(){var e=this.parentNode;e&&e.removeChild(this)}function zar(){return this.each(Far)}function Bar(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Uar(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Var(e){return this.select(e?Uar:Bar)}function qar(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Har(e){return function(t){e.call(this,t,this.__data__)}}function War(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Zar(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function Gar(e,t,n){return function(){var r=this.__on,s,o=Har(t);if(r){for(var i=0,l=r.length;i<l;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function Qar(e,t,n){var r=War(e+""),s,o=r.length,i;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(s=0,d=l[c];s<o;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(l=t?Gar:Zar,s=0;s<o;++s)this.each(l(r[s],t,n));return this}function NNt(e,t,n){var r=CNt(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function Yar(e,t){return function(){return NNt(this,e,t)}}function Kar(e,t){return function(){return NNt(this,e,t.apply(this,arguments))}}function Xar(e,t){return this.each((typeof t=="function"?Kar:Yar)(e,t))}function*Jar(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var INt=[null];function tp(e,t){this._groups=e,this._parents=t}function K3(){return new tp([[document.documentElement]],INt)}function elr(){return this}tp.prototype=K3.prototype={constructor:tp,select:Cir,selectAll:jir,selectChild:Rir,selectChildren:Dir,filter:Lir,data:qir,enter:Fir,exit:Wir,join:Zir,merge:Gir,selection:elr,order:Qir,sort:Yir,call:Xir,nodes:Jir,node:ear,size:tar,empty:nar,each:rar,attr:uar,style:par,property:bar,classed:kar,text:Ear,html:Iar,raise:Rar,lower:$ar,append:Mar,insert:Lar,remove:zar,clone:Var,datum:qar,on:Qar,dispatch:Xar,[Symbol.iterator]:Jar};function Ih(e){return typeof e=="string"?new tp([[document.querySelector(e)]],[document.documentElement]):new tp([[e]],INt)}function tlr(e){let t;for(;t=e.sourceEvent;)e=t;return e}function jg(e,t){if(e=tlr(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const nlr={passive:!1},CL={capture:!0,passive:!1};function kse(e){e.stopImmediatePropagation()}function tN(e){e.preventDefault(),e.stopImmediatePropagation()}function ANt(e){var t=e.document.documentElement,n=Ih(e).on("dragstart.drag",tN,CL);"onselectstart"in t?n.on("selectstart.drag",tN,CL):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function RNt(e,t){var n=e.document.documentElement,r=Ih(e).on("dragstart.drag",null);t&&(r.on("click.drag",tN,CL),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const b9=e=>()=>e;function qbe(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}qbe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function rlr(e){return!e.ctrlKey&&!e.button}function slr(){return this.parentNode}function olr(e,t){return t??{x:e.x,y:e.y}}function ilr(){return navigator.maxTouchPoints||"ontouchstart"in this}function PNt(){var e=rlr,t=slr,n=olr,r=ilr,s={},o=lQ("start","drag","end"),i=0,l,c,u,d,f=0;function h(k){k.on("mousedown.drag",p).filter(r).on("touchstart.drag",v).on("touchmove.drag",b,nlr).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(k,C){if(!(d||!e.call(this,k,C))){var _=w(this,t.call(this,k,C),k,C,"mouse");_&&(Ih(k.view).on("mousemove.drag",m,CL).on("mouseup.drag",y,CL),ANt(k.view),kse(k),u=!1,l=k.clientX,c=k.clientY,_("start",k))}}function m(k){if(tN(k),!u){var C=k.clientX-l,_=k.clientY-c;u=C*C+_*_>f}s.mouse("drag",k)}function y(k){Ih(k.view).on("mousemove.drag mouseup.drag",null),RNt(k.view,u),tN(k),s.mouse("end",k)}function v(k,C){if(e.call(this,k,C)){var _=k.changedTouches,T=t.call(this,k,C),E=_.length,I,N;for(I=0;I<E;++I)(N=w(this,T,k,C,_[I].identifier,_[I]))&&(kse(k),N("start",k,_[I]))}}function b(k){var C=k.changedTouches,_=C.length,T,E;for(T=0;T<_;++T)(E=s[C[T].identifier])&&(tN(k),E("drag",k,C[T]))}function x(k){var C=k.changedTouches,_=C.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<_;++T)(E=s[C[T].identifier])&&(kse(k),E("end",k,C[T]))}function w(k,C,_,T,E,I){var N=o.copy(),A=jg(I||_,C),P,F,L;if((L=n.call(k,new qbe("beforestart",{sourceEvent:_,target:h,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:N}),T))!=null)return P=L.x-A[0]||0,F=L.y-A[1]||0,function q(V,H,B){var W=A,z;switch(V){case"start":s[E]=q,z=i++;break;case"end":delete s[E],--i;case"drag":A=jg(B||H,C),z=i;break}N.call(V,k,new qbe(V,{sourceEvent:H,subject:L,target:h,identifier:E,active:z,x:A[0]+P,y:A[1]+F,dx:A[0]-W[0],dy:A[1]-W[1],dispatch:N}),T)}}return h.filter=function(k){return arguments.length?(e=typeof k=="function"?k:b9(!!k),h):e},h.container=function(k){return arguments.length?(t=typeof k=="function"?k:b9(k),h):t},h.subject=function(k){return arguments.length?(n=typeof k=="function"?k:b9(k),h):n},h.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:b9(!!k),h):r},h.on=function(){var k=o.on.apply(o,arguments);return k===o?h:k},h.clickDistance=function(k){return arguments.length?(f=(k=+k)*k,h):Math.sqrt(f)},h}function rTe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function $Nt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function X3(){}var _L=.7,wq=1/_L,nN="\\s*([+-]?\\d+)\\s*",EL="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ay="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",alr=/^#([0-9a-f]{3,8})$/,llr=new RegExp(`^rgb\\(${nN},${nN},${nN}\\)$`),clr=new RegExp(`^rgb\\(${Ay},${Ay},${Ay}\\)$`),ulr=new RegExp(`^rgba\\(${nN},${nN},${nN},${EL}\\)$`),dlr=new RegExp(`^rgba\\(${Ay},${Ay},${Ay},${EL}\\)$`),flr=new RegExp(`^hsl\\(${EL},${Ay},${Ay}\\)$`),hlr=new RegExp(`^hsla\\(${EL},${Ay},${Ay},${EL}\\)$`),_qe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};rTe(X3,XC,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Eqe,formatHex:Eqe,formatHex8:plr,formatHsl:mlr,formatRgb:Tqe,toString:Tqe});function Eqe(){return this.rgb().formatHex()}function plr(){return this.rgb().formatHex8()}function mlr(){return MNt(this).formatHsl()}function Tqe(){return this.rgb().formatRgb()}function XC(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=alr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?jqe(t):n===3?new Pf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?x9(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?x9(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=llr.exec(e))?new Pf(t[1],t[2],t[3],1):(t=clr.exec(e))?new Pf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ulr.exec(e))?x9(t[1],t[2],t[3],t[4]):(t=dlr.exec(e))?x9(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=flr.exec(e))?Aqe(t[1],t[2]/100,t[3]/100,1):(t=hlr.exec(e))?Aqe(t[1],t[2]/100,t[3]/100,t[4]):_qe.hasOwnProperty(e)?jqe(_qe[e]):e==="transparent"?new Pf(NaN,NaN,NaN,0):null}function jqe(e){return new Pf(e>>16&255,e>>8&255,e&255,1)}function x9(e,t,n,r){return r<=0&&(e=t=n=NaN),new Pf(e,t,n,r)}function glr(e){return e instanceof X3||(e=XC(e)),e?(e=e.rgb(),new Pf(e.r,e.g,e.b,e.opacity)):new Pf}function Hbe(e,t,n,r){return arguments.length===1?glr(e):new Pf(e,t,n,r??1)}function Pf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}rTe(Pf,Hbe,$Nt(X3,{brighter(e){return e=e==null?wq:Math.pow(wq,e),new Pf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?_L:Math.pow(_L,e),new Pf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pf(rC(this.r),rC(this.g),rC(this.b),Sq(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Nqe,formatHex:Nqe,formatHex8:vlr,formatRgb:Iqe,toString:Iqe}));function Nqe(){return`#${$O(this.r)}${$O(this.g)}${$O(this.b)}`}function vlr(){return`#${$O(this.r)}${$O(this.g)}${$O(this.b)}${$O((isNaN(this.opacity)?1:this.opacity)*255)}`}function Iqe(){const e=Sq(this.opacity);return`${e===1?"rgb(":"rgba("}${rC(this.r)}, ${rC(this.g)}, ${rC(this.b)}${e===1?")":`, ${e})`}`}function Sq(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rC(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function $O(e){return e=rC(e),(e<16?"0":"")+e.toString(16)}function Aqe(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $g(e,t,n,r)}function MNt(e){if(e instanceof $g)return new $g(e.h,e.s,e.l,e.opacity);if(e instanceof X3||(e=XC(e)),!e)return new $g;if(e instanceof $g)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,l=o-s,c=(o+s)/2;return l?(t===o?i=(n-r)/l+(n<r)*6:n===o?i=(r-t)/l+2:i=(t-n)/l+4,l/=c<.5?o+s:2-o-s,i*=60):l=c>0&&c<1?0:i,new $g(i,l,c,e.opacity)}function ylr(e,t,n,r){return arguments.length===1?MNt(e):new $g(e,t,n,r??1)}function $g(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}rTe($g,ylr,$Nt(X3,{brighter(e){return e=e==null?wq:Math.pow(wq,e),new $g(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?_L:Math.pow(_L,e),new $g(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new Pf(Ose(e>=240?e-240:e+120,s,r),Ose(e,s,r),Ose(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new $g(Rqe(this.h),w9(this.s),w9(this.l),Sq(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Sq(this.opacity);return`${e===1?"hsl(":"hsla("}${Rqe(this.h)}, ${w9(this.s)*100}%, ${w9(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Rqe(e){return e=(e||0)%360,e<0?e+360:e}function w9(e){return Math.max(0,Math.min(1,e||0))}function Ose(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const sTe=e=>()=>e;function blr(e,t){return function(n){return e+n*t}}function xlr(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function wlr(e){return(e=+e)==1?DNt:function(t,n){return n-t?xlr(t,n,e):sTe(isNaN(t)?n:t)}}function DNt(e,t){var n=t-e;return n?blr(e,n):sTe(isNaN(e)?t:e)}const kq=(function e(t){var n=wlr(t);function r(s,o){var i=n((s=Hbe(s)).r,(o=Hbe(o)).r),l=n(s.g,o.g),c=n(s.b,o.b),u=DNt(s.opacity,o.opacity);return function(d){return s.r=i(d),s.g=l(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r})(1);function Slr(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function klr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Olr(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=Ux(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(l){for(i=0;i<r;++i)o[i]=s[i](l);return o}}function Clr(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ig(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function _lr(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=Ux(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var Wbe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Cse=new RegExp(Wbe.source,"g");function Elr(e){return function(){return e}}function Tlr(e){return function(t){return e(t)+""}}function LNt(e,t){var n=Wbe.lastIndex=Cse.lastIndex=0,r,s,o,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Wbe.exec(e))&&(s=Cse.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),l[i]?l[i]+=o:l[++i]=o),(r=r[0])===(s=s[0])?l[i]?l[i]+=s:l[++i]=s:(l[++i]=null,c.push({i,x:Ig(r,s)})),n=Cse.lastIndex;return n<t.length&&(o=t.slice(n),l[i]?l[i]+=o:l[++i]=o),l.length<2?c[0]?Tlr(c[0].x):Elr(t):(t=c.length,function(u){for(var d=0,f;d<t;++d)l[(f=c[d]).i]=f.x(u);return l.join("")})}function Ux(e,t){var n=typeof t,r;return t==null||n==="boolean"?sTe(t):(n==="number"?Ig:n==="string"?(r=XC(t))?(t=r,kq):LNt:t instanceof XC?kq:t instanceof Date?Clr:klr(t)?Slr:Array.isArray(t)?Olr:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?_lr:Ig)(e,t)}function oTe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Pqe=180/Math.PI,Zbe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function FNt(e,t,n,r,s,o){var i,l,c;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,c/=l),e*r<t*n&&(e=-e,t=-t,c=-c,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Pqe,skewX:Math.atan(c)*Pqe,scaleX:i,scaleY:l}}var S9;function jlr(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Zbe:FNt(t.a,t.b,t.c,t.d,t.e,t.f)}function Nlr(e){return e==null||(S9||(S9=document.createElementNS("http://www.w3.org/2000/svg","g")),S9.setAttribute("transform",e),!(e=S9.transform.baseVal.consolidate()))?Zbe:(e=e.matrix,FNt(e.a,e.b,e.c,e.d,e.e,e.f))}function zNt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function o(u,d,f,h,p,m){if(u!==f||d!==h){var y=p.push("translate(",null,t,null,n);m.push({i:y-4,x:Ig(u,f)},{i:y-2,x:Ig(d,h)})}else(f||h)&&p.push("translate("+f+t+h+n)}function i(u,d,f,h){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),h.push({i:f.push(s(f)+"rotate(",null,r)-2,x:Ig(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function l(u,d,f,h){u!==d?h.push({i:f.push(s(f)+"skewX(",null,r)-2,x:Ig(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,h,p,m){if(u!==f||d!==h){var y=p.push(s(p)+"scale(",null,",",null,")");m.push({i:y-4,x:Ig(u,f)},{i:y-2,x:Ig(d,h)})}else(f!==1||h!==1)&&p.push(s(p)+"scale("+f+","+h+")")}return function(u,d){var f=[],h=[];return u=e(u),d=e(d),o(u.translateX,u.translateY,d.translateX,d.translateY,f,h),i(u.rotate,d.rotate,f,h),l(u.skewX,d.skewX,f,h),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,h),u=d=null,function(p){for(var m=-1,y=h.length,v;++m<y;)f[(v=h[m]).i]=v.x(p);return f.join("")}}}var Ilr=zNt(jlr,"px, ","px)","deg)"),Alr=zNt(Nlr,", ",")",")"),Rlr=1e-12;function $qe(e){return((e=Math.exp(e))+1/e)/2}function Plr(e){return((e=Math.exp(e))-1/e)/2}function $lr(e){return((e=Math.exp(2*e))-1)/(e+1)}const n7=(function e(t,n,r){function s(o,i){var l=o[0],c=o[1],u=o[2],d=i[0],f=i[1],h=i[2],p=d-l,m=f-c,y=p*p+m*m,v,b;if(y<Rlr)b=Math.log(h/u)/t,v=function(T){return[l+T*p,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(y),w=(h*h-u*u+r*y)/(2*u*n*x),k=(h*h-u*u-r*y)/(2*h*n*x),C=Math.log(Math.sqrt(w*w+1)-w),_=Math.log(Math.sqrt(k*k+1)-k);b=(_-C)/t,v=function(T){var E=T*b,I=$qe(C),N=u/(n*x)*(I*$lr(t*E+C)-Plr(C));return[l+N*p,c+N*m,u*I/$qe(t*E+C)]}}return v.duration=b*1e3*t/Math.SQRT2,v}return s.rho=function(o){var i=Math.max(.001,+o),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function Mlr(e,t){t===void 0&&(t=e,e=Ux);for(var n=0,r=t.length-1,s=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(s,s=t[++n]);return function(i){var l=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return o[l](i-l)}}var cI=0,IM=0,t$=0,BNt=1e3,Oq,AM,Cq=0,JC=0,uQ=0,TL=typeof performance=="object"&&performance.now?performance:Date,UNt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function iTe(){return JC||(UNt(Dlr),JC=TL.now()+uQ)}function Dlr(){JC=0}function _q(){this._call=this._time=this._next=null}_q.prototype=VNt.prototype={constructor:_q,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?iTe():+n)+(t==null?0:+t),!this._next&&AM!==this&&(AM?AM._next=this:Oq=this,AM=this),this._call=e,this._time=n,Gbe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Gbe())}};function VNt(e,t,n){var r=new _q;return r.restart(e,t,n),r}function Llr(){iTe(),++cI;for(var e=Oq,t;e;)(t=JC-e._time)>=0&&e._call.call(void 0,t),e=e._next;--cI}function Mqe(){JC=(Cq=TL.now())+uQ,cI=IM=0;try{Llr()}finally{cI=0,zlr(),JC=0}}function Flr(){var e=TL.now(),t=e-Cq;t>BNt&&(uQ-=t,Cq=e)}function zlr(){for(var e,t=Oq,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Oq=n);AM=e,Gbe(r)}function Gbe(e){if(!cI){IM&&(IM=clearTimeout(IM));var t=e-JC;t>24?(e<1/0&&(IM=setTimeout(Mqe,e-TL.now()-uQ)),t$&&(t$=clearInterval(t$))):(t$||(Cq=TL.now(),t$=setInterval(Flr,BNt)),cI=1,UNt(Mqe))}}function Dqe(e,t,n){var r=new _q;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var Blr=lQ("start","end","cancel","interrupt"),Ulr=[],qNt=0,Lqe=1,Qbe=2,r7=3,Fqe=4,Ybe=5,s7=6;function dQ(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;Vlr(e,n,{name:t,index:r,group:s,on:Blr,tween:Ulr,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:qNt})}function aTe(e,t){var n=vv(e,t);if(n.state>qNt)throw new Error("too late; already scheduled");return n}function mb(e,t){var n=vv(e,t);if(n.state>r7)throw new Error("too late; already running");return n}function vv(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Vlr(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=VNt(o,0,n.time);function o(u){n.state=Lqe,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,f,h,p;if(n.state!==Lqe)return c();for(d in r)if(p=r[d],p.name===n.name){if(p.state===r7)return Dqe(i);p.state===Fqe?(p.state=s7,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+d<t&&(p.state=s7,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[d])}if(Dqe(function(){n.state===r7&&(n.state=Fqe,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Qbe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Qbe){for(n.state=r7,s=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(p=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=Ybe,1),f=-1,h=s.length;++f<h;)s[f].call(e,d);n.state===Ybe&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=s7,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function o7(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>Qbe&&r.state<Ybe,r.state=s7,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function qlr(e){return this.each(function(){o7(this,e)})}function Hlr(e,t){var n,r;return function(){var s=mb(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function Wlr(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=mb(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}o.tween=s}}function Zlr(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=vv(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?Hlr:Wlr)(n,e,t))}function lTe(e,t,n){var r=e._id;return e.each(function(){var s=mb(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return vv(s,r).value[t]}}function HNt(e,t){var n;return(typeof t=="number"?Ig:t instanceof XC?kq:(n=XC(t))?(t=n,kq):LNt)(e,t)}function Glr(e){return function(){this.removeAttribute(e)}}function Qlr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ylr(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function Klr(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function Xlr(e,t,n){var r,s,o;return function(){var i,l=n(this),c;return l==null?void this.removeAttribute(e):(i=this.getAttribute(e),c=l+"",i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l)))}}function Jlr(e,t,n){var r,s,o;return function(){var i,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),c=l+"",i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l)))}}function ecr(e,t){var n=cQ(e),r=n==="transform"?Alr:HNt;return this.attrTween(e,typeof t=="function"?(n.local?Jlr:Xlr)(n,r,lTe(this,"attr."+e,t)):t==null?(n.local?Qlr:Glr)(n):(n.local?Klr:Ylr)(n,r,t))}function tcr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function ncr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function rcr(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&ncr(e,o)),n}return s._value=t,s}function scr(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&tcr(e,o)),n}return s._value=t,s}function ocr(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=cQ(e);return this.tween(n,(r.local?rcr:scr)(r,t))}function icr(e,t){return function(){aTe(this,e).delay=+t.apply(this,arguments)}}function acr(e,t){return t=+t,function(){aTe(this,e).delay=t}}function lcr(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?icr:acr)(t,e)):vv(this.node(),t).delay}function ccr(e,t){return function(){mb(this,e).duration=+t.apply(this,arguments)}}function ucr(e,t){return t=+t,function(){mb(this,e).duration=t}}function dcr(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ccr:ucr)(t,e)):vv(this.node(),t).duration}function fcr(e,t){if(typeof t!="function")throw new Error;return function(){mb(this,e).ease=t}}function hcr(e){var t=this._id;return arguments.length?this.each(fcr(t,e)):vv(this.node(),t).ease}function pcr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;mb(this,e).ease=n}}function mcr(e){if(typeof e!="function")throw new Error;return this.each(pcr(this._id,e))}function gcr(e){typeof e!="function"&&(e=SNt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=[],c,u=0;u<i;++u)(c=o[u])&&e.call(c,c.__data__,u,o)&&l.push(c);return new a0(r,this._parents,this._name,this._id)}function vcr(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),l=0;l<o;++l)for(var c=t[l],u=n[l],d=c.length,f=i[l]=new Array(d),h,p=0;p<d;++p)(h=c[p]||u[p])&&(f[p]=h);for(;l<r;++l)i[l]=t[l];return new a0(i,this._parents,this._name,this._id)}function ycr(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function bcr(e,t,n){var r,s,o=ycr(t)?aTe:mb;return function(){var i=o(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function xcr(e,t){var n=this._id;return arguments.length<2?vv(this.node(),n).on.on(e):this.each(bcr(n,e,t))}function wcr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Scr(){return this.on("end.remove",wcr(this._id))}function kcr(e){var t=this._name,n=this._id;typeof e!="function"&&(e=tTe(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var l=r[i],c=l.length,u=o[i]=new Array(c),d,f,h=0;h<c;++h)(d=l[h])&&(f=e.call(d,d.__data__,h,l))&&("__data__"in d&&(f.__data__=d.__data__),u[h]=f,dQ(u[h],t,n,h,u,vv(d,n)));return new a0(o,this._parents,t,n)}function Ocr(e){var t=this._name,n=this._id;typeof e!="function"&&(e=wNt(e));for(var r=this._groups,s=r.length,o=[],i=[],l=0;l<s;++l)for(var c=r[l],u=c.length,d,f=0;f<u;++f)if(d=c[f]){for(var h=e.call(d,d.__data__,f,c),p,m=vv(d,n),y=0,v=h.length;y<v;++y)(p=h[y])&&dQ(p,t,n,y,h,m);o.push(h),i.push(d)}return new a0(o,i,t,n)}var Ccr=K3.prototype.constructor;function _cr(){return new Ccr(this._groups,this._parents)}function Ecr(e,t){var n,r,s;return function(){var o=lI(this,e),i=(this.style.removeProperty(e),lI(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function WNt(e){return function(){this.style.removeProperty(e)}}function Tcr(e,t,n){var r,s=n+"",o;return function(){var i=lI(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function jcr(e,t,n){var r,s,o;return function(){var i=lI(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),lI(this,e))),i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l))}}function Ncr(e,t){var n,r,s,o="style."+t,i="end."+o,l;return function(){var c=mb(this,e),u=c.on,d=c.value[o]==null?l||(l=WNt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function Icr(e,t,n){var r=(e+="")=="transform"?Ilr:HNt;return t==null?this.styleTween(e,Ecr(e,r)).on("end.style."+e,WNt(e)):typeof t=="function"?this.styleTween(e,jcr(e,r,lTe(this,"style."+e,t))).each(Ncr(this._id,e)):this.styleTween(e,Tcr(e,r,t),n).on("end.style."+e,null)}function Acr(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Rcr(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&Acr(e,i,n)),r}return o._value=t,o}function Pcr(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Rcr(e,t,n??""))}function $cr(e){return function(){this.textContent=e}}function Mcr(e){return function(){var t=e(this);this.textContent=t??""}}function Dcr(e){return this.tween("text",typeof e=="function"?Mcr(lTe(this,"text",e)):$cr(e==null?"":e+""))}function Lcr(e){return function(t){this.textContent=e.call(this,t)}}function Fcr(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&Lcr(s)),t}return r._value=e,r}function zcr(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Fcr(e))}function Bcr(){for(var e=this._name,t=this._id,n=ZNt(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],l=i.length,c,u=0;u<l;++u)if(c=i[u]){var d=vv(c,t);dQ(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new a0(r,this._parents,e,n)}function Ucr(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var l={value:i},c={value:function(){--s===0&&o()}};n.each(function(){var u=mb(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&o()})}var Vcr=0;function a0(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ZNt(){return++Vcr}var Hb=K3.prototype;a0.prototype={constructor:a0,select:kcr,selectAll:Ocr,selectChild:Hb.selectChild,selectChildren:Hb.selectChildren,filter:gcr,merge:vcr,selection:_cr,transition:Bcr,call:Hb.call,nodes:Hb.nodes,node:Hb.node,size:Hb.size,empty:Hb.empty,each:Hb.each,on:xcr,attr:ecr,attrTween:ocr,style:Icr,styleTween:Pcr,text:Dcr,textTween:zcr,remove:Scr,tween:Zlr,delay:lcr,duration:dcr,ease:hcr,easeVarying:mcr,end:Ucr,[Symbol.iterator]:Hb[Symbol.iterator]};function qcr(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Hcr={time:null,delay:0,duration:250,ease:qcr};function Wcr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function Zcr(e){var t,n;e instanceof a0?(t=e._id,e=e._name):(t=ZNt(),(n=Hcr).time=iTe(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],l=i.length,c,u=0;u<l;++u)(c=i[u])&&dQ(c,e,t,u,i,n||Wcr(c,t));return new a0(r,this._parents,e,t)}K3.prototype.interrupt=qlr;K3.prototype.transition=Zcr;const k9=e=>()=>e;function Gcr(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function Ox(e,t,n){this.k=e,this.x=t,this.y=n}Ox.prototype={constructor:Ox,scale:function(e){return e===1?this:new Ox(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ox(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fQ=new Ox(1,0,0);GNt.prototype=Ox.prototype;function GNt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return fQ;return e.__zoom}function _se(e){e.stopImmediatePropagation()}function n$(e){e.preventDefault(),e.stopImmediatePropagation()}function Qcr(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Ycr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function zqe(){return this.__zoom||fQ}function Kcr(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Xcr(){return navigator.maxTouchPoints||"ontouchstart"in this}function Jcr(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function QNt(){var e=Qcr,t=Ycr,n=Jcr,r=Kcr,s=Xcr,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=n7,u=lQ("start","zoom","end"),d,f,h,p=500,m=150,y=0,v=10;function b(L){L.property("__zoom",zqe).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",N).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",P).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(L,q,V,H){var B=L.selection?L.selection():L;B.property("__zoom",zqe),L!==B?C(L,q,V,H):B.interrupt().each(function(){_(this,arguments).event(H).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},b.scaleBy=function(L,q,V,H){b.scaleTo(L,function(){var B=this.__zoom.k,W=typeof q=="function"?q.apply(this,arguments):q;return B*W},V,H)},b.scaleTo=function(L,q,V,H){b.transform(L,function(){var B=t.apply(this,arguments),W=this.__zoom,z=V==null?k(B):typeof V=="function"?V.apply(this,arguments):V,Y=W.invert(z),D=typeof q=="function"?q.apply(this,arguments):q;return n(w(x(W,D),z,Y),B,i)},V,H)},b.translateBy=function(L,q,V,H){b.transform(L,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),i)},null,H)},b.translateTo=function(L,q,V,H,B){b.transform(L,function(){var W=t.apply(this,arguments),z=this.__zoom,Y=H==null?k(W):typeof H=="function"?H.apply(this,arguments):H;return n(fQ.translate(Y[0],Y[1]).scale(z.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof V=="function"?-V.apply(this,arguments):-V),W,i)},H,B)};function x(L,q){return q=Math.max(o[0],Math.min(o[1],q)),q===L.k?L:new Ox(q,L.x,L.y)}function w(L,q,V){var H=q[0]-V[0]*L.k,B=q[1]-V[1]*L.k;return H===L.x&&B===L.y?L:new Ox(L.k,H,B)}function k(L){return[(+L[0][0]+ +L[1][0])/2,(+L[0][1]+ +L[1][1])/2]}function C(L,q,V,H){L.on("start.zoom",function(){_(this,arguments).event(H).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(H).end()}).tween("zoom",function(){var B=this,W=arguments,z=_(B,W).event(H),Y=t.apply(B,W),D=V==null?k(Y):typeof V=="function"?V.apply(B,W):V,R=Math.max(Y[1][0]-Y[0][0],Y[1][1]-Y[0][1]),M=B.__zoom,U=typeof q=="function"?q.apply(B,W):q,Q=c(M.invert(D).concat(R/M.k),U.invert(D).concat(R/U.k));return function(ee){if(ee===1)ee=U;else{var X=Q(ee),te=R/X[2];ee=new Ox(te,D[0]-X[0]*te,D[1]-X[1]*te)}z.zoom(null,ee)}})}function _(L,q,V){return!V&&L.__zooming||new T(L,q)}function T(L,q){this.that=L,this.args=q,this.active=0,this.sourceEvent=null,this.extent=t.apply(L,q),this.taps=0}T.prototype={event:function(L){return L&&(this.sourceEvent=L),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(L,q){return this.mouse&&L!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&L!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&L!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(L){var q=Ih(this.that).datum();u.call(L,this.that,new Gcr(L,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),q)}};function E(L,...q){if(!e.apply(this,arguments))return;var V=_(this,q).event(L),H=this.__zoom,B=Math.max(o[0],Math.min(o[1],H.k*Math.pow(2,r.apply(this,arguments)))),W=jg(L);if(V.wheel)(V.mouse[0][0]!==W[0]||V.mouse[0][1]!==W[1])&&(V.mouse[1]=H.invert(V.mouse[0]=W)),clearTimeout(V.wheel);else{if(H.k===B)return;V.mouse=[W,H.invert(W)],o7(this),V.start()}n$(L),V.wheel=setTimeout(z,m),V.zoom("mouse",n(w(x(H,B),V.mouse[0],V.mouse[1]),V.extent,i));function z(){V.wheel=null,V.end()}}function I(L,...q){if(h||!e.apply(this,arguments))return;var V=L.currentTarget,H=_(this,q,!0).event(L),B=Ih(L.view).on("mousemove.zoom",D,!0).on("mouseup.zoom",R,!0),W=jg(L,V),z=L.clientX,Y=L.clientY;ANt(L.view),_se(L),H.mouse=[W,this.__zoom.invert(W)],o7(this),H.start();function D(M){if(n$(M),!H.moved){var U=M.clientX-z,Q=M.clientY-Y;H.moved=U*U+Q*Q>y}H.event(M).zoom("mouse",n(w(H.that.__zoom,H.mouse[0]=jg(M,V),H.mouse[1]),H.extent,i))}function R(M){B.on("mousemove.zoom mouseup.zoom",null),RNt(M.view,H.moved),n$(M),H.event(M).end()}}function N(L,...q){if(e.apply(this,arguments)){var V=this.__zoom,H=jg(L.changedTouches?L.changedTouches[0]:L,this),B=V.invert(H),W=V.k*(L.shiftKey?.5:2),z=n(w(x(V,W),H,B),t.apply(this,q),i);n$(L),l>0?Ih(this).transition().duration(l).call(C,z,H,L):Ih(this).call(b.transform,z,H,L)}}function A(L,...q){if(e.apply(this,arguments)){var V=L.touches,H=V.length,B=_(this,q,L.changedTouches.length===H).event(L),W,z,Y,D;for(_se(L),z=0;z<H;++z)Y=V[z],D=jg(Y,this),D=[D,this.__zoom.invert(D),Y.identifier],B.touch0?!B.touch1&&B.touch0[2]!==D[2]&&(B.touch1=D,B.taps=0):(B.touch0=D,W=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),W&&(B.taps<2&&(f=D[0],d=setTimeout(function(){d=null},p)),o7(this),B.start())}}function P(L,...q){if(this.__zooming){var V=_(this,q).event(L),H=L.changedTouches,B=H.length,W,z,Y,D;for(n$(L),W=0;W<B;++W)z=H[W],Y=jg(z,this),V.touch0&&V.touch0[2]===z.identifier?V.touch0[0]=Y:V.touch1&&V.touch1[2]===z.identifier&&(V.touch1[0]=Y);if(z=V.that.__zoom,V.touch1){var R=V.touch0[0],M=V.touch0[1],U=V.touch1[0],Q=V.touch1[1],ee=(ee=U[0]-R[0])*ee+(ee=U[1]-R[1])*ee,X=(X=Q[0]-M[0])*X+(X=Q[1]-M[1])*X;z=x(z,Math.sqrt(ee/X)),Y=[(R[0]+U[0])/2,(R[1]+U[1])/2],D=[(M[0]+Q[0])/2,(M[1]+Q[1])/2]}else if(V.touch0)Y=V.touch0[0],D=V.touch0[1];else return;V.zoom("touch",n(w(z,Y,D),V.extent,i))}}function F(L,...q){if(this.__zooming){var V=_(this,q).event(L),H=L.changedTouches,B=H.length,W,z;for(_se(L),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),W=0;W<B;++W)z=H[W],V.touch0&&V.touch0[2]===z.identifier?delete V.touch0:V.touch1&&V.touch1[2]===z.identifier&&delete V.touch1;if(V.touch1&&!V.touch0&&(V.touch0=V.touch1,delete V.touch1),V.touch0)V.touch0[1]=this.__zoom.invert(V.touch0[0]);else if(V.end(),V.taps===2&&(z=jg(z,this),Math.hypot(f[0]-z[0],f[1]-z[1])<v)){var Y=Ih(this).on("dblclick.zoom");Y&&Y.apply(this,arguments)}}}return b.wheelDelta=function(L){return arguments.length?(r=typeof L=="function"?L:k9(+L),b):r},b.filter=function(L){return arguments.length?(e=typeof L=="function"?L:k9(!!L),b):e},b.touchable=function(L){return arguments.length?(s=typeof L=="function"?L:k9(!!L),b):s},b.extent=function(L){return arguments.length?(t=typeof L=="function"?L:k9([[+L[0][0],+L[0][1]],[+L[1][0],+L[1][1]]]),b):t},b.scaleExtent=function(L){return arguments.length?(o[0]=+L[0],o[1]=+L[1],b):[o[0],o[1]]},b.translateExtent=function(L){return arguments.length?(i[0][0]=+L[0][0],i[1][0]=+L[1][0],i[0][1]=+L[0][1],i[1][1]=+L[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(L){return arguments.length?(n=L,b):n},b.duration=function(L){return arguments.length?(l=+L,b):l},b.interpolate=function(L){return arguments.length?(c=L,b):c},b.on=function(){var L=u.on.apply(u,arguments);return L===u?b:L},b.clickDistance=function(L){return arguments.length?(y=(L=+L)*L,b):Math.sqrt(y)},b.tapDistance=function(L){return arguments.length?(v=+L,b):v},b}const Xy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},jL=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],YNt=["Enter"," ","Escape"],KNt={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var uI;(function(e){e.Strict="strict",e.Loose="loose"})(uI||(uI={}));var sC;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(sC||(sC={}));var NL;(function(e){e.Partial="partial",e.Full="full"})(NL||(NL={}));const XNt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var oS;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(oS||(oS={}));var IL;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(IL||(IL={}));var ar;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ar||(ar={}));const Bqe={[ar.Left]:ar.Right,[ar.Right]:ar.Left,[ar.Top]:ar.Bottom,[ar.Bottom]:ar.Top};function JNt(e){return e===null?null:e?"valid":"invalid"}const eIt=e=>"id"in e&&"source"in e&&"target"in e,eur=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),cTe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),J3=(e,t=[0,0])=>{const{width:n,height:r}=D0(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},tur=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const o=typeof s=="string";let i=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(i=o?t.nodeLookup.get(s):cTe(s)?s:t.nodeLookup.get(s.id));const l=i?Eq(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return hQ(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return pQ(n)},e5=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=hQ(n,Eq(s)),r=!0)}),r?pQ(n):{x:0,y:0,width:0,height:0}},uTe=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const l={...n5(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=u;if(i&&!f||h)continue;const p=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,y=AL(l,fI(u)),v=(p??0)*(m??0),b=o&&y>0;(!u.internals.handleBounds||b||y>=v||u.dragging)&&c.push(u)}return c},nur=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function rur(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&(t?.includeHiddenNodes||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function sur({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return Promise.resolve(!0);const l=rur(e,i),c=e5(l),u=dTe(c,t,n,i?.minZoom??s,i?.maxZoom??o,i?.padding??.1);return await r.setViewport(u,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),Promise.resolve(!0)}function tIt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)o?.("005",Xy.error005());else{const p=l.measured.width,m=l.measured.height;p&&m&&(f=[[c,u],[c+p,u+m]])}else l&&hI(i.extent)&&(f=[[i.extent[0][0]+c,i.extent[0][1]+u],[i.extent[1][0]+c,i.extent[1][1]+u]]);const h=hI(f)?e_(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&o?.("015",Xy.error015()),{position:{x:h.x-c+(i.measured.width??0)*d[0],y:h.y-u+(i.measured.height??0)*d[1]},positionAbsolute:h}}async function our({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(h=>h.id)),i=[];for(const h of n){if(h.deletable===!1)continue;const p=o.has(h.id),m=!p&&h.parentId&&i.find(y=>y.id===h.parentId);(p||m)&&i.push(h)}const l=new Set(t.map(h=>h.id)),c=r.filter(h=>h.deletable!==!1),d=nur(i,c);for(const h of c)l.has(h.id)&&!d.find(m=>m.id===h.id)&&d.push(h);if(!s)return{edges:d,nodes:i};const f=await s({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const dI=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),e_=(e={x:0,y:0},t,n)=>({x:dI(e.x,t[0][0],t[1][0]-(n?.width??0)),y:dI(e.y,t[0][1],t[1][1]-(n?.height??0))});function nIt(e,t,n){const{width:r,height:s}=D0(n),{x:o,y:i}=n.internals.positionAbsolute;return e_(e,[[o,i],[o+r,i+s]],t)}const Uqe=(e,t,n)=>e<t?dI(Math.abs(e-t),1,t)/t:e>n?-dI(Math.abs(e-n),1,t)/t:0,rIt=(e,t,n=15,r=40)=>{const s=Uqe(e.x,r,t.width-r)*n,o=Uqe(e.y,r,t.height-r)*n;return[s,o]},hQ=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Kbe=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pQ=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),fI=(e,t=[0,0])=>{const{x:n,y:r}=cTe(e)?e.internals.positionAbsolute:J3(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Eq=(e,t=[0,0])=>{const{x:n,y:r}=cTe(e)?e.internals.positionAbsolute:J3(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},sIt=(e,t)=>pQ(hQ(Kbe(e),Kbe(t))),AL=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},Vqe=e=>Fg(e.width)&&Fg(e.height)&&Fg(e.x)&&Fg(e.y),Fg=e=>!isNaN(e)&&isFinite(e),iur=(e,t)=>{},t5=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),n5=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return o?t5(l,i):l},Tq=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function mT(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function aur(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=mT(e,n),s=mT(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=mT(e.top??e.y??0,n),s=mT(e.bottom??e.y??0,n),o=mT(e.left??e.x??0,t),i=mT(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function lur(e,t,n,r,s,o){const{x:i,y:l}=Tq(e,[t,n,r]),{x:c,y:u}=Tq({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-c,f=o-u;return{left:Math.floor(i),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(f)}}const dTe=(e,t,n,r,s,o)=>{const i=aur(o,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=dI(u,r,s),f=e.x+e.width/2,h=e.y+e.height/2,p=t/2-f*d,m=n/2-h*d,y=lur(e,p,m,d,t,n),v={left:Math.min(y.left-i.left,0),top:Math.min(y.top-i.top,0),right:Math.min(y.right-i.right,0),bottom:Math.min(y.bottom-i.bottom,0)};return{x:p-v.left+v.right,y:m-v.top+v.bottom,zoom:d}},RL=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function hI(e){return e!=null&&e!=="parent"}function D0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function fTe(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function oIt(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const l=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*l[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*l[1]}return o}function qqe(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function cur(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function uur(e){return{...KNt,...e||{}}}function k2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=zg(e),l=n5({x:o-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?t5(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const hTe=e=>({width:e.offsetWidth,height:e.offsetHeight}),iIt=e=>e?.getRootNode?.()||window?.document,dur=["INPUT","SELECT","TEXTAREA"];function aIt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:dur.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const lIt=e=>"clientX"in e,zg=(e,t)=>{const n=lIt(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},Hqe=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const l=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...hTe(i)}})};function cIt({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:l}){const c=e*.125+s*.375+i*.375+n*.125,u=t*.125+o*.375+l*.375+r*.125,d=Math.abs(c-e),f=Math.abs(u-t);return[c,u,d,f]}function O9(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Wqe({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case ar.Left:return[t-O9(t-r,o),n];case ar.Right:return[t+O9(r-t,o),n];case ar.Top:return[t,n-O9(n-s,o)];case ar.Bottom:return[t,n+O9(s-n,o)]}}function pTe({sourceX:e,sourceY:t,sourcePosition:n=ar.Bottom,targetX:r,targetY:s,targetPosition:o=ar.Top,curvature:i=.25}){const[l,c]=Wqe({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Wqe({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[f,h,p,m]=cIt({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${r},${s}`,f,h,p,m]}function uIt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2,l=r<t?r+i:r-i;return[o,l,s,i]}function fur({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){if(o==="manual")return r;const i=s&&n?r+1e3:r,l=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+l}function hur({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=hQ(Eq(e),Eq(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return AL(i,pQ(o))>0}const pur=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,mur=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),gur=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||pur;let s;return eIt(e)?s={...e}:s={...e,id:r(e)},mur(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function dIt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,l]=uIt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,l]}const Zqe={[ar.Left]:{x:-1,y:0},[ar.Right]:{x:1,y:0},[ar.Top]:{x:0,y:-1},[ar.Bottom]:{x:0,y:1}},vur=({source:e,sourcePosition:t=ar.Bottom,target:n})=>t===ar.Left||t===ar.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Gqe=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function yur({source:e,sourcePosition:t=ar.Bottom,target:n,targetPosition:r=ar.Top,center:s,offset:o,stepPosition:i}){const l=Zqe[t],c=Zqe[r],u={x:e.x+l.x*o,y:e.y+l.y*o},d={x:n.x+c.x*o,y:n.y+c.y*o},f=vur({source:u,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",p=f[h];let m=[],y,v;const b={x:0,y:0},x={x:0,y:0},[,,w,k]=uIt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[h]*c[h]===-1){h==="x"?(y=s.x??u.x+(d.x-u.x)*i,v=s.y??(u.y+d.y)/2):(y=s.x??(u.x+d.x)/2,v=s.y??u.y+(d.y-u.y)*i);const E=[{x:y,y:u.y},{x:y,y:d.y}],I=[{x:u.x,y:v},{x:d.x,y:v}];l[h]===p?m=h==="x"?E:I:m=h==="x"?I:E}else{const E=[{x:u.x,y:d.y}],I=[{x:d.x,y:u.y}];if(h==="x"?m=l.x===p?I:E:m=l.y===p?E:I,t===r){const L=Math.abs(e[h]-n[h]);if(L<=o){const q=Math.min(o-1,o-L);l[h]===p?b[h]=(u[h]>e[h]?-1:1)*q:x[h]=(d[h]>n[h]?-1:1)*q}}if(t!==r){const L=h==="x"?"y":"x",q=l[h]===c[L],V=u[L]>d[L],H=u[L]<d[L];(l[h]===1&&(!q&&V||q&&H)||l[h]!==1&&(!q&&H||q&&V))&&(m=h==="x"?E:I)}const N={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},P=Math.max(Math.abs(N.x-m[0].x),Math.abs(A.x-m[0].x)),F=Math.max(Math.abs(N.y-m[0].y),Math.abs(A.y-m[0].y));P>=F?(y=(N.x+A.x)/2,v=m[0].y):(y=m[0].x,v=(N.y+A.y)/2)}const C={x:u.x+b.x,y:u.y+b.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...C.x!==m[0].x||C.y!==m[0].y?[C]:[],...m,..._.x!==m[m.length-1].x||_.y!==m[m.length-1].y?[_]:[],n],y,v,w,k]}function bur(e,t,n,r){const s=Math.min(Gqe(e,t)/2,Gqe(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${o+s*u},${i}Q ${o},${i} ${o},${i+s*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${o},${i+s*c}Q ${o},${i} ${o+s*l},${i}`}function Xbe({sourceX:e,sourceY:t,sourcePosition:n=ar.Bottom,targetX:r,targetY:s,targetPosition:o=ar.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,h,p,m,y]=yur({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:l,y:c},offset:u,stepPosition:d});let v=`M${f[0].x} ${f[0].y}`;for(let b=1;b<f.length-1;b++)v+=bur(f[b-1],f[b],f[b+1],i);return v+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[v,h,p,m,y]}function Qqe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function xur(e){const{sourceNode:t,targetNode:n}=e;if(!Qqe(t)||!Qqe(n))return null;const r=t.internals.handleBounds||Yqe(t.handles),s=n.internals.handleBounds||Yqe(n.handles),o=Kqe(r?.source??[],e.sourceHandle),i=Kqe(e.connectionMode===uI.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!o||!i)return e.onError?.("008",Xy.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=o?.position||ar.Bottom,c=i?.position||ar.Top,u=t_(t,o,l),d=t_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function Yqe(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function t_(e,t,n=ar.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,o=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??D0(e);if(r)return{x:s+i/2,y:o+l/2};switch(t?.position??n){case ar.Top:return{x:s+i/2,y:o};case ar.Right:return{x:s+i,y:o+l/2};case ar.Bottom:return{x:s+i/2,y:o+l};case ar.Left:return{x:s,y:o+l/2}}}function Kqe(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Jbe(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function wur(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,l)=>([l.markerStart||r,l.markerEnd||s].forEach(c=>{if(c&&typeof c=="object"){const u=Jbe(c,t);o.has(u)||(i.push({id:u,color:c.color||n,...c}),o.add(u))}}),i),[]).sort((i,l)=>i.id.localeCompare(l.id))}const fIt=1e3,Sur=10,mTe={nodeOrigin:[0,0],nodeExtent:jL,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},kur={...mTe,checkEquality:!0};function gTe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Our(e,t,n){const r=gTe(mTe,n);for(const s of e.values())if(s.parentId)yTe(s,e,t,r);else{const o=J3(s,r.nodeOrigin),i=hI(s.extent)?s.extent:r.nodeExtent,l=e_(o,i,D0(s));s.internals.positionAbsolute=l}}function Cur(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function vTe(e){return e==="manual"}function exe(e,t,n,r={}){const s=gTe(kur,r),o={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!vTe(s.zIndexMode)?fIt:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(s.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const h=J3(d,s.nodeOrigin),p=hI(d.extent)?d.extent:s.nodeExtent,m=e_(h,p,D0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:Cur(d,f),z:hIt(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&yTe(f,t,n,r,o),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function _ur(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function yTe(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=gTe(mTe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}_ur(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*Sur),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=o&&!vTe(c)?fIt:0,{x:h,y:p,z:m}=Eur(e,d,i,l,f,c),{positionAbsolute:y}=e.internals,v=h!==y.x||p!==y.y;(v||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:v?{x:h,y:p}:y,z:m}})}function hIt(e,t,n){const r=Fg(e.zIndex)?e.zIndex:0;return vTe(n)?r:r+(e.selected?t:0)}function Eur(e,t,n,r,s,o){const{x:i,y:l}=t.internals.positionAbsolute,c=D0(e),u=J3(e,n),d=hI(e.extent)?e_(u,e.extent,c):u;let f=e_({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=nIt(f,c,t));const h=hIt(e,s,o),p=t.internals.z??0;return{x:f.x,y:f.y,z:p>=h?p+1:h}}function bTe(e,t,n,r=[0,0]){const s=[],o=new Map;for(const i of e){const l=t.get(i.parentId);if(!l)continue;const c=o.get(i.parentId)?.expandedRect??fI(l),u=sIt(c,i.rect);o.set(i.parentId,{expandedRect:u,parent:l})}return o.size>0&&o.forEach(({expandedRect:i,parent:l},c)=>{const u=l.internals.positionAbsolute,d=D0(l),f=l.origin??r,h=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,p=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),y=Math.max(d.height,Math.round(i.height)),v=(m-d.width)*f[0],b=(y-d.height)*f[1];(h>0||p>0||v||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-h+v,y:l.position.y-p+b}}),n.get(c)?.forEach(x=>{e.some(w=>w.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+h,y:x.position.y+p}})})),(d.width<i.width||d.height<i.height||h||p)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(h?f[0]*h-v:0),height:y+(p?f[1]*p-b:0)}})}),s}function Tur(e,t,n,r,s,o,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=[];for(const p of e.values()){const m=t.get(p.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const y=hTe(p.nodeElement),v=m.measured.width!==y.width||m.measured.height!==y.height;if(!!(y.width&&y.height&&(v||!m.internals.handleBounds||p.force))){const x=p.nodeElement.getBoundingClientRect(),w=hI(m.extent)?m.extent:o;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=nIt(k,y,t.get(m.parentId)):w&&(k=e_(k,w,y));const C={...m,measured:y,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:Hqe("source",p.nodeElement,x,f,m.id),target:Hqe("target",p.nodeElement,x,f,m.id)}}};t.set(m.id,C),m.parentId&&yTe(C,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,v&&(u.push({id:m.id,type:"dimensions",dimensions:y}),m.expandParent&&m.parentId&&h.push({id:m.id,parentId:m.parentId,rect:fI(C,s)}))}}if(h.length>0){const p=bTe(h,t,n,s);u.push(...p)}return{changes:u,updatedInternals:c}}async function jur({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r),l=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(l)}function Xqe(e,t,n,r,s,o){let i=s;const l=r.get(i)||new Map;r.set(i,l.set(n,t)),i=`${s}-${e}`;const c=r.get(i)||new Map;if(r.set(i,c.set(n,t)),o){i=`${s}-${e}-${o}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function pIt(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${o}-${l}`,d=`${o}-${l}--${s}-${i}`;Xqe("source",c,d,e,s,i),Xqe("target",c,u,e,o,l),t.set(r.id,r)}}function mIt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:mIt(n,t):!1}function Jqe(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Nur(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!mIt(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(o);l&&s.set(o,{id:o,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function Ese({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,l]of t){const c=n.get(i)?.internals.userNode;c&&s.push({...c,position:l.position,dragging:r})}if(!e)return[s[0],s];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:s[0],s]}function Iur({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=t5(o,t);return{x:i.x-o.x,y:i.y-o.y}}function Aur({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,h=null,p=!1,m=!1,y=null;function v({noDragClassName:x,handleSelector:w,domNode:k,isSelectable:C,nodeId:_,nodeClickDistance:T=0}){h=Ih(k);function E({x:P,y:F}){const{nodeLookup:L,nodeExtent:q,snapGrid:V,snapToGrid:H,nodeOrigin:B,onNodeDrag:W,onSelectionDrag:z,onError:Y,updateNodePositions:D}=t();o={x:P,y:F};let R=!1;const M=l.size>1,U=M&&q?Kbe(e5(l)):null,Q=M&&H?Iur({dragItems:l,snapGrid:V,x:P,y:F}):null;for(const[ee,X]of l){if(!L.has(ee))continue;let te={x:P-X.distance.x,y:F-X.distance.y};H&&(te=Q?{x:Math.round(te.x+Q.x),y:Math.round(te.y+Q.y)}:t5(te,V));let ne=null;if(M&&q&&!X.extent&&U){const{positionAbsolute:re}=X.internals,se=re.x-U.x+q[0][0],ae=re.x+X.measured.width-U.x2+q[1][0],ue=re.y-U.y+q[0][1],pe=re.y+X.measured.height-U.y2+q[1][1];ne=[[se,ue],[ae,pe]]}const{position:ce,positionAbsolute:J}=tIt({nodeId:ee,nextPosition:te,nodeLookup:L,nodeExtent:ne||q,nodeOrigin:B,onError:Y});R=R||X.position.x!==ce.x||X.position.y!==ce.y,X.position=ce,X.internals.positionAbsolute=J}if(m=m||R,!!R&&(D(l,!0),y&&(r||W||!_&&z))){const[ee,X]=Ese({nodeId:_,dragItems:l,nodeLookup:L});r?.(y,l,ee,X),W?.(y,ee,X),_||z?.(y,X)}}async function I(){if(!d)return;const{transform:P,panBy:F,autoPanSpeed:L,autoPanOnNodeDrag:q}=t();if(!q){c=!1,cancelAnimationFrame(i);return}const[V,H]=rIt(u,d,L);(V!==0||H!==0)&&(o.x=(o.x??0)-V/P[2],o.y=(o.y??0)-H/P[2],await F({x:V,y:H})&&E(o)),i=requestAnimationFrame(I)}function N(P){const{nodeLookup:F,multiSelectionActive:L,nodesDraggable:q,transform:V,snapGrid:H,snapToGrid:B,selectNodesOnDrag:W,onNodeDragStart:z,onSelectionDragStart:Y,unselectNodesAndEdges:D}=t();f=!0,(!W||!C)&&!L&&_&&(F.get(_)?.selected||D()),C&&W&&_&&e?.(_);const R=k2(P.sourceEvent,{transform:V,snapGrid:H,snapToGrid:B,containerBounds:d});if(o=R,l=Nur(F,q,R,_),l.size>0&&(n||z||!_&&Y)){const[M,U]=Ese({nodeId:_,dragItems:l,nodeLookup:F});n?.(P.sourceEvent,l,M,U),z?.(P.sourceEvent,M,U),_||Y?.(P.sourceEvent,U)}}const A=PNt().clickDistance(T).on("start",P=>{const{domNode:F,nodeDragThreshold:L,transform:q,snapGrid:V,snapToGrid:H}=t();d=F?.getBoundingClientRect()||null,p=!1,m=!1,y=P.sourceEvent,L===0&&N(P),o=k2(P.sourceEvent,{transform:q,snapGrid:V,snapToGrid:H,containerBounds:d}),u=zg(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:F,transform:L,snapGrid:q,snapToGrid:V,nodeDragThreshold:H,nodeLookup:B}=t(),W=k2(P.sourceEvent,{transform:L,snapGrid:q,snapToGrid:V,containerBounds:d});if(y=P.sourceEvent,(P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||_&&!B.has(_))&&(p=!0),!p){if(!c&&F&&f&&(c=!0,I()),!f){const z=zg(P.sourceEvent,d),Y=z.x-u.x,D=z.y-u.y;Math.sqrt(Y*Y+D*D)>H&&N(P)}(o.x!==W.xSnapped||o.y!==W.ySnapped)&&l&&f&&(u=zg(P.sourceEvent,d),E(W))}}).on("end",P=>{if(!(!f||p)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:F,updateNodePositions:L,onNodeDragStop:q,onSelectionDragStop:V}=t();if(m&&(L(l,!1),m=!1),s||q||!_&&V){const[H,B]=Ese({nodeId:_,dragItems:l,nodeLookup:F,dragging:!1});s?.(P.sourceEvent,l,H,B),q?.(P.sourceEvent,H,B),_||V?.(P.sourceEvent,B)}}}).filter(P=>{const F=P.target;return!P.button&&(!x||!Jqe(F,`.${x}`,k))&&(!w||Jqe(F,w,k))});h.call(A)}function b(){h?.on(".drag",null)}return{update:v,destroy:b}}function Rur(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())AL(s,fI(o))>0&&r.push(o);return r}const Pur=250;function $ur(e,t,n,r){let s=[],o=1/0;const i=Rur(e,n,t+Pur);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=t_(l,u,u.position,!0),h=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));h>t||(h<o?(s=[{...u,x:d,y:f}],o=h):h===o&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function gIt(e,t,n,r,s,o=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&o?{...c,...t_(i,c,c.position,!0)}:c}function vIt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Mur(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const yIt=()=>!0;function Dur(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:p,onConnectStart:m,onConnect:y,onConnectEnd:v,isValidConnection:b=yIt,onReconnectEnd:x,updateConnection:w,getTransform:k,getFromHandle:C,autoPanSpeed:_,dragThreshold:T=1,handleDomNode:E}){const I=iIt(e.target);let N=0,A;const{x:P,y:F}=zg(e),L=vIt(o,E),q=l?.getBoundingClientRect();let V=!1;if(!q||!L)return;const H=gIt(s,L,r,c,t);if(!H)return;let B=zg(e,q),W=!1,z=null,Y=!1,D=null;function R(){if(!d||!q)return;const[ce,J]=rIt(B,q,_);h({x:ce,y:J}),N=requestAnimationFrame(R)}const M={...H,nodeId:s,type:L,position:H.position},U=c.get(s);let ee={inProgress:!0,isValid:null,from:t_(U,M,ar.Left,!0),fromHandle:M,fromPosition:M.position,fromNode:U,to:B,toHandle:null,toPosition:Bqe[M.position],toNode:null,pointer:B};function X(){V=!0,w(ee),m?.(e,{nodeId:s,handleId:r,handleType:L})}T===0&&X();function te(ce){if(!V){const{x:pe,y:Se}=zg(ce),Te=pe-P,Ne=Se-F;if(!(Te*Te+Ne*Ne>T*T))return;X()}if(!C()||!M){ne(ce);return}const J=k();B=zg(ce,q),A=$ur(n5(B,J,!1,[1,1]),n,c,M),W||(R(),W=!0);const re=bIt(ce,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:I,lib:u,flowId:f,nodeLookup:c});D=re.handleDomNode,z=re.connection,Y=Mur(!!A,re.isValid);const se=c.get(s),ae=se?t_(se,M,ar.Left,!0):ee.from,ue={...ee,from:ae,isValid:Y,to:re.toHandle&&Y?Tq({x:re.toHandle.x,y:re.toHandle.y},J):B,toHandle:re.toHandle,toPosition:Y&&re.toHandle?re.toHandle.position:Bqe[M.position],toNode:re.toHandle?c.get(re.toHandle.nodeId):null,pointer:B};w(ue),ee=ue}function ne(ce){if(!("touches"in ce&&ce.touches.length>0)){if(V){(A||D)&&z&&Y&&y?.(z);const{inProgress:J,...re}=ee,se={...re,toPosition:ee.toHandle?ee.toPosition:null};v?.(ce,se),o&&x?.(ce,se)}p(),cancelAnimationFrame(N),W=!1,Y=!1,z=null,D=null,I.removeEventListener("mousemove",te),I.removeEventListener("mouseup",ne),I.removeEventListener("touchmove",te),I.removeEventListener("touchend",ne)}}I.addEventListener("mousemove",te),I.addEventListener("mouseup",ne),I.addEventListener("touchmove",te),I.addEventListener("touchend",ne)}function bIt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:l,flowId:c,isValidConnection:u=yIt,nodeLookup:d}){const f=o==="target",h=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=zg(e),y=i.elementFromPoint(p,m),v=y?.classList.contains(`${l}-flow__handle`)?y:h,b={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const x=vIt(void 0,v),w=v.getAttribute("data-nodeid"),k=v.getAttribute("data-handleid"),C=v.classList.contains("connectable"),_=v.classList.contains("connectableend");if(!w||!x)return b;const T={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=T;const I=C&&_&&(n===uI.Strict?f&&x==="source"||!f&&x==="target":w!==r||k!==s);b.isValid=I&&u(T),b.toHandle=gIt(w,x,k,d,n,!0)}return b}const txe={onPointerDown:Dur,isValid:bIt};function Lur({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Ih(e);function o({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:h=!0,inversePan:p=!1}){const m=w=>{if(w.sourceEvent.type!=="wheel"||!t)return;const k=n(),C=w.sourceEvent.ctrlKey&&RL()?10:1,_=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,_*C);t.scaleTo(T)};let y=[0,0];const v=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(y=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY])},b=w=>{const k=n();if(w.sourceEvent.type!=="mousemove"&&w.sourceEvent.type!=="touchmove"||!t)return;const C=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY],_=[C[0]-y[0],C[1]-y[1]];y=C;const T=r()*Math.max(k[2],Math.log(k[2]))*(p?-1:1),E={x:k[0]-_[0]*T,y:k[1]-_[1]*T},I=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},I,l)},x=QNt().on("start",v).on("zoom",f?b:null).on("zoom.wheel",h?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:jg}}const mQ=e=>({x:e.x,y:e.y,zoom:e.k}),Tse=({x:e,y:t,zoom:n})=>fQ.translate(e,t).scale(n),xj=(e,t)=>e.target.closest(`.${t}`),xIt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Fur=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,jse=(e,t=0,n=Fur,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},wIt=e=>{const t=e.ctrlKey&&RL()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function zur({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(xj(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const v=jg(d),b=wIt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,v,d);return}const h=d.deltaMode===1?20:1;let p=s===sC.Vertical?0:d.deltaX*h,m=s===sC.Horizontal?0:d.deltaY*h;!RL()&&d.shiftKey&&s!==sC.Vertical&&(p=d.deltaY*h,m=0),r.translateBy(n,-(p/f)*o,-(m/f)*o,{internal:!0});const y=mQ(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,y),e.panScrollTimeout=setTimeout(()=>{u?.(d,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,y))}}function Bur({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,l=xj(r,e);if(r.ctrlKey&&o&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function Uur({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=mQ(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function Vur({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{e.usedRightMouseButton=!!(n&&xIt(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!o.sourceEvent?.internal&&s?.(o.sourceEvent,mQ(o.transform))}}function qur({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&xIt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=mQ(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function Hur({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const h=e||t,p=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(xj(f,`${u}-flow__node`)||xj(f,`${u}-flow__edge`)))return!0;if(!r&&!h&&!s&&!o&&!n||i||d&&!m||xj(f,l)&&m||xj(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!h&&!s&&!p&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const y=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&y}}function Wur({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=QNt().scaleExtent([t,n]).translateExtent(r),h=Ih(e).call(f);x({x:s.x,y:s.y,zoom:dI(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),m=h.on("dblclick.zoom");f.wheelDelta(wIt);function y(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).transform(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function v({noWheelClassName:A,noPanClassName:P,onPaneContextMenu:F,userSelectionActive:L,panOnScroll:q,panOnDrag:V,panOnScrollMode:H,panOnScrollSpeed:B,preventScrolling:W,zoomOnPinch:z,zoomOnScroll:Y,zoomOnDoubleClick:D,zoomActivationKeyPressed:R,lib:M,onTransformChange:U,connectionInProgress:Q,paneClickDistance:ee,selectionOnDrag:X}){L&&!u.isZoomingOrPanning&&b();const te=q&&!R&&!L;f.clickDistance(X?1/0:!Fg(ee)||ee<0?0:ee);const ne=te?zur({zoomPanValues:u,noWheelClassName:A,d3Selection:h,d3Zoom:f,panOnScrollMode:H,panOnScrollSpeed:B,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:l}):Bur({noWheelClassName:A,preventScrolling:W,d3ZoomHandler:p});if(h.on("wheel.zoom",ne,{passive:!1}),!L){const J=Uur({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",J);const re=Vur({zoomPanValues:u,panOnDrag:V,onPaneContextMenu:!!F,onPanZoom:o,onTransformChange:U});f.on("zoom",re);const se=qur({zoomPanValues:u,panOnDrag:V,panOnScroll:q,onPaneContextMenu:F,onPanZoomEnd:l,onDraggingChange:c});f.on("end",se)}const ce=Hur({zoomActivationKeyPressed:R,panOnDrag:V,zoomOnScroll:Y,panOnScroll:q,zoomOnDoubleClick:D,zoomOnPinch:z,userSelectionActive:L,noPanClassName:P,noWheelClassName:A,lib:M,connectionInProgress:Q});f.filter(ce),D?h.on("dblclick.zoom",m):h.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,P,F){const L=Tse(A),q=f?.constrain()(L,P,F);return q&&await y(q),new Promise(V=>V(q))}async function w(A,P){const F=Tse(A);return await y(F,P),new Promise(L=>L(F))}function k(A){if(h){const P=Tse(A),F=h.property("__zoom");(F.k!==A.zoom||F.x!==A.x||F.y!==A.y)&&f?.transform(h,P,null,{sync:!0})}}function C(){const A=h?GNt(h.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function _(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).scaleTo(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function T(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).scaleBy(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function I(A){f?.translateExtent(A)}function N(A){const P=!Fg(A)||A<0?0:A;f?.clickDistance(P)}return{update:v,destroy:b,setViewport:w,setViewportConstrained:x,getViewport:C,scaleTo:_,scaleBy:T,setScaleExtent:E,setTranslateExtent:I,syncViewport:k,setClickDistance:N}}var pI;(function(e){e.Line="line",e.Handle="handle"})(pI||(pI={}));function Zur({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,l=n-r,c=[i>0?1:i<0?-1:0,l>0?1:l<0?-1:0];return i&&s&&(c[0]=c[0]*-1),l&&o&&(c[1]=c[1]*-1),c}function eHe(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function Nw(e,t){return Math.max(0,t-e)}function Iw(e,t){return Math.max(0,e-t)}function C9(e,t,n){return Math.max(0,t-e,e-n)}function tHe(e,t){return e?!t:t}function Gur(e,t,n,r,s,o,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:p,ySnapped:m}=n,{minWidth:y,maxWidth:v,minHeight:b,maxHeight:x}=r,{x:w,y:k,width:C,height:_,aspectRatio:T}=e;let E=Math.floor(d?p-e.pointerX:0),I=Math.floor(f?m-e.pointerY:0);const N=C+(c?-E:E),A=_+(u?-I:I),P=-o[0]*C,F=-o[1]*_;let L=C9(N,y,v),q=C9(A,b,x);if(i){let B=0,W=0;c&&E<0?B=Nw(w+E+P,i[0][0]):!c&&E>0&&(B=Iw(w+N+P,i[1][0])),u&&I<0?W=Nw(k+I+F,i[0][1]):!u&&I>0&&(W=Iw(k+A+F,i[1][1])),L=Math.max(L,B),q=Math.max(q,W)}if(l){let B=0,W=0;c&&E>0?B=Iw(w+E,l[0][0]):!c&&E<0&&(B=Nw(w+N,l[1][0])),u&&I>0?W=Iw(k+I,l[0][1]):!u&&I<0&&(W=Nw(k+A,l[1][1])),L=Math.max(L,B),q=Math.max(q,W)}if(s){if(d){const B=C9(N/T,b,x)*T;if(L=Math.max(L,B),i){let W=0;!c&&!u||c&&!u&&h?W=Iw(k+F+N/T,i[1][1])*T:W=Nw(k+F+(c?E:-E)/T,i[0][1])*T,L=Math.max(L,W)}if(l){let W=0;!c&&!u||c&&!u&&h?W=Nw(k+N/T,l[1][1])*T:W=Iw(k+(c?E:-E)/T,l[0][1])*T,L=Math.max(L,W)}}if(f){const B=C9(A*T,y,v)/T;if(q=Math.max(q,B),i){let W=0;!c&&!u||u&&!c&&h?W=Iw(w+A*T+P,i[1][0])/T:W=Nw(w+(u?I:-I)*T+P,i[0][0])/T,q=Math.max(q,W)}if(l){let W=0;!c&&!u||u&&!c&&h?W=Nw(w+A*T,l[1][0])/T:W=Iw(w+(u?I:-I)*T,l[0][0])/T,q=Math.max(q,W)}}}I=I+(I<0?q:-q),E=E+(E<0?L:-L),s&&(h?N>A*T?I=(tHe(c,u)?-E:E)/T:E=(tHe(c,u)?-I:I)*T:d?(I=E/T,u=c):(E=I*T,c=u));const V=c?w+E:w,H=u?k+I:k;return{width:C+(c?-E:E),height:_+(u?-I:I),x:o[0]*E*(c?-1:1)+V,y:o[1]*I*(u?-1:1)+H}}const SIt={width:0,height:0,x:0,y:0},Qur={...SIt,pointerX:0,pointerY:0,aspectRatio:1};function Yur(e){return[[0,0],[e.measured.width,e.measured.height]]}function Kur(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,l=n[0]*o,c=n[1]*i;return[[r-l,s-c],[r+o-l,s+i-c]]}function Xur({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Ih(e);let i={controlDirection:eHe("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:h,onResizeStart:p,onResize:m,onResizeEnd:y,shouldResize:v}){let b={...SIt},x={...Qur};i={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:eHe(u)};let w,k=null,C=[],_,T,E,I=!1;const N=PNt().on("start",A=>{const{nodeLookup:P,transform:F,snapGrid:L,snapToGrid:q,nodeOrigin:V,paneDomNode:H}=n();if(w=P.get(t),!w)return;k=H?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:W}=k2(A.sourceEvent,{transform:F,snapGrid:L,snapToGrid:q,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},x={...b,pointerX:B,pointerY:W,aspectRatio:b.width/b.height},_=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(_=P.get(w.parentId),T=_&&w.extent==="parent"?Yur(_):void 0),C=[],E=void 0;for(const[z,Y]of P)if(Y.parentId===t&&(C.push({id:z,position:{...Y.position},extent:Y.extent}),Y.extent==="parent"||Y.expandParent)){const D=Kur(Y,w,Y.origin??V);E?E=[[Math.min(D[0][0],E[0][0]),Math.min(D[0][1],E[0][1])],[Math.max(D[1][0],E[1][0]),Math.max(D[1][1],E[1][1])]]:E=D}p?.(A,{...b})}).on("drag",A=>{const{transform:P,snapGrid:F,snapToGrid:L,nodeOrigin:q}=n(),V=k2(A.sourceEvent,{transform:P,snapGrid:F,snapToGrid:L,containerBounds:k}),H=[];if(!w)return;const{x:B,y:W,width:z,height:Y}=b,D={},R=w.origin??q,{width:M,height:U,x:Q,y:ee}=Gur(x,i.controlDirection,V,i.boundaries,i.keepAspectRatio,R,T,E),X=M!==z,te=U!==Y,ne=Q!==B&&X,ce=ee!==W&&te;if(!ne&&!ce&&!X&&!te)return;if((ne||ce||R[0]===1||R[1]===1)&&(D.x=ne?Q:b.x,D.y=ce?ee:b.y,b.x=D.x,b.y=D.y,C.length>0)){const ae=Q-B,ue=ee-W;for(const pe of C)pe.position={x:pe.position.x-ae+R[0]*(M-z),y:pe.position.y-ue+R[1]*(U-Y)},H.push(pe)}if((X||te)&&(D.width=X&&(!i.resizeDirection||i.resizeDirection==="horizontal")?M:b.width,D.height=te&&(!i.resizeDirection||i.resizeDirection==="vertical")?U:b.height,b.width=D.width,b.height=D.height),_&&w.expandParent){const ae=R[0]*(D.width??0);D.x&&D.x<ae&&(b.x=ae,x.x=x.x-(D.x-ae));const ue=R[1]*(D.height??0);D.y&&D.y<ue&&(b.y=ue,x.y=x.y-(D.y-ue))}const J=Zur({width:b.width,prevWidth:z,height:b.height,prevHeight:Y,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),re={...b,direction:J};v?.(A,re)!==!1&&(I=!0,m?.(A,re),r(D,H))}).on("end",A=>{I&&(y?.(A,{...b}),s?.({...b}),I=!1)});o.call(N)}function c(){o.on(".drag",null)}return{update:l,destroy:c}}const Jur={},nHe=e=>{let t;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(m=>m(t,p))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Jur?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},edr=e=>e?nHe(e):nHe,{useDebugValue:tdr}=Pe,{useSyncExternalStoreWithSelector:ndr}=kAn,rdr=e=>e;function kIt(e,t=rdr,n){const r=ndr(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tdr(r),r}const rHe=(e,t)=>{const n=edr(e),r=(s,o=t)=>kIt(n,s,o);return Object.assign(r,n),r},sdr=(e,t)=>e?rHe(e,t):rHe;function Qi(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const gQ=g.createContext(null),odr=gQ.Provider,OIt=Xy.error001();function as(e,t){const n=g.useContext(gQ);if(n===null)throw new Error(OIt);return kIt(n,e,t)}function Aa(){const e=g.useContext(gQ);if(e===null)throw new Error(OIt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const sHe={display:"none"},idr={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},CIt="react-flow__node-desc",_It="react-flow__edge-desc",adr="react-flow__aria-live",ldr=e=>e.ariaLiveMessage,cdr=e=>e.ariaLabelConfig;function udr({rfId:e}){const t=as(ldr);return a.jsx("div",{id:`${adr}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:idr,children:t})}function ddr({rfId:e,disableKeyboardA11y:t}){const n=as(cdr);return a.jsxs(a.Fragment,{children:[a.jsx("div",{id:`${CIt}-${e}`,style:sHe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),a.jsx("div",{id:`${_It}-${e}`,style:sHe,children:n["edge.a11yDescription.default"]}),!t&&a.jsx(udr,{rfId:e})]})}const r5=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return a.jsx("div",{className:Hl(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});r5.displayName="Panel";function fdr({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:a.jsx(r5,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:a.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hdr=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},_9=e=>e.id;function pdr(e,t){return Qi(e.selectedNodes.map(_9),t.selectedNodes.map(_9))&&Qi(e.selectedEdges.map(_9),t.selectedEdges.map(_9))}function mdr({onSelectionChange:e}){const t=Aa(),{selectedNodes:n,selectedEdges:r}=as(hdr,pdr);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}const gdr=e=>!!e.onSelectionChangeHandlers;function vdr({onSelectionChange:e}){const t=as(gdr);return e||t?a.jsx(mdr,{onSelectionChange:e}):null}const nxe=typeof window<"u"?g.useLayoutEffect:g.useEffect,EIt=[0,0],ydr={x:0,y:0,zoom:1},bdr=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],oHe=[...bdr,"rfId"],xdr=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),iHe={translateExtent:jL,nodeOrigin:EIt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function wdr(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=as(xdr,Qi),u=Aa();nxe(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=iHe,l()}),[]);const d=g.useRef(iHe);return nxe(()=>{for(const f of oHe){const h=e[f],p=d.current[f];h!==p&&(typeof e[f]>"u"||(f==="nodes"?t(h):f==="edges"?n(h):f==="minZoom"?r(h):f==="maxZoom"?s(h):f==="translateExtent"?o(h):f==="nodeExtent"?i(h):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:uur(h)}):f==="fitView"?u.setState({fitViewQueued:h}):f==="fitViewOptions"?u.setState({fitViewOptions:h}):u.setState({[f]:h})))}d.current=e},oHe.map(f=>e[f])),null}function aHe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Sdr(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=aHe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:aHe()?.matches?"dark":"light"}const lHe=typeof document<"u"?document:null;function PL(e=null,t={target:lHe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),o=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
249
+ `:r=="r"?"\r":r=="t"?" ":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord&&this.test==t.test}create(){return this.regexp?new sor(this):new tor(this)}getCursor(t,n=0,r){let s=t.doc?t:xs.create({doc:t});return r==null&&(r=s.doc.length),this.regexp?XT(this,s,n,r):KT(this,s,n,r)}}class uNt{constructor(t){this.spec=t}}function Jsr(e,t,n){return(r,s,o,i)=>{if(n&&!n(r,s,o,i))return!1;let l=r>=i&&s<=i+o.length?o.slice(r-i,s-i):t.doc.sliceString(r,s);return e(l,t,r,s)}}function KT(e,t,n,r){let s;return e.wholeWord&&(s=eor(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(s=Jsr(e.test,t,s)),new iI(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:o=>o.toLowerCase(),s)}function eor(e,t){return(n,r,s,o)=>((o>n||o+s.length<r)&&(o=Math.max(0,n-2),s=e.sliceString(o,Math.min(e.length,r+2))),(t(gq(s,n-o))!=wa.Word||t(vq(s,n-o))!=wa.Word)&&(t(vq(s,r-o))!=wa.Word||t(gq(s,r-o))!=wa.Word))}class tor extends uNt{constructor(t){super(t)}nextMatch(t,n,r){let s=KT(this.spec,t,r,t.doc.length).nextOverlapping();if(s.done){let o=Math.min(t.doc.length,n+this.spec.unquoted.length);s=KT(this.spec,t,0,o).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==r?null:s.value}prevMatchInRange(t,n,r){for(let s=r;;){let o=Math.max(n,s-1e4-this.spec.unquoted.length),i=KT(this.spec,t,o,s),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(o==n)return null;s-=1e4}}prevMatch(t,n,r){let s=this.prevMatchInRange(t,0,n);return s||(s=this.prevMatchInRange(t,Math.max(0,r-this.spec.unquoted.length),t.doc.length)),s&&(s.from!=n||s.to!=r)?s:null}getReplacement(t){return this.spec.unquote(this.spec.replace)}matchAll(t,n){let r=KT(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let o=KT(this.spec,t,Math.max(0,n-this.spec.unquoted.length),Math.min(r+this.spec.unquoted.length,t.doc.length));for(;!o.next().done;)s(o.value.from,o.value.to)}}function nor(e,t,n){return(r,s,o)=>(!n||n(r,s,o))&&e(o[0],t,r,s)}function XT(e,t,n,r){let s;return e.wholeWord&&(s=ror(t.charCategorizer(t.selection.main.head))),e.test&&(s=nor(e.test,t,s)),new aNt(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:s},n,r)}function gq(e,t){return e.slice(Nc(e,t,!1),t)}function vq(e,t){return e.slice(t,Nc(e,t))}function ror(e){return(t,n,r)=>!r[0].length||(e(gq(r.input,r.index))!=wa.Word||e(vq(r.input,r.index))!=wa.Word)&&(e(vq(r.input,r.index+r[0].length))!=wa.Word||e(gq(r.input,r.index+r[0].length))!=wa.Word)}class sor extends uNt{nextMatch(t,n,r){let s=XT(this.spec,t,r,t.doc.length).next();return s.done&&(s=XT(this.spec,t,0,n).next()),s.done?null:s.value}prevMatchInRange(t,n,r){for(let s=1;;s++){let o=Math.max(n,r-s*1e4),i=XT(this.spec,t,o,r),l=null;for(;!i.next().done;)l=i.value;if(l&&(o==n||l.from>o+10))return l;if(o==n)return null}}prevMatch(t,n,r){return this.prevMatchInRange(t,0,n)||this.prevMatchInRange(t,r,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,r)=>{if(r=="&")return t.match[0];if(r=="$")return"$";for(let s=r.length;s>0;s--){let o=+r.slice(0,s);if(o>0&&o<t.match.length)return t.match[o]+r.slice(s)}return n})}matchAll(t,n){let r=XT(this.spec,t,0,t.doc.length),s=[];for(;!r.next().done;){if(s.length>=n)return null;s.push(r.value)}return s}highlight(t,n,r,s){let o=XT(this.spec,t,Math.max(0,n-250),Math.min(r+250,t.doc.length));for(;!o.next().done;)s(o.value.from,o.value.to)}}const SL=Sr.define(),KEe=Sr.define(),NS=ql.define({create(e){return new yse(Bbe(e).create(),null)},update(e,t){for(let n of t.effects)n.is(SL)?e=new yse(n.value.create(),e.panel):n.is(KEe)&&(e=new yse(e.query,n.value?XEe:null));return e},provide:e=>fL.from(e,t=>t.panel)});class yse{constructor(t,n){this.query=t,this.panel=n}}const oor=Fn.mark({class:"cm-searchMatch"}),ior=Fn.mark({class:"cm-searchMatch cm-searchMatch-selected"}),aor=Ca.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(NS))}update(e){let t=e.state.field(NS);(t!=e.startState.field(NS)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return Fn.none;let{view:n}=this,r=new Wf;for(let s=0,o=n.visibleRanges,i=o.length;s<i;s++){let{from:l,to:c}=o[s];for(;s<i-1&&c>o[s+1].from-500;)c=o[++s].to;e.highlight(n.state,l,c,(u,d)=>{let f=n.state.selection.ranges.some(h=>h.from==u&&h.to==d);r.add(u,d,f?ior:oor)})}return r.finish()}},{decorations:e=>e.decorations});function Q3(e){return t=>{let n=t.state.field(NS,!1);return n&&n.query.spec.valid?e(t,n):hNt(t)}}const yq=Q3((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let s=Ot.single(r.from,r.to),o=e.state.facet(BA);return e.dispatch({selection:s,effects:[JEe(e,r),o.scrollToMatch(s.main,e)],userEvent:"select.search"}),fNt(e),!0}),bq=Q3((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,s=t.prevMatch(n,r,r);if(!s)return!1;let o=Ot.single(s.from,s.to),i=e.state.facet(BA);return e.dispatch({selection:o,effects:[JEe(e,s),i.scrollToMatch(o.main,e)],userEvent:"select.search"}),fNt(e),!0}),lor=Q3((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:Ot.create(n.map(r=>Ot.range(r.from,r.to))),userEvent:"select.search.matches"}),!0)}),cor=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:s}=n.main,o=[],i=0;for(let l=new iI(e.doc,e.sliceDoc(r,s));!l.next().done;){if(o.length>1e3)return!1;l.value.from==r&&(i=o.length),o.push(Ot.range(l.value.from,l.value.to))}return t(e.update({selection:Ot.create(o,i),userEvent:"select.search.matches"})),!0},cqe=Q3((e,{query:t})=>{let{state:n}=e,{from:r,to:s}=n.selection.main;if(n.readOnly)return!1;let o=t.nextMatch(n,r,r);if(!o)return!1;let i=o,l=[],c,u,d=[];i.precise?i.from==r&&i.to==s&&(u=n.toText(t.getReplacement(i)),l.push({from:i.from,to:i.to,insert:u}),i=t.nextMatch(n,i.from,i.to),d.push(zt.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))):i=t.nextMatch(n,i.from,i.to);let f=e.state.changes(l);return i&&(c=Ot.single(i.from,i.to).map(f),d.push(JEe(e,i)),d.push(n.facet(BA).scrollToMatch(c.main,e))),e.dispatch({changes:f,selection:c,effects:d,userEvent:"input.replace"}),!0}),uor=Q3((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let s of t.matchAll(e.state,1e9)){let{from:o,to:i,precise:l}=s;l&&n.push({from:o,to:i,insert:t.getReplacement(s)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:zt.announce.of(r),userEvent:"input.replace.all"}),!0});function XEe(e){return e.state.facet(BA).createPanel(e)}function Bbe(e,t){var n,r,s,o,i;let l=e.selection.main,c=l.empty||l.to>l.from+100?"":e.sliceDoc(l.from,l.to);if(t&&!c)return t;let u=e.facet(BA);return new cNt({search:((n=t?.literal)!==null&&n!==void 0?n:u.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(r=t?.caseSensitive)!==null&&r!==void 0?r:u.caseSensitive,literal:(s=t?.literal)!==null&&s!==void 0?s:u.literal,regexp:(o=t?.regexp)!==null&&o!==void 0?o:u.regexp,wholeWord:(i=t?.wholeWord)!==null&&i!==void 0?i:u.wholeWord})}function dNt(e){let t=pEe(e,XEe);return t&&t.dom.querySelector("[main-field]")}function fNt(e){let t=dNt(e);t&&t==e.root.activeElement&&t.select()}const hNt=e=>{let t=e.state.field(NS,!1);if(t&&t.panel){let n=dNt(e);if(n&&n!=e.root.activeElement){let r=Bbe(e.state,t.query.spec);r.valid&&e.dispatch({effects:SL.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[KEe.of(!0),t?SL.of(Bbe(e.state,t.query.spec)):Sr.appendConfig.of(mor)]});return!0},pNt=e=>{let t=e.state.field(NS,!1);if(!t||!t.panel)return!1;let n=pEe(e,XEe);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:KEe.of(!1)}),!0},dor=[{key:"Mod-f",run:hNt,scope:"editor search-panel"},{key:"F3",run:yq,shift:bq,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:yq,shift:bq,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:pNt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:cor},{key:"Mod-Alt-g",run:Bsr},{key:"Mod-d",run:Xsr,preventDefault:!0}];class hor{constructor(t){this.view=t;let n=this.query=t.state.field(NS).query.spec;this.commit=this.commit.bind(this),this.searchField=pi("input",{value:n.search,placeholder:ph(t,"Find"),"aria-label":ph(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=pi("input",{value:n.replace,placeholder:ph(t,"Replace"),"aria-label":ph(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=pi("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=pi("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=pi("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function r(s,o,i){return pi("button",{class:"cm-button",name:s,onclick:o,type:"button"},i)}this.dom=pi("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,r("next",()=>yq(t),[ph(t,"next")]),r("prev",()=>bq(t),[ph(t,"previous")]),r("select",()=>lor(t),[ph(t,"all")]),pi("label",null,[this.caseField,ph(t,"match case")]),pi("label",null,[this.reField,ph(t,"regexp")]),pi("label",null,[this.wordField,ph(t,"by word")]),...t.state.readOnly?[]:[pi("br"),this.replaceField,r("replace",()=>cqe(t),[ph(t,"replace")]),r("replaceAll",()=>uor(t),[ph(t,"replace all")])],pi("button",{name:"close",onclick:()=>pNt(t),"aria-label":ph(t,"close"),type:"button"},["×"])])}commit(){let t=new cNt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:SL.of(t)}))}keydown(t){RKn(this.view,t,"search-panel")?t.preventDefault():t.keyCode==13&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?bq:yq)(this.view)):t.keyCode==13&&t.target==this.replaceField&&(t.preventDefault(),cqe(this.view))}update(t){for(let n of t.transactions)for(let r of n.effects)r.is(SL)&&!r.value.eq(this.query)&&this.setQuery(r.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(BA).top}}function ph(e,t){return e.state.phrase(t)}const g9=30,v9=/[\s\.,:;?!]/;function JEe(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),s=e.state.doc.lineAt(n).to,o=Math.max(r.from,t-g9),i=Math.min(s,n+g9),l=e.state.sliceDoc(o,i);if(o!=r.from){for(let c=0;c<g9;c++)if(!v9.test(l[c+1])&&v9.test(l[c])){l=l.slice(c);break}}if(i!=s){for(let c=l.length-1;c>l.length-g9;c--)if(!v9.test(l[c-1])&&v9.test(l[c])){l=l.slice(0,c);break}}return zt.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${r.number}.`)}const por=zt.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),mor=[NS,fp.low(aor),por];class uqe{constructor(t,n,r){this.from=t,this.to=n,this.diagnostic=r}}class SO{constructor(t,n,r){this.diagnostics=t,this.panel=n,this.selected=r}static init(t,n,r){let s=r.facet(kL).markerFilter;s&&(t=s(t,r));let o=t.slice().sort((d,f)=>d.from-f.from||d.to-f.to),i=new Wf,l=[],c=0;for(let d=0;;){let f=d==o.length?null:o[d];if(!f&&!l.length)break;let h,p;for(l.length?(h=c,p=l.reduce((y,v)=>Math.min(y,v.to),f&&f.from>h?f.from:1e8)):(h=f.from,p=f.to,l.push(f),d++);d<o.length;){let y=o[d];if(y.from==h&&(y.to>y.from||y.to==h))l.push(y),d++,p=Math.min(y.to,p);else{p=Math.min(y.from,p);break}}let m=Tor(l);if(l.some(y=>y.from==y.to||y.from==y.to-1&&r.doc.lineAt(y.from).to==y.from))i.add(h,h,Fn.widget({widget:new Oor(m),diagnostics:l.slice()}));else{let y=l.reduce((v,b)=>b.markClass?v+" "+b.markClass:v,"");i.add(h,p,Fn.mark({class:"cm-lintRange cm-lintRange-"+m+y,diagnostics:l.slice(),inclusiveEnd:l.some(v=>v.to>p)}))}c=p;for(let y=0;y<l.length;y++)l[y].to<=c&&l.splice(y--,1)}let u=i.finish();return new SO(u,n,aI(u))}}function aI(e,t=null,n=0){let r=null;return e.between(n,1e9,(s,o,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new uqe(s,o,t||i.diagnostics[0]);else{if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;r=new uqe(r.from,o,r.diagnostic)}}),r}function gor(e,t){let n=t.pos,r=t.end||n,s=e.state.facet(kL).hideOn(e,n,r);if(s!=null)return s;let o=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(i=>i.is(mNt))||e.changes.touchesRange(o.from,Math.max(o.to,r)))}function vor(e,t){return e.field(Dh,!1)?t:t.concat(Sr.appendConfig.of(jor))}const mNt=Sr.define(),eTe=Sr.define(),gNt=Sr.define(),Dh=ql.define({create(){return new SO(Fn.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,s=e.panel;if(e.selected){let o=t.changes.mapPos(e.selected.from,1);r=aI(n,e.selected.diagnostic,o)||aI(n,null,o)}!n.size&&s&&t.state.facet(kL).autoPanel&&(s=null),e=new SO(n,s,r)}for(let n of t.effects)if(n.is(mNt)){let r=t.state.facet(kL).autoPanel?n.value.length?OL.open:null:e.panel;e=SO.init(n.value,r,t.state)}else n.is(eTe)?e=new SO(e.diagnostics,n.value?OL.open:null,e.selected):n.is(gNt)&&(e=new SO(e.diagnostics,e.panel,n.value));return e},provide:e=>[fL.from(e,t=>t.panel),zt.decorations.from(e,t=>t.diagnostics)]}),yor=Fn.mark({class:"cm-lintRange cm-lintRange-active"});function bor(e,t,n){let{diagnostics:r}=e.state.field(Dh),s,o=-1,i=-1;r.between(t-(n<0?1:0),t+(n>0?1:0),(c,u,{spec:d})=>{if(t>=c&&t<=u&&(c==u||(t>c||n>0)&&(t<u||n<0)))return s=d.diagnostics,o=c,i=u,!1});let l=e.state.facet(kL).tooltipFilter;return s&&l&&(s=l(s,e.state)),s?{pos:o,end:i,above:e.state.doc.lineAt(o).to<i,create(){return{dom:xor(e,s)}}}:null}function xor(e,t){return pi("ul",{class:"cm-tooltip-lint"},t.map(n=>yNt(e,n,!1)))}const wor=e=>{let t=e.state.field(Dh,!1);(!t||!t.panel)&&e.dispatch({effects:vor(e.state,[eTe.of(!0)])});let n=pEe(e,OL.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},dqe=e=>{let t=e.state.field(Dh,!1);return!t||!t.panel?!1:(e.dispatch({effects:eTe.of(!1)}),!0)},Sor=e=>{let t=e.state.field(Dh,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)},kor=[{key:"Mod-Shift-m",run:wor,preventDefault:!0},{key:"F8",run:Sor}],kL=En.define({combine(e){return{sources:e.map(t=>t.source).filter(t=>t!=null),...pb(e.map(t=>t.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:fqe,tooltipFilter:fqe,needsRefresh:(t,n)=>t?n?r=>t(r)||n(r):t:n,hideOn:(t,n)=>t?n?(r,s,o)=>t(r,s,o)||n(r,s,o):t:n,autoPanel:(t,n)=>t||n})}}});function fqe(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function vNt(e){let t=[];if(e)e:for(let{name:n}of e){for(let r=0;r<n.length;r++){let s=n[r];if(/[a-zA-Z]/.test(s)&&!t.some(o=>o.toLowerCase()==s.toLowerCase())){t.push(s);continue e}}t.push("")}return t}function yNt(e,t,n){var r;let s=n?vNt(t.actions):[];return pi("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},pi("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),(r=t.actions)===null||r===void 0?void 0:r.map((o,i)=>{let l=!1,c=p=>{if(p.preventDefault(),l)return;l=!0;let m=aI(e.state.field(Dh).diagnostics,t);m&&o.apply(e,m.from,m.to)},{name:u}=o,d=s[i]?u.indexOf(s[i]):-1,f=d<0?u:[u.slice(0,d),pi("u",u.slice(d,d+1)),u.slice(d+1)],h=o.markClass?" "+o.markClass:"";return pi("button",{type:"button",class:"cm-diagnosticAction"+h,onclick:c,onmousedown:c,"aria-label":` Action: ${u}${d<0?"":` (access key "${s[i]})"`}.`},f)}),t.source&&pi("div",{class:"cm-diagnosticSource"},t.source))}class Oor extends hp{constructor(t){super(),this.sev=t}eq(t){return t.sev==this.sev}toDOM(){return pi("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class hqe{constructor(t,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=yNt(t,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class OL{constructor(t){this.view=t,this.items=[];let n=s=>{if(s.keyCode==27)dqe(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:o}=this.items[this.selectedIndex],i=vNt(o.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==s.keyCode){let c=aI(this.view.state.field(Dh).diagnostics,o);c&&o.actions[l].apply(t,c.from,c.to)}}else return;s.preventDefault()},r=s=>{for(let o=0;o<this.items.length;o++)this.items[o].dom.contains(s.target)&&this.moveSelection(o)};this.list=pi("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:r}),this.dom=pi("div",{class:"cm-panel-lint"},this.list,pi("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>dqe(this.view)},"×")),this.update()}get selectedIndex(){let t=this.view.state.field(Dh).selected;if(!t)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==t.diagnostic)return n;return-1}update(){let{diagnostics:t,selected:n}=this.view.state.field(Dh),r=0,s=!1,o=null,i=new Set;for(t.between(0,this.view.state.doc.length,(l,c,{spec:u})=>{for(let d of u.diagnostics){if(i.has(d))continue;i.add(d);let f=-1,h;for(let p=r;p<this.items.length;p++)if(this.items[p].diagnostic==d){f=p;break}f<0?(h=new hqe(this.view,d),this.items.splice(r,0,h),s=!0):(h=this.items[f],f>r&&(this.items.splice(r,f-r),s=!0)),n&&h.diagnostic==n.diagnostic?h.dom.hasAttribute("aria-selected")||(h.dom.setAttribute("aria-selected","true"),o=h):h.dom.hasAttribute("aria-selected")&&h.dom.removeAttribute("aria-selected"),r++}});r<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new hqe(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),o?(this.list.setAttribute("aria-activedescendant",o.id),this.view.requestMeasure({key:this,read:()=>({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:c})=>{let u=c.height/this.list.offsetHeight;l.top<c.top?this.list.scrollTop-=(c.top-l.top)/u:l.bottom>c.bottom&&(this.list.scrollTop+=(l.bottom-c.bottom)/u)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let t=this.list.firstChild;function n(){let r=t;t=r.nextSibling,r.remove()}for(let r of this.items)if(r.dom.parentNode==this.list){for(;t!=r.dom;)n();t=r.dom.nextSibling}else this.list.insertBefore(r.dom,t);for(;t;)n()}moveSelection(t){if(this.selectedIndex<0)return;let n=this.view.state.field(Dh),r=aI(n.diagnostics,this.items[t].diagnostic);r&&this.view.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:gNt.of(r)})}static open(t){return new OL(t)}}function Cor(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function y9(e){return Cor(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const _or=zt.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:y9("#d11")},".cm-lintRange-warning":{backgroundImage:y9("orange")},".cm-lintRange-info":{backgroundImage:y9("#999")},".cm-lintRange-hint":{backgroundImage:y9("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Eor(e){return e=="error"?4:e=="warning"?3:e=="info"?2:1}function Tor(e){let t="hint",n=1;for(let r of e){let s=Eor(r.severity);s>n&&(n=s,t=r.severity)}return t}const jor=[Dh,zt.decorations.compute([Dh],e=>{let{selected:t,panel:n}=e.field(Dh);return!t||!n||t.from==t.to?Fn.none:Fn.set([yor.range(t.from,t.to)])}),wXn(bor,{hideOn:gor}),_or];var pqe=function(t){t===void 0&&(t={});var n=t,r=n.crosshairCursor,s=r===void 0?!1:r,o=[];t.closeBracketsKeymap!==!1&&(o=o.concat(ver)),t.defaultKeymap!==!1&&(o=o.concat(Lsr)),t.searchKeymap!==!1&&(o=o.concat(dor)),t.historyKeymap!==!1&&(o=o.concat(Hrr)),t.foldKeymap!==!1&&(o=o.concat(nJn)),t.completionKeymap!==!1&&(o=o.concat(dTt)),t.lintKeymap!==!1&&(o=o.concat(kor));var i=[];return t.lineNumbers!==!1&&i.push(AEt()),t.highlightActiveLineGutter!==!1&&i.push($Xn()),t.highlightSpecialChars!==!1&&i.push(QKn()),t.history!==!1&&i.push(Mrr()),t.foldGutter!==!1&&i.push(iJn()),t.drawSelection!==!1&&i.push(FKn()),t.dropCursor!==!1&&i.push(qKn()),t.allowMultipleSelections!==!1&&i.push(xs.allowMultipleSelections.of(!0)),t.indentOnInput!==!1&&i.push(GXn()),t.syntaxHighlighting!==!1&&i.push(LA(uJn,{fallback:!0})),t.bracketMatching!==!1&&i.push(vJn()),t.closeBrackets!==!1&&i.push(her()),t.autocompletion!==!1&&i.push(uTt()),t.rectangularSelection!==!1&&i.push(cXn()),s!==!1&&i.push(fXn()),t.highlightActiveLine!==!1&&i.push(tXn()),t.highlightSelectionMatches!==!1&&i.push(qsr()),t.tabSize&&typeof t.tabSize=="number"&&i.push(DA.of(" ".repeat(t.tabSize))),i.concat([MA.of(o.flat())]).filter(Boolean)};const Nor="#e5c07b",mqe="#e06c75",Ior="#56b6c2",Aor="#ffffff",e7="#abb2bf",Ube="#7d8799",Ror="#61afef",Por="#98c379",gqe="#d19a66",$or="#c678dd",Mor="#21252b",vqe="#2c313a",yqe="#282c34",bse="#353a42",Dor="#3E4451",bqe="#528bff",Lor=zt.theme({"&":{color:e7,backgroundColor:yqe},".cm-content":{caretColor:bqe},".cm-cursor, .cm-dropCursor":{borderLeftColor:bqe},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Dor},".cm-panels":{backgroundColor:Mor,color:e7},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:yqe,color:Ube,border:"none"},".cm-activeLineGutter":{backgroundColor:vqe},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:bse},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:bse,borderBottomColor:bse},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:vqe,color:e7}}},{dark:!0}),For=M0.define([{tag:he.keyword,color:$or},{tag:[he.name,he.deleted,he.character,he.propertyName,he.macroName],color:mqe},{tag:[he.function(he.variableName),he.labelName],color:Ror},{tag:[he.color,he.constant(he.name),he.standard(he.name)],color:gqe},{tag:[he.definition(he.name),he.separator],color:e7},{tag:[he.typeName,he.className,he.number,he.changed,he.annotation,he.modifier,he.self,he.namespace],color:Nor},{tag:[he.operator,he.operatorKeyword,he.url,he.escape,he.regexp,he.link,he.special(he.string)],color:Ior},{tag:[he.meta,he.comment],color:Ube},{tag:he.strong,fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.link,color:Ube,textDecoration:"underline"},{tag:he.heading,fontWeight:"bold",color:mqe},{tag:[he.atom,he.bool,he.special(he.variableName)],color:gqe},{tag:[he.processingInstruction,he.string,he.inserted],color:Por},{tag:he.invalid,color:Aor}]),zor=[Lor,LA(For)];var Bor=zt.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),Uor=function(t){t===void 0&&(t={});var n=t,r=n.indentWithTab,s=r===void 0?!0:r,o=n.editable,i=o===void 0?!0:o,l=n.readOnly,c=l===void 0?!1:l,u=n.theme,d=u===void 0?"light":u,f=n.placeholder,h=f===void 0?"":f,p=n.basicSetup,m=p===void 0?!0:p,y=[];switch(s&&y.unshift(MA.of([Fsr])),m&&(typeof m=="boolean"?y.unshift(pqe()):y.unshift(pqe(m))),h&&y.unshift(oXn(h)),d){case"light":y.push(Bor);break;case"dark":y.push(zor);break;case"none":break;default:y.push(d);break}return i===!1&&y.push(zt.editable.of(!1)),c&&y.push(xs.readOnly.of(!0)),[...y]},Vor=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(t=>e.state.sliceDoc(t.from,t.to)),selectedText:e.state.selection.ranges.some(t=>!t.empty)});class qor{constructor(t,n){this.timeLeftMS=void 0,this.timeoutMS=void 0,this.isCancelled=!1,this.isTimeExhausted=!1,this.callbacks=[],this.timeLeftMS=n,this.timeoutMS=n,this.callbacks.push(t)}tick(){if(!this.isCancelled&&!this.isTimeExhausted&&(this.timeLeftMS--,this.timeLeftMS<=0)){this.isTimeExhausted=!0;var t=this.callbacks.slice();this.callbacks.length=0,t.forEach(n=>{try{n()}catch(r){console.error("TimeoutLatch callback error:",r)}})}}cancel(){this.isCancelled=!0,this.callbacks.length=0}reset(){this.timeLeftMS=this.timeoutMS,this.isCancelled=!1,this.isTimeExhausted=!1}get isDone(){return this.isCancelled||this.isTimeExhausted}}class xqe{constructor(){this.interval=null,this.latches=new Set}add(t){this.latches.add(t),this.start()}remove(t){this.latches.delete(t),this.latches.size===0&&this.stop()}start(){this.interval===null&&(this.interval=setInterval(()=>{this.latches.forEach(t=>{t.tick(),t.isDone&&this.remove(t)})},1))}stop(){this.interval!==null&&(clearInterval(this.interval),this.interval=null)}}var xse=null,Hor=()=>typeof window>"u"?new xqe:(xse||(xse=new xqe),xse),Wor=zt.theme({"& .cm-scroller":{height:"100% !important"}}),wqe=null,wse=null;function Zor(e,t,n,r,s,o){if(!e&&!t&&!n&&!r&&!s&&!o)return null;var i=JSON.stringify({height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:o});return i===wqe||(wqe=i,wse=zt.theme({"&":{height:e,minHeight:t,maxHeight:n,width:r,minWidth:s,maxWidth:o}})),wse}var Sqe=hb.define(),Gor=200,Qor=[];function Yor(e){var t=e.value,n=e.selection,r=e.onChange,s=e.onStatistics,o=e.onCreateEditor,i=e.onUpdate,l=e.extensions,c=l===void 0?Qor:l,u=e.autoFocus,d=e.theme,f=d===void 0?"light":d,h=e.height,p=h===void 0?null:h,m=e.minHeight,y=m===void 0?null:m,v=e.maxHeight,b=v===void 0?null:v,x=e.width,w=x===void 0?null:x,k=e.minWidth,C=k===void 0?null:k,_=e.maxWidth,T=_===void 0?null:_,E=e.placeholder,I=E===void 0?"":E,N=e.editable,A=N===void 0?!0:N,P=e.readOnly,F=P===void 0?!1:P,L=e.indentWithTab,q=L===void 0?!0:L,V=e.basicSetup,H=V===void 0?!0:V,B=e.root,W=e.initialState,z=g.useState(),Y=z[0],D=z[1],R=g.useState(),M=R[0],U=R[1],Q=g.useState(),ee=Q[0],X=Q[1],te=g.useState(()=>({current:null}))[0],ne=g.useState(()=>({current:null}))[0],ce=Zor(p,y,b,w,C,T),J=zt.updateListener.of(ae=>{if(ae.docChanged&&typeof r=="function"&&!ae.transactions.some(Se=>Se.annotation(Sqe))){te.current?te.current.reset():(te.current=new qor(()=>{if(ne.current){var Se=ne.current;ne.current=null,Se()}te.current=null},Gor),Hor().add(te.current));var ue=ae.state.doc,pe=ue.toString();r(pe,ae)}s&&s(Vor(ae))}),re=Uor({theme:f,editable:A,readOnly:F,placeholder:I,indentWithTab:q,basicSetup:H}),se=[J,...ce?[ce]:[],Wor,...re];return i&&typeof i=="function"&&se.push(zt.updateListener.of(i)),se=se.concat(c),g.useLayoutEffect(()=>{if(Y&&!ee){var ae={doc:t,selection:n,extensions:se},ue=W?xs.fromJSON(W.json,ae,W.fields):xs.create(ae);if(X(ue),!M){var pe=new zt({state:ue,parent:Y,root:B});U(pe),o&&o(pe,ue)}}return()=>{M&&(X(void 0),U(void 0))}},[Y,ee]),g.useEffect(()=>{e.container&&D(e.container)},[e.container]),g.useEffect(()=>()=>{M&&(M.destroy(),U(void 0)),te.current&&(te.current.cancel(),te.current=null)},[M]),g.useEffect(()=>{u&&M&&M.focus()},[u,M]),g.useEffect(()=>{M&&M.dispatch({effects:Sr.reconfigure.of(se)})},[f,c,p,y,b,w,C,T,I,A,F,q,H,r,i]),g.useEffect(()=>{if(t!==void 0){var ae=M?M.state.doc.toString():"";if(M&&t!==ae){var ue=te.current&&!te.current.isDone,pe=()=>{M&&t!==M.state.doc.toString()&&M.dispatch({changes:{from:0,to:M.state.doc.toString().length,insert:t||""},annotations:[Sqe.of(!0)]})};ue?ne.current=pe:pe()}}},[t,M]),{state:ee,setState:X,view:M,setView:U,container:Y,setContainer:D}}var Kor=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],f1=g.forwardRef((e,t)=>{var n=e.className,r=e.value,s=r===void 0?"":r,o=e.selection,i=e.extensions,l=i===void 0?[]:i,c=e.onChange,u=e.onStatistics,d=e.onCreateEditor,f=e.onUpdate,h=e.autoFocus,p=e.theme,m=p===void 0?"light":p,y=e.height,v=e.minHeight,b=e.maxHeight,x=e.width,w=e.minWidth,k=e.maxWidth,C=e.basicSetup,_=e.placeholder,T=e.indentWithTab,E=e.editable,I=e.readOnly,N=e.root,A=e.initialState,P=_jt(e,Kor),F=g.useRef(null),L=Yor({root:N,value:s,autoFocus:h,theme:m,height:y,minHeight:v,maxHeight:b,width:x,minWidth:w,maxWidth:k,basicSetup:C,placeholder:_,indentWithTab:T,editable:E,readOnly:I,selection:o,onChange:c,onStatistics:u,onCreateEditor:d,onUpdate:f,extensions:l,initialState:A}),q=L.state,V=L.view,H=L.container,B=L.setContainer;g.useImperativeHandle(t,()=>({editor:F.current,state:q,view:V}),[F,H,q,V]);var W=g.useCallback(Y=>{F.current=Y,B(Y)},[B]);if(typeof s!="string")throw new Error("value must be typeof string but got "+typeof s);var z=typeof m=="string"?"cm-theme-"+m:"cm-theme";return a.jsx("div",KC({ref:W,className:""+z+(n?" "+n:"")},P))});f1.displayName="CodeMirror";function Xor(e){return new GC(bEe.define(e))}const Jor=[Tg.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Uo(()=>Promise.resolve().then(()=>p9),[],import.meta.url).then(e=>e.javascript())}}),Tg.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return Uo(()=>Promise.resolve().then(()=>jJn),void 0,import.meta.url).then(e=>e.json())}}),Tg.of({name:"JSX",extensions:["jsx"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({jsx:!0}))}}),Tg.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Uo(()=>Promise.resolve().then(()=>krr),void 0,import.meta.url).then(e=>e.markdown())}}),Tg.of({name:"TSX",extensions:["tsx"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),Tg.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load(){return Uo(()=>Promise.resolve().then(()=>p9),void 0,import.meta.url).then(e=>e.javascript({typescript:!0}))}}),Tg.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return Uo(()=>import("./shell-CjFT_Tl9.js"),[],import.meta.url).then(e=>Xor(e.shell))}})];function eir(e,t=5){if(!e?.properties)return[];const n=[];function r(s,o,i){if(i>t)return;const l=Array.isArray(s.type)?s.type.join(" | "):s.type;if(n.push({path:o,label:o,description:s.description??s.title,type:l}),s.properties)for(const[c,u]of Object.entries(s.properties))r(u,`${o}.${c}`,i+1);if(s.items?.properties)for(const[c,u]of Object.entries(s.items.properties))r(u,`${o}[].${c}`,i+1)}for(const[s,o]of Object.entries(e.properties))r(o,s,1);return n}function tir(e){const t=eir(e);return uTt({override:[nir(t)],defaultKeymap:!0,closeOnBlur:!0,icons:!1})}function nir(e){return t=>{const r=t.state.sliceDoc(Math.max(0,t.pos-50),t.pos).match(/\{\{([a-zA-Z0-9_.\[\]]*)?$/);if(!r)return null;const s=r[1]??"",o=t.pos-s.length,i=s?e.filter(c=>c.path.toLowerCase().startsWith(s.toLowerCase())):e;if(i.length===0)return null;const l=i.map(c=>({label:c.path,displayLabel:c.path,detail:c.type,info:c.description,apply:(u,d,f,h)=>{const y=u.state.sliceDoc(h,h+2)==="}}"?d.label:`${d.label}}}`;u.dispatch({changes:{from:f,to:h,insert:y},selection:{anchor:f+y.length}})}}));return{from:o,options:l,validFor:/^[a-zA-Z0-9_.\[\]]*$/}}}const rir=/\{\{([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\}\}/g,sir=Fn.mark({class:"cm-variable-highlight"}),kqe=new kEt({regexp:rir,decoration:()=>sir}),oir=Ca.fromClass(class{decorations;constructor(e){this.decorations=kqe.createDeco(e)}update(e){this.decorations=kqe.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}),iir=oir;function air(){const e=rQ({settings:{fontFamily:"var(--font-mono)",fontSize:"var(--text-body-sm)",lineHighlight:"transparent",gutterBackground:"transparent",gutterForeground:"var(--placeholder)",background:"transparent",foreground:"var(--foreground)",caret:"var(--foreground)"},styles:[{tag:[he.className,he.propertyName],color:"var(--foreground)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:he.emphasis,fontStyle:"italic",color:"var(--foreground)"},{tag:he.strong,fontWeight:"bold",color:"var(--foreground)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--foreground)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:he.quote,fontStyle:"italic",color:"var(--placeholder)"}]}),t=zt.theme({".cm-editor":{backgroundColor:"transparent"},".cm-content":{color:"var(--foreground)",caretColor:"var(--foreground)"},".cm-lineNumbers .cm-gutterElement":{color:"var(--placeholder)"},".cm-activeLineGutter":{color:"var(--muted-foreground)"},".cm-cursor":{borderLeftColor:"var(--foreground)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"color-mix(in srgb, var(--accent3) 22%, transparent)"},".cm-tooltip-autocomplete":{backgroundColor:"var(--background)",border:"1px solid var(--border)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--foreground)"},".cm-completionDetail":{color:"var(--muted-foreground)",fontSize:"var(--text-caption)",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--background)",border:"1px solid var(--border)",color:"var(--muted-foreground)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--fill-hover)",color:"var(--foreground)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}});return[e,t]}function lir(){const e=zt.theme({"&":{backgroundColor:"transparent",color:"var(--foreground)",fontSize:"var(--text-body-sm)"},"&.cm-editor .cm-scroller":{fontFamily:"var(--font-mono)"},".cm-gutters":{backgroundColor:"transparent",color:"var(--placeholder)",borderRight:"none"},".cm-content":{color:"var(--foreground)",caretColor:"var(--foreground)"},".cm-activeLine":{backgroundColor:"transparent"},".cm-lineNumbers .cm-gutterElement":{color:"var(--placeholder)"},".cm-activeLineGutter":{backgroundColor:"transparent",color:"var(--muted-foreground)"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--foreground)"},"&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{background:"color-mix(in srgb, var(--accent3) 22%, transparent) !important"},".cm-tooltip-autocomplete":{backgroundColor:"var(--background)",border:"1px solid var(--border)",borderRadius:"6px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)"},".cm-tooltip-autocomplete > ul":{fontFamily:"var(--font-mono)"},".cm-completionLabel":{color:"var(--foreground)"},".cm-completionDetail":{color:"var(--muted-foreground)",fontSize:"var(--text-caption)",marginLeft:"auto",paddingLeft:"12px"},".cm-completionInfo":{backgroundColor:"var(--background)",border:"1px solid var(--border)",color:"var(--muted-foreground)",padding:"8px 12px"},".cm-completionIcon":{display:"none"},"ul.cm-completionList li[aria-selected]":{backgroundColor:"var(--fill-hover)",color:"var(--foreground)"},".cm-line .cm-variable-highlight":{color:"var(--accent6) !important",fontWeight:"500"}}),t=M0.define([{tag:[he.comment,he.bracket],color:"var(--placeholder)"},{tag:[he.string,he.meta,he.regexp],color:"var(--accent1)"},{tag:[he.atom,he.bool,he.special(he.variableName)],color:"var(--accent6)"},{tag:[he.keyword,he.operator,he.tagName],color:"var(--accent2)"},{tag:[he.function(he.propertyName),he.propertyName],color:"var(--accent5)"},{tag:[he.definition(he.variableName),he.function(he.variableName),he.className,he.attributeName],color:"var(--accent3)"},{tag:[he.variableName,he.number],color:"var(--accent5)"},{tag:[he.name,he.quote],color:"var(--accent1)"},{tag:he.heading,color:"var(--accent3)",fontWeight:"bold"},{tag:[he.heading1,he.heading2,he.heading3,he.heading4,he.heading5,he.heading6],color:"var(--accent3)",fontWeight:"bold"},{tag:[he.emphasis],fontStyle:"italic",color:"var(--foreground)"},{tag:[he.strong],fontWeight:"bold",color:"var(--foreground)"},{tag:he.link,color:"var(--accent3)",textDecoration:"underline"},{tag:he.url,color:"var(--accent3)"},{tag:he.monospace,color:"var(--foreground)"},{tag:he.strikethrough,textDecoration:"line-through"},{tag:[he.deleted],color:"var(--accent2)"},{tag:he.invalid,color:"var(--error)"},{tag:[he.standard(he.tagName)],color:"var(--accent1)"}]);return[e,LA(t)]}const Y3=()=>{const e=T3().resolvedTheme==="dark";return g.useMemo(()=>e?air():lir(),[e])},cir=sd(Z("relative overflow-hidden font-mono outline-hidden focus-within:outline-hidden focus:outline-hidden","transition-colors duration-normal ease-out-custom"),{variants:{variant:{default:Z(XZ,"rounded-md p-1",Fwt),embedded:"rounded-none border-none bg-transparent p-0"}},defaultVariants:{variant:"default"}}),uir=fp.highest(zt.editorAttributes.of({style:"outline: none"})),dir=fp.highest(zt.theme({"&":{outline:"none"},"&.cm-focused":{outline:"none"},".cm-scroller":{outline:"none"},".cm-content":{outline:"none"},".cm-content:focus":{outline:"none"}})),fir=[uir,dir],Or=g.forwardRef(({data:e,value:t,onChange:n,showCopyButton:r=!0,className:s,language:o="json",highlightVariables:i=!1,placeholder:l,schema:c,autoFocus:u,lineNumbers:d=!0,lineWrapping:f=!0,editable:h,variant:p,id:m,"aria-label":y="Code editor","aria-describedby":v,"aria-invalid":b,...x},w)=>{const k=Y3(),C=e?JSON.stringify(e,null,2):t??"",_=g.useMemo(()=>{const T={"aria-label":y};m&&(T.id=m),v&&(T["aria-describedby"]=v),b!==void 0&&(T["aria-invalid"]=String(b));const E=[...fir,zt.contentAttributes.of(T)];return f&&E.push(zt.lineWrapping),o==="json"?E.push(Bx):o==="markdown"&&E.push(Ojt({base:oI,codeLanguages:Jor})),i&&o==="markdown"&&E.push(iir),c&&o==="markdown"&&E.push(tir(c)),h===!1&&E.push(xs.readOnly.of(!0)),E},[o,i,c,h,f,m,y,v,b]);return a.jsxs("div",{className:Z(cir({variant:p}),s),...x,children:[r&&a.jsx(Co,{content:C,className:"absolute top-2 right-2 z-20"}),a.jsx(f1,{ref:w,value:C,theme:k,extensions:_,onChange:n,editable:h,"aria-label":y,placeholder:l,height:"100%",style:{height:"100%"},autoFocus:u,basicSetup:{lineNumbers:d}})]})}),bNt={js:"javascript",javascript:"javascript",mjs:"javascript",cjs:"javascript",node:"javascript",ts:"typescript",typescript:"typescript",mts:"typescript",cts:"typescript",tsx:"tsx",jsx:"jsx",json:"json",json5:"json",md:"markdown",markdown:"markdown",py:"python",python:"python",sh:"bash",bash:"bash",shell:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",diff:"diff",patch:"diff",css:"css",scss:"css",html:"html",htm:"html",xml:"xml",svg:"xml",sql:"sql"};let Sse=null;function hir(){return Sse||(Sse=(async()=>{const[{createHighlighterCore:e},{createJavaScriptRegexEngine:t}]=await Promise.all([Uo(()=>import("./core-DYXS4GHk.js"),__vite__mapDeps([0,1,2]),import.meta.url),Uo(()=>import("./engine-javascript-CSIo_1eZ.js"),__vite__mapDeps([3,1]),import.meta.url)]);return e({themes:[Uo(()=>import("./github-light-DAi9KRSo.js"),[],import.meta.url),Uo(()=>import("./github-dark-DHJKELXO.js"),[],import.meta.url)],langs:[Uo(()=>import("./javascript-ySlJ1b_l.js"),[],import.meta.url),Uo(()=>import("./typescript-Dj6nwHGl.js"),[],import.meta.url),Uo(()=>import("./tsx-B6W0miNI.js"),[],import.meta.url),Uo(()=>import("./jsx-BAng5TT0.js"),[],import.meta.url),Uo(()=>import("./json-BQoSv7ci.js"),[],import.meta.url),Uo(()=>import("./bash-atvbtKCR.js"),[],import.meta.url),Uo(()=>import("./markdown-UIAJJxZW.js"),[],import.meta.url),Uo(()=>import("./python-DhUJRlN_.js"),[],import.meta.url),Uo(()=>import("./yaml-CVw76BM1.js"),[],import.meta.url),Uo(()=>import("./diff-BgYniUM_.js"),[],import.meta.url),Uo(()=>import("./css-BPhBrDlE.js"),[],import.meta.url),Uo(()=>import("./html-C2L_23MC.js"),__vite__mapDeps([4,5,6]),import.meta.url),Uo(()=>import("./xml-DGRTSKzu.js"),[],import.meta.url),Uo(()=>import("./sql-COK4E0Yg.js"),[],import.meta.url)],engine:t()})})()),Sse}async function pir(e,t){const n=bNt[t?.toLowerCase()];if(!n)return null;const r=await hir(),{tokens:s}=r.codeToTokens(e,{lang:n,defaultColor:!1,themes:{light:"github-light",dark:"github-dark"}});return s}function mir(e){const t=e?.split(".").pop()?.toLowerCase();return t?bNt[t]:void 0}const gir=e=>{try{return JSON.stringify(e??{},null,2)}catch{return"{}"}},vir=({editorClassName:e="h-[240px] max-h-[40vh]",onSaved:t})=>{const n=Y3(),{settings:r,setSettings:s}=LG(),o=r?.tracingOptions,i=g.useMemo(()=>gir(o),[o]),[l,c]=g.useState(()=>i),u=g.useRef(!1);g.useEffect(()=>{u.current||c(i)},[i]);const d=h=>{u.current=!0,c(h)},f=()=>{if(!l){s({...r,tracingOptions:void 0}),t?.();return}try{const h=JSON.parse(l);typeof h=="object"&&h!==null&&s({...r,tracingOptions:h})}catch{return}t?.()};return a.jsxs("div",{className:"space-y-2 px-5 py-2",children:[a.jsx(Ae,{as:"h3",variant:"body",tone:"muted",children:"Tracing Options"}),a.jsx(f1,{value:l,onChange:d,theme:n,extensions:[Bx],className:Z("overflow-hidden overflow-y-scroll rounded-lg bg-card p-3",e)}),a.jsx("div",{className:"flex items-center justify-end",children:a.jsx(le,{icon:a.jsx(Hn,{}),type:"button",onClick:f,children:"Save"})})]})},yir=({resourceId:e,onResourceIdChange:t})=>{const[n,r]=g.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx(le,{type:"button",variant:"ghost",size:"icon-md","aria-label":"Run Options",onClick:()=>r(!0),children:a.jsx(Et,{children:a.jsx(cCe,{})})})}),a.jsx(Cn,{children:"Run Options"})]}),a.jsx(gs,{open:n,onOpenChange:r,children:a.jsxs(ss,{children:[a.jsxs(os,{children:[a.jsx(es,{children:"Run Options"}),a.jsx(Fs,{children:"Configure resource attribution, tracing and debug options for this workflow run"})]}),a.jsxs(ws,{children:[a.jsx("div",{className:"px-5 py-2",children:a.jsx(Wi,{name:"workflow-run-resource-id",label:"Resource ID",value:e,onChange:s=>t(s.target.value),placeholder:"e.g. tenant-42",helpText:"Ignored when server auth derives the resource ID from the user."})}),a.jsx(vir,{onSaved:()=>r(!1)})]})]})})]})};function Hl(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Hl(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var bir={value:()=>{}};function lQ(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new t7(n)}function t7(e){this._=e}function xir(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}t7.prototype=lQ.prototype={constructor:t7,on:function(e,t){var n=this._,r=xir(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=wir(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=Oqe(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Oqe(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new t7(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function wir(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Oqe(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=bir,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Vbe="http://www.w3.org/1999/xhtml";const Cqe={svg:"http://www.w3.org/2000/svg",xhtml:Vbe,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function cQ(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Cqe.hasOwnProperty(t)?{space:Cqe[t],local:e}:e}function Sir(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Vbe&&t.documentElement.namespaceURI===Vbe?t.createElement(e):t.createElementNS(n,e)}}function kir(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function xNt(e){var t=cQ(e);return(t.local?kir:Sir)(t)}function Oir(){}function tTe(e){return e==null?Oir:function(){return this.querySelector(e)}}function Cir(e){typeof e!="function"&&(e=tTe(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=new Array(i),c,u,d=0;d<i;++d)(c=o[d])&&(u=e.call(c,c.__data__,d,o))&&("__data__"in c&&(u.__data__=c.__data__),l[d]=u);return new tp(r,this._parents)}function _ir(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Eir(){return[]}function wNt(e){return e==null?Eir:function(){return this.querySelectorAll(e)}}function Tir(e){return function(){return _ir(e.apply(this,arguments))}}function jir(e){typeof e=="function"?e=Tir(e):e=wNt(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],l=i.length,c,u=0;u<l;++u)(c=i[u])&&(r.push(e.call(c,c.__data__,u,i)),s.push(c));return new tp(r,s)}function SNt(e){return function(){return this.matches(e)}}function kNt(e){return function(t){return t.matches(e)}}var Nir=Array.prototype.find;function Iir(e){return function(){return Nir.call(this.children,e)}}function Air(){return this.firstElementChild}function Rir(e){return this.select(e==null?Air:Iir(typeof e=="function"?e:kNt(e)))}var Pir=Array.prototype.filter;function $ir(){return Array.from(this.children)}function Mir(e){return function(){return Pir.call(this.children,e)}}function Dir(e){return this.selectAll(e==null?$ir:Mir(typeof e=="function"?e:kNt(e)))}function Lir(e){typeof e!="function"&&(e=SNt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=[],c,u=0;u<i;++u)(c=o[u])&&e.call(c,c.__data__,u,o)&&l.push(c);return new tp(r,this._parents)}function ONt(e){return new Array(e.length)}function Fir(){return new tp(this._enter||this._groups.map(ONt),this._parents)}function xq(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}xq.prototype={constructor:xq,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function zir(e){return function(){return e}}function Bir(e,t,n,r,s,o){for(var i=0,l,c=t.length,u=o.length;i<u;++i)(l=t[i])?(l.__data__=o[i],r[i]=l):n[i]=new xq(e,o[i]);for(;i<c;++i)(l=t[i])&&(s[i]=l)}function Uir(e,t,n,r,s,o,i){var l,c,u=new Map,d=t.length,f=o.length,h=new Array(d),p;for(l=0;l<d;++l)(c=t[l])&&(h[l]=p=i.call(c,c.__data__,l,t)+"",u.has(p)?s[l]=c:u.set(p,c));for(l=0;l<f;++l)p=i.call(e,o[l],l,o)+"",(c=u.get(p))?(r[l]=c,c.__data__=o[l],u.delete(p)):n[l]=new xq(e,o[l]);for(l=0;l<d;++l)(c=t[l])&&u.get(h[l])===c&&(s[l]=c)}function Vir(e){return e.__data__}function qir(e,t){if(!arguments.length)return Array.from(this,Vir);var n=t?Uir:Bir,r=this._parents,s=this._groups;typeof e!="function"&&(e=zir(e));for(var o=s.length,i=new Array(o),l=new Array(o),c=new Array(o),u=0;u<o;++u){var d=r[u],f=s[u],h=f.length,p=Hir(e.call(d,d&&d.__data__,u,r)),m=p.length,y=l[u]=new Array(m),v=i[u]=new Array(m),b=c[u]=new Array(h);n(d,f,y,v,b,p,t);for(var x=0,w=0,k,C;x<m;++x)if(k=y[x]){for(x>=w&&(w=x+1);!(C=v[w])&&++w<m;);k._next=C||null}}return i=new tp(i,r),i._enter=l,i._exit=c,i}function Hir(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Wir(){return new tp(this._exit||this._groups.map(ONt),this._parents)}function Zir(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function Gir(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),l=new Array(s),c=0;c<i;++c)for(var u=n[c],d=r[c],f=u.length,h=l[c]=new Array(f),p,m=0;m<f;++m)(p=u[m]||d[m])&&(h[m]=p);for(;c<s;++c)l[c]=n[c];return new tp(l,this._parents)}function Qir(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Yir(e){e||(e=Kir);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],l=i.length,c=s[o]=new Array(l),u,d=0;d<l;++d)(u=i[d])&&(c[d]=u);c.sort(t)}return new tp(s,this._parents).order()}function Kir(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Xir(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Jir(){return Array.from(this)}function ear(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function tar(){let e=0;for(const t of this)++e;return e}function nar(){return!this.node()}function rar(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,l;o<i;++o)(l=s[o])&&e.call(l,l.__data__,o,s);return this}function sar(e){return function(){this.removeAttribute(e)}}function oar(e){return function(){this.removeAttributeNS(e.space,e.local)}}function iar(e,t){return function(){this.setAttribute(e,t)}}function aar(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function lar(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function car(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function uar(e,t){var n=cQ(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?oar:sar:typeof t=="function"?n.local?car:lar:n.local?aar:iar)(n,t))}function CNt(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function dar(e){return function(){this.style.removeProperty(e)}}function far(e,t,n){return function(){this.style.setProperty(e,t,n)}}function har(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function par(e,t,n){return arguments.length>1?this.each((t==null?dar:typeof t=="function"?har:far)(e,t,n??"")):lI(this.node(),e)}function lI(e,t){return e.style.getPropertyValue(t)||CNt(e).getComputedStyle(e,null).getPropertyValue(t)}function mar(e){return function(){delete this[e]}}function gar(e,t){return function(){this[e]=t}}function yar(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function bar(e,t){return arguments.length>1?this.each((t==null?mar:typeof t=="function"?yar:gar)(e,t)):this.node()[e]}function _Nt(e){return e.trim().split(/^|\s+/)}function nTe(e){return e.classList||new ENt(e)}function ENt(e){this._node=e,this._names=_Nt(e.getAttribute("class")||"")}ENt.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function TNt(e,t){for(var n=nTe(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function jNt(e,t){for(var n=nTe(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function xar(e){return function(){TNt(this,e)}}function war(e){return function(){jNt(this,e)}}function Sar(e,t){return function(){(t.apply(this,arguments)?TNt:jNt)(this,e)}}function kar(e,t){var n=_Nt(e+"");if(arguments.length<2){for(var r=nTe(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Sar:t?xar:war)(n,t))}function Oar(){this.textContent=""}function Car(e){return function(){this.textContent=e}}function _ar(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ear(e){return arguments.length?this.each(e==null?Oar:(typeof e=="function"?_ar:Car)(e)):this.node().textContent}function Tar(){this.innerHTML=""}function jar(e){return function(){this.innerHTML=e}}function Nar(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Iar(e){return arguments.length?this.each(e==null?Tar:(typeof e=="function"?Nar:jar)(e)):this.node().innerHTML}function Aar(){this.nextSibling&&this.parentNode.appendChild(this)}function Rar(){return this.each(Aar)}function Par(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $ar(){return this.each(Par)}function Mar(e){var t=typeof e=="function"?e:xNt(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Dar(){return null}function Lar(e,t){var n=typeof e=="function"?e:xNt(e),r=t==null?Dar:typeof t=="function"?t:tTe(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Far(){var e=this.parentNode;e&&e.removeChild(this)}function zar(){return this.each(Far)}function Bar(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Uar(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Var(e){return this.select(e?Uar:Bar)}function qar(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Har(e){return function(t){e.call(this,t,this.__data__)}}function War(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Zar(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function Gar(e,t,n){return function(){var r=this.__on,s,o=Har(t);if(r){for(var i=0,l=r.length;i<l;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function Qar(e,t,n){var r=War(e+""),s,o=r.length,i;if(arguments.length<2){var l=this.node().__on;if(l){for(var c=0,u=l.length,d;c<u;++c)for(s=0,d=l[c];s<o;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(l=t?Gar:Zar,s=0;s<o;++s)this.each(l(r[s],t,n));return this}function NNt(e,t,n){var r=CNt(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function Yar(e,t){return function(){return NNt(this,e,t)}}function Kar(e,t){return function(){return NNt(this,e,t.apply(this,arguments))}}function Xar(e,t){return this.each((typeof t=="function"?Kar:Yar)(e,t))}function*Jar(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var INt=[null];function tp(e,t){this._groups=e,this._parents=t}function K3(){return new tp([[document.documentElement]],INt)}function elr(){return this}tp.prototype=K3.prototype={constructor:tp,select:Cir,selectAll:jir,selectChild:Rir,selectChildren:Dir,filter:Lir,data:qir,enter:Fir,exit:Wir,join:Zir,merge:Gir,selection:elr,order:Qir,sort:Yir,call:Xir,nodes:Jir,node:ear,size:tar,empty:nar,each:rar,attr:uar,style:par,property:bar,classed:kar,text:Ear,html:Iar,raise:Rar,lower:$ar,append:Mar,insert:Lar,remove:zar,clone:Var,datum:qar,on:Qar,dispatch:Xar,[Symbol.iterator]:Jar};function Ih(e){return typeof e=="string"?new tp([[document.querySelector(e)]],[document.documentElement]):new tp([[e]],INt)}function tlr(e){let t;for(;t=e.sourceEvent;)e=t;return e}function jg(e,t){if(e=tlr(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const nlr={passive:!1},CL={capture:!0,passive:!1};function kse(e){e.stopImmediatePropagation()}function tN(e){e.preventDefault(),e.stopImmediatePropagation()}function ANt(e){var t=e.document.documentElement,n=Ih(e).on("dragstart.drag",tN,CL);"onselectstart"in t?n.on("selectstart.drag",tN,CL):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function RNt(e,t){var n=e.document.documentElement,r=Ih(e).on("dragstart.drag",null);t&&(r.on("click.drag",tN,CL),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const b9=e=>()=>e;function qbe(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:l,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}qbe.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function rlr(e){return!e.ctrlKey&&!e.button}function slr(){return this.parentNode}function olr(e,t){return t??{x:e.x,y:e.y}}function ilr(){return navigator.maxTouchPoints||"ontouchstart"in this}function PNt(){var e=rlr,t=slr,n=olr,r=ilr,s={},o=lQ("start","drag","end"),i=0,l,c,u,d,f=0;function h(k){k.on("mousedown.drag",p).filter(r).on("touchstart.drag",v).on("touchmove.drag",b,nlr).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(k,C){if(!(d||!e.call(this,k,C))){var _=w(this,t.call(this,k,C),k,C,"mouse");_&&(Ih(k.view).on("mousemove.drag",m,CL).on("mouseup.drag",y,CL),ANt(k.view),kse(k),u=!1,l=k.clientX,c=k.clientY,_("start",k))}}function m(k){if(tN(k),!u){var C=k.clientX-l,_=k.clientY-c;u=C*C+_*_>f}s.mouse("drag",k)}function y(k){Ih(k.view).on("mousemove.drag mouseup.drag",null),RNt(k.view,u),tN(k),s.mouse("end",k)}function v(k,C){if(e.call(this,k,C)){var _=k.changedTouches,T=t.call(this,k,C),E=_.length,I,N;for(I=0;I<E;++I)(N=w(this,T,k,C,_[I].identifier,_[I]))&&(kse(k),N("start",k,_[I]))}}function b(k){var C=k.changedTouches,_=C.length,T,E;for(T=0;T<_;++T)(E=s[C[T].identifier])&&(tN(k),E("drag",k,C[T]))}function x(k){var C=k.changedTouches,_=C.length,T,E;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),T=0;T<_;++T)(E=s[C[T].identifier])&&(kse(k),E("end",k,C[T]))}function w(k,C,_,T,E,I){var N=o.copy(),A=jg(I||_,C),P,F,L;if((L=n.call(k,new qbe("beforestart",{sourceEvent:_,target:h,identifier:E,active:i,x:A[0],y:A[1],dx:0,dy:0,dispatch:N}),T))!=null)return P=L.x-A[0]||0,F=L.y-A[1]||0,function q(V,H,B){var W=A,z;switch(V){case"start":s[E]=q,z=i++;break;case"end":delete s[E],--i;case"drag":A=jg(B||H,C),z=i;break}N.call(V,k,new qbe(V,{sourceEvent:H,subject:L,target:h,identifier:E,active:z,x:A[0]+P,y:A[1]+F,dx:A[0]-W[0],dy:A[1]-W[1],dispatch:N}),T)}}return h.filter=function(k){return arguments.length?(e=typeof k=="function"?k:b9(!!k),h):e},h.container=function(k){return arguments.length?(t=typeof k=="function"?k:b9(k),h):t},h.subject=function(k){return arguments.length?(n=typeof k=="function"?k:b9(k),h):n},h.touchable=function(k){return arguments.length?(r=typeof k=="function"?k:b9(!!k),h):r},h.on=function(){var k=o.on.apply(o,arguments);return k===o?h:k},h.clickDistance=function(k){return arguments.length?(f=(k=+k)*k,h):Math.sqrt(f)},h}function rTe(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function $Nt(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function X3(){}var _L=.7,wq=1/_L,nN="\\s*([+-]?\\d+)\\s*",EL="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ay="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",alr=/^#([0-9a-f]{3,8})$/,llr=new RegExp(`^rgb\\(${nN},${nN},${nN}\\)$`),clr=new RegExp(`^rgb\\(${Ay},${Ay},${Ay}\\)$`),ulr=new RegExp(`^rgba\\(${nN},${nN},${nN},${EL}\\)$`),dlr=new RegExp(`^rgba\\(${Ay},${Ay},${Ay},${EL}\\)$`),flr=new RegExp(`^hsl\\(${EL},${Ay},${Ay}\\)$`),hlr=new RegExp(`^hsla\\(${EL},${Ay},${Ay},${EL}\\)$`),_qe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};rTe(X3,XC,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Eqe,formatHex:Eqe,formatHex8:plr,formatHsl:mlr,formatRgb:Tqe,toString:Tqe});function Eqe(){return this.rgb().formatHex()}function plr(){return this.rgb().formatHex8()}function mlr(){return MNt(this).formatHsl()}function Tqe(){return this.rgb().formatRgb()}function XC(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=alr.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?jqe(t):n===3?new Pf(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?x9(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?x9(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=llr.exec(e))?new Pf(t[1],t[2],t[3],1):(t=clr.exec(e))?new Pf(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ulr.exec(e))?x9(t[1],t[2],t[3],t[4]):(t=dlr.exec(e))?x9(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=flr.exec(e))?Aqe(t[1],t[2]/100,t[3]/100,1):(t=hlr.exec(e))?Aqe(t[1],t[2]/100,t[3]/100,t[4]):_qe.hasOwnProperty(e)?jqe(_qe[e]):e==="transparent"?new Pf(NaN,NaN,NaN,0):null}function jqe(e){return new Pf(e>>16&255,e>>8&255,e&255,1)}function x9(e,t,n,r){return r<=0&&(e=t=n=NaN),new Pf(e,t,n,r)}function glr(e){return e instanceof X3||(e=XC(e)),e?(e=e.rgb(),new Pf(e.r,e.g,e.b,e.opacity)):new Pf}function Hbe(e,t,n,r){return arguments.length===1?glr(e):new Pf(e,t,n,r??1)}function Pf(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}rTe(Pf,Hbe,$Nt(X3,{brighter(e){return e=e==null?wq:Math.pow(wq,e),new Pf(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?_L:Math.pow(_L,e),new Pf(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pf(rC(this.r),rC(this.g),rC(this.b),Sq(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Nqe,formatHex:Nqe,formatHex8:vlr,formatRgb:Iqe,toString:Iqe}));function Nqe(){return`#${$O(this.r)}${$O(this.g)}${$O(this.b)}`}function vlr(){return`#${$O(this.r)}${$O(this.g)}${$O(this.b)}${$O((isNaN(this.opacity)?1:this.opacity)*255)}`}function Iqe(){const e=Sq(this.opacity);return`${e===1?"rgb(":"rgba("}${rC(this.r)}, ${rC(this.g)}, ${rC(this.b)}${e===1?")":`, ${e})`}`}function Sq(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rC(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function $O(e){return e=rC(e),(e<16?"0":"")+e.toString(16)}function Aqe(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $g(e,t,n,r)}function MNt(e){if(e instanceof $g)return new $g(e.h,e.s,e.l,e.opacity);if(e instanceof X3||(e=XC(e)),!e)return new $g;if(e instanceof $g)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,l=o-s,c=(o+s)/2;return l?(t===o?i=(n-r)/l+(n<r)*6:n===o?i=(r-t)/l+2:i=(t-n)/l+4,l/=c<.5?o+s:2-o-s,i*=60):l=c>0&&c<1?0:i,new $g(i,l,c,e.opacity)}function ylr(e,t,n,r){return arguments.length===1?MNt(e):new $g(e,t,n,r??1)}function $g(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}rTe($g,ylr,$Nt(X3,{brighter(e){return e=e==null?wq:Math.pow(wq,e),new $g(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?_L:Math.pow(_L,e),new $g(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new Pf(Ose(e>=240?e-240:e+120,s,r),Ose(e,s,r),Ose(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new $g(Rqe(this.h),w9(this.s),w9(this.l),Sq(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Sq(this.opacity);return`${e===1?"hsl(":"hsla("}${Rqe(this.h)}, ${w9(this.s)*100}%, ${w9(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Rqe(e){return e=(e||0)%360,e<0?e+360:e}function w9(e){return Math.max(0,Math.min(1,e||0))}function Ose(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const sTe=e=>()=>e;function blr(e,t){return function(n){return e+n*t}}function xlr(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function wlr(e){return(e=+e)==1?DNt:function(t,n){return n-t?xlr(t,n,e):sTe(isNaN(t)?n:t)}}function DNt(e,t){var n=t-e;return n?blr(e,n):sTe(isNaN(e)?t:e)}const kq=(function e(t){var n=wlr(t);function r(s,o){var i=n((s=Hbe(s)).r,(o=Hbe(o)).r),l=n(s.g,o.g),c=n(s.b,o.b),u=DNt(s.opacity,o.opacity);return function(d){return s.r=i(d),s.g=l(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r})(1);function Slr(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function klr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Olr(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=Ux(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(l){for(i=0;i<r;++i)o[i]=s[i](l);return o}}function Clr(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ig(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function _lr(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=Ux(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var Wbe=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Cse=new RegExp(Wbe.source,"g");function Elr(e){return function(){return e}}function Tlr(e){return function(t){return e(t)+""}}function LNt(e,t){var n=Wbe.lastIndex=Cse.lastIndex=0,r,s,o,i=-1,l=[],c=[];for(e=e+"",t=t+"";(r=Wbe.exec(e))&&(s=Cse.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),l[i]?l[i]+=o:l[++i]=o),(r=r[0])===(s=s[0])?l[i]?l[i]+=s:l[++i]=s:(l[++i]=null,c.push({i,x:Ig(r,s)})),n=Cse.lastIndex;return n<t.length&&(o=t.slice(n),l[i]?l[i]+=o:l[++i]=o),l.length<2?c[0]?Tlr(c[0].x):Elr(t):(t=c.length,function(u){for(var d=0,f;d<t;++d)l[(f=c[d]).i]=f.x(u);return l.join("")})}function Ux(e,t){var n=typeof t,r;return t==null||n==="boolean"?sTe(t):(n==="number"?Ig:n==="string"?(r=XC(t))?(t=r,kq):LNt:t instanceof XC?kq:t instanceof Date?Clr:klr(t)?Slr:Array.isArray(t)?Olr:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?_lr:Ig)(e,t)}function oTe(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}var Pqe=180/Math.PI,Zbe={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function FNt(e,t,n,r,s,o){var i,l,c;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,c/=l),e*r<t*n&&(e=-e,t=-t,c=-c,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Pqe,skewX:Math.atan(c)*Pqe,scaleX:i,scaleY:l}}var S9;function jlr(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Zbe:FNt(t.a,t.b,t.c,t.d,t.e,t.f)}function Nlr(e){return e==null||(S9||(S9=document.createElementNS("http://www.w3.org/2000/svg","g")),S9.setAttribute("transform",e),!(e=S9.transform.baseVal.consolidate()))?Zbe:(e=e.matrix,FNt(e.a,e.b,e.c,e.d,e.e,e.f))}function zNt(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function o(u,d,f,h,p,m){if(u!==f||d!==h){var y=p.push("translate(",null,t,null,n);m.push({i:y-4,x:Ig(u,f)},{i:y-2,x:Ig(d,h)})}else(f||h)&&p.push("translate("+f+t+h+n)}function i(u,d,f,h){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),h.push({i:f.push(s(f)+"rotate(",null,r)-2,x:Ig(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function l(u,d,f,h){u!==d?h.push({i:f.push(s(f)+"skewX(",null,r)-2,x:Ig(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function c(u,d,f,h,p,m){if(u!==f||d!==h){var y=p.push(s(p)+"scale(",null,",",null,")");m.push({i:y-4,x:Ig(u,f)},{i:y-2,x:Ig(d,h)})}else(f!==1||h!==1)&&p.push(s(p)+"scale("+f+","+h+")")}return function(u,d){var f=[],h=[];return u=e(u),d=e(d),o(u.translateX,u.translateY,d.translateX,d.translateY,f,h),i(u.rotate,d.rotate,f,h),l(u.skewX,d.skewX,f,h),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,h),u=d=null,function(p){for(var m=-1,y=h.length,v;++m<y;)f[(v=h[m]).i]=v.x(p);return f.join("")}}}var Ilr=zNt(jlr,"px, ","px)","deg)"),Alr=zNt(Nlr,", ",")",")"),Rlr=1e-12;function $qe(e){return((e=Math.exp(e))+1/e)/2}function Plr(e){return((e=Math.exp(e))-1/e)/2}function $lr(e){return((e=Math.exp(2*e))-1)/(e+1)}const n7=(function e(t,n,r){function s(o,i){var l=o[0],c=o[1],u=o[2],d=i[0],f=i[1],h=i[2],p=d-l,m=f-c,y=p*p+m*m,v,b;if(y<Rlr)b=Math.log(h/u)/t,v=function(T){return[l+T*p,c+T*m,u*Math.exp(t*T*b)]};else{var x=Math.sqrt(y),w=(h*h-u*u+r*y)/(2*u*n*x),k=(h*h-u*u-r*y)/(2*h*n*x),C=Math.log(Math.sqrt(w*w+1)-w),_=Math.log(Math.sqrt(k*k+1)-k);b=(_-C)/t,v=function(T){var E=T*b,I=$qe(C),N=u/(n*x)*(I*$lr(t*E+C)-Plr(C));return[l+N*p,c+N*m,u*I/$qe(t*E+C)]}}return v.duration=b*1e3*t/Math.SQRT2,v}return s.rho=function(o){var i=Math.max(.001,+o),l=i*i,c=l*l;return e(i,l,c)},s})(Math.SQRT2,2,4);function Mlr(e,t){t===void 0&&(t=e,e=Ux);for(var n=0,r=t.length-1,s=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(s,s=t[++n]);return function(i){var l=Math.max(0,Math.min(r-1,Math.floor(i*=r)));return o[l](i-l)}}var cI=0,IM=0,t$=0,BNt=1e3,Oq,AM,Cq=0,JC=0,uQ=0,TL=typeof performance=="object"&&performance.now?performance:Date,UNt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function iTe(){return JC||(UNt(Dlr),JC=TL.now()+uQ)}function Dlr(){JC=0}function _q(){this._call=this._time=this._next=null}_q.prototype=VNt.prototype={constructor:_q,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?iTe():+n)+(t==null?0:+t),!this._next&&AM!==this&&(AM?AM._next=this:Oq=this,AM=this),this._call=e,this._time=n,Gbe()},stop:function(){this._call&&(this._call=null,this._time=1/0,Gbe())}};function VNt(e,t,n){var r=new _q;return r.restart(e,t,n),r}function Llr(){iTe(),++cI;for(var e=Oq,t;e;)(t=JC-e._time)>=0&&e._call.call(void 0,t),e=e._next;--cI}function Mqe(){JC=(Cq=TL.now())+uQ,cI=IM=0;try{Llr()}finally{cI=0,zlr(),JC=0}}function Flr(){var e=TL.now(),t=e-Cq;t>BNt&&(uQ-=t,Cq=e)}function zlr(){for(var e,t=Oq,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Oq=n);AM=e,Gbe(r)}function Gbe(e){if(!cI){IM&&(IM=clearTimeout(IM));var t=e-JC;t>24?(e<1/0&&(IM=setTimeout(Mqe,e-TL.now()-uQ)),t$&&(t$=clearInterval(t$))):(t$||(Cq=TL.now(),t$=setInterval(Flr,BNt)),cI=1,UNt(Mqe))}}function Dqe(e,t,n){var r=new _q;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var Blr=lQ("start","end","cancel","interrupt"),Ulr=[],qNt=0,Lqe=1,Qbe=2,r7=3,Fqe=4,Ybe=5,s7=6;function dQ(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;Vlr(e,n,{name:t,index:r,group:s,on:Blr,tween:Ulr,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:qNt})}function aTe(e,t){var n=vv(e,t);if(n.state>qNt)throw new Error("too late; already scheduled");return n}function mb(e,t){var n=vv(e,t);if(n.state>r7)throw new Error("too late; already running");return n}function vv(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Vlr(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=VNt(o,0,n.time);function o(u){n.state=Lqe,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,f,h,p;if(n.state!==Lqe)return c();for(d in r)if(p=r[d],p.name===n.name){if(p.state===r7)return Dqe(i);p.state===Fqe?(p.state=s7,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+d<t&&(p.state=s7,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[d])}if(Dqe(function(){n.state===r7&&(n.state=Fqe,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Qbe,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Qbe){for(n.state=r7,s=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(p=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function l(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=Ybe,1),f=-1,h=s.length;++f<h;)s[f].call(e,d);n.state===Ybe&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=s7,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function o7(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>Qbe&&r.state<Ybe,r.state=s7,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function qlr(e){return this.each(function(){o7(this,e)})}function Hlr(e,t){var n,r;return function(){var s=mb(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,l=r.length;i<l;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function Wlr(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=mb(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var l={name:t,value:n},c=0,u=s.length;c<u;++c)if(s[c].name===t){s[c]=l;break}c===u&&s.push(l)}o.tween=s}}function Zlr(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=vv(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?Hlr:Wlr)(n,e,t))}function lTe(e,t,n){var r=e._id;return e.each(function(){var s=mb(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return vv(s,r).value[t]}}function HNt(e,t){var n;return(typeof t=="number"?Ig:t instanceof XC?kq:(n=XC(t))?(t=n,kq):LNt)(e,t)}function Glr(e){return function(){this.removeAttribute(e)}}function Qlr(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ylr(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function Klr(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function Xlr(e,t,n){var r,s,o;return function(){var i,l=n(this),c;return l==null?void this.removeAttribute(e):(i=this.getAttribute(e),c=l+"",i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l)))}}function Jlr(e,t,n){var r,s,o;return function(){var i,l=n(this),c;return l==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),c=l+"",i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l)))}}function ecr(e,t){var n=cQ(e),r=n==="transform"?Alr:HNt;return this.attrTween(e,typeof t=="function"?(n.local?Jlr:Xlr)(n,r,lTe(this,"attr."+e,t)):t==null?(n.local?Qlr:Glr)(n):(n.local?Klr:Ylr)(n,r,t))}function tcr(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function ncr(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function rcr(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&ncr(e,o)),n}return s._value=t,s}function scr(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&tcr(e,o)),n}return s._value=t,s}function ocr(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=cQ(e);return this.tween(n,(r.local?rcr:scr)(r,t))}function icr(e,t){return function(){aTe(this,e).delay=+t.apply(this,arguments)}}function acr(e,t){return t=+t,function(){aTe(this,e).delay=t}}function lcr(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?icr:acr)(t,e)):vv(this.node(),t).delay}function ccr(e,t){return function(){mb(this,e).duration=+t.apply(this,arguments)}}function ucr(e,t){return t=+t,function(){mb(this,e).duration=t}}function dcr(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ccr:ucr)(t,e)):vv(this.node(),t).duration}function fcr(e,t){if(typeof t!="function")throw new Error;return function(){mb(this,e).ease=t}}function hcr(e){var t=this._id;return arguments.length?this.each(fcr(t,e)):vv(this.node(),t).ease}function pcr(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;mb(this,e).ease=n}}function mcr(e){if(typeof e!="function")throw new Error;return this.each(pcr(this._id,e))}function gcr(e){typeof e!="function"&&(e=SNt(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,l=r[s]=[],c,u=0;u<i;++u)(c=o[u])&&e.call(c,c.__data__,u,o)&&l.push(c);return new a0(r,this._parents,this._name,this._id)}function vcr(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),l=0;l<o;++l)for(var c=t[l],u=n[l],d=c.length,f=i[l]=new Array(d),h,p=0;p<d;++p)(h=c[p]||u[p])&&(f[p]=h);for(;l<r;++l)i[l]=t[l];return new a0(i,this._parents,this._name,this._id)}function ycr(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function bcr(e,t,n){var r,s,o=ycr(t)?aTe:mb;return function(){var i=o(this,e),l=i.on;l!==r&&(s=(r=l).copy()).on(t,n),i.on=s}}function xcr(e,t){var n=this._id;return arguments.length<2?vv(this.node(),n).on.on(e):this.each(bcr(n,e,t))}function wcr(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Scr(){return this.on("end.remove",wcr(this._id))}function kcr(e){var t=this._name,n=this._id;typeof e!="function"&&(e=tTe(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var l=r[i],c=l.length,u=o[i]=new Array(c),d,f,h=0;h<c;++h)(d=l[h])&&(f=e.call(d,d.__data__,h,l))&&("__data__"in d&&(f.__data__=d.__data__),u[h]=f,dQ(u[h],t,n,h,u,vv(d,n)));return new a0(o,this._parents,t,n)}function Ocr(e){var t=this._name,n=this._id;typeof e!="function"&&(e=wNt(e));for(var r=this._groups,s=r.length,o=[],i=[],l=0;l<s;++l)for(var c=r[l],u=c.length,d,f=0;f<u;++f)if(d=c[f]){for(var h=e.call(d,d.__data__,f,c),p,m=vv(d,n),y=0,v=h.length;y<v;++y)(p=h[y])&&dQ(p,t,n,y,h,m);o.push(h),i.push(d)}return new a0(o,i,t,n)}var Ccr=K3.prototype.constructor;function _cr(){return new Ccr(this._groups,this._parents)}function Ecr(e,t){var n,r,s;return function(){var o=lI(this,e),i=(this.style.removeProperty(e),lI(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function WNt(e){return function(){this.style.removeProperty(e)}}function Tcr(e,t,n){var r,s=n+"",o;return function(){var i=lI(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function jcr(e,t,n){var r,s,o;return function(){var i=lI(this,e),l=n(this),c=l+"";return l==null&&(c=l=(this.style.removeProperty(e),lI(this,e))),i===c?null:i===r&&c===s?o:(s=c,o=t(r=i,l))}}function Ncr(e,t){var n,r,s,o="style."+t,i="end."+o,l;return function(){var c=mb(this,e),u=c.on,d=c.value[o]==null?l||(l=WNt(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),c.on=r}}function Icr(e,t,n){var r=(e+="")=="transform"?Ilr:HNt;return t==null?this.styleTween(e,Ecr(e,r)).on("end.style."+e,WNt(e)):typeof t=="function"?this.styleTween(e,jcr(e,r,lTe(this,"style."+e,t))).each(Ncr(this._id,e)):this.styleTween(e,Tcr(e,r,t),n).on("end.style."+e,null)}function Acr(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Rcr(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&Acr(e,i,n)),r}return o._value=t,o}function Pcr(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Rcr(e,t,n??""))}function $cr(e){return function(){this.textContent=e}}function Mcr(e){return function(){var t=e(this);this.textContent=t??""}}function Dcr(e){return this.tween("text",typeof e=="function"?Mcr(lTe(this,"text",e)):$cr(e==null?"":e+""))}function Lcr(e){return function(t){this.textContent=e.call(this,t)}}function Fcr(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&Lcr(s)),t}return r._value=e,r}function zcr(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Fcr(e))}function Bcr(){for(var e=this._name,t=this._id,n=ZNt(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],l=i.length,c,u=0;u<l;++u)if(c=i[u]){var d=vv(c,t);dQ(c,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new a0(r,this._parents,e,n)}function Ucr(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var l={value:i},c={value:function(){--s===0&&o()}};n.each(function(){var u=mb(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(c)),u.on=t}),s===0&&o()})}var Vcr=0;function a0(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function ZNt(){return++Vcr}var Hb=K3.prototype;a0.prototype={constructor:a0,select:kcr,selectAll:Ocr,selectChild:Hb.selectChild,selectChildren:Hb.selectChildren,filter:gcr,merge:vcr,selection:_cr,transition:Bcr,call:Hb.call,nodes:Hb.nodes,node:Hb.node,size:Hb.size,empty:Hb.empty,each:Hb.each,on:xcr,attr:ecr,attrTween:ocr,style:Icr,styleTween:Pcr,text:Dcr,textTween:zcr,remove:Scr,tween:Zlr,delay:lcr,duration:dcr,ease:hcr,easeVarying:mcr,end:Ucr,[Symbol.iterator]:Hb[Symbol.iterator]};function qcr(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Hcr={time:null,delay:0,duration:250,ease:qcr};function Wcr(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function Zcr(e){var t,n;e instanceof a0?(t=e._id,e=e._name):(t=ZNt(),(n=Hcr).time=iTe(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],l=i.length,c,u=0;u<l;++u)(c=i[u])&&dQ(c,e,t,u,i,n||Wcr(c,t));return new a0(r,this._parents,e,t)}K3.prototype.interrupt=qlr;K3.prototype.transition=Zcr;const k9=e=>()=>e;function Gcr(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function Ox(e,t,n){this.k=e,this.x=t,this.y=n}Ox.prototype={constructor:Ox,scale:function(e){return e===1?this:new Ox(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ox(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fQ=new Ox(1,0,0);GNt.prototype=Ox.prototype;function GNt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return fQ;return e.__zoom}function _se(e){e.stopImmediatePropagation()}function n$(e){e.preventDefault(),e.stopImmediatePropagation()}function Qcr(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Ycr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function zqe(){return this.__zoom||fQ}function Kcr(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Xcr(){return navigator.maxTouchPoints||"ontouchstart"in this}function Jcr(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function QNt(){var e=Qcr,t=Ycr,n=Jcr,r=Kcr,s=Xcr,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],l=250,c=n7,u=lQ("start","zoom","end"),d,f,h,p=500,m=150,y=0,v=10;function b(L){L.property("__zoom",zqe).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",I).on("dblclick.zoom",N).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",P).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(L,q,V,H){var B=L.selection?L.selection():L;B.property("__zoom",zqe),L!==B?C(L,q,V,H):B.interrupt().each(function(){_(this,arguments).event(H).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},b.scaleBy=function(L,q,V,H){b.scaleTo(L,function(){var B=this.__zoom.k,W=typeof q=="function"?q.apply(this,arguments):q;return B*W},V,H)},b.scaleTo=function(L,q,V,H){b.transform(L,function(){var B=t.apply(this,arguments),W=this.__zoom,z=V==null?k(B):typeof V=="function"?V.apply(this,arguments):V,Y=W.invert(z),D=typeof q=="function"?q.apply(this,arguments):q;return n(w(x(W,D),z,Y),B,i)},V,H)},b.translateBy=function(L,q,V,H){b.transform(L,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),i)},null,H)},b.translateTo=function(L,q,V,H,B){b.transform(L,function(){var W=t.apply(this,arguments),z=this.__zoom,Y=H==null?k(W):typeof H=="function"?H.apply(this,arguments):H;return n(fQ.translate(Y[0],Y[1]).scale(z.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof V=="function"?-V.apply(this,arguments):-V),W,i)},H,B)};function x(L,q){return q=Math.max(o[0],Math.min(o[1],q)),q===L.k?L:new Ox(q,L.x,L.y)}function w(L,q,V){var H=q[0]-V[0]*L.k,B=q[1]-V[1]*L.k;return H===L.x&&B===L.y?L:new Ox(L.k,H,B)}function k(L){return[(+L[0][0]+ +L[1][0])/2,(+L[0][1]+ +L[1][1])/2]}function C(L,q,V,H){L.on("start.zoom",function(){_(this,arguments).event(H).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(H).end()}).tween("zoom",function(){var B=this,W=arguments,z=_(B,W).event(H),Y=t.apply(B,W),D=V==null?k(Y):typeof V=="function"?V.apply(B,W):V,R=Math.max(Y[1][0]-Y[0][0],Y[1][1]-Y[0][1]),M=B.__zoom,U=typeof q=="function"?q.apply(B,W):q,Q=c(M.invert(D).concat(R/M.k),U.invert(D).concat(R/U.k));return function(ee){if(ee===1)ee=U;else{var X=Q(ee),te=R/X[2];ee=new Ox(te,D[0]-X[0]*te,D[1]-X[1]*te)}z.zoom(null,ee)}})}function _(L,q,V){return!V&&L.__zooming||new T(L,q)}function T(L,q){this.that=L,this.args=q,this.active=0,this.sourceEvent=null,this.extent=t.apply(L,q),this.taps=0}T.prototype={event:function(L){return L&&(this.sourceEvent=L),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(L,q){return this.mouse&&L!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&L!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&L!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(L){var q=Ih(this.that).datum();u.call(L,this.that,new Gcr(L,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),q)}};function E(L,...q){if(!e.apply(this,arguments))return;var V=_(this,q).event(L),H=this.__zoom,B=Math.max(o[0],Math.min(o[1],H.k*Math.pow(2,r.apply(this,arguments)))),W=jg(L);if(V.wheel)(V.mouse[0][0]!==W[0]||V.mouse[0][1]!==W[1])&&(V.mouse[1]=H.invert(V.mouse[0]=W)),clearTimeout(V.wheel);else{if(H.k===B)return;V.mouse=[W,H.invert(W)],o7(this),V.start()}n$(L),V.wheel=setTimeout(z,m),V.zoom("mouse",n(w(x(H,B),V.mouse[0],V.mouse[1]),V.extent,i));function z(){V.wheel=null,V.end()}}function I(L,...q){if(h||!e.apply(this,arguments))return;var V=L.currentTarget,H=_(this,q,!0).event(L),B=Ih(L.view).on("mousemove.zoom",D,!0).on("mouseup.zoom",R,!0),W=jg(L,V),z=L.clientX,Y=L.clientY;ANt(L.view),_se(L),H.mouse=[W,this.__zoom.invert(W)],o7(this),H.start();function D(M){if(n$(M),!H.moved){var U=M.clientX-z,Q=M.clientY-Y;H.moved=U*U+Q*Q>y}H.event(M).zoom("mouse",n(w(H.that.__zoom,H.mouse[0]=jg(M,V),H.mouse[1]),H.extent,i))}function R(M){B.on("mousemove.zoom mouseup.zoom",null),RNt(M.view,H.moved),n$(M),H.event(M).end()}}function N(L,...q){if(e.apply(this,arguments)){var V=this.__zoom,H=jg(L.changedTouches?L.changedTouches[0]:L,this),B=V.invert(H),W=V.k*(L.shiftKey?.5:2),z=n(w(x(V,W),H,B),t.apply(this,q),i);n$(L),l>0?Ih(this).transition().duration(l).call(C,z,H,L):Ih(this).call(b.transform,z,H,L)}}function A(L,...q){if(e.apply(this,arguments)){var V=L.touches,H=V.length,B=_(this,q,L.changedTouches.length===H).event(L),W,z,Y,D;for(_se(L),z=0;z<H;++z)Y=V[z],D=jg(Y,this),D=[D,this.__zoom.invert(D),Y.identifier],B.touch0?!B.touch1&&B.touch0[2]!==D[2]&&(B.touch1=D,B.taps=0):(B.touch0=D,W=!0,B.taps=1+!!d);d&&(d=clearTimeout(d)),W&&(B.taps<2&&(f=D[0],d=setTimeout(function(){d=null},p)),o7(this),B.start())}}function P(L,...q){if(this.__zooming){var V=_(this,q).event(L),H=L.changedTouches,B=H.length,W,z,Y,D;for(n$(L),W=0;W<B;++W)z=H[W],Y=jg(z,this),V.touch0&&V.touch0[2]===z.identifier?V.touch0[0]=Y:V.touch1&&V.touch1[2]===z.identifier&&(V.touch1[0]=Y);if(z=V.that.__zoom,V.touch1){var R=V.touch0[0],M=V.touch0[1],U=V.touch1[0],Q=V.touch1[1],ee=(ee=U[0]-R[0])*ee+(ee=U[1]-R[1])*ee,X=(X=Q[0]-M[0])*X+(X=Q[1]-M[1])*X;z=x(z,Math.sqrt(ee/X)),Y=[(R[0]+U[0])/2,(R[1]+U[1])/2],D=[(M[0]+Q[0])/2,(M[1]+Q[1])/2]}else if(V.touch0)Y=V.touch0[0],D=V.touch0[1];else return;V.zoom("touch",n(w(z,Y,D),V.extent,i))}}function F(L,...q){if(this.__zooming){var V=_(this,q).event(L),H=L.changedTouches,B=H.length,W,z;for(_se(L),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),W=0;W<B;++W)z=H[W],V.touch0&&V.touch0[2]===z.identifier?delete V.touch0:V.touch1&&V.touch1[2]===z.identifier&&delete V.touch1;if(V.touch1&&!V.touch0&&(V.touch0=V.touch1,delete V.touch1),V.touch0)V.touch0[1]=this.__zoom.invert(V.touch0[0]);else if(V.end(),V.taps===2&&(z=jg(z,this),Math.hypot(f[0]-z[0],f[1]-z[1])<v)){var Y=Ih(this).on("dblclick.zoom");Y&&Y.apply(this,arguments)}}}return b.wheelDelta=function(L){return arguments.length?(r=typeof L=="function"?L:k9(+L),b):r},b.filter=function(L){return arguments.length?(e=typeof L=="function"?L:k9(!!L),b):e},b.touchable=function(L){return arguments.length?(s=typeof L=="function"?L:k9(!!L),b):s},b.extent=function(L){return arguments.length?(t=typeof L=="function"?L:k9([[+L[0][0],+L[0][1]],[+L[1][0],+L[1][1]]]),b):t},b.scaleExtent=function(L){return arguments.length?(o[0]=+L[0],o[1]=+L[1],b):[o[0],o[1]]},b.translateExtent=function(L){return arguments.length?(i[0][0]=+L[0][0],i[1][0]=+L[1][0],i[0][1]=+L[0][1],i[1][1]=+L[1][1],b):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},b.constrain=function(L){return arguments.length?(n=L,b):n},b.duration=function(L){return arguments.length?(l=+L,b):l},b.interpolate=function(L){return arguments.length?(c=L,b):c},b.on=function(){var L=u.on.apply(u,arguments);return L===u?b:L},b.clickDistance=function(L){return arguments.length?(y=(L=+L)*L,b):Math.sqrt(y)},b.tapDistance=function(L){return arguments.length?(v=+L,b):v},b}const Xy={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},jL=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],YNt=["Enter"," ","Escape"],KNt={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var uI;(function(e){e.Strict="strict",e.Loose="loose"})(uI||(uI={}));var sC;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(sC||(sC={}));var NL;(function(e){e.Partial="partial",e.Full="full"})(NL||(NL={}));const XNt={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var oS;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(oS||(oS={}));var IL;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(IL||(IL={}));var ar;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ar||(ar={}));const Bqe={[ar.Left]:ar.Right,[ar.Right]:ar.Left,[ar.Top]:ar.Bottom,[ar.Bottom]:ar.Top};function JNt(e){return e===null?null:e?"valid":"invalid"}const eIt=e=>"id"in e&&"source"in e&&"target"in e,eur=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),cTe=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),J3=(e,t=[0,0])=>{const{width:n,height:r}=D0(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},tur=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const o=typeof s=="string";let i=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(i=o?t.nodeLookup.get(s):cTe(s)?s:t.nodeLookup.get(s.id));const l=i?Eq(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return hQ(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return pQ(n)},e5=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=hQ(n,Eq(s)),r=!0)}),r?pQ(n):{x:0,y:0,width:0,height:0}},uTe=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const l={...n5(t,[n,r,s]),width:t.width/s,height:t.height/s},c=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=u;if(i&&!f||h)continue;const p=d.width??u.width??u.initialWidth??null,m=d.height??u.height??u.initialHeight??null,y=AL(l,fI(u)),v=(p??0)*(m??0),b=o&&y>0;(!u.internals.handleBounds||b||y>=v||u.dragging)&&c.push(u)}return c},nur=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function rur(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&(t?.includeHiddenNodes||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function sur({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return Promise.resolve(!0);const l=rur(e,i),c=e5(l),u=dTe(c,t,n,i?.minZoom??s,i?.maxZoom??o,i?.padding??.1);return await r.setViewport(u,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),Promise.resolve(!0)}function tIt({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),l=i.parentId?n.get(i.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!l)o?.("005",Xy.error005());else{const p=l.measured.width,m=l.measured.height;p&&m&&(f=[[c,u],[c+p,u+m]])}else l&&hI(i.extent)&&(f=[[i.extent[0][0]+c,i.extent[0][1]+u],[i.extent[1][0]+c,i.extent[1][1]+u]]);const h=hI(f)?e_(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&o?.("015",Xy.error015()),{position:{x:h.x-c+(i.measured.width??0)*d[0],y:h.y-u+(i.measured.height??0)*d[1]},positionAbsolute:h}}async function our({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(h=>h.id)),i=[];for(const h of n){if(h.deletable===!1)continue;const p=o.has(h.id),m=!p&&h.parentId&&i.find(y=>y.id===h.parentId);(p||m)&&i.push(h)}const l=new Set(t.map(h=>h.id)),c=r.filter(h=>h.deletable!==!1),d=nur(i,c);for(const h of c)l.has(h.id)&&!d.find(m=>m.id===h.id)&&d.push(h);if(!s)return{edges:d,nodes:i};const f=await s({nodes:i,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:i}:{edges:[],nodes:[]}:f}const dI=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),e_=(e={x:0,y:0},t,n)=>({x:dI(e.x,t[0][0],t[1][0]-(n?.width??0)),y:dI(e.y,t[0][1],t[1][1]-(n?.height??0))});function nIt(e,t,n){const{width:r,height:s}=D0(n),{x:o,y:i}=n.internals.positionAbsolute;return e_(e,[[o,i],[o+r,i+s]],t)}const Uqe=(e,t,n)=>e<t?dI(Math.abs(e-t),1,t)/t:e>n?-dI(Math.abs(e-n),1,t)/t:0,rIt=(e,t,n=15,r=40)=>{const s=Uqe(e.x,r,t.width-r)*n,o=Uqe(e.y,r,t.height-r)*n;return[s,o]},hQ=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Kbe=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pQ=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),fI=(e,t=[0,0])=>{const{x:n,y:r}=cTe(e)?e.internals.positionAbsolute:J3(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Eq=(e,t=[0,0])=>{const{x:n,y:r}=cTe(e)?e.internals.positionAbsolute:J3(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},sIt=(e,t)=>pQ(hQ(Kbe(e),Kbe(t))),AL=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},Vqe=e=>Fg(e.width)&&Fg(e.height)&&Fg(e.x)&&Fg(e.y),Fg=e=>!isNaN(e)&&isFinite(e),iur=(e,t)=>{},t5=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),n5=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const l={x:(e-n)/s,y:(t-r)/s};return o?t5(l,i):l},Tq=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function mT(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function aur(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=mT(e,n),s=mT(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=mT(e.top??e.y??0,n),s=mT(e.bottom??e.y??0,n),o=mT(e.left??e.x??0,t),i=mT(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function lur(e,t,n,r,s,o){const{x:i,y:l}=Tq(e,[t,n,r]),{x:c,y:u}=Tq({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-c,f=o-u;return{left:Math.floor(i),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(f)}}const dTe=(e,t,n,r,s,o)=>{const i=aur(o,t,n),l=(t-i.x)/e.width,c=(n-i.y)/e.height,u=Math.min(l,c),d=dI(u,r,s),f=e.x+e.width/2,h=e.y+e.height/2,p=t/2-f*d,m=n/2-h*d,y=lur(e,p,m,d,t,n),v={left:Math.min(y.left-i.left,0),top:Math.min(y.top-i.top,0),right:Math.min(y.right-i.right,0),bottom:Math.min(y.bottom-i.bottom,0)};return{x:p-v.left+v.right,y:m-v.top+v.bottom,zoom:d}},RL=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function hI(e){return e!=null&&e!=="parent"}function D0(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function fTe(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function oIt(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const l=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*l[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*l[1]}return o}function qqe(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function cur(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function uur(e){return{...KNt,...e||{}}}function k2(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=zg(e),l=n5({x:o-(s?.left??0),y:i-(s?.top??0)},r),{x:c,y:u}=n?t5(l,t):l;return{xSnapped:c,ySnapped:u,...l}}const hTe=e=>({width:e.offsetWidth,height:e.offsetHeight}),iIt=e=>e?.getRootNode?.()||window?.document,dur=["INPUT","SELECT","TEXTAREA"];function aIt(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:dur.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const lIt=e=>"clientX"in e,zg=(e,t)=>{const n=lIt(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},Hqe=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const l=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...hTe(i)}})};function cIt({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:l}){const c=e*.125+s*.375+i*.375+n*.125,u=t*.125+o*.375+l*.375+r*.125,d=Math.abs(c-e),f=Math.abs(u-t);return[c,u,d,f]}function O9(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Wqe({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case ar.Left:return[t-O9(t-r,o),n];case ar.Right:return[t+O9(r-t,o),n];case ar.Top:return[t,n-O9(n-s,o)];case ar.Bottom:return[t,n+O9(s-n,o)]}}function pTe({sourceX:e,sourceY:t,sourcePosition:n=ar.Bottom,targetX:r,targetY:s,targetPosition:o=ar.Top,curvature:i=.25}){const[l,c]=Wqe({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Wqe({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[f,h,p,m]=cIt({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${t} C${l},${c} ${u},${d} ${r},${s}`,f,h,p,m]}function uIt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2,l=r<t?r+i:r-i;return[o,l,s,i]}function fur({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){if(o==="manual")return r;const i=s&&n?r+1e3:r,l=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+l}function hur({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=hQ(Eq(e),Eq(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return AL(i,pQ(o))>0}const pur=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,mur=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),gur=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||pur;let s;return eIt(e)?s={...e}:s={...e,id:r(e)},mur(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function dIt({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,l]=uIt({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,l]}const Zqe={[ar.Left]:{x:-1,y:0},[ar.Right]:{x:1,y:0},[ar.Top]:{x:0,y:-1},[ar.Bottom]:{x:0,y:1}},vur=({source:e,sourcePosition:t=ar.Bottom,target:n})=>t===ar.Left||t===ar.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Gqe=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function yur({source:e,sourcePosition:t=ar.Bottom,target:n,targetPosition:r=ar.Top,center:s,offset:o,stepPosition:i}){const l=Zqe[t],c=Zqe[r],u={x:e.x+l.x*o,y:e.y+l.y*o},d={x:n.x+c.x*o,y:n.y+c.y*o},f=vur({source:u,sourcePosition:t,target:d}),h=f.x!==0?"x":"y",p=f[h];let m=[],y,v;const b={x:0,y:0},x={x:0,y:0},[,,w,k]=uIt({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[h]*c[h]===-1){h==="x"?(y=s.x??u.x+(d.x-u.x)*i,v=s.y??(u.y+d.y)/2):(y=s.x??(u.x+d.x)/2,v=s.y??u.y+(d.y-u.y)*i);const E=[{x:y,y:u.y},{x:y,y:d.y}],I=[{x:u.x,y:v},{x:d.x,y:v}];l[h]===p?m=h==="x"?E:I:m=h==="x"?I:E}else{const E=[{x:u.x,y:d.y}],I=[{x:d.x,y:u.y}];if(h==="x"?m=l.x===p?I:E:m=l.y===p?E:I,t===r){const L=Math.abs(e[h]-n[h]);if(L<=o){const q=Math.min(o-1,o-L);l[h]===p?b[h]=(u[h]>e[h]?-1:1)*q:x[h]=(d[h]>n[h]?-1:1)*q}}if(t!==r){const L=h==="x"?"y":"x",q=l[h]===c[L],V=u[L]>d[L],H=u[L]<d[L];(l[h]===1&&(!q&&V||q&&H)||l[h]!==1&&(!q&&H||q&&V))&&(m=h==="x"?E:I)}const N={x:u.x+b.x,y:u.y+b.y},A={x:d.x+x.x,y:d.y+x.y},P=Math.max(Math.abs(N.x-m[0].x),Math.abs(A.x-m[0].x)),F=Math.max(Math.abs(N.y-m[0].y),Math.abs(A.y-m[0].y));P>=F?(y=(N.x+A.x)/2,v=m[0].y):(y=m[0].x,v=(N.y+A.y)/2)}const C={x:u.x+b.x,y:u.y+b.y},_={x:d.x+x.x,y:d.y+x.y};return[[e,...C.x!==m[0].x||C.y!==m[0].y?[C]:[],...m,..._.x!==m[m.length-1].x||_.y!==m[m.length-1].y?[_]:[],n],y,v,w,k]}function bur(e,t,n,r){const s=Math.min(Gqe(e,t)/2,Gqe(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${o+s*u},${i}Q ${o},${i} ${o},${i+s*d}`}const l=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${o},${i+s*c}Q ${o},${i} ${o+s*l},${i}`}function Xbe({sourceX:e,sourceY:t,sourcePosition:n=ar.Bottom,targetX:r,targetY:s,targetPosition:o=ar.Top,borderRadius:i=5,centerX:l,centerY:c,offset:u=20,stepPosition:d=.5}){const[f,h,p,m,y]=yur({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:l,y:c},offset:u,stepPosition:d});let v=`M${f[0].x} ${f[0].y}`;for(let b=1;b<f.length-1;b++)v+=bur(f[b-1],f[b],f[b+1],i);return v+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[v,h,p,m,y]}function Qqe(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function xur(e){const{sourceNode:t,targetNode:n}=e;if(!Qqe(t)||!Qqe(n))return null;const r=t.internals.handleBounds||Yqe(t.handles),s=n.internals.handleBounds||Yqe(n.handles),o=Kqe(r?.source??[],e.sourceHandle),i=Kqe(e.connectionMode===uI.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!o||!i)return e.onError?.("008",Xy.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=o?.position||ar.Bottom,c=i?.position||ar.Top,u=t_(t,o,l),d=t_(n,i,c);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:l,targetPosition:c}}function Yqe(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function t_(e,t,n=ar.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,o=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:l}=t??D0(e);if(r)return{x:s+i/2,y:o+l/2};switch(t?.position??n){case ar.Top:return{x:s+i/2,y:o};case ar.Right:return{x:s+i,y:o+l/2};case ar.Bottom:return{x:s+i/2,y:o+l};case ar.Left:return{x:s,y:o+l/2}}}function Kqe(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Jbe(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function wur(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,l)=>([l.markerStart||r,l.markerEnd||s].forEach(c=>{if(c&&typeof c=="object"){const u=Jbe(c,t);o.has(u)||(i.push({id:u,color:c.color||n,...c}),o.add(u))}}),i),[]).sort((i,l)=>i.id.localeCompare(l.id))}const fIt=1e3,Sur=10,mTe={nodeOrigin:[0,0],nodeExtent:jL,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},kur={...mTe,checkEquality:!0};function gTe(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Our(e,t,n){const r=gTe(mTe,n);for(const s of e.values())if(s.parentId)yTe(s,e,t,r);else{const o=J3(s,r.nodeOrigin),i=hI(s.extent)?s.extent:r.nodeExtent,l=e_(o,i,D0(s));s.internals.positionAbsolute=l}}function Cur(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function vTe(e){return e==="manual"}function exe(e,t,n,r={}){const s=gTe(kur,r),o={i:0},i=new Map(t),l=s?.elevateNodesOnSelect&&!vTe(s.zIndexMode)?fIt:0;let c=e.length>0,u=!1;t.clear(),n.clear();for(const d of e){let f=i.get(d.id);if(s.checkEquality&&d===f?.internals.userNode)t.set(d.id,f);else{const h=J3(d,s.nodeOrigin),p=hI(d.extent)?d.extent:s.nodeExtent,m=e_(h,p,D0(d));f={...s.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:Cur(d,f),z:hIt(d,l,s.zIndexMode),userNode:d}},t.set(d.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(c=!1),d.parentId&&yTe(f,t,n,r,o),u||=d.selected??!1}return{nodesInitialized:c,hasSelectedNodes:u}}function _ur(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function yTe(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:l,zIndexMode:c}=gTe(mTe,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}_ur(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&c==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*Sur),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const f=o&&!vTe(c)?fIt:0,{x:h,y:p,z:m}=Eur(e,d,i,l,f,c),{positionAbsolute:y}=e.internals,v=h!==y.x||p!==y.y;(v||m!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:v?{x:h,y:p}:y,z:m}})}function hIt(e,t,n){const r=Fg(e.zIndex)?e.zIndex:0;return vTe(n)?r:r+(e.selected?t:0)}function Eur(e,t,n,r,s,o){const{x:i,y:l}=t.internals.positionAbsolute,c=D0(e),u=J3(e,n),d=hI(e.extent)?e_(u,e.extent,c):u;let f=e_({x:i+d.x,y:l+d.y},r,c);e.extent==="parent"&&(f=nIt(f,c,t));const h=hIt(e,s,o),p=t.internals.z??0;return{x:f.x,y:f.y,z:p>=h?p+1:h}}function bTe(e,t,n,r=[0,0]){const s=[],o=new Map;for(const i of e){const l=t.get(i.parentId);if(!l)continue;const c=o.get(i.parentId)?.expandedRect??fI(l),u=sIt(c,i.rect);o.set(i.parentId,{expandedRect:u,parent:l})}return o.size>0&&o.forEach(({expandedRect:i,parent:l},c)=>{const u=l.internals.positionAbsolute,d=D0(l),f=l.origin??r,h=i.x<u.x?Math.round(Math.abs(u.x-i.x)):0,p=i.y<u.y?Math.round(Math.abs(u.y-i.y)):0,m=Math.max(d.width,Math.round(i.width)),y=Math.max(d.height,Math.round(i.height)),v=(m-d.width)*f[0],b=(y-d.height)*f[1];(h>0||p>0||v||b)&&(s.push({id:c,type:"position",position:{x:l.position.x-h+v,y:l.position.y-p+b}}),n.get(c)?.forEach(x=>{e.some(w=>w.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+h,y:x.position.y+p}})})),(d.width<i.width||d.height<i.height||h||p)&&s.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(h?f[0]*h-v:0),height:y+(p?f[1]*p-b:0)}})}),s}function Tur(e,t,n,r,s,o,i){const l=r?.querySelector(".xyflow__viewport");let c=!1;if(!l)return{changes:[],updatedInternals:c};const u=[],d=window.getComputedStyle(l),{m22:f}=new window.DOMMatrixReadOnly(d.transform),h=[];for(const p of e.values()){const m=t.get(p.id);if(!m)continue;if(m.hidden){t.set(m.id,{...m,internals:{...m.internals,handleBounds:void 0}}),c=!0;continue}const y=hTe(p.nodeElement),v=m.measured.width!==y.width||m.measured.height!==y.height;if(!!(y.width&&y.height&&(v||!m.internals.handleBounds||p.force))){const x=p.nodeElement.getBoundingClientRect(),w=hI(m.extent)?m.extent:o;let{positionAbsolute:k}=m.internals;m.parentId&&m.extent==="parent"?k=nIt(k,y,t.get(m.parentId)):w&&(k=e_(k,w,y));const C={...m,measured:y,internals:{...m.internals,positionAbsolute:k,handleBounds:{source:Hqe("source",p.nodeElement,x,f,m.id),target:Hqe("target",p.nodeElement,x,f,m.id)}}};t.set(m.id,C),m.parentId&&yTe(C,t,n,{nodeOrigin:s,zIndexMode:i}),c=!0,v&&(u.push({id:m.id,type:"dimensions",dimensions:y}),m.expandParent&&m.parentId&&h.push({id:m.id,parentId:m.parentId,rect:fI(C,s)}))}}if(h.length>0){const p=bTe(h,t,n,s);u.push(...p)}return{changes:u,updatedInternals:c}}async function jur({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r),l=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(l)}function Xqe(e,t,n,r,s,o){let i=s;const l=r.get(i)||new Map;r.set(i,l.set(n,t)),i=`${s}-${e}`;const c=r.get(i)||new Map;if(r.set(i,c.set(n,t)),o){i=`${s}-${e}-${o}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function pIt(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:l=null}=r,c={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:l},u=`${s}-${i}--${o}-${l}`,d=`${o}-${l}--${s}-${i}`;Xqe("source",c,d,e,s,i),Xqe("target",c,u,e,o,l),t.set(r.id,r)}}function mIt(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:mIt(n,t):!1}function Jqe(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Nur(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!mIt(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const l=e.get(o);l&&s.set(o,{id:o,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return s}function Ese({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,l]of t){const c=n.get(i)?.internals.userNode;c&&s.push({...c,position:l.position,dragging:r})}if(!e)return[s[0],s];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:s[0],s]}function Iur({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=t5(o,t);return{x:i.x-o.x,y:i.y-o.y}}function Aur({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,l=new Map,c=!1,u={x:0,y:0},d=null,f=!1,h=null,p=!1,m=!1,y=null;function v({noDragClassName:x,handleSelector:w,domNode:k,isSelectable:C,nodeId:_,nodeClickDistance:T=0}){h=Ih(k);function E({x:P,y:F}){const{nodeLookup:L,nodeExtent:q,snapGrid:V,snapToGrid:H,nodeOrigin:B,onNodeDrag:W,onSelectionDrag:z,onError:Y,updateNodePositions:D}=t();o={x:P,y:F};let R=!1;const M=l.size>1,U=M&&q?Kbe(e5(l)):null,Q=M&&H?Iur({dragItems:l,snapGrid:V,x:P,y:F}):null;for(const[ee,X]of l){if(!L.has(ee))continue;let te={x:P-X.distance.x,y:F-X.distance.y};H&&(te=Q?{x:Math.round(te.x+Q.x),y:Math.round(te.y+Q.y)}:t5(te,V));let ne=null;if(M&&q&&!X.extent&&U){const{positionAbsolute:re}=X.internals,se=re.x-U.x+q[0][0],ae=re.x+X.measured.width-U.x2+q[1][0],ue=re.y-U.y+q[0][1],pe=re.y+X.measured.height-U.y2+q[1][1];ne=[[se,ue],[ae,pe]]}const{position:ce,positionAbsolute:J}=tIt({nodeId:ee,nextPosition:te,nodeLookup:L,nodeExtent:ne||q,nodeOrigin:B,onError:Y});R=R||X.position.x!==ce.x||X.position.y!==ce.y,X.position=ce,X.internals.positionAbsolute=J}if(m=m||R,!!R&&(D(l,!0),y&&(r||W||!_&&z))){const[ee,X]=Ese({nodeId:_,dragItems:l,nodeLookup:L});r?.(y,l,ee,X),W?.(y,ee,X),_||z?.(y,X)}}async function I(){if(!d)return;const{transform:P,panBy:F,autoPanSpeed:L,autoPanOnNodeDrag:q}=t();if(!q){c=!1,cancelAnimationFrame(i);return}const[V,H]=rIt(u,d,L);(V!==0||H!==0)&&(o.x=(o.x??0)-V/P[2],o.y=(o.y??0)-H/P[2],await F({x:V,y:H})&&E(o)),i=requestAnimationFrame(I)}function N(P){const{nodeLookup:F,multiSelectionActive:L,nodesDraggable:q,transform:V,snapGrid:H,snapToGrid:B,selectNodesOnDrag:W,onNodeDragStart:z,onSelectionDragStart:Y,unselectNodesAndEdges:D}=t();f=!0,(!W||!C)&&!L&&_&&(F.get(_)?.selected||D()),C&&W&&_&&e?.(_);const R=k2(P.sourceEvent,{transform:V,snapGrid:H,snapToGrid:B,containerBounds:d});if(o=R,l=Nur(F,q,R,_),l.size>0&&(n||z||!_&&Y)){const[M,U]=Ese({nodeId:_,dragItems:l,nodeLookup:F});n?.(P.sourceEvent,l,M,U),z?.(P.sourceEvent,M,U),_||Y?.(P.sourceEvent,U)}}const A=PNt().clickDistance(T).on("start",P=>{const{domNode:F,nodeDragThreshold:L,transform:q,snapGrid:V,snapToGrid:H}=t();d=F?.getBoundingClientRect()||null,p=!1,m=!1,y=P.sourceEvent,L===0&&N(P),o=k2(P.sourceEvent,{transform:q,snapGrid:V,snapToGrid:H,containerBounds:d}),u=zg(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:F,transform:L,snapGrid:q,snapToGrid:V,nodeDragThreshold:H,nodeLookup:B}=t(),W=k2(P.sourceEvent,{transform:L,snapGrid:q,snapToGrid:V,containerBounds:d});if(y=P.sourceEvent,(P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||_&&!B.has(_))&&(p=!0),!p){if(!c&&F&&f&&(c=!0,I()),!f){const z=zg(P.sourceEvent,d),Y=z.x-u.x,D=z.y-u.y;Math.sqrt(Y*Y+D*D)>H&&N(P)}(o.x!==W.xSnapped||o.y!==W.ySnapped)&&l&&f&&(u=zg(P.sourceEvent,d),E(W))}}).on("end",P=>{if(!(!f||p)&&(c=!1,f=!1,cancelAnimationFrame(i),l.size>0)){const{nodeLookup:F,updateNodePositions:L,onNodeDragStop:q,onSelectionDragStop:V}=t();if(m&&(L(l,!1),m=!1),s||q||!_&&V){const[H,B]=Ese({nodeId:_,dragItems:l,nodeLookup:F,dragging:!1});s?.(P.sourceEvent,l,H,B),q?.(P.sourceEvent,H,B),_||V?.(P.sourceEvent,B)}}}).filter(P=>{const F=P.target;return!P.button&&(!x||!Jqe(F,`.${x}`,k))&&(!w||Jqe(F,w,k))});h.call(A)}function b(){h?.on(".drag",null)}return{update:v,destroy:b}}function Rur(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())AL(s,fI(o))>0&&r.push(o);return r}const Pur=250;function $ur(e,t,n,r){let s=[],o=1/0;const i=Rur(e,n,t+Pur);for(const l of i){const c=[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]];for(const u of c){if(r.nodeId===u.nodeId&&r.type===u.type&&r.id===u.id)continue;const{x:d,y:f}=t_(l,u,u.position,!0),h=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));h>t||(h<o?(s=[{...u,x:d,y:f}],o=h):h===o&&s.push({...u,x:d,y:f}))}}if(!s.length)return null;if(s.length>1){const l=r.type==="source"?"target":"source";return s.find(c=>c.type===l)??s[0]}return s[0]}function gIt(e,t,n,r,s,o=!1){const i=r.get(e);if(!i)return null;const l=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&o?{...c,...t_(i,c,c.position,!0)}:c}function vIt(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Mur(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const yIt=()=>!0;function Dur(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:p,onConnectStart:m,onConnect:y,onConnectEnd:v,isValidConnection:b=yIt,onReconnectEnd:x,updateConnection:w,getTransform:k,getFromHandle:C,autoPanSpeed:_,dragThreshold:T=1,handleDomNode:E}){const I=iIt(e.target);let N=0,A;const{x:P,y:F}=zg(e),L=vIt(o,E),q=l?.getBoundingClientRect();let V=!1;if(!q||!L)return;const H=gIt(s,L,r,c,t);if(!H)return;let B=zg(e,q),W=!1,z=null,Y=!1,D=null;function R(){if(!d||!q)return;const[ce,J]=rIt(B,q,_);h({x:ce,y:J}),N=requestAnimationFrame(R)}const M={...H,nodeId:s,type:L,position:H.position},U=c.get(s);let ee={inProgress:!0,isValid:null,from:t_(U,M,ar.Left,!0),fromHandle:M,fromPosition:M.position,fromNode:U,to:B,toHandle:null,toPosition:Bqe[M.position],toNode:null,pointer:B};function X(){V=!0,w(ee),m?.(e,{nodeId:s,handleId:r,handleType:L})}T===0&&X();function te(ce){if(!V){const{x:pe,y:Se}=zg(ce),Te=pe-P,Ne=Se-F;if(!(Te*Te+Ne*Ne>T*T))return;X()}if(!C()||!M){ne(ce);return}const J=k();B=zg(ce,q),A=$ur(n5(B,J,!1,[1,1]),n,c,M),W||(R(),W=!0);const re=bIt(ce,{handle:A,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:b,doc:I,lib:u,flowId:f,nodeLookup:c});D=re.handleDomNode,z=re.connection,Y=Mur(!!A,re.isValid);const se=c.get(s),ae=se?t_(se,M,ar.Left,!0):ee.from,ue={...ee,from:ae,isValid:Y,to:re.toHandle&&Y?Tq({x:re.toHandle.x,y:re.toHandle.y},J):B,toHandle:re.toHandle,toPosition:Y&&re.toHandle?re.toHandle.position:Bqe[M.position],toNode:re.toHandle?c.get(re.toHandle.nodeId):null,pointer:B};w(ue),ee=ue}function ne(ce){if(!("touches"in ce&&ce.touches.length>0)){if(V){(A||D)&&z&&Y&&y?.(z);const{inProgress:J,...re}=ee,se={...re,toPosition:ee.toHandle?ee.toPosition:null};v?.(ce,se),o&&x?.(ce,se)}p(),cancelAnimationFrame(N),W=!1,Y=!1,z=null,D=null,I.removeEventListener("mousemove",te),I.removeEventListener("mouseup",ne),I.removeEventListener("touchmove",te),I.removeEventListener("touchend",ne)}}I.addEventListener("mousemove",te),I.addEventListener("mouseup",ne),I.addEventListener("touchmove",te),I.addEventListener("touchend",ne)}function bIt(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:l,flowId:c,isValidConnection:u=yIt,nodeLookup:d}){const f=o==="target",h=t?i.querySelector(`.${l}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=zg(e),y=i.elementFromPoint(p,m),v=y?.classList.contains(`${l}-flow__handle`)?y:h,b={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const x=vIt(void 0,v),w=v.getAttribute("data-nodeid"),k=v.getAttribute("data-handleid"),C=v.classList.contains("connectable"),_=v.classList.contains("connectableend");if(!w||!x)return b;const T={source:f?w:r,sourceHandle:f?k:s,target:f?r:w,targetHandle:f?s:k};b.connection=T;const I=C&&_&&(n===uI.Strict?f&&x==="source"||!f&&x==="target":w!==r||k!==s);b.isValid=I&&u(T),b.toHandle=gIt(w,x,k,d,n,!0)}return b}const txe={onPointerDown:Dur,isValid:bIt};function Lur({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Ih(e);function o({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:f=!0,zoomable:h=!0,inversePan:p=!1}){const m=w=>{if(w.sourceEvent.type!=="wheel"||!t)return;const k=n(),C=w.sourceEvent.ctrlKey&&RL()?10:1,_=-w.sourceEvent.deltaY*(w.sourceEvent.deltaMode===1?.05:w.sourceEvent.deltaMode?1:.002)*d,T=k[2]*Math.pow(2,_*C);t.scaleTo(T)};let y=[0,0];const v=w=>{(w.sourceEvent.type==="mousedown"||w.sourceEvent.type==="touchstart")&&(y=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY])},b=w=>{const k=n();if(w.sourceEvent.type!=="mousemove"&&w.sourceEvent.type!=="touchmove"||!t)return;const C=[w.sourceEvent.clientX??w.sourceEvent.touches[0].clientX,w.sourceEvent.clientY??w.sourceEvent.touches[0].clientY],_=[C[0]-y[0],C[1]-y[1]];y=C;const T=r()*Math.max(k[2],Math.log(k[2]))*(p?-1:1),E={x:k[0]-_[0]*T,y:k[1]-_[1]*T},I=[[0,0],[c,u]];t.setViewportConstrained({x:E.x,y:E.y,zoom:k[2]},I,l)},x=QNt().on("start",v).on("zoom",f?b:null).on("zoom.wheel",h?m:null);s.call(x,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:jg}}const mQ=e=>({x:e.x,y:e.y,zoom:e.k}),Tse=({x:e,y:t,zoom:n})=>fQ.translate(e,t).scale(n),xj=(e,t)=>e.target.closest(`.${t}`),xIt=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Fur=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,jse=(e,t=0,n=Fur,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},wIt=e=>{const t=e.ctrlKey&&RL()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function zur({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(xj(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&i){const v=jg(d),b=wIt(d),x=f*Math.pow(2,b);r.scaleTo(n,x,v,d);return}const h=d.deltaMode===1?20:1;let p=s===sC.Vertical?0:d.deltaX*h,m=s===sC.Horizontal?0:d.deltaY*h;!RL()&&d.shiftKey&&s!==sC.Vertical&&(p=d.deltaY*h,m=0),r.translateBy(n,-(p/f)*o,-(m/f)*o,{internal:!0});const y=mQ(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,y),e.panScrollTimeout=setTimeout(()=>{u?.(d,y),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,y))}}function Bur({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,l=xj(r,e);if(r.ctrlKey&&o&&l&&r.preventDefault(),i||l)return null;r.preventDefault(),n.call(this,r,s)}}function Uur({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=mQ(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function Vur({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{e.usedRightMouseButton=!!(n&&xIt(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!o.sourceEvent?.internal&&s?.(o.sourceEvent,mQ(o.transform))}}function qur({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&xIt(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=mQ(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,l)},n?150:0)}}}function Hur({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:i,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return f=>{const h=e||t,p=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(xj(f,`${u}-flow__node`)||xj(f,`${u}-flow__edge`)))return!0;if(!r&&!h&&!s&&!o&&!n||i||d&&!m||xj(f,l)&&m||xj(f,c)&&(!m||s&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!h&&!s&&!p&&m||!r&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(r)&&!r.includes(f.button)&&f.type==="mousedown")return!1;const y=Array.isArray(r)&&r.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&y}}function Wur({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:l,onDraggingChange:c}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=QNt().scaleExtent([t,n]).translateExtent(r),h=Ih(e).call(f);x({x:s.x,y:s.y,zoom:dI(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const p=h.on("wheel.zoom"),m=h.on("dblclick.zoom");f.wheelDelta(wIt);function y(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).transform(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function v({noWheelClassName:A,noPanClassName:P,onPaneContextMenu:F,userSelectionActive:L,panOnScroll:q,panOnDrag:V,panOnScrollMode:H,panOnScrollSpeed:B,preventScrolling:W,zoomOnPinch:z,zoomOnScroll:Y,zoomOnDoubleClick:D,zoomActivationKeyPressed:R,lib:M,onTransformChange:U,connectionInProgress:Q,paneClickDistance:ee,selectionOnDrag:X}){L&&!u.isZoomingOrPanning&&b();const te=q&&!R&&!L;f.clickDistance(X?1/0:!Fg(ee)||ee<0?0:ee);const ne=te?zur({zoomPanValues:u,noWheelClassName:A,d3Selection:h,d3Zoom:f,panOnScrollMode:H,panOnScrollSpeed:B,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:l}):Bur({noWheelClassName:A,preventScrolling:W,d3ZoomHandler:p});if(h.on("wheel.zoom",ne,{passive:!1}),!L){const J=Uur({zoomPanValues:u,onDraggingChange:c,onPanZoomStart:i});f.on("start",J);const re=Vur({zoomPanValues:u,panOnDrag:V,onPaneContextMenu:!!F,onPanZoom:o,onTransformChange:U});f.on("zoom",re);const se=qur({zoomPanValues:u,panOnDrag:V,panOnScroll:q,onPaneContextMenu:F,onPanZoomEnd:l,onDraggingChange:c});f.on("end",se)}const ce=Hur({zoomActivationKeyPressed:R,panOnDrag:V,zoomOnScroll:Y,panOnScroll:q,zoomOnDoubleClick:D,zoomOnPinch:z,userSelectionActive:L,noPanClassName:P,noWheelClassName:A,lib:M,connectionInProgress:Q});f.filter(ce),D?h.on("dblclick.zoom",m):h.on("dblclick.zoom",null)}function b(){f.on("zoom",null)}async function x(A,P,F){const L=Tse(A),q=f?.constrain()(L,P,F);return q&&await y(q),new Promise(V=>V(q))}async function w(A,P){const F=Tse(A);return await y(F,P),new Promise(L=>L(F))}function k(A){if(h){const P=Tse(A),F=h.property("__zoom");(F.k!==A.zoom||F.x!==A.x||F.y!==A.y)&&f?.transform(h,P,null,{sync:!0})}}function C(){const A=h?GNt(h.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function _(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).scaleTo(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function T(A,P){return h?new Promise(F=>{f?.interpolate(P?.interpolate==="linear"?Ux:n7).scaleBy(jse(h,P?.duration,P?.ease,()=>F(!0)),A)}):Promise.resolve(!1)}function E(A){f?.scaleExtent(A)}function I(A){f?.translateExtent(A)}function N(A){const P=!Fg(A)||A<0?0:A;f?.clickDistance(P)}return{update:v,destroy:b,setViewport:w,setViewportConstrained:x,getViewport:C,scaleTo:_,scaleBy:T,setScaleExtent:E,setTranslateExtent:I,syncViewport:k,setClickDistance:N}}var pI;(function(e){e.Line="line",e.Handle="handle"})(pI||(pI={}));function Zur({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,l=n-r,c=[i>0?1:i<0?-1:0,l>0?1:l<0?-1:0];return i&&s&&(c[0]=c[0]*-1),l&&o&&(c[1]=c[1]*-1),c}function eHe(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function Nw(e,t){return Math.max(0,t-e)}function Iw(e,t){return Math.max(0,e-t)}function C9(e,t,n){return Math.max(0,t-e,e-n)}function tHe(e,t){return e?!t:t}function Gur(e,t,n,r,s,o,i,l){let{affectsX:c,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:p,ySnapped:m}=n,{minWidth:y,maxWidth:v,minHeight:b,maxHeight:x}=r,{x:w,y:k,width:C,height:_,aspectRatio:T}=e;let E=Math.floor(d?p-e.pointerX:0),I=Math.floor(f?m-e.pointerY:0);const N=C+(c?-E:E),A=_+(u?-I:I),P=-o[0]*C,F=-o[1]*_;let L=C9(N,y,v),q=C9(A,b,x);if(i){let B=0,W=0;c&&E<0?B=Nw(w+E+P,i[0][0]):!c&&E>0&&(B=Iw(w+N+P,i[1][0])),u&&I<0?W=Nw(k+I+F,i[0][1]):!u&&I>0&&(W=Iw(k+A+F,i[1][1])),L=Math.max(L,B),q=Math.max(q,W)}if(l){let B=0,W=0;c&&E>0?B=Iw(w+E,l[0][0]):!c&&E<0&&(B=Nw(w+N,l[1][0])),u&&I>0?W=Iw(k+I,l[0][1]):!u&&I<0&&(W=Nw(k+A,l[1][1])),L=Math.max(L,B),q=Math.max(q,W)}if(s){if(d){const B=C9(N/T,b,x)*T;if(L=Math.max(L,B),i){let W=0;!c&&!u||c&&!u&&h?W=Iw(k+F+N/T,i[1][1])*T:W=Nw(k+F+(c?E:-E)/T,i[0][1])*T,L=Math.max(L,W)}if(l){let W=0;!c&&!u||c&&!u&&h?W=Nw(k+N/T,l[1][1])*T:W=Iw(k+(c?E:-E)/T,l[0][1])*T,L=Math.max(L,W)}}if(f){const B=C9(A*T,y,v)/T;if(q=Math.max(q,B),i){let W=0;!c&&!u||u&&!c&&h?W=Iw(w+A*T+P,i[1][0])/T:W=Nw(w+(u?I:-I)*T+P,i[0][0])/T,q=Math.max(q,W)}if(l){let W=0;!c&&!u||u&&!c&&h?W=Nw(w+A*T,l[1][0])/T:W=Iw(w+(u?I:-I)*T,l[0][0])/T,q=Math.max(q,W)}}}I=I+(I<0?q:-q),E=E+(E<0?L:-L),s&&(h?N>A*T?I=(tHe(c,u)?-E:E)/T:E=(tHe(c,u)?-I:I)*T:d?(I=E/T,u=c):(E=I*T,c=u));const V=c?w+E:w,H=u?k+I:k;return{width:C+(c?-E:E),height:_+(u?-I:I),x:o[0]*E*(c?-1:1)+V,y:o[1]*I*(u?-1:1)+H}}const SIt={width:0,height:0,x:0,y:0},Qur={...SIt,pointerX:0,pointerY:0,aspectRatio:1};function Yur(e){return[[0,0],[e.measured.width,e.measured.height]]}function Kur(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,l=n[0]*o,c=n[1]*i;return[[r-l,s-c],[r+o-l,s+i-c]]}function Xur({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Ih(e);let i={controlDirection:eHe("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:f,resizeDirection:h,onResizeStart:p,onResize:m,onResizeEnd:y,shouldResize:v}){let b={...SIt},x={...Qur};i={boundaries:d,resizeDirection:h,keepAspectRatio:f,controlDirection:eHe(u)};let w,k=null,C=[],_,T,E,I=!1;const N=PNt().on("start",A=>{const{nodeLookup:P,transform:F,snapGrid:L,snapToGrid:q,nodeOrigin:V,paneDomNode:H}=n();if(w=P.get(t),!w)return;k=H?.getBoundingClientRect()??null;const{xSnapped:B,ySnapped:W}=k2(A.sourceEvent,{transform:F,snapGrid:L,snapToGrid:q,containerBounds:k});b={width:w.measured.width??0,height:w.measured.height??0,x:w.position.x??0,y:w.position.y??0},x={...b,pointerX:B,pointerY:W,aspectRatio:b.width/b.height},_=void 0,w.parentId&&(w.extent==="parent"||w.expandParent)&&(_=P.get(w.parentId),T=_&&w.extent==="parent"?Yur(_):void 0),C=[],E=void 0;for(const[z,Y]of P)if(Y.parentId===t&&(C.push({id:z,position:{...Y.position},extent:Y.extent}),Y.extent==="parent"||Y.expandParent)){const D=Kur(Y,w,Y.origin??V);E?E=[[Math.min(D[0][0],E[0][0]),Math.min(D[0][1],E[0][1])],[Math.max(D[1][0],E[1][0]),Math.max(D[1][1],E[1][1])]]:E=D}p?.(A,{...b})}).on("drag",A=>{const{transform:P,snapGrid:F,snapToGrid:L,nodeOrigin:q}=n(),V=k2(A.sourceEvent,{transform:P,snapGrid:F,snapToGrid:L,containerBounds:k}),H=[];if(!w)return;const{x:B,y:W,width:z,height:Y}=b,D={},R=w.origin??q,{width:M,height:U,x:Q,y:ee}=Gur(x,i.controlDirection,V,i.boundaries,i.keepAspectRatio,R,T,E),X=M!==z,te=U!==Y,ne=Q!==B&&X,ce=ee!==W&&te;if(!ne&&!ce&&!X&&!te)return;if((ne||ce||R[0]===1||R[1]===1)&&(D.x=ne?Q:b.x,D.y=ce?ee:b.y,b.x=D.x,b.y=D.y,C.length>0)){const ae=Q-B,ue=ee-W;for(const pe of C)pe.position={x:pe.position.x-ae+R[0]*(M-z),y:pe.position.y-ue+R[1]*(U-Y)},H.push(pe)}if((X||te)&&(D.width=X&&(!i.resizeDirection||i.resizeDirection==="horizontal")?M:b.width,D.height=te&&(!i.resizeDirection||i.resizeDirection==="vertical")?U:b.height,b.width=D.width,b.height=D.height),_&&w.expandParent){const ae=R[0]*(D.width??0);D.x&&D.x<ae&&(b.x=ae,x.x=x.x-(D.x-ae));const ue=R[1]*(D.height??0);D.y&&D.y<ue&&(b.y=ue,x.y=x.y-(D.y-ue))}const J=Zur({width:b.width,prevWidth:z,height:b.height,prevHeight:Y,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),re={...b,direction:J};v?.(A,re)!==!1&&(I=!0,m?.(A,re),r(D,H))}).on("end",A=>{I&&(y?.(A,{...b}),s?.({...b}),I=!1)});o.call(N)}function c(){o.on(".drag",null)}return{update:l,destroy:c}}const Jur={},nHe=e=>{let t;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(m=>m(t,p))}},s=()=>t,c={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(Jur?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(r,s,c);return c},edr=e=>e?nHe(e):nHe,{useDebugValue:tdr}=Pe,{useSyncExternalStoreWithSelector:ndr}=kAn,rdr=e=>e;function kIt(e,t=rdr,n){const r=ndr(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tdr(r),r}const rHe=(e,t)=>{const n=edr(e),r=(s,o=t)=>kIt(n,s,o);return Object.assign(r,n),r},sdr=(e,t)=>e?rHe(e,t):rHe;function Qi(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const gQ=g.createContext(null),odr=gQ.Provider,OIt=Xy.error001();function as(e,t){const n=g.useContext(gQ);if(n===null)throw new Error(OIt);return kIt(n,e,t)}function Aa(){const e=g.useContext(gQ);if(e===null)throw new Error(OIt);return g.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const sHe={display:"none"},idr={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},CIt="react-flow__node-desc",_It="react-flow__edge-desc",adr="react-flow__aria-live",ldr=e=>e.ariaLiveMessage,cdr=e=>e.ariaLabelConfig;function udr({rfId:e}){const t=as(ldr);return a.jsx("div",{id:`${adr}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:idr,children:t})}function ddr({rfId:e,disableKeyboardA11y:t}){const n=as(cdr);return a.jsxs(a.Fragment,{children:[a.jsx("div",{id:`${CIt}-${e}`,style:sHe,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),a.jsx("div",{id:`${_It}-${e}`,style:sHe,children:n["edge.a11yDescription.default"]}),!t&&a.jsx(udr,{rfId:e})]})}const r5=g.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return a.jsx("div",{className:Hl(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});r5.displayName="Panel";function fdr({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:a.jsx(r5,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:a.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const hdr=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},_9=e=>e.id;function pdr(e,t){return Qi(e.selectedNodes.map(_9),t.selectedNodes.map(_9))&&Qi(e.selectedEdges.map(_9),t.selectedEdges.map(_9))}function mdr({onSelectionChange:e}){const t=Aa(),{selectedNodes:n,selectedEdges:r}=as(hdr,pdr);return g.useEffect(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}const gdr=e=>!!e.onSelectionChangeHandlers;function vdr({onSelectionChange:e}){const t=as(gdr);return e||t?a.jsx(mdr,{onSelectionChange:e}):null}const nxe=typeof window<"u"?g.useLayoutEffect:g.useEffect,EIt=[0,0],ydr={x:0,y:0,zoom:1},bdr=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],oHe=[...bdr,"rfId"],xdr=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),iHe={translateExtent:jL,nodeOrigin:EIt,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function wdr(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:l,setDefaultNodesAndEdges:c}=as(xdr,Qi),u=Aa();nxe(()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=iHe,l()}),[]);const d=g.useRef(iHe);return nxe(()=>{for(const f of oHe){const h=e[f],p=d.current[f];h!==p&&(typeof e[f]>"u"||(f==="nodes"?t(h):f==="edges"?n(h):f==="minZoom"?r(h):f==="maxZoom"?s(h):f==="translateExtent"?o(h):f==="nodeExtent"?i(h):f==="ariaLabelConfig"?u.setState({ariaLabelConfig:uur(h)}):f==="fitView"?u.setState({fitViewQueued:h}):f==="fitViewOptions"?u.setState({fitViewOptions:h}):u.setState({[f]:h})))}d.current=e},oHe.map(f=>e[f])),null}function aHe(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Sdr(e){const[t,n]=g.useState(e==="system"?null:e);return g.useEffect(()=>{if(e!=="system"){n(e);return}const r=aHe(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:aHe()?.matches?"dark":"light"}const lHe=typeof document<"u"?document:null;function PL(e=null,t={target:lHe,actInsideInputWithModifier:!0}){const[n,r]=g.useState(!1),s=g.useRef(!1),o=g.useRef(new Set([])),[i,l]=g.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
250
250
  `).replace(`
251
251
 
252
252
  `,`
@@ -683,7 +683,7 @@ Token usage: ${n} input + ${r} output = ${s} total`:`The model stopped generatin
683
683
  }
684
684
  ]`,hjs=[{name:"input",description:"What the agent receives. A string or any JSON value.",required:!0},{name:"groundTruth",description:"Expected answer used by scorers.",required:!1},{name:"metadata",description:"Any object, useful for filtering and grouping.",required:!1}];function pjs(){const{isCopied:e,handleCopy:t}=Hd({text:Oot,showToast:!1});return a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx("p",{className:"flex h-8 items-center text-column text-foreground",children:"Each item looks like this"}),a.jsx("dl",{className:"divide-y divide-border rounded-lg border border-border",children:hjs.map(n=>a.jsxs("div",{className:"grid grid-cols-[7rem_1fr] gap-3 px-3 py-2.5",children:[a.jsx("dt",{className:"font-mono text-meta text-foreground",children:n.name}),a.jsxs("dd",{className:"flex flex-col items-start gap-1.5 text-meta text-muted-foreground",children:[a.jsx("span",{children:n.description}),n.required?a.jsx($t,{variant:"green",size:"xs",children:"required"}):a.jsx($t,{variant:"neutral",emphasis:"muted",size:"xs",children:"optional"})]})]},n.name))}),a.jsxs("div",{className:"overflow-hidden rounded-lg border border-border",children:[a.jsxs("div",{className:"flex items-center justify-between border-b border-border bg-card py-1.5 pr-1.5 pl-3",children:[a.jsx("span",{className:"font-mono text-meta text-muted-foreground",children:"example.json"}),a.jsx(le,{icon:e?a.jsx(Hn,{}):a.jsx(ed,{}),variant:"ghost",size:"sm",onClick:t,children:e?"Copied":"Copy"})]}),a.jsx(Or,{variant:"embedded",language:"json",editable:!1,lineNumbers:!1,showCopyButton:!1,value:Oot,className:"p-3"})]}),a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:fjs,target:"_blank",rel:"noopener noreferrer"}),className:"self-start",icon:a.jsx(Is,{}),children:"Datasets documentation"})]})}const Jle=10,mjs=`[
685
685
  { "input": "…", "groundTruth": "…" }
686
- ]`,Cot="flex min-h-0 flex-1 flex-col py-0";function gjs({tab:e,onTabChange:t,file:n,onFileSelect:r,onReplace:s,pastedText:o,onPastedTextChange:i,validation:l,isImporting:c}){return a.jsxs(Ya,{value:e,defaultTab:"upload",onValueChange:t,className:"flex h-full flex-col gap-3",children:[a.jsxs(Qa,{variant:"pill",children:[a.jsx(Ar,{value:"upload",children:"Upload file"}),a.jsx(Ar,{value:"paste",children:"Paste JSON"})]}),a.jsx(vs,{value:"upload",className:Cot,children:n?a.jsx(xjs,{file:n,validation:l,onReplace:s,isImporting:c}):a.jsx(vjs,{onFileSelect:r,disabled:c})}),a.jsx(vs,{value:"paste",className:Cot,children:a.jsx(Jh,{"aria-label":"JSON items",className:"min-h-[200px] flex-1 resize-none font-mono text-caption",placeholder:mjs,spellCheck:!1,value:o,onChange:u=>i(u.target.value),disabled:c})})]})}function vjs({onFileSelect:e,disabled:t}){const[n,r]=g.useState(!1),s=g.useCallback(c=>{const u=c.target.files?.[0];u&&e(u),c.target.value=""},[e]),o=g.useCallback(c=>{c.preventDefault(),c.stopPropagation(),r(!0)},[]),i=g.useCallback(c=>{c.preventDefault(),c.stopPropagation(),r(!1)},[]),l=g.useCallback(c=>{if(c.preventDefault(),c.stopPropagation(),r(!1),t)return;const u=c.dataTransfer.files?.[0];u&&e(u)},[t,e]);return a.jsxs("div",{"data-testid":"json-dropzone",onDragOver:o,onDragLeave:i,onDrop:l,className:Z("relative flex flex-1 flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border bg-card px-4 py-6 text-center","hover:border-accent1/50 hover:bg-accent1/5",n&&"border-accent1/50 bg-accent1/5",t&&"cursor-wait opacity-60"),children:[a.jsx("input",{type:"file",accept:".json,application/json","aria-label":"Choose a JSON file",onChange:s,disabled:t,className:"absolute inset-0 cursor-pointer opacity-0"}),a.jsx("div",{className:"flex size-9 items-center justify-center rounded-md border border-border bg-background text-muted-foreground",children:a.jsx(_A,{className:"size-4"})}),a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("p",{className:"text-body text-foreground",children:"Drop a JSON file here"}),a.jsxs("p",{className:"text-caption text-muted-foreground",children:["or ",a.jsx("span",{className:"underline",children:"choose a file"})," from your computer"]})]}),a.jsxs("p",{className:"text-meta text-muted-foreground",children:[".json · an array of items · up to ",KMe]})]})}function yjs(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function bjs(e){return typeof e=="string"?e:JSON.stringify(e)??""}function xjs({file:e,validation:t,onReplace:n,isImporting:r}){const s="rows"in t?t.rows:[],o="total"in t?t.total:0,i=s.slice(0,Jle);return a.jsxs("div",{"data-testid":"json-file-card",className:"rounded-lg border border-border",children:[a.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[a.jsx(wA,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-caption text-foreground",children:e.name}),a.jsx("span",{className:"shrink-0 text-meta text-muted-foreground",children:yjs(e.size)}),a.jsx(le,{icon:a.jsx(Jx,{}),variant:"ghost",size:"sm",onClick:n,disabled:r,children:"Replace"})]}),i.map(l=>a.jsxs("div",{className:"grid grid-cols-[2rem_1fr_auto] items-center gap-2 border-t border-border px-3 py-1.5",children:[a.jsx("span",{className:"text-meta text-muted-foreground",children:l.index}),a.jsx("span",{className:"truncate font-mono text-caption text-foreground",children:bjs(l.input)}),l.hasInput?l.hasGroundTruth?null:a.jsx($t,{variant:"yellow",size:"xs",children:"no groundTruth"}):a.jsx($t,{variant:"red",size:"xs",children:"no input"})]},l.index)),o>Jle&&a.jsxs("div",{className:"border-t border-border px-3 py-1.5 text-meta text-muted-foreground",children:["+ ",o-Jle," more"]})]})}const wjs=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsText(e)});function Sjs({datasetId:e,datasetName:t,open:n,onOpenChange:r,onSuccess:s}){const[o,i]=g.useState("upload"),[l,c]=g.useState(null),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(""),[y,v]=g.useState(!1),b=g.useRef(0),{batchInsertItems:x}=dl(),w=o==="upload"?u:p,k=g.useMemo(()=>o==="upload"&&f?{status:"error",kind:"parse",message:f}:oTs(w),[o,f,w]),C=g.useCallback(async N=>{const A=++b.current;if(!N.name.toLowerCase().endsWith(".json")){h("Only .json files are supported");return}if(N.size>bXt){h(`File is larger than ${KMe}`);return}try{const P=await wjs(N);if(A!==b.current)return;c({name:N.name,size:N.size}),d(P),h(null)}catch{if(A!==b.current)return;h("Could not read the file")}},[]),_=g.useCallback(()=>{b.current++,c(null),d(""),h(null)},[]),T=g.useCallback(()=>{b.current++,i("upload"),c(null),d(""),h(null),m("")},[]),E=g.useCallback(()=>{y||(r(!1),setTimeout(T,150))},[y,r,T]),I=g.useCallback(async()=>{if(k.status==="ready"){v(!0);try{await x.mutateAsync({datasetId:e,items:k.items}),Ye.success(`Imported ${k.total} item${k.total!==1?"s":""}`),s?.(),r(!1),setTimeout(T,150)}catch(N){Ye.error(N instanceof Error?N.message:"Failed to import items")}finally{v(!1)}}},[k,x,e,s,r,T]);return a.jsx(gs,{open:n,onOpenChange:E,children:a.jsxs(ss,{className:"flex max-h-[90vh] w-[960px] max-w-[calc(100vw-2rem)] flex-col gap-0 p-0",children:[a.jsxs(os,{className:"border-b border-border px-4 py-4",children:[a.jsx(es,{children:"Import into dataset"}),a.jsxs(Fs,{className:"not-sr-only text-caption text-muted-foreground",children:["Add items to"," ",t?a.jsx("code",{className:"rounded bg-card px-1 font-mono text-meta text-foreground",children:t}):"this dataset"," ","from a JSON file or paste them directly."]})]}),a.jsx(ws,{className:"max-h-none min-h-0 flex-1 overflow-y-auto p-0",children:a.jsxs("div",{className:"grid divide-y divide-border md:grid-cols-[1.15fr_1fr] md:divide-x md:divide-y-0",children:[a.jsx("div",{className:"flex min-h-[360px] flex-col p-4",children:a.jsx(gjs,{tab:o,onTabChange:i,file:l,onFileSelect:C,onReplace:_,pastedText:p,onPastedTextChange:m,validation:k,isImporting:y})}),a.jsx("div",{className:"p-4",children:a.jsx(pjs,{})})]})}),a.jsxs(sc,{className:"items-center border-t border-border px-4 py-3 sm:justify-between",children:[a.jsx(kjs,{validation:k}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:E,disabled:y,children:"Cancel"}),a.jsxs(le,{variant:"primary",onClick:I,disabled:k.status!=="ready"||y,children:[y&&a.jsx(_n,{}),k.status==="ready"?`Import ${k.total} item${k.total!==1?"s":""}`:"Import"]})]})]})]})})}function kjs({validation:e}){const t=Z("size-1.5 shrink-0 rounded-full",e.status==="idle"&&"bg-muted-foreground",e.status==="ready"&&"bg-accent1",e.status==="error"&&"bg-accent2");let n;switch(e.status){case"idle":n="No items yet";break;case"ready":n=a.jsxs(a.Fragment,{children:[a.jsx("b",{className:"font-medium text-foreground",children:e.total})," item",e.total!==1?"s":""," ","ready",e.missingGroundTruthCount>0&&` · ${e.missingGroundTruthCount} without groundTruth`]});break;case"error":switch(e.kind){case"parse":n=`Not valid JSON — ${e.message}`;break;case"not-array":n="Top level must be an array of items";break;case"empty":n="The array has no items";break;case"too-large":n=`JSON is larger than ${KMe}`;break;case"missing-input":n=a.jsxs(a.Fragment,{children:[a.jsx("b",{className:"font-medium text-foreground",children:e.missingInputCount})," of ",e.total," item",e.total!==1?"s":""," ",e.missingInputCount!==1?"have":"has"," no"," ",a.jsx("code",{className:"font-mono",children:"input"})]});break}break}return a.jsxs("div",{role:"status",className:"flex min-w-0 items-center gap-2 text-caption text-muted-foreground",children:[a.jsx("span",{className:t}),a.jsx("span",{className:"truncate",children:n})]})}function Ojs(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:!!e.closest('[role="dialog"]:not([data-item-panel])')}function NXt({active:e,onPrevious:t,onNext:n,onClose:r}){g.useEffect(()=>{if(!e)return;const s=o=>{o.defaultPrevented||Ojs(o.target)||(o.key==="PageUp"?(o.preventDefault(),t?.()):o.key==="PageDown"?(o.preventDefault(),n?.()):o.key==="Escape"&&(o.preventDefault(),r()))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,n,r])}const IXt=g.createContext(null);function Cjs({datasetId:e,items:t,isLoadingItems:n,children:r}){const s=Ur(),i=Qke("/datasets/:datasetId/items/:itemId")?.params.itemId,l=g.useCallback(p=>{s(`/datasets/${e}/items/${encodeURIComponent(p)}`)},[s,e]),c=g.useCallback(()=>{s(`/datasets/${e}`)},[s,e]),u=g.useMemo(()=>i?t.findIndex(p=>p.id===i):-1,[t,i]),d=g.useMemo(()=>{if(u<=0)return;const p=t[u-1].id;return()=>l(p)},[u,t,l]),f=g.useMemo(()=>{if(u<0||u>=t.length-1)return;const p=t[u+1].id;return()=>l(p)},[u,t,l]);NXt({active:!!i,onPrevious:d,onNext:f,onClose:c});const h=g.useMemo(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:i,openItem:l,close:c,goToPreviousItem:d,goToNextItem:f}),[e,t,n,i,l,c,d,f]);return a.jsx(IXt.Provider,{value:h,children:r})}function AXt(){const e=g.useContext(IXt);if(!e)throw new Error("useDatasetItemPanel must be used within a DatasetItemPanelProvider");return e}const _js=["createdAt"];function Ejs({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,leftSlot:r,rightSlot:s,belowToolbarSlot:o}){const[i,l]=oo(),{activeVersion:c}=JMe(i,l),{sort:u,onSortChange:d}=ck({searchParams:i,setSearchParams:l,allowedKeys:_js}),f=g.useMemo(()=>u?{field:u.key,direction:u.direction==="asc"?"ASC":"DESC"}:void 0,[u]),[h,p]=g.useState(!1),[m,y]=g.useState(!1),[v,b]=g.useState(!1),[x,w]=g.useState([]),[k,C]=g.useState(!1),[_,T]=g.useState([]),[E,I]=g.useState(!1),[N,A]=g.useState([]),[P,F]=g.useState(0),[L,q]=g.useState(""),[V]=h_e(L,300),{data:H}=pv(e),{data:B=[],isLoading:W,setEndOfListElement:z,isFetchingNextPage:Y,hasNextPage:D}=YI(e,V||void 0,c,f),{deleteItems:R}=dl(),{currentItemId:M,openItem:U,close:Q}=AXt(),ee=ae=>{M===ae?Q():U(ae)},X=ae=>{w(ae),b(!0)},te=ae=>{T(ae),C(!0)},ne=ae=>{C(ae),ae||(T([]),F(ue=>ue+1))},ce=ae=>{A(ae),I(!0)},J=async()=>{await R.mutateAsync({datasetId:e,itemIds:N}),Ye.success(`Deleted ${N.length} items`),I(!1),A([]),F(ae=>ae+1)},re=ae=>{b(!1),w([]),F(ue=>ue+1),n?.(ae)},se=ae=>{b(ae),ae||(w([]),F(ue=>ue+1))};return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"grid h-full overflow-auto",children:a.jsx(djs,{items:B,leftSlot:r,rightSlot:s,belowToolbarSlot:o,isLoading:W,onItemClick:ee,featuredItemId:M,onAddClick:t??(()=>{}),onImportClick:()=>p(!0),onImportJsonClick:()=>y(!0),onBulkDeleteClick:ce,onCreateDatasetClick:X,onAddToDatasetClick:te,datasetName:H?.name,clearSelectionTrigger:P,setEndOfListElement:z,isFetchingNextPage:Y,hasNextPage:D,searchQuery:L,activeSearchQuery:V,onSearchChange:q,sort:u,onSortChange:d,currentDatasetVersion:H?.version})}),a.jsx(rjs,{datasetId:e,open:h,onOpenChange:p}),a.jsx(Sjs,{datasetId:e,datasetName:H?.name,open:m,onOpenChange:y}),a.jsx(LTs,{open:v,onOpenChange:se,items:x,onSuccess:re}),a.jsx(FTs,{open:k,onOpenChange:ne,items:_,currentDatasetId:e}),a.jsx(Pt,{open:E,onOpenChange:I,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Items"}),a.jsxs(Pt.Description,{children:["Are you sure you want to delete ",N.length," item",N.length!==1?"s":"","? This action cannot be undone."]})]}),a.jsxs(Pt.Footer,{children:[a.jsx(Pt.Cancel,{children:"Cancel"}),a.jsx(Pt.Action,{onClick:J,children:R.isPending?"Deleting...":"Delete"})]})]})})]})}const _ot="__create_tag__";function Tjs({datasetId:e}){const{data:t}=pv(e),{data:n}=I0(),{updateDataset:r}=dl(),[s,o]=g.useState(""),i=g.useMemo(()=>Array.isArray(t?.tags)?t.tags:[],[t?.tags]),l=g.useMemo(()=>kXt(n?.datasets??[]),[n?.datasets]),c=g.useMemo(()=>{const h=l.map(y=>({label:y,value:y,end:i.includes(y)?a.jsx(Hn,{"data-testid":"tag-applied",className:"size-3.5"}):void 0})),p=s.trim();return p.length>0&&!l.includes(p)&&!i.includes(p)?[{label:`Create "${p}"`,value:_ot},...h]:h},[l,i,s]),u=h=>{r.mutate({datasetId:e,tags:h},{onError:()=>Ye.error("Failed to update tags")})},d=h=>{const p=h===_ot?s.trim():h;!p||i.includes(p)||u([...i,p])},f=h=>{u(i.filter(p=>p!==h))};return a.jsxs("div",{"data-testid":"dataset-tags-editor",className:"flex flex-wrap items-center gap-2",children:[i.map(h=>a.jsxs(UX,{value:h,size:"md",className:"gap-1 pr-1",children:[h,a.jsx("button",{type:"button","aria-label":`Remove tag ${h}`,disabled:r.isPending,onClick:()=>f(h),className:"cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50",children:a.jsx(Qt,{className:"size-3"})})]},h)),a.jsx(qa,{options:c,value:void 0,onValueChange:d,onInputValueChange:o,placeholder:a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(U1,{className:"size-3.5"}),"Add tag"]}),searchPlaceholder:"Search or create tag...",emptyText:"Type to create a tag",variant:"ghost",size:"sm",className:"w-auto min-w-0",disabled:r.isPending})]})}function RXt({overrideEnabled:e,onOverrideEnabledChange:t,selectedScorerIds:n,onSelectedScorerIdsChange:r,disabled:s=!1}){return a.jsxs("div",{className:"grid gap-3",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(ic,{id:"override-dataset-scorers",checked:e,onCheckedChange:t,disabled:s}),a.jsx(Dn,{htmlFor:"override-dataset-scorers",children:"Override dataset scorers"})]}),a.jsx("p",{className:"text-caption text-muted-foreground",children:e?"Only selected scorers run for this item. Leave empty to run no scorers.":"Use scorers attached to the dataset."}),e?a.jsx(qX,{selectedScorers:n,setSelectedScorers:r,disabled:s,label:"Item scorers",helperText:"Choose from scorers that can be resolved by this Mastra instance."}):null]})}function bN({name:e,field:t,errors:n}){return n.length===0?null:a.jsx(Ht.ErrorMsg,{name:e,children:a.jsx("span",{className:"space-y-1",children:n.map(r=>a.jsxs("span",{className:"block",children:[a.jsxs("code",{className:"rounded bg-destructive/10 px-1",children:[t,r.path!=="/"?r.path:""]}),": ",r.message]},`${r.path}:${r.message}`))})})}function jjs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function Njs({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,o]=g.useState("{}"),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(""),[h,p]=g.useState(!1),[m,y]=g.useState([]),[v,b]=g.useState(""),[x,w]=g.useState(null),{addItem:k}=dl(),C=()=>{o("{}"),l(""),u(""),f(""),p(!1),y([]),b(""),w(null)},_=P=>{C(),n(P)},T=async P=>{P.preventDefault();let F;try{F=JSON.parse(s)}catch{Ye.error("Input must be valid JSON");return}let L;if(i.trim())try{L=JSON.parse(i)}catch{Ye.error("Ground Truth must be valid JSON");return}let q;if(c.trim())try{q=JSON.parse(c)}catch{Ye.error("Expected Trajectory must be valid JSON");return}let V;if(d.trim())try{const B=JSON.parse(d);if(!Array.isArray(B)){Ye.error("Tool Mocks must be a JSON array");return}V=B}catch{Ye.error("Tool Mocks must be valid JSON");return}let H;if(v.trim())try{H=JSON.parse(v)}catch{Ye.error("Request Context must be valid JSON");return}try{await k.mutateAsync({datasetId:e,input:F,groundTruth:L,expectedTrajectory:q,toolMocks:V,scorerIds:h?m:void 0,requestContext:H}),Ye.success("Item added successfully"),_(!1),r?.()}catch(B){const W=jjs(B);W?w(W):Ye.error(`Failed to add item: ${B instanceof Error?B.message:"Unknown error"}`)}},E=P=>{o(P),x?.field==="input"&&w(null)},I=P=>{l(P),x?.field==="groundTruth"&&w(null)},N=P=>{f(P),x?.field==="toolMocks"&&w(null)},A=()=>{_(!1)};return a.jsxs(_i,{dialogTitle:"Add Item",dialogDescription:"Create a new dataset item",isOpen:t,onClose:A,level:1,children:[a.jsx(_i.Top,{children:"Add Item"}),a.jsxs(_i.Content,{children:[a.jsx(_i.Header,{children:a.jsx(_i.Heading,{children:"Add Item"})}),a.jsxs("form",{onSubmit:T,className:"grid gap-4",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-input",required:!0,children:"Input (JSON)"}),a.jsx(Or,{id:"input-item-input","aria-invalid":x?.field==="input"?!0:void 0,"aria-describedby":x?.field==="input"?qi("item-input"):void 0,value:s,onChange:E,showCopyButton:!1,className:"min-h-[240px]"}),x?.field==="input"&&a.jsx(bN,{name:"item-input",field:"input",errors:x.errors})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),a.jsx(Or,{id:"input-item-ground-truth","aria-invalid":x?.field==="groundTruth"?!0:void 0,"aria-describedby":x?.field==="groundTruth"?qi("item-ground-truth"):void 0,value:i,onChange:I,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="groundTruth"&&a.jsx(bN,{name:"item-ground-truth",field:"groundTruth",errors:x.errors})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),a.jsx(Or,{id:"input-item-trajectory",value:c,onChange:u,showCopyButton:!1,className:"min-h-[200px]"})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),a.jsx(Or,{id:"input-item-tool-mocks","aria-invalid":x?.field==="toolMocks"?!0:void 0,"aria-describedby":x?.field==="toolMocks"?qi("item-tool-mocks"):void 0,value:d,onChange:N,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="toolMocks"&&a.jsx(bN,{name:"item-tool-mocks",field:"toolMocks",errors:x.errors})]}),a.jsx(RXt,{overrideEnabled:h,onOverrideEnabledChange:p,selectedScorerIds:m,onSelectedScorerIdsChange:y,disabled:k.isPending}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-request-context",children:"Request Context (JSON, optional)"}),a.jsx(Or,{id:"input-item-request-context",value:v,onChange:b,showCopyButton:!1,className:"min-h-[200px]"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Qt,{}),type:"button",onClick:A,children:"Cancel"}),a.jsx(le,{icon:a.jsx(Kr,{}),type:"submit",variant:"primary",disabled:k.isPending,children:k.isPending?"Adding...":"Add Item"})]})]})]})]})}const nO=e=>JSON.stringify(e??null,null,2),Ijs=[{key:"input",title:"Input",icon:a.jsx(DD,{}),value:e=>nO(e.input)},{key:"groundTruth",title:"Ground Truth",icon:a.jsx(ES,{}),value:e=>nO(e.groundTruth)},{key:"expectedTrajectory",title:"Expected Trajectory",icon:a.jsx(lCe,{}),value:e=>e.expectedTrajectory!=null?nO(e.expectedTrajectory):void 0},{key:"toolMocks",title:"Tool Mocks",icon:a.jsx(wu,{}),value:e=>nO(e.toolMocks??[])},{key:"scorerIds",title:"Scorers",icon:a.jsx(nCe,{}),value:e=>e.scorerIds===void 0?"Inherited from dataset":nO(e.scorerIds)},{key:"requestContext",title:"Request Context",icon:a.jsx(wl,{}),value:e=>e.requestContext!=null?nO(e.requestContext):void 0},{key:"metadata",title:"Metadata",icon:a.jsx(U1,{}),value:e=>nO(e.metadata)}];function ZSe({item:e,diff:t}){return a.jsxs(a.Fragment,{children:[a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Dataset Id"}),a.jsx(Lt.ValueWithCopyBtn,{copyTooltip:"Copy Dataset Id to clipboard",copyValue:e.datasetId,children:e.datasetId}),a.jsx(Lt.Key,{children:"Version"}),a.jsxs(Lt.Value,{children:["v",e.datasetVersion]}),a.jsx(Lt.Key,{children:"Created"}),a.jsx(Lt.Value,{children:Rr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")}),a.jsx(Lt.Key,{children:"Updated"}),a.jsx(Lt.Value,{children:e.updatedAt&&new Date(e.updatedAt).getTime()!==new Date(e.createdAt).getTime()?Rr(new Date(e.updatedAt),"MMM d, yyyy h:mm aaa"):"n/a"})]}),a.jsx("div",{className:"mt-3 grid gap-3",children:Ijs.map(n=>{const r=n.value(e),s=t?n.value(t.against):void 0;return r===void 0&&s===void 0?null:a.jsx(At.CodeSection,{title:n.title,icon:n.icon,codeStr:r??"",diff:t?{against:s??"",side:t.side}:void 0},n.key)})})]})}function Ajs({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:s,setMetadataValue:o,trajectoryValue:i,setTrajectoryValue:l,toolMocksValue:c,setToolMocksValue:u,scorerOverrideEnabled:d,setScorerOverrideEnabled:f,selectedScorerIds:h,setSelectedScorerIds:p,requestContextValue:m,setRequestContextValue:y,validationErrors:v,onSave:b,onCancel:x,isSaving:w}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"mb-4",children:a.jsxs("h3",{className:"flex items-center gap-2 text-heading",children:[a.jsx(qd,{className:"h-5 w-5"})," Edit Item"]})}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-input",required:!0,children:"Input (JSON)"}),a.jsx(Or,{id:"input-item-input","aria-invalid":v?.field==="input"?!0:void 0,"aria-describedby":v?.field==="input"?qi("item-input"):void 0,value:e,onChange:t,showCopyButton:!1,className:"min-h-[120px]"}),v?.field==="input"&&a.jsx(bN,{name:"item-input",field:"input",errors:v.errors})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),a.jsx(Or,{id:"input-item-ground-truth","aria-invalid":v?.field==="groundTruth"?!0:void 0,"aria-describedby":v?.field==="groundTruth"?qi("item-ground-truth"):void 0,value:n,onChange:r,showCopyButton:!1,className:"min-h-[100px]"}),v?.field==="groundTruth"&&a.jsx(bN,{name:"item-ground-truth",field:"groundTruth",errors:v.errors})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),a.jsx(Or,{id:"input-item-trajectory",value:i,onChange:l,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),a.jsxs("p",{className:"text-caption text-muted-foreground",children:["Ordered static mocks served in place of executing the tool. Each entry is"," ",a.jsx("code",{children:'{ "toolName", "args", "output" }'}),". Calling a mocked tool with non-matching args fails the item; unmocked tools run live."]}),a.jsx(Or,{id:"input-item-tool-mocks","aria-invalid":v?.field==="toolMocks"?!0:void 0,"aria-describedby":v?.field==="toolMocks"?qi("item-tool-mocks"):void 0,value:c,onChange:u,showCopyButton:!1,className:"min-h-[100px]"}),v?.field==="toolMocks"&&a.jsx(bN,{name:"item-tool-mocks",field:"toolMocks",errors:v.errors})]}),a.jsx(RXt,{overrideEnabled:d,onOverrideEnabledChange:f,selectedScorerIds:h,onSelectedScorerIdsChange:p,disabled:w}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-request-context",children:"Request Context (JSON, optional)"}),a.jsx(Or,{id:"input-item-request-context",value:m,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-metadata",children:"Metadata (JSON, optional)"}),a.jsx(Or,{id:"input-item-metadata",value:s,onChange:o,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"flex gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Hn,{}),variant:"primary",onClick:b,disabled:w,children:w?"Saving...":"Save Changes"}),a.jsx(le,{icon:a.jsx(Qt,{}),onClick:x,disabled:w,children:"Cancel"})]})]})]})}const Rjs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Pjs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:o,isLoading:i}=nf(),{data:l,isLoading:c}=lp(),{data:u,isLoading:d}=Gf(),f=e==="agent"?Object.entries(o??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="workflow"?Object.entries(l??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="scorer"?Object.entries(u??{}).map(([y,v])=>({value:y,label:v.scorer?.config?.name??y})):[],h=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,p=y=>{t(y),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Target Type"}),a.jsx(qa,{options:Rjs,value:e,onValueChange:p,placeholder:"Select target type",searchPlaceholder:"Search types...",emptyText:"No types available",container:s})]}),e&&a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:m}),a.jsx(qa,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:h,container:s})]})]})}const $js=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);function Mjs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return jm(e)}catch(r){return console.error("Failed to parse requestContextSchema:",r),null}},[e]);return n?a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{children:"Request Context"}),a.jsx(z3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:"Failed to parse request context schema"})})}function ece({index:e,done:t,isLast:n,children:r}){return a.jsxs("li",{className:"flex gap-4",children:[a.jsxs("div",{className:"flex flex-col items-center",children:[a.jsx("span",{"aria-hidden":"true",className:Z("flex size-6 shrink-0 items-center justify-center rounded-full border text-meta",t?"border-accent1 bg-accent1 text-white":"border-border text-muted-foreground"),children:e}),!n&&a.jsx("span",{"aria-hidden":"true",className:"mt-2 w-px flex-1 bg-border"})]}),a.jsx("div",{className:Z("min-w-0 flex-1 space-y-3",!n&&"pb-4"),children:r})]})}function HX({initialDatasetId:e,initialDatasetVersion:t,initialScorerIds:n,initialTargetType:r,initialTargetId:s,initialName:o,initialDescription:i,open:l,onOpenChange:c,onSuccess:u}){const d=g.useRef(null),[f,h]=g.useState(o??""),[p,m]=g.useState(i??""),[y,v]=g.useState(e??""),[b,x]=g.useState(t??null),[w,k]=g.useState(r??""),[C,_]=g.useState(s??""),[T,E]=g.useState(n??null),[I,N]=g.useState({}),[A,P]=g.useState(""),{triggerExperiment:F}=dl(),{data:L}=pv(y),{total:q}=YI(y,void 0,b),V=L?.requestContextSchema,H=L?.scorerIds??[],B=T===null&&H.length>0,W=T??H,z=!!(V&&Object.keys(V).length>0),Y=!!(y&&w&&C&&f.trim()),D=F.isPending,R=[!f.trim()&&"name",!y&&"dataset",!C&&"target"].filter(Boolean),M=z?Object.values(I).some(ce=>ce!==void 0&&ce!==""):A.trim().length>0,U=ce=>{v(ce),x(null),E(n??null),N({})},Q=()=>{h(o??""),m(i??""),v(e??""),x(t??null),k(r??""),_(s??""),E(n??null),N({}),P("")},ee=()=>{if(z){const ce=Object.entries(I).filter(([,J])=>J!==void 0&&J!=="");return ce.length>0?Object.fromEntries(ce):void 0}if(A.trim()){let ce;try{ce=JSON.parse(A)}catch{throw new Error("Request Context must be valid JSON")}if(!ce||typeof ce!="object"||Array.isArray(ce))throw new Error("Request Context must be a JSON object");return ce}},X=async()=>{if(!y||!w||!C||!f.trim())return;let ce;try{ce=ee()}catch(J){const re=J instanceof Error?J.message:"Request Context must be valid JSON";du.error(re);return}try{const J=await F.mutateAsync({datasetId:y,name:f.trim(),description:p.trim()||void 0,targetType:w,targetId:C,scorerIds:W.length>0?W:void 0,version:b??void 0,requestContext:ce});du.success("Experiment triggered successfully"),c(!1),u?.(J.experimentId),Q()}catch(J){const re=J instanceof Error?J.message:"Failed to trigger experiment";du.error(re)}},te=()=>{D||(c(!1),Q())},ne=ce=>{(ce.metaKey||ce.ctrlKey)&&ce.key==="Enter"&&Y&&!D&&(ce.preventDefault(),X())};return a.jsx(gs,{open:l,onOpenChange:te,children:a.jsxs(ss,{ref:d,className:"w-[640px] max-w-[calc(100vw-2rem)] gap-0 p-0",onKeyDown:ne,children:[a.jsxs(os,{className:"border-b border-border px-4 py-4",children:[a.jsx(es,{children:"Run experiment"}),a.jsx(Fs,{className:"not-sr-only text-caption text-muted-foreground",children:"Pick a dataset, choose what to run it against, and optionally score the results."})]}),a.jsxs(ws,{className:"max-h-[70vh] space-y-6 overflow-y-auto px-4 py-5",children:[a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{htmlFor:"experiment-name",children:"Name *"}),a.jsx(vr,{id:"experiment-name",value:f,onChange:ce=>h(ce.target.value),placeholder:"Enter experiment name",autoFocus:!0,disabled:D})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{htmlFor:"experiment-description",children:"Description"}),a.jsx(Jh,{id:"experiment-description",value:p,onChange:ce=>m(ce.target.value),placeholder:"Enter experiment description (optional)",disabled:D,rows:2})]})]}),a.jsxs("ol",{className:"list-none",children:[a.jsxs(ece,{index:1,done:!!y,children:[a.jsxs("div",{className:"grid grid-cols-[1fr_140px] gap-3",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Dataset"}),a.jsx(rkt,{value:y,onValueChange:U,container:d})]}),y&&a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Version"}),a.jsx(jXt,{datasetId:y,value:b,onValueChange:x,container:d})]})]}),y&&q!==void 0&&a.jsxs("p",{className:"text-meta text-muted-foreground",children:[q," ",q===1?"item":"items"]})]}),a.jsxs(ece,{index:2,done:!!C,children:[a.jsx(Pjs,{targetType:w,setTargetType:k,targetId:C,setTargetId:_,container:d}),w&&!C&&a.jsxs("p",{className:"text-meta text-muted-foreground",children:["Choose ",w==="agent"?"an":"a"," ",w," to run"]})]}),a.jsx(ece,{index:3,done:W.length>0,isLast:!0,children:a.jsx(qX,{selectedScorers:W,setSelectedScorers:E,disabled:D,container:d,helperText:B?"Pre-filled from the dataset's default scorers.":"Scores are computed after each item runs."})})]}),a.jsxs(Za,{children:[a.jsxs(Ta,{className:"flex items-center gap-2 text-caption",children:[a.jsx(xr,{className:"size-4"}),"Request Context (JSON, optional)",M&&a.jsx($t,{size:"xs",variant:"blue",children:"set"})]}),a.jsx(ja,{className:"pt-3",children:z?a.jsx(Mjs,{requestContextSchema:V,onChange:N}):a.jsx(Or,{value:A,onChange:P,showCopyButton:!1,"aria-label":"Request context JSON",className:"min-h-[160px]"})})]})]}),a.jsxs(sc,{className:"items-center border-t border-border px-4 py-4 sm:justify-between",children:[a.jsx("p",{"data-testid":"experiment-run-status","aria-live":"polite",className:"flex items-center gap-2",children:R.length===0?a.jsxs(a.Fragment,{children:[a.jsx($t,{variant:"green",indicator:"dot",children:"Ready"}),a.jsxs("span",{className:"text-meta text-muted-foreground",children:[q??0," items · ",w," · ",W.length," scorers"]})]}):a.jsxs($t,{variant:"neutral",indicator:"dot",children:["Missing ",R.join(", ")]})}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:te,disabled:D,children:"Cancel"}),a.jsx(le,{variant:"primary",onClick:X,disabled:!Y||D,children:D?a.jsxs(a.Fragment,{children:[a.jsx(_n,{className:"h-4 w-4"}),"Running..."]}):a.jsxs(a.Fragment,{children:["Run",a.jsxs("span",{className:"ml-1 inline-flex gap-0.5","aria-hidden":"true",children:[a.jsx(Ad,{size:"xs",children:$js?"⌘":"Ctrl"}),a.jsx(Ad,{size:"xs",children:"↵"})]})]})})]})]})]})})}const PXt=g.createContext(null);function Djs({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:o,children:i}){const l=Ur(),u=Qke("/experiments/:experimentId/items/:itemId")?.params.itemId,d=g.useCallback(v=>{l(`/experiments/${e}/items/${encodeURIComponent(v)}`)},[l,e]),f=g.useCallback(()=>{l(`/experiments/${e}`)},[l,e]),h=g.useMemo(()=>u?r.findIndex(v=>v.itemId===u):-1,[r,u]),p=g.useMemo(()=>{if(h<=0)return;const v=r[h-1].itemId;return()=>d(v)},[h,r,d]),m=g.useMemo(()=>{if(h<0||h>=r.length-1)return;const v=r[h+1].itemId;return()=>d(v)},[h,r,d]);NXt({active:!!u,onPrevious:p,onNext:m,onClose:f});const y=g.useMemo(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:o,currentItemId:u,openItem:d,close:f,goToPreviousItem:p,goToNextItem:m}),[e,t,n,r,s,o,u,d,f,p,m]);return a.jsx(PXt.Provider,{value:y,children:i})}function $Xt(){const e=g.useContext(PXt);if(!e)throw new Error("useExperimentItemPanel must be used within an ExperimentItemPanelProvider");return e}const Ljs=new Set(["itemId","id","status","input","tags","scores","startedAt"]);function MXt({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:o,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,emptyMessage:d="No results yet",selectedIds:f,onToggleSelect:h,onToggleSelectAll:p,sort:m,onSortChange:y}){const{Link:v,paths:b}=fn(),x=!!(f&&h),w=s.filter(H=>Ljs.has(H.name)||i?.includes(H.name)),k=[x?"2rem":"",...w.map(H=>H.size)].filter(Boolean).join(" "),C=H=>w.some(B=>B.name===H),_=C("itemId")||C("id"),T=C("status"),E=C("input"),I=C("tags"),N=C("scores"),A=C("startedAt"),P=f?e.filter(H=>f.has(H.id)).length:0,F=e.length>0&&P===e.length,{containerRef:L,getRowProps:q}=Uc({count:e.length}),V=H=>i?.includes(H.name)?a.jsx(xe.TopCell,{children:a.jsxs(v,{href:b.scorerLink(H.name),className:"flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[a.jsx(db,{}),a.jsx("span",{className:"min-w-0 truncate",children:H.label})]})},H.name):H.name==="startedAt"&&y?a.jsx(xe.SortableTopCell,{sortKey:"startedAt",sort:m?.key==="startedAt"?m.direction:void 0,onSortChange:y,children:H.label},H.name):a.jsx(xe.TopCell,{children:H.label},H.name);return t?a.jsx(hc,{columns:k}):a.jsxs(xe,{columns:k,className:"min-w-0",scrollRef:L,fit:"container",children:[a.jsxs(xe.Top,{hasLeadingCell:x,children:[x&&(p?a.jsx(xe.TopSelectCell,{checked:F?!0:P>0?"indeterminate":!1,onToggle:p,"aria-label":"Select all"}):a.jsx(xe.TopCell,{children:" "})),x?a.jsx(xe.TopCells,{colStart:2,children:w.map(V)}):w.map(V)]}),e.length===0?a.jsx(xe.NoMatch,{message:d}):a.jsxs(a.Fragment,{children:[e.map((H,B)=>{const W=!!H.error,z=H.id===n,Y=a.jsxs(a.Fragment,{children:[_&&a.jsxs(xe.Cell,{className:"flex items-center gap-1.5 text-body-sm tracking-wide text-muted-foreground",children:[a.jsx("span",{children:H.itemId?.slice(0,8)??""}),W&&a.jsxs(In,{children:[a.jsx(On,{render:a.jsx($D,{role:"img","aria-label":"Error",className:"size-3.5 text-error"})}),a.jsx(Cn,{children:zjs(H.error)})]})]}),T&&a.jsx(xe.Cell,{className:"flex items-center","data-testid":`result-status-${H.id}`,children:H.status?a.jsx(BMe,{status:H.status}):a.jsx("span",{className:"text-placeholder",children:"—"})}),E&&a.jsx(xe.TextCell,{font:"mono",children:Ujs(Bjs(H.input),200)}),I&&a.jsx(xe.Cell,{className:"flex items-center gap-1 overflow-hidden","data-testid":`result-tags-${H.id}`,children:H.tags?.map(D=>a.jsx(UX,{value:D,className:"shrink-0"},D))}),N&&a.jsx(xe.Cell,{children:a.jsx(Fjs,{scores:H.scores})}),A&&(H.startedAt?a.jsx(xe.CreatedCell,{timestamp:H.startedAt}):a.jsx(xe.Cell,{className:"text-placeholder",children:"—"})),i?.map(D=>{const M=o?.[H.itemId]?.find(U=>U.scorerId===D);return a.jsx(xe.Cell,{className:"font-mono text-body-sm text-muted-foreground",children:M!=null?M.score.toFixed(3):"-"},D)})]});return x?a.jsxs(xe.RowWrapper,{children:[a.jsx(xe.SelectCell,{checked:f.has(H.id),onToggle:()=>h(H.id),"aria-label":`Select result ${H.itemId}`}),a.jsx(xe.RowButton,{colStart:2,featured:z,"data-selected":z||void 0,onClick:()=>r(H.id),...q(B),children:Y})]},H.id):a.jsx(xe.RowButton,{featured:z,"data-selected":z||void 0,onClick:()=>r(H.id),...q(B),children:Y},H.id)}),a.jsx(xe.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Fjs({scores:e}){const t=Array.isArray(e)?e.map(n=>n.score).filter(n=>n!=null):Object.values(e??{});return t.length===0?a.jsx(Ae,{variant:"meta",tone:"faint",children:"—"}):a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx(Et,{size:"xs",className:"text-muted-foreground",children:a.jsx(dv,{})}),a.jsx(Ae,{variant:"meta",tone:"muted",className:"font-mono",children:t[0].toFixed(2)}),t.length>1&&a.jsxs($t,{children:["+",t.length-1]})]})}function zjs(e){return e&&typeof e=="object"&&"message"in e&&typeof e.message=="string"?e.message||"Error":typeof e=="string"&&e?e:"Error"}function Bjs(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Ujs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Vjs({experimentId:e,experimentStatus:t,results:n,isLoading:r,setEndOfListElement:s,isFetchingNextPage:o,hasNextPage:i,selectedIds:l,onToggleSelect:c,sort:u,onSortChange:d}){const{currentItemId:f,openItem:h,close:p}=$Xt(),m=g.useMemo(()=>f?n.find(w=>w.itemId===f)?.id??null:null,[n,f]),{data:y}=I1(e,t),v=g.useMemo(()=>{if(!y)return[];const w=new Set;for(const k of Object.values(y))for(const C of k)w.add(C.scorerId);return[...w].sort()},[y]),b=g.useCallback(w=>{const k=n.find(C=>C.id===w);k&&(k.itemId===f?p():h(k.itemId))},[n,f,p,h]),x=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"auto"},{name:"status",label:"Status",size:"auto"},{name:"input",label:"Input",size:"1fr"},{name:"tags",label:"Tags",size:"auto"},{name:"startedAt",label:"Created",size:"auto"},...v.map(w=>({name:w,label:w,size:"auto"}))],[v]);return a.jsx("div",{className:"h-full min-h-0 min-w-0 overflow-y-auto",children:a.jsx(MXt,{results:n,isLoading:r,featuredResultId:m,onResultClick:b,columns:x,scoresByItemId:y,scorerIds:v,setEndOfListElement:s,isFetchingNextPage:o,hasNextPage:i,selectedIds:l,onToggleSelect:c,sort:u,onSortChange:d})})}const Eot={pending:{icon:a.jsx(jC,{className:"size-4 text-warning1"}),label:"Pending"},running:{icon:a.jsx(_n,{size:"sm"}),label:"Running"},completed:{icon:a.jsx(QOe,{className:"size-4 text-muted-foreground"}),label:"Completed"},failed:{icon:a.jsx(MD,{className:"size-4 text-error"}),label:"Failed"}};function qjs({status:e,className:t}){const n=Eot[e]??Eot.pending;return a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{tabIndex:0,className:Z("flex shrink-0 items-center",t),children:n.icon})}),a.jsx(Cn,{children:n.label})]})}function Hjs({children:e,className:t}){return a.jsx("div",{className:Z("grid content-start gap-4 overflow-y-auto",t),children:e})}function Wjs({children:e,className:t}){return a.jsx("div",{className:"flex w-full overflow-y-auto",children:a.jsx("div",{className:Z("grid w-full content-start gap-4 overflow-y-auto",t),children:e})})}function Zjs({children:e,className:t}){return a.jsx("div",{className:Z("flex w-full flex-wrap items-center justify-between gap-3 gap-x-4",t),children:e})}const DXt=Object.assign(Wjs,{Content:Hjs,Toolbar:Zjs});function Gjs({children:e,className:t}){return a.jsx("div",{className:Z("grid size-full grid-cols-1 overflow-y-auto",t),children:e})}const Qjs=e=>{const t=Je();return kt({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},select:_Kt,enabled:!!e})};function Yjs(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${Rr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function Kjs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=vXt(e),o=(s??[]).map(i=>({value:String(i.version),label:`${Yjs(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return a.jsxs(DXt.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[a.jsx("div",{}),a.jsx(Su,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:o,value:t??"",onValueChange:i=>r?.(i,n??"")}),a.jsx(Su,{label:"Version B",labelIsHidden:!0,name:"version-b",options:o,value:n??"",onValueChange:i=>r?.(t??"",i)}),a.jsx("div",{})]})}function LXt({children:e,className:t}){return a.jsx("div",{className:Z("",t),children:e})}function Xjs({date:e,className:t,withTime:n=!1}){const r=e?NOt(new Date(e)):!1,s=e?$3(new Date(e))?"Today":Rr(new Date(e),"MMM dd"):"",o=e&&!r?Rr(new Date(e),"yyyy"):"",i=e&&n?`${Rr(new Date(e),"'at' h:mm aaa")}`:"";return a.jsxs("div",{className:Z("truncate text-body text-placeholder",t),children:[s," ",o," ",i]})}function e2e(e){return!e||e.length===0?"":e?.map(t=>t.size).join(" ")}function Jjs({columns:e,isSelectionActive:t,children:n}){return a.jsx("div",{className:Z("sticky top-0 z-10 mb-2 rounded-lg bg-card px-3"),children:a.jsx("div",{className:Z("grid items-center gap-3 text-left text-meta tracking-widest text-muted-foreground uppercase",{"pl-12 [&>label]:absolute [&>label]:left-0":t}),style:{gridTemplateColumns:e2e(e)},children:n})})}function eNs({children:e,className:t}){return a.jsx("span",{className:Z("py-3",t),children:e})}function tNs({id:e,className:t,isShortened:n=!0}){const r=n?e.slice(0,8):e;return a.jsx("div",{className:Z("truncate py-[0.6rem] text-body text-placeholder",t),children:r})}function nNs({children:e}){return a.jsx("ul",{className:"grid content-start",children:e})}function rNs({children:e}){const t=g.useRef(null);return a.jsx("div",{ref:t,className:Z("overflow-y-auto"),children:e})}function sNs({children:e,className:t}){return a.jsx("label",{className:Z("flex h-full w-14 items-center justify-center rounded-lg text-caption hover:bg-fill-subtle",t),children:e})}function oNs({children:e,href:t,className:n,LinkComponent:r,tooltip:s}){const o=a.jsx(r,{href:t,className:Z("flex w-full items-center justify-center gap-4 rounded-lg px-3 py-2 text-left","hover:bg-fill-subtle",Oo.colors,w0.visible,n),children:e});return s==null?o:a.jsxs(In,{children:[a.jsx(On,{render:o}),a.jsx(Cn,{children:s})]})}function iNs({children:e,message:t,className:n,type:r}){return!e&&!t?null:a.jsx("div",{className:Z("grid border-t border-border",n),children:t?a.jsxs("p",{className:Z("grid justify-center justify-items-center gap-2 p-5 text-center text-body text-muted-foreground","[&>svg]:size-[1.5em] [&>svg]:opacity-75",{"[&>svg]:text-red-500":r==="error"}),children:[r==="error"?a.jsx(uu,{}):a.jsx(Hf,{})," ",t]}):e})}function aNs({isLoading:e,hasMore:t,setEndOfListElement:n,loadingText:r="Loading more data...",noMoreDataText:s="No more data to load"}){return n?a.jsxs("div",{ref:n,className:"mt-4 flex justify-center text-body text-muted-foreground opacity-50",children:[e&&r,!t&&!e&&s]}):null}function lNs({currentPage:e,hasMore:t,onNextPage:n,onPrevPage:r}){const s=typeof e=="number"&&e>0||t;return a.jsxs("div",{className:Z("flex items-center justify-center gap-4 pt-4 text-body text-muted-foreground"),children:[a.jsxs("span",{children:["Page ",a.jsx("b",{children:e?e+1:"1"})]}),s&&a.jsxs("div",{className:Z("flex gap-4","[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:rounded-md [&>button]:border [&>button]:border-border [&>button]:p-1 [&>button]:px-2 [&>button]:text-muted-foreground [&>button]:transition-colors [&>button:hover]:text-foreground","[&_svg]:size-[1em] [&_svg]:text-muted-foreground"),children:[typeof e=="number"&&e>0&&a.jsxs("button",{onClick:r,children:[a.jsx(Eu,{}),"Previous"]}),t&&a.jsxs("button",{onClick:n,children:["Next",a.jsx(qf,{})]})]})]})}function cNs({children:e,className:t}){return a.jsx("div",{className:Z("grid grid-rows-[auto_1fr] overflow-y-auto",t),children:e})}function uNs({isSelected:e,children:t,columns:n}){return a.jsx("li",{className:Z("flex overflow-hidden rounded-lg border border-transparent border-t-border py-[3px] pb-[2px] text-body text-foreground first:border-t-transparent","[&:last-child>button]:rounded-b-lg","[&.selected-row]:border [&.selected-row]:border-dashed [&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:first:border-t","[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent","[.selected-row+&]:rounded-t-none",Oo.colors,{"selected-row":e,"grid gap-3 px-3":n}),style:{gridTemplateColumns:e2e(n)},children:t})}function dNs({item:e,isFeatured:t,onClick:n,children:r,columns:s,className:o,disabled:i,tooltip:l,...c}){const u=()=>{n?.(e?.id)},d=a.jsx("button",{...c,onClick:u,className:Z("grid w-full items-center gap-3 rounded-lg px-3 text-left",Oo.colors,w0.visible,{"bg-fill-hover":t,"hover:bg-fill-subtle":e&&!t&&!i},o),style:{gridTemplateColumns:e2e(s)},disabled:i,children:r});return l==null?d:a.jsxs(In,{children:[a.jsx(On,{render:d}),a.jsx(Cn,{children:l})]})}function fNs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function hNs({status:e}){return e?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("div",{className:Z("relative flex h-full w-10 items-center justify-center bg-transparent"),children:a.jsx("div",{className:Z("size-2 rounded-full",{"bg-green-600":["success","completed"].includes(e),"bg-red-700":["error","failed"].includes(e),"bg-yellow-500":["pending","running"].includes(e)})})})}),a.jsx(Cn,{children:fNs(e)})]}):null}function pNs({children:e,isLoading:t,className:n}){return a.jsx("div",{className:Z("truncate py-[0.6rem] text-body text-muted-foreground",n),children:t?a.jsx("div",{className:"h-4 animate-pulse rounded-md bg-muted text-transparent select-none"}):e})}const Tot={latest:"Latest version",deleted:"Deleted in this version"};function mNs({version:e,date:t,isLatest:n,isDeleted:r}){return a.jsxs(LXt,{className:Z("grid grid-cols-[1fr_auto] pl-1"),children:[a.jsxs("div",{className:Z("grid gap-1 leading-none text-muted-foreground",{"text-muted-foreground":n}),children:[a.jsxs("strong",{className:"text-body-sm",children:["v. ",e]}),a.jsx("em",{className:"text-caption text-placeholder",children:t?Rr(new Date(t),"MMM d, yyyy HH:mm"):null})]}),(n||r)&&a.jsxs("div",{className:"flex items-center gap-1",children:[n&&a.jsx("span",{className:"inline-flex",role:"img","aria-label":Tot.latest,children:a.jsx($t,{variant:"blue",size:"sm",icon:a.jsx(jC,{})})}),r&&a.jsx("span",{className:"inline-flex",role:"img","aria-label":Tot.deleted,children:a.jsx($t,{variant:"red",size:"sm",icon:a.jsx(ZOe,{})})})]})]})}const Dp=Object.assign(cNs,{Header:Jjs,HeaderCol:eNs,Items:nNs,Scroller:rNs,Row:uNs,RowButton:dNs,Message:iNs,NextPageLoading:aNs,Pagination:lNs,Cell:LXt,TextCell:pNs,StatusCell:hNs,VersionCell:mNs,IdCell:tNs,DateCell:Xjs,LinkCell:oNs,LabelCell:sNs}),gNs=[{name:"id",label:"ID",size:"1fr"},{name:"versionA",label:"Version A",size:"1fr"},{name:"versionB",label:"Version B",size:"1fr"},{name:"compare",label:"Compare",size:"10rem"}],L7={added:{badgeVariant:"blue",borderColor:"border-blue-900",icon:a.jsx(Kr,{}),tooltip:"Added in this version"},changed:{badgeVariant:"yellow",borderColor:"border-yellow-900",icon:a.jsx(U2n,{}),tooltip:"Changed in this version"},same:{badgeVariant:"green",borderColor:"border-green-900",icon:a.jsx(tSt,{}),tooltip:"Same in both versions"}};function tce({red:e=!1,tooltip:t}){return a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{}),role:"img",tabIndex:0,"aria-label":t,className:"rounded focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid",children:a.jsx(ZOe,{className:Z("h-5 w-5 text-muted-foreground/40",{"text-red-900":e})})}),a.jsx(Cn,{children:t})]})}function nce({variant:e,version:t}){if(!e)return a.jsxs("span",{className:"text-body text-muted-foreground",children:["v. ",t]});const{badgeVariant:n,icon:r,tooltip:s}=L7[e];return a.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&a.jsxs("span",{className:"flex min-w-16 justify-end pr-3 text-body text-muted-foreground",children:["v. ",t]}),a.jsx("span",{className:"inline-flex",role:"img","aria-label":s,children:a.jsx($t,{variant:n,size:"xs",icon:r})})]})}function vNs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function jot({otherVersionExists:e,status:t,isNewer:n}){if(!e&&n)return"added";if(t==="changed"&&n)return"changed"}function yNs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:o}){const{Link:i}=fn(),l=t>n;return a.jsx(Dp,{children:a.jsx(Dp.Scroller,{children:a.jsx(Dp.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=o.get(c),f=vNs(u,d),h=jot({otherVersionExists:d!==void 0,status:f,isNewer:l}),p=jot({otherVersionExists:u!==void 0,status:f,isNewer:!l});return a.jsxs(Dp.Row,{columns:gNs,children:[a.jsx(Dp.IdCell,{id:c,isShortened:!1}),f!=="same"?a.jsxs(a.Fragment,{children:[u?.datasetVersion?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:h?L7[h].tooltip:void 0,children:a.jsx(nce,{variant:h,version:u.datasetVersion})}):a.jsx(Dp.Cell,{className:"flex items-center justify-center",children:a.jsx(tce,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:p?L7[p].tooltip:void 0,children:a.jsx(nce,{variant:p,version:d.datasetVersion})}):a.jsx(Dp.Cell,{className:"flex items-center justify-center",children:a.jsx(tce,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",tooltip:L7.same.tooltip,children:a.jsx(nce,{variant:"same",version:d?.datasetVersion})}),f==="changed"?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?version=${u?.datasetVersion}&compare=${d?.datasetVersion}`,children:"Compare"}):a.jsx(Dp.Cell,{children:a.jsx(tce,{tooltip:"Comparing is available only for changed items"})})]},c)})})})})}const mC="targetType",yS="targetId";function FXt({resetParams:e=[]}={}){const[t,n]=oo(),r=e.join(","),s=t.get(mC),o=VX(s)?s:"",i=o?t.get(yS)??"":"",l=g.useCallback(d=>{n(f=>{const h=new URLSearchParams(f);d?h.set(mC,d):h.delete(mC),h.delete(yS);for(const p of r.split(","))p&&h.delete(p);return h},{replace:!0})},[n,r]),c=g.useCallback(d=>{n(f=>{const h=new URLSearchParams(f);d?h.set(yS,d):h.delete(yS);for(const p of r.split(","))p&&h.delete(p);return h},{replace:!0})},[n,r]),u=g.useCallback(()=>l(""),[l]);return{targetType:o,targetId:i,setTargetType:l,setTargetId:c,clear:u}}const G$=[Br("/datasets")],bNs=["name","updatedAt"];function xNs(){const[e,t]=oo(),{sort:n,onSortChange:r}=ck({searchParams:e,setSearchParams:t,allowedKeys:bNs}),s=g.useMemo(()=>n?{field:n.key,direction:n.direction==="asc"?"ASC":"DESC"}:void 0,[n]),[o,i]=g.useState(""),[l,c]=g.useState("all"),[u,d]=g.useState("all"),{targetType:f,targetId:h,setTargetType:p,setTargetId:m,clear:y}=FXt(),{data:v=[],isLoading:b,error:x,isFetchingNextPage:w,hasNextPage:k,setEndOfListElement:C}=v6n({targetType:f,targetId:h},s),{data:_,isLoading:T,error:E}=BX(),I=g.useMemo(()=>_?.experiments??[],[_?.experiments]),N=g.useMemo(()=>pTs(v),[v]),A=b||T,P=x||E,F=Ur(),L=()=>{F("/datasets/new")},q=a.jsx(hK,{href:"/datasets/new",tooltip:"Create a dataset",children:"New dataset"});if(P&&Ss(P))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(Us,{variant:"fill"})]});if(P&&Ts(P))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(P)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load datasets",descriptionSlot:P.message})]});if(v.length===0&&!A&&!f)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),headerActions:q,children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(mTs,{onCreateClick:L})]});const V=l!=="all"||u!=="all"||o!==""||f!=="",H=()=>{i(""),c("all"),d("all"),y()};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),headerActions:q,actionRow:a.jsx(kTs,{search:o,onSearchChange:i,experimentFilter:l,onExperimentFilterChange:c,tagFilter:u,onTagFilterChange:d,tagOptions:N,targetType:f,onTargetTypeChange:p,targetId:h,onTargetIdChange:m,onReset:H,hasActiveFilters:V}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(fTs,{datasets:v,experiments:I,isLoading:A,search:o,experimentFilter:l,tagFilter:u,isFetchingNextPage:w,hasNextPage:k,setEndOfListElement:C,sort:n,onSortChange:r})]})}function wNs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function SNs({item:e,itemId:t,fallback:n,onClose:r,...s}){const o=e?.id??t;return a.jsx(At,{open:!!o,onClose:r,title:`Dataset item ${o??""}`,children:e?a.jsx(kNs,{item:e,onClose:r,...s},e.id):t?a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:r,tooltip:"Close detail panel"}),a.jsxs(At.Heading,{children:["Item",a.jsx(At.CopyId,{id:t})]})]}),n]}):null})}function kNs({datasetId:e,item:t,items:n,onItemChange:r,onClose:s}){const{Link:o}=fn(),{updateItem:i,deleteItem:l}=dl(),[c,u]=g.useState(!1),[d,f]=g.useState(""),[h,p]=g.useState(""),[m,y]=g.useState(""),[v,b]=g.useState(""),[x,w]=g.useState(""),[k,C]=g.useState(t.scorerIds!==void 0),[_,T]=g.useState(t.scorerIds??[]),[E,I]=g.useState(""),[N,A]=g.useState(null),[P,F]=g.useState(!1);g.useEffect(()=>{t&&(f(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),y(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),w(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),C(t.scorerIds!==void 0),T(t.scorerIds??[]),I(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),F(!1),A(null))},[t?.id]);const L=n.findIndex(D=>D.id===t.id),q=L>0?()=>r(n[L-1].id):void 0,V=L>=0&&L<n.length-1?()=>r(n[L+1].id):void 0,H=async()=>{let D;try{D=JSON.parse(d)}catch{Ye.error("Input must be valid JSON");return}let R;if(h.trim())try{R=JSON.parse(h)}catch{Ye.error("Ground Truth must be valid JSON");return}let M;if(m.trim())try{M=JSON.parse(m)}catch{Ye.error("Metadata must be valid JSON");return}let U=null;if(v.trim())try{U=JSON.parse(v)}catch{Ye.error("Expected Trajectory must be valid JSON");return}let Q;if(x.trim())try{const te=JSON.parse(x);if(!Array.isArray(te)){Ye.error("Tool Mocks must be a JSON array");return}Q=te}catch{Ye.error("Tool Mocks must be valid JSON");return}else Q=[];let ee;if(E.trim())try{ee=JSON.parse(E)}catch{Ye.error("Request Context must be valid JSON");return}let X;k?X=_:t.scorerIds!==void 0&&(X=null);try{const te=await i.mutateAsync({datasetId:e,itemId:t.id,input:D,groundTruth:R,metadata:M,expectedTrajectory:U,toolMocks:Q,scorerIds:X,requestContext:ee});Ye.success("Item updated successfully"),C(te.scorerIds!==void 0),T(te.scorerIds??[]),u(!1),A(null)}catch(te){const ne=wNs(te);ne?A(ne):Ye.error(`Failed to update item: ${te instanceof Error?te.message:"Unknown error"}`)}},B=()=>{f(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),y(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),w(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),C(t.scorerIds!==void 0),T(t.scorerIds??[]),I(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),A(null)},W=D=>{f(D),N?.field==="input"&&A(null)},z=D=>{p(D),N?.field==="groundTruth"&&A(null)},Y=async()=>{try{await l.mutateAsync({datasetId:e,itemId:t.id}),Ye.success("Item deleted successfully"),F(!1),s()}catch(D){Ye.error(`Failed to delete item: ${D instanceof Error?D.message:"Unknown error"}`)}};return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close detail panel"}),a.jsxs(At.Heading,{children:["Item",a.jsx(At.CopyId,{id:t.id})]}),a.jsxs(At.HeaderActions,{children:[!c&&a.jsxs(a.Fragment,{children:[a.jsx(le,{render:a.jsx(o,{href:`/datasets/${e}/items/${t.id}/versions?version=${t.datasetVersion}`}),size:"sm",variant:"ghost",tooltip:"Go to item versions history","aria-label":"Go to item versions history",children:a.jsx(aCe,{})}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"sm",variant:"ghost",tooltip:"Open actions menu","aria-label":"Open actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",className:"w-48",children:[a.jsxs(ht.Item,{onSelect:()=>u(!0),children:[a.jsx(qd,{}),"Edit"]}),a.jsxs(ht.Item,{onSelect:()=>F(!0),className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{}),"Delete Item"]})]})]})]}),a.jsx(At.NextPrevNav,{onPrevious:q,onNext:V,previousLabel:"Go to previous item",nextLabel:"Go to next item"})]})]}),a.jsx(At.Content,{children:c?a.jsx(Ajs,{inputValue:d,setInputValue:W,groundTruthValue:h,setGroundTruthValue:z,metadataValue:m,setMetadataValue:y,trajectoryValue:v,setTrajectoryValue:b,toolMocksValue:x,setToolMocksValue:w,scorerOverrideEnabled:k,setScorerOverrideEnabled:C,selectedScorerIds:_,setSelectedScorerIds:T,requestContextValue:E,setRequestContextValue:I,validationErrors:N,onSave:H,onCancel:B,isSaving:i.isPending}):a.jsx(ZSe,{item:t})}),a.jsx(Pt,{open:P,onOpenChange:F,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Item"}),a.jsx(Pt.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),a.jsxs(Pt.Footer,{children:[a.jsx(Pt.Cancel,{children:"Cancel"}),a.jsx(Pt.Action,{onClick:Y,children:l.isPending?"Deleting...":"Yes, Delete"})]})]})})]})}function ONs(){const{datasetId:e,items:t,isLoadingItems:n,currentItemId:r,openItem:s,close:o}=AXt(),i=g.useMemo(()=>r?t.find(d=>d.id===r):void 0,[t,r]),{data:l,isLoading:c}=IKt(i?"":e,!i&&r?r:""),u=i??l??void 0;return a.jsx(SNs,{datasetId:e,item:u,itemId:r,fallback:n||c?a.jsx(At.LoadingData,{}):a.jsxs(At.NoData,{children:['No loaded item "',r,'".']}),items:t,onItemChange:s,onClose:o})}function Q8({crumbs:e,children:t}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:e}),children:[a.jsx("h1",{className:"sr-only",children:"Dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:t})]})}function CNs(){const{datasetId:e,itemId:t}=hr(),n=[Br("/datasets"),{...DG,to:`/datasets/${encodeURIComponent(e)}`},...t?[{id:"dataset-items",label:"Items"},{id:"dataset-item",label:j_e(t)}]:[]],r=Ur(),[s,o]=oo(),{activeVersion:i,handleVersionChange:l}=JMe(s,o),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,y]=g.useState(!1),{data:v,error:b,isLoading:x}=pv(e),{data:w=[],isLoading:k}=YI(e,void 0,i),C=!k&&w.length===0;if(x)return null;if(b&&Ss(b))return a.jsx(Q8,{crumbs:n,children:a.jsx(Us,{})});if(b&&Ts(b))return a.jsx(Q8,{crumbs:n,children:a.jsx(As,{resource:"datasets"})});if(b&&AA(b)||!x&&!b&&!v)return a.jsx(Q8,{crumbs:n,children:a.jsx(dn,{titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:a.jsx(le,{render:a.jsx(vl,{to:"/datasets"}),icon:a.jsx(Eu,{}),children:"Back to Datasets"})})});if(b)return a.jsx(Q8,{crumbs:n,children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load dataset",descriptionSlot:b instanceof Error?b.message:"An unexpected error occurred. Please try again."})});const _=E=>{r(`/experiments/${E}`)},T=()=>{r("/datasets")};return a.jsxs(Cjs,{datasetId:e,items:w,isLoadingItems:k,children:[a.jsxs("div",{className:"h-full",children:[a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{children:a.jsx(Ejs,{datasetId:e,onAddItemClick:()=>f(!0),belowToolbarSlot:a.jsx(Tjs,{datasetId:e}),leftSlot:a.jsx("span",{className:"mr-3 text-caption whitespace-nowrap text-muted-foreground",children:v?.createdAt?`Created ${Rr(new Date(v.createdAt),"MMM d")}`:""}),rightSlot:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(le,{render:a.jsx(vl,{to:`/experiments?dataset=${e}`}),icon:a.jsx(sG,{}),children:"View experiments"}),a.jsx(jXt,{datasetId:e,value:i,onValueChange:l,currentVersion:v?.version,className:"w-36"}),C?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"cursor-not-allowed",children:a.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:a.jsx(le,{variant:"primary",icon:a.jsx(xu,{}),children:"Run Experiment"})})})}),a.jsx(Cn,{children:"Add items to the dataset before running an experiment"})]}):a.jsx(le,{variant:"primary",onClick:()=>u(!0),icon:a.jsx(xu,{}),children:"Run Experiment"}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Dataset actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",className:"w-48",children:[a.jsxs(ht.Item,{onSelect:()=>{r(`/datasets/${e}/edit`)},children:[a.jsx(qd,{})," Edit Dataset"]}),a.jsxs(ht.Item,{onSelect:()=>y(!0),children:[a.jsx(ed,{})," Duplicate Dataset"]}),a.jsxs(ht.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{})," Delete Dataset"]})]})]})]})})})]}),a.jsx(ONs,{})]}),a.jsx(HX,{initialDatasetId:e,initialDatasetVersion:i??void 0,open:c,onOpenChange:u,onSuccess:_},`${e}:${i??"latest"}`),a.jsx(Njs,{datasetId:e,open:d,onOpenChange:f}),v&&a.jsx(zTs,{open:m,onOpenChange:y,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&a.jsx(qTs,{open:h,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:T})]})}const zXt=[Br("/datasets"),DG,{id:"dataset-edit",label:"Edit dataset"}];function rce({children:e}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:zXt}),children:[a.jsx("h1",{className:"sr-only",children:"Edit dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:e})]})}function _Ns(){const{datasetId:e}=hr(),t=Ur(),{data:n,error:r,isLoading:s}=pv(e),o=()=>{t(`/datasets/${e}`)};return s?null:r&&Ss(r)?a.jsx(rce,{children:a.jsx(Us,{})}):r&&Ts(r)?a.jsx(rce,{children:a.jsx(As,{resource:"datasets"})}):r||!n?a.jsx(rce,{children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load dataset",descriptionSlot:r instanceof Error?r.message:"An unexpected error occurred. Please try again."})}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:zXt}),children:[a.jsx("h1",{className:"sr-only",children:"Edit dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-4 py-5",children:[a.jsx(Rh,{className:"mb-6 p-0",children:a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(Jg,{})," Edit dataset"]}),a.jsx(Rh.Description,{children:n.name})]})}),a.jsx(Ou,{className:"p-4",children:a.jsx(VTs,{dataset:{id:n.id,name:n.name,description:n.description||"",inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema,scorerIds:n.scorerIds},onSuccess:o,onCancel:o})})]})})]})}function Not(e,t){return{id:e.id,datasetId:t,datasetVersion:e.datasetVersion,input:e.input,groundTruth:e.groundTruth,expectedTrajectory:e.expectedTrajectory,toolMocks:e.toolMocks,scorerIds:e.scorerIds,requestContext:e.requestContext,metadata:e.metadata,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Iot(e,t){return e.map(n=>{const r=typeof n.updatedAt=="string"?new Date(n.updatedAt):n.updatedAt;return{value:String(n.datasetVersion),label:a.jsxs("span",{className:"flex w-full items-center gap-2",children:[a.jsxs("span",{children:[a.jsxs("b",{children:["v. ",n.datasetVersion]})," · ",Rr(r,"MMM d, HH:mm")]}),n.isLatest?a.jsx($t,{variant:"blue",size:"xs",className:"ml-auto",children:"Latest"}):null]}),disabled:t?.has(n.datasetVersion)??!1}})}function Aot(e){const t=Number(e);return e!=null&&Number.isFinite(t)&&t>0?t:null}function ENs(){const{datasetId:e,itemId:t}=hr(),[n,r]=oo(),s=[Br("/datasets"),DG,{id:"dataset-item",label:j_e(t),to:e&&t?`/datasets/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`:void 0},{id:"dataset-item-versions",label:"Item Version History"}],o=Aot(n.get("version")),i=Aot(n.get("compare")),l=n.get("view")==="diff",{data:c,error:u}=pv(e??""),{data:d,isLoading:f}=ZEs(e??"",t??""),h=(o!=null?d?.find(T=>T.datasetVersion===o):void 0)??d?.[0],p=h?.datasetVersion??null,m=i!=null&&i!==p?i:null,{data:y,isLoading:v}=GEs(e??"",t??"",m??0,c?.version),b=(T,E)=>r(I=>{const N=new URLSearchParams(I);return E==null?N.delete(T):N.set(T,String(E)),N},{replace:!0});if(u&&Ss(u))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx(Us,{variant:"fill"})]});if(u&&Ts(u))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(!e||!t)return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsx("div",{className:"py-5 text-center text-muted-foreground",children:a.jsx("p",{children:"Item not found."})})})]});const x=!!(h&&y),w=l&&x,k=h?Not(h,e):null,C=y?Not(y,e):null,_=(h?.datasetVersion??0)<(y?.datasetVersion??0);return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),headerActions:x&&a.jsx(le,{variant:"ghost",size:"sm",onClick:()=>b("view",l?null:"diff"),children:l?a.jsxs(a.Fragment,{children:[a.jsx(YOe,{})," Default View"]}):a.jsxs(a.Fragment,{children:[a.jsx(mMn,{})," Diff View"]})}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsxs("div",{className:"grid min-h-0 grid-cols-1 gap-4 md:grid-cols-2",children:[a.jsxs(Ou,{className:"grid min-h-0 grid-rows-[auto_1fr] overflow-hidden",children:[a.jsx(Aq,{children:a.jsx(Rot,{name:"version",value:p!=null?String(p):"",options:Iot(d??[],m!=null?new Set([m]):void 0),onValueChange:T=>b("version",Number(T))})}),a.jsx(ov,{className:"grid content-start gap-5 overflow-y-auto",children:f?a.jsx("div",{className:"text-body text-muted-foreground",children:"Loading..."}):k?a.jsx(ZSe,{item:k,diff:w&&C?{against:C,side:_?"a":"b"}:void 0}):a.jsx("div",{className:"text-body text-muted-foreground",children:"Item data not available"})})]}),a.jsxs(Ou,{className:"grid min-h-0 grid-rows-[auto_1fr] overflow-hidden",children:[a.jsx(Aq,{children:a.jsx(Rot,{name:"compare",value:m!=null?String(m):"",placeholder:"Select a version to compare",options:Iot(d??[],p!=null?new Set([p]):void 0),onValueChange:T=>b("compare",Number(T))})}),a.jsx(ov,{className:"grid content-start gap-5 overflow-y-auto",children:m==null?a.jsx(dn,{className:"h-full",titleSlot:"No version selected",descriptionSlot:"Pick a version above to compare it with the one on the left."}):v?a.jsx("div",{className:"text-body text-muted-foreground",children:"Loading..."}):C?a.jsx(ZSe,{item:C,diff:w&&k?{against:k,side:_?"b":"a"}:void 0}):a.jsxs("div",{className:"text-body text-muted-foreground",children:["Version ",m," not found"]})})]})]})]})}function Rot({name:e,value:t,options:n,placeholder:r="Select version",onValueChange:s}){return a.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-4",children:[a.jsx(aCe,{className:"size-4 opacity-50"}),a.jsxs($o,{name:e,value:t,onValueChange:s,children:[a.jsx(Do,{"aria-label":e==="compare"?"Compare version":"Version",className:"w-full",children:a.jsx(Mo,{placeholder:r,className:"flex-1"})}),a.jsx(Lo,{children:n.map(o=>a.jsx(Hr,{value:o.value,disabled:o.disabled,children:o.label},o.value))})]})]})}const Y8=[Br("/datasets"),DG,{id:"dataset-versions",label:"Versions"}];function TNs(){const{datasetId:e}=hr(),[t]=oo(),n=t.get("ids")?.split(",").map(Number).filter(m=>!isNaN(m)&&m>0)??[],r=Ur(),{data:s,error:o}=pv(e??""),i=YI(e??"",void 0,n[0]??null),l=YI(e??"",void 0,n[1]??null),c=g.useMemo(()=>i.data??[],[i.data]),u=g.useMemo(()=>l.data??[],[l.data]),d=g.useMemo(()=>{const m=new Map;for(const y of[...c,...u])m.has(y.id)||m.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...m.values()].sort((y,v)=>v.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=g.useMemo(()=>new Map(c.map(m=>[m.id,m])),[c]),h=g.useMemo(()=>new Map(u.map(m=>[m.id,m])),[u]);if(o&&Ss(o))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx(Us,{variant:"fill"})]});if(o&&Ts(o))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(!e||n.length<2)return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsx("div",{className:"py-5 text-center text-muted-foreground",children:a.jsx("p",{children:"Select at least two versions to compare."})})})]});const p=(m,y)=>{r(`/datasets/${e}/versions?ids=${m},${y}`,{replace:!0})};return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:a.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-4",children:[a.jsxs(Rh,{children:[a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(yDn,{})," Compare Dataset Versions"]}),a.jsx(Rh.Description,{children:a.jsxs(Md,{children:[a.jsx(aCe,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),a.jsx(Rh.Column,{children:a.jsx(le,{render:a.jsx(vl,{to:`/datasets/${e}`}),icon:a.jsx(Eu,{}),children:"Back to Dataset"})})]}),a.jsx(Gjs,{children:a.jsxs(DXt,{children:[a.jsx(Kjs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:p}),a.jsx(yNs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:h})]})})]})})]})}const jNs=[Br("/datasets"),{id:"dataset-new",label:"Create new dataset"}];function NNs(){const e=Ur(),[t]=oo(),n=t.get("targetType"),r=VX(n)?n:void 0,s=t.get("targetIds"),o=r&&s?s.split(",").map(l=>l.trim()).filter(Boolean):void 0,i=l=>{e(`/datasets/${l}`)};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:jNs}),children:[a.jsx("h1",{className:"sr-only",children:"Create new dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-4 py-5",children:[a.jsx(Rh,{className:"mb-6 p-0",children:a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(Jg,{})," Create new dataset"]}),a.jsx(Rh.Description,{children:"Datasets group test cases used to evaluate your agents and workflows."})]})}),a.jsx(Ou,{className:"p-4",children:a.jsx($Ts,{targetType:r,targetIds:o,onSuccess:i,onCancel:()=>{e(-1)}})})]})})]})}const INs={default:BOe,inset:Z(sr,"*:bg-background! *:shadow-rim!")};function BXt({children:e,variant:t="default",minItemWidth:n="16rem",className:r}){const s={"--metrics-card-group-basis":`min(100%, ${n})`};return a.jsx("div",{style:s,className:Z("flex flex-wrap gap-1 rounded-xl p-1 *:min-w-0! *:flex-1 *:basis-(--metrics-card-group-basis)",INs[t],r),children:e})}function ANs(e){if(!e||e.length<2)return null;const t=[...e].sort((i,l)=>new Date(i.createdAt).getTime()-new Date(l.createdAt).getTime()),n=Math.floor(t.length/2),r=n,s=t.length-n;if(r===0)return null;const o=(s-r)/r*100;return{changePct:Math.round(o*10)/10,prevValue:String(r)}}function RNs({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:o,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,h=t?.length,p=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,y=ANs(n);return a.jsxs(a.Fragment,{children:[a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Scorers"}),i?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):f!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(f)}),a.jsx(er.NoChange,{message:"Static count"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Datasets"}),l?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):h!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(h)}),a.jsx(er.NoChange,{message:"Static count"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Avg Score"}),u?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):r!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(r)}),m?a.jsx(er.Change,{changePct:m.changePct,prevValue:m.prevValue}):a.jsx(er.NoChange,{})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Experiments"}),c?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):p!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(p)}),y?a.jsx(er.Change,{changePct:y.changePct,prevValue:y.prevValue}):a.jsx(er.NoChange,{})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Needs Review"}),d?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):o!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(o)}),o>0?a.jsx(er.NoChange,{message:"items pending review"}):a.jsx(er.NoChange,{message:"All caught up"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]})]})}function UXt({open:e,onOpenChange:t,experimentId:n,experimentName:r,onSuccess:s}){const{deleteExperiment:o}=dl(),i=async()=>{try{await o.mutateAsync(n),Ye.success("Experiment deleted successfully"),t(!1),s?.()}catch(l){Ye.error(`Failed to delete experiment: ${l instanceof Error?l.message:"Unknown error"}`)}};return a.jsx(Pt,{open:e,onOpenChange:t,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Experiment"}),a.jsxs(Pt.Description,{children:['Are you sure you want to delete "',r||n,'"? This will permanently delete the experiment, all its results, and the traces it produced, including their spans and any scores, feedback, metrics and logs attached to those traces. This action cannot be undone.']})]}),a.jsxs(Pt.Footer,{children:[a.jsx(le,{icon:a.jsx(Ri,{}),variant:"primary",size:"lg",onClick:i,disabled:o.isPending,children:o.isPending?"Deleting...":"Delete"}),a.jsx(Pt.Cancel,{children:"Cancel"})]})]})})}const PNs="minmax(9rem,1fr)",$Ns="minmax(8rem,16rem)",MNs="1fr",DNs="auto auto auto auto auto auto auto",Uv={experiment:"Experiment",description:"Description",dataset:"Dataset",target:"Target",status:"Status",items:"Items",succeeded:"Processed",failed:"Errored",review:"Review",date:"Date"},LNs={completed:"neutral",running:"yellow",failed:"red",pending:"neutral"},FNs={completed:"Run completed",running:"Run in progress",failed:"Run failed",pending:"Run queued"};function zNs(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}function VXt(e){const t=h0(e.id)??e.id;return e.name||`Experiment #${t}`}const BNs=60;function UNs({experiment:e}){return a.jsx("span",{className:"block min-w-0 truncate text-left text-muted-foreground",children:VXt(e)})}function VNs({experiment:e}){const t=e.description;if(!t)return a.jsx("span",{className:"text-placeholder",children:"—"});const n=a.jsx("span",{className:"block min-w-0 truncate text-left text-muted-foreground",children:t});return t.length<=BNs?n:a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:n}),a.jsx(Cn,{children:t})]})}function qXt(){const{data:e}=nf(),{data:t}=lp(),{data:n}=Gf(),{data:r}=Y_();return{agents:e,workflows:t,scorers:n,processors:r}}const HXt={agent:Mi,workflow:xl,scorer:db,processor:xO},WXt={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},qNs="External (caller-run)";function ZXt(e,{agents:t,workflows:n,scorers:r,processors:s}){const{targetType:o,targetId:i}=e;if(!i)return qNs;switch(o){case"agent":return t?.[i]?.name??i;case"workflow":return n?.[i]?.name??i;case"scorer":return r?.[i]?.scorer?.config?.name??i;case"processor":return s?.[i]?.name??i;default:return i}}function HNs({experiment:e,datasetName:t,review:n}){const r=e.status??"pending",s=e.succeededCount??0,o=e.failedCount??0,i=e.totalItems??0;return a.jsxs(a.Fragment,{children:[a.jsx(xe.Cell,{children:a.jsx(UNs,{experiment:e})}),a.jsx(xe.Cell,{children:a.jsx(VNs,{experiment:e})}),t!==void 0&&a.jsx(xe.TextCell,{children:t}),a.jsx(xe.Cell,{children:a.jsx(WNs,{experiment:e})}),a.jsx(xe.Cell,{children:a.jsx($t,{variant:LNs[r]??"neutral",indicator:"dot",children:FNs[r]??r})}),a.jsx(xe.TextCell,{className:"text-center",children:i}),a.jsx(xe.TextCell,{className:"text-center",children:s}),a.jsx(xe.TextCell,{className:"text-center",children:a.jsx("span",{className:o>0?"text-accent2":"",children:o})}),a.jsx(xe.Cell,{className:"text-center",children:a.jsx(ZNs,{review:n})}),a.jsx(xe.TextCell,{children:zNs(e.createdAt)})]})}function WNs({experiment:e}){const t=qXt(),n=ZXt(e,t),r=e.targetId?e.targetType:null,s=r?HXt[r]:null;return a.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[s&&a.jsx("span",{className:"flex text-muted-foreground",role:"img","aria-label":WXt[r],children:a.jsx(s,{})}),a.jsx("span",{className:r?"truncate":"truncate text-placeholder",children:n})]})}function ZNs({review:e}){if(!e)return a.jsx("span",{className:"text-placeholder",children:"—"});const t=e.needsReview+e.complete;return t===0?a.jsx("span",{className:"text-placeholder",children:"—"}):e.needsReview>0?a.jsxs($t,{size:"xs",variant:"yellow",children:[e.needsReview," pending"]}):a.jsxs($t,{size:"xs",variant:"green",children:[e.complete,"/",t," reviewed"]})}const GXt=`${PNs} ${$Ns} ${MNs} ${DNs}`,Pot=`${GXt} auto`,GNs=[{label:Uv.experiment},{label:Uv.description},{label:Uv.dataset},{label:Uv.target},{label:Uv.status,sortKey:"status"},{label:Uv.items,className:"text-center"},{label:Uv.succeeded,className:"text-center"},{label:Uv.failed,className:"text-center"},{label:Uv.review,className:"text-center"},{label:Uv.date,sortKey:"createdAt"}],QXt=e=>e.stopPropagation();function QNs({experiment:e,rowProps:t,onSelect:n,featured:r,onDelete:s,children:o}){const{paths:i,Link:l}=fn(),c=g.useRef(null);return a.jsxs(xe.RowWrapper,{...t,onSelectRow:n??(()=>c.current?.click()),children:[n?a.jsx(xe.RowButton,{colEnd:-2,featured:r,tabIndex:-1,onClick:u=>{u.stopPropagation(),n()},children:o}):a.jsx(xe.RowLink,{ref:c,colEnd:-2,to:i.experimentLink(e.id),LinkComponent:l,tabIndex:-1,onClick:QXt,children:o}),a.jsx(xe.ActionsCell,{className:"pl-2",children:a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"Delete experiment","aria-label":`Delete experiment ${e.name??e.id}`,onClick:u=>{u.stopPropagation(),s()},children:a.jsx(Ri,{className:"size-4"})})})]})}function YNs({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:o="all",datasetFilter:i="all",selection:l,onSelectExperiment:c,selectedExperimentId:u,keyboardGlobal:d=!0,isFetchingNextPage:f,hasNextPage:h,setEndOfListElement:p,sort:m,onSortChange:y}){const v=l!==void 0,b=g.useMemo(()=>{const N=new Map;return t?.forEach(A=>N.set(A.id,A.name)),N},[t]),x=g.useMemo(()=>m?e:[...e].sort((N,A)=>{const P=N.createdAt?new Date(N.createdAt).getTime():0;return(A.createdAt?new Date(A.createdAt).getTime():0)-P}),[e,m]),w=g.useMemo(()=>{const N=s.toLowerCase();return x.filter(A=>{const P=A.datasetId?b.get(A.datasetId)??"":"",F=!N||A.id.toLowerCase().includes(N)||(A.name??"").toLowerCase().includes(N)||P.toLowerCase().includes(N)||(A.targetId??"").toLowerCase().includes(N),L=o==="all"||A.status===o,q=i==="all"||A.datasetId===i;return F&&L&&q})},[x,s,b,o,i]),{containerRef:k,getRowProps:C}=Uc({count:w.length,global:d}),[_,T]=g.useState(null);if(r)return a.jsx(hc,{columns:Pot});const E=v?`auto ${GXt}`:Pot,I=GNs.map(N=>N.sortKey&&y?a.jsx(xe.SortableTopCell,{className:N.className,sortKey:N.sortKey,sort:m?.key===N.sortKey?m.direction:void 0,onSortChange:y,children:N.label},N.label):a.jsx(xe.TopCell,{className:N.className,children:N.label},N.label));return a.jsxs(xe,{columns:E,scrollRef:k,children:[a.jsx(xe.Top,{hasLeadingCell:v,children:v?a.jsxs(a.Fragment,{children:[a.jsx(xe.TopCell,{children:" "}),a.jsx(xe.TopCells,{colStart:2,children:I})]}):a.jsxs(a.Fragment,{children:[I,a.jsx(xe.TopCell,{"aria-hidden":!0,children:null})]})}),w.map((N,A)=>{const P=N.datasetId?b.get(N.datasetId)??h0(N.datasetId)??N.datasetId:"—",F=a.jsx(HNs,{experiment:N,datasetName:P,review:n?.get(N.id)});if(!l)return a.jsx(QNs,{experiment:N,rowProps:C(A),onSelect:c?()=>c(N):void 0,featured:u===N.id,onDelete:()=>T(N),children:F},N.id);const L=l.selectedExperimentIds.includes(N.id),q=()=>l.onToggleSelection(N.id);return a.jsxs(xe.RowWrapper,{...C(A),onSelectRow:q,children:[a.jsx(xe.SelectCell,{checked:L,onToggle:q,"aria-label":`Select experiment ${N.id}`}),a.jsx(xe.RowButton,{colStart:2,featured:L,tabIndex:-1,onClick:QXt,children:F})]},N.id)}),a.jsx(xe.NextPageLoading,{isLoading:f,hasMore:h,setEndOfListElement:p}),_&&a.jsx(UXt,{open:!0,onOpenChange:N=>{N||T(null)},experimentId:_.id,experimentName:_.name??void 0})]})}const KNs=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function XNs(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const K8={completed:WU["muted-foreground"],running:"#facc15",pending:"#fb923c",failed:"#f87171"},JNs=[{label:"Completed",color:K8.completed},{label:"Running",color:K8.running},{label:"Pending",color:K8.pending},{label:"Failed",color:K8.failed}];function eIs({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:o}=g.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const h=f.datasetId??"unknown";c.has(h)||c.set(h,{completed:0,running:0,pending:0,failed:0});const p=c.get(h),m=f.status;m in p&&p[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,h])=>{const p=h.completed+h.running+h.pending+h.failed;return p>u&&(u=p),{name:l.get(f)??f.slice(0,12),values:[h.completed,h.running,h.pending,h.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&a.jsx(Gt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?a.jsx(Gt.Loading,{}):r?a.jsx(Gt.Error,{message:"Failed to load experiments data"}):a.jsx(Gt.Content,{children:i?a.jsx(KI,{data:s,segments:JNs,maxVal:o,fmt:l=>String(l)}):a.jsx(Gt.NoData,{message:"No experiments have been run yet"})})]})}const tIs=({onRunExperiment:e})=>a.jsx(dn,{titleSlot:"No Experiments yet",descriptionSlot:a.jsxs(a.Fragment,{children:["Run an experiment from a dataset to evaluate ",a.jsx("br",{}),"your agents and workflows."]}),actionSlot:a.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e&&a.jsx(le,{variant:"primary",onClick:e,icon:a.jsx(xu,{}),children:"Run Experiment"}),a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/evals/experiments",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Experiments Documentation"})]}),variant:"fill"});function nIs({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:o,datasetOptions:i,targetType:l,onTargetTypeChange:c,targetId:u,onTargetIdChange:d,onReset:f,hasActiveFilters:h,onRunClick:p,runTooltip:m="Run an experiment",onCompareClick:y,selection:v}){const b=v?.selectedCount===2&&!v.compareDisabledReason;return a.jsxs(Vn,{children:[a.jsxs(Vn.Start,{children:[a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t})}),a.jsx(Su,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...KNs],value:n,onValueChange:r,className:"whitespace-nowrap"}),a.jsx(Su,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:o,className:"whitespace-nowrap"}),a.jsx(OXt,{targetType:l,targetId:u,onTargetTypeChange:c,onTargetIdChange:d}),f&&h&&a.jsx(le,{onClick:f,size:"sm",variant:"default",icon:a.jsx(Qt,{}),children:"Reset"})]}),v?a.jsx(Vn.End,{children:a.jsxs(Bl,{className:"whitespace-nowrap",children:[a.jsxs(zh,{className:"gap-2",children:[a.jsxs($t,{size:"sm",variant:v.selectedCount<2?"red":"green",children:[v.selectedCount," / 2"]}),"selected",v.compareDisabledReason&&a.jsxs("span",{className:"text-accent2",children:["· ",v.compareDisabledReason]})]}),a.jsx(le,{variant:"primary",disabled:!b,onClick:v.onExecuteCompare,icon:a.jsx(j8e,{}),children:"Compare Experiments"}),a.jsx(le,{icon:a.jsx(Qt,{}),onClick:v.onCancelSelection,children:"Cancel"})]})}):a.jsxs(Vn.End,{children:[y&&a.jsx(le,{onClick:y,tooltip:"Select two experiments of the same dataset to compare",icon:a.jsx(j8e,{}),children:"Compare"}),p&&a.jsx(le,{onClick:p,tooltip:m,variant:"primary",icon:a.jsx(xu,{}),children:"Run Experiment"})]})]})}const rIs={present:!1,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},$ot=e=>e?e instanceof Date?e.toISOString():e:null,Mot=e=>{const t=new Map;for(const n of e??[])t.set(n.itemId,n);return t},Dot=(e,t,n)=>{if(!e)return rIs;const r=new Map;for(const s of n??[])r.set(s.scorerId,s.reason??null);return{present:!0,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:$ot(t?.startedAt),completedAt:$ot(t?.completedAt),scores:Object.entries(e.scores).map(([s,o])=>({scorerId:s,value:o,reason:r.get(s)??null})).sort((s,o)=>s.scorerId.localeCompare(o.scorerId))}},sIs=({comparison:e,baselineId:t,contenderId:n,baselineResults:r,contenderResults:s,baselineScores:o,contenderScores:i})=>{if(!e)return[];const l=Mot(r),c=Mot(s);return e.items.map(u=>{const d=Dot(u.results[t],l.get(u.itemId),o?.[u.itemId]),f=Dot(u.results[n],c.get(u.itemId),i?.[u.itemId]),h={};for(const p of new Set([...d.scores,...f.scores].map(m=>m.scorerId))){const m=d.scores.find(v=>v.scorerId===p)?.value??null,y=f.scores.find(v=>v.scorerId===p)?.value??null;h[p]=m!=null&&y!=null?y-m:null}return{itemId:u.itemId,input:u.input,groundTruth:u.groundTruth,baseline:d,contender:f,deltas:h}})};function CO({title:e,actions:t,tone:n="default",defaultOpen:r=!0,children:s}){return a.jsxs(Za,{defaultOpen:r,className:"grid gap-2",children:[a.jsxs("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[a.jsxs(Ta,{className:Z("flex items-center gap-1.5 text-subheading [&>svg]:size-4",n==="negative"?"text-negative1":"text-foreground"),children:[a.jsx(xr,{}),e]}),t]}),a.jsx(ja,{role:"region","aria-label":e,children:s})]})}function Lot({label:e,value:t}){return t==null?null:a.jsx(CO,{title:e,defaultOpen:!1,children:a.jsx("pre",{className:"max-h-40 overflow-auto rounded-md bg-card p-3 text-caption whitespace-pre-wrap text-muted-foreground",children:typeof t=="string"?t:JSON.stringify(t,null,2)})})}function YXt({delta:e}){const t=e>0?"text-positive1":e<0?"text-negative1":"text-muted-foreground";return a.jsxs("span",{className:Z("inline-flex min-w-20 items-center gap-1 font-mono text-body",t),children:[a.jsx("span",{className:"inline-block w-3",children:e>0?"+":e<0?"-":""}),Math.abs(e).toFixed(2),e>0?a.jsx(WOe,{className:"size-3.5"}):e<0?a.jsx(Hwt,{className:"size-3.5"}):null]})}function KXt({scorerId:e,value:t,delta:n,reason:r}){const{Link:s,paths:o}=fn();return a.jsxs("div",{className:"grid gap-1 rounded-lg bg-background px-3 py-2",children:[a.jsxs("div",{className:"flex items-center justify-between gap-4",children:[a.jsxs(s,{href:o.scorerLink(e),"aria-label":`Open ${e}`,className:"flex min-w-0 items-center gap-1.5 text-subheading text-foreground hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[a.jsx(db,{}),a.jsx("span",{className:"min-w-0 truncate",children:e})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"font-mono text-body text-muted-foreground",children:t!=null?t.toFixed(2):"-"}),n!=null&&a.jsx(YXt,{delta:n})]})]}),r&&a.jsx("p",{className:"text-body text-muted-foreground",children:r})]})}function Fot(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function oIs(e){if(!e.startedAt||!e.completedAt)return null;const t=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return Number.isFinite(t)?`${(t/1e3).toFixed(2)}s`:null}const iIs=Z(sr,"max-h-[30vh] overflow-y-auto rounded-xl p-4 font-mono text-body break-all whitespace-pre-wrap text-muted-foreground");function zot({side:e,row:t,showDeltas:n,isLoading:r}){const s=t[e],o=oIs(s);if(r)return a.jsx("div",{className:"flex h-32 items-center justify-center",children:a.jsx(_n,{})});if(!s.present)return a.jsx("p",{className:"py-5 text-center text-body text-muted-foreground",children:"Not present in this experiment"});const i=Fot(s.output);return a.jsxs("div",{className:"grid content-start gap-5",children:[o&&a.jsxs(In,{children:[a.jsx(On,{render:a.jsxs("p",{className:"flex items-center justify-end gap-1.5 text-body text-muted-foreground [&>svg]:size-3.5",children:[a.jsx(jC,{}),o]})}),a.jsx(Cn,{children:"Run duration"})]}),s.error?a.jsx(CO,{title:"Error",tone:"negative",actions:a.jsx(Co,{content:s.error.message}),children:a.jsx("p",{className:"rounded-xl border border-negative1/40 bg-negative1/5 p-4 text-body break-words text-muted-foreground",children:s.error.message})}):a.jsx(CO,{title:"Output",actions:a.jsx(Co,{content:i}),children:a.jsx("pre",{className:iIs,children:i})}),s.scores.length>0&&a.jsx(CO,{title:"Scores",children:a.jsx("div",{className:"grid gap-2",children:s.scores.map(l=>a.jsx(KXt,{scorerId:l.scorerId,value:l.value,delta:n?t.deltas[l.scorerId]:null,reason:l.reason},l.scorerId))})}),s.comment&&a.jsx(CO,{title:"Comment",defaultOpen:!1,children:a.jsx("p",{className:"text-body text-muted-foreground",children:s.comment})}),s.metadata&&Object.keys(s.metadata).length>0&&a.jsx(CO,{title:"Metadata",defaultOpen:!1,children:a.jsx("dl",{className:"grid gap-1",children:Object.entries(s.metadata).map(([l,c])=>a.jsxs("div",{className:"flex items-start justify-between gap-4 text-body",children:[a.jsx("dt",{className:"text-muted-foreground",children:l}),a.jsx("dd",{className:"font-mono break-all text-foreground",children:Fot(c)})]},l))})})]})}const aIs={baseline:"Baseline",contender:"Contender"},lIs={baseline:"purple",contender:"blue"},cIs="flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0";function Bot({side:e,experiment:t,summary:n,showDeltas:r,versionMismatch:s}){const{Link:o,paths:i}=fn(),l=aIs[e],c=t?h0(t.id)??t.id:null,u=t?.createdAt?new Date(t.createdAt):null,d=n??[];return a.jsxs("div",{className:"grid content-start gap-3",children:[a.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[a.jsx($t,{variant:lIs[e],size:"xs",children:l}),t&&a.jsx(le,{render:a.jsx(o,{href:`/experiments/${t.id}`}),size:"sm","aria-label":`Open experiment ${t.name||c}`,children:a.jsx("span",{className:"min-w-0 truncate",children:t.name||c})})]}),t&&a.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-caption text-muted-foreground",children:[t.name&&a.jsxs(Md,{children:[a.jsx(OA,{})," ",c]}),t.targetType==="agent"&&t.targetId?a.jsxs(o,{href:i.agentLink(t.targetId),className:cIs,children:[a.jsx(Mi,{}),a.jsx("span",{className:"min-w-0 truncate",children:t.targetId})]}):a.jsxs(Md,{children:[a.jsx(TSt,{})," ",t.targetId]}),a.jsx("span",{className:Z(s&&"text-accent6"),children:a.jsxs(Md,{children:[a.jsx(y3,{})," v",t.datasetVersion??"—",s&&" · different dataset version"]})}),u&&a.jsxs(Md,{children:[a.jsx(nV,{})," ",Rr(u,"MMM d, yyyy HH:mm")]})]}),d.length>0&&a.jsx(CO,{title:"Overall score",children:a.jsx("div",{className:"grid gap-2",children:d.map(({scorerId:f,average:h,delta:p})=>a.jsx(KXt,{scorerId:f,value:h,delta:r?p:null},f))})})]})}const DT="min-w-0 px-4 py-3";function uIs({datasetId:e,experimentIdA:t,experimentIdB:n}){const{Link:r,paths:s}=fn(),{data:o,isLoading:i,error:l}=QEs(e,t,n),{data:c}=N4(e,t),{data:u}=N4(e,n),d=c&&u&&c.datasetVersion!==u.datasetVersion,f=o?.baselineId??t,h=t===f?n:t,p=c?.id===f?c:u,m=c?.id===h?c:u,{data:y,isLoading:v}=qSe({datasetId:e,experimentId:f,experimentStatus:p?.status}),{data:b,isLoading:x}=qSe({datasetId:e,experimentId:h,experimentStatus:m?.status}),{data:w}=I1(f,p?.status),{data:k}=I1(h,m?.status),C=g.useMemo(()=>sIs({comparison:o,baselineId:f,contenderId:h,baselineResults:y,contenderResults:b,baselineScores:w,contenderScores:k}),[o,f,h,y,b,w,k]),_=g.useMemo(()=>[...new Set(C.flatMap(E=>Object.keys(E.deltas)))].sort(),[C]),T=g.useMemo(()=>{const E=(A,P)=>{const F=C.map(L=>L[A].scores.find(q=>q.scorerId===P)?.value).filter(L=>L!=null);return F.length>0?F.reduce((L,q)=>L+q,0)/F.length:null},I=_.map(A=>({scorerId:A,average:E("baseline",A),delta:null})),N=_.map(A=>{const P=E("baseline",A),F=E("contender",A);return{scorerId:A,average:F,delta:P!=null&&F!=null?F-P:null}});return{baseline:I,contender:N}},[C,_]);return i?a.jsx("div",{className:"flex h-64 items-center justify-center",children:a.jsx(_n,{})}):l?a.jsx(en,{variant:"warning",title:"Error loading comparison",children:a.jsx(en.Message,{children:l instanceof Error?l.message:"Unknown error"})}):!o||o.items.length===0?a.jsx("div",{className:"py-5 text-center text-body text-muted-foreground",children:"No comparison data"}):a.jsx("div",{className:"grid gap-4",children:a.jsxs("div",{role:"table","aria-label":"Experiments comparison",className:"grid",children:[a.jsxs("div",{role:"row",className:"grid border-y border-border xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border)]",children:[a.jsx("div",{role:"columnheader","aria-label":"Items",className:`${DT} text-caption text-muted-foreground uppercase`,children:"Items"}),a.jsx("div",{role:"columnheader","aria-label":"Baseline",className:DT,children:a.jsx(Bot,{side:"baseline",experiment:p??void 0,summary:T.baseline,versionMismatch:d??void 0})}),a.jsx("div",{role:"columnheader","aria-label":"Contender",className:DT,children:a.jsx(Bot,{side:"contender",experiment:m??void 0,summary:T.contender,versionMismatch:d??void 0,showDeltas:!0})})]}),C.map(E=>{const I=Object.entries(E.deltas).flatMap(([N,A])=>A==null||A===0?[]:[{scorerId:N,delta:A}]);return a.jsxs("div",{role:"row","aria-label":E.itemId,className:"grid border-b border-border xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border)]",children:[a.jsxs("div",{role:"cell",className:`${DT} grid content-start gap-1`,children:[a.jsx(r,{href:s.datasetItemLink(e,E.itemId),"aria-label":`Open item ${E.itemId}`,className:Z("flex items-start gap-1.5 font-mono text-caption break-all hover:underline [&>svg]:mt-0.5 [&>svg]:size-3.5 [&>svg]:shrink-0",E.baseline.present&&E.contender.present?"text-muted-foreground":"text-placeholder"),children:a.jsx("span",{className:"min-w-0",children:E.itemId})}),I.length>0&&a.jsx("span",{className:"flex flex-wrap items-center gap-2",children:I.map(({scorerId:N,delta:A})=>a.jsx(YXt,{delta:A},N))}),a.jsxs("div",{className:"grid pt-3",children:[a.jsx(Lot,{label:"Input",value:E.input}),a.jsx(Lot,{label:"Ground truth",value:E.groundTruth})]})]}),a.jsx("div",{role:"cell","aria-label":"Baseline",className:DT,children:a.jsx(zot,{side:"baseline",row:E,isLoading:v})}),a.jsx("div",{role:"cell","aria-label":"Contender",className:DT,children:a.jsx(zot,{side:"contender",row:E,isLoading:x,showDeltas:!0})})]},E.itemId)})]})})}function dIs({selectedCount:e,vocabulary:t,onApplyTag:n,onRemoveTag:r,onNewTag:s,size:o="sm"}){const[i,l]=g.useState(!1),[c,u]=g.useState(""),d=t.filter(h=>h.toLowerCase().includes(c.toLowerCase())),f=c.trim()&&!t.includes(c.trim());return a.jsxs(cp,{open:i,onOpenChange:l,children:[a.jsx(Wd,{asChild:!0,children:a.jsxs(le,{size:o,icon:a.jsx(U1,{}),children:["Tag ",e," items"]})}),a.jsxs(Zf,{className:"w-56 p-2",align:"end",children:[a.jsx(vr,{value:c,onChange:h=>u(h.target.value),onKeyDown:h=>{h.key==="Enter"&&c.trim()&&(h.preventDefault(),f?s(c.trim()):n(c.trim()),u(""))},placeholder:"Search or create tag...",className:"mb-1 h-7 text-caption",autoFocus:!0}),a.jsxs("div",{className:"max-h-40 space-y-0.5 overflow-y-auto",children:[d.map(h=>a.jsxs("div",{className:"flex items-center justify-between rounded px-2 py-1 text-caption hover:bg-fill-subtle",children:[a.jsx("button",{type:"button",onClick:()=>n(h),className:"flex-1 text-left text-muted-foreground",children:h}),a.jsx("button",{type:"button",onClick:()=>r(h),className:"ml-2 text-placeholder hover:text-negative1",children:a.jsx(Qt,{className:"h-3 w-3"})})]},h)),f&&a.jsxs("button",{type:"button",onClick:()=>{s(c.trim()),u("")},className:"w-full rounded px-2 py-1 text-left text-caption text-accent1 hover:bg-fill-subtle",children:['Create & apply "',c.trim(),'"']})]})]})]})}function fIs({tag:e,onRename:t,onRemove:n}){const[r,s]=g.useState(!1),[o,i]=g.useState(e),l=g.useRef(null);g.useEffect(()=>{r&&(l.current?.focus(),l.current?.select())},[r]);const c=()=>{const u=o.trim();u&&u!==e&&t(u),s(!1)};return r?a.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1",children:[a.jsx("input",{ref:l,value:o,onChange:u=>i(u.target.value),onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),c()),u.key==="Escape"&&(i(e),s(!1))},onBlur:c,className:"w-20 bg-transparent py-0.5 text-caption text-muted-foreground outline-hidden"}),a.jsx("button",{type:"button",onMouseDown:u=>{u.preventDefault(),c()},className:"hover:text-positive2 p-0.5 text-positive1",children:a.jsx(Hn,{className:"h-3 w-3"})})]}):a.jsxs("span",{className:"group inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1.5 py-0.5 text-caption text-muted-foreground",children:[e,a.jsx("button",{type:"button",onClick:()=>{i(e),s(!0)},className:Z($n,"p-0.5 opacity-0 transition-opacity group-hover:opacity-100"),title:"Edit tag",children:a.jsx(qd,{className:"h-3 w-3"})}),a.jsx("button",{type:"button",onClick:n,className:"p-0.5 text-placeholder opacity-0 transition-opacity group-hover:opacity-100 hover:text-negative1",title:"Remove tag",children:a.jsx(Qt,{className:"h-3 w-3"})})]})}const hIs=100;function XXt(e,t,{enabled:n=!0}={}){const r=Je(),s={perPage:hIs};return t?.targetType&&(s.targetType=t.targetType),t?.targetId&&(s.targetId=t.targetId),kt({enabled:n,queryKey:["experiments",s],queryFn:()=>r.listExperiments(s)})}const JXt=(e,{experimentId:t,targetType:n,targetId:r,experiments:s,isLoadingExperiments:o=!1})=>{const i=Je(),l=s!==void 0,{data:c,isLoading:u}=XXt(void 0,{targetType:n,targetId:r},{enabled:!l}),d=l?s:c?.experiments,f=l?o:u,h=t?d?.filter(m=>m.id===t):d,p=kt({queryKey:["review-items",e,t??"all",l?"supplied":"discovered",l?void 0:n||"all",l?void 0:r||"all",h?.map(m=>[m.datasetId,m.id])],queryFn:async()=>!h||h.length===0?[]:(await Promise.all(h.map(async y=>{if(!y.datasetId)return[];try{const{results:v}=await i.listDatasetExperimentResults(y.datasetId,y.id);return v.filter(b=>b.status===e).map(b=>({id:b.id,input:b.input,output:b.output,error:b.error,itemId:b.itemId,experimentId:b.experimentId,datasetId:y.datasetId??void 0,traceId:b.traceId??void 0,scores:b.scores?Object.fromEntries(b.scores.map(x=>[x.scorerId,x.score??0])):{},tags:b.tags??[],createdAt:b.createdAt,status:b.status,groundTruth:b.groundTruth,toolMockReport:b.toolMockReport}))}catch{return[]}}))).flat(),enabled:!!d,refetchOnWindowFocus:!1});return{...p,isLoading:p.isLoading||f}},pIs=(e={})=>JXt("needs-review",e),mIs=(e={})=>JXt("complete",e);function gIs(e){const{data:t}=CE(e),r=t?.spans.find(i=>!i.parentSpanId)?.entityType==="agent",{supportsMetrics:s}=R6(),o=DSe({traceIds:e?[e]:[],enabled:r&&s,autoRefetch:!1});return e?o.data?.get(e):void 0}const Uot="__create_tag__";function eJt({selectedResults:e,vocabulary:t,onAddTag:n,disabled:r,appearance:s="toolbar"}){const[o,i]=g.useState(""),l=g.useMemo(()=>[...t].sort(),[t]),c=g.useMemo(()=>{if(e.length===0)return new Set;const[f,...h]=e;return new Set((f.tags??[]).filter(p=>h.every(m=>(m.tags??[]).includes(p))))},[e]),u=g.useMemo(()=>{const f=l.map(m=>({label:m,value:m,end:c.has(m)?a.jsx(Hn,{"data-testid":"tag-applied",className:"size-3.5"}):void 0})),h=o.trim();return h.length>0&&!l.includes(h)?[{label:`Create "${h}"`,value:Uot},...f]:f},[l,c,o]),d=f=>{const h=f===Uot?o.trim():f;!h||c.has(h)||n(h)};return a.jsx(qa,{"data-testid":"experiment-results-tag-picker",options:u,value:void 0,onValueChange:d,onInputValueChange:i,placeholder:a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(U1,{className:"size-3.5"}),"Add tag"]}),searchPlaceholder:"Search or create tag...",emptyText:"Type to create a tag",variant:s==="inline"?"ghost":"default",size:s==="inline"?"sm":"md",className:"w-auto min-w-0",disabled:r})}function sce(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function vIs({report:e}){const{served:t,unconsumed:n,liveCalls:r,failure:s}=e,o=[...t.map(i=>({outcome:"served",toolName:i.toolName,args:i.args})),...r.map(i=>({outcome:"live",toolName:i.toolName,args:i.args})),...n.map(i=>({outcome:"unconsumed",toolName:i.toolName,args:i.args}))];return a.jsxs("div",{className:"grid gap-2","data-testid":"tool-mock-report",children:[a.jsx(At.SectionHeading,{icon:a.jsx(wu,{}),children:"Tool Mocks"}),s&&a.jsx(en,{variant:"destructive",title:"Mock mismatch",children:a.jsxs(en.Message,{children:[a.jsx("span",{className:"block",children:`Tool "${s.toolName}" was called with arguments that did not match an available mock (${s.code}).`}),a.jsxs("span",{className:"mt-1 block font-mono text-caption",children:["Called with: ",sce(s.args)]}),n.length>0&&a.jsxs("span",{className:"mt-1 block font-mono text-caption",children:["Unconsumed mocks: ",n.map(i=>sce(i.args)).join(", ")]})]})}),a.jsx("div",{className:"divide-y divide-border rounded border border-border text-body",children:o.map((i,l)=>a.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5",children:[a.jsxs("span",{className:"min-w-0 truncate",children:[a.jsx("span",{className:"font-mono text-muted-foreground",children:i.toolName}),a.jsx("span",{className:"ml-2 font-mono text-caption text-muted-foreground",children:sce(i.args)})]}),a.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-caption ${yIs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function yIs(e){switch(e){case"served":return"bg-accent1/10 text-accent1";case"live":return"bg-orange-500/10 text-orange-400";case"unconsumed":return"bg-muted-foreground/10 text-muted-foreground"}}function bIs({result:e,itemId:t,fallback:n,title:r,onClose:s,...o}){const i=r??(t?`Experiment item ${t}`:`Result ${e?.id??""}`);return a.jsx(At,{open:!!(e??t),onClose:s,title:i,depth:1,size:"half",children:e?a.jsx(xIs,{result:e,onClose:s,...o}):t?a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close result panel"}),a.jsxs(At.Heading,{children:["Experiment item",a.jsx(At.CopyId,{id:t})]})]}),n]}):null})}function xIs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:o,onScoreClick:i,featuredScoreId:l,onFlagForReview:c,onTagsChange:u,tagVocabulary:d=[],isUpdatingTags:f=!1,experimentLink:h,onComplete:p,feedbackTabSlot:m}){const y=!!e?.error,v=X8(e?.input),b=X8(e?.output),x=X8(e?.groundTruth),w=c&&e.status!=="needs-review"&&e.status!=="complete",k=Array.isArray(e.tags)?e.tags:[],C=g.useMemo(()=>[e],[e]),_=!!u||k.length>0,{Link:T}=fn(),E=m&&e.traceId?e.traceId:void 0,{data:I}=P6({traceId:E}),N=gIs(e.traceId),A=a.jsxs(At.Content,{children:[a.jsxs("div",{className:"mb-6 grid gap-4",children:[a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Item Id"}),a.jsx(Lt.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),e.createdAt&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Created"}),a.jsx(Lt.Value,{children:Rr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),e.status&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Status"}),a.jsx(Lt.Value,{children:a.jsx(BMe,{status:e.status})})]}),_&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Tags"}),a.jsx(Lt.Value,{children:a.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[k.map(P=>a.jsxs(UX,{value:P,className:u?"gap-1 pr-1":void 0,children:[P,u&&a.jsx("button",{type:"button","aria-label":`Remove tag ${P}`,disabled:f,onClick:()=>u(k.filter(F=>F!==P)),className:"cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50",children:a.jsx(Qt,{className:"size-3"})})]},P)),u&&a.jsx(eJt,{appearance:"inline",selectedResults:C,vocabulary:d,onAddTag:P=>u([...k,P]),disabled:f})]})})]}),N&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Input tokens"}),a.jsx(Lt.Value,{children:N.inputTokens!==void 0?vi(N.inputTokens):"—"}),a.jsx(Lt.Key,{children:"Output tokens"}),a.jsx(Lt.Value,{children:N.outputTokens!==void 0?vi(N.outputTokens):"—"}),a.jsx(Lt.Key,{children:"Cost"}),a.jsx(Lt.Value,{children:N.estimatedCost!==void 0?Ud(N.estimatedCost,N.costUnit):"—"})]})]}),y&&a.jsx(en,{variant:"destructive",title:"Error",children:a.jsx(en.Message,{children:X8(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&a.jsxs(xe,{columns:"1fr 1fr",children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Scorer"}),a.jsx(xe.TopCell,{children:"Score"})]}),t.map(P=>i?a.jsxs(xe.RowButton,{featured:l===P.id,onClick:()=>i(P.id),children:[a.jsx(xe.Cell,{children:P.scorerId}),a.jsx(xe.TextCell,{font:"mono",children:P.score.toFixed(3)})]},P.id):a.jsxs(xe.RowStatic,{children:[a.jsx(xe.Cell,{children:P.scorerId}),a.jsx(xe.TextCell,{font:"mono",children:P.score.toFixed(3)})]},P.id))]}),e.toolMockReport&&a.jsx(vIs,{report:e.toolMockReport})]}),a.jsxs("div",{className:"grid gap-3",children:[a.jsx(At.CodeSection,{title:"Input",icon:a.jsx(XOe,{}),codeStr:v}),a.jsx(At.CodeSection,{title:"Output",icon:a.jsx(ES,{}),codeStr:b}),e.groundTruth!==void 0&&a.jsx(At.CodeSection,{title:"Ground Truth",icon:a.jsx(TSt,{}),codeStr:x})]})]});return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close result panel"}),a.jsxs(At.Heading,{children:["Result",a.jsx(At.CopyId,{id:e.id})]}),a.jsxs(At.HeaderActions,{children:[w&&a.jsx(le,{size:"sm",variant:"primary",onClick:()=>c(e.id),icon:a.jsx(g3,{}),children:"Flag for Review"}),p&&e.status==="needs-review"&&a.jsx(le,{size:"sm",variant:"primary",onClick:p,icon:a.jsx(m3,{}),children:"Mark as reviewed"}),h&&a.jsx(le,{size:"sm",variant:"ghost",render:a.jsx(T,{href:h}),tooltip:"See experiment","aria-label":"See experiment",children:a.jsx(sG,{})}),e.traceId&&o&&a.jsx(le,{size:"sm",variant:"ghost",onClick:o,tooltip:"See trace","aria-label":"See trace",children:a.jsx(s0,{})}),a.jsx(At.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Go to previous result",nextLabel:"Go to next result"})]})]}),E?a.jsxs(Ya,{defaultTab:"details",className:"grid h-full min-h-0 grid-rows-[auto_1fr]",children:[a.jsx(At.Header,{children:a.jsxs(Qa,{variant:"pill-ghost",size:"sm",children:[a.jsx(Ar,{value:"details",children:"Details"}),a.jsxs(Ar,{value:"feedback",children:["Feedback",I?.pagination?.total!=null&&a.jsxs(a.Fragment,{children:[" (",I.pagination.total,")"]})]})]})}),a.jsx(vs,{value:"details",flush:!0,children:A}),a.jsx(vs,{value:"feedback",flush:!0,children:a.jsx(At.Content,{children:m({traceId:E})})})]}):A]})}function X8(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function wIs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function SIs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s}){return a.jsx(At,{open:!!e,onClose:r,title:e?`Score ${e.scorerId}`:"Score",depth:2,children:e&&a.jsx(kIs,{score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s})})}function kIs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s}){const o=wIs(e),i=o?"N/A — code-based scorer":"N/A — step not configured";return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:r,tooltip:"Close score panel"}),a.jsxs(At.Heading,{children:["Score",a.jsx(At.CopyId,{id:e.scorerId})]}),a.jsxs(At.HeaderActions,{children:[s&&e.traceId&&a.jsx(le,{size:"sm",variant:"ghost",onClick:s,tooltip:"See trace","aria-label":"See trace",children:a.jsx(s0,{})}),(n||t)&&a.jsx(At.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Go to previous score",nextLabel:"Go to next score"})]})]}),a.jsx(At.Content,{children:a.jsxs("div",{className:"grid gap-3",children:[a.jsx(At.CodeSection,{title:`Score: ${e.score}`,icon:a.jsx(dv,{}),codeStr:e.reason||i,simplified:!0}),!o&&a.jsxs(a.Fragment,{children:[a.jsx(At.CodeSection,{title:"Preprocess Prompt",icon:a.jsx(Vp,{}),codeStr:e.preprocessPrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Analyze Prompt",icon:a.jsx(Vp,{}),codeStr:e.analyzePrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Generate Score Prompt",icon:a.jsx(Vp,{}),codeStr:e.generateScorePrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Generate Reason Prompt",icon:a.jsx(Vp,{}),codeStr:e.generateReasonPrompt||i,simplified:!0})]})]})})]})}function tJt(e,t){const[n,r]=g.useState(null),[s,o]=g.useState(void 0),[i,l]=g.useState(null),[c,u]=g.useState(t);t!==c&&(u(t),r(null),o(void 0),l(null));const d=e?.find(f=>f.id===i)??null;return{featuredTraceId:n,setFeaturedTraceId:r,featuredSpanId:s,setFeaturedSpanId:o,featuredScoreId:i,setFeaturedScoreId:l,featuredScore:d}}function nJt({result:e,scores:t,state:n,...r}){const s=tJt(t,e?.id),{featuredTraceId:o,setFeaturedTraceId:i,featuredSpanId:l,setFeaturedSpanId:c,featuredScoreId:u,setFeaturedScoreId:d,featuredScore:f}=n??s,h=T=>{d(E=>T===E?null:T),i(null),c(void 0)},p=T=>{T&&(i(T),c(void 0),d(null))},m=()=>{if(!u||!t)return;const T=t.findIndex(E=>E.id===u);if(T>=0&&T<t.length-1)return()=>d(t[T+1].id)},y=()=>{if(!u||!t)return;const T=t.findIndex(E=>E.id===u);if(T>0)return()=>d(t[T-1].id)},{data:v,isLoading:b}=Qjs(o),x=v?.spans,w=x?.find(T=>!T.parentSpanId),{data:k}=P6({traceId:o??void 0}),{data:C}=zMe({traceId:o??void 0,spanId:l}),{data:_}=_X({traceId:o??void 0,spanId:w?.spanId,page:0});return a.jsxs(a.Fragment,{children:[a.jsx(bIs,{...r,result:e,scores:t,onScoreClick:h,featuredScoreId:u,onShowTrace:e?.traceId?()=>p(e.traceId):void 0,feedbackTabSlot:({traceId:T})=>a.jsx(FW,{traceId:T},T)}),a.jsx(SIs,{score:f??void 0,onNext:m(),onPrevious:y(),onClose:()=>d(null),onShowTrace:f?()=>p(f.traceId):void 0}),a.jsx(GMe,{size:"wide",depth:2,traceId:o??void 0,spans:x,isLoadingSpans:b,selectedSpanId:l??null,onClose:()=>{i(null),c(void 0)},onSpanSelect:c,showUnavailableFeaturesMsg:!1,traceHref:o?`/traces?traceId=${encodeURIComponent(o)}`:void 0,anchorSpanId:w?.spanId,feedbackTabBadge:k?.pagination?.total??void 0,feedbackTabSlot:({traceId:T})=>a.jsx(FW,{traceId:T}),scoresTabBadge:_?.pagination?.total??void 0,scoresTabSlot:({traceId:T,rootSpanId:E})=>E?a.jsx(UMe,{traceId:T,spanId:E,onScoreSelect:I=>{t?.some(N=>N.id===I)&&(i(null),c(void 0),d(I))}}):null,spanFeedbackTabBadge:C?.pagination?.total??void 0,spanFeedbackTabSlot:({traceId:T,spanId:E})=>T&&E?a.jsx(WKt,{traceId:T,spanId:E},`${T}:${E}`):null})]})}const OIs=[{name:"itemId",label:"Item ID",size:"auto"},{name:"input",label:"Input",size:"minmax(0,1fr)"},{name:"tags",label:"Tags",size:"auto"},{name:"scores",label:"Scores",size:"6rem"}],oce="__untagged__",J8="all",CIs=[{value:"review",label:"Review queue"},{value:"completed",label:"Completed"}];function _Is({datasetId:e,experimentId:t,experiments:n,isLoadingExperiments:r,targetType:s,targetId:o,featuredItemId:i,toolbarStart:l,renderFilters:c,toolbarEnd:u,onCreateScorer:d,breadcrumbs:f}){const h=Je(),{paths:p}=fn(),{data:m}=pv(e??""),{data:y,isLoading:v}=pIs({experimentId:t,targetType:s,targetId:o,experiments:n,isLoadingExperiments:r}),{data:b,isLoading:x}=mIs({experimentId:t,targetType:s,targetId:o,experiments:n,isLoadingExperiments:r}),{updateExperimentResult:w}=dl(),[k,C]=g.useState(i??null);g.useEffect(()=>{i!==void 0&&C(i)},[i]);const[_,T]=g.useState(null),[E,I]=g.useState(new Set),[N,A]=g.useState(!1),[P,F]=g.useState(!1),[L,q]=g.useState(!1),[V,H]=g.useState(""),[B,W]=g.useState(""),[z,Y]=g.useState(""),[D,R]=g.useState([]),[M,U]=g.useState(!1),Q=g.useMemo(()=>y??[],[y]),ee=g.useMemo(()=>{const Ie=new Set;if(m?.tags)for(const st of m.tags)Ie.add(st);for(const st of Q)for(const Oe of st.tags)Ie.add(Oe);return[...Ie].sort()},[m,Q]),X=g.useCallback(Ie=>{!m||!e||(m.tags??[]).includes(Ie)},[m,e]),te=g.useMemo(()=>_?_===oce?Q.filter(Ie=>Ie.tags.length===0):Q.filter(Ie=>Ie.tags.includes(_)):Q,[Q,_]),ne=g.useMemo(()=>{const Ie=new Map;let st=0;for(const We of Q){We.tags.length===0&&st++;for(const at of We.tags)Ie.set(at,(Ie.get(at)??0)+1)}const Oe=[...Ie.entries()].sort((We,at)=>at[1]-We[1]).map(([We])=>({value:We,label:We}));return[{value:J8,label:"All tags"},...st>0?[{value:oce,label:"Untagged"}]:[],...Oe]},[Q]),ce=!!_||N,J=g.useCallback(()=>{T(null),A(!1),C(null)},[]),re=g.useCallback((Ie,st)=>{const Oe=Q.find(We=>We.id===Ie);Oe?.experimentId&&Oe?.datasetId&&w.mutate({datasetId:Oe.datasetId,experimentId:Oe.experimentId,resultId:Oe.id,tags:st})},[Q,w]),se=g.useCallback(Ie=>{const st=Q.find(Oe=>Oe.id===Ie);I(Oe=>{const We=new Set(Oe);return We.delete(Ie),We}),k===Ie&&C(null),st?.experimentId&&st?.datasetId&&w.mutate({datasetId:st.datasetId,experimentId:st.experimentId,resultId:st.id,status:null})},[Q,w,k]),ae=g.useCallback(Ie=>{const st=Q.find(Oe=>Oe.id===Ie);I(Oe=>{const We=new Set(Oe);return We.delete(Ie),We}),k===Ie&&C(null),st?.experimentId&&st?.datasetId&&w.mutate({datasetId:st.datasetId,experimentId:st.experimentId,resultId:st.id,status:"complete"})},[Q,w,k]),ue=g.useMemo(()=>{const Ie=N?b??[]:te;return!N||!_?Ie:_===oce?Ie.filter(st=>st.tags.length===0):Ie.filter(st=>st.tags.includes(_))},[N,b,te,_]),pe=N?x:!1,Se=g.useMemo(()=>new Set(ue.map(Ie=>Ie.id)),[ue]),Te=g.useMemo(()=>[...E].filter(Ie=>Se.has(Ie)).length,[E,Se]),Ne=ue.length>0&&Te===ue.length,Ge=g.useCallback(Ie=>{I(st=>{const Oe=new Set(st);return Oe.has(Ie)?Oe.delete(Ie):Oe.add(Ie),Oe})},[]),Ue=g.useCallback(()=>{I(Ne?new Set:new Set(ue.map(Ie=>Ie.id)))},[Ne,ue]),Le=g.useCallback(Ie=>{for(const st of E){const Oe=Q.find(We=>We.id===st);Oe&&!Oe.tags.includes(Ie)&&re(st,[...Oe.tags,Ie])}},[Q,E,re]),be=g.useCallback(Ie=>{for(const st of E){const Oe=Q.find(We=>We.id===st);Oe&&Oe.tags.includes(Ie)&&re(st,Oe.tags.filter(We=>We!==Ie))}},[Q,E,re]),Ce=g.useCallback(()=>{for(const Ie of E)ae(Ie);I(new Set)},[E,ae]),ve=g.useCallback(()=>{for(const Ie of E)se(Ie);I(new Set)},[E,se]),ge=g.useCallback(()=>{H(""),q(!0)},[]),me=g.useCallback(async()=>{if(!(!B||!z)){F(!0),q(!1);try{const Ie=Q.filter(Oe=>E.has(Oe.id));if(Ie.length===0){F(!1);return}const st=await h.clusterFailures({modelId:`${B}/${z}`,items:Ie.map(Oe=>({id:Oe.id,input:Oe.input,output:Oe.output??void 0,error:typeof Oe.error=="string"?Oe.error:Oe.error?String(Oe.error):void 0,scores:Oe.scores,existingTags:Oe.tags.length>0?Oe.tags:void 0})),availableTags:ee.length>0?ee:void 0,prompt:V||void 0});st.proposedTags&&st.proposedTags.length>0&&(R(st.proposedTags.map(Oe=>({...Oe,accepted:!0}))),U(!0))}catch(Ie){console.error("Analysis failed:",Ie)}finally{F(!1)}}},[B,z,Q,E,h,ee,V]),fe=g.useCallback(()=>{for(const Ie of D){if(!Ie.accepted)continue;const st=Q.find(Oe=>Oe.id===Ie.itemId);if(st){const Oe=[...new Set([...st.tags,...Ie.tags])];re(st.id,Oe)}}U(!1)},[D,Q,re]),_e=g.useCallback(Ie=>{C(st=>st===Ie?null:Ie)},[]),De=g.useMemo(()=>k?ue.find(Ie=>Ie.id===k)??null:null,[k,ue]),{data:Fe}=I1(De?.experimentId??""),oe=k?ue.findIndex(Ie=>Ie.id===k):-1,ye=oe>0?()=>C(ue[oe-1].id):void 0,Ee=oe>=0&&oe<ue.length-1?()=>C(ue[oe+1].id):void 0,ze=!N&&E.size>0,Be=!!d&&!N&&te.length>0,qe=N?"completed":"review",$e=Ie=>{A(Ie==="completed"),C(null)},Qe=a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:c?a.jsxs(a.Fragment,{children:[l,c({status:qe,onStatusChange:$e,tag:_,onTagChange:T,tagOptions:ne.filter(Ie=>Ie.value!==J8)})]}):a.jsxs(a.Fragment,{children:[l,a.jsx(Su,{label:"Status",labelIsHidden:!0,name:"filter-status",options:CIs,value:qe,onValueChange:Ie=>$e(Ie==="completed"?"completed":"review"),className:"whitespace-nowrap"}),ne.length>1&&a.jsx(Su,{label:"Tags",labelIsHidden:!0,name:"filter-tags",options:ne,value:_??J8,onValueChange:Ie=>T(Ie===J8?null:Ie),className:"whitespace-nowrap"}),ce&&a.jsx(le,{onClick:J,size:"sm",variant:"default",icon:a.jsx(Qt,{}),children:"Reset"})]})}),(ze||u||Be)&&a.jsxs(Vn.End,{children:[u,Be&&a.jsxs(le,{size:"md",onClick:()=>d?.(te.map(Ie=>({input:Ie.input,output:Ie.output}))),children:[a.jsx(Et,{size:"xs",children:a.jsx(dv,{})}),"Create Scorer"]}),ze&&a.jsxs(a.Fragment,{children:[a.jsx(dIs,{size:"md",selectedCount:E.size,vocabulary:ee,onApplyTag:Le,onRemoveTag:be,onNewTag:Ie=>Le(Ie)}),a.jsx(le,{variant:"primary",onClick:Ce,icon:a.jsx(m3,{}),children:"Mark as reviewed"}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{disabled:P,"aria-label":"More actions",children:P?a.jsx(_n,{className:"h-4 w-4"}):a.jsx(NC,{})})}),a.jsxs(ht.Content,{align:"end",children:[a.jsxs(ht.Item,{onSelect:ge,children:[a.jsx(Et,{size:"xs",children:a.jsx(w3,{})}),"Analyze"]}),a.jsx(ht.Separator,{}),a.jsxs(ht.Item,{onSelect:ve,children:[a.jsx(Et,{size:"xs",children:a.jsx(Ri,{})}),"Remove from queue"]})]})]})]})]})]});if(v)return a.jsxs(pt,{breadcrumbs:f,actionRow:Qe,children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(_n,{fill:!0})]});const Ve=a.jsx(nJt,{result:De??void 0,title:`Review item ${De?.id??""}`,scores:De?Fe?.[De.itemId]:void 0,experimentLink:De?.experimentId?p.experimentItemLink(De.experimentId,De.itemId):void 0,tagVocabulary:ee,onTagsChange:N||!De?void 0:Ie=>{re(De.id,Ie);for(const st of Ie)ee.includes(st)||X(st)},onComplete:N||!De?void 0:()=>ae(De.id),onPrevious:ye,onNext:Ee,onClose:()=>C(null)});return a.jsxs(pt,{breadcrumbs:f,actionRow:Qe,children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(gs,{open:L,onOpenChange:q,children:a.jsxs(ss,{children:[a.jsxs(os,{children:[a.jsx(es,{children:"Analyze Items"}),a.jsx(Fs,{children:"Use an LLM to automatically suggest tags for the selected items."})]}),a.jsxs("div",{className:"space-y-4 py-2",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{children:[a.jsx(Dn,{className:"mb-1 block",children:"Provider"}),a.jsx(ek,{value:B,onValueChange:W})]}),a.jsxs("div",{children:[a.jsx(Dn,{className:"mb-1 block",children:"Model"}),a.jsx(tk,{llmId:B,value:z,onValueChange:Y})]})]}),a.jsxs(Ae,{variant:"meta",tone:"muted",children:[E.size," item",E.size!==1?"s":""," will be analyzed"]}),a.jsxs("div",{children:[a.jsx(Dn,{children:"Instructions (optional)"}),a.jsx(Jh,{value:V,onChange:Ie=>H(Ie.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-caption"})]})]}),a.jsxs(sc,{children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:()=>q(!1),children:"Cancel"}),a.jsxs(le,{onClick:me,disabled:!B||!z||P,children:[P?a.jsx(_n,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),a.jsx(gs,{open:M,onOpenChange:U,children:a.jsxs(ss,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[a.jsxs(os,{children:[a.jsx(es,{children:"Review Proposed Tags"}),a.jsxs(Fs,{children:[D.filter(Ie=>Ie.accepted).length," of ",D.length," proposals selected"]})]}),a.jsx("div",{className:"space-y-3 py-2",children:D.map((Ie,st)=>{const Oe=Q.find(We=>We.id===Ie.itemId);return a.jsx("div",{className:Z("rounded-lg border p-3",!Ie.accepted&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(Tu,{checked:Ie.accepted,onCheckedChange:We=>R(at=>at.map((Ut,Vt)=>Vt===st?{...Ut,accepted:!!We}:Ut))}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx(Ae,{variant:"meta",tone:"muted",className:"block truncate",children:Oe?typeof Oe.input=="string"?Oe.input.slice(0,100):JSON.stringify(Oe.input).slice(0,100):Ie.itemId}),a.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Ie.tags.map((We,at)=>a.jsx(fIs,{tag:We,onRename:Ut=>R(Vt=>Vt.map((Zt,vt)=>vt===st?{...Zt,tags:Zt.tags.map((vn,mn)=>mn===at?Ut:vn)}:Zt)),onRemove:()=>R(Ut=>Ut.map((Vt,Zt)=>Zt===st?{...Vt,tags:Vt.tags.filter((vt,vn)=>vn!==at)}:Vt))},`${We}-${at}`))}),Ie.reason&&a.jsx(Ae,{variant:"meta",tone:"muted",className:"mt-1 block italic",children:Ie.reason})]})]})},Ie.itemId)})}),a.jsxs(sc,{children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:()=>U(!1),children:"Cancel"}),a.jsxs(le,{icon:a.jsx(Hn,{}),onClick:fe,disabled:D.filter(Ie=>Ie.accepted).length===0,children:["Accept ",D.filter(Ie=>Ie.accepted).length," proposals"]})]})]})}),a.jsxs("div",{className:"grid h-full min-h-0 w-full grid-cols-1 gap-4 overflow-hidden",children:[a.jsx("div",{className:"min-h-0 w-full overflow-hidden",children:pe?a.jsx(_n,{fill:!0}):ue.length===0?a.jsx(dn,{titleSlot:N?"No completed reviews yet":"No items to review",descriptionSlot:N?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here.",variant:"fill"}):a.jsx(MXt,{results:ue,isLoading:!1,featuredResultId:k,onResultClick:_e,columns:OIs,selectedIds:N?void 0:E,onToggleSelect:N?void 0:Ge,onToggleSelectAll:N?void 0:Ue})}),Ve]})]})}const Vot={needsReview:"#facc15",complete:"#22c55e"},EIs=[{label:"Needs Review",color:Vot.needsReview},{label:"Reviewed",color:Vot.complete}];function TIs({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:o,maxVal:i,totalInPipeline:l}=g.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,h=0;const p=[];for(const m of e.counts){const y=m.needsReview+m.complete;if(y===0)continue;h+=y,y>f&&(f=y);const v=u.get(m.experimentId),b=v?.datasetId?d.get(v.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);p.push({name:x,values:[m.needsReview,m.complete]})}return{data:p,maxVal:f,totalInPipeline:h}},[e,t,n]),c=o.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&a.jsx(Gt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?a.jsx(Gt.Loading,{}):s?a.jsx(Gt.Error,{message:"Failed to load review data"}):a.jsx(Gt.Content,{children:c?a.jsx(KI,{data:o,segments:EIs,maxVal:i,fmt:u=>String(u)}):a.jsx(Gt.NoData,{message:"No items have been sent to review yet"})})]})}function rJt(){const e=Je();return kt({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function jIs(e){const t=new Map;if(!e?.counts)return t;for(const n of e.counts)t.set(n.experimentId,{needsReview:n.needsReview,complete:n.complete,total:n.total});return t}function NIs(e){return e?.counts?e.counts.reduce((t,n)=>({needsReview:t.needsReview+n.needsReview,complete:t.complete+n.complete,inPipeline:t.inPipeline+n.needsReview+n.complete}),{needsReview:0,complete:0,inPipeline:0}):{needsReview:0,complete:0,inPipeline:0}}const eB=[Br("/evaluation")];function IIs(){const[e,t]=g.useState("all"),[n,r]=g.useState({}),{data:s,isLoading:o,error:i}=Gf(),{data:l,isLoading:c,error:u}=I0(),{data:d,isLoading:f,error:h}=BX(),{data:p,isLoading:m,isError:y,error:v}=eys(n),{data:b,isLoading:x,isError:w,error:k}=rJt(),C=l?.datasets,_=d?.experiments,T=g.useMemo(()=>NIs(b),[b]),E=i||u||h||v||k;return E&&Ss(E)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(Us,{variant:"fill"})]}):E&&Ts(E)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(As,{variant:"fill",resource:"evaluation"})]}):E?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load evaluation data",descriptionSlot:E.message})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx(D5,{preset:e,onPresetChange:t,dateFrom:n.start,dateTo:n.end,onDateChange:(I,N)=>r(A=>N==="from"?{...A,start:I}:{...A,end:I})})})}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx(BXt,{children:a.jsx(RNs,{scorers:s,datasets:C,experiments:_,avgScore:p?.avgScore??null,prevAvgScore:p?.prevAvgScore??null,totalNeedsReview:T.needsReview,isLoadingScorers:o,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),a.jsx($gs,{summaryData:p?.summaryData??[],overTimeData:p?.overTimeData??[],scorerNames:p?.scorerNames??[],avgScore:p?.avgScore??null,isLoading:m,isError:y}),a.jsxs("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[a.jsx(bTs,{experiments:_,isLoading:f,isError:!!h}),a.jsx(eIs,{experiments:_,datasets:C,isLoading:f,isError:!!h})]}),a.jsx(TIs,{reviewSummary:b,experiments:_,datasets:C,isLoading:x,isError:!!w})]})]})}const AIs=100;function RIs(e,t,n){const r=Je(),{inView:s,setRef:o}=N0(),i=t?.targetType||void 0,l=t?.targetId||void 0,c=hv({queryKey:e?["dataset-experiments",e,"infinite",{targetType:i,targetId:l,orderBy:n}]:["experiments","infinite",{targetType:i,targetId:l,orderBy:n}],queryFn:({pageParam:u})=>{const d={page:u,perPage:AIs};return i&&(d.targetType=i),l&&(d.targetId=l),n&&(d.orderBy=n),e?r.listDatasetExperiments(e,d):r.listExperiments(d)},initialPageParam:0,getNextPageParam:(u,d,f)=>{if(!(!u?.experiments?.length||!u.pagination?.hasMore))return f+1},select:u=>u.pages.flatMap(d=>d?.experiments??[])});return g.useEffect(()=>{s&&c.hasNextPage&&!c.isFetchingNextPage&&c.fetchNextPage()},[s,c]),{...c,setEndOfListElement:o}}const LT=[Br("/experiments")],PIs=["createdAt","status"];function $Is(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,o]=g.useState(!1),[i,l]=g.useState(!1),[c,u]=g.useState([]),d=Ur(),[f,h]=oo(),{sort:p,onSortChange:m}=ck({searchParams:f,setSearchParams:h,allowedKeys:PIs}),y=g.useMemo(()=>p?{field:p.key,direction:p.direction==="asc"?"ASC":"DESC"}:void 0,[p]),v=f.get("dataset")??"all",b=g.useCallback(ce=>{h(J=>{const re=new URLSearchParams(J);return ce==="all"?re.delete("dataset"):re.set("dataset",ce),re},{replace:!0})},[h]),{targetType:x,targetId:w,setTargetType:k,setTargetId:C}=FXt(),{data:_,isLoading:T,error:E}=I0(),{data:I,isLoading:N,error:A,isFetchingNextPage:P,hasNextPage:F,setEndOfListElement:L}=RIs(v==="all"?void 0:v,{targetType:x,targetId:w},y),{data:q}=rJt(),V=g.useMemo(()=>_?.datasets??[],[_?.datasets]),H=g.useMemo(()=>I??[],[I]),B=g.useMemo(()=>XNs(V),[V]),W=g.useMemo(()=>jIs(q),[q]),z=T||N,Y=A||E,D=ce=>{u(J=>J.includes(ce)?J.filter(re=>re!==ce):J.length>=2?[J[0],ce]:[...J,ce])},R=()=>{u([]),l(!1)},{selectedIds:M,selectedDatasetIds:U}=g.useMemo(()=>{const ce=new Map(H.map(re=>[re.id,re.datasetId])),J=c.filter(re=>ce.has(re));return{selectedIds:J,selectedDatasetIds:new Set(J.map(re=>ce.get(re)))}},[H,c]),Q=M.length===2&&U.size!==1?"not the same dataset":void 0,ee=()=>{if(M.length!==2||Q)return;const[ce,J]=M,[re]=U;if(!re)return;const se=new URLSearchParams({dataset:re,baseline:ce,contender:J});d(`/experiments/compare?${se.toString()}`)};if(Y&&Ss(Y))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(Us,{variant:"fill"})]});if(A&&Ts(A))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(As,{variant:"fill",resource:"experiments"})]});if(E&&Ts(E))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(Y)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:Y.message})]});const X=a.jsx(HX,{open:s,onOpenChange:o,onSuccess:ce=>{d(`/experiments/${ce}`)}});if(H.length===0&&!z&&v==="all"&&!x)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(tIs,{onRunExperiment:()=>o(!0)}),X]});const te=n!=="all"||v!=="all"||e!==""||x!=="",ne=()=>{t(""),r("all"),h(ce=>{const J=new URLSearchParams(ce);return J.delete("dataset"),J.delete(mC),J.delete(yS),J},{replace:!0})};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),actionRow:a.jsx(nIs,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:v,onDatasetFilterChange:b,datasetOptions:B,targetType:x,onTargetTypeChange:k,targetId:w,onTargetIdChange:C,onReset:ne,hasActiveFilters:te,onRunClick:()=>o(!0),onCompareClick:()=>l(!0),selection:i?{selectedCount:M.length,onExecuteCompare:ee,onCancelSelection:R,compareDisabledReason:Q}:void 0}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(YNs,{experiments:H,datasets:V,reviewByExperiment:W,isLoading:z,search:e,statusFilter:n,datasetFilter:v,isFetchingNextPage:P,hasNextPage:F,setEndOfListElement:L,sort:p,onSortChange:m,selection:i?{selectedExperimentIds:M,onToggleSelection:D}:void 0}),X]})}const FT=[Br("/experiments"),{id:"experiments-compare",label:"Compare"}];function tB({experimentId:e}){const{Link:t,paths:n}=fn();return a.jsx(le,{render:a.jsx(t,{href:n.experimentLink(e)}),size:"sm","aria-label":`Open experiment ${e}`,children:e.slice(0,8)})}function MIs(){const[e,t]=oo(),n=e.get("dataset")??"",r=e.get("baseline")??"",s=e.get("contender")??"",o=N4(n,r),i=N4(n,s),l=o.isLoading||i.isLoading,c=o.error??i.error;return c&&Ss(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(Us,{variant:"fill"})]}):c&&Ts(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(As,{variant:"fill",resource:"experiments"})]}):!n||!r||!s?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"py-5 text-center text-muted-foreground",children:[a.jsx("p",{children:"Select two experiments to compare."}),a.jsxs("p",{className:"mt-2 text-body",children:["Use the URL format: /experiments/compare?dataset=","{datasetId}","&baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})]}):l?null:c&&!AA(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:c.message})]}):c||!o.data||!i.data?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"py-5 text-center text-muted-foreground",children:[a.jsxs("p",{children:["Experiments must belong to the same dataset (",n,") to be compared."]}),a.jsxs("p",{className:"mt-2 flex items-center justify-center gap-2 text-body",children:["One of",a.jsx(tB,{experimentId:r}),"and",a.jsx(tB,{experimentId:s}),"was not found in it."]})]})})]}):a.jsx(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"grid w-full content-start",children:[a.jsxs("div",{className:"flex items-center justify-between gap-4 px-4 py-3",children:[a.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[a.jsx(Ae,{as:"h1",variant:"heading",tone:"ink",children:"Experiments comparison"}),a.jsxs("p",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[a.jsx(tB,{experimentId:r}),"and",a.jsx(tB,{experimentId:s})]})]}),a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx(le,{onClick:()=>t({dataset:n,baseline:s,contender:r}),icon:a.jsx(Wwt,{}),children:"Swap sides"})}),a.jsx(Cn,{children:"Switch baseline and contender"})]})]}),a.jsx(uIs,{datasetId:n,experimentIdA:r,experimentIdB:s})]})})})}function sJt(e,t){const{data:n}=pv(e);return g.useMemo(()=>[...new Set([...n?.tags??[],...t.flatMap(r=>r.tags??[])])].sort(),[n?.tags,t])}function DIs(){const{currentItemId:e,experimentId:t,datasetId:n,experimentStatus:r,results:s,isLoadingResults:o,hasNextPage:i,close:l,goToPreviousItem:c,goToNextItem:u}=$Xt(),d=g.useMemo(()=>e?s.find(w=>w.itemId===e):void 0,[s,e]),{data:f}=I1(t,r),{updateExperimentResult:h}=dl(),p=g.useCallback(async w=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,status:"needs-review"}),Ye("Result flagged for review")}catch{Ye.error("Failed to flag result for review")}},[n,t,h]),m=sJt(n,s),y=g.useCallback(async(w,k)=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,tags:k})}catch{Ye.error("Failed to update tags")}},[n,t,h]),v=g.useCallback(async w=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,status:"complete"}),Ye("Result marked as reviewed")}catch{Ye.error("Failed to complete result")}},[n,t,h]),b=d?f?.[d.itemId]:void 0,x=tJt(b,d?.id);return a.jsx(nJt,{result:d,itemId:e,fallback:o||i?a.jsx(At.LoadingData,{}):a.jsxs(At.NoData,{children:['No loaded result for item "',e,'".']}),scores:b,state:x,onPrevious:c,onNext:u,onClose:l,onComplete:d?()=>v(d.id):void 0,onFlagForReview:d?()=>{p(d.id)}:void 0,onTagsChange:d?w=>{y(d.id,w)}:void 0,tagVocabulary:m,isUpdatingTags:h.isPending})}function LIs({selection:e}){const{selectedIds:t,selectedResults:n,tagVocabulary:r,isFlagging:s,isTagging:o}=e;if(t.size===0)return null;const i=s||o;return a.jsxs("div",{className:"flex items-center gap-2 whitespace-nowrap",children:[a.jsxs(le,{disabled:i,onClick:e.flagSelectedForReview,icon:a.jsx(g3,{}),children:["Flag ",t.size," to review"]}),a.jsx(eJt,{selectedResults:n,vocabulary:r,onAddTag:e.addTagToSelected,disabled:i}),a.jsx(le,{icon:a.jsx(Qt,{}),variant:"ghost",onClick:e.clearSelection,children:"Clear"})]})}function oJt(e){const{data:t}=I1(e.id,e.status);return g.useMemo(()=>{if(e.scorerIds?.length)return e.scorerIds;if(!t)return[];const n=new Set;for(const r of Object.values(t))for(const s of r)n.add(s.scorerId);return[...n].sort()},[e.scorerIds,t])}function ice({icon:e,typeLabel:t,subject:n,description:r,isLast:s=!1}){return a.jsxs("li",{className:"relative grid grid-cols-[auto_1fr] gap-x-2.5 pb-4 last:pb-0",children:[a.jsxs("div",{className:"flex flex-col items-center",children:[a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center text-muted-foreground [&_svg]:size-3.5",role:"img","aria-label":t}),children:e}),a.jsx(Cn,{children:t})]}),!s&&a.jsx("span",{"aria-hidden":!0,className:"mt-1 w-px flex-1 bg-border"})]}),a.jsxs("div",{className:"grid min-w-0 gap-0.5",children:[a.jsx("div",{className:"flex min-h-5 items-center text-caption text-foreground",children:n}),a.jsx("p",{className:"text-meta text-placeholder",children:r})]})]})}const ace="text-foreground inline-flex min-w-0 items-center gap-1.5 hover:underline";function FIs({experiment:e,className:t}){const{Link:n,paths:r}=fn(),s=qXt(),{scorers:o}=s,{data:i,isLoading:l}=pv(e.datasetId??""),c=oJt(e),u=e.targetType,d=e.targetId,f=ZXt(e,s),h=(()=>{if(!d)return null;switch(u){case"agent":return r.agentLink(d);case"workflow":return r.workflowLink(d);case"scorer":return r.scorerLink(d);default:return null}})(),p=u&&HXt[u]||Mi,m=u&&WXt[u]||"Evaluation target";return a.jsxs("ol",{className:Z("grid",t),children:[a.jsx(ice,{icon:a.jsx($G,{}),typeLabel:"Dataset",description:`Each item will be passed to the ${m.toLowerCase()}`,subject:e.datasetId?a.jsxs(n,{href:r.datasetLink(e.datasetId),className:ace,children:[a.jsx("span",{className:"truncate",children:l?a.jsx(lt,{className:"h-4 w-28"}):i?.name??e.datasetId}),e.datasetVersion!=null&&a.jsxs("span",{className:"shrink-0 text-muted-foreground",children:["(v",e.datasetVersion,")"]})]}):a.jsx("span",{className:"text-muted-foreground",children:"No dataset"})}),a.jsx(ice,{icon:a.jsx(p,{}),typeLabel:m,description:"Its output is then scored",subject:h?a.jsx(n,{href:h,className:ace,children:a.jsx("span",{className:"truncate",children:f})}):a.jsx("span",{className:"truncate text-muted-foreground",children:f})}),a.jsx(ice,{icon:a.jsx(db,{}),typeLabel:"Scorers",description:"It gives a score by comparing ground truth",isLast:!0,subject:c.length===0?a.jsx("span",{className:"text-muted-foreground",children:"No scorer has produced a score yet"}):a.jsx("ul",{className:"grid min-w-0 gap-0.5",children:c.map(y=>{const v=o?.[y]?.scorer?.config?.name??y;return a.jsx("li",{className:"min-w-0",children:a.jsx(n,{href:r.scorerLink(y),className:ace,children:a.jsx("span",{className:"truncate",children:v})})},y)})})})]})}function zT({label:e,children:t}){return a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:e}),a.jsx(Lt.Value,{className:"flex flex-wrap items-baseline justify-end gap-x-1.5 text-right",children:t})]})}function qot(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;const t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);if(t<60)return n>0?`${t}m ${n}s`:`${t}m`;const r=Math.floor(t/60),s=t%60;return s>0?`${r}h ${s}m`:`${r}h`}function zIs({experiment:e,metrics:t}){const{data:n}=I1(e.id,e.status),r=e.status==="running"||e.status==="pending",s=g.useMemo(()=>{if(!n)return;const c=Object.values(n).flat();if(c.length!==0)return c.reduce((u,d)=>u+d.score,0)/c.length},[n]),o=e.startedAt??e.createdAt,i=o?new Date(o):null,l=(()=>{if(e.status==="running")return"Running…";if(!e.startedAt||!e.completedAt)return"—";const c=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return c<0?"—":qot(c)})();return a.jsxs(Lt,{children:[a.jsx(zT,{label:"Avg score",children:s===void 0?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:s.toFixed(3)}),r&&a.jsx("span",{className:"text-muted-foreground",children:"· so far"})]})}),a.jsx(zT,{label:"Items",children:r?a.jsxs("span",{className:"text-muted-foreground",children:[(e.succeededCount??0)+(e.failedCount??0),"/",e.totalItems," items processed"]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[e.totalItems," item",e.totalItems===1?"":"s"]}),(e.failedCount??0)>0&&a.jsxs("span",{className:"text-error",children:["· ",e.failedCount," errored"]})]})}),a.jsx(zT,{label:"Started",children:i?a.jsx("span",{title:T8n(i,{addSuffix:!0}),children:Rr(i,"MMM d, h:mm a")}):a.jsx("span",{children:"—"})}),a.jsx(zT,{label:"Duration",children:a.jsx("span",{children:l})}),t?.isEnabled&&a.jsxs(a.Fragment,{children:[a.jsx(zT,{label:"Tokens",children:t.data?.totalTokens==null?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:vi(t.data.totalTokens)}),t.data.estimatedCost!=null&&a.jsxs("span",{className:"text-muted-foreground",children:["· ",Ud(t.data.estimatedCost,t.data.costUnit)]}),r&&a.jsx("span",{className:"text-muted-foreground",children:"· so far"})]})}),a.jsx(zT,{label:"Latency (avg)",children:t.data?.avgAgentDurationMs==null?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsx("span",{children:qot(Math.round(t.data.avgAgentDurationMs))})})]})]})}function BIs({scoresByItemId:e,experimentStatus:t}){const{Link:n,paths:r}=fn(),{data:s}=Gf(),o=g.useMemo(()=>{if(!e)return[];const i={};for(const l of Object.values(e))for(const c of l)i[c.scorerId]||(i[c.scorerId]={sum:0,count:0}),i[c.scorerId].sum+=c.score,i[c.scorerId].count++;return Object.entries(i).map(([l,{sum:c,count:u}])=>({scorerId:l,avg:c/u})).sort((l,c)=>l.scorerId.localeCompare(c.scorerId))},[e]);if(o.length===0){const i=t==="running"||t==="pending",l=e!==void 0;let c,u;return i?(c="Experiment in progress",u="Summary metrics will appear here once the experiment completes."):l?(c="No scorers configured",u="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(c="Loading scores",u="Fetching scorer results…"),a.jsxs("div",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[a.jsx(dv,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"text-muted-foreground",children:c}),a.jsx("span",{className:"truncate",children:u})]})}return a.jsx("div",{className:"flex flex-col gap-2",children:o.map(({scorerId:i,avg:l})=>{const c=s?.[i]?.scorer?.config?.name??i;return a.jsxs(er,{className:"min-w-0 p-3",children:[a.jsxs(n,{href:r.scorerLink(i),className:"flex min-w-0 items-center gap-1.5 text-caption text-muted-foreground hover:underline [&>svg]:size-3 [&>svg]:shrink-0 [&>svg]:text-muted-foreground",children:[a.jsxs(In,{children:[a.jsx(On,{render:a.jsx(db,{role:"img","aria-label":"Scorer"})}),a.jsx(Cn,{children:"Scorer"})]}),a.jsx("span",{className:"truncate",children:c})]}),a.jsxs("strong",{className:"text-subheading text-muted-foreground",children:[l.toFixed(3),a.jsx("span",{className:"ml-1.5 text-caption text-muted-foreground",children:"avg score"})]})]},i)})})}function lce({title:e,children:t}){return a.jsxs("section",{className:"grid gap-3",children:[a.jsx("h2",{className:"text-body tracking-widest text-placeholder uppercase",children:e}),t]})}function UIs({experiment:e,metrics:t,className:n}){const{Link:r,paths:s}=fn(),{data:o}=I1(e.id,e.status),i=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${s.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return a.jsxs(Ou,{as:"aside","aria-label":"Experiment details",className:Z("grid content-start gap-5 p-5",n),children:[a.jsxs(lce,{title:"Pipeline",children:[a.jsx(FIs,{experiment:e}),e.agentVersion&&a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Version"}),i?a.jsx(Lt.ValueLink,{href:i,as:r,children:e.agentVersion}):a.jsx(Lt.Value,{children:e.agentVersion})]})]}),a.jsx(lce,{title:"Run",children:a.jsx(zIs,{experiment:e,metrics:t})}),a.jsx(lce,{title:"Scorers",children:a.jsx(BIs,{scoresByItemId:o,experimentStatus:e.status})})]})}function VIs({experiment:e,open:t,onOpenChange:n}){const[r,s]=g.useState(e.name??""),[o,i]=g.useState(e.description??""),{updateExperiment:l}=dl(),c=!!r.trim()&&!l.isPending,u=async d=>{if(d.preventDefault(),!(!c||!e.datasetId))try{await l.mutateAsync({datasetId:e.datasetId,experimentId:e.id,name:r.trim(),description:o.trim()}),Ye.success("Experiment renamed"),n(!1)}catch(f){Ye.error(`Failed to rename experiment: ${f instanceof Error?f.message:"Unknown error"}`)}};return a.jsx(gs,{open:t,onOpenChange:n,children:a.jsxs(ss,{className:"max-w-md",children:[a.jsx(os,{children:a.jsx(es,{children:"Rename Experiment"})}),a.jsx(ws,{children:a.jsxs("form",{onSubmit:u,className:"space-y-4",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{htmlFor:"rename-experiment-name",children:"Name *"}),a.jsx(vr,{id:"rename-experiment-name",value:r,onChange:d=>s(d.target.value),placeholder:"Enter experiment name",autoFocus:!0})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{htmlFor:"rename-experiment-description",children:"Description"}),a.jsx(vr,{id:"rename-experiment-description",value:o,onChange:d=>i(d.target.value),placeholder:"Enter experiment description (optional)"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Qt,{}),type:"button",onClick:()=>n(!1),disabled:l.isPending,children:"Cancel"}),a.jsx(le,{icon:a.jsx(Hn,{}),type:"submit",variant:"primary",disabled:!c,children:l.isPending?"Saving...":"Save"})]})]})})]})})}const qIs=["agent","workflow","scorer"];function HIs({experiment:e}){const[t,n]=g.useState(!1),r=Ur(),{paths:s}=fn(),o=oJt(e),i=qIs.find(l=>l===e.targetType);return!e.datasetId||!i||!e.targetId?null:a.jsxs(a.Fragment,{children:[a.jsx(le,{variant:"primary",onClick:()=>n(!0),tooltip:"Run this experiment again with the same configuration",icon:a.jsx(xu,{}),children:"Rerun"}),t&&a.jsx(HX,{open:!0,onOpenChange:n,initialDatasetId:e.datasetId,initialDatasetVersion:e.datasetVersion??void 0,initialTargetType:i,initialTargetId:e.targetId,initialScorerIds:o,initialName:e.name??void 0,initialDescription:e.description??void 0,onSuccess:l=>{r(s.experimentLink(l))}},o.join(","))]})}function WIs({experiment:e,onDeleteClick:t,children:n}){const{Link:r}=fn(),[s,o]=g.useState(!1),i=!!e.datasetId,l=i||!!t;return a.jsxs(a.Fragment,{children:[a.jsxs(Vn,{children:[a.jsxs(Vn.Start,{className:"whitespace-nowrap",children:[a.jsx(HIs,{experiment:e}),a.jsx(le,{render:a.jsx(r,{href:CBr(e.id)}),icon:a.jsx(g3,{}),children:"Review queue"}),l&&a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Experiment actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"start",className:"w-48",children:[i&&a.jsxs(ht.Item,{onSelect:()=>o(!0),children:[a.jsx(qd,{})," Rename Experiment"]}),t&&a.jsxs(ht.Item,{onSelect:t,className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{})," Delete Experiment"]})]})]})]}),n&&a.jsx(Vn.End,{children:n})]}),s&&a.jsx(VIs,{experiment:e,open:!0,onOpenChange:o})]})}const iJt=()=>{const{experimentId:e}=hr(),{data:t}=BX();return{experimentId:e,experiment:t?.experiments?.find(n=>n.id===e)}};function ZIs(){const{experimentId:e,experiment:t}=iJt();if(!e)return null;const n=e.length>8?`${e.slice(0,8)}...`:e;return t?.name||n}function GIs(){const{experiment:e}=iJt();return e?a.jsx(qjs,{status:e.status}):null}const QIs=({experimentId:e,experimentStatus:t})=>{const n=Je(),{supportsMetrics:r}=R6(),s=!!e&&r,i=kt({queryKey:["experiment-metrics",e],enabled:s,refetchInterval:t==="running"||t==="pending"?2e3:!1,queryFn:async()=>{if(!e)throw new Error("experimentId is required");const l={experimentId:e},[c,u,d]=await Promise.all([n.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:l}),n.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"avg",filters:l}),n.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:l})]);return{totalTokens:c.value??null,estimatedCost:c.estimatedCost??null,costUnit:c.costUnit??null,avgAgentDurationMs:u.value??null,agentRuns:d.value??null}}});return{data:i.data,isLoading:i.isLoading,isEnabled:s}};function YIs({datasetId:e,experimentId:t}){const[n,r]=g.useState(!1),{updateExperimentResult:s}=dl();return{addTag:g.useCallback(async(i,l)=>{const c=l.filter(d=>!(d.tags??[]).includes(i));if(n||c.length===0)return;r(!0);let u=0;try{u=(await Promise.allSettled(c.map(f=>s.mutateAsync({datasetId:e,experimentId:t,resultId:f.id,tags:[...f.tags??[],i]})))).filter(f=>f.status==="fulfilled").length}finally{r(!1)}u>0?Ye(`Tag "${i}" added to ${u} result${u>1?"s":""}`):Ye.error("Failed to add tag")},[e,t,n,s]),isPending:n}}function KIs({datasetId:e,experimentId:t,results:n}){const[r,s]=g.useState(new Set),[o,i]=g.useState(!1),{updateExperimentResult:l}=dl(),{addTag:c,isPending:u}=YIs({datasetId:e,experimentId:t}),d=sJt(e,n),f=g.useMemo(()=>n.filter(v=>r.has(v.id)),[n,r]),h=g.useCallback(v=>{s(b=>{const x=new Set(b);return x.has(v)?x.delete(v):x.add(v),x})},[]),p=g.useCallback(()=>s(new Set),[]),m=g.useCallback(async()=>{if(o||r.size===0)return;i(!0);const v=new Set;try{for(const b of r)try{await l.mutateAsync({datasetId:e,experimentId:t,resultId:b,status:"needs-review"}),v.add(b)}catch{}}finally{i(!1)}v.size>0&&(s(b=>{const x=new Set(b);for(const w of v)x.delete(w);return x}),Ye(`${v.size} result${v.size>1?"s":""} flagged for review`))},[e,t,o,r,l]),y=g.useCallback(v=>c(v,f),[c,f]);return{selectedIds:r,selectedResults:f,toggleSelect:h,clearSelection:p,flagSelectedForReview:m,isFlagging:o,addTagToSelected:y,isTagging:u,tagVocabulary:d}}const XIs=[],JIs=["startedAt"];function nB({crumbs:e,children:t}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:e}),children:[a.jsx("h1",{className:"sr-only",children:"Experiment"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:t})]})}function eAs(){const{experimentId:e,itemId:t}=hr(),n=[Br("/experiments"),{id:"experiment",Component:ZIs,icon:GIs,to:e?`/experiments/${encodeURIComponent(e)}`:void 0},...t?[{id:"experiment-items",label:"Items"},{id:"experiment-item",label:j_e(t)}]:[]],r=Ur(),[s,o]=g.useState(!1),[i,l]=oo(),{sort:c,onSortChange:u}=ck({searchParams:i,setSearchParams:l,allowedKeys:JIs}),d=g.useMemo(()=>c?{field:c.key,direction:c.direction==="asc"?"ASC":"DESC"}:void 0,[c]),{data:f,isLoading:h}=BX(),m=f?.experiments?.find(N=>N.id===e)?.datasetId??"",{data:y,isLoading:v,error:b}=N4(m,e??""),{data:x,isLoading:w,setEndOfListElement:k,isFetchingNextPage:C,hasNextPage:_}=qSe({datasetId:m,experimentId:e??"",experimentStatus:y?.status,orderBy:d}),T=QIs({experimentId:e,experimentStatus:y?.status}),E=KIs({datasetId:m,experimentId:e??"",results:x??XIs});if(!e||h||v)return null;if(b&&Ss(b))return a.jsx(nB,{crumbs:n,children:a.jsx(Us,{})});if(b&&Ts(b))return a.jsx(nB,{crumbs:n,children:a.jsx(As,{resource:"datasets"})});const I=a.jsx(nB,{crumbs:n,children:a.jsx(dn,{titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:a.jsx(le,{render:a.jsx(vl,{to:"/experiments"}),icon:a.jsx(Eu,{}),children:"Back to Experiments"})})});return b&&AA(b)?I:b?a.jsx(nB,{crumbs:n,children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load experiment",descriptionSlot:b instanceof Error?b.message:"An unexpected error occurred. Please try again."})}):!m||!y?I:a.jsx(Djs,{experimentId:e,datasetId:m,experimentStatus:y.status,results:x??[],isLoadingResults:w,hasNextPage:_,children:a.jsxs("div",{className:"h-full",children:[a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:n}),actionRow:a.jsx(WIs,{experiment:y,onDeleteClick:()=>o(!0),children:a.jsx(LIs,{selection:E})}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsxs("div",{className:"grid grid-cols-[1fr_auto] gap-4 overflow-visible",children:[a.jsx(Vjs,{experimentId:e,experimentStatus:y.status,results:x??[],isLoading:w,setEndOfListElement:k,isFetchingNextPage:C,hasNextPage:_,selectedIds:E.selectedIds,onToggleSelect:E.toggleSelect,sort:c,onSortChange:u}),a.jsx(UIs,{experiment:y,metrics:T,className:"w-80 overflow-y-auto"})]})]}),a.jsx(DIs,{}),a.jsx(UXt,{open:s,onOpenChange:o,experimentId:e,experimentName:y.name??void 0,onSuccess:()=>r("/experiments")})]})})}const WX="targetType",ZX="targetId",GX="experiment",QX="status",YX="tag",Hot={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},tAs=[{value:"review",label:"Review queue"},{value:"completed",label:"Completed"}],Wot={[WX]:{icon:Qwt,hue:265},[ZX]:{icon:nSt,hue:315},[GX]:{icon:sG,hue:160},[QX]:{icon:m3,hue:0},[YX]:{icon:U1,hue:340}},Q$=(e,t)=>({id:e,label:t,icon:Wot[e].icon,color:ZIe(Wot[e].hue),strict:!0}),nAs=[{id:"is",label:"is"}],Y$=(e,t)=>({id:e,fieldId:e,operatorId:"is",value:t}),rAs=({targetType:e,targetId:t,experimentId:n,status:r,tag:s})=>{const o=[];return e&&o.push(Y$(WX,e)),t&&o.push(Y$(ZX,t)),n&&o.push(Y$(GX,n)),r!=="review"&&o.push(Y$(QX,r)),s&&o.push(Y$(YX,s)),o},sAs=e=>{const t=s=>{const o=e.find(i=>i.fieldId===s);return typeof o?.value=="string"?o.value:""},n=t(WX),r=VX(n)?n:"";return{targetType:r,targetId:r?t(ZX):"",experimentId:t(GX),status:t(QX)==="completed"?"completed":"review",tag:t(YX)||null}};function oAs({targetType:e,targetId:t,experimentId:n,status:r,tag:s,experiments:o,tagOptions:i,onChange:l}){const{data:c}=nf({enabled:e==="agent"}),{data:u}=lp({enabled:e==="workflow"}),{data:d}=Gf({enabled:e==="scorer"}),{data:f}=Y_({enabled:e==="processor"}),h=g.useMemo(()=>{const m=e==="agent"?Object.entries(c??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="workflow"?Object.entries(u??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="scorer"?Object.entries(d??{}).map(([y,v])=>({value:y,label:v.scorer?.config?.name??y})):e==="processor"?Object.entries(f??{}).map(([y,v])=>({value:y,label:v.name??y})):[];return[{...Q$(WX,"Target type"),suggestions:XMe.map(y=>({value:y,label:Hot[y]}))},{...Q$(ZX,e?Hot[e]:"Target"),hidden:!e,suggestions:m},{...Q$(GX,"Experiment"),suggestions:o.map(y=>({value:y.id,label:VXt(y)}))},{...Q$(QX,"Status"),suggestions:tAs},{...Q$(YX,"Tag"),hidden:i.length===0,suggestions:i}]},[e,c,u,d,f,o,i]),p=g.useMemo(()=>rAs({targetType:e,targetId:t,experimentId:n,status:r,tag:s}),[e,t,n,r,s]);return a.jsxs(Vg,{fields:h,operators:nAs,value:p,onValueChange:m=>l(sAs(m)),createItemId:m=>m,"aria-label":"Review queue filters",className:"min-w-64 flex-1",children:[a.jsx(Vg.Chips,{}),a.jsx(Vg.Input,{placeholder:"Filter review queue…"})]})}const rB=[Br("/experiments"),Br("/experiments/review-queue")],cce="experiment",Zot="review";function iAs(){const[e,t]=oo(),n=e.get(mC),r=VX(n)?n:"",s=r?e.get(yS)??"":"",o=e.get(cce),i=e.get(Zot),{Link:l,paths:c}=fn(),{data:u,error:d}=XXt(void 0,{targetType:r,targetId:s}),f=u?.experiments.find(p=>p.id===o),h=(p,m)=>{p.status!==m.status&&m.onStatusChange(p.status),p.tag!==m.tag&&m.onTagChange(p.tag),t(y=>{const v=new URLSearchParams(y),b=p.targetType!==r,w=b||p.targetId!==s?"":p.experimentId,k=b?"":p.targetId;return p.targetType?v.set(mC,p.targetType):v.delete(mC),k?v.set(yS,k):v.delete(yS),w?v.set(cce,w):v.delete(cce),v.delete(Zot),v},{replace:!0})};return d&&Ss(d)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(Us,{variant:"fill"})]}):d&&Ts(d)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(As,{variant:"fill",resource:"experiments"})]}):d?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:d.message})]}):a.jsx(_Is,{breadcrumbs:a.jsx(St,{crumbs:rB}),datasetId:f?.datasetId??void 0,experimentId:o??void 0,targetType:r,targetId:s,featuredItemId:i,renderFilters:p=>a.jsx(oAs,{targetType:r,targetId:s,experimentId:o??"",status:p.status,tag:p.tag,experiments:u?.experiments??[],tagOptions:p.tagOptions,onChange:m=>h(m,p)}),toolbarEnd:o?a.jsx(le,{render:a.jsx(l,{href:c.experimentLink(o)}),icon:a.jsx(WOe,{}),children:"See experiment"}):void 0})}function aAs({connection:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsxs("li",{className:"flex items-center justify-between border-b py-2",children:[a.jsxs("div",{children:[a.jsx("div",{className:"font-mono text-caption",children:e.connectionId}),a.jsxs("div",{className:"text-caption text-muted-foreground",children:[e.label??"(no label)"," · ",e.status,e.scope?` · ${e.scope}`:"",t&&e.authorId?` · author: ${e.authorId}`:""]})]}),a.jsx("button",{type:"button",className:"text-destructive underline disabled:opacity-50",onClick:r,disabled:n,children:"Disconnect"})]})}function aJt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsx("ul",{className:"space-y-1",children:e.map(s=>a.jsx(aAs,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function lAs({groups:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsx("div",{className:"space-y-4",children:e.map(([s,o])=>a.jsxs("div",{children:[a.jsx("h3",{className:"text-subheading text-foreground","data-testid":`integration-author-group-${s}`,children:s==="shared"?"Shared":`Owned by ${s}`}),a.jsx(aJt,{connections:o,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function cAs({providerId:e,toolkit:t,connections:n,groupedByAuthor:r,isAdmin:s,isLoading:o,error:i,disconnectPending:l,disconnectError:c,onDisconnect:u}){return a.jsxs("div",{className:"space-y-2 rounded border p-4",children:[a.jsx("h2",{className:"text-heading",children:"Existing connections"}),!e||!t?a.jsx("p",{className:"text-muted-foreground",children:"Pick a provider and toolkit to list connections."}):o?a.jsx("p",{className:"text-muted-foreground",children:"Loading…"}):i?a.jsx("p",{className:"text-destructive",children:String(i)}):n.length===0?a.jsx("p",{className:"text-muted-foreground",children:"No connections."}):r?a.jsx(lAs,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):a.jsx(aJt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?a.jsx("p",{className:"text-destructive",children:String(c)}):null]})}function uAs({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:o,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:h,onToolkitChange:p,onLabelChange:m,onConnect:y}){return a.jsxs("div",{className:"space-y-4 rounded border p-4",children:[a.jsx(Su,{name:"provider",label:"Provider",value:n,onValueChange:h,disabled:o,placeholder:o?"Loading providers…":"Select provider",options:e.map(v=>({value:v.id,label:`${v.displayName??v.name} (${v.id})`})),errorMsg:i?String(i):void 0}),a.jsx(Su,{name:"toolkit",label:"Toolkit",value:r,onValueChange:p,disabled:!n||l,placeholder:l?"Loading toolkits…":"Select toolkit",options:t.map(v=>({value:v.slug,label:`${v.name} (${v.slug})`})),errorMsg:c?String(c):void 0}),a.jsx(Wi,{name:"connection-label",label:"Label (optional)",placeholder:"My personal Gmail",value:s,onChange:v=>m(v.target.value),disabled:!n||!r}),a.jsx(le,{type:"button",variant:"primary",onClick:y,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:String(d)})}):null,f?a.jsxs(en,{variant:"success",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]}):null]})}const Got=e=>e.authorId?.trim()||"shared",dAs=(e,t)=>{if(!t||new Set(e.map(Got)).size<=1)return null;const r=new Map;for(const o of e){const i=Got(o);r.set(i,[...r.get(i)??[],o])}const s=Array.from(r.entries());return s.sort(([o],[i])=>o==="shared"?1:i==="shared"?-1:o.localeCompare(i)),s},fAs=["*","tool-providers:*","tool-providers:admin"];function hAs(){const{data:e}=Zm();return e?.permissions?.some(t=>fAs.includes(t))??!1}const pAs=[{id:"integrations",label:"Integrations"}];function mAs(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,o]=g.useState(""),i=mR(),l=cK(e||null),c=Z9t(e||null,n||null),u=W9t(),d=q9t(),f=hAs(),h=i.data?.providers??[],p=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),y=g.useMemo(()=>dAs(m,f),[m,f]),v=w=>{t(w),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{o(""),c.refetch()}})},x=w=>{d.mutate({providerId:e,connectionId:w})};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:pAs}),children:[a.jsx("h1",{className:"sr-only",children:"Integrations"}),a.jsxs("div",{className:"max-w-3xl space-y-6 text-body",children:[a.jsx("p",{className:"text-muted-foreground",children:"Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect."}),a.jsx(uAs,{providers:h,toolkits:p,providerId:e,toolkit:n,label:s,providersLoading:i.isLoading,providersError:i.error,toolkitsLoading:l.isLoading,toolkitsError:l.error,authorizePending:u.isPending,authorizeError:u.error,authorizedConnection:u.data,onProviderChange:v,onToolkitChange:r,onLabelChange:o,onConnect:b}),a.jsx(cAs,{providerId:e,toolkit:n,connections:m,groupedByAuthor:y,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})]})}function gAs({title:e,description:t,errorBanner:n,children:r}){return a.jsxs("div",{"data-testid":"login-page",className:"w-full max-w-sm space-y-6 p-6",children:[a.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[a.jsx(Dy,{className:"h-10 w-10"}),a.jsx("h1",{className:"text-heading text-foreground",children:e})]}),t,n,r]})}function lJt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:o}=Vl(),{mutate:i,isPending:l,error:c}=OUr(),{mutate:u,isPending:d,error:f}=_Ur(),{mutate:h,isPending:p}=mFt(),[m,y]=g.useState(n),[v,b]=g.useState(""),[x,w]=g.useState(""),[k,C]=g.useState("");if(o)return a.jsx("div",{className:"text-muted-foreground",children:"Loading..."});if(!s?.enabled||!s?.login)return a.jsx("div",{className:"text-muted-foreground",children:"Authentication is not configured"});const{login:_}=s,T=_.type==="sso"||_.type==="both",E=_.type==="credentials"||_.type==="both",I=_.sso,N=_.signUpEnabled!==!1,A=m==="signin"||!N,P=A?l:d,F=A?c:f,L=()=>{t?t():e?window.location.href=e:window.location.href=pK("/")},q=z=>{z.preventDefault(),A?i({email:x,password:k},{onSuccess:L}):u({email:x,password:k,name:v||void 0},{onSuccess:L})},V=()=>{h({redirectUri:e},{onSuccess:z=>{window.location.href=z.url}})},H=()=>{y(A?"signup":"signin")},B=_.description?a.jsxs("div",{className:"flex items-start gap-2.5 rounded-md border border-border bg-sidebar p-3",children:[a.jsx(td,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),a.jsx("p",{className:"text-body text-muted-foreground",children:_.description})]}):null,W=r?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:r})}):null;return a.jsxs(gAs,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:W,children:[E&&a.jsxs("form",{onSubmit:q,className:"space-y-4",children:[!A&&a.jsx(Wi,{name:"name",label:"Name",type:"text",value:v,onChange:z=>b(z.target.value),placeholder:"Your name",variant:"default",size:"lg"}),a.jsx(Wi,{name:"email",label:"Email",type:"email",value:x,onChange:z=>w(z.target.value),placeholder:"you@example.com",required:!0,variant:"default",size:"lg"}),a.jsx(Wi,{name:"password",label:"Password",type:"password",value:k,onChange:z=>C(z.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"}),F?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:F.message})}):null,a.jsx(le,{icon:a.jsx(sCe,{}),type:"submit",disabled:P,className:"w-full",size:"lg",children:P?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),N&&a.jsxs("div",{className:"text-center text-body",children:[a.jsx("span",{className:"text-muted-foreground",children:A?"Don't have an account? ":"Already have an account? "}),a.jsx("button",{type:"button",onClick:H,className:"text-foreground hover:underline",children:A?"Sign up":"Sign in"})]})]}),T&&E&&a.jsxs("div",{className:"relative",children:[a.jsx("div",{className:"absolute inset-0 flex items-center",children:a.jsx("div",{className:"w-full border-t border-border"})}),a.jsx("div",{className:"relative flex justify-center text-body",children:a.jsx("span",{className:"bg-sidebar px-2 text-muted-foreground",children:"or continue with"})})]}),T&&I&&a.jsxs(le,{onClick:V,disabled:p,className:"w-full",size:"lg",children:[I.icon&&a.jsx("span",{className:"mr-2",children:I.icon}),p?"Redirecting...":I.text||"Sign in"]})]})}function vAs(){const[e]=oo(),t=Ur(),n=e.get("redirect")||"/",s=e.get("mode")==="signup"?"signup":"signin",o=e.get("error_description")||e.get("error")||null,i=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return a.jsx(lJt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:o})}function cJt({disabled:e,onClear:t,onRemoveAll:n,onSave:r,onRemoveSaved:s}){const o=!!(n||r||s);return!t&&!o?null:a.jsxs("div",{className:"flex items-center gap-2",children:[t&&a.jsx(le,{disabled:e,size:"md",onClick:t,icon:a.jsx(Qt,{}),children:"Clear"}),o&&a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{disabled:e,size:"md","aria-label":"More filter actions",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",children:[n&&a.jsxs(ht.Item,{onSelect:()=>n(),children:[a.jsx(Qt,{}),"Remove all filters"]}),n&&(r||s)&&a.jsx(ht.Separator,{}),r&&a.jsxs(ht.Item,{onSelect:()=>r(),children:[a.jsx(Df,{}),"Save filters for next time"]}),s&&a.jsxs(ht.Item,{onSelect:()=>s(),children:[a.jsx(Ri,{}),"Remove saved filters"]})]})]})]})}const yAs=Z(q1,"min-w-0 focus:text-foreground");function uce({role:e,checked:t,label:n,onClick:r}){return a.jsxs("button",{ref:ap(),type:"button",role:e,"aria-checked":t,"data-selected":t||void 0,"data-pick-multi-item":"",title:n,className:yAs,onClick:r,children:[a.jsx("span",{className:"min-w-0 flex-1 truncate",children:n}),t&&a.jsx("span",{className:_3,children:a.jsx(Hn,{})})]})}function uJt({field:e,tokens:t,onChange:n}){const[r,s]=g.useState(""),o=j0(),i={className:Z("max-h-[80dvh] overflow-auto p-1",o.containerClassName),...o.getContainerProps({})},l=g.useMemo(()=>{const f=r.trim().toLowerCase();return f?e.options.filter(h=>h.label.toLowerCase().includes(f)):e.options},[e.options,r]),c=g.useMemo(()=>t.find(f=>f.fieldId===e.id),[t,e.id]),u=typeof c?.value=="string"?c.value:e.multi?void 0:e.defaultValue,d=g.useMemo(()=>{const f=c?.value;return Array.isArray(f)?f:typeof f=="string"?[f]:[]},[c]);return a.jsxs(a.Fragment,{children:[e.searchable!==!1&&a.jsxs("div",{className:qj.container,children:[a.jsx(Po,{className:qj.icon}),a.jsx("input",{type:"text",value:r,onChange:f=>s(f.target.value),placeholder:`Search ${e.label.toLowerCase()}...`,className:qj.input,onKeyDown:f=>{if(f.key!=="ArrowDown")return;const p=f.currentTarget.closest("[data-pick-multi-panel]")?.querySelector("[data-pick-multi-item]:not([disabled])");p&&(f.preventDefault(),f.stopPropagation(),p.focus())}})]}),e.isLoading?a.jsxs("div",{className:Z(uV,"m-1"),children:[a.jsx(_n,{size:"sm",className:"size-3 text-muted-foreground"}),"Loading options…"]}):l.length===0?a.jsx("div",{className:Z(uV,"m-1"),children:e.emptyText??"No option found."}):e.multi?a.jsx("div",{...i,children:a.jsx(Gy,{menu:o,children:l.map(f=>{const h=d.includes(f.value);return a.jsx(uce,{role:"checkbox",checked:h,label:f.label,onClick:()=>n(e.id,h?d.filter(p=>p!==f.value):[...d,f.value])},f.value)})})}):a.jsx("div",{role:"radiogroup",...i,children:a.jsxs(Gy,{menu:o,children:[l.map(f=>a.jsx(uce,{role:"radio",checked:u===f.value,label:f.label,onClick:()=>n(e.id,f.value)},f.value)),!e.omitAnyOption&&a.jsx(uce,{role:"radio",checked:u==="Any",label:"Any",onClick:()=>n(e.id,"Any")})]})})]})}function t2e(e){return Array.isArray(e)?e.length===0?"Any":e.join(", "):e}const bAs="This filter is set by the current context and cannot be removed here.";function xAs(e,t){return e.kind==="pick-multi"&&e.options?Array.isArray(t)?t.length===0?"Any":t.map(n=>e.options.find(r=>r.value===n)?.label??n).join(", "):e.options.find(n=>n.value===t)?.label??t:t2e(t)}function wAs({field:e,value:t,tooltipContent:n}){const r=xAs(e,t),s=`${e.label} filter is locked by context`;return a.jsx(Ul,{delayDuration:150,children:a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsxs(Bl,{"data-locked-field-id":e.id,"data-property-filter-pill":"locked",tabIndex:0,"aria-label":s,children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsx(zh,{children:r}),a.jsx(zh,{children:a.jsx(td,{})})]})}),a.jsx(Cn,{children:n})]})})}function SAs({field:e,value:t,onChange:n,onRemove:r,disabled:s,autoFocus:o}){const[i,l]=g.useState(t),c=g.useRef(null);return g.useEffect(()=>{i.trim()!==t&&l(t)},[t]),g.useEffect(()=>{o&&c.current?.focus()},[o]),a.jsxs(Bl,{children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsx(vr,{ref:c,disabled:s,value:i,placeholder:e.placeholder??`Enter ${e.label}`,onChange:u=>{const d=u.target.value;l(d),d.trim()!==t&&n(d)},onKeyDown:u=>{if(u.key==="Enter"){u.preventDefault();const d=i.trim();d!==t&&n(d)}else u.key==="Escape"&&(u.preventDefault(),l(t),u.currentTarget.blur())}}),a.jsx(le,{type:"button",disabled:s,"aria-label":`Remove ${e.label} filter`,onMouseDown:u=>u.preventDefault(),onClick:r,children:a.jsx(Qt,{})})]})}function kAs({field:e,token:t,tokens:n,onChange:r,onRemove:s,disabled:o}){const[i,l]=g.useState(!1);return a.jsxs(Bl,{children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsxs(cp,{open:i,onOpenChange:l,children:[a.jsx(Wd,{asChild:!0,children:a.jsx(le,{type:"button",disabled:o,children:t2e(t.value)})}),a.jsx(Zf,{align:"start",sideOffset:G_,className:"w-64 p-0","data-pick-multi-panel":!0,children:a.jsx(uJt,{field:e,tokens:n,onChange:r})})]}),a.jsx(le,{type:"button",disabled:o,"aria-label":`Remove ${e.label} filter`,onClick:s,children:a.jsx(Qt,{})})]})}function dJt({fields:e,tokens:t,onTokensChange:n,disabled:r,autoFocusFieldId:s,lockedFieldIds:o,lockedTooltipContent:i=bAs}){if(t.length===0)return null;const l=new Set(o??[]),c=(d,f)=>{const h=[...t];h[d]=f,n(h)},u=d=>{n(t.filter((f,h)=>h!==d))};return a.jsx("div",{className:"flex flex-wrap items-center gap-2",children:t.map((d,f)=>{const h=e.find(p=>p.id===d.fieldId);return h?l.has(d.fieldId)?a.jsx(wAs,{field:h,value:d.value,tooltipContent:i},`${d.fieldId}-${f}`):h.kind==="text"&&!Array.isArray(d.value)?a.jsx(SAs,{field:h,value:d.value,disabled:r,autoFocus:s===d.fieldId,onChange:p=>c(f,{fieldId:d.fieldId,value:p}),onRemove:()=>u(f)},`${d.fieldId}-${f}`):h.kind==="pick-multi"?a.jsx(kAs,{field:h,token:d,tokens:t,disabled:r,onChange:(p,m)=>c(f,{fieldId:p,value:m}),onRemove:()=>u(f)},`${d.fieldId}-${f}`):a.jsxs(Bl,{children:[a.jsx(zh,{children:h.label}),a.jsx(zh,{children:"is"}),a.jsx(zh,{children:t2e(d.value)}),a.jsx(le,{type:"button",disabled:r,"aria-label":`Remove ${h.label} filter`,onClick:()=>u(f),children:a.jsx(Qt,{})})]},`${d.fieldId}-${f}`):null})})}const fJt=Z(q1,"focus:text-foreground"),n2e=g.forwardRef((e,t)=>a.jsx("button",{type:"button",role:"menuitem","data-filter-item":"",ref:ap(t),...e}));n2e.displayName="FilterMenuButton";function hJt({fields:e,tokens:t,onTokensChange:n,label:r="Add Filter",disabled:s,size:o,onStartTextFilter:i,hiddenFieldIds:l}){const c=g.useMemo(()=>{if(!l||l.length===0)return e;const P=new Set(l);return e.filter(F=>!P.has(F.id))},[e,l]),[u,d]=g.useState(!1),f=j0(),[h,p]=g.useState(),[m,y]=g.useState([]),[v,b]=g.useState(),[x,w]=g.useState(),k=g.useRef(!1),C=g.useCallback(P=>{w(F=>F===P?void 0:P)},[]),_=g.useCallback(()=>w(void 0),[]);g.useEffect(()=>{u||w(void 0)},[u]);const T=g.useMemo(()=>c.find(P=>P.id===h),[c,h]),E=g.useMemo(()=>{const P=new Set;for(const F of t){const L=e.find(q=>q.id===F.fieldId);L&&L.kind!=="pick-multi"&&P.add(F.fieldId)}return P},[t,e]),I=g.useCallback(()=>{p(void 0),y([]),b(void 0)},[]);g.useEffect(()=>{u||I()},[u,I]);const N=g.useCallback((P,F)=>{const L=t.findIndex(V=>V.fieldId===P);if(Array.isArray(F)&&F.length===0){if(L===-1)return;n(t.filter((V,H)=>H!==L));return}if(L===-1){n([...t,{fieldId:P,value:F}]);return}const q=[...t];q[L]={fieldId:P,value:F},n(q)},[n,t]),A=g.useCallback(()=>{if(!T){b("Choose a property first.");return}if(E.has(T.id)){b(`Remove the existing ${T.label} filter before adding another.`);return}if(m.length===0){b(`Choose at least one ${T.label.toLowerCase()} value.`);return}n([...t,{fieldId:T.id,value:m}]),d(!1)},[m,n,T,E,t]);return a.jsxs(cp,{open:u,onOpenChange:d,children:[a.jsx(Wd,{asChild:!0,children:a.jsx(le,{size:o,disabled:s,icon:a.jsx(N8e,{}),children:r})}),a.jsx(Zf,{align:"end",sideOffset:G_,className:Z("w-64",T?"p-3":"p-1"),initialFocus:!1,finalFocus:()=>k.current?(k.current=!1,!1):!0,children:a.jsxs("div",{className:Z("grid",T&&"gap-3"),children:[T&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button","aria-label":"Back to properties",className:Z($n,yn),onClick:I,children:a.jsx(Eu,{className:"size-4"})}),a.jsx(dMn,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"text-caption text-muted-foreground",children:`${T.label} · is`})]}),!T&&a.jsx("div",{role:"menu",className:Z("max-h-[80dvh] overflow-auto",f.containerClassName),...f.getContainerProps({}),onKeyDown:P=>{if(P.key!=="ArrowDown"&&P.key!=="ArrowUp"&&P.key!=="Home"&&P.key!=="End")return;const F=Array.from(P.currentTarget.querySelectorAll("[data-filter-item]:not([disabled])"));if(F.length===0)return;P.preventDefault();const L=document.activeElement,q=F.findIndex(H=>H===L);let V;P.key==="Home"?V=0:P.key==="End"?V=F.length-1:P.key==="ArrowDown"?V=q<0?0:(q+1)%F.length:V=q<=0?F.length-1:q-1,F[V]?.focus()},children:a.jsx(Gy,{menu:f,children:c.length>0?c.map(P=>{const F=E.has(P.id);return P.kind==="pick-multi"?a.jsx(OAs,{field:P,tokens:t,onChange:N,open:x===P.id,onToggle:C,onClose:_},P.id):a.jsxs(n2e,{className:Z(fJt,"group"),disabled:F,onClick:()=>{if(b(void 0),P.kind==="text"){n([...t,{fieldId:P.id,value:""}]),i?.(P.id),k.current=!0,d(!1);return}p(P.id)},children:[a.jsx("span",{className:"truncate",children:P.label}),F?a.jsx("span",{className:"ml-auto text-muted-foreground",children:"In use"}):a.jsx("span",{className:Z(bG,"text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100"),children:a.jsx(Kr,{})})]},P.id)}):a.jsx("div",{className:uV,children:"No matching property."})})}),T&&a.jsx(qa,{multiple:!0,options:T.options??[],value:m,onValueChange:P=>{y(P),b(void 0)},placeholder:T.placeholder??`Choose ${T.label}`,searchPlaceholder:`Search ${T.label.toLowerCase()}...`,emptyText:T.emptyText??"No option found.",size:"md",name:`property-filter-${T.id}`,"aria-label":T.label,error:v}),T&&a.jsxs("div",{className:"flex items-center justify-end gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),variant:"ghost",size:"md",onClick:()=>d(!1),children:"Cancel"}),a.jsx(le,{icon:a.jsx(N8e,{}),size:"md",onClick:A,children:"Add filter"})]})]})})]})}function OAs({field:e,tokens:t,onChange:n,open:r,onToggle:s,onClose:o}){const i=g.useRef(null);return a.jsxs(cp,{open:r,onOpenChange:l=>{l?s(e.id):o()},children:[a.jsx(Wd,{asChild:!0,children:a.jsxs(n2e,{className:fJt,onKeyDown:l=>{l.key!=="ArrowRight"&&l.key!=="ArrowLeft"||(r||s(e.id),l.preventDefault(),requestAnimationFrame(()=>{i.current?.querySelector('input, button, [tabindex]:not([tabindex="-1"])')?.focus()}))},children:[r&&a.jsx(xr,{className:"text-muted-foreground"}),a.jsx("span",{className:"truncate",children:e.label}),!r&&a.jsx("span",{className:Z(bG,"text-muted-foreground"),children:a.jsx(xr,{})})]})}),a.jsx(Zf,{ref:i,side:"right",align:"start",sideOffset:G_,className:"w-64 p-0",initialFocus:!1,onKeyDown:l=>{if(l.key!=="ArrowDown"&&l.key!=="ArrowUp"&&l.key!=="Home"&&l.key!=="End")return;const c=Array.from(l.currentTarget.querySelectorAll("[data-pick-multi-item]:not([disabled])"));if(c.length===0)return;l.preventDefault(),l.stopPropagation();const u=document.activeElement,d=c.findIndex(h=>h===u);let f;l.key==="Home"?f=0:l.key==="End"?f=c.length-1:l.key==="ArrowDown"?f=d<0?0:(d+1)%c.length:f=d<=0?c.length-1:d-1,c[f]?.focus()},"data-pick-multi-panel":!0,children:a.jsx(uJt,{field:e,tokens:t,onChange:n})})]})}function CAs(e){return e instanceof Date?e:new Date(e)}function _As({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:o,depth:i}){const l=e?Rr(CAs(e.timestamp),"MMM dd, HH:mm:ss.SSS"):"";return a.jsx(At,{open:!!e,onClose:t,title:e?`Log ${l}`:"Log",depth:i,children:e&&a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:t}),a.jsxs(At.Heading,{children:["Log · ",l]}),a.jsx(At.HeaderActions,{children:a.jsx(At.NextPrevNav,{onPrevious:s,onNext:o,previousLabel:"Go to previous log",nextLabel:"Go to next log"})})]}),a.jsx(At.Content,{children:a.jsxs("div",{className:"grid gap-6 p-2",children:[a.jsxs(Lt,{children:[e.entityType&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Entity Type"}),a.jsx(Lt.Value,{children:e.entityType})]}),e.entityName&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Entity Name"}),a.jsx(Lt.Value,{children:e.entityName})]}),e.serviceName&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Service"}),a.jsx(Lt.Value,{children:e.serviceName})]}),e.environment&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Environment"}),a.jsx(Lt.Value,{children:e.environment})]}),e.source&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Source"}),a.jsx(Lt.Value,{children:e.source})]}),e.metadata&&Object.entries(e.metadata).map(([c,u])=>a.jsxs(g.Fragment,{children:[a.jsx(Lt.Key,{children:c}),a.jsx(Lt.Value,{children:String(u)})]},c))]}),a.jsx(At.CodeSection,{title:"Message",codeStr:e.message,simplified:!0}),(e.traceId||e.spanId)&&a.jsxs("div",{className:"grid gap-2",children:[e.traceId&&a.jsxs(Bl,{className:"w-full min-w-0",children:[a.jsxs(le,{className:"min-w-0 flex-1 justify-between overflow-hidden",icon:a.jsx(qf,{}),onClick:()=>e.traceId&&n?.(e.traceId),children:[a.jsx("span",{children:"Trace"}),a.jsxs("span",{className:"ml-auto min-w-0 truncate text-caption text-placeholder",children:["# ",e.traceId]})]}),a.jsx(Co,{content:e.traceId,tooltip:"Copy Trace ID to clipboard"})]}),e.spanId&&a.jsxs(Bl,{className:"w-full min-w-0",children:[a.jsxs(le,{className:"min-w-0 flex-1 justify-between overflow-hidden",disabled:!e.traceId||!r,onClick:()=>e.traceId&&e.spanId&&r?.(e.traceId,e.spanId),icon:a.jsx(qf,{}),children:[a.jsx("span",{children:"Span"}),a.jsxs("span",{className:"ml-auto min-w-0 truncate text-caption text-placeholder",children:["# ",e.spanId]})]}),a.jsx(Co,{content:e.spanId,tooltip:"Copy Span ID to clipboard"})]})]}),e.data&&Object.keys(e.data).length>0&&a.jsx(At.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2)})]})})]})})}function EAs({error:e,resource:t,errorTitle:n}){if(Ss(e))return a.jsx(Us,{});if(Ts(e))return a.jsx(As,{resource:t});if(N3(e))return a.jsx(dn,{titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(j3(e,"logs"))return a.jsx(dn,{titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return a.jsx(dn,{tone:"error",titleSlot:n,descriptionSlot:r??"Unknown error"})}const TAs={debug:"neutral",info:"blue",warn:"yellow",error:"red",fatal:"red"};function jAs({level:e}){return a.jsx(ha,{children:a.jsx($t,{variant:TAs[e],children:e})})}function NAs({entityType:e,className:t}){const n=Z("size-3.5 shrink-0 text-placeholder",t);switch(e.toLowerCase()){case"agent":return a.jsx(Mi,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return a.jsx(xl,{className:n,"aria-hidden":!0});case"tool":return a.jsx(Gd,{className:n,"aria-hidden":!0});default:return null}}function IAs({entityType:e,entityName:t}){const n=e??"";return a.jsxs(ha,{className:"flex min-w-0 items-center gap-2",children:[a.jsx(NAs,{entityType:n}),t?a.jsx("span",{className:"min-w-0 truncate text-body-sm",children:t}):"-"]})}function AAs({message:e}){return a.jsx(ha,{className:"min-w-0 truncate font-mono text-body-sm text-muted-foreground",children:e})}function RAs({data:e}){if(!e||Object.keys(e).length===0)return a.jsx(ha,{children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return a.jsx(vIe,{font:"mono",children:t})}const jl=Object.assign(P5,{Top:$5,TopCell:U0,SortableTopCell:ZY,TopCellWithTooltip:qY,TopCellSmart:D3t,RowWrapper:wIe,RowButton:M5,RowLink:xIe,Spacer:SIe,NoMatch:WY,DateCell:P3t,TimeCell:M3t,LevelCell:jAs,EntityCell:IAs,MessageCell:AAs,DataCell:RAs,NextPageLoading:HY}),Qot="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",PAs=36,$As=8;function MAs({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:o,featuredLogId:i,onLogClick:l,timestampSort:c,onSortChange:u}){const d=g.useRef(null),f=bKt({count:e.length,getScrollElement:()=>d.current,estimateSize:()=>PAs,overscan:$As}),{getRowProps:h}=Uc({count:e.length,containerRef:d,onNavigate:x=>f.scrollToIndex(x),global:!0}),p=g.useRef(t);if(g.useEffect(()=>{p.current&&!t&&d.current?.dispatchEvent(new Event("scroll")),p.current=t},[t]),t)return a.jsx(hc,{columns:Qot,fit:"container"});const m=f.getVirtualItems(),y=f.getTotalSize(),v=m[0]?.start??0,b=m.length>0?Math.max(0,y-(m[m.length-1]?.end??0)):0;return a.jsxs(jl,{columns:Qot,scrollRef:d,className:"min-w-0",fit:"container",children:[a.jsxs(jl.Top,{children:[u?a.jsx(jl.SortableTopCell,{sortKey:"timestamp",sort:c,onSortChange:u,children:"Date"}):a.jsx(jl.TopCell,{children:"Date"}),a.jsx(jl.TopCell,{children:"Time"}),a.jsx(jl.TopCell,{children:"Level"}),a.jsx(jl.TopCell,{children:"Entity"}),a.jsx(jl.TopCell,{children:"Message"}),a.jsx(jl.TopCell,{children:"Data"})]}),e.length===0?a.jsx(jl.NoMatch,{message:"No logs match your search"}):a.jsxs(a.Fragment,{children:[a.jsx(jl.Spacer,{height:v}),m.map(x=>{const w=e[x.index];if(!w)return null;const k=o.get(w);if(!k)return null;const C=k===i;return a.jsxs(jl.RowButton,{ref:f.measureElement,"data-index":x.index,...h(x.index),onClick:()=>l(w),featured:C,variant:w.level==="error"||w.level==="fatal"?"error":"default",children:[a.jsx(jl.DateCell,{timestamp:w.timestamp}),a.jsx(jl.TimeCell,{timestamp:w.timestamp}),a.jsx(jl.LevelCell,{level:w.level}),a.jsx(jl.EntityCell,{entityType:w.entityType,entityName:w.entityName}),a.jsx(jl.MessageCell,{message:w.message}),a.jsx(jl.DataCell,{data:w.data})]},k)}),a.jsx(jl.Spacer,{height:b})]}),a.jsx(jl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function DAs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:o,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>LAs(f,o));return u?a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] items-start gap-3"),children:[a.jsx(dJt,{fields:o,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&a.jsx(cJt,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]}):null}function LAs(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}const FAs={"last-24h":"the last 24 hours","last-3d":"the last 3 days","last-7d":"the last 7 days","last-14d":"the last 14 days","last-30d":"the last 30 days"},dce="MMM d, yyyy HH:mm",fce="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function zAs({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${FAs[e]}`,description:fce}:t&&n?{title:`No logs between ${Rr(t,dce)} and ${Rr(n,dce)}`,description:fce}:t?{title:`No logs since ${Rr(t,dce)}`,description:fce}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const BAs=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=zAs({datePreset:e,dateFrom:t,dateTo:n});return a.jsx(dn,{titleSlot:r,descriptionSlot:s,actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Logging Documentation"}),variant:"fill"})},UAs=20,VAs=1e4,qAs={field:"timestamp",direction:"DESC"};function HAs(e,t,n){if(e?.pagination?.hasMore)return n+1}function WAs(e){const t=new Set,n=[];for(const r of e.pages)for(const s of r.logs??[]){const o=s.logId??JSON.stringify(s);t.has(o)||(t.add(o),n.push(s))}return n}function ZAs(e){return j3(e.state.error,"logs")||N3(e.state.error)?!1:VAs}const GAs=({filters:e,orderBy:t=qAs}={})=>{const n=Je(),{inView:r,setRef:s}=N0(),o=hv({queryKey:["logs",e,t],queryFn:({pageParam:p})=>n.listLogsVNext({pagination:{page:p,perPage:UAs},filters:e,orderBy:t}),initialPageParam:0,getNextPageParam:HAs,select:WAs,retry:!1,refetchInterval:ZAs}),{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c,data:u,isLoading:d,isError:f,error:h}=o;return g.useEffect(()=>{r&&i&&!l&&c()},[r,i,l,c]),{data:u,hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c,isLoading:d,isError:f,error:h,setEndOfListElement:s}},sB={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},pJt=[{label:"Agent",entityType:sB.AGENT},{label:"Workflow",entityType:sB.WORKFLOW},{label:"Scorer",entityType:sB.SCORER},{label:"Ingest",entityType:sB.INGEST}],QAs=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],v0="rootEntityType",xx="datePreset",wx="dateFrom",Sx="dateTo",YAs=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Al={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},M6=Object.keys(Al),r2e=new Set(["tags"]),s2e="mastra:logs:saved-filters";function KAs(e,t=s2e){const n=nRs(e),r=e.get(xx);r&&n.set(xx,r);const s=e.get(wx);s&&n.set(wx,s);const o=e.get(Sx);o&&n.set(Sx,o);try{localStorage.setItem(t,n.toString())}catch{}}function XAs(e=s2e){try{localStorage.removeItem(e)}catch{}}function Yot(e=s2e){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function JAs(e){if(e.has(xx)||e.has(wx)||e.has(Sx)||e.has(v0))return!0;for(const t of M6)if(e.has(Al[t]))return!0;return!1}function eRs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const o=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:pJt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"level",label:"Level",kind:"pick-multi",searchable:!1,options:QAs.map(u=>({label:u.label,value:u.value})),placeholder:"Choose level",emptyText:"No levels."},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"traceId",label:"Trace ID",kind:"text"},{id:"spanId",label:"Span ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"threadId",label:"Thread ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=o.filter(u=>u.kind==="pick-multi").sort(i),c=o.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function tRs(e){const t=[],n=new Map([[v0,"rootEntityType"]]);for(const s of M6)n.set(Al[s],s);const r=new Set;for(const[s]of e.entries()){const o=n.get(s);if(!o||r.has(o))continue;if(r.add(o),r2e.has(o)){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:o,value:l.filter(Boolean)});continue}const i=e.get(s);i!==null&&t.push({fieldId:o,value:i})}return t}function nRs(e){const t=new URLSearchParams,n=e.get(v0);n&&t.set(v0,n);for(const r of M6){const s=Al[r];if(r2e.has(r)){for(const i of e.getAll(s))t.append(s,i);continue}const o=e.get(s);o&&t.set(s,o)}return t}function rRs(e,t){e.delete(v0);for(const n of M6)e.delete(Al[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(v0,n.value);continue}const r=Al[n.fieldId];if(r){if(r2e.has(n.fieldId)&&Array.isArray(n.value)){if(n.value.length===0)e.append(r,"");else for(const s of n.value)e.append(r,s);continue}typeof n.value=="string"&&e.set(r,n.value.trim())}}}function sRs({rootEntityType:e,dateFrom:t,dateTo:n,tokens:r}){const s={};e&&(s.rootEntityType=e),(t||n)&&(s.timestamp={...t?{start:t}:{},...n?{end:n}:{}});for(const o of r){if(o.fieldId==="tags"){Array.isArray(o.value)&&o.value.length>0?s.tags=o.value:typeof o.value=="string"&&o.value.trim()&&(s.tags=[o.value.trim()]);continue}if(o.fieldId==="level"){typeof o.value=="string"&&o.value.trim()&&o.value!=="Any"&&(s.level=o.value);continue}if(typeof o.value=="string"&&o.value.trim()&&o.value!=="Any")switch(o.fieldId){case"entityName":s.rootEntityName=o.value;break;case"traceId":s.traceId=o.value;break;case"spanId":s.spanId=o.value;break;case"runId":s.runId=o.value;break;case"threadId":s.threadId=o.value;break;case"sessionId":s.sessionId=o.value;break;case"requestId":s.requestId=o.value;break;case"resourceId":s.resourceId=o.value;break;case"userId":s.userId=o.value;break;case"organizationId":s.organizationId=o.value;break;case"serviceName":s.serviceName=o.value;break;case"environment":s.environment=o.value;break;case"experimentId":s.experimentId=o.value;break}}return s}function oRs(e,t){return t.map(n=>{const r=e.find(s=>s.id===n.fieldId);return r?r.kind==="text"?{fieldId:n.fieldId,value:""}:r.kind==="pick-multi"?r.multi?{fieldId:n.fieldId,value:[]}:{fieldId:n.fieldId,value:"Any"}:n:n})}const iRs="Filters setting for Logs saved",aRs="Filters setting for Logs cleared up";function lRs(e,t,n){const{storageKey:r,messages:s,skipHydration:o}={},[i,l]=g.useState(()=>Yot(r)!==null),c=g.useCallback(()=>{KAs(e,r),l(!0);const f=s?.saved??iRs;f!==!1&&Ye.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{XAs(r),l(!1);const f=s?.cleared??aRs;f!==!1&&Ye.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(o||d.current||(d.current=!0,JAs(e)))return;const f=Yot(r);f&&t(h=>{const p=new URLSearchParams(h);for(const[m,y]of f)p.append(m,y);return p},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function cRs(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function uRs(e){const t=new Map;for(const n of e){if(n.logId){t.set(n,n.logId);continue}const r=n.timestamp instanceof Date?n.timestamp.toISOString():n.timestamp;t.set(n,cRs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dRs(e,t,n,r){const s=g.useMemo(()=>uRs(e),[e]),o=g.useMemo(()=>{const p=new Map;for(const[m,y]of e.entries()){const v=s.get(y);v&&p.set(v,{log:y,idx:m})}return p},[e,s]),l=(t?o.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(p=>s.get(p),[s]),d=g.useCallback(p=>{const m=s.get(p);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const p=e[l-1];if(!p)return;const m=s.get(p);m&&n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}:void 0,h=l>=0&&l<e.length-1?()=>{const p=e[l+1];if(!p)return;const m=s.get(p);m&&n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:h}}const GSe="logId",QSe="traceId",YSe="spanId",K$=1440*60*1e3,fRs={"last-24h":K$,"last-3d":3*K$,"last-7d":7*K$,"last-14d":14*K$,"last-30d":30*K$};function oB(e){e.delete(GSe),e.delete(QSe),e.delete(YSe)}function hRs(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const C=e.get(xx);return C&&YAs.has(C)?C:"last-24h"},[e]),o=e.get(wx),i=e.get(Sx),l=g.useMemo(()=>{if(s==="custom"){if(!o)return;const _=new Date(o);return Number.isNaN(_.getTime())?void 0:_}if(s==="all")return;const C=fRs[s];return C?new Date(Date.now()-C):void 0},[s,o]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const C=new Date(i);return Number.isNaN(C.getTime())?void 0:C},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(GSe),f=e.get(QSe),h=e.get(YSe),p=g.useMemo(()=>pJt.find(C=>C.entityType===e.get(v0)),[e]),m=g.useMemo(()=>tRs(e),[e]),y=g.useCallback(C=>{t(_=>{const T=new URLSearchParams(_);for(const[E,I]of Object.entries(C)){const N=E==="logId"?GSe:E==="traceId"?QSe:YSe;I?T.set(N,I):T.delete(N)}return T},{replace:!0})},[t]),v=g.useCallback(C=>{t(_=>{const T=new URLSearchParams(_);return rRs(T,C),oB(T),T},{replace:!0})},[t]),b=v,x=g.useCallback((C,_)=>{if(u.current!=="custom")return;const T=_==="from"?wx:Sx;t(E=>{const I=new URLSearchParams(E);return C?I.set(T,C.toISOString()):I.delete(T),oB(I),I},{replace:!0})},[t]),w=g.useCallback(C=>{u.current=C,t(_=>{const T=new URLSearchParams(_);return C==="last-24h"?(T.delete(xx),T.delete(wx),T.delete(Sx)):C==="custom"?T.set(xx,"custom"):(T.set(xx,C),T.delete(wx),T.delete(Sx)),oB(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(C=>{const _=new URLSearchParams(C);_.delete(v0);for(const T of M6)_.delete(Al[T]);return _.delete(xx),_.delete(wx),_.delete(Sx),oB(_),_},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:h,selectedEntityOption:p,filterTokens:m,handleFeaturedChange:y,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:v}),[e,t,s,l,c,u,d,f,h,p,m,y,b,x,w,k,v])}const mJt=()=>{const e=Je();return kt({queryKey:["observability-service-names"],queryFn:async()=>{try{return await e.getServiceNames()}catch{return{serviceNames:[]}}},select:t=>t?.serviceNames??[],retry:!1,staleTime:A6})},gJt=()=>{const e=Je();return kt({queryKey:["observability-tags"],queryFn:async()=>{try{return await e.getTags()}catch{return{tags:[]}}},select:t=>t?.tags??[],retry:!1,staleTime:A6})},hce=[Br("/logs")],pRs=["timestamp"],mRs={key:"timestamp",direction:"desc"};function gRs(){const[e,t]=oo(),n=hRs(e,t),{sort:r,onSortChange:s}=ck({searchParams:e,setSearchParams:t,allowedKeys:pRs,defaultSort:mRs}),o=g.useMemo(()=>({field:"timestamp",direction:r?.direction==="asc"?"ASC":"DESC"}),[r?.direction]),i=lRs(e,t),[l,c]=g.useState(),{data:u=[],isPending:d}=gJt(),{data:f=[],isPending:h}=MMe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:m}=DMe(),{data:y=[],isPending:v}=mJt(),b=g.useMemo(()=>eRs({availableTags:u,availableRootEntityNames:f,availableServiceNames:y,availableEnvironments:p,loading:{tags:d,entityNames:h,serviceNames:v,environments:m}}),[u,f,y,p,d,h,v,m]),x=g.useMemo(()=>sRs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:w=[],isLoading:k,error:C,isFetchingNextPage:_,hasNextPage:T,setEndOfListElement:E}=GAs({filters:x,orderBy:o}),{logIdMap:I,featuredLog:N,handleLogClick:A,handlePreviousLog:P,handleNextLog:F}=dRs(w,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:q}=CE(n.featuredTraceId??null),V=g.useCallback(()=>n.applyFilterTokens(oRs(b,n.filterTokens)),[b,n]),H=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),B=g.useCallback(M=>n.handleFeaturedChange({traceId:M,spanId:null}),[n]),W=g.useCallback((M,U)=>n.handleFeaturedChange({traceId:M,spanId:U}),[n]),z=g.useCallback(()=>n.handleFeaturedChange({traceId:null,spanId:null}),[n]),Y=g.useCallback(M=>n.handleFeaturedChange({spanId:M??null}),[n]),D=a.jsxs(a.Fragment,{children:[a.jsx(Vn,{children:a.jsxs(Vn.Start,{children:[a.jsx(D5,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:k,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),a.jsx(hJt,{fields:b,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:k,onStartTextFilter:c})]})}),a.jsx(DAs,{isLoading:k,filterFields:b,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:V,onRemoveAll:n.handleRemoveAll,onSave:i.handleSave,onRemoveSaved:i.hasSavedFilters?i.handleRemoveSaved:void 0,autoFocusFilterFieldId:l})]});if(C)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsx(EAs,{error:C,resource:"logs",errorTitle:"Failed to load logs"})})]});const R=!!n.selectedEntityOption||n.filterTokens.length>0;return w.length===0&&!k&&!R?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx(BAs,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx(MAs,{logs:w,isLoading:k,isFetchingNextPage:_,hasNextPage:T,setEndOfListElement:E,logIdMap:I,featuredLogId:n.featuredLogId,onLogClick:A,timestampSort:r?.direction,onSortChange:s}),a.jsx(_As,{log:N??void 0,onClose:H,onTraceClick:B,onSpanClick:W,onPrevious:P,onNext:F}),a.jsx(GMe,{depth:2,traceId:N?n.featuredTraceId??void 0:void 0,spans:L?.spans,isLoadingSpans:q,selectedSpanId:n.featuredSpanId??null,onSpanSelect:Y,onClose:z})]})}const vRs={name:e=>e.name||e.id};function yRs({server:e,rowProps:t}){const{paths:n,Link:r}=fn(),o=Je().options.baseUrl,l=e.transports?.includes("sse")??!0?"sse":"mcp",c=o?`${o}/api/mcp/${e.id}/${l}`:"",{data:u}=YZt(e),d=Object.values(u||{}),f=d.length,h=d.filter(y=>y.toolType==="agent").length,p=d.filter(y=>y.toolType==="workflow").length,m=ef(e.name,50);return a.jsxs(xe.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[a.jsx(xe.NameCell,{children:m}),a.jsx(xe.DescriptionCell,{children:c}),a.jsx(xe.TextCell,{className:"text-center",children:h||""}),a.jsx(xe.TextCell,{className:"text-center",children:f||""}),a.jsx(xe.TextCell,{className:"text-center",children:p||""})]})}function bRs({mcpServers:e,isLoading:t,search:n="",sort:r,onSortChange:s}){const o=g.useMemo(()=>{const c=n.toLowerCase();return Q0(e.filter(u=>u.name?.toLowerCase().includes(c)||u.id?.toLowerCase().includes(c)),r,vRs)},[e,n,r]),{containerRef:i,getRowProps:l}=Uc({count:o.length,global:!0});return t?a.jsx(hc,{columns:"auto 1fr auto auto auto"}):a.jsxs(xe,{columns:"auto 1fr auto auto auto",scrollRef:i,children:[a.jsxs(xe.Top,{children:[s?a.jsx(xe.SortableTopCell,{sortKey:"name",sort:r?.key==="name"?r.direction:void 0,onSortChange:s,children:"Name"}):a.jsx(xe.TopCell,{children:"Name"}),a.jsx(xe.TopCell,{children:"URL"}),a.jsx(xe.TopCellSmart,{long:"Agents",short:a.jsx(Mi,{}),tooltip:"Agent Tools",className:"text-center"}),a.jsx(xe.TopCellSmart,{long:"Tools",short:a.jsx(Gd,{}),tooltip:"Tools",className:"text-center"}),a.jsx(xe.TopCellSmart,{long:"Workflows",short:a.jsx(xl,{}),tooltip:"Workflow Tools",className:"text-center"})]}),o.length===0&&n?a.jsx(xe.NoMatch,{message:"No MCP Servers match your search"}):null,o.map((c,u)=>a.jsx(yRs,{server:c,rowProps:l(u)},c.id))]})}const xRs=()=>a.jsx(dn,{titleSlot:"No MCP Servers yet",descriptionSlot:a.jsxs(a.Fragment,{children:["MCP servers are not configured yet. ",a.jsx("br",{}),"More information in the documentation."]}),actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"MCP Documentation"}),variant:"fill"}),X$=[Br("/mcps")],wRs=()=>{const{data:e=[],isLoading:t,error:n}=IA(),[r,s]=g.useState(""),[o,i]=g.useState();return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(As,{variant:"fill",resource:"MCP servers"})]}):n?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load MCP servers",descriptionSlot:n.message})]}):e.length===0&&!t?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(xRs,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})})}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(bRs,{mcpServers:e,isLoading:t,search:r,sort:o,onSortChange:(l,c)=>i({key:c,direction:l})})]})},Kot="auto 1fr auto",SRs={tool:"Tool",agent:"Agent",workflow:"Workflow"};function kRs(e){return e in Z$e}function ORs({type:e}){const t=kRs(e)?e:"tool",n=Z$e[t],r=SRs[t];return a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{"aria-label":t,className:"text-neutral3 inline-flex [&>svg]:size-4",children:a.jsx(n,{})})}),a.jsx(Cn,{children:r})]})}const CRs=gr({ui:gr({resourceUri:jn().optional()}).optional(),"ui/resourceUri":jn().optional()});function _Rs(e){const t=CRs.safeParse(e);return t.success?!!(t.data.ui?.resourceUri?.startsWith("ui://")||t.data["ui/resourceUri"]?.startsWith("ui://")):!1}function ERs({server:e}){const[t,n]=g.useState(""),{data:r={},isLoading:s}=YZt(e),{Link:o,paths:i}=fn(),l=g.useMemo(()=>{const d=t.toLowerCase();return Object.values(r).filter(f=>f.name.toLowerCase().includes(d)||f.description?.toLowerCase().includes(d))},[r,t]),{containerRef:c,getRowProps:u}=Uc({count:l.length});return a.jsxs("section",{className:"flex flex-col gap-3",children:[a.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[a.jsx(Ae,{as:"h2",variant:"heading",children:"Available tools"}),a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:n,label:"Filter tools",placeholder:"Filter by name",shortcutDisabled:!0})})]}),s?a.jsx(hc,{columns:Kot}):a.jsxs(xe,{columns:Kot,scrollRef:c,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Name"}),a.jsx(xe.TopCell,{children:"Description"}),a.jsx(xe.TopCell,{className:"justify-center text-center",children:"Type"})]}),l.length===0&&t?a.jsx(xe.NoMatch,{message:"No tools match your search"}):null,l.map((d,f)=>a.jsxs(xe.RowLink,{to:i.mcpServerToolLink(e.id,d.name),LinkComponent:o,...u(f),children:[a.jsx(xe.NameCell,{children:a.jsxs("span",{className:"flex items-center gap-2",children:[d.name,_Rs(d._meta)&&a.jsx($t,{size:"xs",children:"App"})]})}),a.jsx(xe.DescriptionCell,{children:d.description}),a.jsx(xe.TextCell,{className:"justify-center text-center",children:a.jsx(ORs,{type:d.toolType??"tool"})})]},d.name))]})]})}const TRs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const c=window.MASTRA_SERVER_HOST,u=window.MASTRA_SERVER_PORT;let d=null;c&&u&&(d=`http://${c}:${u}`);const f=d||"http://localhost:4111",h=`${f}/api/mcp/${t.id}/sse`,p=`${f}/api/mcp/${t.id}/mcp`;s({sseUrl:h,httpStreamUrl:p})},[t]),e)return null;if(!t)return a.jsx(Ae,{as:"h1",variant:"heading",tone:"muted",className:"py-20 text-center",children:"Server not found"});const o=t.transports?.includes("sse")??!0,i=`npx -y mcp-remote ${o?n:r}`,l=[{value:"http",label:"HTTP",description:"Use for stateless HTTP transport with streamable responses.",content:r,tooltip:"Copy HTTP Stream URL"},...o?[{value:"sse",label:"SSE",description:"Use for real-time communication via SSE.",content:n,tooltip:"Copy SSE URL"}]:[],{value:"cli",label:"CLI",description:"Use for local command-line access via npx and mcp-remote.",content:i,tooltip:"Copy Command Line Config"}];return a.jsxs("div",{className:"flex flex-col gap-6 pt-4",children:[a.jsx(Ou,{children:a.jsxs(Ya,{defaultTab:"http",children:[a.jsxs(Aq,{className:"border-border1 flex-row items-center justify-between gap-3 space-y-0 border-b",children:[a.jsx(Y1,{className:"shrink-0",children:"Connect"}),a.jsx("div",{className:"min-w-0",children:a.jsx(Qa,{variant:"pill-ghost",size:"sm",children:l.map(c=>a.jsx(Ar,{value:c.value,children:c.label},c.value))})})]}),l.map(c=>a.jsx(vs,{value:c.value,flush:!0,children:a.jsxs(ov,{className:"flex flex-col gap-3",children:[a.jsx(Ae,{tone:"muted",children:c.description}),a.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-lg bg-muted py-2 pr-2 pl-3",children:[a.jsx(Ae,{as:"span",className:"min-w-0 font-mono break-all",children:c.content}),a.jsx(Co,{tooltip:c.tooltip,content:c.content})]})]})},c.value))]})}),a.jsx(ERs,{server:t})]})},jRs=()=>{const{serverId:e}=hr(),t=[Br("/mcps"),oCt],{data:n=[],isLoading:r}=IA(),s=n.find(l=>l.id===e),o=s?.transports?.includes("sse")??!0,i=r||s?a.jsxs(Ic,{children:[a.jsx(Ic.Title,{isLoading:r,children:s?.name}),s&&a.jsx(Ic.Meta,{beside:!0,children:a.jsxs($t,{size:"sm",children:["v",s.version_detail.version]})}),s&&a.jsx(Ic.Description,{children:o?"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case.":"This MCP server speaks Streamable HTTP only (protocol 2026-07-28)."})]}):void 0;return a.jsx(pt,{variant:"narrow",breadcrumbs:a.jsx(St,{crumbs:t}),header:i,children:a.jsx(TRs,{isLoading:r,server:s})})};function NRs(e){if(!e)return;const t=e.ui;if(t?.resourceUri)return t.resourceUri;const n=e["ui/resourceUri"];if(typeof n=="string")return n}function IRs(e){return typeof e=="object"&&e!==null&&e.status==="suspended"}function ARs(e){return JSON.stringify({error:e instanceof Error?e.message:String(e)},null,2)}const RRs=({toolId:e,serverId:t})=>{const{canExecute:n}=Ea(),r=n("tools"),s=Je(),{data:o,isLoading:i,error:l}=DCe(t,e),{mutateAsync:c,isPending:u,data:d,error:f}=x6n(t,e),h=o?NRs(o._meta):void 0,{data:p}=kt({queryKey:["mcp-app-resource",t,h],queryFn:async()=>h?(await s.readMcpServerResource(t,h)).contents[0]?.text??null:null,enabled:!!h}),m=g.useCallback(async(b,x)=>await c(x),[c]);g.useEffect(()=>{if(l){const b=l instanceof Error?l.message:"Failed to load tool";Ye.error(`Error loading tool: ${b}`)}},[l]);const y=async b=>{if(o)return await c(b).catch(()=>{})};if(i)return a.jsxs("div",{className:"p-4",children:[a.jsx(lt,{className:"mb-4 h-8 w-48"}),a.jsx(lt,{className:"h-32 w-full"})]});if(l)return null;if(!o)return a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"heading",tone:"muted",children:"Tool not found"})});if(!r)return a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"caption",tone:"muted",children:"You don't have permission to execute tools."})});let v;try{v=jm(o.inputSchema)}catch(b){console.error("Error processing input schema:",b),Ye.error("Failed to process tool input schema."),v=gr({})}return a.jsxs("div",{className:"flex flex-col gap-4",children:[p&&a.jsx("div",{className:"border-b border-border p-4",children:a.jsx(QZt,{html:p,toolName:o.name,onToolCall:m})}),IRs(d)&&a.jsx("div",{className:"px-4 pt-4",children:a.jsxs(en,{variant:"warning",children:["This tool asked for more input, which Studio cannot provide. The suspend payload below shows what it needs. Call it from an MCP client with an ",a.jsx("code",{children:"inputRequests"})," handler to finish the request."]})}),a.jsx(G$e,{executionResult:d,errorString:f?ARs(f):void 0,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:y,toolDescription:o.description||"",toolId:o.name})]})},PRs=()=>{const{serverId:e,toolId:t}=hr(),n=[Br("/mcps"),{...oCt,to:e?`/mcps/${encodeURIComponent(e)}`:void 0},{id:"mcp-server-tool",Component:k6n}],{data:r,isLoading:s}=DCe(e,t);return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:t}),!s&&r&&a.jsx("div",{className:"h-full w-full overflow-y-auto",children:a.jsx(RRs,{toolId:t,serverId:e})})]})};function $Rs({children:e,className:t}){return a.jsx("div",{className:Z("flex flex-wrap gap-4",t),children:e})}const vJt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],XI="rootEntityType",JI={tags:"filterTags",entityId:"filterEntityId",entityName:"filterEntityName",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId",provider:"filterProvider",model:"filterModel"},KX=Object.keys(JI),o2e="mastra:metrics:saved-filters";function MRs(e){const t=zRs(e);try{localStorage.setItem(o2e,t.toString())}catch{}}function DRs(){try{localStorage.removeItem(o2e)}catch{}}function yJt(){try{const e=localStorage.getItem(o2e);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function LRs(e){if(e.has(XI))return!0;for(const t of KX)if(e.has(JI[t]))return!0;return!1}function bJt({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const o=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:vJt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"entityId",label:"Primitive ID",kind:"text"},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"threadId",label:"Thread ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=o.filter(u=>u.kind==="pick-multi").sort(i),c=o.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function FRs(e){const t=[],n=new Map([[XI,"rootEntityType"]]);for(const s of KX)n.set(JI[s],s);const r=new Set;for(const[s]of e.entries()){const o=n.get(s);if(!o||r.has(o))continue;if(r.add(o),o==="tags"){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:o,value:l.filter(Boolean)});continue}if(o==="rootEntityType"||o==="entityName"||o==="serviceName"||o==="environment"||o==="provider"||o==="model"){const l=e.getAll(s);if(l.length>1){t.push({fieldId:o,value:l});continue}}const i=e.get(s);i!==null&&t.push({fieldId:o,value:i})}return t}function zRs(e){const t=new URLSearchParams,n=e.getAll(XI);for(const r of n)t.append(XI,r);for(const r of KX){const s=JI[r],o=e.getAll(s);for(const i of o)t.append(s,i)}return t}function BRs(e,t){e.delete(XI);for(const n of KX)e.delete(JI[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?XI:JI[n.fieldId];if(r)if(Array.isArray(n.value)){const s=n.value.filter(o=>typeof o=="string"&&o!=="");if(s.length===0){n.fieldId==="tags"&&e.append(r,"");continue}for(const o of s)e.append(r,o)}else typeof n.value=="string"&&e.set(r,n.value.trim())}}const URs="Any";function Xot(e){const t=e.trim();return t===""||t===URs}const VRs=new Set(vJt.map(e=>e.entityType));function Jot(e){const t=e.trim();return VRs.has(t)?t:void 0}function qRs(e){const t={};for(const n of e){const r=n.fieldId;if(Array.isArray(n.value)){const s=n.value.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>!Xot(o));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const o=s[0],i=o!==void 0?Jot(o):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(Xot(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const o=Jot(s);o&&(t.rootEntityType=o)}else t[r]=s}}return t}const xJt=[{label:"Last 24 hours",value:"24h"},{label:"Last 3 days",value:"3d"},{label:"Last 7 days",value:"7d"},{label:"Last 14 days",value:"14d"},{label:"Last 30 days",value:"30d"}],HRs=new Set(xJt.map(e=>e.value));function WRs(e){return typeof e=="string"&&(HRs.has(e)||e==="custom")}const wJt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function XX(){return g.useContext(wJt)}function ZRs(e,t){return e!=="custom"?xJt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${Rr(t.from,"MMM d, yyyy")} – ${Rr(t.to,"MMM d, yyyy")}`:Rr(t.from,"MMM d, yyyy"):"Custom range"}function GRs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:o,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>qRs(d),[d]),h=g.useMemo(()=>JSON.stringify(f),[f]),p=ZRs(t,o),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:o,setCustomRange:i??(()=>{}),dateRangeLabel:p,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:h,tracesBasePath:l,logsBasePath:c}),[t,r,o,i,p,d,s,f,h,l,c]);return a.jsx(wJt.Provider,{value:m,children:e})}const KSe=1440*60*1e3,QRs={"24h":KSe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function YRs(e,t,n){if(e!=="custom"){const r=QRs[e]??KSe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-KSe),end:t?.to??new Date(n)}}function tg(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=XX(),s=g.useRef(null),o=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==o)&&(s.current={key:o,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>YRs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${o}|${r}`,[o,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function SJt(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function D6({href:e,LinkComponent:t="a"}){return a.jsx(le,{render:a.jsx(t,{href:e}),variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:a.jsx(Ua,{})})}function KRs({href:e,LinkComponent:t="a"}){return a.jsx(le,{render:a.jsx(t,{href:e}),variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:a.jsx(t2n,{})})}function XRs(e){return e==="agents"||e==="workflows"||e==="tools"}function eit(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const o=s[t];return r+(typeof o=="number"&&Number.isFinite(o)?o:0)},0);return`${Math.round(n/e.length)}`}function JRs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const ePs=[{dataKey:"p50",label:"p50",color:Qh.blue,aggregate:e=>({value:eit(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Qh.yellow,aggregate:e=>({value:eit(e,"p95"),suffix:"avg ms"})}];function pce({data:e,onPointClick:t}){return e.length===0?a.jsx(Gt.NoData,{message:"No latency data yet"}):a.jsx(IW,{data:e,series:ePs,onPointClick:t?n=>JRs(n)?t(n):void 0:void 0})}function tPs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const o=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:o,workflows:i,tools:l},u=o?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),h=c[d]?d:u,p=typeof s=="function"?s(h):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),y=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],v=y.length>0?`${Math.round(y.reduce((b,x)=>b+x,0)/y.length)}ms`:"—";return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&a.jsx(Gt.Summary,{value:v,label:"Avg p50"}),p?a.jsx(Gt.Actions,{children:p}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load latency data"}):a.jsx(Gt.Content,{children:m?a.jsxs(Ya,{value:h,onValueChange:b=>{XRs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"agents",disabled:!o,disabledTooltip:"No agent latency data for this period",children:"Agents"}),a.jsx(Ar,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),a.jsx(Ar,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),a.jsx(vs,{value:"agents",children:a.jsx(pce,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),a.jsx(vs,{value:"workflows",children:a.jsx(pce,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),a.jsx(vs,{value:"tools",children:a.jsx(pce,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):a.jsx(Gt.NoData,{message:"No latency data yet"})})]})}function nPs(e){switch(e){case"24h":return"last-24h";case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return}}function rPs(e,t){if(t==="1h"){const s=new Date(e);s.setUTCMinutes(0,0,0);const o=new Date(s.getTime()+3600*1e3);return{from:s,to:o}}const n=new Date(e);n.setUTCHours(0,0,0,0);const r=new Date(n.getTime()+1440*60*1e3);return{from:n,to:r}}function kJt(e,t,n,r,s,o,i){if(i){e.set(t,"custom"),e.set(n,i.from.toISOString()),e.set(r,i.to.toISOString());return}if(s==="custom"){e.set(t,"custom"),o?.from&&e.set(n,o.from.toISOString()),o?.to&&e.set(r,o.to.toISOString());return}const l=nPs(s);l&&e.set(t,l)}function Da(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function OJt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function tit({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const o=new URLSearchParams;o.set(gS,"branches"),kJt(o,vS,Kw,Xw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&o.set(j1,i),r.status&&o.set(N1,r.status),Da(o,Xl.entityName,r.entityName??n.entityName),Da(o,Xl.threadId,r.threadId??n.threadId),Da(o,Xl.resourceId,r.resourceId??n.resourceId),Da(o,Xl.entityId,n.entityId),Da(o,Xl.runId,n.runId),Da(o,Xl.sessionId,n.sessionId),Da(o,Xl.requestId,n.requestId),Da(o,Xl.userId,n.userId),Da(o,Xl.organizationId,n.organizationId),Da(o,Xl.experimentId,n.experimentId),Da(o,Xl.serviceName,n.serviceName),Da(o,Xl.environment,n.environment),OJt(o,Xl.tags,n.tags);const l=o.toString();return l?`${s}?${l}`:s}function sPs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const o=new URLSearchParams;kJt(o,xx,wx,Sx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&o.set(v0,i),Da(o,Al.entityName,r.entityName??n.entityName),Da(o,Al.threadId,r.threadId??n.threadId),Da(o,Al.resourceId,r.resourceId??n.resourceId),Da(o,Al.runId,n.runId),Da(o,Al.sessionId,n.sessionId),Da(o,Al.requestId,n.requestId),Da(o,Al.userId,n.userId),Da(o,Al.organizationId,n.organizationId),Da(o,Al.experimentId,n.experimentId),Da(o,Al.serviceName,n.serviceName),Da(o,Al.environment,n.environment),OJt(o,Al.tags,n.tags),r.status==="error"&&o.append(Al.level,"error");const l=o.toString();return l?`${s}?${l}`:s}function AR(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=XX(),o=g.useCallback((c={})=>tit({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>sPs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=rPs(u,d);return tit({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:o,getLogsHref:i,getBucketTracesHref:l}}const CJt="1h";async function mce(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:CJt,filters:n}),s=r.series.find(l=>l.percentile===.5),o=r.series.find(l=>l.percentile===.95);if(!s||!o)return[];const i=new Map(o.points.map(l=>[new Date(l.timestamp).getTime(),l.value]));return s.points.map(l=>{const c=new Date(l.timestamp),u=c.getTime();return{time:c.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tsMs:u,p50:Math.round(l.value),p95:Math.round(i.get(u)??0)}})}function oPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,o]=await Promise.all([mce(e,"mastra_agent_duration_ms",t),mce(e,"mastra_workflow_duration_ms",t),mce(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:o,interval:CJt}}})}const nit={agents:cu.AGENT,workflows:cu.WORKFLOW_RUN,tools:cu.TOOL};function iPs(){const{data:e,isLoading:t,isError:n}=oPs(),{getTracesHref:r,getBucketTracesHref:s}=AR(),{Link:o}=fn(),i=Ur();return a.jsx(tPs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:nit[l]},c.tsMs,"1h"))},actions:l=>a.jsx(D6,{href:r({rootEntityType:nit[l]}),LinkComponent:o})})}function aPs(e){return e==="threads"||e==="resources"}function gce(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function lPs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:o}){const[i,l]=g.useState("threads"),c=e.data?.map(v=>({...v,key:v.threadId}))??[],u=t.data?.map(v=>({...v,key:v.resourceId}))??[],d=c.length>0,f=u.length>0,h=e.data?.reduce((v,b)=>v+b.runs,0)??0,p=t.data?.reduce((v,b)=>v+b.threadCount,0)??0,m=i==="threads"?e:t,y=typeof s=="function"?s(i):s;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&a.jsx(Gt.Summary,{value:h.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&a.jsx(Gt.Summary,{value:p.toLocaleString(),label:"Total threads"}),y?a.jsx(Gt.Actions,{children:y}):null]}),m.isLoading?a.jsx(Gt.Loading,{}):m.isError?a.jsx(Gt.Error,{message:"Failed to load memory data"}):a.jsx(Gt.Content,{children:a.jsxs(Ya,{defaultTab:"threads",value:i,onValueChange:v=>{aPs(v)&&l(v)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"threads",children:"Threads"}),a.jsx(Ar,{value:"resources",children:"Resources"})]}),a.jsx(vs,{value:"threads",children:d?a.jsxs(xe,{columns:"auto auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Thread ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Resource ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Runs"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Tokens"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(v=>{const b=n?.(v),x=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:gce(v.threadId)}),a.jsx(xe.NumberCell,{children:v.resourceId?gce(v.resourceId):"—"}),a.jsx(xe.NumberCell,{highlight:!0,children:v.runs.toLocaleString()}),a.jsx(xe.NumberCell,{children:v.tokens>0?vi(v.tokens):"—"}),a.jsx(xe.NumberCell,{children:v.cost!=null?Ud(v.cost,v.costUnit):"—"})]});return b?a.jsx(xe.RowLink,{to:b,LinkComponent:o,children:x},v.key):a.jsx(xe.RowStatic,{children:x},v.key)})]}):a.jsx(Gt.NoData,{message:"No thread activity yet"})}),a.jsx(vs,{value:"resources",children:f?a.jsxs(xe,{columns:"auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Resource ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Threads"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Tokens"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(v=>{const b=r?.(v),x=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:gce(v.resourceId)}),a.jsx(xe.NumberCell,{highlight:!0,children:v.threadCount.toLocaleString()}),a.jsx(xe.NumberCell,{children:v.tokens>0?vi(v.tokens):"—"}),a.jsx(xe.NumberCell,{children:v.cost!=null?Ud(v.cost,v.costUnit):"—"})]});return b?a.jsx(xe.RowLink,{to:b,LinkComponent:o,children:x},v.key):a.jsx(xe.RowStatic,{children:x},v.key)})]}):a.jsx(Gt.NoData,{message:"No resource activity yet"})})]})})]})}const vce=20;function cPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,o,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:vce}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:vce}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:vce})]),l=new Map,c=d=>NR(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const h=f.dimensions.threadId;if(!h)continue;const p=c(h);p.tokens+=f.value,f.estimatedCost!=null&&(p.cost=(p.cost??0)+f.estimatedCost,f.costUnit&&(p.costUnit=f.costUnit))}};return u(o.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.threadId).map(d=>{const f=d.dimensions.threadId,h=l.get(f);return{threadId:f,resourceId:d.dimensions.resourceId??null,runs:d.value,tokens:h?.tokens??0,cost:h?.cost??null,costUnit:h?.costUnit??null}})}})}const yce=20;function uPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,o,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:yce}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:yce}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:yce})]),l=new Map,c=d=>NR(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const h=f.dimensions.resourceId;if(!h)continue;const p=c(h);p.tokens+=f.value,f.estimatedCost!=null&&(p.cost=(p.cost??0)+f.estimatedCost,f.costUnit&&(p.costUnit=f.costUnit))}};return u(o.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.resourceId).map(d=>{const f=d.dimensions.resourceId,h=l.get(f);return{resourceId:f,threadCount:d.value,tokens:h?.tokens??0,cost:h?.cost??null,costUnit:h?.costUnit??null}})}})}function dPs(){const e=cPs(),t=uPs(),{getTracesHref:n}=AR(),{Link:r}=fn();return a.jsx(lPs,{threads:{data:e.data,isLoading:e.isLoading,isError:e.isError},resources:{data:t.data,isLoading:t.isLoading,isError:t.isError},LinkComponent:r,getThreadRowHref:s=>n({threadId:s.threadId,...s.resourceId?{resourceId:s.resourceId}:{}}),getResourceRowHref:s=>n({resourceId:s.resourceId})})}function L6({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:o,lowerIsBetter:i}){const l=t!=null;return a.jsxs(er,{children:[a.jsx(er.Label,{children:e}),a.jsxs(er.ValueRow,{children:[l?a.jsx(er.Value,{children:t}):null,o?a.jsx(er.Error,{}):s?a.jsx(er.Loading,{}):l?r!=null&&r!==0?a.jsx(er.Change,{changePct:r,prevValue:n,lowerIsBetter:i}):a.jsx(er.NoChange,{}):a.jsx(er.NoData,{})]})]})}function fPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function hPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function pPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function mPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),o=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:o?l:null,previousValue:i?c:null,changePercent:u}}})}function gPs(){const{data:e,isLoading:t,isError:n}=SJt();return a.jsx(L6,{label:"Total Agent Runs",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function vPs(){const{data:e,isLoading:t,isError:n}=pPs();return a.jsx(L6,{label:"Total Model Cost",value:e?.cost!=null?Ud(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Ud(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,lowerIsBetter:!0,isLoading:t,isError:n})}function yPs(){const{data:e,isLoading:t,isError:n}=mPs();return a.jsx(L6,{label:"Total Tokens",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function bPs(){const{data:e,isLoading:t,isError:n}=hPs();return a.jsx(L6,{label:"Total Threads",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function xPs(){const{data:e,isLoading:t,isError:n}=fPs();return a.jsx(L6,{label:"Total Resources",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}const wPs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function SPs(e){switch(e){case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return"last-24h"}}function kPs(e){switch(e){case"last-3d":return"3d";case"last-7d":return"7d";case"last-14d":return"14d";case"last-30d":return"30d";case"custom":return"custom";default:return"24h"}}function OPs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=XX(),s=g.useRef(e);s.current=e;const o=g.useRef(n);return o.current=n,a.jsx(D5,{preset:SPs(e),onPresetChange:i=>{const l=kPs(i);s.current=l,t(l)},dateFrom:n?.from,dateTo:n?.to,onDateChange:(i,l)=>{if(s.current!=="custom")return;const c={...o.current,[l]:i};o.current=c,r(c)},presets:wPs})}const G2=[Br("/metrics")];function CPs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:o,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>_Ps(f,o));return u?a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] items-start gap-3"),children:[a.jsx(dJt,{fields:o,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&a.jsx(cJt,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]}):null}function _Ps(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}function XSe({children:e,filterFields:t,isLoading:n=!1}){const[r]=oo(),{filterTokens:s,setFilterTokens:o}=XX(),[i,l]=g.useState(),[c,u]=g.useState(()=>!!yJt()),d=()=>{MRs(r),u(!0),Ye.success("Filters setting for Metrics saved")},f=()=>{DRs(),u(!1),Ye.success("Filters setting for Metrics cleared up")},h=()=>{const p=s.map(m=>{const y=t.find(v=>v.id===m.fieldId);return y?y.kind==="text"?{fieldId:m.fieldId,value:""}:y.kind==="pick-multi"?y.multi?{fieldId:m.fieldId,value:[]}:{fieldId:m.fieldId,value:"Any"}:y.kind==="multi-select"?{fieldId:m.fieldId,value:[]}:m:m});o(p)};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),actionRow:a.jsxs(a.Fragment,{children:[a.jsx(Vn,{children:a.jsxs(Vn.Start,{children:[a.jsx(OPs,{}),a.jsx(hJt,{fields:t,tokens:s,onTokensChange:o,disabled:n,onStartTextFilter:l})]})}),a.jsx(CPs,{isLoading:n,filterFields:t,filterTokens:s,onFilterTokensChange:o,onClear:h,onRemoveAll:()=>o([]),onSave:d,onRemoveSaved:c?f:void 0,autoFocusFilterFieldId:i})]}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),e]})}function EPs({error:e}){return Ss(e)?a.jsx(Us,{}):Ts(e)?a.jsx(As,{resource:"metrics"}):a.jsx(dn,{tone:"error",titleSlot:"Failed to load storage capabilities",descriptionSlot:e.message})}const rit=bJt({availableTags:[],availableEntityNames:[],availableServiceNames:[],availableEnvironments:[]});function TPs({children:e}){const{supportsMetrics:t,isLoading:n,error:r}=R6();return n?a.jsx(XSe,{filterFields:rit,isLoading:!0,children:a.jsxs("div",{className:"flex h-full items-center justify-center gap-2",children:[a.jsx(_n,{"aria-label":"Loading storage capabilities"}),a.jsx("span",{className:"text-caption text-muted-foreground",children:"Loading storage capabilities"})]})}):r?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsx(EPs,{error:r})})]}):t?e:a.jsx(XSe,{filterFields:rit,children:a.jsx(dn,{titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Metrics Documentation"}),variant:"fill"})})}function jPs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:o}){const i=!!e&&e.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Ud(l):"—":c.size===1?u=l>0?Ud(l,[...c][0]):"—":u="Mixed",a.jsx(Gt.Summary,{value:u,label:"Total cost"})})(),s?a.jsx(Gt.Actions,{children:s}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load model usage data"}):a.jsx(Gt.Content,{children:i?a.jsxs(xe,{columns:"auto auto auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Model"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Input"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Output"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cache Read"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cache Write"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:l.model}),a.jsx(xe.NumberCell,{children:l.input}),a.jsx(xe.NumberCell,{children:l.output}),a.jsx(xe.NumberCell,{children:l.cacheRead}),a.jsx(xe.NumberCell,{children:l.cacheWrite}),a.jsx(xe.NumberCell,{highlight:!0,children:l.cost!=null?Ud(l.cost,l.costUnit):"—"})]});return c?a.jsx(xe.RowLink,{to:c,LinkComponent:o,children:u},l.model):a.jsx(xe.RowStatic,{children:u},l.model)})]}):a.jsx(Gt.NoData,{message:"No model usage data yet"})})]})}function NPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,o,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!o||!i)return[];const l=new Map,c=d=>NR(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",h=c(f);h.input=d.value,u(h,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",h=c(f);h.output=d.value,u(h,d)}for(const d of o.groups){const f=d.dimensions.model??"unknown",h=c(f);h.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",h=c(f);h.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:vi(f.input),output:vi(f.output),cacheRead:vi(f.cacheRead),cacheWrite:vi(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function IPs(){const{data:e,isLoading:t,isError:n}=NPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(jPs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:cu.AGENT}),actions:a.jsx(D6,{href:r({rootEntityType:cu.AGENT}),LinkComponent:s})})}function APs(e){return e==="tokens"||e==="cost"}function RPs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:o}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),h=new Set(f.map(b=>b.costUnit??"usd")),p=h.size<=1,m=p?[...h][0]??"usd":null,y=p?f.reduce((b,x)=>b+(x.cost??0),0):0,v=p&&y>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&v?a.jsx(Gt.Summary,{value:Ud(y,m),label:"Total cost"}):a.jsx(Gt.Summary,{value:vi(d),label:"Total tokens"})),u&&s?a.jsx(Gt.Actions,{children:s}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load token usage data"}):a.jsx(Gt.Content,{children:u?a.jsxs(Ya,{defaultTab:"tokens",value:i,onValueChange:b=>{APs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"tokens",children:"Tokens"}),a.jsx(Ar,{value:"cost",children:"Cost"})]}),a.jsx(vs,{value:"tokens",children:a.jsx(KI,{LinkComponent:o,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Qh.blueDark},{label:"Output",color:Qh.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:vi})}),a.jsx(vs,{value:"cost",children:v?a.jsx(KI,{LinkComponent:o,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Qh.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Ud(b,m)}):a.jsx(Gt.NoData,{message:"No cost data yet"})})]}):a.jsx(Gt.NoData,{message:"No token usage data yet"})})]})}function PPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,o]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>NR(i,u,()=>({input:0,output:0,cost:null,costUnit:null})),c=(u,d)=>{d.estimatedCost!=null&&(u.cost=(u.cost??0)+d.estimatedCost,d.costUnit&&(u.costUnit=d.costUnit))};for(const u of s.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.input=u.value,c(f,u)}for(const u of o.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.output=u.value,c(f,u)}return Array.from(i.entries()).map(([u,d])=>({name:u,input:d.input,output:d.output,total:d.input+d.output,cost:d.cost,costUnit:d.costUnit})).sort((u,d)=>d.total-u.total)}})}function $Ps(){const{data:e,isLoading:t,isError:n}=PPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(RPs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:o=>r({rootEntityType:cu.AGENT,entityName:o.name}),actions:a.jsx(D6,{href:r({rootEntityType:cu.AGENT}),LinkComponent:s})})}function JSe(e,t=vi){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const MPs=[{dataKey:"input",label:"Input tokens",color:Qh.blue,aggregate:JSe("input")},{dataKey:"output",label:"Output tokens",color:Qh.yellow,aggregate:JSe("output")}];function DPs(e){return e==="tokens"||e==="cost"}function LPs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[o,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,C)=>k+C.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),h=f.map(k=>({...k})),p=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=p.size===1&&f.every(k=>k.costUnit!=null),y=m?[...p][0]??null:null,v=m?f.reduce((k,C)=>k+(C.cost??0),0):0,b=m&&v>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Qh.purple,aggregate:JSe("cost",k=>Ud(k,y))}];return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(o==="cost"&&b?a.jsx(Gt.Summary,{value:Ud(v,y),label:"Total cost"}):a.jsx(Gt.Summary,{value:vi(d),label:"Total tokens"})),u&&s?a.jsx(Gt.Actions,{children:s}):null]}),n?a.jsx(Gt.Loading,{}):r?a.jsx(Gt.Error,{message:"Failed to load token usage timeline"}):a.jsx(Gt.Content,{children:u?a.jsxs(Ya,{defaultTab:"tokens",value:o,onValueChange:k=>{DPs(k)&&i(k)},className:"overflow-visible",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"tokens",children:"Tokens"}),a.jsx(Ar,{value:"cost",children:"Cost"})]}),a.jsx(vs,{value:"tokens",children:a.jsx(IW,{data:c,series:MPs})}),a.jsx(vs,{value:"cost",children:b?a.jsx(IW,{data:h,series:w}):a.jsx(Gt.NoData,{message:"No cost data yet"})})]}):a.jsx(Gt.NoData,{message:"No token usage data yet"})})]})}function FPs(e){return e==="24h"?"1h":"1d"}function zPs(e,t){return t==="1h"?e.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):e.toLocaleDateString("en-US",{month:"short",day:"2-digit"})}function sit(e,t,n){for(const r of t?.points??[]){const s=new Date(r.timestamp).getTime();if(!Number.isFinite(s))continue;const o=e.get(s)??{tsMs:s,input:0,output:0,cost:null,costUnits:new Set,hasUnknownCostUnit:!1};o[n]+=r.value,r.estimatedCost!=null&&(o.cost=(o.cost??0)+r.estimatedCost,t?.costUnit?o.costUnits.add(t.costUnit):o.hasUnknownCostUnit=!0),e.set(s,o)}}function BPs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function UPs(){const e=Je(),{datePreset:t,filters:n,filterKey:r}=tg(),s=FPs(t);return kt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[o,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return sit(l,o.series[0],"input"),sit(l,i.series[0],"output"),{data:Array.from(l.values()).sort((u,d)=>u.tsMs-d.tsMs).map(u=>{const d=new Date(u.tsMs);return{time:zPs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:BPs(u)}}),interval:s}}})}function VPs(){const{data:e,isLoading:t,isError:n}=UPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(LPs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:a.jsx(D6,{href:r(),LinkComponent:s})})}function bce({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return a.jsx(KI,{LinkComponent:r,data:e.map(s=>{const o=n?.(s),i=t?.(s);return o?{name:s.name,values:[s.completed,s.errors],hrefs:[i,o]}:{name:s.name,values:[s.completed,s.errors],href:i}}),segments:[{label:"Completed",color:Qh.blueDark},{label:"Errors",color:Qh.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:vi})}function qPs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:o,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof o=="function"?o(l):o,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,y)=>m+y.completed+y.errors,0):0,h=m=>r?y=>r(m,y):void 0,p=m=>s?y=>s(m,y):void 0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&a.jsx(Gt.Summary,{value:vi(f),label:"Total runs"}),u?a.jsx(Gt.Actions,{children:u}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load trace volume data"}):a.jsx(Gt.Content,{children:d?a.jsxs(Ya,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"agents",children:"Agents"}),a.jsx(Ar,{value:"workflows",children:"Workflows"}),a.jsx(Ar,{value:"tools",children:"Tools"})]}),a.jsx(vs,{value:"agents",children:e.agentData.length>0?a.jsx(bce,{data:e.agentData,rowHrefs:h("agents"),errorHrefs:p("agents"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No agent data yet"})}),a.jsx(vs,{value:"workflows",children:e.workflowData.length>0?a.jsx(bce,{data:e.workflowData,rowHrefs:h("workflows"),errorHrefs:p("workflows"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No workflow data yet"})}),a.jsx(vs,{value:"tools",children:e.toolData.length>0?a.jsx(bce,{data:e.toolData,rowHrefs:h("tools"),errorHrefs:p("tools"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No tool data yet"})})]}):a.jsx(Gt.NoData,{message:"No trace volume data yet"})})]})}async function xce(e,t,n){const r=await e.getMetricBreakdown({name:[t],groupBy:["entityName","status"],aggregation:"count",orderDirection:"DESC",filters:n}),s=new Map;for(const o of r.groups){const i=o.dimensions.entityName??"unknown",l=o.dimensions.status??"ok",c=NR(s,i,()=>({completed:0,errors:0}));l==="error"?c.errors+=o.value:c.completed+=o.value}return Array.from(s.entries()).map(([o,i])=>({name:o,...i})).sort((o,i)=>i.completed+i.errors-(o.completed+o.errors))}function HPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,o]=await Promise.all([xce(e,"mastra_agent_duration_ms",t),xce(e,"mastra_workflow_duration_ms",t),xce(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:o}}})}const iB={agents:cu.AGENT,workflows:cu.WORKFLOW_RUN,tools:cu.TOOL};function WPs(){const{data:e,isLoading:t,isError:n}=HPs(),{getTracesHref:r,getLogsHref:s}=AR(),{Link:o}=fn();return a.jsx(qPs,{data:e,isLoading:t,isError:n,LinkComponent:o,getRowHref:(i,l)=>r({rootEntityType:iB[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:iB[i],entityName:l.name,status:"error"}):void 0,actions:i=>a.jsxs(a.Fragment,{children:[a.jsx(D6,{href:r({rootEntityType:iB[i]}),LinkComponent:o}),a.jsx(KRs,{href:s({rootEntityType:iB[i],status:"error"}),LinkComponent:o})]})})}const wce="period",aB="dateFrom",lB="dateTo";function ZPs(){const[e,t]=oo(),n=e.get(wce),r=WRs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=p=>{if(!p)return;const m=new Date(p);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(aB)),h=d(e.get(lB));if(!(!f&&!h))return{from:f,to:h}},[r,e.toString()]),o=g.useMemo(()=>FRs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return d==="24h"?h.delete(wce):h.set(wce,d),d!=="custom"&&(h.delete(aB),h.delete(lB)),h},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return d?.from?h.set(aB,d.from.toISOString()):h.delete(aB),d?.to?h.set(lB,d.to.toISOString()):h.delete(lB),h},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return BRs(h,d),h},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,LRs(e)))return;const d=yJt();d&&t(f=>{const h=new URLSearchParams(f);for(const[p,m]of d)h.append(p,m);return h},{replace:!0})},[]),a.jsx(GRs,{preset:r,filterTokens:o,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:a.jsx(TPs,{children:a.jsx(GPs,{})})})}function GPs(){const{error:e,isLoading:t}=SJt(),{isInMemory:n}=R6(),{data:r,isLoading:s}=gJt(),{data:o,isLoading:i}=MMe(),{data:l,isLoading:c}=mJt(),{data:u,isLoading:d}=DMe(),f=g.useMemo(()=>bJt({availableTags:r??[],availableEntityNames:o??[],availableServiceNames:l??[],availableEnvironments:u??[],loading:{tags:s,entityNames:i,serviceNames:c,environments:d}}),[r,o,l,u,s,i,c,d]);return e&&Ss(e)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(Us,{variant:"fill"})]}):e&&Ts(e)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(As,{variant:"fill",resource:"metrics"})]}):e?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load metrics",descriptionSlot:e.message})]}):a.jsx(XSe,{filterFields:f,isLoading:t,children:a.jsxs("div",{className:"grid content-start gap-4 pb-6",children:[n&&a.jsx(en,{variant:"info",title:"Metrics are not persisted",children:a.jsx(en.Message,{children:"This project uses in-memory storage for observability. Metrics will be lost on every server restart. For persistent metrics, switch the observability storage to ClickHouse, DuckDB, Postgres v-next, or Spanner."})}),a.jsxs(BXt,{children:[a.jsx(gPs,{}),a.jsx(vPs,{}),a.jsx(yPs,{}),a.jsx(bPs,{}),a.jsx(xPs,{})]}),a.jsxs($Rs,{children:[a.jsx(IPs,{}),a.jsx($Ps,{}),a.jsx(VPs,{}),a.jsx(dPs,{}),a.jsx(WPs,{}),a.jsx(iPs,{})]})]})})}function QPs(){const{isCmsAvailable:e}=xb(),{paths:t}=fn();return e?a.jsx(hK,{href:t.cmsPromptBlockCreateLink(),tooltip:"Create a prompt",children:"New prompt"}):null}const J$=[Br("/prompts")],YPs=50,KPs=["updatedAt"];function XPs(){const[e,t]=g.useState(""),[n,r]=g.useState(0),[s,o]=oo(),{sort:i,onSortChange:l}=ck({searchParams:s,setSearchParams:o,allowedKeys:KPs}),c=g.useMemo(()=>i?{field:i.key,direction:i.direction==="asc"?"ASC":"DESC"}:void 0,[i]),{data:u,isLoading:d,error:f,isPlaceholderData:h}=uQt({page:n,perPage:YPs,orderBy:c}),p=u?.promptBlocks??[],m=u?.hasMore??!1,y=g.useCallback(()=>{h||r(w=>w+1)},[h]),v=g.useCallback(()=>{h||r(w=>Math.max(0,w-1))},[h]),b=g.useCallback(w=>{t(w),r(0)},[]),x=g.useCallback((w,k)=>{l(w,k),r(0)},[l]);return f&&Ss(f)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(Us,{variant:"fill"})]}):f&&Ts(f)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(As,{variant:"fill",resource:"prompt blocks"})]}):f?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load prompt blocks",descriptionSlot:f.message})]}):p.length===0&&!d&&n===0?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(lxs,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),headerActions:a.jsx(QPs,{}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:b,label:"Filter prompts",placeholder:"Filter by name or description"})})})}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(axs,{promptBlocks:p,isLoading:d,search:e,currentPage:n,hasMore:m,onNextPage:y,onPrevPage:v,updatedSort:i?.direction,onSortChange:x})]})}const JPs=[Br("/request-context")];function e$s(){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:JPs}),children:[a.jsx("h1",{className:"sr-only",children:"Request Context"}),a.jsx("div",{children:a.jsx(Wps,{children:a.jsx(iSe,{})})})]})}const t$s=[Br("/resources")],n$s=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:O$n,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Gwt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Is,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:b3,href:"https://discord.gg/mastra-ai",external:!0},{title:"Share with your team",description:"Running Mastra Studio locally? Deploy to the cloud so your team can collaborate.",icon:eSt,href:"https://mastra.ai/cloud",external:!0},{title:"Talk to our Sales team",description:"Get a custom demo, discuss on-prem deployments, and how we can help you accelerate getting agents into production.",icon:GOe,href:"https://mastra.ai/contact?ref=studio",external:!0}];function r$s(){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t$s}),children:[a.jsx("h1",{className:"sr-only",children:"Resources"}),a.jsx("div",{children:a.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:n$s.map(e=>a.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group state-layer flex flex-col gap-3 rounded-lg border border-border bg-background p-5 hover:border-accent1",children:[a.jsxs("div",{className:"flex items-center gap-2.5",children:[a.jsx(e.icon,{className:Z("h-5 w-5 text-muted-foreground group-hover:text-accent1",yn)}),a.jsx("span",{className:"text-subheading text-foreground",children:e.title}),e.external&&a.jsx(Is,{className:"ml-auto h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100"})]}),a.jsx("p",{className:"text-text3 text-caption",children:e.description})]},e.href))})})]})}function oit(){const{isCmsAvailable:e}=xb(),{paths:t}=fn();return e?a.jsx(hK,{href:t.cmsScorersCreateLink(),tooltip:"Create a scorer",children:"New scorer"}):null}const eM=[Br("/scorers")];function s$s(){const{data:e={},isLoading:t,error:n}=Gf(),[r,s]=g.useState(""),[o,i]=g.useState("all"),[l,c]=g.useState();if(n&&Ss(n))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Us,{variant:"fill"})]});if(n&&Ts(n))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(As,{variant:"fill",resource:"scorers"})]});if(n)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load scorers",descriptionSlot:n.message})]});if(Object.keys(e).length===0&&!t)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),headerActions:a.jsx(oit,{}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Lgs,{})]});const u=o!=="all"||r!=="",d=()=>{s(""),i("all")};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),headerActions:a.jsx(oit,{}),actionRow:a.jsx(zgs,{search:r,onSearchChange:s,sourceFilter:o,onSourceFilterChange:i,onReset:d,hasActiveFilters:u}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Dgs,{scorers:e,isLoading:t,search:r,sourceFilter:o,sort:l,onSortChange:(f,h)=>c({key:h,direction:f})})]})}const _Jt=["input","entity"],o$s={input:"Input",entity:"Entity"};function i$s(e){const t=["auto","auto","minmax(0, 10rem)"];return e.has("entity")&&t.push("minmax(0, 14rem)"),e.has("input")&&t.push("minmax(0, 40rem)"),t.join(" ")}function a$s(){const[e,t]=g.useState(new Set),n=g.useMemo(()=>new Set(_Jt.filter(o=>!e.has(o))),[e]),r=g.useMemo(()=>i$s(n),[n]),s=g.useCallback(o=>{t(i=>{const l=new Set(i);return l.has(o)?l.delete(o):l.add(o),l})},[]);return{visibleColumns:n,columns:r,toggleColumn:s}}function l$s({visibleColumns:e,toggleColumn:t}){return a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{icon:a.jsx(Fve,{}),children:"Columns"})}),a.jsxs(ht.Content,{align:"end",children:[a.jsx(ht.Label,{children:"Toggle columns"}),_Jt.map(n=>a.jsx(ht.CheckboxItem,{checked:e.has(n),onClick:()=>t(n),children:o$s[n]},n))]})]})}const iit=[Br("/scorers"),xqn],c$s=["date","score"];function u$s(){const{scorerId:e}=hr(),[t,n]=oo(),r=t.get("scoreId")??void 0,[s,o]=g.useState(r),[i,l]=g.useState(!1),c=Ur(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:h}=JVn(e),p=a$s(),{data:m={},isLoading:y,error:v}=nf(),{isLoading:b,error:x}=lp(),{sort:w,onSortChange:k}=ck({searchParams:t,setSearchParams:n,allowedKeys:c$s}),{data:C=[],isLoading:_,error:T,isFetchingNextPage:E,hasNextPage:I,setEndOfListElement:N}=XVn({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),A=g.useMemo(()=>Q0(C,w,{date:X=>X.createdAt,score:X=>typeof X.score=="number"?X.score:void 0}),[C,w]),P=g.useMemo(()=>f?.agentIds?.filter(X=>m[X]).map(X=>({value:X,label:m[X].name,type:"AGENT"}))||[],[f?.agentIds,m]),F=g.useMemo(()=>f?.workflowIds?.map(X=>({value:X,label:X,type:"WORKFLOW"}))||[],[f?.workflowIds]),L=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...P,...F],[P,F]),q=t.get("entity")??"all",V=L.find(X=>X.value===q);V&&V.value!==u?.value&&d(V),g.useEffect(()=>{if(h){const X=h instanceof Error?h.message:"Failed to load scorer";Ye.error(`Error loading scorer: ${X}`)}},[h]),g.useEffect(()=>{if(v){const X=v instanceof Error?v.message:"Failed to load agents";Ye.error(`Error loading agents: ${X}`)}},[v]),g.useEffect(()=>{if(x){const X=x instanceof Error?x.message:"Failed to load workflows";Ye.error(`Error loading workflows: ${X}`)}},[x]);const H=X=>{X?.value&&n(te=>{const ne=new URLSearchParams(te);return ne.set("entity",X.value),ne})};g.useEffect(()=>{const X=t.get("scoreId")??void 0;if(X===s)return;if(!X){o(void 0);return}A.find(ne=>ne.id===X)&&o(X)},[t,A]);const B=g.useCallback(X=>{o(X||void 0),n(te=>{const ne=new URLSearchParams(te);return X?ne.set("scoreId",X):ne.delete("scoreId"),ne})},[n]);if(!f)return null;const W=Ss(h)||Ss(v)||Ss(x),z=h&&Ts(h),Y=!W&&!z&&(h||v||x),D=!_&&A.length===0,R=u?.value!=="all",M=f?.source==="stored",U=e?a.jsx(HX,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:X=>{c(`/experiments/${X}`)}}):null,Q=M?a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Scorer actions menu",children:a.jsx(B1,{})})}),a.jsx(ht.Content,{align:"end",className:"w-48",children:a.jsxs(ht.Item,{onSelect:()=>{c(`/cms/scorers/${e}/edit`)},children:[a.jsx(qd,{})," Edit Scorer"]})})]}):null;if(W||z||Y||D&&!R){const X=(h instanceof Error?h.message:void 0)??(v instanceof Error?v.message:void 0)??(x instanceof Error?x.message:void 0)??"An unexpected error occurred",te=W||z||Y;return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:iit}),actionRow:!te&&Q?a.jsx(Vn,{children:a.jsx(Vn.End,{children:Q})}):void 0,children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"flex h-full items-center justify-center",children:W?a.jsx(Us,{}):z?a.jsx(As,{resource:"scorers"}):Y?a.jsx(dn,{tone:"error",titleSlot:"Failed to load scorer",descriptionSlot:X}):a.jsx(mgs,{onRunExperiment:()=>l(!0)})}),U]})}return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:iit}),actionRow:a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:a.jsx(ggs,{selectedEntity:u,entityOptions:L,onEntityChange:H,onReset:()=>{n(X=>{const te=new URLSearchParams(X);return te.set("entity","all"),te})},isLoading:_||y||b})}),a.jsxs(Vn.End,{children:[a.jsx(l$s,{visibleColumns:p.visibleColumns,toggleColumn:p.toggleColumn}),a.jsx(le,{variant:"primary",onClick:()=>l(!0),icon:a.jsx(xu,{}),children:"Run Experiment"}),Q]})]}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(pgs,{scores:A,isLoading:_,selectedScoreId:s,isFetchingNextPage:E,hasNextPage:I,setEndOfListElement:N,onScoreClick:B,errorMsg:T?.message,columnsState:p,sort:w,onSortChange:k}),U]})}const d$s=[{value:"system",label:"System",icon:a.jsx(vSt,{})},{value:"light",label:"Light",icon:a.jsx(VDn,{})},{value:"dark",label:"Dark",icon:a.jsx(b2n,{})}],f$s={md:{itemGap:2,itemWidth:28,root:"gap-0.5 p-0.5",indicator:"inset-y-0.5 left-0.5",item:"h-6 [&_svg]:size-3.5"},xs:{itemGap:1,itemWidth:20,root:"gap-px p-px",indicator:"inset-y-px left-px",item:"h-4 [&_svg]:size-icon-xs"},sm:{itemGap:1,itemWidth:24,root:"gap-px p-px",indicator:"inset-y-px left-px",item:"h-5 [&_svg]:size-icon-xs"}},h$s=({value:e,onChange:t,options:n=d$s,size:r="md",className:s,"aria-label":o="Theme",...i})=>{const{theme:l,setTheme:c}=T3(),u=e??l,d=t??c,f=n.some(v=>v.value===u)?u:n[0]?.value??"system",h=v=>{const b=n.find(x=>x.value===v);b&&d(b.value)},p=Math.max(0,n.findIndex(v=>v.value===f)),m=f$s[r],y=p*(m.itemWidth+m.itemGap);return a.jsxs(n7t,{...i,value:f,onValueChange:h,"aria-label":o,className:Z(sr,"relative inline-flex w-fit items-center rounded-full",m.root,s),children:[a.jsx("span",{"aria-hidden":"true",className:Z("pointer-events-none absolute rounded-full bg-fill-hover motion-reduce:transition-none",Oo.transform,m.indicator),style:{width:m.itemWidth,transform:`translateX(${y}px)`}}),n.map(v=>a.jsx(t7t,{value:v.value,"aria-label":v.label,style:{width:m.itemWidth},className:Z("relative inline-flex cursor-pointer items-center justify-center rounded-full","text-muted-foreground hover:text-foreground data-[checked]:text-foreground",m.item,"focus-visible:outline-hidden","active:scale-90 motion-reduce:transition-none",Oo.colors,Oo.transform),children:a.jsx("span",{"aria-hidden":"true",className:"pointer-events-none inline-flex items-center justify-center",children:v.icon})},v.value))]})},p$s=[Br("/settings")],m$s=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=S3();return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:p$s}),children:[a.jsx("h1",{className:"sr-only",children:"Settings"}),a.jsx(lvs,{children:a.jsxs("div",{className:"mx-auto flex max-w-4xl flex-col gap-8",children:[a.jsxs(Bnt,{children:[a.jsxs(Unt,{children:[a.jsx(Vnt,{children:"General"}),a.jsx(qnt,{children:"Stored in this browser."})]}),a.jsx(yGt,{children:a.jsx(dSe,{label:"Theme",description:"Customize the appearance of the studio.",children:a.jsx(h$s,{})})})]}),a.jsxs(Bnt,{children:[a.jsxs(Unt,{children:[a.jsx(Vnt,{children:"Mastra Connection"}),a.jsx(qnt,{children:"Configure the Mastra instance URL, API prefix, and request headers used by the studio."})]}),a.jsx(AGt,{variant:"factory",initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})]})]})})]})};function g$s(){const[e]=oo(),t=Ur(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return a.jsx(lJt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}function v$s(e){return e.replace(/\/$/,"").split("/").pop()}function y$s({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?a.jsx("div",{className:Z("grid gap-y-4",n),children:Array.from({length:5}).map((o,i)=>a.jsx("div",{className:"h-16 animate-pulse rounded-lg bg-card"},i))}):a.jsx("div",{className:Z("grid gap-y-4",n),children:e.map(o=>{const i=o?.agents||o?.tools||o?.networks||o?.workflows||o?.mcp;return a.jsxs("article",{className:Z(sr,"state-layer grid w-full grid-cols-[1fr_auto] overflow-hidden rounded-lg"),children:[a.jsxs(s,{to:`/templates/${o.slug}`,className:Z("group grid",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":o.imageURL}),children:[o.imageURL&&a.jsx("div",{className:Z("overflow-hidden"),children:a.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${o.imageURL})`}})}),a.jsxs("div",{className:Z("grid w-full gap-0.5 px-4 py-3","[&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:text-muted-foreground"),children:[a.jsx("h2",{className:"text-body text-foreground",children:o.title}),a.jsx("p",{className:Z("text-body",Zy,yn),children:o.description}),a.jsxs("div",{className:"mt-3 hidden flex-wrap items-center gap-4 text-body text-muted-foreground 2xl:flex",children:[i&&a.jsxs("ul",{className:Z("m-0 flex list-none gap-4 p-0 text-body text-muted-foreground","text-muted-foreground [&>li]:flex [&>li]:items-center [&>li]:gap-0.5"),children:[o?.agents&&o.agents.length>0&&a.jsxs("li",{children:[a.jsx(Mi,{})," ",o.agents.length]}),o?.tools&&o.tools.length>0&&a.jsxs("li",{children:[a.jsx(Gd,{})," ",o.tools.length]}),o?.networks&&o.networks.length>0&&a.jsxs("li",{children:[a.jsx(ySt,{})," ",o.networks.length]}),o?.workflows&&o.workflows.length>0&&a.jsxs("li",{children:[a.jsx(V1,{})," ",o.workflows.length]}),o?.mcp&&o.mcp.length>0&&a.jsxs("li",{children:[a.jsx(K_,{})," ",o.mcp.length]})]}),i&&o.supportedProviders&&a.jsx("small",{children:"|"}),a.jsx("div",{className:"flex items-center gap-4 text-muted-foreground",children:o.supportedProviders.map(l=>a.jsx("span",{className:"",children:l},l))})]})]})]}),a.jsx("a",{href:o.githubUrl,className:Z("group ml-auto hidden items-center gap-2 pr-4 text-body","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:a.jsxs("span",{className:Z("flex items-center gap-2 rounded bg-sidebar px-2 py-1",$wt,Zy,yn),children:[a.jsx(fK,{})," ",v$s(o.githubUrl)]})})]},o.slug)})})}function b$s({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:o,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?a.jsxs("div",{className:Z("flex h-[6.5rem] items-center gap-5","[&>div]:h-8 [&>div]:w-48 [&>div]:animate-pulse [&>div]:bg-card",u),children:[a.jsx("div",{})," ",a.jsx("div",{})," ",a.jsx("div",{})]}):a.jsxs("div",{className:Z("sticky top-0 mx-auto flex flex-wrap gap-4 bg-background py-5",u),children:[a.jsx(QD,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),a.jsx(Su,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),a.jsx(Su,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:o,options:n}),c&&a.jsx(le,{onClick:c,icon:a.jsx(Qt,{}),children:"Reset"})]})}const x$s=[{id:"templates",label:"Templates"}];function w$s(){const{data:e,isLoading:t}=bvr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[o,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const h=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{h.push({value:x,label:x})});const p=(x,w)=>{w==="tag"?i(x):w==="provider"&&c(x)},m=x=>{d(x)},y=()=>{i("all"),c("all"),d("")},v=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||o!=="all"&&!x.tags.includes(o)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||o!=="all"||l!=="all";return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:x$s}),children:[a.jsx("h1",{className:"sr-only",children:"Templates"}),a.jsx(k3,{children:a.jsxs(t1t,{children:[a.jsx(Et,{children:a.jsx(Dx,{})}),"Templates"]})}),a.jsxs("div",{className:Z("z-10 h-full w-full overflow-y-auto px-5 pb-12"),children:[a.jsx(b$s,{selectedTag:o,onTagChange:x=>p(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>p(x,"provider"),providerOptions:h,searchTerm:u,onSearchChange:m,onReset:b?y:void 0,className:"max-w-[80rem]",isLoading:t}),a.jsx(y$s,{templates:v,linkComponent:vl,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const S$s="1.70.0-alpha.4";function JX({children:e,className:t}){return a.jsx("div",{className:Z("transition-height mt-12 rounded-lg border border-border px-4 py-5 lg:min-h-[25rem] lg:px-12",t),children:e})}function k$s({errorMsg:e,validationErrors:t}){const n=typeof e=="string"?e:e!=null?String(e):void 0,r=n?.includes("Invalid schema for function"),s=n?.includes("validation issue")||t&&t.length>0,o=()=>s?"Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.":r?"There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.":"An unexpected error occurred during template installation.",i=()=>s?{icon:a.jsx(uu,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:a.jsx(D$n,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return a.jsxs(JX,{className:"mb-5 content-center space-y-4 text-muted-foreground",children:[a.jsxs("div",{className:Z("grid content-center items-center justify-items-center gap-4","[&>svg]:h-8 [&>svg]:w-8"),children:[l,a.jsxs("div",{className:"space-y-2 text-center",children:[a.jsx("p",{className:"text-subheading text-foreground",children:c}),a.jsx("p",{className:"text-body text-muted-foreground",children:o()})]})]}),t&&t.length>0&&a.jsxs("details",{className:"text-caption",children:[a.jsxs("summary",{className:Z($n,"cursor-pointer text-center select-none"),children:["Show Validation Issues (",t.length,")"]}),a.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-muted p-3 text-left text-caption",children:t.map((u,d)=>a.jsxs("div",{className:"border-l-2 border-destructive pl-2",children:[a.jsx("div",{className:"font-medium text-destructive",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),a.jsx("div",{className:"mt-1 font-mono text-caption wrap-break-word whitespace-pre-wrap text-muted-foreground",children:u.message})]},d))})]}),n&&!s&&a.jsxs("details",{className:"text-caption",children:[a.jsx("summary",{className:Z($n,"cursor-pointer text-center select-none"),children:"Show Details"}),a.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-muted p-3 text-left font-mono text-caption",children:a.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}const O$s=g.createContext(null);function C$s(){const e=g.useContext(O$s);return e||{registerResetFn:()=>{},triggerReset:()=>{}}}const EJt=({defaultProvider:e,defaultModel:t,updateModel:n,resetModel:r})=>{const[s]=g.useState(e),[o]=g.useState(t),[i,l]=g.useState(t),[c,u]=g.useState(e||""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,y]=g.useState(!1),{data:v,isLoading:b}=L5(),x=_0(),{models:w}=V0(),k=g.useMemo(()=>v?.providers||[],[v]);g.useEffect(()=>{l(t),u(e||"")},[t,e]);const C=ii(c),T=uN(k,C)?.id||C,E=async L=>{if(l(L),L&&T){f(!0);try{const q=await n({provider:T,modelId:L});console.info("Model updated:",q)}catch(q){console.error("Failed to update model:",q)}finally{f(!1)}}},I=L=>{const q=ii(L);u(q),q!==C&&(l(""),y(!0))},{registerResetFn:N}=C$s();if(g.useEffect(()=>(N(()=>{if(h||m)return;if(C&&C!==s&&(!i||i==="")){u(ii(s)),l(o);const B=uN(k,s)?.id||s;B&&o&&n({provider:B,modelId:o}).catch(W=>{console.error("Failed to reset model:",W)})}}),()=>{N(null)}),[N,C,i,s,o,n,h,m,k]),b)return a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(_n,{}),a.jsx("span",{className:"text-body text-muted-foreground",children:"Loading providers..."})]});const A=async()=>{if(!r){console.warn("Reset model function not provided");return}try{f(!0),await r()}catch(L){console.error("Failed to reset model:",L)}finally{f(!1)}},P=uN(k,C);if(x.active&&x.pickerVisible===!1){const L=x.default&&x.default.provider&&x.default.modelId?`${x.default.provider}/${x.default.modelId}`:c&&i?`${c}/${i}`:"Locked by admin";return a.jsxs("div",{className:Z(sr,"flex items-center gap-2 rounded-md px-3 py-2"),"data-testid":"agent-metadata-model-locked",children:[a.jsx(td,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"truncate text-caption text-foreground",children:L}),a.jsx("span",{className:"ml-auto shrink-0 text-meta text-muted-foreground",children:"Set by admin"})]})}const F=!!(C&&i)&&x.active&&x.allowed!==void 0&&!w.some(L=>ii(L.provider)===C&&L.model===i);return a.jsxs("div",{className:"@container",children:[a.jsxs("div",{className:"flex w-full flex-col items-stretch gap-2 @xs:flex-row @xs:items-center",children:[a.jsx("div",{className:"w-full @xs:w-2/5",children:a.jsx(ek,{value:C,onValueChange:I,open:h,onOpenChange:p})}),a.jsx("div",{className:"w-full @xs:w-3/5",children:a.jsx(tk,{llmId:C,value:i,onValueChange:E,open:m,onOpenChange:y})}),a.jsx(le,{variant:"default",size:"md",onClick:A,disabled:d,className:"flex items-center gap-1.5 border-0! text-caption whitespace-nowrap",title:"Reset to original model",children:a.jsx(V_,{className:"h-3.5 w-3.5"})})]}),F&&a.jsx("div",{className:"p-2 pt-2","data-testid":"agent-metadata-model-stale-warning",children:a.jsx(en,{variant:"warning",title:"Model not allowed",children:a.jsxs(en.Message,{children:[a.jsxs("code",{className:"rounded bg-yellow-100 px-1 py-0.5 dark:bg-yellow-900/50",children:[c,"/",i]})," ","is no longer allowed by the admin policy. Pick a different model to save changes."]})})}),P&&!P.connected&&a.jsx("div",{className:"p-2 pt-2",children:a.jsx(en,{variant:"warning",title:"Provider not connected",children:a.jsxs(en.Message,{children:["Set the"," ",a.jsx("code",{className:"rounded bg-yellow-100 px-1 py-0.5 dark:bg-yellow-900/50",children:Array.isArray(P.envVar)?P.envVar.join(", "):P.envVar})," ","environment"," ",Array.isArray(P.envVar)&&P.envVar.length>1?"variables":"variable"," to use this provider."]})})})]})};function _$s({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:s,handleInstallTemplate:o,handleVariableChange:i,isLoadingEnvVars:l,isInstalling:c,defaultModelProvider:u,defaultModelId:d,onModelUpdate:f}){return a.jsx(JX,{children:a.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-5 p-4 lg:p-5",children:[a.jsxs("h2",{className:Z("flex items-center gap-2 text-heading text-muted-foreground","[&_svg]:h-[1.2em] [&_svg]:opacity-70 [&>svg]:w-[1.2em]"),children:["Install Template ",a.jsx(bSt,{})]}),a.jsx(Su,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&a.jsxs(a.Fragment,{children:[a.jsx("h3",{className:"text-body text-muted-foreground",children:"Set required Environmental Variables"}),a.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?a.jsxs("div",{className:Z("col-span-2 flex items-center justify-center gap-4 text-caption text-muted-foreground","[&_svg]:h-[1.1em] [&_svg]:w-[1.1em] [&_svg]:opacity-50","animate-in duration-300 fade-in"),children:[a.jsx(_n,{})," Loading variables..."]}):Object.entries(r).map(([h,p])=>a.jsxs(g.Fragment,{children:[a.jsx(Wi,{name:`env-${h}`,labelIsHidden:!0,label:"Key",value:h,disabled:!0,className:"w-full"}),a.jsx(Wi,{name:h,labelIsHidden:!0,label:"Value",value:p,onChange:i,errorMsg:s.includes(h)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},h))}),a.jsxs("div",{className:"relative mt-3.5 border-t border-border pt-12",children:[a.jsx("div",{className:"absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full bg-background text-caption text-muted-foreground",children:"And"}),a.jsx("h3",{className:"text-body text-muted-foreground",children:"Set AI Model for Template Installation"}),a.jsx("p",{className:"mt-2 mb-5 text-body text-muted-foreground",children:"This model will be used by the workflow to process and install the template"}),a.jsx(EJt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&a.jsx(le,{className:Z("state-layer mt-4 flex min-h-10 w-full items-center justify-center gap-2 rounded-lg bg-card text-body text-foreground","[&_svg]:h-[1.1em] [&_svg]:text-foreground [&>svg]:w-[1.1em]"),onClick:o,disabled:!t||!u||!d||s.length>0||c,children:c?a.jsxs(a.Fragment,{children:[a.jsx(_n,{className:"h-4 w-4"})," Installing..."]}):a.jsxs(a.Fragment,{children:["Install ",a.jsx(qf,{})]})})]})})}function E$s({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:o}){const i=o?`feat/install-template-${o}`:"feat/install-template-[slug]";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:Z("mt-5 grid items-center"),children:a.jsxs("div",{className:Z("flex items-center gap-3 text-title","[&>svg]:h-[1.2em] [&>svg]:w-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[a.jsx(Dx,{}),a.jsx("h2",{className:Z({"flex min-w-[50%] rounded-lg bg-muted":r}),children:r?a.jsx(a.Fragment,{children:" "}):e})]})}),a.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[a.jsxs("div",{className:"grid",children:[a.jsx("p",{className:Z("mt-2 mb-4 text-body text-muted-foreground",{"rounded-lg bg-muted":r}),children:r?a.jsx(a.Fragment,{children:" "}):t}),!r&&o&&a.jsxs("div",{className:Z("mb-4 rounded-lg border border-border bg-background p-4","flex items-start gap-3"),children:[a.jsx("div",{className:"mt-0.5 shrink-0",children:a.jsx(Hf,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),a.jsxs("div",{className:"flex-1 space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(VN,{className:"h-[1em] w-[1em] text-muted-foreground"}),a.jsx("span",{className:"text-subheading text-foreground",children:"A new Git branch will be created"})]}),a.jsxs("div",{className:"space-y-1 text-caption text-muted-foreground",children:[a.jsxs("div",{children:[a.jsx("span",{className:"font-medium",children:"Branch name:"})," ",a.jsx("code",{className:"rounded bg-card px-1.5 py-0.5 font-mono text-caption",children:i})]}),a.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&a.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:Z($n,"mt-auto flex items-center gap-2 text-body"),children:[a.jsx(fK,{}),n?.split("/")?.pop()]})]}),s&&a.jsx(L$e,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function ait(e){switch(e){case"running":return a.jsx(_n,{size:"sm","aria-hidden":!0});case"success":return a.jsx(Hn,{"aria-hidden":!0});case"failed":return a.jsx(Qt,{"aria-hidden":!0});default:return null}}function T$s(){return a.jsx("svg",{viewBox:"0 0 24 24",className:"text-placeholder","aria-hidden":!0,children:a.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function j$s({status:e,variant:t}){return t==="plain"?a.jsx("span",{className:Z("flex size-4 items-center justify-center self-center [&>svg]:size-4",Oo.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?a.jsx(T$s,{}):ait(e)}):a.jsx("span",{className:Z("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Oo.colors,Oo.transform,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-placeholder":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark":e==="success","bg-accent2Dark":e==="failed","scale-110":e==="success"||e==="failed"}),children:ait(e)})}function N$s({step:e,isActive:t,position:n,variant:r="default"}){return a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Oo.colors,{"border border-transparent":r==="default","border-dashed border-placeholder bg-card":t&&r==="default"}),children:[a.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[a.jsxs("span",{className:Z("flex min-w-6 justify-end text-body",Oo.colors,{"text-foreground":t||e.status==="success","text-muted-foreground":!t&&e.status!=="success"}),children:[n,"."]}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("h4",{className:Z("text-body",Oo.colors,{"text-foreground":t||e.status==="success","text-muted-foreground":!t&&e.status!=="success"}),children:e.title}),e.description&&a.jsx("p",{className:Z("-mt-0.5 text-body text-placeholder",{truncate:r==="plain"}),children:e.description})]})]}),a.jsx(j$s,{status:e.status,variant:r})]})}function I$s({currentStep:e,steps:t=[],className:n}){return a.jsx("div",{className:Z(n),children:t.map((r,s)=>a.jsx(N$s,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function A$s({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return a.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[a.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>a.jsx("div",{className:Z("relative flex h-8 items-center justify-end",Oo.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:a.jsx("div",{className:Z("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-fill text-column text-muted-foreground motion-reduce:transition-none",Oo.colors,Oo.transform,{"border border-dashed border-placeholder":r.status==="pending","scale-110 bg-accent1Dark text-notice-success-fg":r.status==="success","scale-110 bg-accent2Dark text-notice-destructive-fg":r.status==="failed"}),children:r.status==="running"?a.jsx(_n,{}):s+1})},r.id))}),a.jsxs("div",{className:Z("text-center text-caption text-muted-foreground",Oo.colors),children:[n," of ",t," steps completed"]})]})}function R$s({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",o=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=o?.steps||{},u=Object.keys(c).length>0,d=y=>y==="input"||y.endsWith(".input")||y.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(y)||/[0-9a-f]{8,}/.test(y)?!1:r?.allSteps?y in r.allSteps:!0,f=Object.entries(c).filter(([y,v])=>d(y)),h=f.length,p=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([y,v])=>({id:y,status:v?.status,description:v?.description,title:y.charAt(0).toUpperCase()+y.slice(1).replace(/-/g," "),isActive:i?.id===y}));return a.jsxs(JX,{className:"mb-5 content-center space-y-6 text-muted-foreground",children:[a.jsxs("div",{className:"text-center",children:[a.jsx("h3",{className:"text-heading text-foreground",children:p()}),(t?.runId||n)&&a.jsxs("div",{className:"mt-2 text-caption text-muted-foreground",children:["Run ID: ",t?.runId??n]})]}),u&&h>0&&!["error"].includes(s)&&a.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-4",children:a.jsx(A$s,{steps:m})}),l&&s==="error"&&a.jsxs("div",{className:Z("flex items-center gap-3 rounded-lg bg-red-500/10 p-4 text-body text-foreground","[&>svg]:h-6 [&>svg]:w-6 [&>svg]:text-red-500 [&>svg]:opacity-70"),children:[a.jsx(A2n,{}),l||"Something went wrong"]}),u&&a.jsx(I$s,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&a.jsxs("div",{className:"grid justify-items-center gap-4 text-center text-body text-muted-foreground",children:[a.jsx(_n,{}),a.jsx("p",{children:"This may take some time..."})]})]})}function P$s({name:e,installedEntities:t}){return a.jsxs(JX,{className:Z("grid content-center items-center justify-items-center gap-4","[&>svg]:h-8 [&>svg]:w-8"),children:[a.jsx(bSt,{}),a.jsx("h2",{className:"text-heading",children:"Done!"}),a.jsxs("p",{className:"text-center text-body text-muted-foreground",children:["The ",a.jsx("b",{className:"text-muted-foreground",children:e})," template has been successfully installed.",t&&t.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&a.jsx(L$e,{data:t})]})}function $$s(){const{templateSlug:e}=hr(),t=[{id:"templates",label:"Templates",to:"/templates"},{id:"template",label:MG(e)}],[n,r]=oo(),[s,o]=g.useState(""),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState({}),[h,p]=g.useState([]),[m,y]=g.useState(null),[v,b]=g.useState(!1),[x,w]=g.useState(""),[k,C]=g.useState(!1),[_,T]=g.useState(!1),[E,I]=g.useState([]),{data:N,isLoading:A}=xvr({repoOrSlug:e,owner:"mastra-ai"}),F=S$s?.includes("beta")??!1?"beta":"main",{data:L,isLoading:q}=wvr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:F}),{data:V,isLoading:H}=Svr(),{mutateAsync:B,isPending:W}=kvr(),{mutateAsync:z}=Ovr(),{streamInstall:Y,streamResult:D,isStreaming:R}=_vr(V),{observeInstall:M,streamResult:U,isStreaming:Q}=Evr(V);g.useEffect(()=>{const se=n.get("runId");se&&!v&&!m&&!R&&!Q&&(console.info("🔄 Checking completed run after hot reload:",{runId:se}),w(se),z({runId:se}).then(ae=>{const ue=ae.snapshot;if(ue?.status==="success"&&ue?.result?.success)b(!0);else if(ue?.result?.success===!1)if(ue?.result?.validationResults&&!ue?.result?.validationResults?.valid&&ue?.result?.validationResults?.remainingErrors>0){const{remainingErrors:Se,errors:Te}=ue.result.validationResults,Ne=`Template installation completed but ${Se} validation issue${Se>1?"s":""} remain unresolved.`;y(Ne),I(Te||[])}else{const Se=ue?.result?.message||ue?.result?.error||"Template installation failed";y(typeof Se=="string"?Se:String(Se))}}).catch(ae=>{console.error("❌ Failed to fetch run details:",ae),y("Failed to retrieve installation status after reload")}))},[n,v,m,R,Q,z]),g.useEffect(()=>{const se=n.get("runId"),ae=n.get("resume"),ue=n.get("provider");if(se&&ae==="true"&&ue&&!R&&!Q&&!k&&!_&&V){w(se),C(!0);try{z({runId:se}).then(pe=>{if(pe.snapshot?.status==="running")return M.mutateAsync({runId:se})}).then(()=>{r(pe=>{const Se=new URLSearchParams(pe);return Se.delete("resume"),Se})}).catch(pe=>{console.error("❌ Failed to resume template installation:",pe),pe.message?.includes("404")||pe.message?.includes("not found")?y("Template installation run not found. It may have expired or been completed."):y("Failed to resume template installation. Please try again.")})}catch(pe){console.error("❌ Auto-resume failed with error:",pe),y("Failed to resume template installation. Please refresh and try again.")}}},[n,e,R,Q,k,_,V,z,M,r]);const ee=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],X=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(se=>se).join(", "):"n/a",icon:a.jsx(Gd,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(se=>se).join(", "):"n/a",icon:a.jsx(Mi,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(se=>se).join(", "):"n/a",icon:a.jsx(V1,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:a.jsx(my,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:a.jsx(U1,{})}],te=[{...X[0]},{...X[1]},{...X[2]}].filter(se=>se.value!=="n/a");g.useEffect(()=>{L&&f(L)},[L]),g.useEffect(()=>{const se=D||U;se?.phase==="error"&&se?.error&&y(typeof se.error=="string"?se.error:String(se.error))},[D?.phase,D?.error,U?.phase,U?.error]);const ne=se=>{o(se)},ce=async se=>(l(se.provider),u(se.modelId),{message:"Model updated successfully"}),J=async()=>{const se=Object.entries(d).reduce((ae,[ue,pe])=>(pe===""&&ae.push(ue),ae),[]);if(se.length>0){p(se);return}if(N){y(null),b(!1),w(""),T(!0);try{const ue={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:F,slug:N.slug,variables:d},{runId:pe}=await B({});w(pe),r(Se=>{const Te=new URLSearchParams(Se);return Te.set("runId",pe),Te.set("resume","true"),Te.set("provider",s||"openai"),Te}),await Y.mutateAsync({inputData:ue,selectedModel:{provider:i,modelId:c},runId:pe})}catch(ae){T(!1),y(ae?.message||"Template installation failed"),console.error("Template installation failed",ae)}}},re=se=>{const{name:ae,value:ue}=se.target;ue.trim()===""?p(pe=>[...pe,ae]):p(pe=>pe.filter(Se=>Se!==ae)),f(pe=>({...pe,[ae]:ue}))};return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:Z("h-full w-full overflow-y-scroll lg:px-12"),children:a.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-4",children:[a.jsx(E$s,{isLoading:A,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:X,templateSlug:e}),N&&a.jsxs(a.Fragment,{children:[(R||Q)&&a.jsx(R$s,{name:N.title,streamResult:Q?U:D,runId:x,workflowInfo:V}),v&&a.jsx(P$s,{name:N.title,installedEntities:te,linkComponent:vl}),m&&a.jsx(k$s,{errorMsg:m,validationErrors:E.length>0?E:D?.validationResults?.errors||U?.validationResults?.errors}),!R&&!Q&&!v&&!m&&a.jsx(_$s,{providerOptions:ee,selectedProvider:s,onProviderChange:ne,variables:d,setVariables:f,errors:h,setErrors:p,handleInstallTemplate:J,handleVariableChange:re,isLoadingEnvVars:q||H,isInstalling:W,defaultModelProvider:i,defaultModelId:c,onModelUpdate:ce})]})]})})]})}const M$s=()=>{const{toolId:e,agentId:t}=hr(),n=[Br("/agents"),{...N_e,to:t?`/agents/${encodeURIComponent(t)}`:void 0},{id:"agent-tool",Component:p6n}];return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"h-full w-full overflow-y-auto",children:a.jsx(Tys,{toolId:e,agentId:t})})]})},D$s=()=>{const e=Je();return Sn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new C_;Object.entries(r??{}).forEach(([o,i])=>{s.set(o,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(o){throw Ye.error("Error executing dev tool"),console.error("Error executing dev tool:",o),o}}})},L$s=({toolId:e})=>{const{canExecute:t}=Ea(),n=t("tools"),{data:r={}}=nf(),s=g.useMemo(()=>{for(const y of Object.values(r))if(y.tools){const v=Object.values(y.tools).find(b=>b.id===e);if(v)return v}return null},[r,e]),{data:o,isLoading:i,error:l}=sqn(e,{enabled:!s}),c=s||o,{mutateAsync:u,isPending:d,data:f}=D$s(),{requestContext:h}=ks();g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Ye.error(`Error loading tool: ${y}`)}},[l]);const p=async(y,v)=>{if(!c)return;const b={...h??{},...v??{}};return u({toolId:c.id,input:y,requestContext:b})},m=c?.inputSchema?jm(e0(c?.inputSchema)):gr({});return i?a.jsxs("div",{className:"p-4",children:[a.jsx(lt,{className:"mb-4 h-8 w-48"}),a.jsx(lt,{className:"h-32 w-full"})]}):l?null:c?n?a.jsx(G$e,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:p,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"caption",tone:"muted",children:"You don't have permission to execute tools."})}):a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"heading",tone:"muted",children:"Tool not found"})})},F$s=()=>{const{toolId:e}=hr(),t=[Br("/tools"),wqn];return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"h-full w-full overflow-y-hidden",children:a.jsx(L$s,{toolId:e})})]})},tM=[Br("/workflows")];function z$s(){const{data:e,isLoading:t,error:n}=lp(),[r,s]=g.useState(""),[o,i]=g.useState();return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(As,{variant:"fill",resource:"workflows"})]}):n?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load workflows",descriptionSlot:n.message})]}):Object.keys(e||{}).length===0&&!t?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(els,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),actionRow:a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})})}),a.jsx(Vn.End,{children:a.jsx(le,{render:a.jsx(vl,{to:"/workflows/schedules"}),variant:"primary",icon:a.jsx(Xx,{}),children:"Schedules"})})]}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(Jas,{workflows:e||{},isLoading:t,search:r,sort:o,onSortChange:(l,c)=>i({key:c,direction:l})})]})}const B$s={active:"bg-accent1",paused:"bg-accent3"},U$s={active:"text-accent1",paused:"text-accent3"},TJt=({status:e})=>a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${B$s[e]}`,"aria-hidden":!0}),a.jsx("span",{className:`text-caption ${U$s[e]}`,children:e})]}),xN=e=>!e||e<=0?"—":new Date(e).toLocaleString(),Q2=e=>{if(!e||e<=0)return"—";const t=e-Date.now(),n=Math.abs(t),r=Math.floor(n/1e3);if(r<60)return t>=0?`in ${r}s`:`${r}s ago`;const s=Math.floor(r/60);if(s<60)return t>=0?`in ${s}m`:`${s}m ago`;const o=Math.floor(s/60);if(o<24)return t>=0?`in ${o}h`:`${o}h ago`;const i=Math.floor(o/24);return t>=0?`in ${i}d`:`${i}d ago`};function jJt({status:e}){const{icon:t,color:n}=V$s(e);return a.jsxs("span",{className:`inline-flex items-center gap-1.5 text-caption whitespace-nowrap ${n}`,children:[a.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),a.jsx("span",{children:e})]})}function V$s(e){switch(e){case"success":return{icon:a.jsx(Hn,{size:14}),color:"text-accent1"};case"failed":return{icon:a.jsx(Qt,{size:14}),color:"text-accent2"};case"running":return{icon:a.jsx(_n,{}),color:"text-muted-foreground"};case"suspended":return{icon:a.jsx(nG,{size:14}),color:"text-accent3"};case"canceled":return{icon:a.jsx(bA,{size:14}),color:"text-muted-foreground"};case"pending":case"waiting":return{icon:a.jsx(jC,{size:14}),color:"text-muted-foreground"};default:return{icon:null,color:"text-muted-foreground"}}}const lit="auto auto auto auto 1fr";function q$s(e){if(e===void 0)return"—";if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;const t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${t}m ${n}s`}function H$s(e){const t=Math.abs(e),n=e<0?"-":"";return t<1e3?`${n}${t}ms`:t<6e4?`${n}${(t/1e3).toFixed(1)}s`:t<36e5?`${n}${(t/6e4).toFixed(1)}m`:`${n}${(t/36e5).toFixed(1)}h`}const W$s=3e4,Z$s=5*6e4;function G$s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:o}){const{Link:i,paths:l}=fn(),c=p=>!!(n&&p.runId&&p.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=Uc({count:u});let h=-1;return t?a.jsx(hc,{columns:lit}):e.length===0?a.jsx(Ae,{variant:"body",tone:"muted",className:"p-4",children:"No trigger history yet."}):a.jsxs(xe,{columns:lit,className:"min-w-0",scrollRef:d,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Run"}),a.jsx(xe.TopCell,{children:"Status"}),a.jsx(xe.TopCell,{children:"Started"}),a.jsx(xe.TopCell,{children:"Duration"}),a.jsx(xe.TopCell,{children:" "})]}),e.map(p=>{const m=p.actualFireAt-p.scheduledFireAt,y=H$s(m),v=`Scheduled ${xN(p.scheduledFireAt)} — published ${xN(p.actualFireAt)} (drift ${y})`,b=p.outcome==="failed",x=b?p.error:p.run?.error,w=Math.abs(m),k=!b&&w>W$s&&w<=Z$s,C=`${p.scheduleId}-${p.runId}-${p.actualFireAt}`,_=c(p);_&&(h+=1);const T=a.jsx("span",{className:_?"font-mono text-caption whitespace-nowrap text-accent1":"font-mono text-caption whitespace-nowrap text-muted-foreground",children:p.runId}),E=a.jsxs(a.Fragment,{children:[a.jsx(xe.Cell,{children:T}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-caption whitespace-nowrap text-accent2",children:[a.jsx(uu,{size:14}),"publish failed"]}):p.run?a.jsx(jJt,{status:p.run.status}):a.jsx("span",{className:"inline-flex items-center gap-1.5 text-caption whitespace-nowrap text-muted-foreground",children:"pending"}),x?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"inline-flex text-accent2",children:a.jsx(uu,{size:14})})}),a.jsx(Cn,{children:x})]}):null]})}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("span",{title:v,children:Q2(p.actualFireAt)}),k?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"inline-flex text-accent3",children:a.jsx(uu,{size:14})})}),a.jsxs(Cn,{children:["Published ",y," after the scheduled fire time"]})]}):null]})}),a.jsx(xe.Cell,{children:p.run?a.jsx("span",{children:q$s(p.run.durationMs)}):a.jsx("span",{className:"text-muted-foreground",children:"—"})}),a.jsx(xe.Cell,{children:" "})]});return _?a.jsx(xe.RowLink,{to:l.workflowRunLink(n,p.runId),LinkComponent:i,...f(h),children:E},C):a.jsx(xe.RowStatic,{children:E},C)}),a.jsx(xe.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:o})]})}const Q$s=e=>{const t=Je();return kt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},cit=25,Y$s=e=>{const t=Je(),{inView:n,setRef:r}=N0(),s=hv({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:cit,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<cit))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(h=>h.triggers)??[]).some(h=>h.run?h.run.status==="pending"||h.run.status==="running"||h.run.status==="waiting":h.outcome==="published")?5e3:!1}),o=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:o,setEndOfListElement:r}},K$s=e=>{const t=Je(),n=jr();return Sn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Ye.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Ye.error(r.message)}})},NJt={id:"workflow-schedules",label:"Schedules",icon:Xx,to:"/workflows/schedules"};function cB({label:e,children:t}){return a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx(Ae,{variant:"meta",tone:"muted",className:"tracking-wide uppercase",children:e}),a.jsx("div",{className:"text-body",children:t})]})}function X$s(){const{scheduleId:e}=hr(),t=[Br("/workflows"),NJt,{id:"schedule",label:MG(e),icon:Xx}],{paths:n}=fn(),{data:r,error:s}=Q$s(e),{data:o,isLoading:i,error:l,hasNextPage:c,isFetchingNextPage:u,setEndOfListElement:d}=Y$s(e),f=K$s(e);if(s&&Ss(s))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(Us,{variant:"fill"})]});if(s&&Ts(s))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(As,{variant:"fill",resource:"schedules"})]});if(s)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load schedule",descriptionSlot:s.message})]});const h=r?.workflowId,p=r?.agentId;return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),actionRow:a.jsx(Vn,{children:a.jsxs(Vn.End,{children:[a.jsx(le,{render:a.jsx(vl,{to:n.schedulesLink()}),variant:"ghost",icon:a.jsx(Eu,{}),children:"Back to schedules"}),h?a.jsx(le,{icon:a.jsx(xl,{}),render:a.jsx(vl,{to:n.workflowLink(h)}),variant:"ghost",children:"Open workflow"}):null,r?a.jsx(le,{onClick:()=>f.mutate(r.status==="active"?"pause":"resume"),disabled:f.isPending,"data-testid":"schedule-toggle-button",children:r.status==="active"?a.jsxs(a.Fragment,{children:[a.jsx(e1,{}),"Pause"]}):a.jsxs(a.Fragment,{children:[a.jsx(xu,{}),"Resume"]})}):null]})}),children:[a.jsx("h1",{className:"sr-only",children:e}),r?a.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-4 overflow-hidden",children:[a.jsxs("div",{className:"flex h-fit flex-col gap-4 rounded-md border border-border p-4",children:[a.jsx(cB,{label:p?"Agent":"Workflow",children:h?a.jsx(vl,{to:n.workflowLink(h),className:"text-accent1 hover:underline",children:h}):p?a.jsx(vl,{to:n.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),a.jsxs(cB,{label:"Cron",children:[a.jsx("code",{className:"font-mono text-body",children:r.cron}),r.timezone?a.jsx("span",{className:"ml-2 text-caption text-muted-foreground",children:r.timezone}):null]}),a.jsx(cB,{label:"Status",children:a.jsx(TJt,{status:r.status})}),a.jsx(cB,{label:"Next fire",children:a.jsx("span",{title:xN(r.nextFireAt),children:Q2(r.nextFireAt)})})]}),a.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[a.jsx(Ae,{variant:"body",className:"mb-3",children:"Trigger history"}),l?a.jsx(dn,{tone:"error",titleSlot:"Failed to load trigger history",descriptionSlot:l.message}):a.jsx(G$s,{triggers:o??[],isLoading:i,workflowId:h,hasNextPage:c,isFetchingNextPage:u,setEndOfListElement:d})]})]}):null]})}const J$s={target:e=>e.workflowId??e.agentId??"",status:e=>e.status,nextFireAt:e=>e.nextFireAt,lastFireAt:e=>e.lastFireAt},uit="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function eMs({schedules:e,isLoading:t,search:n="",sort:r,onSortChange:s}){const{paths:o,Link:i}=fn(),l=g.useMemo(()=>{const f=n.toLowerCase(),h=f?e.filter(p=>p.id.toLowerCase().includes(f)||(p.workflowId??p.agentId??"").toLowerCase().includes(f)):e;return Q0(h,r,J$s)},[e,n,r]),{containerRef:c,getRowProps:u}=Uc({count:l.length,global:!0});if(t)return a.jsx(hc,{columns:uit});const d=(f,h)=>s?a.jsx(xe.SortableTopCell,{sortKey:f,sort:r?.key===f?r.direction:void 0,onSortChange:s,children:h}):a.jsx(xe.TopCell,{children:h});return a.jsxs(xe,{columns:uit,className:"min-w-0",scrollRef:c,children:[a.jsxs(xe.Top,{children:[d("target","Target"),a.jsx(xe.TopCell,{children:"Schedule ID"}),a.jsx(xe.TopCell,{children:"Cron"}),d("status","Status"),d("nextFireAt","Next fire"),d("lastFireAt","Last run")]}),l.length===0&&n?a.jsx(xe.NoMatch,{message:"No schedules match your search"}):null,l.length===0&&!n?a.jsx(xe.NoMatch,{message:"No schedules configured"}):null,l.map((f,h)=>a.jsxs(xe.RowLink,{to:o.scheduleLink(f.id),LinkComponent:i,...u(h),children:[a.jsx(xe.NameCell,{children:f.workflowId??f.agentId}),a.jsx(xe.Cell,{className:"min-w-0",children:a.jsx("span",{className:"block truncate font-mono text-body-sm text-muted-foreground",title:f.id,children:f.id})}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("code",{className:"font-mono text-caption",children:f.cron}),f.timezone?a.jsx("span",{className:"text-meta text-muted-foreground",children:f.timezone}):null]})}),a.jsx(xe.Cell,{children:a.jsx(TJt,{status:f.status})}),a.jsx(xe.Cell,{children:a.jsx("span",{className:"whitespace-nowrap",title:xN(f.nextFireAt),children:Q2(f.nextFireAt)})}),a.jsx(xe.Cell,{children:f.lastRun?a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx(jJt,{status:f.lastRun.status}),a.jsx("span",{className:"text-caption text-muted-foreground",title:xN(f.lastFireAt),children:f.lastFireAt?Q2(f.lastFireAt):""})]}):f.lastFireAt?a.jsx("span",{className:"whitespace-nowrap",title:xN(f.lastFireAt),children:Q2(f.lastFireAt)}):a.jsx("span",{className:"text-muted-foreground",children:"Never"})})]},f.id))]})}function IJt({workflowId:e}={}){const{data:t,isLoading:n,error:r}=CQ(e?{workflowId:e}:{}),[s,o]=g.useState(""),[i,l]=g.useState();return r?a.jsx(dn,{tone:"error",titleSlot:"Failed to load schedules",descriptionSlot:r.message}):a.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[a.jsx("div",{className:"max-w-120",children:a.jsx(Nu,{onSearch:o,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),a.jsx("div",{className:"overflow-y-auto",children:a.jsx(eMs,{schedules:t??[],isLoading:n,search:s,sort:i,onSortChange:(c,u)=>l({key:u,direction:c})})})]})}const Sce=[Br("/workflows"),NJt];function tMs(){const[e]=oo(),t=e.get("workflowId")??void 0,{error:n}=CQ(t?{workflowId:t}:{});return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx(As,{variant:"fill",resource:"schedules"})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx("div",{className:"h-full",children:a.jsx(IJt,{workflowId:t})})]})}const nMs={"--belt-hue":"var(--warning1)"};function rMs(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function sMs(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)){const n=Object.keys(e);if(n.length===1)return n[0]}return t}function oMs({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:a.jsxs("section",{className:Z(PTe,"pointer-events-auto relative isolate"),"data-testid":"workflow-suspended-steps","aria-label":"Step suspended",children:[a.jsxs("div",{className:"max-h-[calc(100cqh-64px)] overflow-y-auto overscroll-contain rounded-[inherit]",children:[a.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/50 bg-background px-5 py-4",children:[a.jsxs(Ae,{as:"h2",variant:"column",tone:"ink",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(nG,{})}),"Step suspended"]}),a.jsx($t,{variant:"orange",emphasis:"muted",children:"Needs input"})]}),e.map(s=>{const o=t.allSteps[s.stepId];if(!o||o.isWorkflow)return null;const i=o?.resumeSchema?jm(e0(o.resumeSchema)):wf(jn(),Nf());return a.jsx(iMs,{step:s,stepSchema:i,description:o.description,onResume:r},`${s.runId}-${s.stepId}`)})]}),a.jsx(lAt,{status:"ready",label:"Needs input",className:"before:hidden",style:nMs})]})}function iMs({step:e,stepSchema:t,description:n,onResume:r}){const[s,o]=g.useState(!1),[i,l]=g.useState(!1),c=async u=>{l(!0);try{await r({stepId:e.stepId.split("."),runId:e.runId,resumeData:u})}catch(d){Ye.error(d instanceof Error?d.message:"Error resuming workflow")}finally{l(!1)}};return a.jsxs("div",{className:"space-y-5 p-5 [&+&]:border-t [&+&]:border-border/50",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ae,{as:"p",variant:"subheading",tone:"ink",className:"break-words",children:e.stepId}),n&&a.jsx(Ae,{as:"p",variant:"caption",tone:"muted",children:n})]}),e.suspendPayload!==void 0&&a.jsxs("div",{className:"space-y-2",children:[a.jsxs(Ae,{as:"p",variant:"caption",tone:"muted",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(w2n,{})}),"The step is asking"]}),a.jsxs(Za,{open:s,onOpenChange:o,children:[a.jsxs(Ta,{className:Z(sr,"flex w-full items-center justify-between gap-2 rounded-lg px-3 py-2.5"),children:[a.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[a.jsx(Et,{children:a.jsx(xr,{className:Z("text-muted-foreground transition-transform",{"rotate-90 transform":s})})}),a.jsx(Ae,{as:"span",variant:"body",tone:"ink",className:"truncate",children:sMs(e.suspendPayload,e.stepId)})]}),a.jsx(Ae,{as:"span",variant:"caption",tone:"muted",className:"shrink-0",children:rMs(e.suspendPayload)})]}),a.jsx(ja,{children:a.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:a.jsx(Or,{value:JSON.stringify(e.suspendPayload,null,2),editable:!1,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsxs(Ae,{as:"p",variant:"caption",tone:"muted",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(C2n,{})}),"Your response"]}),a.jsx("div",{className:"-mx-5",children:a.jsx(NTe,{schema:t,isSubmitLoading:i,submitButtonLabel:"Resume",submitButtonVariant:"primary",submitButtonIcon:a.jsx(xu,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:c})})]})]})}function aMs({hidden:e}){const{result:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(cc),{canExecute:o,isLoading:i}=Ea(),l=cRt(t,r),c=Hmr(),u=t?.status==="suspended"&&l.length>0&&!s,d=!i&&o("workflows");return!n||!u||!d?null:a.jsx("div",{hidden:e,"data-testid":"workflow-suspended-overlay",className:"pointer-events-none absolute top-12 right-2 z-30 w-[380px] max-w-[calc(100%-16px)] animate-in duration-300 fade-in-0 slide-in-from-top-2 motion-reduce:animate-none",children:a.jsx(oMs,{suspendedSteps:l,workflow:n,isStreaming:s,onResume:c})},r)}const dit={success:{label:"Completed",icon:Hn,color:"text-positive1",bar:"bg-muted-foreground/60"},failed:{label:"Failed",icon:MD,color:"text-negative1",bar:"bg-negative1/60"},suspended:{label:"Needs input",icon:e1,color:"text-accent3",bar:"bg-accent3/60"},waiting:{label:"Waiting",icon:n1,color:"text-muted-foreground",bar:"bg-muted-foreground/40"},paused:{label:"Paused",icon:e1,color:"text-muted-foreground",bar:"bg-muted-foreground/40"},skipped:{label:"Skipped",icon:IDn,color:"text-muted-foreground",bar:"bg-muted-foreground/25"},running:{label:"Running",icon:yo,color:"text-accent6",bar:"bg-accent6/60"},canceled:{label:"Canceled",icon:bA,color:"text-muted-foreground",bar:"bg-muted-foreground/40"}},lMs={label:"Status unavailable",icon:XPn,color:"text-muted-foreground",bar:"bg-muted-foreground/25"};function cMs({row:e,isSelected:t,isHovered:n,onSelectStep:r,onHoverStep:s,onOpenInput:o,onOpenOutput:i}){const l=Object.hasOwn(dit,e.status)?dit[e.status]:lMs,c=l.icon,u=e.stepId.slice(0,e.stepId.lastIndexOf(".")),d=e.isNestedEntry?e.stepId.slice(e.stepId.lastIndexOf(".")+1):e.stepId;return a.jsxs("div",{"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,onMouseEnter:()=>!e.isNestedEntry&&s(e.stepId),onMouseLeave:()=>!e.isNestedEntry&&s(null),className:Z("grid grid-cols-[minmax(130px,1fr)_minmax(64px,1fr)_56px_64px] items-center gap-3 rounded-md px-2 py-1","@max-[540px]/workflow-timeline:grid-cols-[minmax(0,1fr)_48px_64px] @max-[540px]/workflow-timeline:gap-x-1.5 @max-[540px]/workflow-timeline:gap-y-1 @max-[540px]/workflow-timeline:py-2",(t||n)&&"bg-fill-subtle"),children:[a.jsxs("button",{type:"button",className:"flex min-h-9 min-w-0 cursor-pointer items-center gap-2.5 text-left text-meta text-foreground focus-visible:rounded-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus aria-disabled:cursor-default","aria-disabled":e.isNestedEntry,"aria-pressed":t,onClick:()=>{e.isNestedEntry||r(e.stepId)},title:e.stepId,children:[a.jsx("span",{"aria-label":l.label,className:Z("grid size-6 flex-none place-items-center rounded-md border border-border bg-background",l.color),children:a.jsx(c,{"aria-hidden":!0,className:Z("size-3.5",e.status==="running"&&"motion-safe:animate-spin")})}),a.jsxs("span",{className:"min-w-0",children:[a.jsx("span",{className:"block truncate",children:d}),e.isNestedEntry&&a.jsxs("span",{className:"flex min-w-0 items-center gap-1 text-meta text-muted-foreground",children:[a.jsx(KOe,{"aria-hidden":!0,className:"size-3 shrink-0"}),a.jsx("span",{className:"truncate",children:u})]})]})]}),a.jsx("div",{className:"relative h-5 min-w-0 overflow-hidden rounded-sm bg-muted @max-[540px]/workflow-timeline:col-span-full @max-[540px]/workflow-timeline:row-start-2 @max-[540px]/workflow-timeline:ml-[34px]","aria-hidden":!0,children:e.timing&&a.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":e.timing.offsetPct,"data-width":e.timing.widthPct,className:Z("absolute top-0 h-full min-w-0.5 rounded-sm",l.bar),style:{left:`${e.timing.offsetPct}%`,width:`${e.timing.widthPct}%`}})}),a.jsx("span",{className:"text-right text-meta whitespace-nowrap text-muted-foreground tabular-nums",title:e.timing&&e.spansSuspension?"Includes time spent suspended waiting for input":void 0,children:e.timing?i5(e.timing.durationMs):a.jsx("span",{"aria-label":"Timing unavailable",children:"—"})}),a.jsxs("div",{className:"flex items-center",children:[a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:e.step.input===void 0,onClick:f=>o(e,f.currentTarget),children:a.jsx(JZ,{})}),a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:e.step.output===void 0,onClick:f=>i(e,f.currentTarget),children:a.jsx(tG,{})})]})]})}const uMs=e=>e.includes("."),dMs=e=>e==="input"||e.endsWith(".input"),fit=1;function fMs(e,t){const n=TTe(e),r=n?.isLive?Math.max(t,n.start):n?.end;return{span:n&&r!==void 0?{start:n.start,end:r}:void 0,isLive:n?.isLive??!1,spansSuspension:n?.spansSuspension??!1}}function hMs(e,t){const n=Object.entries(e).filter(([l])=>!dMs(l)).map(([l,c])=>({stepId:l,step:c,...fMs(c,t)})).sort((l,c)=>(l.span?.start??1/0)-(c.span?.start??1/0)||l.stepId.localeCompare(c.stepId)),r=n.flatMap(l=>l.span?[l.span]:[]),s=Math.min(...r.map(l=>l.start)),o=Math.max(s,...r.map(l=>l.end)),i=Math.max(o-s,1);return n.map(({stepId:l,step:c,span:u,isLive:d,spansSuspension:f})=>{let h;if(u){const p=u.end-u.start,m=Math.min((u.start-s)/i*100,100-fit),y=Math.min(Math.max(p/i*100,fit),100-m);h={durationMs:p,offsetPct:m,widthPct:y}}return{stepId:l,step:c,status:OQ(c)?"suspended":c.status,timing:h,spansSuspension:f,isRunning:d,isNestedEntry:uMs(l)}})}function pMs(){const{steps:e}=kR(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=FG(),[o,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!0),[u,d]=g.useState(!1),{showData:f}=Q1(),h=g.useRef(null),p=hMs(e,o),m=p.some(y=>y.isRunning);return W1t(h,{enabled:m&&!l}),g.useEffect(()=>{if(!m||l)return;const y=setInterval(()=>i(Date.now()),100);return()=>clearInterval(y)},[m,l]),p.length===0?null:a.jsx("div",{"data-testid":"workflow-timeline",className:"relative z-20 shrink-0 px-2 pb-2",children:a.jsxs(Za,{open:!l,onOpenChange:y=>c(!y),className:Z(sr,"@container/workflow-timeline pointer-events-auto overflow-hidden rounded-xl"),children:[a.jsxs("div",{className:"flex items-center",children:[a.jsxs(Ta,{className:"flex min-h-11 min-w-0 flex-1 items-center gap-2 px-3.5 py-2.5 text-caption text-foreground hover:bg-fill-subtle","aria-label":l?"Expand timeline":"Collapse timeline",children:[a.jsx("span",{children:a.jsx(Ywt,{"aria-hidden":!0,className:"size-4 text-muted-foreground"})}),a.jsx("span",{children:"Timeline"}),a.jsxs("span",{className:"text-meta text-muted-foreground",children:[p.length," events"]}),a.jsx("span",{className:"ml-auto",children:a.jsx(ko,{"aria-hidden":!0,className:Z("size-4 transition-transform motion-reduce:transition-none",l&&"-rotate-90")})})]}),!l&&a.jsx(le,{variant:"ghost",size:"icon-sm",tooltip:u?"Restore timeline height":"Enlarge timeline","aria-pressed":u,onClick:()=>d(!u),className:"mr-2 shrink-0",children:u?a.jsx(MPn,{}):a.jsx(Xwt,{})})]}),a.jsx(ja,{children:a.jsx("div",{ref:h,"data-testid":"workflow-timeline-list",className:Z("overflow-auto overscroll-contain px-1.5 pb-1.5",u?"max-h-[min(720px,calc(100dvh-112px))]":"max-h-[min(320px,40dvh)]"),children:p.map(y=>a.jsx(cMs,{row:y,isSelected:t===y.stepId,isHovered:n===y.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:(v,b)=>f({type:"step-input",stepId:v.stepId},b),onOpenOutput:(v,b)=>f({type:"step-output",stepId:v.stepId},b)},y.stepId))})})]})})}const mMs=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=Q1(),s=UA(),o=r?.type==="data",i=a.jsxs("div",{className:"[container-type:size] relative h-full min-h-0",children:[a.jsx(h7t,{workflowId:e,workflow:t,isLoading:n}),a.jsx(aMs,{hidden:o}),o&&a.jsx("div",{className:"pointer-events-auto absolute top-12 right-2 z-30 flex max-h-[calc(100cqh-64px)] w-[440px] max-w-[calc(100%-16px)] flex-col",children:a.jsx(j7,{})}),a.jsx("div",{className:"pointer-events-none absolute right-0 bottom-0 left-[var(--workflow-left-panel-width,0px)] z-20",children:a.jsx(pMs,{})})]});return s&&r&&!o?a.jsx("div",{className:"h-full min-h-0 overflow-hidden",children:a.jsx(j7,{})}):a.jsxs("div",{className:"relative h-full min-h-0",children:[i,a.jsxs(iMe,{className:"pointer-events-none absolute inset-0 z-30 min-h-0 w-full min-w-0 p-2",children:[a.jsx(w_,{id:"workflow-graph",className:"pointer-events-none min-w-0"}),r&&!o&&a.jsxs(a.Fragment,{children:[a.jsx(RW,{className:"pointer-events-auto"}),a.jsx(w_,{id:"workflow-step-detail",minSize:300,maxSize:"60%",defaultSize:420,className:"min-w-0",children:a.jsx("div",{className:"pointer-events-auto h-full min-h-0 overflow-hidden rounded-studio-panel border border-border bg-background",children:a.jsx(j7,{})})})]})]})]})},hit=()=>{const{workflowId:e}=hr(),{data:t,isLoading:n,error:r}=u5(e);return r&&Ss(r)?a.jsx(Us,{variant:"fill"}):r&&Ts(r)?a.jsx(As,{variant:"fill",resource:"workflows"}):a.jsx(mMs,{workflowId:e,workflow:t??void 0,isLoading:n})};function gMs(){const{workflowId:e}=hr(),{error:t}=CQ(e?{workflowId:e}:{});if(!e)return null;let n;return t&&Ss(t)?n=a.jsx(Us,{variant:"fill"}):t&&Ts(t)?n=a.jsx(As,{variant:"fill",resource:"schedules"}):n=a.jsx("div",{className:"h-full",children:a.jsx(IJt,{workflowId:e})}),a.jsxs(pt,{children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),n]})}function vMs(){const{workflowId:e}=hr();return e?a.jsx(QMe,{scopedEntityId:e,scopedEntityType:cu.WORKFLOW_RUN}):null}function yMs(e,t){if(e==null)return{};var n,r,s=_jt(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function e1e(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bMs(e){if(Array.isArray(e))return e1e(e)}function xMs(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wMs(e,t){if(e){if(typeof e=="string")return e1e(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e1e(e,t):void 0}}function SMs(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
686
+ ]`,Cot="flex min-h-0 flex-1 flex-col py-0";function gjs({tab:e,onTabChange:t,file:n,onFileSelect:r,onReplace:s,pastedText:o,onPastedTextChange:i,validation:l,isImporting:c}){return a.jsxs(Ya,{value:e,defaultTab:"upload",onValueChange:t,className:"flex h-full flex-col gap-3",children:[a.jsxs(Qa,{variant:"pill",children:[a.jsx(Ar,{value:"upload",children:"Upload file"}),a.jsx(Ar,{value:"paste",children:"Paste JSON"})]}),a.jsx(vs,{value:"upload",className:Cot,children:n?a.jsx(xjs,{file:n,validation:l,onReplace:s,isImporting:c}):a.jsx(vjs,{onFileSelect:r,disabled:c})}),a.jsx(vs,{value:"paste",className:Cot,children:a.jsx(Jh,{"aria-label":"JSON items",className:"min-h-[200px] flex-1 resize-none font-mono text-caption",placeholder:mjs,spellCheck:!1,value:o,onChange:u=>i(u.target.value),disabled:c})})]})}function vjs({onFileSelect:e,disabled:t}){const[n,r]=g.useState(!1),s=g.useCallback(c=>{const u=c.target.files?.[0];u&&e(u),c.target.value=""},[e]),o=g.useCallback(c=>{c.preventDefault(),c.stopPropagation(),r(!0)},[]),i=g.useCallback(c=>{c.preventDefault(),c.stopPropagation(),r(!1)},[]),l=g.useCallback(c=>{if(c.preventDefault(),c.stopPropagation(),r(!1),t)return;const u=c.dataTransfer.files?.[0];u&&e(u)},[t,e]);return a.jsxs("div",{"data-testid":"json-dropzone",onDragOver:o,onDragLeave:i,onDrop:l,className:Z("relative flex flex-1 flex-col items-center justify-center gap-3 rounded-lg border border-dashed border-border bg-card px-4 py-6 text-center","hover:border-accent1/50 hover:bg-accent1/5",n&&"border-accent1/50 bg-accent1/5",t&&"cursor-wait opacity-60"),children:[a.jsx("input",{type:"file",accept:".json,application/json","aria-label":"Choose a JSON file",onChange:s,disabled:t,className:"absolute inset-0 cursor-pointer opacity-0"}),a.jsx("div",{className:"flex size-9 items-center justify-center rounded-md border border-border bg-background text-muted-foreground",children:a.jsx(_A,{className:"size-4"})}),a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx("p",{className:"text-body text-foreground",children:"Drop a JSON file here"}),a.jsxs("p",{className:"text-caption text-muted-foreground",children:["or ",a.jsx("span",{className:"underline",children:"choose a file"})," from your computer"]})]}),a.jsxs("p",{className:"text-meta text-muted-foreground",children:[".json · an array of items · up to ",KMe]})]})}function yjs(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function bjs(e){return typeof e=="string"?e:JSON.stringify(e)??""}function xjs({file:e,validation:t,onReplace:n,isImporting:r}){const s="rows"in t?t.rows:[],o="total"in t?t.total:0,i=s.slice(0,Jle);return a.jsxs("div",{"data-testid":"json-file-card",className:"rounded-lg border border-border",children:[a.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[a.jsx(wA,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"min-w-0 flex-1 truncate font-mono text-caption text-foreground",children:e.name}),a.jsx("span",{className:"shrink-0 text-meta text-muted-foreground",children:yjs(e.size)}),a.jsx(le,{icon:a.jsx(Jx,{}),variant:"ghost",size:"sm",onClick:n,disabled:r,children:"Replace"})]}),i.map(l=>a.jsxs("div",{className:"grid grid-cols-[2rem_1fr_auto] items-center gap-2 border-t border-border px-3 py-1.5",children:[a.jsx("span",{className:"text-meta text-muted-foreground",children:l.index}),a.jsx("span",{className:"truncate font-mono text-caption text-foreground",children:bjs(l.input)}),l.hasInput?l.hasGroundTruth?null:a.jsx($t,{variant:"yellow",size:"xs",children:"no groundTruth"}):a.jsx($t,{variant:"red",size:"xs",children:"no input"})]},l.index)),o>Jle&&a.jsxs("div",{className:"border-t border-border px-3 py-1.5 text-meta text-muted-foreground",children:["+ ",o-Jle," more"]})]})}const wjs=e=>new Promise((t,n)=>{const r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(r.error),r.readAsText(e)});function Sjs({datasetId:e,datasetName:t,open:n,onOpenChange:r,onSuccess:s}){const[o,i]=g.useState("upload"),[l,c]=g.useState(null),[u,d]=g.useState(""),[f,h]=g.useState(null),[p,m]=g.useState(""),[y,v]=g.useState(!1),b=g.useRef(0),{batchInsertItems:x}=dl(),w=o==="upload"?u:p,k=g.useMemo(()=>o==="upload"&&f?{status:"error",kind:"parse",message:f}:oTs(w),[o,f,w]),C=g.useCallback(async N=>{const A=++b.current;if(!N.name.toLowerCase().endsWith(".json")){h("Only .json files are supported");return}if(N.size>bXt){h(`File is larger than ${KMe}`);return}try{const P=await wjs(N);if(A!==b.current)return;c({name:N.name,size:N.size}),d(P),h(null)}catch{if(A!==b.current)return;h("Could not read the file")}},[]),_=g.useCallback(()=>{b.current++,c(null),d(""),h(null)},[]),T=g.useCallback(()=>{b.current++,i("upload"),c(null),d(""),h(null),m("")},[]),E=g.useCallback(()=>{y||(r(!1),setTimeout(T,150))},[y,r,T]),I=g.useCallback(async()=>{if(k.status==="ready"){v(!0);try{await x.mutateAsync({datasetId:e,items:k.items}),Ye.success(`Imported ${k.total} item${k.total!==1?"s":""}`),s?.(),r(!1),setTimeout(T,150)}catch(N){Ye.error(N instanceof Error?N.message:"Failed to import items")}finally{v(!1)}}},[k,x,e,s,r,T]);return a.jsx(gs,{open:n,onOpenChange:E,children:a.jsxs(ss,{className:"flex max-h-[90vh] w-[960px] max-w-[calc(100vw-2rem)] flex-col gap-0 p-0",children:[a.jsxs(os,{className:"border-b border-border px-4 py-4",children:[a.jsx(es,{children:"Import into dataset"}),a.jsxs(Fs,{className:"not-sr-only text-caption text-muted-foreground",children:["Add items to"," ",t?a.jsx("code",{className:"rounded bg-card px-1 font-mono text-meta text-foreground",children:t}):"this dataset"," ","from a JSON file or paste them directly."]})]}),a.jsx(ws,{className:"max-h-none min-h-0 flex-1 overflow-y-auto p-0",children:a.jsxs("div",{className:"grid divide-y divide-border md:grid-cols-[1.15fr_1fr] md:divide-x md:divide-y-0",children:[a.jsx("div",{className:"flex min-h-[360px] flex-col p-4",children:a.jsx(gjs,{tab:o,onTabChange:i,file:l,onFileSelect:C,onReplace:_,pastedText:p,onPastedTextChange:m,validation:k,isImporting:y})}),a.jsx("div",{className:"p-4",children:a.jsx(pjs,{})})]})}),a.jsxs(sc,{className:"items-center border-t border-border px-4 py-3 sm:justify-between",children:[a.jsx(kjs,{validation:k}),a.jsxs("div",{className:"flex gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:E,disabled:y,children:"Cancel"}),a.jsxs(le,{variant:"primary",onClick:I,disabled:k.status!=="ready"||y,children:[y&&a.jsx(_n,{}),k.status==="ready"?`Import ${k.total} item${k.total!==1?"s":""}`:"Import"]})]})]})]})})}function kjs({validation:e}){const t=Z("size-1.5 shrink-0 rounded-full",e.status==="idle"&&"bg-muted-foreground",e.status==="ready"&&"bg-accent1",e.status==="error"&&"bg-accent2");let n;switch(e.status){case"idle":n="No items yet";break;case"ready":n=a.jsxs(a.Fragment,{children:[a.jsx("b",{className:"font-medium text-foreground",children:e.total})," item",e.total!==1?"s":""," ","ready",e.missingGroundTruthCount>0&&` · ${e.missingGroundTruthCount} without groundTruth`]});break;case"error":switch(e.kind){case"parse":n=`Not valid JSON — ${e.message}`;break;case"not-array":n="Top level must be an array of items";break;case"empty":n="The array has no items";break;case"too-large":n=`JSON is larger than ${KMe}`;break;case"missing-input":n=a.jsxs(a.Fragment,{children:[a.jsx("b",{className:"font-medium text-foreground",children:e.missingInputCount})," of ",e.total," item",e.total!==1?"s":""," ",e.missingInputCount!==1?"have":"has"," no"," ",a.jsx("code",{className:"font-mono",children:"input"})]});break}break}return a.jsxs("div",{role:"status",className:"flex min-w-0 items-center gap-2 text-caption text-muted-foreground",children:[a.jsx("span",{className:t}),a.jsx("span",{className:"truncate",children:n})]})}function Ojs(e){if(!(e instanceof HTMLElement))return!1;if(e.isContentEditable)return!0;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:!!e.closest('[role="dialog"]:not([data-item-panel])')}function NXt({active:e,onPrevious:t,onNext:n,onClose:r}){g.useEffect(()=>{if(!e)return;const s=o=>{o.defaultPrevented||Ojs(o.target)||(o.key==="PageUp"?(o.preventDefault(),t?.()):o.key==="PageDown"?(o.preventDefault(),n?.()):o.key==="Escape"&&(o.preventDefault(),r()))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,n,r])}const IXt=g.createContext(null);function Cjs({datasetId:e,items:t,isLoadingItems:n,children:r}){const s=Ur(),i=Qke("/datasets/:datasetId/items/:itemId")?.params.itemId,l=g.useCallback(p=>{s(`/datasets/${e}/items/${encodeURIComponent(p)}`)},[s,e]),c=g.useCallback(()=>{s(`/datasets/${e}`)},[s,e]),u=g.useMemo(()=>i?t.findIndex(p=>p.id===i):-1,[t,i]),d=g.useMemo(()=>{if(u<=0)return;const p=t[u-1].id;return()=>l(p)},[u,t,l]),f=g.useMemo(()=>{if(u<0||u>=t.length-1)return;const p=t[u+1].id;return()=>l(p)},[u,t,l]);NXt({active:!!i,onPrevious:d,onNext:f,onClose:c});const h=g.useMemo(()=>({datasetId:e,items:t,isLoadingItems:n,currentItemId:i,openItem:l,close:c,goToPreviousItem:d,goToNextItem:f}),[e,t,n,i,l,c,d,f]);return a.jsx(IXt.Provider,{value:h,children:r})}function AXt(){const e=g.useContext(IXt);if(!e)throw new Error("useDatasetItemPanel must be used within a DatasetItemPanelProvider");return e}const _js=["createdAt"];function Ejs({datasetId:e,onAddItemClick:t,onNavigateToDataset:n,leftSlot:r,rightSlot:s,belowToolbarSlot:o}){const[i,l]=oo(),{activeVersion:c}=JMe(i,l),{sort:u,onSortChange:d}=ck({searchParams:i,setSearchParams:l,allowedKeys:_js}),f=g.useMemo(()=>u?{field:u.key,direction:u.direction==="asc"?"ASC":"DESC"}:void 0,[u]),[h,p]=g.useState(!1),[m,y]=g.useState(!1),[v,b]=g.useState(!1),[x,w]=g.useState([]),[k,C]=g.useState(!1),[_,T]=g.useState([]),[E,I]=g.useState(!1),[N,A]=g.useState([]),[P,F]=g.useState(0),[L,q]=g.useState(""),[V]=h_e(L,300),{data:H}=pv(e),{data:B=[],isLoading:W,setEndOfListElement:z,isFetchingNextPage:Y,hasNextPage:D}=YI(e,V||void 0,c,f),{deleteItems:R}=dl(),{currentItemId:M,openItem:U,close:Q}=AXt(),ee=ae=>{M===ae?Q():U(ae)},X=ae=>{w(ae),b(!0)},te=ae=>{T(ae),C(!0)},ne=ae=>{C(ae),ae||(T([]),F(ue=>ue+1))},ce=ae=>{A(ae),I(!0)},J=async()=>{await R.mutateAsync({datasetId:e,itemIds:N}),Ye.success(`Deleted ${N.length} items`),I(!1),A([]),F(ae=>ae+1)},re=ae=>{b(!1),w([]),F(ue=>ue+1),n?.(ae)},se=ae=>{b(ae),ae||(w([]),F(ue=>ue+1))};return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"grid h-full overflow-auto",children:a.jsx(djs,{items:B,leftSlot:r,rightSlot:s,belowToolbarSlot:o,isLoading:W,onItemClick:ee,featuredItemId:M,onAddClick:t??(()=>{}),onImportClick:()=>p(!0),onImportJsonClick:()=>y(!0),onBulkDeleteClick:ce,onCreateDatasetClick:X,onAddToDatasetClick:te,datasetName:H?.name,clearSelectionTrigger:P,setEndOfListElement:z,isFetchingNextPage:Y,hasNextPage:D,searchQuery:L,activeSearchQuery:V,onSearchChange:q,sort:u,onSortChange:d,currentDatasetVersion:H?.version})}),a.jsx(rjs,{datasetId:e,open:h,onOpenChange:p}),a.jsx(Sjs,{datasetId:e,datasetName:H?.name,open:m,onOpenChange:y}),a.jsx(LTs,{open:v,onOpenChange:se,items:x,onSuccess:re}),a.jsx(FTs,{open:k,onOpenChange:ne,items:_,currentDatasetId:e}),a.jsx(Pt,{open:E,onOpenChange:I,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Items"}),a.jsxs(Pt.Description,{children:["Are you sure you want to delete ",N.length," item",N.length!==1?"s":"","? This action cannot be undone."]})]}),a.jsxs(Pt.Footer,{children:[a.jsx(Pt.Cancel,{children:"Cancel"}),a.jsx(Pt.Action,{onClick:J,children:R.isPending?"Deleting...":"Delete"})]})]})})]})}const _ot="__create_tag__";function Tjs({datasetId:e}){const{data:t}=pv(e),{data:n}=I0(),{updateDataset:r}=dl(),[s,o]=g.useState(""),i=g.useMemo(()=>Array.isArray(t?.tags)?t.tags:[],[t?.tags]),l=g.useMemo(()=>kXt(n?.datasets??[]),[n?.datasets]),c=g.useMemo(()=>{const h=l.map(y=>({label:y,value:y,end:i.includes(y)?a.jsx(Hn,{"data-testid":"tag-applied",className:"size-3.5"}):void 0})),p=s.trim();return p.length>0&&!l.includes(p)&&!i.includes(p)?[{label:`Create "${p}"`,value:_ot},...h]:h},[l,i,s]),u=h=>{r.mutate({datasetId:e,tags:h},{onError:()=>Ye.error("Failed to update tags")})},d=h=>{const p=h===_ot?s.trim():h;!p||i.includes(p)||u([...i,p])},f=h=>{u(i.filter(p=>p!==h))};return a.jsxs("div",{"data-testid":"dataset-tags-editor",className:"flex flex-wrap items-center gap-2",children:[i.map(h=>a.jsxs(UX,{value:h,size:"md",className:"gap-1 pr-1",children:[h,a.jsx("button",{type:"button","aria-label":`Remove tag ${h}`,disabled:r.isPending,onClick:()=>f(h),className:"cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50",children:a.jsx(Qt,{className:"size-3"})})]},h)),a.jsx(qa,{options:c,value:void 0,onValueChange:d,onInputValueChange:o,placeholder:a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(U1,{className:"size-3.5"}),"Add tag"]}),searchPlaceholder:"Search or create tag...",emptyText:"Type to create a tag",variant:"ghost",size:"sm",className:"w-auto min-w-0",disabled:r.isPending})]})}function RXt({overrideEnabled:e,onOverrideEnabledChange:t,selectedScorerIds:n,onSelectedScorerIdsChange:r,disabled:s=!1}){return a.jsxs("div",{className:"grid gap-3",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(ic,{id:"override-dataset-scorers",checked:e,onCheckedChange:t,disabled:s}),a.jsx(Dn,{htmlFor:"override-dataset-scorers",children:"Override dataset scorers"})]}),a.jsx("p",{className:"text-caption text-muted-foreground",children:e?"Only selected scorers run for this item. Leave empty to run no scorers.":"Use scorers attached to the dataset."}),e?a.jsx(qX,{selectedScorers:n,setSelectedScorers:r,disabled:s,label:"Item scorers",helperText:"Choose from scorers that can be resolved by this Mastra instance."}):null]})}function bN({name:e,field:t,errors:n}){return n.length===0?null:a.jsx(Ht.ErrorMsg,{name:e,children:a.jsx("span",{className:"space-y-1",children:n.map(r=>a.jsxs("span",{className:"block",children:[a.jsxs("code",{className:"rounded bg-destructive/10 px-1",children:[t,r.path!=="/"?r.path:""]}),": ",r.message]},`${r.path}:${r.message}`))})})}function jjs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function Njs({datasetId:e,open:t,onOpenChange:n,onSuccess:r}){const[s,o]=g.useState("{}"),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState(""),[h,p]=g.useState(!1),[m,y]=g.useState([]),[v,b]=g.useState(""),[x,w]=g.useState(null),{addItem:k}=dl(),C=()=>{o("{}"),l(""),u(""),f(""),p(!1),y([]),b(""),w(null)},_=P=>{C(),n(P)},T=async P=>{P.preventDefault();let F;try{F=JSON.parse(s)}catch{Ye.error("Input must be valid JSON");return}let L;if(i.trim())try{L=JSON.parse(i)}catch{Ye.error("Ground Truth must be valid JSON");return}let q;if(c.trim())try{q=JSON.parse(c)}catch{Ye.error("Expected Trajectory must be valid JSON");return}let V;if(d.trim())try{const B=JSON.parse(d);if(!Array.isArray(B)){Ye.error("Tool Mocks must be a JSON array");return}V=B}catch{Ye.error("Tool Mocks must be valid JSON");return}let H;if(v.trim())try{H=JSON.parse(v)}catch{Ye.error("Request Context must be valid JSON");return}try{await k.mutateAsync({datasetId:e,input:F,groundTruth:L,expectedTrajectory:q,toolMocks:V,scorerIds:h?m:void 0,requestContext:H}),Ye.success("Item added successfully"),_(!1),r?.()}catch(B){const W=jjs(B);W?w(W):Ye.error(`Failed to add item: ${B instanceof Error?B.message:"Unknown error"}`)}},E=P=>{o(P),x?.field==="input"&&w(null)},I=P=>{l(P),x?.field==="groundTruth"&&w(null)},N=P=>{f(P),x?.field==="toolMocks"&&w(null)},A=()=>{_(!1)};return a.jsxs(_i,{dialogTitle:"Add Item",dialogDescription:"Create a new dataset item",isOpen:t,onClose:A,level:1,children:[a.jsx(_i.Top,{children:"Add Item"}),a.jsxs(_i.Content,{children:[a.jsx(_i.Header,{children:a.jsx(_i.Heading,{children:"Add Item"})}),a.jsxs("form",{onSubmit:T,className:"grid gap-4",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-input",required:!0,children:"Input (JSON)"}),a.jsx(Or,{id:"input-item-input","aria-invalid":x?.field==="input"?!0:void 0,"aria-describedby":x?.field==="input"?qi("item-input"):void 0,value:s,onChange:E,showCopyButton:!1,className:"min-h-[240px]"}),x?.field==="input"&&a.jsx(bN,{name:"item-input",field:"input",errors:x.errors})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),a.jsx(Or,{id:"input-item-ground-truth","aria-invalid":x?.field==="groundTruth"?!0:void 0,"aria-describedby":x?.field==="groundTruth"?qi("item-ground-truth"):void 0,value:i,onChange:I,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="groundTruth"&&a.jsx(bN,{name:"item-ground-truth",field:"groundTruth",errors:x.errors})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),a.jsx(Or,{id:"input-item-trajectory",value:c,onChange:u,showCopyButton:!1,className:"min-h-[200px]"})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),a.jsx(Or,{id:"input-item-tool-mocks","aria-invalid":x?.field==="toolMocks"?!0:void 0,"aria-describedby":x?.field==="toolMocks"?qi("item-tool-mocks"):void 0,value:d,onChange:N,showCopyButton:!1,className:"min-h-[200px]"}),x?.field==="toolMocks"&&a.jsx(bN,{name:"item-tool-mocks",field:"toolMocks",errors:x.errors})]}),a.jsx(RXt,{overrideEnabled:h,onOverrideEnabledChange:p,selectedScorerIds:m,onSelectedScorerIdsChange:y,disabled:k.isPending}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Ht.Label,{name:"item-request-context",children:"Request Context (JSON, optional)"}),a.jsx(Or,{id:"input-item-request-context",value:v,onChange:b,showCopyButton:!1,className:"min-h-[200px]"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Qt,{}),type:"button",onClick:A,children:"Cancel"}),a.jsx(le,{icon:a.jsx(Kr,{}),type:"submit",variant:"primary",disabled:k.isPending,children:k.isPending?"Adding...":"Add Item"})]})]})]})]})}const nO=e=>JSON.stringify(e??null,null,2),Ijs=[{key:"input",title:"Input",icon:a.jsx(DD,{}),value:e=>nO(e.input)},{key:"groundTruth",title:"Ground Truth",icon:a.jsx(ES,{}),value:e=>nO(e.groundTruth)},{key:"expectedTrajectory",title:"Expected Trajectory",icon:a.jsx(lCe,{}),value:e=>e.expectedTrajectory!=null?nO(e.expectedTrajectory):void 0},{key:"toolMocks",title:"Tool Mocks",icon:a.jsx(wu,{}),value:e=>nO(e.toolMocks??[])},{key:"scorerIds",title:"Scorers",icon:a.jsx(nCe,{}),value:e=>e.scorerIds===void 0?"Inherited from dataset":nO(e.scorerIds)},{key:"requestContext",title:"Request Context",icon:a.jsx(wl,{}),value:e=>e.requestContext!=null?nO(e.requestContext):void 0},{key:"metadata",title:"Metadata",icon:a.jsx(U1,{}),value:e=>nO(e.metadata)}];function ZSe({item:e,diff:t}){return a.jsxs(a.Fragment,{children:[a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Dataset Id"}),a.jsx(Lt.ValueWithCopyBtn,{copyTooltip:"Copy Dataset Id to clipboard",copyValue:e.datasetId,children:e.datasetId}),a.jsx(Lt.Key,{children:"Version"}),a.jsxs(Lt.Value,{children:["v",e.datasetVersion]}),a.jsx(Lt.Key,{children:"Created"}),a.jsx(Lt.Value,{children:Rr(new Date(e.createdAt),"MMM d, yyyy h:mm aaa")}),a.jsx(Lt.Key,{children:"Updated"}),a.jsx(Lt.Value,{children:e.updatedAt&&new Date(e.updatedAt).getTime()!==new Date(e.createdAt).getTime()?Rr(new Date(e.updatedAt),"MMM d, yyyy h:mm aaa"):"n/a"})]}),a.jsx("div",{className:"mt-3 grid gap-3",children:Ijs.map(n=>{const r=n.value(e),s=t?n.value(t.against):void 0;return r===void 0&&s===void 0?null:a.jsx(At.CodeSection,{title:n.title,icon:n.icon,codeStr:r??"",diff:t?{against:s??"",side:t.side}:void 0},n.key)})})]})}function Ajs({inputValue:e,setInputValue:t,groundTruthValue:n,setGroundTruthValue:r,metadataValue:s,setMetadataValue:o,trajectoryValue:i,setTrajectoryValue:l,toolMocksValue:c,setToolMocksValue:u,scorerOverrideEnabled:d,setScorerOverrideEnabled:f,selectedScorerIds:h,setSelectedScorerIds:p,requestContextValue:m,setRequestContextValue:y,validationErrors:v,onSave:b,onCancel:x,isSaving:w}){return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"mb-4",children:a.jsxs("h3",{className:"flex items-center gap-2 text-heading",children:[a.jsx(qd,{className:"h-5 w-5"})," Edit Item"]})}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-input",required:!0,children:"Input (JSON)"}),a.jsx(Or,{id:"input-item-input","aria-invalid":v?.field==="input"?!0:void 0,"aria-describedby":v?.field==="input"?qi("item-input"):void 0,value:e,onChange:t,showCopyButton:!1,className:"min-h-[120px]"}),v?.field==="input"&&a.jsx(bN,{name:"item-input",field:"input",errors:v.errors})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-ground-truth",children:"Ground Truth (JSON, optional)"}),a.jsx(Or,{id:"input-item-ground-truth","aria-invalid":v?.field==="groundTruth"?!0:void 0,"aria-describedby":v?.field==="groundTruth"?qi("item-ground-truth"):void 0,value:n,onChange:r,showCopyButton:!1,className:"min-h-[100px]"}),v?.field==="groundTruth"&&a.jsx(bN,{name:"item-ground-truth",field:"groundTruth",errors:v.errors})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-trajectory",children:"Expected Trajectory (JSON, optional)"}),a.jsx(Or,{id:"input-item-trajectory",value:i,onChange:l,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-tool-mocks",children:"Tool Mocks (JSON array, optional)"}),a.jsxs("p",{className:"text-caption text-muted-foreground",children:["Ordered static mocks served in place of executing the tool. Each entry is"," ",a.jsx("code",{children:'{ "toolName", "args", "output" }'}),". Calling a mocked tool with non-matching args fails the item; unmocked tools run live."]}),a.jsx(Or,{id:"input-item-tool-mocks","aria-invalid":v?.field==="toolMocks"?!0:void 0,"aria-describedby":v?.field==="toolMocks"?qi("item-tool-mocks"):void 0,value:c,onChange:u,showCopyButton:!1,className:"min-h-[100px]"}),v?.field==="toolMocks"&&a.jsx(bN,{name:"item-tool-mocks",field:"toolMocks",errors:v.errors})]}),a.jsx(RXt,{overrideEnabled:d,onOverrideEnabledChange:f,selectedScorerIds:h,onSelectedScorerIdsChange:p,disabled:w}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-request-context",children:"Request Context (JSON, optional)"}),a.jsx(Or,{id:"input-item-request-context",value:m,onChange:y,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ht.Label,{name:"item-metadata",children:"Metadata (JSON, optional)"}),a.jsx(Or,{id:"input-item-metadata",value:s,onChange:o,showCopyButton:!1,className:"min-h-[80px]"})]}),a.jsxs("div",{className:"flex gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Hn,{}),variant:"primary",onClick:b,disabled:w,children:w?"Saving...":"Save Changes"}),a.jsx(le,{icon:a.jsx(Qt,{}),onClick:x,disabled:w,children:"Cancel"})]})]})]})}const Rjs=[{value:"agent",label:"Agent"},{value:"workflow",label:"Workflow"},{value:"scorer",label:"Scorer"}];function Pjs({targetType:e,setTargetType:t,targetId:n,setTargetId:r,container:s}){const{data:o,isLoading:i}=nf(),{data:l,isLoading:c}=lp(),{data:u,isLoading:d}=Gf(),f=e==="agent"?Object.entries(o??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="workflow"?Object.entries(l??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="scorer"?Object.entries(u??{}).map(([y,v])=>({value:y,label:v.scorer?.config?.name??y})):[],h=e==="agent"&&i||e==="workflow"&&c||e==="scorer"&&d,p=y=>{t(y),r("")},m=e==="agent"?"Agent":e==="workflow"?"Workflow":"Scorer";return a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Target Type"}),a.jsx(qa,{options:Rjs,value:e,onValueChange:p,placeholder:"Select target type",searchPlaceholder:"Search types...",emptyText:"No types available",container:s})]}),e&&a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:m}),a.jsx(qa,{options:f,value:n,onValueChange:r,placeholder:`Select ${e}`,searchPlaceholder:"Search...",emptyText:"No targets available",disabled:h,container:s})]})]})}const $js=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);function Mjs({requestContextSchema:e,onChange:t}){const n=g.useMemo(()=>{try{return jm(e)}catch(r){return console.error("Failed to parse requestContextSchema:",r),null}},[e]);return n?a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{children:"Request Context"}),a.jsx(z3,{schema:n,onValuesChange:t,className:"[&_button[type=submit]]:hidden"})]}):a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:"Failed to parse request context schema"})})}function ece({index:e,done:t,isLast:n,children:r}){return a.jsxs("li",{className:"flex gap-4",children:[a.jsxs("div",{className:"flex flex-col items-center",children:[a.jsx("span",{"aria-hidden":"true",className:Z("flex size-6 shrink-0 items-center justify-center rounded-full border text-meta",t?"border-accent1 bg-accent1 text-white":"border-border text-muted-foreground"),children:e}),!n&&a.jsx("span",{"aria-hidden":"true",className:"mt-2 w-px flex-1 bg-border"})]}),a.jsx("div",{className:Z("min-w-0 flex-1 space-y-3",!n&&"pb-4"),children:r})]})}function HX({initialDatasetId:e,initialDatasetVersion:t,initialScorerIds:n,initialTargetType:r,initialTargetId:s,initialName:o,initialDescription:i,open:l,onOpenChange:c,onSuccess:u}){const d=g.useRef(null),[f,h]=g.useState(o??""),[p,m]=g.useState(i??""),[y,v]=g.useState(e??""),[b,x]=g.useState(t??null),[w,k]=g.useState(r??""),[C,_]=g.useState(s??""),[T,E]=g.useState(n??null),[I,N]=g.useState({}),[A,P]=g.useState(""),{triggerExperiment:F}=dl(),{data:L}=pv(y),{total:q}=YI(y,void 0,b),V=L?.requestContextSchema,H=L?.scorerIds??[],B=T===null&&H.length>0,W=T??H,z=!!(V&&Object.keys(V).length>0),Y=!!(y&&w&&C&&f.trim()),D=F.isPending,R=[!f.trim()&&"name",!y&&"dataset",!C&&"target"].filter(Boolean),M=z?Object.values(I).some(ce=>ce!==void 0&&ce!==""):A.trim().length>0,U=ce=>{v(ce),x(null),E(n??null),N({})},Q=()=>{h(o??""),m(i??""),v(e??""),x(t??null),k(r??""),_(s??""),E(n??null),N({}),P("")},ee=()=>{if(z){const ce=Object.entries(I).filter(([,J])=>J!==void 0&&J!=="");return ce.length>0?Object.fromEntries(ce):void 0}if(A.trim()){let ce;try{ce=JSON.parse(A)}catch{throw new Error("Request Context must be valid JSON")}if(!ce||typeof ce!="object"||Array.isArray(ce))throw new Error("Request Context must be a JSON object");return ce}},X=async()=>{if(!y||!w||!C||!f.trim())return;let ce;try{ce=ee()}catch(J){const re=J instanceof Error?J.message:"Request Context must be valid JSON";du.error(re);return}try{const J=await F.mutateAsync({datasetId:y,name:f.trim(),description:p.trim()||void 0,targetType:w,targetId:C,scorerIds:W.length>0?W:void 0,version:b??void 0,requestContext:ce});du.success("Experiment triggered successfully"),c(!1),u?.(J.experimentId),Q()}catch(J){const re=J instanceof Error?J.message:"Failed to trigger experiment";du.error(re)}},te=()=>{D||(c(!1),Q())},ne=ce=>{(ce.metaKey||ce.ctrlKey)&&ce.key==="Enter"&&Y&&!D&&(ce.preventDefault(),X())};return a.jsx(gs,{open:l,onOpenChange:te,children:a.jsxs(ss,{ref:d,className:"w-[640px] max-w-[calc(100vw-2rem)] gap-0 p-0",onKeyDown:ne,children:[a.jsxs(os,{className:"border-b border-border px-4 py-4",children:[a.jsx(es,{children:"Run experiment"}),a.jsx(Fs,{className:"not-sr-only text-caption text-muted-foreground",children:"Pick a dataset, choose what to run it against, and optionally score the results."})]}),a.jsxs(ws,{className:"max-h-[70vh] space-y-6 overflow-y-auto px-4 py-5",children:[a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{htmlFor:"experiment-name",children:"Name *"}),a.jsx(vr,{id:"experiment-name",value:f,onChange:ce=>h(ce.target.value),placeholder:"Enter experiment name",autoFocus:!0,disabled:D})]}),a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{htmlFor:"experiment-description",children:"Description"}),a.jsx(Jh,{id:"experiment-description",value:p,onChange:ce=>m(ce.target.value),placeholder:"Enter experiment description (optional)",disabled:D,rows:2})]})]}),a.jsxs("ol",{className:"list-none",children:[a.jsxs(ece,{index:1,done:!!y,children:[a.jsxs("div",{className:"grid grid-cols-[1fr_140px] gap-3",children:[a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Dataset"}),a.jsx(rkt,{value:y,onValueChange:U,container:d})]}),y&&a.jsxs("div",{className:"grid gap-2",children:[a.jsx(Dn,{children:"Version"}),a.jsx(jXt,{datasetId:y,value:b,onValueChange:x,container:d})]})]}),y&&q!==void 0&&a.jsxs("p",{className:"text-meta text-muted-foreground",children:[q," ",q===1?"item":"items"]})]}),a.jsxs(ece,{index:2,done:!!C,children:[a.jsx(Pjs,{targetType:w,setTargetType:k,targetId:C,setTargetId:_,container:d}),w&&!C&&a.jsxs("p",{className:"text-meta text-muted-foreground",children:["Choose ",w==="agent"?"an":"a"," ",w," to run"]})]}),a.jsx(ece,{index:3,done:W.length>0,isLast:!0,children:a.jsx(qX,{selectedScorers:W,setSelectedScorers:E,disabled:D,container:d,helperText:B?"Pre-filled from the dataset's default scorers.":"Scores are computed after each item runs."})})]}),a.jsxs(Za,{children:[a.jsxs(Ta,{className:"flex items-center gap-2 text-caption",children:[a.jsx(xr,{className:"size-4"}),"Request Context (JSON, optional)",M&&a.jsx($t,{size:"xs",variant:"blue",children:"set"})]}),a.jsx(ja,{className:"pt-3",children:z?a.jsx(Mjs,{requestContextSchema:V,onChange:N}):a.jsx(Or,{value:A,onChange:P,showCopyButton:!1,"aria-label":"Request context JSON",className:"min-h-[160px]"})})]})]}),a.jsxs(sc,{className:"items-center border-t border-border px-4 py-4 sm:justify-between",children:[a.jsx("p",{"data-testid":"experiment-run-status","aria-live":"polite",className:"flex items-center gap-2",children:R.length===0?a.jsxs(a.Fragment,{children:[a.jsx($t,{variant:"green",indicator:"dot",children:"Ready"}),a.jsxs("span",{className:"text-meta text-muted-foreground",children:[q??0," items · ",w," · ",W.length," scorers"]})]}):a.jsxs($t,{variant:"neutral",indicator:"dot",children:["Missing ",R.join(", ")]})}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:te,disabled:D,children:"Cancel"}),a.jsx(le,{variant:"primary",onClick:X,disabled:!Y||D,children:D?a.jsxs(a.Fragment,{children:[a.jsx(_n,{className:"h-4 w-4"}),"Running..."]}):a.jsxs(a.Fragment,{children:["Run",a.jsxs("span",{className:"ml-1 inline-flex gap-0.5","aria-hidden":"true",children:[a.jsx(Ad,{size:"xs",children:$js?"⌘":"Ctrl"}),a.jsx(Ad,{size:"xs",children:"↵"})]})]})})]})]})]})})}const PXt=g.createContext(null);function Djs({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:o,children:i}){const l=Ur(),u=Qke("/experiments/:experimentId/items/:itemId")?.params.itemId,d=g.useCallback(v=>{l(`/experiments/${e}/items/${encodeURIComponent(v)}`)},[l,e]),f=g.useCallback(()=>{l(`/experiments/${e}`)},[l,e]),h=g.useMemo(()=>u?r.findIndex(v=>v.itemId===u):-1,[r,u]),p=g.useMemo(()=>{if(h<=0)return;const v=r[h-1].itemId;return()=>d(v)},[h,r,d]),m=g.useMemo(()=>{if(h<0||h>=r.length-1)return;const v=r[h+1].itemId;return()=>d(v)},[h,r,d]);NXt({active:!!u,onPrevious:p,onNext:m,onClose:f});const y=g.useMemo(()=>({experimentId:e,datasetId:t,experimentStatus:n,results:r,isLoadingResults:s,hasNextPage:o,currentItemId:u,openItem:d,close:f,goToPreviousItem:p,goToNextItem:m}),[e,t,n,r,s,o,u,d,f,p,m]);return a.jsx(PXt.Provider,{value:y,children:i})}function $Xt(){const e=g.useContext(PXt);if(!e)throw new Error("useExperimentItemPanel must be used within an ExperimentItemPanelProvider");return e}const Ljs=new Set(["itemId","id","status","input","tags","scores","startedAt"]);function MXt({results:e,isLoading:t,featuredResultId:n,onResultClick:r,columns:s,scoresByItemId:o,scorerIds:i,setEndOfListElement:l,isFetchingNextPage:c,hasNextPage:u,emptyMessage:d="No results yet",selectedIds:f,onToggleSelect:h,onToggleSelectAll:p,sort:m,onSortChange:y}){const{Link:v,paths:b}=fn(),x=!!(f&&h),w=s.filter(H=>Ljs.has(H.name)||i?.includes(H.name)),k=[x?"2rem":"",...w.map(H=>H.size)].filter(Boolean).join(" "),C=H=>w.some(B=>B.name===H),_=C("itemId")||C("id"),T=C("status"),E=C("input"),I=C("tags"),N=C("scores"),A=C("startedAt"),P=f?e.filter(H=>f.has(H.id)).length:0,F=e.length>0&&P===e.length,{containerRef:L,getRowProps:q}=Uc({count:e.length}),V=H=>i?.includes(H.name)?a.jsx(xe.TopCell,{children:a.jsxs(v,{href:b.scorerLink(H.name),className:"flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[a.jsx(db,{}),a.jsx("span",{className:"min-w-0 truncate",children:H.label})]})},H.name):H.name==="startedAt"&&y?a.jsx(xe.SortableTopCell,{sortKey:"startedAt",sort:m?.key==="startedAt"?m.direction:void 0,onSortChange:y,children:H.label},H.name):a.jsx(xe.TopCell,{children:H.label},H.name);return t?a.jsx(hc,{columns:k}):a.jsxs(xe,{columns:k,className:"min-w-0",scrollRef:L,fit:"container",children:[a.jsxs(xe.Top,{hasLeadingCell:x,children:[x&&(p?a.jsx(xe.TopSelectCell,{checked:F?!0:P>0?"indeterminate":!1,onToggle:p,"aria-label":"Select all"}):a.jsx(xe.TopCell,{children:" "})),x?a.jsx(xe.TopCells,{colStart:2,children:w.map(V)}):w.map(V)]}),e.length===0?a.jsx(xe.NoMatch,{message:d}):a.jsxs(a.Fragment,{children:[e.map((H,B)=>{const W=!!H.error,z=H.id===n,Y=a.jsxs(a.Fragment,{children:[_&&a.jsxs(xe.Cell,{className:"flex items-center gap-1.5 text-body-sm tracking-wide text-muted-foreground",children:[a.jsx("span",{children:H.itemId?.slice(0,8)??""}),W&&a.jsxs(In,{children:[a.jsx(On,{render:a.jsx($D,{role:"img","aria-label":"Error",className:"size-3.5 text-error"})}),a.jsx(Cn,{children:zjs(H.error)})]})]}),T&&a.jsx(xe.Cell,{className:"flex items-center","data-testid":`result-status-${H.id}`,children:H.status?a.jsx(BMe,{status:H.status}):a.jsx("span",{className:"text-placeholder",children:"—"})}),E&&a.jsx(xe.TextCell,{font:"mono",children:Ujs(Bjs(H.input),200)}),I&&a.jsx(xe.Cell,{className:"flex items-center gap-1 overflow-hidden","data-testid":`result-tags-${H.id}`,children:H.tags?.map(D=>a.jsx(UX,{value:D,className:"shrink-0"},D))}),N&&a.jsx(xe.Cell,{children:a.jsx(Fjs,{scores:H.scores})}),A&&(H.startedAt?a.jsx(xe.CreatedCell,{timestamp:H.startedAt}):a.jsx(xe.Cell,{className:"text-placeholder",children:"—"})),i?.map(D=>{const M=o?.[H.itemId]?.find(U=>U.scorerId===D);return a.jsx(xe.Cell,{className:"font-mono text-body-sm text-muted-foreground",children:M!=null?M.score.toFixed(3):"-"},D)})]});return x?a.jsxs(xe.RowWrapper,{children:[a.jsx(xe.SelectCell,{checked:f.has(H.id),onToggle:()=>h(H.id),"aria-label":`Select result ${H.itemId}`}),a.jsx(xe.RowButton,{colStart:2,featured:z,"data-selected":z||void 0,onClick:()=>r(H.id),...q(B),children:Y})]},H.id):a.jsx(xe.RowButton,{featured:z,"data-selected":z||void 0,onClick:()=>r(H.id),...q(B),children:Y},H.id)}),a.jsx(xe.NextPageLoading,{isLoading:c,hasMore:u,setEndOfListElement:l})]})]})}function Fjs({scores:e}){const t=Array.isArray(e)?e.map(n=>n.score).filter(n=>n!=null):Object.values(e??{});return t.length===0?a.jsx(Ae,{variant:"meta",tone:"faint",children:"—"}):a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx(Et,{size:"xs",className:"text-muted-foreground",children:a.jsx(dv,{})}),a.jsx(Ae,{variant:"meta",tone:"muted",className:"font-mono",children:t[0].toFixed(2)}),t.length>1&&a.jsxs($t,{children:["+",t.length-1]})]})}function zjs(e){return e&&typeof e=="object"&&"message"in e&&typeof e.message=="string"?e.message||"Error":typeof e=="string"&&e?e:"Error"}function Bjs(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function Ujs(e,t){return e.length<=t?e:e.slice(0,t-1)+"..."}function Vjs({experimentId:e,experimentStatus:t,results:n,isLoading:r,setEndOfListElement:s,isFetchingNextPage:o,hasNextPage:i,selectedIds:l,onToggleSelect:c,sort:u,onSortChange:d}){const{currentItemId:f,openItem:h,close:p}=$Xt(),m=g.useMemo(()=>f?n.find(w=>w.itemId===f)?.id??null:null,[n,f]),{data:y}=I1(e,t),v=g.useMemo(()=>{if(!y)return[];const w=new Set;for(const k of Object.values(y))for(const C of k)w.add(C.scorerId);return[...w].sort()},[y]),b=g.useCallback(w=>{const k=n.find(C=>C.id===w);k&&(k.itemId===f?p():h(k.itemId))},[n,f,p,h]),x=g.useMemo(()=>[{name:"itemId",label:"Item ID",size:"auto"},{name:"status",label:"Status",size:"auto"},{name:"input",label:"Input",size:"1fr"},{name:"tags",label:"Tags",size:"auto"},{name:"startedAt",label:"Created",size:"auto"},...v.map(w=>({name:w,label:w,size:"auto"}))],[v]);return a.jsx("div",{className:"h-full min-h-0 min-w-0 overflow-y-auto",children:a.jsx(MXt,{results:n,isLoading:r,featuredResultId:m,onResultClick:b,columns:x,scoresByItemId:y,scorerIds:v,setEndOfListElement:s,isFetchingNextPage:o,hasNextPage:i,selectedIds:l,onToggleSelect:c,sort:u,onSortChange:d})})}const Eot={pending:{icon:a.jsx(jC,{className:"size-4 text-warning1"}),label:"Pending"},running:{icon:a.jsx(_n,{size:"sm"}),label:"Running"},completed:{icon:a.jsx(QOe,{className:"size-4 text-muted-foreground"}),label:"Completed"},failed:{icon:a.jsx(MD,{className:"size-4 text-error"}),label:"Failed"}};function qjs({status:e,className:t}){const n=Eot[e]??Eot.pending;return a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{tabIndex:0,className:Z("flex shrink-0 items-center",t),children:n.icon})}),a.jsx(Cn,{children:n.label})]})}function Hjs({children:e,className:t}){return a.jsx("div",{className:Z("grid content-start gap-4 overflow-y-auto",t),children:e})}function Wjs({children:e,className:t}){return a.jsx("div",{className:"flex w-full overflow-y-auto",children:a.jsx("div",{className:Z("grid w-full content-start gap-4 overflow-y-auto",t),children:e})})}function Zjs({children:e,className:t}){return a.jsx("div",{className:Z("flex w-full flex-wrap items-center justify-between gap-3 gap-x-4",t),children:e})}const DXt=Object.assign(Wjs,{Content:Hjs,Toolbar:Zjs});function Gjs({children:e,className:t}){return a.jsx("div",{className:Z("grid size-full grid-cols-1 overflow-y-auto",t),children:e})}const Qjs=e=>{const t=Je();return kt({queryKey:["experiment-trace-light",e],queryFn:async()=>{if(!e)throw new Error("Trace ID is required");return t.getTraceLight(e)},select:_Kt,enabled:!!e})};function Yjs(e,t){if(t){const n=typeof t=="string"?new Date(t):t;return`v${e} ${Rr(n,"MMM dd 'at' H:mm:ss a")}`}return`v${e}`}function Kjs({datasetId:e,versionA:t,versionB:n,onVersionChange:r}){const{data:s}=vXt(e),o=(s??[]).map(i=>({value:String(i.version),label:`${Yjs(i.version,i.createdAt)}${i.isCurrent?" (current)":""}`}));return a.jsxs(DXt.Toolbar,{className:"grid w-full grid-cols-[1fr_1fr_1fr_10rem] gap-4",children:[a.jsx("div",{}),a.jsx(Su,{label:"Version A",labelIsHidden:!0,name:"version-a",placeholder:"Select version",options:o,value:t??"",onValueChange:i=>r?.(i,n??"")}),a.jsx(Su,{label:"Version B",labelIsHidden:!0,name:"version-b",options:o,value:n??"",onValueChange:i=>r?.(t??"",i)}),a.jsx("div",{})]})}function LXt({children:e,className:t}){return a.jsx("div",{className:Z("",t),children:e})}function Xjs({date:e,className:t,withTime:n=!1}){const r=e?NOt(new Date(e)):!1,s=e?$3(new Date(e))?"Today":Rr(new Date(e),"MMM dd"):"",o=e&&!r?Rr(new Date(e),"yyyy"):"",i=e&&n?`${Rr(new Date(e),"'at' h:mm aaa")}`:"";return a.jsxs("div",{className:Z("truncate text-body text-placeholder",t),children:[s," ",o," ",i]})}function e2e(e){return!e||e.length===0?"":e?.map(t=>t.size).join(" ")}function Jjs({columns:e,isSelectionActive:t,children:n}){return a.jsx("div",{className:Z("sticky top-0 z-10 mb-2 rounded-lg bg-card px-3"),children:a.jsx("div",{className:Z("grid items-center gap-3 text-left text-meta tracking-widest text-muted-foreground uppercase",{"pl-12 [&>label]:absolute [&>label]:left-0":t}),style:{gridTemplateColumns:e2e(e)},children:n})})}function eNs({children:e,className:t}){return a.jsx("span",{className:Z("py-3",t),children:e})}function tNs({id:e,className:t,isShortened:n=!0}){const r=n?e.slice(0,8):e;return a.jsx("div",{className:Z("truncate py-[0.6rem] text-body text-placeholder",t),children:r})}function nNs({children:e}){return a.jsx("ul",{className:"grid content-start",children:e})}function rNs({children:e}){const t=g.useRef(null);return a.jsx("div",{ref:t,className:Z("overflow-y-auto"),children:e})}function sNs({children:e,className:t}){return a.jsx("label",{className:Z("flex h-full w-14 items-center justify-center rounded-lg text-caption hover:bg-fill-subtle",t),children:e})}function oNs({children:e,href:t,className:n,LinkComponent:r,tooltip:s}){const o=a.jsx(r,{href:t,className:Z("flex w-full items-center justify-center gap-4 rounded-lg px-3 py-2 text-left","hover:bg-fill-subtle",Oo.colors,w0.visible,n),children:e});return s==null?o:a.jsxs(In,{children:[a.jsx(On,{render:o}),a.jsx(Cn,{children:s})]})}function iNs({children:e,message:t,className:n,type:r}){return!e&&!t?null:a.jsx("div",{className:Z("grid border-t border-border",n),children:t?a.jsxs("p",{className:Z("grid justify-center justify-items-center gap-2 p-5 text-center text-body text-muted-foreground","[&>svg]:size-[1.5em] [&>svg]:opacity-75",{"[&>svg]:text-red-500":r==="error"}),children:[r==="error"?a.jsx(uu,{}):a.jsx(Hf,{})," ",t]}):e})}function aNs({isLoading:e,hasMore:t,setEndOfListElement:n,loadingText:r="Loading more data...",noMoreDataText:s="No more data to load"}){return n?a.jsxs("div",{ref:n,className:"mt-4 flex justify-center text-body text-muted-foreground opacity-50",children:[e&&r,!t&&!e&&s]}):null}function lNs({currentPage:e,hasMore:t,onNextPage:n,onPrevPage:r}){const s=typeof e=="number"&&e>0||t;return a.jsxs("div",{className:Z("flex items-center justify-center gap-4 pt-4 text-body text-muted-foreground"),children:[a.jsxs("span",{children:["Page ",a.jsx("b",{children:e?e+1:"1"})]}),s&&a.jsxs("div",{className:Z("flex gap-4","[&>button]:flex [&>button]:items-center [&>button]:gap-2 [&>button]:rounded-md [&>button]:border [&>button]:border-border [&>button]:p-1 [&>button]:px-2 [&>button]:text-muted-foreground [&>button]:transition-colors [&>button:hover]:text-foreground","[&_svg]:size-[1em] [&_svg]:text-muted-foreground"),children:[typeof e=="number"&&e>0&&a.jsxs("button",{onClick:r,children:[a.jsx(Eu,{}),"Previous"]}),t&&a.jsxs("button",{onClick:n,children:["Next",a.jsx(qf,{})]})]})]})}function cNs({children:e,className:t}){return a.jsx("div",{className:Z("grid grid-rows-[auto_1fr] overflow-y-auto",t),children:e})}function uNs({isSelected:e,children:t,columns:n}){return a.jsx("li",{className:Z("flex overflow-hidden rounded-lg border border-transparent border-t-border py-[3px] pb-[2px] text-body text-foreground first:border-t-transparent","[&:last-child>button]:rounded-b-lg","[&.selected-row]:border [&.selected-row]:border-dashed [&.selected-row]:border-white/50 [&.selected-row]:pr-[3px] [&.selected-row]:first:border-t","[&:has(+.selected-row)]:rounded-b-none [&:has(+.selected-row)]:border-b-transparent","[.selected-row+&]:rounded-t-none",Oo.colors,{"selected-row":e,"grid gap-3 px-3":n}),style:{gridTemplateColumns:e2e(n)},children:t})}function dNs({item:e,isFeatured:t,onClick:n,children:r,columns:s,className:o,disabled:i,tooltip:l,...c}){const u=()=>{n?.(e?.id)},d=a.jsx("button",{...c,onClick:u,className:Z("grid w-full items-center gap-3 rounded-lg px-3 text-left",Oo.colors,w0.visible,{"bg-fill-hover":t,"hover:bg-fill-subtle":e&&!t&&!i},o),style:{gridTemplateColumns:e2e(s)},disabled:i,children:r});return l==null?d:a.jsxs(In,{children:[a.jsx(On,{render:d}),a.jsx(Cn,{children:l})]})}function fNs(e){return e.charAt(0).toUpperCase()+e.slice(1)}function hNs({status:e}){return e?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("div",{className:Z("relative flex h-full w-10 items-center justify-center bg-transparent"),children:a.jsx("div",{className:Z("size-2 rounded-full",{"bg-green-600":["success","completed"].includes(e),"bg-red-700":["error","failed"].includes(e),"bg-yellow-500":["pending","running"].includes(e)})})})}),a.jsx(Cn,{children:fNs(e)})]}):null}function pNs({children:e,isLoading:t,className:n}){return a.jsx("div",{className:Z("truncate py-[0.6rem] text-body text-muted-foreground",n),children:t?a.jsx("div",{className:"h-4 animate-pulse rounded-md bg-muted text-transparent select-none"}):e})}const Tot={latest:"Latest version",deleted:"Deleted in this version"};function mNs({version:e,date:t,isLatest:n,isDeleted:r}){return a.jsxs(LXt,{className:Z("grid grid-cols-[1fr_auto] pl-1"),children:[a.jsxs("div",{className:Z("grid gap-1 leading-none text-muted-foreground",{"text-muted-foreground":n}),children:[a.jsxs("strong",{className:"text-body-sm",children:["v. ",e]}),a.jsx("em",{className:"text-caption text-placeholder",children:t?Rr(new Date(t),"MMM d, yyyy HH:mm"):null})]}),(n||r)&&a.jsxs("div",{className:"flex items-center gap-1",children:[n&&a.jsx("span",{className:"inline-flex",role:"img","aria-label":Tot.latest,children:a.jsx($t,{variant:"blue",size:"sm",icon:a.jsx(jC,{})})}),r&&a.jsx("span",{className:"inline-flex",role:"img","aria-label":Tot.deleted,children:a.jsx($t,{variant:"red",size:"sm",icon:a.jsx(ZOe,{})})})]})]})}const Dp=Object.assign(cNs,{Header:Jjs,HeaderCol:eNs,Items:nNs,Scroller:rNs,Row:uNs,RowButton:dNs,Message:iNs,NextPageLoading:aNs,Pagination:lNs,Cell:LXt,TextCell:pNs,StatusCell:hNs,VersionCell:mNs,IdCell:tNs,DateCell:Xjs,LinkCell:oNs,LabelCell:sNs}),gNs=[{name:"id",label:"ID",size:"1fr"},{name:"versionA",label:"Version A",size:"1fr"},{name:"versionB",label:"Version B",size:"1fr"},{name:"compare",label:"Compare",size:"10rem"}],L7={added:{badgeVariant:"blue",borderColor:"border-blue-900",icon:a.jsx(Kr,{}),tooltip:"Added in this version"},changed:{badgeVariant:"yellow",borderColor:"border-yellow-900",icon:a.jsx(U2n,{}),tooltip:"Changed in this version"},same:{badgeVariant:"green",borderColor:"border-green-900",icon:a.jsx(tSt,{}),tooltip:"Same in both versions"}};function tce({red:e=!1,tooltip:t}){return a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{}),role:"img",tabIndex:0,"aria-label":t,className:"rounded focus-visible:outline-1 focus-visible:outline-offset-2 focus-visible:outline-border-focus focus-visible:outline-solid",children:a.jsx(ZOe,{className:Z("h-5 w-5 text-muted-foreground/40",{"text-red-900":e})})}),a.jsx(Cn,{children:t})]})}function nce({variant:e,version:t}){if(!e)return a.jsxs("span",{className:"text-body text-muted-foreground",children:["v. ",t]});const{badgeVariant:n,icon:r,tooltip:s}=L7[e];return a.jsxs("div",{className:"grid grid-cols-[1fr_auto]",children:[t!==void 0&&a.jsxs("span",{className:"flex min-w-16 justify-end pr-3 text-body text-muted-foreground",children:["v. ",t]}),a.jsx("span",{className:"inline-flex",role:"img","aria-label":s,children:a.jsx($t,{variant:n,size:"xs",icon:r})})]})}function vNs(e,t){return e&&t&&e.datasetVersion===t.datasetVersion?"same":e&&t&&e.datasetVersion!==t.datasetVersion?"changed":e?"added":"removed"}function jot({otherVersionExists:e,status:t,isNewer:n}){if(!e&&n)return"added";if(t==="changed"&&n)return"changed"}function yNs({datasetId:e,versionA:t,versionB:n,allItems:r,itemsAMap:s,itemsBMap:o}){const{Link:i}=fn(),l=t>n;return a.jsx(Dp,{children:a.jsx(Dp.Scroller,{children:a.jsx(Dp.Items,{children:r.map(({id:c})=>{const u=s.get(c),d=o.get(c),f=vNs(u,d),h=jot({otherVersionExists:d!==void 0,status:f,isNewer:l}),p=jot({otherVersionExists:u!==void 0,status:f,isNewer:!l});return a.jsxs(Dp.Row,{columns:gNs,children:[a.jsx(Dp.IdCell,{id:c,isShortened:!1}),f!=="same"?a.jsxs(a.Fragment,{children:[u?.datasetVersion?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:h?L7[h].tooltip:void 0,children:a.jsx(nce,{variant:h,version:u.datasetVersion})}):a.jsx(Dp.Cell,{className:"flex items-center justify-center",children:a.jsx(tce,{red:l,tooltip:l?"Deleted in this version":"Not present in this version"})}),d?.datasetVersion?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"gap-2",tooltip:p?L7[p].tooltip:void 0,children:a.jsx(nce,{variant:p,version:d.datasetVersion})}):a.jsx(Dp.Cell,{className:"flex items-center justify-center",children:a.jsx(tce,{red:!l,tooltip:l?"Not present in this version":"Deleted in this version"})})]}):a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}`,className:"col-span-2 gap-2",tooltip:L7.same.tooltip,children:a.jsx(nce,{variant:"same",version:d?.datasetVersion})}),f==="changed"?a.jsx(Dp.LinkCell,{LinkComponent:i,href:`/datasets/${e}/items/${c}/versions?version=${u?.datasetVersion}&compare=${d?.datasetVersion}`,children:"Compare"}):a.jsx(Dp.Cell,{children:a.jsx(tce,{tooltip:"Comparing is available only for changed items"})})]},c)})})})})}const mC="targetType",yS="targetId";function FXt({resetParams:e=[]}={}){const[t,n]=oo(),r=e.join(","),s=t.get(mC),o=VX(s)?s:"",i=o?t.get(yS)??"":"",l=g.useCallback(d=>{n(f=>{const h=new URLSearchParams(f);d?h.set(mC,d):h.delete(mC),h.delete(yS);for(const p of r.split(","))p&&h.delete(p);return h},{replace:!0})},[n,r]),c=g.useCallback(d=>{n(f=>{const h=new URLSearchParams(f);d?h.set(yS,d):h.delete(yS);for(const p of r.split(","))p&&h.delete(p);return h},{replace:!0})},[n,r]),u=g.useCallback(()=>l(""),[l]);return{targetType:o,targetId:i,setTargetType:l,setTargetId:c,clear:u}}const G$=[Br("/datasets")],bNs=["name","updatedAt"];function xNs(){const[e,t]=oo(),{sort:n,onSortChange:r}=ck({searchParams:e,setSearchParams:t,allowedKeys:bNs}),s=g.useMemo(()=>n?{field:n.key,direction:n.direction==="asc"?"ASC":"DESC"}:void 0,[n]),[o,i]=g.useState(""),[l,c]=g.useState("all"),[u,d]=g.useState("all"),{targetType:f,targetId:h,setTargetType:p,setTargetId:m,clear:y}=FXt(),{data:v=[],isLoading:b,error:x,isFetchingNextPage:w,hasNextPage:k,setEndOfListElement:C}=v6n({targetType:f,targetId:h},s),{data:_,isLoading:T,error:E}=BX(),I=g.useMemo(()=>_?.experiments??[],[_?.experiments]),N=g.useMemo(()=>pTs(v),[v]),A=b||T,P=x||E,F=Ur(),L=()=>{F("/datasets/new")},q=a.jsx(hK,{href:"/datasets/new",tooltip:"Create a dataset",children:"New dataset"});if(P&&Ss(P))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(Us,{variant:"fill"})]});if(P&&Ts(P))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(P)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load datasets",descriptionSlot:P.message})]});if(v.length===0&&!A&&!f)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),headerActions:q,children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(mTs,{onCreateClick:L})]});const V=l!=="all"||u!=="all"||o!==""||f!=="",H=()=>{i(""),c("all"),d("all"),y()};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G$}),headerActions:q,actionRow:a.jsx(kTs,{search:o,onSearchChange:i,experimentFilter:l,onExperimentFilterChange:c,tagFilter:u,onTagFilterChange:d,tagOptions:N,targetType:f,onTargetTypeChange:p,targetId:h,onTargetIdChange:m,onReset:H,hasActiveFilters:V}),children:[a.jsx("h1",{className:"sr-only",children:"Datasets"}),a.jsx(fTs,{datasets:v,experiments:I,isLoading:A,search:o,experimentFilter:l,tagFilter:u,isFetchingNextPage:w,hasNextPage:k,setEndOfListElement:C,sort:n,onSortChange:r})]})}function wNs(e){if(!(e instanceof Error))return null;const t=e.message.match(/- ({.*})$/);if(!t)return null;try{const n=JSON.parse(t[1]);if(n.field&&Array.isArray(n.errors))return{field:n.field,errors:n.errors}}catch{}return null}function SNs({item:e,itemId:t,fallback:n,onClose:r,...s}){const o=e?.id??t;return a.jsx(At,{open:!!o,onClose:r,title:`Dataset item ${o??""}`,children:e?a.jsx(kNs,{item:e,onClose:r,...s},e.id):t?a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:r,tooltip:"Close detail panel"}),a.jsxs(At.Heading,{children:["Item",a.jsx(At.CopyId,{id:t})]})]}),n]}):null})}function kNs({datasetId:e,item:t,items:n,onItemChange:r,onClose:s}){const{Link:o}=fn(),{updateItem:i,deleteItem:l}=dl(),[c,u]=g.useState(!1),[d,f]=g.useState(""),[h,p]=g.useState(""),[m,y]=g.useState(""),[v,b]=g.useState(""),[x,w]=g.useState(""),[k,C]=g.useState(t.scorerIds!==void 0),[_,T]=g.useState(t.scorerIds??[]),[E,I]=g.useState(""),[N,A]=g.useState(null),[P,F]=g.useState(!1);g.useEffect(()=>{t&&(f(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),y(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),w(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),C(t.scorerIds!==void 0),T(t.scorerIds??[]),I(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),F(!1),A(null))},[t?.id]);const L=n.findIndex(D=>D.id===t.id),q=L>0?()=>r(n[L-1].id):void 0,V=L>=0&&L<n.length-1?()=>r(n[L+1].id):void 0,H=async()=>{let D;try{D=JSON.parse(d)}catch{Ye.error("Input must be valid JSON");return}let R;if(h.trim())try{R=JSON.parse(h)}catch{Ye.error("Ground Truth must be valid JSON");return}let M;if(m.trim())try{M=JSON.parse(m)}catch{Ye.error("Metadata must be valid JSON");return}let U=null;if(v.trim())try{U=JSON.parse(v)}catch{Ye.error("Expected Trajectory must be valid JSON");return}let Q;if(x.trim())try{const te=JSON.parse(x);if(!Array.isArray(te)){Ye.error("Tool Mocks must be a JSON array");return}Q=te}catch{Ye.error("Tool Mocks must be valid JSON");return}else Q=[];let ee;if(E.trim())try{ee=JSON.parse(E)}catch{Ye.error("Request Context must be valid JSON");return}let X;k?X=_:t.scorerIds!==void 0&&(X=null);try{const te=await i.mutateAsync({datasetId:e,itemId:t.id,input:D,groundTruth:R,metadata:M,expectedTrajectory:U,toolMocks:Q,scorerIds:X,requestContext:ee});Ye.success("Item updated successfully"),C(te.scorerIds!==void 0),T(te.scorerIds??[]),u(!1),A(null)}catch(te){const ne=wNs(te);ne?A(ne):Ye.error(`Failed to update item: ${te instanceof Error?te.message:"Unknown error"}`)}},B=()=>{f(JSON.stringify(t.input,null,2)),p(t.groundTruth?JSON.stringify(t.groundTruth,null,2):""),y(t.metadata?JSON.stringify(t.metadata,null,2):""),b(t.expectedTrajectory?JSON.stringify(t.expectedTrajectory,null,2):""),w(t.toolMocks?.length?JSON.stringify(t.toolMocks,null,2):""),C(t.scorerIds!==void 0),T(t.scorerIds??[]),I(t.requestContext?JSON.stringify(t.requestContext,null,2):""),u(!1),A(null)},W=D=>{f(D),N?.field==="input"&&A(null)},z=D=>{p(D),N?.field==="groundTruth"&&A(null)},Y=async()=>{try{await l.mutateAsync({datasetId:e,itemId:t.id}),Ye.success("Item deleted successfully"),F(!1),s()}catch(D){Ye.error(`Failed to delete item: ${D instanceof Error?D.message:"Unknown error"}`)}};return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close detail panel"}),a.jsxs(At.Heading,{children:["Item",a.jsx(At.CopyId,{id:t.id})]}),a.jsxs(At.HeaderActions,{children:[!c&&a.jsxs(a.Fragment,{children:[a.jsx(le,{render:a.jsx(o,{href:`/datasets/${e}/items/${t.id}/versions?version=${t.datasetVersion}`}),size:"sm",variant:"ghost",tooltip:"Go to item versions history","aria-label":"Go to item versions history",children:a.jsx(aCe,{})}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"sm",variant:"ghost",tooltip:"Open actions menu","aria-label":"Open actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",className:"w-48",children:[a.jsxs(ht.Item,{onSelect:()=>u(!0),children:[a.jsx(qd,{}),"Edit"]}),a.jsxs(ht.Item,{onSelect:()=>F(!0),className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{}),"Delete Item"]})]})]})]}),a.jsx(At.NextPrevNav,{onPrevious:q,onNext:V,previousLabel:"Go to previous item",nextLabel:"Go to next item"})]})]}),a.jsx(At.Content,{children:c?a.jsx(Ajs,{inputValue:d,setInputValue:W,groundTruthValue:h,setGroundTruthValue:z,metadataValue:m,setMetadataValue:y,trajectoryValue:v,setTrajectoryValue:b,toolMocksValue:x,setToolMocksValue:w,scorerOverrideEnabled:k,setScorerOverrideEnabled:C,selectedScorerIds:_,setSelectedScorerIds:T,requestContextValue:E,setRequestContextValue:I,validationErrors:N,onSave:H,onCancel:B,isSaving:i.isPending}):a.jsx(ZSe,{item:t})}),a.jsx(Pt,{open:P,onOpenChange:F,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Item"}),a.jsx(Pt.Description,{children:"Are you sure you want to delete this item? This action cannot be undone."})]}),a.jsxs(Pt.Footer,{children:[a.jsx(Pt.Cancel,{children:"Cancel"}),a.jsx(Pt.Action,{onClick:Y,children:l.isPending?"Deleting...":"Yes, Delete"})]})]})})]})}function ONs(){const{datasetId:e,items:t,isLoadingItems:n,currentItemId:r,openItem:s,close:o}=AXt(),i=g.useMemo(()=>r?t.find(d=>d.id===r):void 0,[t,r]),{data:l,isLoading:c}=IKt(i?"":e,!i&&r?r:""),u=i??l??void 0;return a.jsx(SNs,{datasetId:e,item:u,itemId:r,fallback:n||c?a.jsx(At.LoadingData,{}):a.jsxs(At.NoData,{children:['No loaded item "',r,'".']}),items:t,onItemChange:s,onClose:o})}function Q8({crumbs:e,children:t}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:e}),children:[a.jsx("h1",{className:"sr-only",children:"Dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:t})]})}function CNs(){const{datasetId:e,itemId:t}=hr(),n=[Br("/datasets"),{...DG,to:`/datasets/${encodeURIComponent(e)}`},...t?[{id:"dataset-items",label:"Items"},{id:"dataset-item",label:j_e(t)}]:[]],r=Ur(),[s,o]=oo(),{activeVersion:i,handleVersionChange:l}=JMe(s,o),[c,u]=g.useState(!1),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,y]=g.useState(!1),{data:v,error:b,isLoading:x}=pv(e),{data:w=[],isLoading:k}=YI(e,void 0,i),C=!k&&w.length===0;if(x)return null;if(b&&Ss(b))return a.jsx(Q8,{crumbs:n,children:a.jsx(Us,{})});if(b&&Ts(b))return a.jsx(Q8,{crumbs:n,children:a.jsx(As,{resource:"datasets"})});if(b&&AA(b)||!x&&!b&&!v)return a.jsx(Q8,{crumbs:n,children:a.jsx(dn,{titleSlot:"Dataset not found",descriptionSlot:`No dataset with id "${e}".`,actionSlot:a.jsx(le,{render:a.jsx(vl,{to:"/datasets"}),icon:a.jsx(Eu,{}),children:"Back to Datasets"})})});if(b)return a.jsx(Q8,{crumbs:n,children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load dataset",descriptionSlot:b instanceof Error?b.message:"An unexpected error occurred. Please try again."})});const _=E=>{r(`/experiments/${E}`)},T=()=>{r("/datasets")};return a.jsxs(Cjs,{datasetId:e,items:w,isLoadingItems:k,children:[a.jsxs("div",{className:"h-full",children:[a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{children:a.jsx(Ejs,{datasetId:e,onAddItemClick:()=>f(!0),belowToolbarSlot:a.jsx(Tjs,{datasetId:e}),leftSlot:a.jsx("span",{className:"mr-3 text-caption whitespace-nowrap text-muted-foreground",children:v?.createdAt?`Created ${Rr(new Date(v.createdAt),"MMM d")}`:""}),rightSlot:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(le,{render:a.jsx(vl,{to:`/experiments?dataset=${e}`}),icon:a.jsx(sG,{}),children:"View experiments"}),a.jsx(jXt,{datasetId:e,value:i,onValueChange:l,currentVersion:v?.version,className:"w-36"}),C?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"cursor-not-allowed",children:a.jsx("div",{className:"pointer-events-none opacity-50",inert:!0,"aria-disabled":"true",children:a.jsx(le,{variant:"primary",icon:a.jsx(xu,{}),children:"Run Experiment"})})})}),a.jsx(Cn,{children:"Add items to the dataset before running an experiment"})]}):a.jsx(le,{variant:"primary",onClick:()=>u(!0),icon:a.jsx(xu,{}),children:"Run Experiment"}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Dataset actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",className:"w-48",children:[a.jsxs(ht.Item,{onSelect:()=>{r(`/datasets/${e}/edit`)},children:[a.jsx(qd,{})," Edit Dataset"]}),a.jsxs(ht.Item,{onSelect:()=>y(!0),children:[a.jsx(ed,{})," Duplicate Dataset"]}),a.jsxs(ht.Item,{onSelect:()=>p(!0),className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{})," Delete Dataset"]})]})]})]})})})]}),a.jsx(ONs,{})]}),a.jsx(HX,{initialDatasetId:e,initialDatasetVersion:i??void 0,open:c,onOpenChange:u,onSuccess:_},`${e}:${i??"latest"}`),a.jsx(Njs,{datasetId:e,open:d,onOpenChange:f}),v&&a.jsx(zTs,{open:m,onOpenChange:y,sourceDatasetId:v.id,sourceDatasetName:v.name,sourceDatasetDescription:v.description,sourceDatasetTargetType:v.targetType}),v&&a.jsx(qTs,{open:h,onOpenChange:p,datasetId:v.id,datasetName:v.name,onSuccess:T})]})}const zXt=[Br("/datasets"),DG,{id:"dataset-edit",label:"Edit dataset"}];function rce({children:e}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:zXt}),children:[a.jsx("h1",{className:"sr-only",children:"Edit dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:e})]})}function _Ns(){const{datasetId:e}=hr(),t=Ur(),{data:n,error:r,isLoading:s}=pv(e),o=()=>{t(`/datasets/${e}`)};return s?null:r&&Ss(r)?a.jsx(rce,{children:a.jsx(Us,{})}):r&&Ts(r)?a.jsx(rce,{children:a.jsx(As,{resource:"datasets"})}):r||!n?a.jsx(rce,{children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load dataset",descriptionSlot:r instanceof Error?r.message:"An unexpected error occurred. Please try again."})}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:zXt}),children:[a.jsx("h1",{className:"sr-only",children:"Edit dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-4 py-5",children:[a.jsx(Rh,{className:"mb-6 p-0",children:a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(Jg,{})," Edit dataset"]}),a.jsx(Rh.Description,{children:n.name})]})}),a.jsx(Ou,{className:"p-4",children:a.jsx(VTs,{dataset:{id:n.id,name:n.name,description:n.description||"",inputSchema:n.inputSchema,groundTruthSchema:n.groundTruthSchema,requestContextSchema:n.requestContextSchema,scorerIds:n.scorerIds},onSuccess:o,onCancel:o})})]})})]})}function Not(e,t){return{id:e.id,datasetId:t,datasetVersion:e.datasetVersion,input:e.input,groundTruth:e.groundTruth,expectedTrajectory:e.expectedTrajectory,toolMocks:e.toolMocks,scorerIds:e.scorerIds,requestContext:e.requestContext,metadata:e.metadata,createdAt:e.createdAt,updatedAt:e.updatedAt}}function Iot(e,t){return e.map(n=>{const r=typeof n.updatedAt=="string"?new Date(n.updatedAt):n.updatedAt;return{value:String(n.datasetVersion),label:a.jsxs("span",{className:"flex w-full items-center gap-2",children:[a.jsxs("span",{children:[a.jsxs("b",{children:["v. ",n.datasetVersion]})," · ",Rr(r,"MMM d, HH:mm")]}),n.isLatest?a.jsx($t,{variant:"blue",size:"xs",className:"ml-auto",children:"Latest"}):null]}),disabled:t?.has(n.datasetVersion)??!1}})}function Aot(e){const t=Number(e);return e!=null&&Number.isFinite(t)&&t>0?t:null}function ENs(){const{datasetId:e,itemId:t}=hr(),[n,r]=oo(),s=[Br("/datasets"),DG,{id:"dataset-item",label:j_e(t),to:e&&t?`/datasets/${encodeURIComponent(e)}/items/${encodeURIComponent(t)}`:void 0},{id:"dataset-item-versions",label:"Item Version History"}],o=Aot(n.get("version")),i=Aot(n.get("compare")),l=n.get("view")==="diff",{data:c,error:u}=pv(e??""),{data:d,isLoading:f}=ZEs(e??"",t??""),h=(o!=null?d?.find(T=>T.datasetVersion===o):void 0)??d?.[0],p=h?.datasetVersion??null,m=i!=null&&i!==p?i:null,{data:y,isLoading:v}=GEs(e??"",t??"",m??0,c?.version),b=(T,E)=>r(I=>{const N=new URLSearchParams(I);return E==null?N.delete(T):N.set(T,String(E)),N},{replace:!0});if(u&&Ss(u))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx(Us,{variant:"fill"})]});if(u&&Ts(u))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(!e||!t)return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsx("div",{className:"py-5 text-center text-muted-foreground",children:a.jsx("p",{children:"Item not found."})})})]});const x=!!(h&&y),w=l&&x,k=h?Not(h,e):null,C=y?Not(y,e):null,_=(h?.datasetVersion??0)<(y?.datasetVersion??0);return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:s}),headerActions:x&&a.jsx(le,{variant:"ghost",size:"sm",onClick:()=>b("view",l?null:"diff"),children:l?a.jsxs(a.Fragment,{children:[a.jsx(YOe,{})," Default View"]}):a.jsxs(a.Fragment,{children:[a.jsx(mMn,{})," Diff View"]})}),children:[a.jsx("h1",{className:"sr-only",children:"Item Version History"}),a.jsxs("div",{className:"grid min-h-0 grid-cols-1 gap-4 md:grid-cols-2",children:[a.jsxs(Ou,{className:"grid min-h-0 grid-rows-[auto_1fr] overflow-hidden",children:[a.jsx(Aq,{children:a.jsx(Rot,{name:"version",value:p!=null?String(p):"",options:Iot(d??[],m!=null?new Set([m]):void 0),onValueChange:T=>b("version",Number(T))})}),a.jsx(ov,{className:"grid content-start gap-5 overflow-y-auto",children:f?a.jsx("div",{className:"text-body text-muted-foreground",children:"Loading..."}):k?a.jsx(ZSe,{item:k,diff:w&&C?{against:C,side:_?"a":"b"}:void 0}):a.jsx("div",{className:"text-body text-muted-foreground",children:"Item data not available"})})]}),a.jsxs(Ou,{className:"grid min-h-0 grid-rows-[auto_1fr] overflow-hidden",children:[a.jsx(Aq,{children:a.jsx(Rot,{name:"compare",value:m!=null?String(m):"",placeholder:"Select a version to compare",options:Iot(d??[],p!=null?new Set([p]):void 0),onValueChange:T=>b("compare",Number(T))})}),a.jsx(ov,{className:"grid content-start gap-5 overflow-y-auto",children:m==null?a.jsx(dn,{className:"h-full",titleSlot:"No version selected",descriptionSlot:"Pick a version above to compare it with the one on the left."}):v?a.jsx("div",{className:"text-body text-muted-foreground",children:"Loading..."}):C?a.jsx(ZSe,{item:C,diff:w&&k?{against:k,side:_?"b":"a"}:void 0}):a.jsxs("div",{className:"text-body text-muted-foreground",children:["Version ",m," not found"]})})]})]})]})}function Rot({name:e,value:t,options:n,placeholder:r="Select version",onValueChange:s}){return a.jsxs("div",{className:"grid grid-cols-[auto_1fr] items-center gap-4",children:[a.jsx(aCe,{className:"size-4 opacity-50"}),a.jsxs($o,{name:e,value:t,onValueChange:s,children:[a.jsx(Do,{"aria-label":e==="compare"?"Compare version":"Version",className:"w-full",children:a.jsx(Mo,{placeholder:r,className:"flex-1"})}),a.jsx(Lo,{children:n.map(o=>a.jsx(Hr,{value:o.value,disabled:o.disabled,children:o.label},o.value))})]})]})}const Y8=[Br("/datasets"),DG,{id:"dataset-versions",label:"Versions"}];function TNs(){const{datasetId:e}=hr(),[t]=oo(),n=t.get("ids")?.split(",").map(Number).filter(m=>!isNaN(m)&&m>0)??[],r=Ur(),{data:s,error:o}=pv(e??""),i=YI(e??"",void 0,n[0]??null),l=YI(e??"",void 0,n[1]??null),c=g.useMemo(()=>i.data??[],[i.data]),u=g.useMemo(()=>l.data??[],[l.data]),d=g.useMemo(()=>{const m=new Map;for(const y of[...c,...u])m.has(y.id)||m.set(y.id,{id:y.id,createdAt:new Date(y.createdAt)});return[...m.values()].sort((y,v)=>v.createdAt.getTime()-y.createdAt.getTime())},[c,u]),f=g.useMemo(()=>new Map(c.map(m=>[m.id,m])),[c]),h=g.useMemo(()=>new Map(u.map(m=>[m.id,m])),[u]);if(o&&Ss(o))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx(Us,{variant:"fill"})]});if(o&&Ts(o))return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(!e||n.length<2)return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsx("div",{className:"py-5 text-center text-muted-foreground",children:a.jsx("p",{children:"Select at least two versions to compare."})})})]});const p=(m,y)=>{r(`/datasets/${e}/versions?ids=${m},${y}`,{replace:!0})};return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:Y8}),children:[a.jsx("h1",{className:"sr-only",children:"Versions"}),a.jsx("div",{className:"h-full overflow-hidden px-[3vw] pb-4",children:a.jsxs("div",{className:"mx-auto grid h-full max-w-[140rem] grid-rows-[auto_1fr] gap-4",children:[a.jsxs(Rh,{children:[a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(yDn,{})," Compare Dataset Versions"]}),a.jsx(Rh.Description,{children:a.jsxs(Md,{children:[a.jsx(aCe,{})," Comparing ",n.length," versions of"," ",s?.name||e?.slice(0,8)]})})]}),a.jsx(Rh.Column,{children:a.jsx(le,{render:a.jsx(vl,{to:`/datasets/${e}`}),icon:a.jsx(Eu,{}),children:"Back to Dataset"})})]}),a.jsx(Gjs,{children:a.jsxs(DXt,{children:[a.jsx(Kjs,{datasetId:e,versionA:String(n[0]),versionB:String(n[1]),onVersionChange:p}),a.jsx(yNs,{datasetId:e,versionA:n[0],versionB:n[1],allItems:d,itemsAMap:f,itemsBMap:h})]})})]})})]})}const jNs=[Br("/datasets"),{id:"dataset-new",label:"Create new dataset"}];function NNs(){const e=Ur(),[t]=oo(),n=t.get("targetType"),r=VX(n)?n:void 0,s=t.get("targetIds"),o=r&&s?s.split(",").map(l=>l.trim()).filter(Boolean):void 0,i=l=>{e(`/datasets/${l}`)};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:jNs}),children:[a.jsx("h1",{className:"sr-only",children:"Create new dataset"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsxs("div",{className:"w-full max-w-2xl overflow-y-auto px-4 py-5",children:[a.jsx(Rh,{className:"mb-6 p-0",children:a.jsxs(Rh.Column,{children:[a.jsxs(Rh.Title,{children:[a.jsx(Jg,{})," Create new dataset"]}),a.jsx(Rh.Description,{children:"Datasets group test cases used to evaluate your agents and workflows."})]})}),a.jsx(Ou,{className:"p-4",children:a.jsx($Ts,{targetType:r,targetIds:o,onSuccess:i,onCancel:()=>{e(-1)}})})]})})]})}const INs={default:BOe,inset:Z(sr,"*:bg-background! *:shadow-rim!")};function BXt({children:e,variant:t="default",minItemWidth:n="16rem",className:r}){const s={"--metrics-card-group-basis":`min(100%, ${n})`};return a.jsx("div",{style:s,className:Z("flex flex-wrap gap-1 rounded-xl p-1 *:min-w-0! *:flex-1 *:basis-(--metrics-card-group-basis)",INs[t],r),children:e})}function ANs(e){if(!e||e.length<2)return null;const t=[...e].sort((i,l)=>new Date(i.createdAt).getTime()-new Date(l.createdAt).getTime()),n=Math.floor(t.length/2),r=n,s=t.length-n;if(r===0)return null;const o=(s-r)/r*100;return{changePct:Math.round(o*10)/10,prevValue:String(r)}}function RNs({scorers:e,datasets:t,experiments:n,avgScore:r,prevAvgScore:s,totalNeedsReview:o,isLoadingScorers:i,isLoadingDatasets:l,isLoadingExperiments:c,isLoadingScores:u,isLoadingReview:d}){const f=e?Object.keys(e).length:void 0,h=t?.length,p=n?.length,m=r!=null&&s!=null&&s!==0?{changePct:Math.round((r-s)/s*100*10)/10,prevValue:String(s)}:null,y=ANs(n);return a.jsxs(a.Fragment,{children:[a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Scorers"}),i?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):f!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(f)}),a.jsx(er.NoChange,{message:"Static count"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Datasets"}),l?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):h!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(h)}),a.jsx(er.NoChange,{message:"Static count"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Avg Score"}),u?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):r!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(r)}),m?a.jsx(er.Change,{changePct:m.changePct,prevValue:m.prevValue}):a.jsx(er.NoChange,{})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Total Experiments"}),c?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):p!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(p)}),y?a.jsx(er.Change,{changePct:y.changePct,prevValue:y.prevValue}):a.jsx(er.NoChange,{})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]}),a.jsxs(er,{children:[a.jsx(er.Label,{children:"Needs Review"}),d?a.jsx(er.ValueRow,{children:a.jsx(er.Loading,{})}):o!=null?a.jsxs(er.ValueRow,{children:[a.jsx(er.Value,{children:String(o)}),o>0?a.jsx(er.NoChange,{message:"items pending review"}):a.jsx(er.NoChange,{message:"All caught up"})]}):a.jsx(er.ValueRow,{children:a.jsx(er.NoData,{})})]})]})}function UXt({open:e,onOpenChange:t,experimentId:n,experimentName:r,onSuccess:s}){const{deleteExperiment:o}=dl(),i=async()=>{try{await o.mutateAsync(n),Ye.success("Experiment deleted successfully"),t(!1),s?.()}catch(l){Ye.error(`Failed to delete experiment: ${l instanceof Error?l.message:"Unknown error"}`)}};return a.jsx(Pt,{open:e,onOpenChange:t,children:a.jsxs(Pt.Content,{children:[a.jsxs(Pt.Header,{children:[a.jsx(Pt.Title,{children:"Delete Experiment"}),a.jsxs(Pt.Description,{children:['Are you sure you want to delete "',r||n,'"? This will permanently delete the experiment, all its results, and the traces it produced, including their spans and any scores, feedback, metrics and logs attached to those traces. This action cannot be undone.']})]}),a.jsxs(Pt.Footer,{children:[a.jsx(le,{icon:a.jsx(Ri,{}),variant:"primary",size:"lg",onClick:i,disabled:o.isPending,children:o.isPending?"Deleting...":"Delete"}),a.jsx(Pt.Cancel,{children:"Cancel"})]})]})})}const PNs="minmax(9rem,1fr)",$Ns="minmax(8rem,16rem)",MNs="1fr",DNs="auto auto auto auto auto auto auto",Uv={experiment:"Experiment",description:"Description",dataset:"Dataset",target:"Target",status:"Status",items:"Items",succeeded:"Processed",failed:"Errored",review:"Review",date:"Date"},LNs={completed:"neutral",running:"yellow",failed:"red",pending:"neutral"},FNs={completed:"Run completed",running:"Run in progress",failed:"Run failed",pending:"Run queued"};function zNs(e){return e?(typeof e=="string"?new Date(e):e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"—"}function VXt(e){const t=h0(e.id)??e.id;return e.name||`Experiment #${t}`}const BNs=60;function UNs({experiment:e}){return a.jsx("span",{className:"block min-w-0 truncate text-left text-muted-foreground",children:VXt(e)})}function VNs({experiment:e}){const t=e.description;if(!t)return a.jsx("span",{className:"text-placeholder",children:"—"});const n=a.jsx("span",{className:"block min-w-0 truncate text-left text-muted-foreground",children:t});return t.length<=BNs?n:a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:n}),a.jsx(Cn,{children:t})]})}function qXt(){const{data:e}=nf(),{data:t}=lp(),{data:n}=Gf(),{data:r}=Y_();return{agents:e,workflows:t,scorers:n,processors:r}}const HXt={agent:Mi,workflow:xl,scorer:db,processor:xO},WXt={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},qNs="External (caller-run)";function ZXt(e,{agents:t,workflows:n,scorers:r,processors:s}){const{targetType:o,targetId:i}=e;if(!i)return qNs;switch(o){case"agent":return t?.[i]?.name??i;case"workflow":return n?.[i]?.name??i;case"scorer":return r?.[i]?.scorer?.config?.name??i;case"processor":return s?.[i]?.name??i;default:return i}}function HNs({experiment:e,datasetName:t,review:n}){const r=e.status??"pending",s=e.succeededCount??0,o=e.failedCount??0,i=e.totalItems??0;return a.jsxs(a.Fragment,{children:[a.jsx(xe.Cell,{children:a.jsx(UNs,{experiment:e})}),a.jsx(xe.Cell,{children:a.jsx(VNs,{experiment:e})}),t!==void 0&&a.jsx(xe.TextCell,{children:t}),a.jsx(xe.Cell,{children:a.jsx(WNs,{experiment:e})}),a.jsx(xe.Cell,{children:a.jsx($t,{variant:LNs[r]??"neutral",indicator:"dot",children:FNs[r]??r})}),a.jsx(xe.TextCell,{className:"text-center",children:i}),a.jsx(xe.TextCell,{className:"text-center",children:s}),a.jsx(xe.TextCell,{className:"text-center",children:a.jsx("span",{className:o>0?"text-accent2":"",children:o})}),a.jsx(xe.Cell,{className:"text-center",children:a.jsx(ZNs,{review:n})}),a.jsx(xe.TextCell,{children:zNs(e.createdAt)})]})}function WNs({experiment:e}){const t=qXt(),n=ZXt(e,t),r=e.targetId?e.targetType:null,s=r?HXt[r]:null;return a.jsxs("span",{className:"flex min-w-0 items-center gap-1.5 [&_svg]:size-3.5 [&_svg]:shrink-0",children:[s&&a.jsx("span",{className:"flex text-muted-foreground",role:"img","aria-label":WXt[r],children:a.jsx(s,{})}),a.jsx("span",{className:r?"truncate":"truncate text-placeholder",children:n})]})}function ZNs({review:e}){if(!e)return a.jsx("span",{className:"text-placeholder",children:"—"});const t=e.needsReview+e.complete;return t===0?a.jsx("span",{className:"text-placeholder",children:"—"}):e.needsReview>0?a.jsxs($t,{size:"xs",variant:"yellow",children:[e.needsReview," pending"]}):a.jsxs($t,{size:"xs",variant:"green",children:[e.complete,"/",t," reviewed"]})}const GXt=`${PNs} ${$Ns} ${MNs} ${DNs}`,Pot=`${GXt} auto`,GNs=[{label:Uv.experiment},{label:Uv.description},{label:Uv.dataset},{label:Uv.target},{label:Uv.status,sortKey:"status"},{label:Uv.items,className:"text-center"},{label:Uv.succeeded,className:"text-center"},{label:Uv.failed,className:"text-center"},{label:Uv.review,className:"text-center"},{label:Uv.date,sortKey:"createdAt"}],QXt=e=>e.stopPropagation();function QNs({experiment:e,rowProps:t,onSelect:n,featured:r,onDelete:s,children:o}){const{paths:i,Link:l}=fn(),c=g.useRef(null);return a.jsxs(xe.RowWrapper,{...t,onSelectRow:n??(()=>c.current?.click()),children:[n?a.jsx(xe.RowButton,{colEnd:-2,featured:r,tabIndex:-1,onClick:u=>{u.stopPropagation(),n()},children:o}):a.jsx(xe.RowLink,{ref:c,colEnd:-2,to:i.experimentLink(e.id),LinkComponent:l,tabIndex:-1,onClick:QXt,children:o}),a.jsx(xe.ActionsCell,{className:"pl-2",children:a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"Delete experiment","aria-label":`Delete experiment ${e.name??e.id}`,onClick:u=>{u.stopPropagation(),s()},children:a.jsx(Ri,{className:"size-4"})})})]})}function YNs({experiments:e,datasets:t,reviewByExperiment:n,isLoading:r,search:s="",statusFilter:o="all",datasetFilter:i="all",selection:l,onSelectExperiment:c,selectedExperimentId:u,keyboardGlobal:d=!0,isFetchingNextPage:f,hasNextPage:h,setEndOfListElement:p,sort:m,onSortChange:y}){const v=l!==void 0,b=g.useMemo(()=>{const N=new Map;return t?.forEach(A=>N.set(A.id,A.name)),N},[t]),x=g.useMemo(()=>m?e:[...e].sort((N,A)=>{const P=N.createdAt?new Date(N.createdAt).getTime():0;return(A.createdAt?new Date(A.createdAt).getTime():0)-P}),[e,m]),w=g.useMemo(()=>{const N=s.toLowerCase();return x.filter(A=>{const P=A.datasetId?b.get(A.datasetId)??"":"",F=!N||A.id.toLowerCase().includes(N)||(A.name??"").toLowerCase().includes(N)||P.toLowerCase().includes(N)||(A.targetId??"").toLowerCase().includes(N),L=o==="all"||A.status===o,q=i==="all"||A.datasetId===i;return F&&L&&q})},[x,s,b,o,i]),{containerRef:k,getRowProps:C}=Uc({count:w.length,global:d}),[_,T]=g.useState(null);if(r)return a.jsx(hc,{columns:Pot});const E=v?`auto ${GXt}`:Pot,I=GNs.map(N=>N.sortKey&&y?a.jsx(xe.SortableTopCell,{className:N.className,sortKey:N.sortKey,sort:m?.key===N.sortKey?m.direction:void 0,onSortChange:y,children:N.label},N.label):a.jsx(xe.TopCell,{className:N.className,children:N.label},N.label));return a.jsxs(xe,{columns:E,scrollRef:k,children:[a.jsx(xe.Top,{hasLeadingCell:v,children:v?a.jsxs(a.Fragment,{children:[a.jsx(xe.TopCell,{children:" "}),a.jsx(xe.TopCells,{colStart:2,children:I})]}):a.jsxs(a.Fragment,{children:[I,a.jsx(xe.TopCell,{"aria-hidden":!0,children:null})]})}),w.map((N,A)=>{const P=N.datasetId?b.get(N.datasetId)??h0(N.datasetId)??N.datasetId:"—",F=a.jsx(HNs,{experiment:N,datasetName:P,review:n?.get(N.id)});if(!l)return a.jsx(QNs,{experiment:N,rowProps:C(A),onSelect:c?()=>c(N):void 0,featured:u===N.id,onDelete:()=>T(N),children:F},N.id);const L=l.selectedExperimentIds.includes(N.id),q=()=>l.onToggleSelection(N.id);return a.jsxs(xe.RowWrapper,{...C(A),onSelectRow:q,children:[a.jsx(xe.SelectCell,{checked:L,onToggle:q,"aria-label":`Select experiment ${N.id}`}),a.jsx(xe.RowButton,{colStart:2,featured:L,tabIndex:-1,onClick:QXt,children:F})]},N.id)}),a.jsx(xe.NextPageLoading,{isLoading:f,hasMore:h,setEndOfListElement:p}),_&&a.jsx(UXt,{open:!0,onOpenChange:N=>{N||T(null)},experimentId:_.id,experimentName:_.name??void 0})]})}const KNs=[{value:"all",label:"All statuses"},{value:"completed",label:"Completed"},{value:"running",label:"Running"},{value:"failed",label:"Failed"},{value:"pending",label:"Pending"}];function XNs(e){return[{value:"all",label:"All datasets"},...(e??[]).map(t=>({value:t.id,label:t.name}))]}const K8={completed:WU["muted-foreground"],running:"#facc15",pending:"#fb923c",failed:"#f87171"},JNs=[{label:"Completed",color:K8.completed},{label:"Running",color:K8.running},{label:"Pending",color:K8.pending},{label:"Failed",color:K8.failed}];function eIs({experiments:e,datasets:t,isLoading:n,isError:r}){const{data:s,maxVal:o}=g.useMemo(()=>{if(!e||e.length===0)return{data:[],maxVal:0};const l=new Map;if(t)for(const f of t)l.set(f.id,f.name);const c=new Map;for(const f of e){const h=f.datasetId??"unknown";c.has(h)||c.set(h,{completed:0,running:0,pending:0,failed:0});const p=c.get(h),m=f.status;m in p&&p[m]++}let u=0;return{data:Array.from(c.entries()).map(([f,h])=>{const p=h.completed+h.running+h.pending+h.failed;return p>u&&(u=p),{name:l.get(f)??f.slice(0,12),values:[h.completed,h.running,h.pending,h.failed]}}),maxVal:u}},[e,t]),i=s.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Experiments by Dataset",description:"Experiment status breakdown per dataset."}),i&&a.jsx(Gt.Summary,{value:String(e?.length??0),label:"Total experiments"})]}),n?a.jsx(Gt.Loading,{}):r?a.jsx(Gt.Error,{message:"Failed to load experiments data"}):a.jsx(Gt.Content,{children:i?a.jsx(KI,{data:s,segments:JNs,maxVal:o,fmt:l=>String(l)}):a.jsx(Gt.NoData,{message:"No experiments have been run yet"})})]})}const tIs=({onRunExperiment:e})=>a.jsx(dn,{titleSlot:"No Experiments yet",descriptionSlot:a.jsxs(a.Fragment,{children:["Run an experiment from a dataset to evaluate ",a.jsx("br",{}),"your agents and workflows."]}),actionSlot:a.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e&&a.jsx(le,{variant:"primary",onClick:e,icon:a.jsx(xu,{}),children:"Run Experiment"}),a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/evals/experiments",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Experiments Documentation"})]}),variant:"fill"});function nIs({search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:s,onDatasetFilterChange:o,datasetOptions:i,targetType:l,onTargetTypeChange:c,targetId:u,onTargetIdChange:d,onReset:f,hasActiveFilters:h,onRunClick:p,runTooltip:m="Run an experiment",onCompareClick:y,selection:v}){const b=v?.selectedCount===2&&!v.compareDisabledReason;return a.jsxs(Vn,{children:[a.jsxs(Vn.Start,{children:[a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{label:"Search experiments",placeholder:"Filter by experiment, dataset, or target",value:e,onSearch:t})}),a.jsx(Su,{label:"Status",labelIsHidden:!0,name:"filter-status",options:[...KNs],value:n,onValueChange:r,className:"whitespace-nowrap"}),a.jsx(Su,{label:"Dataset",labelIsHidden:!0,name:"filter-dataset",options:i,value:s,onValueChange:o,className:"whitespace-nowrap"}),a.jsx(OXt,{targetType:l,targetId:u,onTargetTypeChange:c,onTargetIdChange:d}),f&&h&&a.jsx(le,{onClick:f,size:"sm",variant:"default",icon:a.jsx(Qt,{}),children:"Reset"})]}),v?a.jsx(Vn.End,{children:a.jsxs(Bl,{className:"whitespace-nowrap",children:[a.jsxs(zh,{className:"gap-2",children:[a.jsxs($t,{size:"sm",variant:v.selectedCount<2?"red":"green",children:[v.selectedCount," / 2"]}),"selected",v.compareDisabledReason&&a.jsxs("span",{className:"text-accent2",children:["· ",v.compareDisabledReason]})]}),a.jsx(le,{variant:"primary",disabled:!b,onClick:v.onExecuteCompare,icon:a.jsx(j8e,{}),children:"Compare Experiments"}),a.jsx(le,{icon:a.jsx(Qt,{}),onClick:v.onCancelSelection,children:"Cancel"})]})}):a.jsxs(Vn.End,{children:[y&&a.jsx(le,{onClick:y,tooltip:"Select two experiments of the same dataset to compare",icon:a.jsx(j8e,{}),children:"Compare"}),p&&a.jsx(le,{onClick:p,tooltip:m,variant:"primary",icon:a.jsx(xu,{}),children:"Run Experiment"})]})]})}const rIs={present:!1,output:null,metadata:null,comment:null,error:null,startedAt:null,completedAt:null,scores:[]},$ot=e=>e?e instanceof Date?e.toISOString():e:null,Mot=e=>{const t=new Map;for(const n of e??[])t.set(n.itemId,n);return t},Dot=(e,t,n)=>{if(!e)return rIs;const r=new Map;for(const s of n??[])r.set(s.scorerId,s.reason??null);return{present:!0,output:e.output,metadata:t?.metadata??null,comment:t?.comment??null,error:t?.error??null,startedAt:$ot(t?.startedAt),completedAt:$ot(t?.completedAt),scores:Object.entries(e.scores).map(([s,o])=>({scorerId:s,value:o,reason:r.get(s)??null})).sort((s,o)=>s.scorerId.localeCompare(o.scorerId))}},sIs=({comparison:e,baselineId:t,contenderId:n,baselineResults:r,contenderResults:s,baselineScores:o,contenderScores:i})=>{if(!e)return[];const l=Mot(r),c=Mot(s);return e.items.map(u=>{const d=Dot(u.results[t],l.get(u.itemId),o?.[u.itemId]),f=Dot(u.results[n],c.get(u.itemId),i?.[u.itemId]),h={};for(const p of new Set([...d.scores,...f.scores].map(m=>m.scorerId))){const m=d.scores.find(v=>v.scorerId===p)?.value??null,y=f.scores.find(v=>v.scorerId===p)?.value??null;h[p]=m!=null&&y!=null?y-m:null}return{itemId:u.itemId,input:u.input,groundTruth:u.groundTruth,baseline:d,contender:f,deltas:h}})};function CO({title:e,actions:t,tone:n="default",defaultOpen:r=!0,children:s}){return a.jsxs(Za,{defaultOpen:r,className:"grid gap-2",children:[a.jsxs("div",{className:"flex min-h-6 items-center justify-between gap-2",children:[a.jsxs(Ta,{className:Z("flex items-center gap-1.5 text-subheading [&>svg]:size-4",n==="negative"?"text-negative1":"text-foreground"),children:[a.jsx(xr,{}),e]}),t]}),a.jsx(ja,{role:"region","aria-label":e,children:s})]})}function Lot({label:e,value:t}){return t==null?null:a.jsx(CO,{title:e,defaultOpen:!1,children:a.jsx("pre",{className:"max-h-40 overflow-auto rounded-md bg-card p-3 text-caption whitespace-pre-wrap text-muted-foreground",children:typeof t=="string"?t:JSON.stringify(t,null,2)})})}function YXt({delta:e}){const t=e>0?"text-positive1":e<0?"text-negative1":"text-muted-foreground";return a.jsxs("span",{className:Z("inline-flex min-w-20 items-center gap-1 font-mono text-body",t),children:[a.jsx("span",{className:"inline-block w-3",children:e>0?"+":e<0?"-":""}),Math.abs(e).toFixed(2),e>0?a.jsx(WOe,{className:"size-3.5"}):e<0?a.jsx(Hwt,{className:"size-3.5"}):null]})}function KXt({scorerId:e,value:t,delta:n,reason:r}){const{Link:s,paths:o}=fn();return a.jsxs("div",{className:"grid gap-1 rounded-lg bg-background px-3 py-2",children:[a.jsxs("div",{className:"flex items-center justify-between gap-4",children:[a.jsxs(s,{href:o.scorerLink(e),"aria-label":`Open ${e}`,className:"flex min-w-0 items-center gap-1.5 text-subheading text-foreground hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0",children:[a.jsx(db,{}),a.jsx("span",{className:"min-w-0 truncate",children:e})]}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"font-mono text-body text-muted-foreground",children:t!=null?t.toFixed(2):"-"}),n!=null&&a.jsx(YXt,{delta:n})]})]}),r&&a.jsx("p",{className:"text-body text-muted-foreground",children:r})]})}function Fot(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function oIs(e){if(!e.startedAt||!e.completedAt)return null;const t=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return Number.isFinite(t)?`${(t/1e3).toFixed(2)}s`:null}const iIs=Z(sr,"max-h-[30vh] overflow-y-auto rounded-xl p-4 font-mono text-body break-all whitespace-pre-wrap text-muted-foreground");function zot({side:e,row:t,showDeltas:n,isLoading:r}){const s=t[e],o=oIs(s);if(r)return a.jsx("div",{className:"flex h-32 items-center justify-center",children:a.jsx(_n,{})});if(!s.present)return a.jsx("p",{className:"py-5 text-center text-body text-muted-foreground",children:"Not present in this experiment"});const i=Fot(s.output);return a.jsxs("div",{className:"grid content-start gap-5",children:[o&&a.jsxs(In,{children:[a.jsx(On,{render:a.jsxs("p",{className:"flex items-center justify-end gap-1.5 text-body text-muted-foreground [&>svg]:size-3.5",children:[a.jsx(jC,{}),o]})}),a.jsx(Cn,{children:"Run duration"})]}),s.error?a.jsx(CO,{title:"Error",tone:"negative",actions:a.jsx(Co,{content:s.error.message}),children:a.jsx("p",{className:"rounded-xl border border-negative1/40 bg-negative1/5 p-4 text-body break-words text-muted-foreground",children:s.error.message})}):a.jsx(CO,{title:"Output",actions:a.jsx(Co,{content:i}),children:a.jsx("pre",{className:iIs,children:i})}),s.scores.length>0&&a.jsx(CO,{title:"Scores",children:a.jsx("div",{className:"grid gap-2",children:s.scores.map(l=>a.jsx(KXt,{scorerId:l.scorerId,value:l.value,delta:n?t.deltas[l.scorerId]:null,reason:l.reason},l.scorerId))})}),s.comment&&a.jsx(CO,{title:"Comment",defaultOpen:!1,children:a.jsx("p",{className:"text-body text-muted-foreground",children:s.comment})}),s.metadata&&Object.keys(s.metadata).length>0&&a.jsx(CO,{title:"Metadata",defaultOpen:!1,children:a.jsx("dl",{className:"grid gap-1",children:Object.entries(s.metadata).map(([l,c])=>a.jsxs("div",{className:"flex items-start justify-between gap-4 text-body",children:[a.jsx("dt",{className:"text-muted-foreground",children:l}),a.jsx("dd",{className:"font-mono break-all text-foreground",children:Fot(c)})]},l))})})]})}const aIs={baseline:"Baseline",contender:"Contender"},lIs={baseline:"purple",contender:"blue"},cIs="flex min-w-0 items-center gap-1.5 hover:underline [&>svg]:size-3.5 [&>svg]:shrink-0";function Bot({side:e,experiment:t,summary:n,showDeltas:r,versionMismatch:s}){const{Link:o,paths:i}=fn(),l=aIs[e],c=t?h0(t.id)??t.id:null,u=t?.createdAt?new Date(t.createdAt):null,d=n??[];return a.jsxs("div",{className:"grid content-start gap-3",children:[a.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[a.jsx($t,{variant:lIs[e],size:"xs",children:l}),t&&a.jsx(le,{render:a.jsx(o,{href:`/experiments/${t.id}`}),size:"sm","aria-label":`Open experiment ${t.name||c}`,children:a.jsx("span",{className:"min-w-0 truncate",children:t.name||c})})]}),t&&a.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1 text-caption text-muted-foreground",children:[t.name&&a.jsxs(Md,{children:[a.jsx(OA,{})," ",c]}),t.targetType==="agent"&&t.targetId?a.jsxs(o,{href:i.agentLink(t.targetId),className:cIs,children:[a.jsx(Mi,{}),a.jsx("span",{className:"min-w-0 truncate",children:t.targetId})]}):a.jsxs(Md,{children:[a.jsx(TSt,{})," ",t.targetId]}),a.jsx("span",{className:Z(s&&"text-accent6"),children:a.jsxs(Md,{children:[a.jsx(y3,{})," v",t.datasetVersion??"—",s&&" · different dataset version"]})}),u&&a.jsxs(Md,{children:[a.jsx(nV,{})," ",Rr(u,"MMM d, yyyy HH:mm")]})]}),d.length>0&&a.jsx(CO,{title:"Overall score",children:a.jsx("div",{className:"grid gap-2",children:d.map(({scorerId:f,average:h,delta:p})=>a.jsx(KXt,{scorerId:f,value:h,delta:r?p:null},f))})})]})}const DT="min-w-0 px-4 py-3";function uIs({datasetId:e,experimentIdA:t,experimentIdB:n}){const{Link:r,paths:s}=fn(),{data:o,isLoading:i,error:l}=QEs(e,t,n),{data:c}=N4(e,t),{data:u}=N4(e,n),d=c&&u&&c.datasetVersion!==u.datasetVersion,f=o?.baselineId??t,h=t===f?n:t,p=c?.id===f?c:u,m=c?.id===h?c:u,{data:y,isLoading:v}=qSe({datasetId:e,experimentId:f,experimentStatus:p?.status}),{data:b,isLoading:x}=qSe({datasetId:e,experimentId:h,experimentStatus:m?.status}),{data:w}=I1(f,p?.status),{data:k}=I1(h,m?.status),C=g.useMemo(()=>sIs({comparison:o,baselineId:f,contenderId:h,baselineResults:y,contenderResults:b,baselineScores:w,contenderScores:k}),[o,f,h,y,b,w,k]),_=g.useMemo(()=>[...new Set(C.flatMap(E=>Object.keys(E.deltas)))].sort(),[C]),T=g.useMemo(()=>{const E=(A,P)=>{const F=C.map(L=>L[A].scores.find(q=>q.scorerId===P)?.value).filter(L=>L!=null);return F.length>0?F.reduce((L,q)=>L+q,0)/F.length:null},I=_.map(A=>({scorerId:A,average:E("baseline",A),delta:null})),N=_.map(A=>{const P=E("baseline",A),F=E("contender",A);return{scorerId:A,average:F,delta:P!=null&&F!=null?F-P:null}});return{baseline:I,contender:N}},[C,_]);return i?a.jsx("div",{className:"flex h-64 items-center justify-center",children:a.jsx(_n,{})}):l?a.jsx(en,{variant:"warning",title:"Error loading comparison",children:a.jsx(en.Message,{children:l instanceof Error?l.message:"Unknown error"})}):!o||o.items.length===0?a.jsx("div",{className:"py-5 text-center text-body text-muted-foreground",children:"No comparison data"}):a.jsx("div",{className:"grid gap-4",children:a.jsxs("div",{role:"table","aria-label":"Experiments comparison",className:"grid",children:[a.jsxs("div",{role:"row",className:"grid border-y border-border xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border)]",children:[a.jsx("div",{role:"columnheader","aria-label":"Items",className:`${DT} text-caption text-muted-foreground uppercase`,children:"Items"}),a.jsx("div",{role:"columnheader","aria-label":"Baseline",className:DT,children:a.jsx(Bot,{side:"baseline",experiment:p??void 0,summary:T.baseline,versionMismatch:d??void 0})}),a.jsx("div",{role:"columnheader","aria-label":"Contender",className:DT,children:a.jsx(Bot,{side:"contender",experiment:m??void 0,summary:T.contender,versionMismatch:d??void 0,showDeltas:!0})})]}),C.map(E=>{const I=Object.entries(E.deltas).flatMap(([N,A])=>A==null||A===0?[]:[{scorerId:N,delta:A}]);return a.jsxs("div",{role:"row","aria-label":E.itemId,className:"grid border-b border-border xl:grid-cols-[minmax(20rem,24rem)_1fr_1fr] xl:divide-x xl:divide-[var(--border)]",children:[a.jsxs("div",{role:"cell",className:`${DT} grid content-start gap-1`,children:[a.jsx(r,{href:s.datasetItemLink(e,E.itemId),"aria-label":`Open item ${E.itemId}`,className:Z("flex items-start gap-1.5 font-mono text-caption break-all hover:underline [&>svg]:mt-0.5 [&>svg]:size-3.5 [&>svg]:shrink-0",E.baseline.present&&E.contender.present?"text-muted-foreground":"text-placeholder"),children:a.jsx("span",{className:"min-w-0",children:E.itemId})}),I.length>0&&a.jsx("span",{className:"flex flex-wrap items-center gap-2",children:I.map(({scorerId:N,delta:A})=>a.jsx(YXt,{delta:A},N))}),a.jsxs("div",{className:"grid pt-3",children:[a.jsx(Lot,{label:"Input",value:E.input}),a.jsx(Lot,{label:"Ground truth",value:E.groundTruth})]})]}),a.jsx("div",{role:"cell","aria-label":"Baseline",className:DT,children:a.jsx(zot,{side:"baseline",row:E,isLoading:v})}),a.jsx("div",{role:"cell","aria-label":"Contender",className:DT,children:a.jsx(zot,{side:"contender",row:E,isLoading:x,showDeltas:!0})})]},E.itemId)})]})})}function dIs({selectedCount:e,vocabulary:t,onApplyTag:n,onRemoveTag:r,onNewTag:s,size:o="sm"}){const[i,l]=g.useState(!1),[c,u]=g.useState(""),d=t.filter(h=>h.toLowerCase().includes(c.toLowerCase())),f=c.trim()&&!t.includes(c.trim());return a.jsxs(cp,{open:i,onOpenChange:l,children:[a.jsx(Wd,{asChild:!0,children:a.jsxs(le,{size:o,icon:a.jsx(U1,{}),children:["Tag ",e," items"]})}),a.jsxs(Zf,{className:"w-56 p-2",align:"end",children:[a.jsx(vr,{value:c,onChange:h=>u(h.target.value),onKeyDown:h=>{h.key==="Enter"&&c.trim()&&(h.preventDefault(),f?s(c.trim()):n(c.trim()),u(""))},placeholder:"Search or create tag...",className:"mb-1 h-7 text-caption",autoFocus:!0}),a.jsxs("div",{className:"max-h-40 space-y-0.5 overflow-y-auto",children:[d.map(h=>a.jsxs("div",{className:"flex items-center justify-between rounded px-2 py-1 text-caption hover:bg-fill-subtle",children:[a.jsx("button",{type:"button",onClick:()=>n(h),className:"flex-1 text-left text-muted-foreground",children:h}),a.jsx("button",{type:"button",onClick:()=>r(h),className:"ml-2 text-placeholder hover:text-negative1",children:a.jsx(Qt,{className:"h-3 w-3"})})]},h)),f&&a.jsxs("button",{type:"button",onClick:()=>{s(c.trim()),u("")},className:"w-full rounded px-2 py-1 text-left text-caption text-accent1 hover:bg-fill-subtle",children:['Create & apply "',c.trim(),'"']})]})]})]})}function fIs({tag:e,onRename:t,onRemove:n}){const[r,s]=g.useState(!1),[o,i]=g.useState(e),l=g.useRef(null);g.useEffect(()=>{r&&(l.current?.focus(),l.current?.select())},[r]);const c=()=>{const u=o.trim();u&&u!==e&&t(u),s(!1)};return r?a.jsxs("span",{className:"inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1",children:[a.jsx("input",{ref:l,value:o,onChange:u=>i(u.target.value),onKeyDown:u=>{u.key==="Enter"&&(u.preventDefault(),c()),u.key==="Escape"&&(i(e),s(!1))},onBlur:c,className:"w-20 bg-transparent py-0.5 text-caption text-muted-foreground outline-hidden"}),a.jsx("button",{type:"button",onMouseDown:u=>{u.preventDefault(),c()},className:"hover:text-positive2 p-0.5 text-positive1",children:a.jsx(Hn,{className:"h-3 w-3"})})]}):a.jsxs("span",{className:"group inline-flex items-center gap-0.5 rounded-md border border-border bg-card px-1.5 py-0.5 text-caption text-muted-foreground",children:[e,a.jsx("button",{type:"button",onClick:()=>{i(e),s(!0)},className:Z($n,"p-0.5 opacity-0 transition-opacity group-hover:opacity-100"),title:"Edit tag",children:a.jsx(qd,{className:"h-3 w-3"})}),a.jsx("button",{type:"button",onClick:n,className:"p-0.5 text-placeholder opacity-0 transition-opacity group-hover:opacity-100 hover:text-negative1",title:"Remove tag",children:a.jsx(Qt,{className:"h-3 w-3"})})]})}const hIs=100;function XXt(e,t,{enabled:n=!0}={}){const r=Je(),s={perPage:hIs};return t?.targetType&&(s.targetType=t.targetType),t?.targetId&&(s.targetId=t.targetId),kt({enabled:n,queryKey:["experiments",s],queryFn:()=>r.listExperiments(s)})}const JXt=(e,{experimentId:t,targetType:n,targetId:r,experiments:s,isLoadingExperiments:o=!1})=>{const i=Je(),l=s!==void 0,{data:c,isLoading:u}=XXt(void 0,{targetType:n,targetId:r},{enabled:!l}),d=l?s:c?.experiments,f=l?o:u,h=t?d?.filter(m=>m.id===t):d,p=kt({queryKey:["review-items",e,t??"all",l?"supplied":"discovered",l?void 0:n||"all",l?void 0:r||"all",h?.map(m=>[m.datasetId,m.id])],queryFn:async()=>!h||h.length===0?[]:(await Promise.all(h.map(async y=>{if(!y.datasetId)return[];try{const{results:v}=await i.listDatasetExperimentResults(y.datasetId,y.id);return v.filter(b=>b.status===e).map(b=>({id:b.id,input:b.input,output:b.output,error:b.error,itemId:b.itemId,experimentId:b.experimentId,datasetId:y.datasetId??void 0,traceId:b.traceId??void 0,scores:b.scores?Object.fromEntries(b.scores.map(x=>[x.scorerId,x.score??0])):{},tags:b.tags??[],createdAt:b.createdAt,status:b.status,groundTruth:b.groundTruth,toolMockReport:b.toolMockReport}))}catch{return[]}}))).flat(),enabled:!!d,refetchOnWindowFocus:!1});return{...p,isLoading:p.isLoading||f}},pIs=(e={})=>JXt("needs-review",e),mIs=(e={})=>JXt("complete",e);function gIs(e){const{data:t}=CE(e),r=t?.spans.find(i=>!i.parentSpanId)?.entityType==="agent",{supportsMetrics:s}=R6(),o=DSe({traceIds:e?[e]:[],enabled:r&&s,autoRefetch:!1});return e?o.data?.get(e):void 0}const Uot="__create_tag__";function eJt({selectedResults:e,vocabulary:t,onAddTag:n,disabled:r,appearance:s="toolbar"}){const[o,i]=g.useState(""),l=g.useMemo(()=>[...t].sort(),[t]),c=g.useMemo(()=>{if(e.length===0)return new Set;const[f,...h]=e;return new Set((f.tags??[]).filter(p=>h.every(m=>(m.tags??[]).includes(p))))},[e]),u=g.useMemo(()=>{const f=l.map(m=>({label:m,value:m,end:c.has(m)?a.jsx(Hn,{"data-testid":"tag-applied",className:"size-3.5"}):void 0})),h=o.trim();return h.length>0&&!l.includes(h)?[{label:`Create "${h}"`,value:Uot},...f]:f},[l,c,o]),d=f=>{const h=f===Uot?o.trim():f;!h||c.has(h)||n(h)};return a.jsx(qa,{"data-testid":"experiment-results-tag-picker",options:u,value:void 0,onValueChange:d,onInputValueChange:i,placeholder:a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(U1,{className:"size-3.5"}),"Add tag"]}),searchPlaceholder:"Search or create tag...",emptyText:"Type to create a tag",variant:s==="inline"?"ghost":"default",size:s==="inline"?"sm":"md",className:"w-auto min-w-0",disabled:r})}function sce(e){try{return JSON.stringify(e??{})}catch{return String(e)}}function vIs({report:e}){const{served:t,unconsumed:n,liveCalls:r,failure:s}=e,o=[...t.map(i=>({outcome:"served",toolName:i.toolName,args:i.args})),...r.map(i=>({outcome:"live",toolName:i.toolName,args:i.args})),...n.map(i=>({outcome:"unconsumed",toolName:i.toolName,args:i.args}))];return a.jsxs("div",{className:"grid gap-2","data-testid":"tool-mock-report",children:[a.jsx(At.SectionHeading,{icon:a.jsx(wu,{}),children:"Tool Mocks"}),s&&a.jsx(en,{variant:"destructive",title:"Mock mismatch",children:a.jsxs(en.Message,{children:[a.jsx("span",{className:"block",children:`Tool "${s.toolName}" was called with arguments that did not match an available mock (${s.code}).`}),a.jsxs("span",{className:"mt-1 block font-mono text-caption",children:["Called with: ",sce(s.args)]}),n.length>0&&a.jsxs("span",{className:"mt-1 block font-mono text-caption",children:["Unconsumed mocks: ",n.map(i=>sce(i.args)).join(", ")]})]})}),a.jsx("div",{className:"divide-y divide-border rounded border border-border text-body",children:o.map((i,l)=>a.jsxs("div",{className:"flex items-center justify-between gap-2 px-3 py-1.5",children:[a.jsxs("span",{className:"min-w-0 truncate",children:[a.jsx("span",{className:"font-mono text-muted-foreground",children:i.toolName}),a.jsx("span",{className:"ml-2 font-mono text-caption text-muted-foreground",children:sce(i.args)})]}),a.jsx("span",{className:`shrink-0 rounded px-2 py-0.5 text-caption ${yIs(i.outcome)}`,children:i.outcome})]},`${i.outcome}-${i.toolName}-${l}`))})]})}function yIs(e){switch(e){case"served":return"bg-accent1/10 text-accent1";case"live":return"bg-orange-500/10 text-orange-400";case"unconsumed":return"bg-muted-foreground/10 text-muted-foreground"}}function bIs({result:e,itemId:t,fallback:n,title:r,onClose:s,...o}){const i=r??(t?`Experiment item ${t}`:`Result ${e?.id??""}`);return a.jsx(At,{open:!!(e??t),onClose:s,title:i,depth:1,size:"half",children:e?a.jsx(xIs,{result:e,onClose:s,...o}):t?a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close result panel"}),a.jsxs(At.Heading,{children:["Experiment item",a.jsx(At.CopyId,{id:t})]})]}),n]}):null})}function xIs({result:e,scores:t,onPrevious:n,onNext:r,onClose:s,onShowTrace:o,onScoreClick:i,featuredScoreId:l,onFlagForReview:c,onTagsChange:u,tagVocabulary:d=[],isUpdatingTags:f=!1,experimentLink:h,onComplete:p,feedbackTabSlot:m}){const y=!!e?.error,v=X8(e?.input),b=X8(e?.output),x=X8(e?.groundTruth),w=c&&e.status!=="needs-review"&&e.status!=="complete",k=Array.isArray(e.tags)?e.tags:[],C=g.useMemo(()=>[e],[e]),_=!!u||k.length>0,{Link:T}=fn(),E=m&&e.traceId?e.traceId:void 0,{data:I}=P6({traceId:E}),N=gIs(e.traceId),A=a.jsxs(At.Content,{children:[a.jsxs("div",{className:"mb-6 grid gap-4",children:[a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Item Id"}),a.jsx(Lt.ValueWithCopyBtn,{copyTooltip:"Copy Item Id to clipboard",copyValue:e.itemId,children:e.itemId}),e.createdAt&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Created"}),a.jsx(Lt.Value,{children:Rr(new Date(e.createdAt),"MMM d, yyyy 'at' h:mm a")})]}),e.status&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Status"}),a.jsx(Lt.Value,{children:a.jsx(BMe,{status:e.status})})]}),_&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Tags"}),a.jsx(Lt.Value,{children:a.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[k.map(P=>a.jsxs(UX,{value:P,className:u?"gap-1 pr-1":void 0,children:[P,u&&a.jsx("button",{type:"button","aria-label":`Remove tag ${P}`,disabled:f,onClick:()=>u(k.filter(F=>F!==P)),className:"cursor-pointer rounded-sm hover:opacity-70 disabled:opacity-50",children:a.jsx(Qt,{className:"size-3"})})]},P)),u&&a.jsx(eJt,{appearance:"inline",selectedResults:C,vocabulary:d,onAddTag:P=>u([...k,P]),disabled:f})]})})]}),N&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Input tokens"}),a.jsx(Lt.Value,{children:N.inputTokens!==void 0?vi(N.inputTokens):"—"}),a.jsx(Lt.Key,{children:"Output tokens"}),a.jsx(Lt.Value,{children:N.outputTokens!==void 0?vi(N.outputTokens):"—"}),a.jsx(Lt.Key,{children:"Cost"}),a.jsx(Lt.Value,{children:N.estimatedCost!==void 0?Ud(N.estimatedCost,N.costUnit):"—"})]})]}),y&&a.jsx(en,{variant:"destructive",title:"Error",children:a.jsx(en.Message,{children:X8(e?.error&&typeof e.error=="object"?e.error.message:e?.error)})}),t&&t.length>0&&a.jsxs(xe,{columns:"1fr 1fr",children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Scorer"}),a.jsx(xe.TopCell,{children:"Score"})]}),t.map(P=>i?a.jsxs(xe.RowButton,{featured:l===P.id,onClick:()=>i(P.id),children:[a.jsx(xe.Cell,{children:P.scorerId}),a.jsx(xe.TextCell,{font:"mono",children:P.score.toFixed(3)})]},P.id):a.jsxs(xe.RowStatic,{children:[a.jsx(xe.Cell,{children:P.scorerId}),a.jsx(xe.TextCell,{font:"mono",children:P.score.toFixed(3)})]},P.id))]}),e.toolMockReport&&a.jsx(vIs,{report:e.toolMockReport})]}),a.jsxs("div",{className:"grid gap-3",children:[a.jsx(At.CodeSection,{title:"Input",icon:a.jsx(XOe,{}),codeStr:v}),a.jsx(At.CodeSection,{title:"Output",icon:a.jsx(ES,{}),codeStr:b}),e.groundTruth!==void 0&&a.jsx(At.CodeSection,{title:"Ground Truth",icon:a.jsx(TSt,{}),codeStr:x})]})]});return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:s,tooltip:"Close result panel"}),a.jsxs(At.Heading,{children:["Result",a.jsx(At.CopyId,{id:e.id})]}),a.jsxs(At.HeaderActions,{children:[w&&a.jsx(le,{size:"sm",variant:"primary",onClick:()=>c(e.id),icon:a.jsx(g3,{}),children:"Flag for Review"}),p&&e.status==="needs-review"&&a.jsx(le,{size:"sm",variant:"primary",onClick:p,icon:a.jsx(m3,{}),children:"Mark as reviewed"}),h&&a.jsx(le,{size:"sm",variant:"ghost",render:a.jsx(T,{href:h}),tooltip:"See experiment","aria-label":"See experiment",children:a.jsx(sG,{})}),e.traceId&&o&&a.jsx(le,{size:"sm",variant:"ghost",onClick:o,tooltip:"See trace","aria-label":"See trace",children:a.jsx(s0,{})}),a.jsx(At.NextPrevNav,{onPrevious:n,onNext:r,previousLabel:"Go to previous result",nextLabel:"Go to next result"})]})]}),E?a.jsxs(Ya,{defaultTab:"details",className:"grid h-full min-h-0 grid-rows-[auto_1fr]",children:[a.jsx(At.Header,{children:a.jsxs(Qa,{variant:"pill-ghost",size:"sm",children:[a.jsx(Ar,{value:"details",children:"Details"}),a.jsxs(Ar,{value:"feedback",children:["Feedback",I?.pagination?.total!=null&&a.jsxs(a.Fragment,{children:[" (",I.pagination.total,")"]})]})]})}),a.jsx(vs,{value:"details",flush:!0,children:A}),a.jsx(vs,{value:"feedback",flush:!0,children:a.jsx(At.Content,{children:m({traceId:E})})})]}):A]})}function X8(e){return e==null?"-":typeof e=="string"?e:JSON.stringify(e,null,2)}function wIs(e){const t=e.scorer;return t?.hasJudge===!1?!0:t?.hasJudge===!0?!1:!e.preprocessPrompt&&!e.analyzePrompt&&!e.generateScorePrompt&&!e.generateReasonPrompt}function SIs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s}){return a.jsx(At,{open:!!e,onClose:r,title:e?`Score ${e.scorerId}`:"Score",depth:2,children:e&&a.jsx(kIs,{score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s})})}function kIs({score:e,onNext:t,onPrevious:n,onClose:r,onShowTrace:s}){const o=wIs(e),i=o?"N/A — code-based scorer":"N/A — step not configured";return a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:r,tooltip:"Close score panel"}),a.jsxs(At.Heading,{children:["Score",a.jsx(At.CopyId,{id:e.scorerId})]}),a.jsxs(At.HeaderActions,{children:[s&&e.traceId&&a.jsx(le,{size:"sm",variant:"ghost",onClick:s,tooltip:"See trace","aria-label":"See trace",children:a.jsx(s0,{})}),(n||t)&&a.jsx(At.NextPrevNav,{onPrevious:n,onNext:t,previousLabel:"Go to previous score",nextLabel:"Go to next score"})]})]}),a.jsx(At.Content,{children:a.jsxs("div",{className:"grid gap-3",children:[a.jsx(At.CodeSection,{title:`Score: ${e.score}`,icon:a.jsx(dv,{}),codeStr:e.reason||i,simplified:!0}),!o&&a.jsxs(a.Fragment,{children:[a.jsx(At.CodeSection,{title:"Preprocess Prompt",icon:a.jsx(Vp,{}),codeStr:e.preprocessPrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Analyze Prompt",icon:a.jsx(Vp,{}),codeStr:e.analyzePrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Generate Score Prompt",icon:a.jsx(Vp,{}),codeStr:e.generateScorePrompt||i,simplified:!0}),a.jsx(At.CodeSection,{title:"Generate Reason Prompt",icon:a.jsx(Vp,{}),codeStr:e.generateReasonPrompt||i,simplified:!0})]})]})})]})}function tJt(e,t){const[n,r]=g.useState(null),[s,o]=g.useState(void 0),[i,l]=g.useState(null),[c,u]=g.useState(t);t!==c&&(u(t),r(null),o(void 0),l(null));const d=e?.find(f=>f.id===i)??null;return{featuredTraceId:n,setFeaturedTraceId:r,featuredSpanId:s,setFeaturedSpanId:o,featuredScoreId:i,setFeaturedScoreId:l,featuredScore:d}}function nJt({result:e,scores:t,state:n,...r}){const s=tJt(t,e?.id),{featuredTraceId:o,setFeaturedTraceId:i,featuredSpanId:l,setFeaturedSpanId:c,featuredScoreId:u,setFeaturedScoreId:d,featuredScore:f}=n??s,h=T=>{d(E=>T===E?null:T),i(null),c(void 0)},p=T=>{T&&(i(T),c(void 0),d(null))},m=()=>{if(!u||!t)return;const T=t.findIndex(E=>E.id===u);if(T>=0&&T<t.length-1)return()=>d(t[T+1].id)},y=()=>{if(!u||!t)return;const T=t.findIndex(E=>E.id===u);if(T>0)return()=>d(t[T-1].id)},{data:v,isLoading:b}=Qjs(o),x=v?.spans,w=x?.find(T=>!T.parentSpanId),{data:k}=P6({traceId:o??void 0}),{data:C}=zMe({traceId:o??void 0,spanId:l}),{data:_}=_X({traceId:o??void 0,spanId:w?.spanId,page:0});return a.jsxs(a.Fragment,{children:[a.jsx(bIs,{...r,result:e,scores:t,onScoreClick:h,featuredScoreId:u,onShowTrace:e?.traceId?()=>p(e.traceId):void 0,feedbackTabSlot:({traceId:T})=>a.jsx(FW,{traceId:T},T)}),a.jsx(SIs,{score:f??void 0,onNext:m(),onPrevious:y(),onClose:()=>d(null),onShowTrace:f?()=>p(f.traceId):void 0}),a.jsx(GMe,{size:"wide",depth:2,traceId:o??void 0,spans:x,isLoadingSpans:b,selectedSpanId:l??null,onClose:()=>{i(null),c(void 0)},onSpanSelect:c,showUnavailableFeaturesMsg:!1,traceHref:o?`/traces?traceId=${encodeURIComponent(o)}`:void 0,anchorSpanId:w?.spanId,feedbackTabBadge:k?.pagination?.total??void 0,feedbackTabSlot:({traceId:T})=>a.jsx(FW,{traceId:T}),scoresTabBadge:_?.pagination?.total??void 0,scoresTabSlot:({traceId:T,rootSpanId:E})=>E?a.jsx(UMe,{traceId:T,spanId:E,onScoreSelect:I=>{t?.some(N=>N.id===I)&&(i(null),c(void 0),d(I))}}):null,spanFeedbackTabBadge:C?.pagination?.total??void 0,spanFeedbackTabSlot:({traceId:T,spanId:E})=>T&&E?a.jsx(WKt,{traceId:T,spanId:E},`${T}:${E}`):null})]})}const OIs=[{name:"itemId",label:"Item ID",size:"auto"},{name:"input",label:"Input",size:"minmax(0,1fr)"},{name:"tags",label:"Tags",size:"auto"},{name:"scores",label:"Scores",size:"6rem"}],oce="__untagged__",J8="all",CIs=[{value:"review",label:"Review queue"},{value:"completed",label:"Completed"}];function _Is({datasetId:e,experimentId:t,experiments:n,isLoadingExperiments:r,targetType:s,targetId:o,featuredItemId:i,toolbarStart:l,renderFilters:c,toolbarEnd:u,onCreateScorer:d,breadcrumbs:f}){const h=Je(),{paths:p}=fn(),{data:m}=pv(e??""),{data:y,isLoading:v}=pIs({experimentId:t,targetType:s,targetId:o,experiments:n,isLoadingExperiments:r}),{data:b,isLoading:x}=mIs({experimentId:t,targetType:s,targetId:o,experiments:n,isLoadingExperiments:r}),{updateExperimentResult:w}=dl(),[k,C]=g.useState(i??null);g.useEffect(()=>{i!==void 0&&C(i)},[i]);const[_,T]=g.useState(null),[E,I]=g.useState(new Set),[N,A]=g.useState(!1),[P,F]=g.useState(!1),[L,q]=g.useState(!1),[V,H]=g.useState(""),[B,W]=g.useState(""),[z,Y]=g.useState(""),[D,R]=g.useState([]),[M,U]=g.useState(!1),Q=g.useMemo(()=>y??[],[y]),ee=g.useMemo(()=>{const Ie=new Set;if(m?.tags)for(const st of m.tags)Ie.add(st);for(const st of Q)for(const Oe of st.tags)Ie.add(Oe);return[...Ie].sort()},[m,Q]),X=g.useCallback(Ie=>{!m||!e||(m.tags??[]).includes(Ie)},[m,e]),te=g.useMemo(()=>_?_===oce?Q.filter(Ie=>Ie.tags.length===0):Q.filter(Ie=>Ie.tags.includes(_)):Q,[Q,_]),ne=g.useMemo(()=>{const Ie=new Map;let st=0;for(const We of Q){We.tags.length===0&&st++;for(const at of We.tags)Ie.set(at,(Ie.get(at)??0)+1)}const Oe=[...Ie.entries()].sort((We,at)=>at[1]-We[1]).map(([We])=>({value:We,label:We}));return[{value:J8,label:"All tags"},...st>0?[{value:oce,label:"Untagged"}]:[],...Oe]},[Q]),ce=!!_||N,J=g.useCallback(()=>{T(null),A(!1),C(null)},[]),re=g.useCallback((Ie,st)=>{const Oe=Q.find(We=>We.id===Ie);Oe?.experimentId&&Oe?.datasetId&&w.mutate({datasetId:Oe.datasetId,experimentId:Oe.experimentId,resultId:Oe.id,tags:st})},[Q,w]),se=g.useCallback(Ie=>{const st=Q.find(Oe=>Oe.id===Ie);I(Oe=>{const We=new Set(Oe);return We.delete(Ie),We}),k===Ie&&C(null),st?.experimentId&&st?.datasetId&&w.mutate({datasetId:st.datasetId,experimentId:st.experimentId,resultId:st.id,status:null})},[Q,w,k]),ae=g.useCallback(Ie=>{const st=Q.find(Oe=>Oe.id===Ie);I(Oe=>{const We=new Set(Oe);return We.delete(Ie),We}),k===Ie&&C(null),st?.experimentId&&st?.datasetId&&w.mutate({datasetId:st.datasetId,experimentId:st.experimentId,resultId:st.id,status:"complete"})},[Q,w,k]),ue=g.useMemo(()=>{const Ie=N?b??[]:te;return!N||!_?Ie:_===oce?Ie.filter(st=>st.tags.length===0):Ie.filter(st=>st.tags.includes(_))},[N,b,te,_]),pe=N?x:!1,Se=g.useMemo(()=>new Set(ue.map(Ie=>Ie.id)),[ue]),Te=g.useMemo(()=>[...E].filter(Ie=>Se.has(Ie)).length,[E,Se]),Ne=ue.length>0&&Te===ue.length,Ge=g.useCallback(Ie=>{I(st=>{const Oe=new Set(st);return Oe.has(Ie)?Oe.delete(Ie):Oe.add(Ie),Oe})},[]),Ue=g.useCallback(()=>{I(Ne?new Set:new Set(ue.map(Ie=>Ie.id)))},[Ne,ue]),Le=g.useCallback(Ie=>{for(const st of E){const Oe=Q.find(We=>We.id===st);Oe&&!Oe.tags.includes(Ie)&&re(st,[...Oe.tags,Ie])}},[Q,E,re]),be=g.useCallback(Ie=>{for(const st of E){const Oe=Q.find(We=>We.id===st);Oe&&Oe.tags.includes(Ie)&&re(st,Oe.tags.filter(We=>We!==Ie))}},[Q,E,re]),Ce=g.useCallback(()=>{for(const Ie of E)ae(Ie);I(new Set)},[E,ae]),ve=g.useCallback(()=>{for(const Ie of E)se(Ie);I(new Set)},[E,se]),ge=g.useCallback(()=>{H(""),q(!0)},[]),me=g.useCallback(async()=>{if(!(!B||!z)){F(!0),q(!1);try{const Ie=Q.filter(Oe=>E.has(Oe.id));if(Ie.length===0){F(!1);return}const st=await h.clusterFailures({modelId:`${B}/${z}`,items:Ie.map(Oe=>({id:Oe.id,input:Oe.input,output:Oe.output??void 0,error:typeof Oe.error=="string"?Oe.error:Oe.error?String(Oe.error):void 0,scores:Oe.scores,existingTags:Oe.tags.length>0?Oe.tags:void 0})),availableTags:ee.length>0?ee:void 0,prompt:V||void 0});st.proposedTags&&st.proposedTags.length>0&&(R(st.proposedTags.map(Oe=>({...Oe,accepted:!0}))),U(!0))}catch(Ie){console.error("Analysis failed:",Ie)}finally{F(!1)}}},[B,z,Q,E,h,ee,V]),fe=g.useCallback(()=>{for(const Ie of D){if(!Ie.accepted)continue;const st=Q.find(Oe=>Oe.id===Ie.itemId);if(st){const Oe=[...new Set([...st.tags,...Ie.tags])];re(st.id,Oe)}}U(!1)},[D,Q,re]),_e=g.useCallback(Ie=>{C(st=>st===Ie?null:Ie)},[]),De=g.useMemo(()=>k?ue.find(Ie=>Ie.id===k)??null:null,[k,ue]),{data:Fe}=I1(De?.experimentId??""),oe=k?ue.findIndex(Ie=>Ie.id===k):-1,ye=oe>0?()=>C(ue[oe-1].id):void 0,Ee=oe>=0&&oe<ue.length-1?()=>C(ue[oe+1].id):void 0,ze=!N&&E.size>0,Be=!!d&&!N&&te.length>0,qe=N?"completed":"review",$e=Ie=>{A(Ie==="completed"),C(null)},Qe=a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:c?a.jsxs(a.Fragment,{children:[l,c({status:qe,onStatusChange:$e,tag:_,onTagChange:T,tagOptions:ne.filter(Ie=>Ie.value!==J8)})]}):a.jsxs(a.Fragment,{children:[l,a.jsx(Su,{label:"Status",labelIsHidden:!0,name:"filter-status",options:CIs,value:qe,onValueChange:Ie=>$e(Ie==="completed"?"completed":"review"),className:"whitespace-nowrap"}),ne.length>1&&a.jsx(Su,{label:"Tags",labelIsHidden:!0,name:"filter-tags",options:ne,value:_??J8,onValueChange:Ie=>T(Ie===J8?null:Ie),className:"whitespace-nowrap"}),ce&&a.jsx(le,{onClick:J,size:"sm",variant:"default",icon:a.jsx(Qt,{}),children:"Reset"})]})}),(ze||u||Be)&&a.jsxs(Vn.End,{children:[u,Be&&a.jsxs(le,{size:"md",onClick:()=>d?.(te.map(Ie=>({input:Ie.input,output:Ie.output}))),children:[a.jsx(Et,{size:"xs",children:a.jsx(dv,{})}),"Create Scorer"]}),ze&&a.jsxs(a.Fragment,{children:[a.jsx(dIs,{size:"md",selectedCount:E.size,vocabulary:ee,onApplyTag:Le,onRemoveTag:be,onNewTag:Ie=>Le(Ie)}),a.jsx(le,{variant:"primary",onClick:Ce,icon:a.jsx(m3,{}),children:"Mark as reviewed"}),a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{disabled:P,"aria-label":"More actions",children:P?a.jsx(_n,{className:"h-4 w-4"}):a.jsx(NC,{})})}),a.jsxs(ht.Content,{align:"end",children:[a.jsxs(ht.Item,{onSelect:ge,children:[a.jsx(Et,{size:"xs",children:a.jsx(w3,{})}),"Analyze"]}),a.jsx(ht.Separator,{}),a.jsxs(ht.Item,{onSelect:ve,children:[a.jsx(Et,{size:"xs",children:a.jsx(Ri,{})}),"Remove from queue"]})]})]})]})]})]});if(v)return a.jsxs(pt,{breadcrumbs:f,actionRow:Qe,children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(_n,{fill:!0})]});const Ve=a.jsx(nJt,{result:De??void 0,title:`Review item ${De?.id??""}`,scores:De?Fe?.[De.itemId]:void 0,experimentLink:De?.experimentId?p.experimentItemLink(De.experimentId,De.itemId):void 0,tagVocabulary:ee,onTagsChange:N||!De?void 0:Ie=>{re(De.id,Ie);for(const st of Ie)ee.includes(st)||X(st)},onComplete:N||!De?void 0:()=>ae(De.id),onPrevious:ye,onNext:Ee,onClose:()=>C(null)});return a.jsxs(pt,{breadcrumbs:f,actionRow:Qe,children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(gs,{open:L,onOpenChange:q,children:a.jsxs(ss,{children:[a.jsxs(os,{children:[a.jsx(es,{children:"Analyze Items"}),a.jsx(Fs,{children:"Use an LLM to automatically suggest tags for the selected items."})]}),a.jsxs("div",{className:"space-y-4 py-2",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[a.jsxs("div",{children:[a.jsx(Dn,{className:"mb-1 block",children:"Provider"}),a.jsx(ek,{value:B,onValueChange:W})]}),a.jsxs("div",{children:[a.jsx(Dn,{className:"mb-1 block",children:"Model"}),a.jsx(tk,{llmId:B,value:z,onValueChange:Y})]})]}),a.jsxs(Ae,{variant:"meta",tone:"muted",children:[E.size," item",E.size!==1?"s":""," will be analyzed"]}),a.jsxs("div",{children:[a.jsx(Dn,{children:"Instructions (optional)"}),a.jsx(Jh,{value:V,onChange:Ie=>H(Ie.target.value),placeholder:"E.g., Focus on safety issues and factual errors...",rows:3,className:"mt-1 text-caption"})]})]}),a.jsxs(sc,{children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:()=>q(!1),children:"Cancel"}),a.jsxs(le,{onClick:me,disabled:!B||!z||P,children:[P?a.jsx(_n,{className:"mr-1 h-4 w-4"}):null,"Analyze"]})]})]})}),a.jsx(gs,{open:M,onOpenChange:U,children:a.jsxs(ss,{className:"max-h-[80vh] max-w-2xl overflow-y-auto",children:[a.jsxs(os,{children:[a.jsx(es,{children:"Review Proposed Tags"}),a.jsxs(Fs,{children:[D.filter(Ie=>Ie.accepted).length," of ",D.length," proposals selected"]})]}),a.jsx("div",{className:"space-y-3 py-2",children:D.map((Ie,st)=>{const Oe=Q.find(We=>We.id===Ie.itemId);return a.jsx("div",{className:Z("rounded-lg border p-3",!Ie.accepted&&"opacity-50"),children:a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(Tu,{checked:Ie.accepted,onCheckedChange:We=>R(at=>at.map((Ut,Vt)=>Vt===st?{...Ut,accepted:!!We}:Ut))}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx(Ae,{variant:"meta",tone:"muted",className:"block truncate",children:Oe?typeof Oe.input=="string"?Oe.input.slice(0,100):JSON.stringify(Oe.input).slice(0,100):Ie.itemId}),a.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Ie.tags.map((We,at)=>a.jsx(fIs,{tag:We,onRename:Ut=>R(Vt=>Vt.map((Zt,vt)=>vt===st?{...Zt,tags:Zt.tags.map((vn,mn)=>mn===at?Ut:vn)}:Zt)),onRemove:()=>R(Ut=>Ut.map((Vt,Zt)=>Zt===st?{...Vt,tags:Vt.tags.filter((vt,vn)=>vn!==at)}:Vt))},`${We}-${at}`))}),Ie.reason&&a.jsx(Ae,{variant:"meta",tone:"muted",className:"mt-1 block italic",children:Ie.reason})]})]})},Ie.itemId)})}),a.jsxs(sc,{children:[a.jsx(le,{icon:a.jsx(Qt,{}),onClick:()=>U(!1),children:"Cancel"}),a.jsxs(le,{icon:a.jsx(Hn,{}),onClick:fe,disabled:D.filter(Ie=>Ie.accepted).length===0,children:["Accept ",D.filter(Ie=>Ie.accepted).length," proposals"]})]})]})}),a.jsxs("div",{className:"grid h-full min-h-0 w-full grid-cols-1 gap-4 overflow-hidden",children:[a.jsx("div",{className:"min-h-0 w-full overflow-hidden",children:pe?a.jsx(_n,{fill:!0}):ue.length===0?a.jsx(dn,{titleSlot:N?"No completed reviews yet":"No items to review",descriptionSlot:N?"Items marked as complete will appear here for auditing.":"When experiment results are flagged for review, they will appear here.",variant:"fill"}):a.jsx(MXt,{results:ue,isLoading:!1,featuredResultId:k,onResultClick:_e,columns:OIs,selectedIds:N?void 0:E,onToggleSelect:N?void 0:Ge,onToggleSelectAll:N?void 0:Ue})}),Ve]})]})}const Vot={needsReview:"#facc15",complete:"#22c55e"},EIs=[{label:"Needs Review",color:Vot.needsReview},{label:"Reviewed",color:Vot.complete}];function TIs({reviewSummary:e,experiments:t,datasets:n,isLoading:r,isError:s}){const{data:o,maxVal:i,totalInPipeline:l}=g.useMemo(()=>{if(!e?.counts||!t)return{data:[],maxVal:0,totalInPipeline:0};const u=new Map;for(const m of t)u.set(m.id,m);const d=new Map;if(n)for(const m of n)d.set(m.id,m.name);let f=0,h=0;const p=[];for(const m of e.counts){const y=m.needsReview+m.complete;if(y===0)continue;h+=y,y>f&&(f=y);const v=u.get(m.experimentId),b=v?.datasetId?d.get(v.datasetId):void 0,x=b?`${b} · ${m.experimentId.slice(0,8)}`:m.experimentId.slice(0,8);p.push({name:x,values:[m.needsReview,m.complete]})}return{data:p,maxVal:f,totalInPipeline:h}},[e,t,n]),c=o.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Review Pipeline",description:"Items in review across experiments."}),c&&a.jsx(Gt.Summary,{value:String(l),label:"Items in pipeline"})]}),r?a.jsx(Gt.Loading,{}):s?a.jsx(Gt.Error,{message:"Failed to load review data"}):a.jsx(Gt.Content,{children:c?a.jsx(KI,{data:o,segments:EIs,maxVal:i,fmt:u=>String(u)}):a.jsx(Gt.NoData,{message:"No items have been sent to review yet"})})]})}function rJt(){const e=Je();return kt({queryKey:["experiment-review-summary"],queryFn:()=>e.getExperimentReviewSummary()})}function jIs(e){const t=new Map;if(!e?.counts)return t;for(const n of e.counts)t.set(n.experimentId,{needsReview:n.needsReview,complete:n.complete,total:n.total});return t}function NIs(e){return e?.counts?e.counts.reduce((t,n)=>({needsReview:t.needsReview+n.needsReview,complete:t.complete+n.complete,inPipeline:t.inPipeline+n.needsReview+n.complete}),{needsReview:0,complete:0,inPipeline:0}):{needsReview:0,complete:0,inPipeline:0}}const eB=[Br("/evaluation")];function IIs(){const[e,t]=g.useState("all"),[n,r]=g.useState({}),{data:s,isLoading:o,error:i}=Gf(),{data:l,isLoading:c,error:u}=I0(),{data:d,isLoading:f,error:h}=BX(),{data:p,isLoading:m,isError:y,error:v}=eys(n),{data:b,isLoading:x,isError:w,error:k}=rJt(),C=l?.datasets,_=d?.experiments,T=g.useMemo(()=>NIs(b),[b]),E=i||u||h||v||k;return E&&Ss(E)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(Us,{variant:"fill"})]}):E&&Ts(E)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(As,{variant:"fill",resource:"evaluation"})]}):E?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load evaluation data",descriptionSlot:E.message})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eB}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx(D5,{preset:e,onPresetChange:t,dateFrom:n.start,dateTo:n.end,onDateChange:(I,N)=>r(A=>N==="from"?{...A,start:I}:{...A,end:I})})})}),children:[a.jsx("h1",{className:"sr-only",children:"Overview"}),a.jsxs("div",{className:"flex flex-col gap-4",children:[a.jsx(BXt,{children:a.jsx(RNs,{scorers:s,datasets:C,experiments:_,avgScore:p?.avgScore??null,prevAvgScore:p?.prevAvgScore??null,totalNeedsReview:T.needsReview,isLoadingScorers:o,isLoadingDatasets:c,isLoadingExperiments:f,isLoadingScores:m,isLoadingReview:x})}),a.jsx($gs,{summaryData:p?.summaryData??[],overTimeData:p?.overTimeData??[],scorerNames:p?.scorerNames??[],avgScore:p?.avgScore??null,isLoading:m,isError:y}),a.jsxs("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[a.jsx(bTs,{experiments:_,isLoading:f,isError:!!h}),a.jsx(eIs,{experiments:_,datasets:C,isLoading:f,isError:!!h})]}),a.jsx(TIs,{reviewSummary:b,experiments:_,datasets:C,isLoading:x,isError:!!w})]})]})}const AIs=100;function RIs(e,t,n){const r=Je(),{inView:s,setRef:o}=N0(),i=t?.targetType||void 0,l=t?.targetId||void 0,c=hv({queryKey:e?["dataset-experiments",e,"infinite",{targetType:i,targetId:l,orderBy:n}]:["experiments","infinite",{targetType:i,targetId:l,orderBy:n}],queryFn:({pageParam:u})=>{const d={page:u,perPage:AIs};return i&&(d.targetType=i),l&&(d.targetId=l),n&&(d.orderBy=n),e?r.listDatasetExperiments(e,d):r.listExperiments(d)},initialPageParam:0,getNextPageParam:(u,d,f)=>{if(!(!u?.experiments?.length||!u.pagination?.hasMore))return f+1},select:u=>u.pages.flatMap(d=>d?.experiments??[])});return g.useEffect(()=>{s&&c.hasNextPage&&!c.isFetchingNextPage&&c.fetchNextPage()},[s,c]),{...c,setEndOfListElement:o}}const LT=[Br("/experiments")],PIs=["createdAt","status"];function $Is(){const[e,t]=g.useState(""),[n,r]=g.useState("all"),[s,o]=g.useState(!1),[i,l]=g.useState(!1),[c,u]=g.useState([]),d=Ur(),[f,h]=oo(),{sort:p,onSortChange:m}=ck({searchParams:f,setSearchParams:h,allowedKeys:PIs}),y=g.useMemo(()=>p?{field:p.key,direction:p.direction==="asc"?"ASC":"DESC"}:void 0,[p]),v=f.get("dataset")??"all",b=g.useCallback(ce=>{h(J=>{const re=new URLSearchParams(J);return ce==="all"?re.delete("dataset"):re.set("dataset",ce),re},{replace:!0})},[h]),{targetType:x,targetId:w,setTargetType:k,setTargetId:C}=FXt(),{data:_,isLoading:T,error:E}=I0(),{data:I,isLoading:N,error:A,isFetchingNextPage:P,hasNextPage:F,setEndOfListElement:L}=RIs(v==="all"?void 0:v,{targetType:x,targetId:w},y),{data:q}=rJt(),V=g.useMemo(()=>_?.datasets??[],[_?.datasets]),H=g.useMemo(()=>I??[],[I]),B=g.useMemo(()=>XNs(V),[V]),W=g.useMemo(()=>jIs(q),[q]),z=T||N,Y=A||E,D=ce=>{u(J=>J.includes(ce)?J.filter(re=>re!==ce):J.length>=2?[J[0],ce]:[...J,ce])},R=()=>{u([]),l(!1)},{selectedIds:M,selectedDatasetIds:U}=g.useMemo(()=>{const ce=new Map(H.map(re=>[re.id,re.datasetId])),J=c.filter(re=>ce.has(re));return{selectedIds:J,selectedDatasetIds:new Set(J.map(re=>ce.get(re)))}},[H,c]),Q=M.length===2&&U.size!==1?"not the same dataset":void 0,ee=()=>{if(M.length!==2||Q)return;const[ce,J]=M,[re]=U;if(!re)return;const se=new URLSearchParams({dataset:re,baseline:ce,contender:J});d(`/experiments/compare?${se.toString()}`)};if(Y&&Ss(Y))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(Us,{variant:"fill"})]});if(A&&Ts(A))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(As,{variant:"fill",resource:"experiments"})]});if(E&&Ts(E))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(As,{variant:"fill",resource:"datasets"})]});if(Y)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:Y.message})]});const X=a.jsx(HX,{open:s,onOpenChange:o,onSuccess:ce=>{d(`/experiments/${ce}`)}});if(H.length===0&&!z&&v==="all"&&!x)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(tIs,{onRunExperiment:()=>o(!0)}),X]});const te=n!=="all"||v!=="all"||e!==""||x!=="",ne=()=>{t(""),r("all"),h(ce=>{const J=new URLSearchParams(ce);return J.delete("dataset"),J.delete(mC),J.delete(yS),J},{replace:!0})};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:LT}),actionRow:a.jsx(nIs,{search:e,onSearchChange:t,statusFilter:n,onStatusFilterChange:r,datasetFilter:v,onDatasetFilterChange:b,datasetOptions:B,targetType:x,onTargetTypeChange:k,targetId:w,onTargetIdChange:C,onReset:ne,hasActiveFilters:te,onRunClick:()=>o(!0),onCompareClick:()=>l(!0),selection:i?{selectedCount:M.length,onExecuteCompare:ee,onCancelSelection:R,compareDisabledReason:Q}:void 0}),children:[a.jsx("h1",{className:"sr-only",children:"Experiments"}),a.jsx(YNs,{experiments:H,datasets:V,reviewByExperiment:W,isLoading:z,search:e,statusFilter:n,datasetFilter:v,isFetchingNextPage:P,hasNextPage:F,setEndOfListElement:L,sort:p,onSortChange:m,selection:i?{selectedExperimentIds:M,onToggleSelection:D}:void 0}),X]})}const FT=[Br("/experiments"),{id:"experiments-compare",label:"Compare"}];function tB({experimentId:e}){const{Link:t,paths:n}=fn();return a.jsx(le,{render:a.jsx(t,{href:n.experimentLink(e)}),size:"sm","aria-label":`Open experiment ${e}`,children:e.slice(0,8)})}function MIs(){const[e,t]=oo(),n=e.get("dataset")??"",r=e.get("baseline")??"",s=e.get("contender")??"",o=N4(n,r),i=N4(n,s),l=o.isLoading||i.isLoading,c=o.error??i.error;return c&&Ss(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(Us,{variant:"fill"})]}):c&&Ts(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(As,{variant:"fill",resource:"experiments"})]}):!n||!r||!s?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"py-5 text-center text-muted-foreground",children:[a.jsx("p",{children:"Select two experiments to compare."}),a.jsxs("p",{className:"mt-2 text-body",children:["Use the URL format: /experiments/compare?dataset=","{datasetId}","&baseline=","{experimentIdA}","&contender=","{experimentIdB}"]})]})})]}):l?null:c&&!AA(c)?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:c.message})]}):c||!o.data||!i.data?a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:[a.jsx("h1",{className:"sr-only",children:"Compare"}),a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"py-5 text-center text-muted-foreground",children:[a.jsxs("p",{children:["Experiments must belong to the same dataset (",n,") to be compared."]}),a.jsxs("p",{className:"mt-2 flex items-center justify-center gap-2 text-body",children:["One of",a.jsx(tB,{experimentId:r}),"and",a.jsx(tB,{experimentId:s}),"was not found in it."]})]})})]}):a.jsx(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:FT}),children:a.jsx("div",{className:"grid h-full min-w-min content-start items-start overflow-x-auto overflow-y-auto",children:a.jsxs("div",{className:"grid w-full content-start",children:[a.jsxs("div",{className:"flex items-center justify-between gap-4 px-4 py-3",children:[a.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[a.jsx(Ae,{as:"h1",variant:"heading",tone:"ink",children:"Experiments comparison"}),a.jsxs("p",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[a.jsx(tB,{experimentId:r}),"and",a.jsx(tB,{experimentId:s})]})]}),a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx(le,{onClick:()=>t({dataset:n,baseline:s,contender:r}),icon:a.jsx(Wwt,{}),children:"Swap sides"})}),a.jsx(Cn,{children:"Switch baseline and contender"})]})]}),a.jsx(uIs,{datasetId:n,experimentIdA:r,experimentIdB:s})]})})})}function sJt(e,t){const{data:n}=pv(e);return g.useMemo(()=>[...new Set([...n?.tags??[],...t.flatMap(r=>r.tags??[])])].sort(),[n?.tags,t])}function DIs(){const{currentItemId:e,experimentId:t,datasetId:n,experimentStatus:r,results:s,isLoadingResults:o,hasNextPage:i,close:l,goToPreviousItem:c,goToNextItem:u}=$Xt(),d=g.useMemo(()=>e?s.find(w=>w.itemId===e):void 0,[s,e]),{data:f}=I1(t,r),{updateExperimentResult:h}=dl(),p=g.useCallback(async w=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,status:"needs-review"}),Ye("Result flagged for review")}catch{Ye.error("Failed to flag result for review")}},[n,t,h]),m=sJt(n,s),y=g.useCallback(async(w,k)=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,tags:k})}catch{Ye.error("Failed to update tags")}},[n,t,h]),v=g.useCallback(async w=>{try{await h.mutateAsync({datasetId:n,experimentId:t,resultId:w,status:"complete"}),Ye("Result marked as reviewed")}catch{Ye.error("Failed to complete result")}},[n,t,h]),b=d?f?.[d.itemId]:void 0,x=tJt(b,d?.id);return a.jsx(nJt,{result:d,itemId:e,fallback:o||i?a.jsx(At.LoadingData,{}):a.jsxs(At.NoData,{children:['No loaded result for item "',e,'".']}),scores:b,state:x,onPrevious:c,onNext:u,onClose:l,onComplete:d?()=>v(d.id):void 0,onFlagForReview:d?()=>{p(d.id)}:void 0,onTagsChange:d?w=>{y(d.id,w)}:void 0,tagVocabulary:m,isUpdatingTags:h.isPending})}function LIs({selection:e}){const{selectedIds:t,selectedResults:n,tagVocabulary:r,isFlagging:s,isTagging:o}=e;if(t.size===0)return null;const i=s||o;return a.jsxs("div",{className:"flex items-center gap-2 whitespace-nowrap",children:[a.jsxs(le,{disabled:i,onClick:e.flagSelectedForReview,icon:a.jsx(g3,{}),children:["Flag ",t.size," to review"]}),a.jsx(eJt,{selectedResults:n,vocabulary:r,onAddTag:e.addTagToSelected,disabled:i}),a.jsx(le,{icon:a.jsx(Qt,{}),variant:"ghost",onClick:e.clearSelection,children:"Clear"})]})}function oJt(e){const{data:t}=I1(e.id,e.status);return g.useMemo(()=>{if(e.scorerIds?.length)return e.scorerIds;if(!t)return[];const n=new Set;for(const r of Object.values(t))for(const s of r)n.add(s.scorerId);return[...n].sort()},[e.scorerIds,t])}function ice({icon:e,typeLabel:t,subject:n,description:r,isLast:s=!1}){return a.jsxs("li",{className:"relative grid grid-cols-[auto_1fr] gap-x-2.5 pb-4 last:pb-0",children:[a.jsxs("div",{className:"flex flex-col items-center",children:[a.jsxs(In,{children:[a.jsx(On,{render:a.jsx("span",{className:"flex size-5 shrink-0 items-center justify-center text-muted-foreground [&_svg]:size-3.5",role:"img","aria-label":t}),children:e}),a.jsx(Cn,{children:t})]}),!s&&a.jsx("span",{"aria-hidden":!0,className:"mt-1 w-px flex-1 bg-border"})]}),a.jsxs("div",{className:"grid min-w-0 gap-0.5",children:[a.jsx("div",{className:"flex min-h-5 items-center text-caption text-foreground",children:n}),a.jsx("p",{className:"text-meta text-placeholder",children:r})]})]})}const ace="text-foreground inline-flex min-w-0 items-center gap-1.5 hover:underline";function FIs({experiment:e,className:t}){const{Link:n,paths:r}=fn(),s=qXt(),{scorers:o}=s,{data:i,isLoading:l}=pv(e.datasetId??""),c=oJt(e),u=e.targetType,d=e.targetId,f=ZXt(e,s),h=(()=>{if(!d)return null;switch(u){case"agent":return r.agentLink(d);case"workflow":return r.workflowLink(d);case"scorer":return r.scorerLink(d);default:return null}})(),p=u&&HXt[u]||Mi,m=u&&WXt[u]||"Evaluation target";return a.jsxs("ol",{className:Z("grid",t),children:[a.jsx(ice,{icon:a.jsx($G,{}),typeLabel:"Dataset",description:`Each item will be passed to the ${m.toLowerCase()}`,subject:e.datasetId?a.jsxs(n,{href:r.datasetLink(e.datasetId),className:ace,children:[a.jsx("span",{className:"truncate",children:l?a.jsx(lt,{className:"h-4 w-28"}):i?.name??e.datasetId}),e.datasetVersion!=null&&a.jsxs("span",{className:"shrink-0 text-muted-foreground",children:["(v",e.datasetVersion,")"]})]}):a.jsx("span",{className:"text-muted-foreground",children:"No dataset"})}),a.jsx(ice,{icon:a.jsx(p,{}),typeLabel:m,description:"Its output is then scored",subject:h?a.jsx(n,{href:h,className:ace,children:a.jsx("span",{className:"truncate",children:f})}):a.jsx("span",{className:"truncate text-muted-foreground",children:f})}),a.jsx(ice,{icon:a.jsx(db,{}),typeLabel:"Scorers",description:"It gives a score by comparing ground truth",isLast:!0,subject:c.length===0?a.jsx("span",{className:"text-muted-foreground",children:"No scorer has produced a score yet"}):a.jsx("ul",{className:"grid min-w-0 gap-0.5",children:c.map(y=>{const v=o?.[y]?.scorer?.config?.name??y;return a.jsx("li",{className:"min-w-0",children:a.jsx(n,{href:r.scorerLink(y),className:ace,children:a.jsx("span",{className:"truncate",children:v})})},y)})})})]})}function zT({label:e,children:t}){return a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:e}),a.jsx(Lt.Value,{className:"flex flex-wrap items-baseline justify-end gap-x-1.5 text-right",children:t})]})}function qot(e){if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1).replace(/\.0$/,"")}s`;const t=Math.floor(e/6e4),n=Math.round(e%6e4/1e3);if(t<60)return n>0?`${t}m ${n}s`:`${t}m`;const r=Math.floor(t/60),s=t%60;return s>0?`${r}h ${s}m`:`${r}h`}function zIs({experiment:e,metrics:t}){const{data:n}=I1(e.id,e.status),r=e.status==="running"||e.status==="pending",s=g.useMemo(()=>{if(!n)return;const c=Object.values(n).flat();if(c.length!==0)return c.reduce((u,d)=>u+d.score,0)/c.length},[n]),o=e.startedAt??e.createdAt,i=o?new Date(o):null,l=(()=>{if(e.status==="running")return"Running…";if(!e.startedAt||!e.completedAt)return"—";const c=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime();return c<0?"—":qot(c)})();return a.jsxs(Lt,{children:[a.jsx(zT,{label:"Avg score",children:s===void 0?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:s.toFixed(3)}),r&&a.jsx("span",{className:"text-muted-foreground",children:"· so far"})]})}),a.jsx(zT,{label:"Items",children:r?a.jsxs("span",{className:"text-muted-foreground",children:[(e.succeededCount??0)+(e.failedCount??0),"/",e.totalItems," items processed"]}):a.jsxs(a.Fragment,{children:[a.jsxs("span",{children:[e.totalItems," item",e.totalItems===1?"":"s"]}),(e.failedCount??0)>0&&a.jsxs("span",{className:"text-error",children:["· ",e.failedCount," errored"]})]})}),a.jsx(zT,{label:"Started",children:i?a.jsx("span",{title:T8n(i,{addSuffix:!0}),children:Rr(i,"MMM d, h:mm a")}):a.jsx("span",{children:"—"})}),a.jsx(zT,{label:"Duration",children:a.jsx("span",{children:l})}),t?.isEnabled&&a.jsxs(a.Fragment,{children:[a.jsx(zT,{label:"Tokens",children:t.data?.totalTokens==null?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsxs(a.Fragment,{children:[a.jsx("span",{children:vi(t.data.totalTokens)}),t.data.estimatedCost!=null&&a.jsxs("span",{className:"text-muted-foreground",children:["· ",Ud(t.data.estimatedCost,t.data.costUnit)]}),r&&a.jsx("span",{className:"text-muted-foreground",children:"· so far"})]})}),a.jsx(zT,{label:"Latency (avg)",children:t.data?.avgAgentDurationMs==null?a.jsx("span",{className:"text-muted-foreground",children:"—"}):a.jsx("span",{children:qot(Math.round(t.data.avgAgentDurationMs))})})]})]})}function BIs({scoresByItemId:e,experimentStatus:t}){const{Link:n,paths:r}=fn(),{data:s}=Gf(),o=g.useMemo(()=>{if(!e)return[];const i={};for(const l of Object.values(e))for(const c of l)i[c.scorerId]||(i[c.scorerId]={sum:0,count:0}),i[c.scorerId].sum+=c.score,i[c.scorerId].count++;return Object.entries(i).map(([l,{sum:c,count:u}])=>({scorerId:l,avg:c/u})).sort((l,c)=>l.scorerId.localeCompare(c.scorerId))},[e]);if(o.length===0){const i=t==="running"||t==="pending",l=e!==void 0;let c,u;return i?(c="Experiment in progress",u="Summary metrics will appear here once the experiment completes."):l?(c="No scorers configured",u="Add scorers when triggering an experiment to evaluate results and see summary metrics here."):(c="Loading scores",u="Fetching scorer results…"),a.jsxs("div",{className:"flex items-center gap-2 text-caption text-muted-foreground",children:[a.jsx(dv,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"text-muted-foreground",children:c}),a.jsx("span",{className:"truncate",children:u})]})}return a.jsx("div",{className:"flex flex-col gap-2",children:o.map(({scorerId:i,avg:l})=>{const c=s?.[i]?.scorer?.config?.name??i;return a.jsxs(er,{className:"min-w-0 p-3",children:[a.jsxs(n,{href:r.scorerLink(i),className:"flex min-w-0 items-center gap-1.5 text-caption text-muted-foreground hover:underline [&>svg]:size-3 [&>svg]:shrink-0 [&>svg]:text-muted-foreground",children:[a.jsxs(In,{children:[a.jsx(On,{render:a.jsx(db,{role:"img","aria-label":"Scorer"})}),a.jsx(Cn,{children:"Scorer"})]}),a.jsx("span",{className:"truncate",children:c})]}),a.jsxs("strong",{className:"text-subheading text-muted-foreground",children:[l.toFixed(3),a.jsx("span",{className:"ml-1.5 text-caption text-muted-foreground",children:"avg score"})]})]},i)})})}function lce({title:e,children:t}){return a.jsxs("section",{className:"grid gap-3",children:[a.jsx("h2",{className:"text-body tracking-widest text-placeholder uppercase",children:e}),t]})}function UIs({experiment:e,metrics:t,className:n}){const{Link:r,paths:s}=fn(),{data:o}=I1(e.id,e.status),i=e.agentVersion&&e.targetType==="agent"&&e.targetId?`${s.agentLink(e.targetId)}/editor?version=${encodeURIComponent(e.agentVersion)}`:null;return a.jsxs(Ou,{as:"aside","aria-label":"Experiment details",className:Z("grid content-start gap-5 p-5",n),children:[a.jsxs(lce,{title:"Pipeline",children:[a.jsx(FIs,{experiment:e}),e.agentVersion&&a.jsxs(Lt,{children:[a.jsx(Lt.Key,{children:"Version"}),i?a.jsx(Lt.ValueLink,{href:i,as:r,children:e.agentVersion}):a.jsx(Lt.Value,{children:e.agentVersion})]})]}),a.jsx(lce,{title:"Run",children:a.jsx(zIs,{experiment:e,metrics:t})}),a.jsx(lce,{title:"Scorers",children:a.jsx(BIs,{scoresByItemId:o,experimentStatus:e.status})})]})}function VIs({experiment:e,open:t,onOpenChange:n}){const[r,s]=g.useState(e.name??""),[o,i]=g.useState(e.description??""),{updateExperiment:l}=dl(),c=!!r.trim()&&!l.isPending,u=async d=>{if(d.preventDefault(),!(!c||!e.datasetId))try{await l.mutateAsync({datasetId:e.datasetId,experimentId:e.id,name:r.trim(),description:o.trim()}),Ye.success("Experiment renamed"),n(!1)}catch(f){Ye.error(`Failed to rename experiment: ${f instanceof Error?f.message:"Unknown error"}`)}};return a.jsx(gs,{open:t,onOpenChange:n,children:a.jsxs(ss,{className:"max-w-md",children:[a.jsx(os,{children:a.jsx(es,{children:"Rename Experiment"})}),a.jsx(ws,{children:a.jsxs("form",{onSubmit:u,className:"space-y-4",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{htmlFor:"rename-experiment-name",children:"Name *"}),a.jsx(vr,{id:"rename-experiment-name",value:r,onChange:d=>s(d.target.value),placeholder:"Enter experiment name",autoFocus:!0})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Dn,{htmlFor:"rename-experiment-description",children:"Description"}),a.jsx(vr,{id:"rename-experiment-description",value:o,onChange:d=>i(d.target.value),placeholder:"Enter experiment description (optional)"})]}),a.jsxs("div",{className:"flex justify-end gap-2 pt-4",children:[a.jsx(le,{icon:a.jsx(Qt,{}),type:"button",onClick:()=>n(!1),disabled:l.isPending,children:"Cancel"}),a.jsx(le,{icon:a.jsx(Hn,{}),type:"submit",variant:"primary",disabled:!c,children:l.isPending?"Saving...":"Save"})]})]})})]})})}const qIs=["agent","workflow","scorer"];function HIs({experiment:e}){const[t,n]=g.useState(!1),r=Ur(),{paths:s}=fn(),o=oJt(e),i=qIs.find(l=>l===e.targetType);return!e.datasetId||!i||!e.targetId?null:a.jsxs(a.Fragment,{children:[a.jsx(le,{variant:"primary",onClick:()=>n(!0),tooltip:"Run this experiment again with the same configuration",icon:a.jsx(xu,{}),children:"Rerun"}),t&&a.jsx(HX,{open:!0,onOpenChange:n,initialDatasetId:e.datasetId,initialDatasetVersion:e.datasetVersion??void 0,initialTargetType:i,initialTargetId:e.targetId,initialScorerIds:o,initialName:e.name??void 0,initialDescription:e.description??void 0,onSuccess:l=>{r(s.experimentLink(l))}},o.join(","))]})}function WIs({experiment:e,onDeleteClick:t,children:n}){const{Link:r}=fn(),[s,o]=g.useState(!1),i=!!e.datasetId,l=i||!!t;return a.jsxs(a.Fragment,{children:[a.jsxs(Vn,{children:[a.jsxs(Vn.Start,{className:"whitespace-nowrap",children:[a.jsx(HIs,{experiment:e}),a.jsx(le,{render:a.jsx(r,{href:CBr(e.id)}),icon:a.jsx(g3,{}),children:"Review queue"}),l&&a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Experiment actions menu",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"start",className:"w-48",children:[i&&a.jsxs(ht.Item,{onSelect:()=>o(!0),children:[a.jsx(qd,{})," Rename Experiment"]}),t&&a.jsxs(ht.Item,{onSelect:t,className:"text-red-500 focus:text-red-400",children:[a.jsx(Ri,{})," Delete Experiment"]})]})]})]}),n&&a.jsx(Vn.End,{children:n})]}),s&&a.jsx(VIs,{experiment:e,open:!0,onOpenChange:o})]})}const iJt=()=>{const{experimentId:e}=hr(),{data:t}=BX();return{experimentId:e,experiment:t?.experiments?.find(n=>n.id===e)}};function ZIs(){const{experimentId:e,experiment:t}=iJt();if(!e)return null;const n=e.length>8?`${e.slice(0,8)}...`:e;return t?.name||n}function GIs(){const{experiment:e}=iJt();return e?a.jsx(qjs,{status:e.status}):null}const QIs=({experimentId:e,experimentStatus:t})=>{const n=Je(),{supportsMetrics:r}=R6(),s=!!e&&r,i=kt({queryKey:["experiment-metrics",e],enabled:s,refetchInterval:t==="running"||t==="pending"?2e3:!1,queryFn:async()=>{if(!e)throw new Error("experimentId is required");const l={experimentId:e},[c,u,d]=await Promise.all([n.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:l}),n.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"avg",filters:l}),n.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:l})]);return{totalTokens:c.value??null,estimatedCost:c.estimatedCost??null,costUnit:c.costUnit??null,avgAgentDurationMs:u.value??null,agentRuns:d.value??null}}});return{data:i.data,isLoading:i.isLoading,isEnabled:s}};function YIs({datasetId:e,experimentId:t}){const[n,r]=g.useState(!1),{updateExperimentResult:s}=dl();return{addTag:g.useCallback(async(i,l)=>{const c=l.filter(d=>!(d.tags??[]).includes(i));if(n||c.length===0)return;r(!0);let u=0;try{u=(await Promise.allSettled(c.map(f=>s.mutateAsync({datasetId:e,experimentId:t,resultId:f.id,tags:[...f.tags??[],i]})))).filter(f=>f.status==="fulfilled").length}finally{r(!1)}u>0?Ye(`Tag "${i}" added to ${u} result${u>1?"s":""}`):Ye.error("Failed to add tag")},[e,t,n,s]),isPending:n}}function KIs({datasetId:e,experimentId:t,results:n}){const[r,s]=g.useState(new Set),[o,i]=g.useState(!1),{updateExperimentResult:l}=dl(),{addTag:c,isPending:u}=YIs({datasetId:e,experimentId:t}),d=sJt(e,n),f=g.useMemo(()=>n.filter(v=>r.has(v.id)),[n,r]),h=g.useCallback(v=>{s(b=>{const x=new Set(b);return x.has(v)?x.delete(v):x.add(v),x})},[]),p=g.useCallback(()=>s(new Set),[]),m=g.useCallback(async()=>{if(o||r.size===0)return;i(!0);const v=new Set;try{for(const b of r)try{await l.mutateAsync({datasetId:e,experimentId:t,resultId:b,status:"needs-review"}),v.add(b)}catch{}}finally{i(!1)}v.size>0&&(s(b=>{const x=new Set(b);for(const w of v)x.delete(w);return x}),Ye(`${v.size} result${v.size>1?"s":""} flagged for review`))},[e,t,o,r,l]),y=g.useCallback(v=>c(v,f),[c,f]);return{selectedIds:r,selectedResults:f,toggleSelect:h,clearSelection:p,flagSelectedForReview:m,isFlagging:o,addTagToSelected:y,isTagging:u,tagVocabulary:d}}const XIs=[],JIs=["startedAt"];function nB({crumbs:e,children:t}){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:e}),children:[a.jsx("h1",{className:"sr-only",children:"Experiment"}),a.jsx("div",{}),a.jsx("div",{className:"flex h-full items-center justify-center",children:t})]})}function eAs(){const{experimentId:e,itemId:t}=hr(),n=[Br("/experiments"),{id:"experiment",Component:ZIs,icon:GIs,to:e?`/experiments/${encodeURIComponent(e)}`:void 0},...t?[{id:"experiment-items",label:"Items"},{id:"experiment-item",label:j_e(t)}]:[]],r=Ur(),[s,o]=g.useState(!1),[i,l]=oo(),{sort:c,onSortChange:u}=ck({searchParams:i,setSearchParams:l,allowedKeys:JIs}),d=g.useMemo(()=>c?{field:c.key,direction:c.direction==="asc"?"ASC":"DESC"}:void 0,[c]),{data:f,isLoading:h}=BX(),m=f?.experiments?.find(N=>N.id===e)?.datasetId??"",{data:y,isLoading:v,error:b}=N4(m,e??""),{data:x,isLoading:w,setEndOfListElement:k,isFetchingNextPage:C,hasNextPage:_}=qSe({datasetId:m,experimentId:e??"",experimentStatus:y?.status,orderBy:d}),T=QIs({experimentId:e,experimentStatus:y?.status}),E=KIs({datasetId:m,experimentId:e??"",results:x??XIs});if(!e||h||v)return null;if(b&&Ss(b))return a.jsx(nB,{crumbs:n,children:a.jsx(Us,{})});if(b&&Ts(b))return a.jsx(nB,{crumbs:n,children:a.jsx(As,{resource:"datasets"})});const I=a.jsx(nB,{crumbs:n,children:a.jsx(dn,{titleSlot:"Experiment not found",descriptionSlot:`No experiment with id "${e}".`,actionSlot:a.jsx(le,{render:a.jsx(vl,{to:"/experiments"}),icon:a.jsx(Eu,{}),children:"Back to Experiments"})})});return b&&AA(b)?I:b?a.jsx(nB,{crumbs:n,children:a.jsx(dn,{tone:"error",titleSlot:"Failed to load experiment",descriptionSlot:b instanceof Error?b.message:"An unexpected error occurred. Please try again."})}):!m||!y?I:a.jsx(Djs,{experimentId:e,datasetId:m,experimentStatus:y.status,results:x??[],isLoadingResults:w,hasNextPage:_,children:a.jsxs("div",{className:"h-full",children:[a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:n}),actionRow:a.jsx(WIs,{experiment:y,onDeleteClick:()=>o(!0),children:a.jsx(LIs,{selection:E})}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsxs("div",{className:"grid grid-cols-[1fr_auto] gap-4 overflow-visible",children:[a.jsx(Vjs,{experimentId:e,experimentStatus:y.status,results:x??[],isLoading:w,setEndOfListElement:k,isFetchingNextPage:C,hasNextPage:_,selectedIds:E.selectedIds,onToggleSelect:E.toggleSelect,sort:c,onSortChange:u}),a.jsx(UIs,{experiment:y,metrics:T,className:"w-80 overflow-y-auto"})]})]}),a.jsx(DIs,{}),a.jsx(UXt,{open:s,onOpenChange:o,experimentId:e,experimentName:y.name??void 0,onSuccess:()=>r("/experiments")})]})})}const WX="targetType",ZX="targetId",GX="experiment",QX="status",YX="tag",Hot={agent:"Agent",workflow:"Workflow",scorer:"Scorer",processor:"Processor"},tAs=[{value:"review",label:"Review queue"},{value:"completed",label:"Completed"}],Wot={[WX]:{icon:Qwt,hue:265},[ZX]:{icon:nSt,hue:315},[GX]:{icon:sG,hue:160},[QX]:{icon:m3,hue:0},[YX]:{icon:U1,hue:340}},Q$=(e,t)=>({id:e,label:t,icon:Wot[e].icon,color:ZIe(Wot[e].hue),strict:!0}),nAs=[{id:"is",label:"is"}],Y$=(e,t)=>({id:e,fieldId:e,operatorId:"is",value:t}),rAs=({targetType:e,targetId:t,experimentId:n,status:r,tag:s})=>{const o=[];return e&&o.push(Y$(WX,e)),t&&o.push(Y$(ZX,t)),n&&o.push(Y$(GX,n)),r!=="review"&&o.push(Y$(QX,r)),s&&o.push(Y$(YX,s)),o},sAs=e=>{const t=s=>{const o=e.find(i=>i.fieldId===s);return typeof o?.value=="string"?o.value:""},n=t(WX),r=VX(n)?n:"";return{targetType:r,targetId:r?t(ZX):"",experimentId:t(GX),status:t(QX)==="completed"?"completed":"review",tag:t(YX)||null}};function oAs({targetType:e,targetId:t,experimentId:n,status:r,tag:s,experiments:o,tagOptions:i,onChange:l}){const{data:c}=nf({enabled:e==="agent"}),{data:u}=lp({enabled:e==="workflow"}),{data:d}=Gf({enabled:e==="scorer"}),{data:f}=Y_({enabled:e==="processor"}),h=g.useMemo(()=>{const m=e==="agent"?Object.entries(c??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="workflow"?Object.entries(u??{}).map(([y,v])=>({value:y,label:v.name??y})):e==="scorer"?Object.entries(d??{}).map(([y,v])=>({value:y,label:v.scorer?.config?.name??y})):e==="processor"?Object.entries(f??{}).map(([y,v])=>({value:y,label:v.name??y})):[];return[{...Q$(WX,"Target type"),suggestions:XMe.map(y=>({value:y,label:Hot[y]}))},{...Q$(ZX,e?Hot[e]:"Target"),hidden:!e,suggestions:m},{...Q$(GX,"Experiment"),suggestions:o.map(y=>({value:y.id,label:VXt(y)}))},{...Q$(QX,"Status"),suggestions:tAs},{...Q$(YX,"Tag"),hidden:i.length===0,suggestions:i}]},[e,c,u,d,f,o,i]),p=g.useMemo(()=>rAs({targetType:e,targetId:t,experimentId:n,status:r,tag:s}),[e,t,n,r,s]);return a.jsxs(Vg,{fields:h,operators:nAs,value:p,onValueChange:m=>l(sAs(m)),createItemId:m=>m,"aria-label":"Review queue filters",className:"min-w-64 flex-1",children:[a.jsx(Vg.Chips,{}),a.jsx(Vg.Input,{placeholder:"Filter review queue…"})]})}const rB=[Br("/experiments"),Br("/experiments/review-queue")],cce="experiment",Zot="review";function iAs(){const[e,t]=oo(),n=e.get(mC),r=VX(n)?n:"",s=r?e.get(yS)??"":"",o=e.get(cce),i=e.get(Zot),{Link:l,paths:c}=fn(),{data:u,error:d}=XXt(void 0,{targetType:r,targetId:s}),f=u?.experiments.find(p=>p.id===o),h=(p,m)=>{p.status!==m.status&&m.onStatusChange(p.status),p.tag!==m.tag&&m.onTagChange(p.tag),t(y=>{const v=new URLSearchParams(y),b=p.targetType!==r,w=b||p.targetId!==s?"":p.experimentId,k=b?"":p.targetId;return p.targetType?v.set(mC,p.targetType):v.delete(mC),k?v.set(yS,k):v.delete(yS),w?v.set(cce,w):v.delete(cce),v.delete(Zot),v},{replace:!0})};return d&&Ss(d)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(Us,{variant:"fill"})]}):d&&Ts(d)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(As,{variant:"fill",resource:"experiments"})]}):d?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:rB}),children:[a.jsx("h1",{className:"sr-only",children:"Review Queue"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load experiments",descriptionSlot:d.message})]}):a.jsx(_Is,{breadcrumbs:a.jsx(St,{crumbs:rB}),datasetId:f?.datasetId??void 0,experimentId:o??void 0,targetType:r,targetId:s,featuredItemId:i,renderFilters:p=>a.jsx(oAs,{targetType:r,targetId:s,experimentId:o??"",status:p.status,tag:p.tag,experiments:u?.experiments??[],tagOptions:p.tagOptions,onChange:m=>h(m,p)}),toolbarEnd:o?a.jsx(le,{render:a.jsx(l,{href:c.experimentLink(o)}),icon:a.jsx(WOe,{}),children:"See experiment"}):void 0})}function aAs({connection:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsxs("li",{className:"flex items-center justify-between border-b py-2",children:[a.jsxs("div",{children:[a.jsx("div",{className:"font-mono text-caption",children:e.connectionId}),a.jsxs("div",{className:"text-caption text-muted-foreground",children:[e.label??"(no label)"," · ",e.status,e.scope?` · ${e.scope}`:"",t&&e.authorId?` · author: ${e.authorId}`:""]})]}),a.jsx("button",{type:"button",className:"text-destructive underline disabled:opacity-50",onClick:r,disabled:n,children:"Disconnect"})]})}function aJt({connections:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsx("ul",{className:"space-y-1",children:e.map(s=>a.jsx(aAs,{connection:s,isAdmin:t,disconnectPending:n,onDisconnect:()=>r(s.connectionId)},s.connectionId))})}function lAs({groups:e,isAdmin:t,disconnectPending:n,onDisconnect:r}){return a.jsx("div",{className:"space-y-4",children:e.map(([s,o])=>a.jsxs("div",{children:[a.jsx("h3",{className:"text-subheading text-foreground","data-testid":`integration-author-group-${s}`,children:s==="shared"?"Shared":`Owned by ${s}`}),a.jsx(aJt,{connections:o,isAdmin:t,disconnectPending:n,onDisconnect:r})]},s))})}function cAs({providerId:e,toolkit:t,connections:n,groupedByAuthor:r,isAdmin:s,isLoading:o,error:i,disconnectPending:l,disconnectError:c,onDisconnect:u}){return a.jsxs("div",{className:"space-y-2 rounded border p-4",children:[a.jsx("h2",{className:"text-heading",children:"Existing connections"}),!e||!t?a.jsx("p",{className:"text-muted-foreground",children:"Pick a provider and toolkit to list connections."}):o?a.jsx("p",{className:"text-muted-foreground",children:"Loading…"}):i?a.jsx("p",{className:"text-destructive",children:String(i)}):n.length===0?a.jsx("p",{className:"text-muted-foreground",children:"No connections."}):r?a.jsx(lAs,{groups:r,isAdmin:s,disconnectPending:l,onDisconnect:u}):a.jsx(aJt,{connections:n,isAdmin:s,disconnectPending:l,onDisconnect:u}),c?a.jsx("p",{className:"text-destructive",children:String(c)}):null]})}function uAs({providers:e,toolkits:t,providerId:n,toolkit:r,label:s,providersLoading:o,providersError:i,toolkitsLoading:l,toolkitsError:c,authorizePending:u,authorizeError:d,authorizedConnection:f,onProviderChange:h,onToolkitChange:p,onLabelChange:m,onConnect:y}){return a.jsxs("div",{className:"space-y-4 rounded border p-4",children:[a.jsx(Su,{name:"provider",label:"Provider",value:n,onValueChange:h,disabled:o,placeholder:o?"Loading providers…":"Select provider",options:e.map(v=>({value:v.id,label:`${v.displayName??v.name} (${v.id})`})),errorMsg:i?String(i):void 0}),a.jsx(Su,{name:"toolkit",label:"Toolkit",value:r,onValueChange:p,disabled:!n||l,placeholder:l?"Loading toolkits…":"Select toolkit",options:t.map(v=>({value:v.slug,label:`${v.name} (${v.slug})`})),errorMsg:c?String(c):void 0}),a.jsx(Wi,{name:"connection-label",label:"Label (optional)",placeholder:"My personal Gmail",value:s,onChange:v=>m(v.target.value),disabled:!n||!r}),a.jsx(le,{type:"button",variant:"primary",onClick:y,disabled:!n||!r||u,children:u?"Authorizing…":"Connect"}),d?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:String(d)})}):null,f?a.jsxs(en,{variant:"success",children:["Authorized: ",f.connectionId," (status: ",f.status,")"]}):null]})}const Got=e=>e.authorId?.trim()||"shared",dAs=(e,t)=>{if(!t||new Set(e.map(Got)).size<=1)return null;const r=new Map;for(const o of e){const i=Got(o);r.set(i,[...r.get(i)??[],o])}const s=Array.from(r.entries());return s.sort(([o],[i])=>o==="shared"?1:i==="shared"?-1:o.localeCompare(i)),s},fAs=["*","tool-providers:*","tool-providers:admin"];function hAs(){const{data:e}=Zm();return e?.permissions?.some(t=>fAs.includes(t))??!1}const pAs=[{id:"integrations",label:"Integrations"}];function mAs(){const[e,t]=g.useState(""),[n,r]=g.useState(""),[s,o]=g.useState(""),i=mR(),l=cK(e||null),c=Z9t(e||null,n||null),u=W9t(),d=q9t(),f=hAs(),h=i.data?.providers??[],p=l.data?.data??[],m=g.useMemo(()=>c.data?.items??[],[c.data?.items]),y=g.useMemo(()=>dAs(m,f),[m,f]),v=w=>{t(w),r("")},b=()=>{!e||!n||u.mutate({providerId:e,toolkit:n,label:s.trim()||null},{onSuccess:()=>{o(""),c.refetch()}})},x=w=>{d.mutate({providerId:e,connectionId:w})};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:pAs}),children:[a.jsx("h1",{className:"sr-only",children:"Integrations"}),a.jsxs("div",{className:"max-w-3xl space-y-6 text-body",children:[a.jsx("p",{className:"text-muted-foreground",children:"Minimal page to verify the ToolProvider backend. Pick a provider and toolkit, then connect."}),a.jsx(uAs,{providers:h,toolkits:p,providerId:e,toolkit:n,label:s,providersLoading:i.isLoading,providersError:i.error,toolkitsLoading:l.isLoading,toolkitsError:l.error,authorizePending:u.isPending,authorizeError:u.error,authorizedConnection:u.data,onProviderChange:v,onToolkitChange:r,onLabelChange:o,onConnect:b}),a.jsx(cAs,{providerId:e,toolkit:n,connections:m,groupedByAuthor:y,isAdmin:f,isLoading:c.isLoading,error:c.error,disconnectPending:d.isPending,disconnectError:d.error,onDisconnect:x})]})]})}function gAs({title:e,description:t,errorBanner:n,children:r}){return a.jsxs("div",{"data-testid":"login-page",className:"w-full max-w-sm space-y-6 p-6",children:[a.jsxs("div",{className:"flex flex-col items-center space-y-2",children:[a.jsx(Dy,{className:"h-10 w-10"}),a.jsx("h1",{className:"text-heading text-foreground",children:e})]}),t,n,r]})}function lJt({redirectUri:e,onSuccess:t,initialMode:n="signin",errorMessage:r}){const{data:s,isLoading:o}=Vl(),{mutate:i,isPending:l,error:c}=OUr(),{mutate:u,isPending:d,error:f}=_Ur(),{mutate:h,isPending:p}=mFt(),[m,y]=g.useState(n),[v,b]=g.useState(""),[x,w]=g.useState(""),[k,C]=g.useState("");if(o)return a.jsx("div",{className:"text-muted-foreground",children:"Loading..."});if(!s?.enabled||!s?.login)return a.jsx("div",{className:"text-muted-foreground",children:"Authentication is not configured"});const{login:_}=s,T=_.type==="sso"||_.type==="both",E=_.type==="credentials"||_.type==="both",I=_.sso,N=_.signUpEnabled!==!1,A=m==="signin"||!N,P=A?l:d,F=A?c:f,L=()=>{t?t():e?window.location.href=e:window.location.href=pK("/")},q=z=>{z.preventDefault(),A?i({email:x,password:k},{onSuccess:L}):u({email:x,password:k,name:v||void 0},{onSuccess:L})},V=()=>{h({redirectUri:e},{onSuccess:z=>{window.location.href=z.url}})},H=()=>{y(A?"signup":"signin")},B=_.description?a.jsxs("div",{className:"flex items-start gap-2.5 rounded-md border border-border bg-sidebar p-3",children:[a.jsx(td,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),a.jsx("p",{className:"text-body text-muted-foreground",children:_.description})]}):null,W=r?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:r})}):null;return a.jsxs(gAs,{title:A?"Sign in to Mastra Studio":"Create your account",description:B,errorBanner:W,children:[E&&a.jsxs("form",{onSubmit:q,className:"space-y-4",children:[!A&&a.jsx(Wi,{name:"name",label:"Name",type:"text",value:v,onChange:z=>b(z.target.value),placeholder:"Your name",variant:"default",size:"lg"}),a.jsx(Wi,{name:"email",label:"Email",type:"email",value:x,onChange:z=>w(z.target.value),placeholder:"you@example.com",required:!0,variant:"default",size:"lg"}),a.jsx(Wi,{name:"password",label:"Password",type:"password",value:k,onChange:z=>C(z.target.value),placeholder:A?"Enter your password":"Create a password",required:!0,variant:"default",size:"lg"}),F?a.jsx("div",{role:"alert",children:a.jsx(en,{variant:"destructive",children:F.message})}):null,a.jsx(le,{icon:a.jsx(sCe,{}),type:"submit",disabled:P,className:"w-full",size:"lg",children:P?A?"Signing in...":"Creating account...":A?"Sign in":"Create account"}),N&&a.jsxs("div",{className:"text-center text-body",children:[a.jsx("span",{className:"text-muted-foreground",children:A?"Don't have an account? ":"Already have an account? "}),a.jsx("button",{type:"button",onClick:H,className:"text-foreground hover:underline",children:A?"Sign up":"Sign in"})]})]}),T&&E&&a.jsxs("div",{className:"relative",children:[a.jsx("div",{className:"absolute inset-0 flex items-center",children:a.jsx("div",{className:"w-full border-t border-border"})}),a.jsx("div",{className:"relative flex justify-center text-body",children:a.jsx("span",{className:"bg-sidebar px-2 text-muted-foreground",children:"or continue with"})})]}),T&&I&&a.jsxs(le,{onClick:V,disabled:p,className:"w-full",size:"lg",children:[I.icon&&a.jsx("span",{className:"mr-2",children:I.icon}),p?"Redirecting...":I.text||"Sign in"]})]})}function vAs(){const[e]=oo(),t=Ur(),n=e.get("redirect")||"/",s=e.get("mode")==="signup"?"signup":"signin",o=e.get("error_description")||e.get("error")||null,i=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return a.jsx(lJt,{redirectUri:n,onSuccess:i,initialMode:s,errorMessage:o})}function cJt({disabled:e,onClear:t,onRemoveAll:n,onSave:r,onRemoveSaved:s}){const o=!!(n||r||s);return!t&&!o?null:a.jsxs("div",{className:"flex items-center gap-2",children:[t&&a.jsx(le,{disabled:e,size:"md",onClick:t,icon:a.jsx(Qt,{}),children:"Clear"}),o&&a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{disabled:e,size:"md","aria-label":"More filter actions",children:a.jsx(B1,{})})}),a.jsxs(ht.Content,{align:"end",children:[n&&a.jsxs(ht.Item,{onSelect:()=>n(),children:[a.jsx(Qt,{}),"Remove all filters"]}),n&&(r||s)&&a.jsx(ht.Separator,{}),r&&a.jsxs(ht.Item,{onSelect:()=>r(),children:[a.jsx(Df,{}),"Save filters for next time"]}),s&&a.jsxs(ht.Item,{onSelect:()=>s(),children:[a.jsx(Ri,{}),"Remove saved filters"]})]})]})]})}const yAs=Z(q1,"min-w-0 focus:text-foreground");function uce({role:e,checked:t,label:n,onClick:r}){return a.jsxs("button",{ref:ap(),type:"button",role:e,"aria-checked":t,"data-selected":t||void 0,"data-pick-multi-item":"",title:n,className:yAs,onClick:r,children:[a.jsx("span",{className:"min-w-0 flex-1 truncate",children:n}),t&&a.jsx("span",{className:_3,children:a.jsx(Hn,{})})]})}function uJt({field:e,tokens:t,onChange:n}){const[r,s]=g.useState(""),o=j0(),i={className:Z("max-h-[80dvh] overflow-auto p-1",o.containerClassName),...o.getContainerProps({})},l=g.useMemo(()=>{const f=r.trim().toLowerCase();return f?e.options.filter(h=>h.label.toLowerCase().includes(f)):e.options},[e.options,r]),c=g.useMemo(()=>t.find(f=>f.fieldId===e.id),[t,e.id]),u=typeof c?.value=="string"?c.value:e.multi?void 0:e.defaultValue,d=g.useMemo(()=>{const f=c?.value;return Array.isArray(f)?f:typeof f=="string"?[f]:[]},[c]);return a.jsxs(a.Fragment,{children:[e.searchable!==!1&&a.jsxs("div",{className:qj.container,children:[a.jsx(Po,{className:qj.icon}),a.jsx("input",{type:"text",value:r,onChange:f=>s(f.target.value),placeholder:`Search ${e.label.toLowerCase()}...`,className:qj.input,onKeyDown:f=>{if(f.key!=="ArrowDown")return;const p=f.currentTarget.closest("[data-pick-multi-panel]")?.querySelector("[data-pick-multi-item]:not([disabled])");p&&(f.preventDefault(),f.stopPropagation(),p.focus())}})]}),e.isLoading?a.jsxs("div",{className:Z(uV,"m-1"),children:[a.jsx(_n,{size:"sm",className:"size-3 text-muted-foreground"}),"Loading options…"]}):l.length===0?a.jsx("div",{className:Z(uV,"m-1"),children:e.emptyText??"No option found."}):e.multi?a.jsx("div",{...i,children:a.jsx(Gy,{menu:o,children:l.map(f=>{const h=d.includes(f.value);return a.jsx(uce,{role:"checkbox",checked:h,label:f.label,onClick:()=>n(e.id,h?d.filter(p=>p!==f.value):[...d,f.value])},f.value)})})}):a.jsx("div",{role:"radiogroup",...i,children:a.jsxs(Gy,{menu:o,children:[l.map(f=>a.jsx(uce,{role:"radio",checked:u===f.value,label:f.label,onClick:()=>n(e.id,f.value)},f.value)),!e.omitAnyOption&&a.jsx(uce,{role:"radio",checked:u==="Any",label:"Any",onClick:()=>n(e.id,"Any")})]})})]})}function t2e(e){return Array.isArray(e)?e.length===0?"Any":e.join(", "):e}const bAs="This filter is set by the current context and cannot be removed here.";function xAs(e,t){return e.kind==="pick-multi"&&e.options?Array.isArray(t)?t.length===0?"Any":t.map(n=>e.options.find(r=>r.value===n)?.label??n).join(", "):e.options.find(n=>n.value===t)?.label??t:t2e(t)}function wAs({field:e,value:t,tooltipContent:n}){const r=xAs(e,t),s=`${e.label} filter is locked by context`;return a.jsx(Ul,{delayDuration:150,children:a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsxs(Bl,{"data-locked-field-id":e.id,"data-property-filter-pill":"locked",tabIndex:0,"aria-label":s,children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsx(zh,{children:r}),a.jsx(zh,{children:a.jsx(td,{})})]})}),a.jsx(Cn,{children:n})]})})}function SAs({field:e,value:t,onChange:n,onRemove:r,disabled:s,autoFocus:o}){const[i,l]=g.useState(t),c=g.useRef(null);return g.useEffect(()=>{i.trim()!==t&&l(t)},[t]),g.useEffect(()=>{o&&c.current?.focus()},[o]),a.jsxs(Bl,{children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsx(vr,{ref:c,disabled:s,value:i,placeholder:e.placeholder??`Enter ${e.label}`,onChange:u=>{const d=u.target.value;l(d),d.trim()!==t&&n(d)},onKeyDown:u=>{if(u.key==="Enter"){u.preventDefault();const d=i.trim();d!==t&&n(d)}else u.key==="Escape"&&(u.preventDefault(),l(t),u.currentTarget.blur())}}),a.jsx(le,{type:"button",disabled:s,"aria-label":`Remove ${e.label} filter`,onMouseDown:u=>u.preventDefault(),onClick:r,children:a.jsx(Qt,{})})]})}function kAs({field:e,token:t,tokens:n,onChange:r,onRemove:s,disabled:o}){const[i,l]=g.useState(!1);return a.jsxs(Bl,{children:[a.jsx(zh,{children:e.label}),a.jsx(zh,{children:"is"}),a.jsxs(cp,{open:i,onOpenChange:l,children:[a.jsx(Wd,{asChild:!0,children:a.jsx(le,{type:"button",disabled:o,children:t2e(t.value)})}),a.jsx(Zf,{align:"start",sideOffset:G_,className:"w-64 p-0","data-pick-multi-panel":!0,children:a.jsx(uJt,{field:e,tokens:n,onChange:r})})]}),a.jsx(le,{type:"button",disabled:o,"aria-label":`Remove ${e.label} filter`,onClick:s,children:a.jsx(Qt,{})})]})}function dJt({fields:e,tokens:t,onTokensChange:n,disabled:r,autoFocusFieldId:s,lockedFieldIds:o,lockedTooltipContent:i=bAs}){if(t.length===0)return null;const l=new Set(o??[]),c=(d,f)=>{const h=[...t];h[d]=f,n(h)},u=d=>{n(t.filter((f,h)=>h!==d))};return a.jsx("div",{className:"flex flex-wrap items-center gap-2",children:t.map((d,f)=>{const h=e.find(p=>p.id===d.fieldId);return h?l.has(d.fieldId)?a.jsx(wAs,{field:h,value:d.value,tooltipContent:i},`${d.fieldId}-${f}`):h.kind==="text"&&!Array.isArray(d.value)?a.jsx(SAs,{field:h,value:d.value,disabled:r,autoFocus:s===d.fieldId,onChange:p=>c(f,{fieldId:d.fieldId,value:p}),onRemove:()=>u(f)},`${d.fieldId}-${f}`):h.kind==="pick-multi"?a.jsx(kAs,{field:h,token:d,tokens:t,disabled:r,onChange:(p,m)=>c(f,{fieldId:p,value:m}),onRemove:()=>u(f)},`${d.fieldId}-${f}`):a.jsxs(Bl,{children:[a.jsx(zh,{children:h.label}),a.jsx(zh,{children:"is"}),a.jsx(zh,{children:t2e(d.value)}),a.jsx(le,{type:"button",disabled:r,"aria-label":`Remove ${h.label} filter`,onClick:()=>u(f),children:a.jsx(Qt,{})})]},`${d.fieldId}-${f}`):null})})}const fJt=Z(q1,"focus:text-foreground"),n2e=g.forwardRef((e,t)=>a.jsx("button",{type:"button",role:"menuitem","data-filter-item":"",ref:ap(t),...e}));n2e.displayName="FilterMenuButton";function hJt({fields:e,tokens:t,onTokensChange:n,label:r="Add Filter",disabled:s,size:o,onStartTextFilter:i,hiddenFieldIds:l}){const c=g.useMemo(()=>{if(!l||l.length===0)return e;const P=new Set(l);return e.filter(F=>!P.has(F.id))},[e,l]),[u,d]=g.useState(!1),f=j0(),[h,p]=g.useState(),[m,y]=g.useState([]),[v,b]=g.useState(),[x,w]=g.useState(),k=g.useRef(!1),C=g.useCallback(P=>{w(F=>F===P?void 0:P)},[]),_=g.useCallback(()=>w(void 0),[]);g.useEffect(()=>{u||w(void 0)},[u]);const T=g.useMemo(()=>c.find(P=>P.id===h),[c,h]),E=g.useMemo(()=>{const P=new Set;for(const F of t){const L=e.find(q=>q.id===F.fieldId);L&&L.kind!=="pick-multi"&&P.add(F.fieldId)}return P},[t,e]),I=g.useCallback(()=>{p(void 0),y([]),b(void 0)},[]);g.useEffect(()=>{u||I()},[u,I]);const N=g.useCallback((P,F)=>{const L=t.findIndex(V=>V.fieldId===P);if(Array.isArray(F)&&F.length===0){if(L===-1)return;n(t.filter((V,H)=>H!==L));return}if(L===-1){n([...t,{fieldId:P,value:F}]);return}const q=[...t];q[L]={fieldId:P,value:F},n(q)},[n,t]),A=g.useCallback(()=>{if(!T){b("Choose a property first.");return}if(E.has(T.id)){b(`Remove the existing ${T.label} filter before adding another.`);return}if(m.length===0){b(`Choose at least one ${T.label.toLowerCase()} value.`);return}n([...t,{fieldId:T.id,value:m}]),d(!1)},[m,n,T,E,t]);return a.jsxs(cp,{open:u,onOpenChange:d,children:[a.jsx(Wd,{asChild:!0,children:a.jsx(le,{size:o,disabled:s,icon:a.jsx(N8e,{}),children:r})}),a.jsx(Zf,{align:"end",sideOffset:G_,className:Z("w-64",T?"p-3":"p-1"),initialFocus:!1,finalFocus:()=>k.current?(k.current=!1,!1):!0,children:a.jsxs("div",{className:Z("grid",T&&"gap-3"),children:[T&&a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("button",{type:"button","aria-label":"Back to properties",className:Z($n,yn),onClick:I,children:a.jsx(Eu,{className:"size-4"})}),a.jsx(dMn,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"text-caption text-muted-foreground",children:`${T.label} · is`})]}),!T&&a.jsx("div",{role:"menu",className:Z("max-h-[80dvh] overflow-auto",f.containerClassName),...f.getContainerProps({}),onKeyDown:P=>{if(P.key!=="ArrowDown"&&P.key!=="ArrowUp"&&P.key!=="Home"&&P.key!=="End")return;const F=Array.from(P.currentTarget.querySelectorAll("[data-filter-item]:not([disabled])"));if(F.length===0)return;P.preventDefault();const L=document.activeElement,q=F.findIndex(H=>H===L);let V;P.key==="Home"?V=0:P.key==="End"?V=F.length-1:P.key==="ArrowDown"?V=q<0?0:(q+1)%F.length:V=q<=0?F.length-1:q-1,F[V]?.focus()},children:a.jsx(Gy,{menu:f,children:c.length>0?c.map(P=>{const F=E.has(P.id);return P.kind==="pick-multi"?a.jsx(OAs,{field:P,tokens:t,onChange:N,open:x===P.id,onToggle:C,onClose:_},P.id):a.jsxs(n2e,{className:Z(fJt,"group"),disabled:F,onClick:()=>{if(b(void 0),P.kind==="text"){n([...t,{fieldId:P.id,value:""}]),i?.(P.id),k.current=!0,d(!1);return}p(P.id)},children:[a.jsx("span",{className:"truncate",children:P.label}),F?a.jsx("span",{className:"ml-auto text-muted-foreground",children:"In use"}):a.jsx("span",{className:Z(bG,"text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100 group-focus:opacity-100"),children:a.jsx(Kr,{})})]},P.id)}):a.jsx("div",{className:uV,children:"No matching property."})})}),T&&a.jsx(qa,{multiple:!0,options:T.options??[],value:m,onValueChange:P=>{y(P),b(void 0)},placeholder:T.placeholder??`Choose ${T.label}`,searchPlaceholder:`Search ${T.label.toLowerCase()}...`,emptyText:T.emptyText??"No option found.",size:"md",name:`property-filter-${T.id}`,"aria-label":T.label,error:v}),T&&a.jsxs("div",{className:"flex items-center justify-end gap-2",children:[a.jsx(le,{icon:a.jsx(Qt,{}),variant:"ghost",size:"md",onClick:()=>d(!1),children:"Cancel"}),a.jsx(le,{icon:a.jsx(N8e,{}),size:"md",onClick:A,children:"Add filter"})]})]})})]})}function OAs({field:e,tokens:t,onChange:n,open:r,onToggle:s,onClose:o}){const i=g.useRef(null);return a.jsxs(cp,{open:r,onOpenChange:l=>{l?s(e.id):o()},children:[a.jsx(Wd,{asChild:!0,children:a.jsxs(n2e,{className:fJt,onKeyDown:l=>{l.key!=="ArrowRight"&&l.key!=="ArrowLeft"||(r||s(e.id),l.preventDefault(),requestAnimationFrame(()=>{i.current?.querySelector('input, button, [tabindex]:not([tabindex="-1"])')?.focus()}))},children:[r&&a.jsx(xr,{className:"text-muted-foreground"}),a.jsx("span",{className:"truncate",children:e.label}),!r&&a.jsx("span",{className:Z(bG,"text-muted-foreground"),children:a.jsx(xr,{})})]})}),a.jsx(Zf,{ref:i,side:"right",align:"start",sideOffset:G_,className:"w-64 p-0",initialFocus:!1,onKeyDown:l=>{if(l.key!=="ArrowDown"&&l.key!=="ArrowUp"&&l.key!=="Home"&&l.key!=="End")return;const c=Array.from(l.currentTarget.querySelectorAll("[data-pick-multi-item]:not([disabled])"));if(c.length===0)return;l.preventDefault(),l.stopPropagation();const u=document.activeElement,d=c.findIndex(h=>h===u);let f;l.key==="Home"?f=0:l.key==="End"?f=c.length-1:l.key==="ArrowDown"?f=d<0?0:(d+1)%c.length:f=d<=0?c.length-1:d-1,c[f]?.focus()},"data-pick-multi-panel":!0,children:a.jsx(uJt,{field:e,tokens:t,onChange:n})})]})}function CAs(e){return e instanceof Date?e:new Date(e)}function _As({log:e,onClose:t,onTraceClick:n,onSpanClick:r,onPrevious:s,onNext:o,depth:i}){const l=e?Rr(CAs(e.timestamp),"MMM dd, HH:mm:ss.SSS"):"";return a.jsx(At,{open:!!e,onClose:t,title:e?`Log ${l}`:"Log",depth:i,children:e&&a.jsxs(a.Fragment,{children:[a.jsxs(At.Header,{children:[a.jsx(At.CloseButton,{onClick:t}),a.jsxs(At.Heading,{children:["Log · ",l]}),a.jsx(At.HeaderActions,{children:a.jsx(At.NextPrevNav,{onPrevious:s,onNext:o,previousLabel:"Go to previous log",nextLabel:"Go to next log"})})]}),a.jsx(At.Content,{children:a.jsxs("div",{className:"grid gap-6 p-2",children:[a.jsxs(Lt,{children:[e.entityType&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Entity Type"}),a.jsx(Lt.Value,{children:e.entityType})]}),e.entityName&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Entity Name"}),a.jsx(Lt.Value,{children:e.entityName})]}),e.serviceName&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Service"}),a.jsx(Lt.Value,{children:e.serviceName})]}),e.environment&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Environment"}),a.jsx(Lt.Value,{children:e.environment})]}),e.source&&a.jsxs(a.Fragment,{children:[a.jsx(Lt.Key,{children:"Source"}),a.jsx(Lt.Value,{children:e.source})]}),e.metadata&&Object.entries(e.metadata).map(([c,u])=>a.jsxs(g.Fragment,{children:[a.jsx(Lt.Key,{children:c}),a.jsx(Lt.Value,{children:String(u)})]},c))]}),a.jsx(At.CodeSection,{title:"Message",codeStr:e.message,simplified:!0}),(e.traceId||e.spanId)&&a.jsxs("div",{className:"grid gap-2",children:[e.traceId&&a.jsxs(Bl,{className:"w-full min-w-0",children:[a.jsxs(le,{className:"min-w-0 flex-1 justify-between overflow-hidden",icon:a.jsx(qf,{}),onClick:()=>e.traceId&&n?.(e.traceId),children:[a.jsx("span",{children:"Trace"}),a.jsxs("span",{className:"ml-auto min-w-0 truncate text-caption text-placeholder",children:["# ",e.traceId]})]}),a.jsx(Co,{content:e.traceId,tooltip:"Copy Trace ID to clipboard"})]}),e.spanId&&a.jsxs(Bl,{className:"w-full min-w-0",children:[a.jsxs(le,{className:"min-w-0 flex-1 justify-between overflow-hidden",disabled:!e.traceId||!r,onClick:()=>e.traceId&&e.spanId&&r?.(e.traceId,e.spanId),icon:a.jsx(qf,{}),children:[a.jsx("span",{children:"Span"}),a.jsxs("span",{className:"ml-auto min-w-0 truncate text-caption text-placeholder",children:["# ",e.spanId]})]}),a.jsx(Co,{content:e.spanId,tooltip:"Copy Span ID to clipboard"})]})]}),e.data&&Object.keys(e.data).length>0&&a.jsx(At.CodeSection,{title:"Data",codeStr:JSON.stringify(e.data,null,2)})]})})]})})}function EAs({error:e,resource:t,errorTitle:n}){if(Ss(e))return a.jsx(Us,{});if(Ts(e))return a.jsx(As,{resource:t});if(N3(e))return a.jsx(dn,{titleSlot:"Observability storage is not available",descriptionSlot:"The observability storage domain is disabled or not configured. Enable it in your storage configuration to view logs in Studio."});if(j3(e,"logs"))return a.jsx(dn,{titleSlot:"Logs are not available with your current storage",descriptionSlot:"The configured observability storage provider does not support listing logs. Switch to a storage provider with logs support to view runtime logs in Studio."});const r=e instanceof Error?e.message:void 0;return a.jsx(dn,{tone:"error",titleSlot:n,descriptionSlot:r??"Unknown error"})}const TAs={debug:"neutral",info:"blue",warn:"yellow",error:"red",fatal:"red"};function jAs({level:e}){return a.jsx(ha,{children:a.jsx($t,{variant:TAs[e],children:e})})}function NAs({entityType:e,className:t}){const n=Z("size-3.5 shrink-0 text-placeholder",t);switch(e.toLowerCase()){case"agent":return a.jsx(Mi,{className:n,"aria-hidden":!0});case"workflow":case"workflow_run":return a.jsx(xl,{className:n,"aria-hidden":!0});case"tool":return a.jsx(Gd,{className:n,"aria-hidden":!0});default:return null}}function IAs({entityType:e,entityName:t}){const n=e??"";return a.jsxs(ha,{className:"flex min-w-0 items-center gap-2",children:[a.jsx(NAs,{entityType:n}),t?a.jsx("span",{className:"min-w-0 truncate text-body-sm",children:t}):"-"]})}function AAs({message:e}){return a.jsx(ha,{className:"min-w-0 truncate font-mono text-body-sm text-muted-foreground",children:e})}function RAs({data:e}){if(!e||Object.keys(e).length===0)return a.jsx(ha,{children:null});const t=Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${n}: ${r}`;try{return`${n}: ${JSON.stringify(r)}`}catch{return`${n}: <unserializable>`}}).join(", ");return a.jsx(vIe,{font:"mono",children:t})}const jl=Object.assign(P5,{Top:$5,TopCell:U0,SortableTopCell:ZY,TopCellWithTooltip:qY,TopCellSmart:D3t,RowWrapper:wIe,RowButton:M5,RowLink:xIe,Spacer:SIe,NoMatch:WY,DateCell:P3t,TimeCell:M3t,LevelCell:jAs,EntityCell:IAs,MessageCell:AAs,DataCell:RAs,NextPageLoading:HY}),Qot="6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)",PAs=36,$As=8;function MAs({logs:e,isLoading:t,isFetchingNextPage:n,hasNextPage:r,setEndOfListElement:s,logIdMap:o,featuredLogId:i,onLogClick:l,timestampSort:c,onSortChange:u}){const d=g.useRef(null),f=bKt({count:e.length,getScrollElement:()=>d.current,estimateSize:()=>PAs,overscan:$As}),{getRowProps:h}=Uc({count:e.length,containerRef:d,onNavigate:x=>f.scrollToIndex(x),global:!0}),p=g.useRef(t);if(g.useEffect(()=>{p.current&&!t&&d.current?.dispatchEvent(new Event("scroll")),p.current=t},[t]),t)return a.jsx(hc,{columns:Qot,fit:"container"});const m=f.getVirtualItems(),y=f.getTotalSize(),v=m[0]?.start??0,b=m.length>0?Math.max(0,y-(m[m.length-1]?.end??0)):0;return a.jsxs(jl,{columns:Qot,scrollRef:d,className:"min-w-0",fit:"container",children:[a.jsxs(jl.Top,{children:[u?a.jsx(jl.SortableTopCell,{sortKey:"timestamp",sort:c,onSortChange:u,children:"Date"}):a.jsx(jl.TopCell,{children:"Date"}),a.jsx(jl.TopCell,{children:"Time"}),a.jsx(jl.TopCell,{children:"Level"}),a.jsx(jl.TopCell,{children:"Entity"}),a.jsx(jl.TopCell,{children:"Message"}),a.jsx(jl.TopCell,{children:"Data"})]}),e.length===0?a.jsx(jl.NoMatch,{message:"No logs match your search"}):a.jsxs(a.Fragment,{children:[a.jsx(jl.Spacer,{height:v}),m.map(x=>{const w=e[x.index];if(!w)return null;const k=o.get(w);if(!k)return null;const C=k===i;return a.jsxs(jl.RowButton,{ref:f.measureElement,"data-index":x.index,...h(x.index),onClick:()=>l(w),featured:C,variant:w.level==="error"||w.level==="fatal"?"error":"default",children:[a.jsx(jl.DateCell,{timestamp:w.timestamp}),a.jsx(jl.TimeCell,{timestamp:w.timestamp}),a.jsx(jl.LevelCell,{level:w.level}),a.jsx(jl.EntityCell,{entityType:w.entityType,entityName:w.entityName}),a.jsx(jl.MessageCell,{message:w.message}),a.jsx(jl.DataCell,{data:w.data})]},k)}),a.jsx(jl.Spacer,{height:b})]}),a.jsx(jl.NextPageLoading,{isLoading:n,hasMore:r,setEndOfListElement:s})]})}function DAs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:o,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>LAs(f,o));return u?a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] items-start gap-3"),children:[a.jsx(dJt,{fields:o,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&a.jsx(cJt,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]}):null}function LAs(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}const FAs={"last-24h":"the last 24 hours","last-3d":"the last 3 days","last-7d":"the last 7 days","last-14d":"the last 14 days","last-30d":"the last 30 days"},dce="MMM d, yyyy HH:mm",fce="Pick a wider range or lower the logging level — verbose entries (debug, info) may be filtered out.";function zAs({datePreset:e,dateFrom:t,dateTo:n}){return e&&e!=="all"&&e!=="custom"?{title:`No logs for ${FAs[e]}`,description:fce}:t&&n?{title:`No logs between ${Rr(t,dce)} and ${Rr(n,dce)}`,description:fce}:t?{title:`No logs since ${Rr(t,dce)}`,description:fce}:{title:"No logs yet",description:"Logs will appear here once agents, workflows, or tools are executed."}}const BAs=({datePreset:e,dateFrom:t,dateTo:n}={})=>{const{title:r,description:s}=zAs({datePreset:e,dateFrom:t,dateTo:n});return a.jsx(dn,{titleSlot:r,descriptionSlot:s,actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/en/docs/observability/logging",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Logging Documentation"}),variant:"fill"})},UAs=20,VAs=1e4,qAs={field:"timestamp",direction:"DESC"};function HAs(e,t,n){if(e?.pagination?.hasMore)return n+1}function WAs(e){const t=new Set,n=[];for(const r of e.pages)for(const s of r.logs??[]){const o=s.logId??JSON.stringify(s);t.has(o)||(t.add(o),n.push(s))}return n}function ZAs(e){return j3(e.state.error,"logs")||N3(e.state.error)?!1:VAs}const GAs=({filters:e,orderBy:t=qAs}={})=>{const n=Je(),{inView:r,setRef:s}=N0(),o=hv({queryKey:["logs",e,t],queryFn:({pageParam:p})=>n.listLogsVNext({pagination:{page:p,perPage:UAs},filters:e,orderBy:t}),initialPageParam:0,getNextPageParam:HAs,select:WAs,retry:!1,refetchInterval:ZAs}),{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c,data:u,isLoading:d,isError:f,error:h}=o;return g.useEffect(()=>{r&&i&&!l&&c()},[r,i,l,c]),{data:u,hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c,isLoading:d,isError:f,error:h,setEndOfListElement:s}},sB={AGENT:"agent",WORKFLOW:"workflow_run",SCORER:"scorer",INGEST:"rag_ingestion"},pJt=[{label:"Agent",entityType:sB.AGENT},{label:"Workflow",entityType:sB.WORKFLOW},{label:"Scorer",entityType:sB.SCORER},{label:"Ingest",entityType:sB.INGEST}],QAs=[{label:"Debug",value:"debug"},{label:"Info",value:"info"},{label:"Warn",value:"warn"},{label:"Error",value:"error"},{label:"Fatal",value:"fatal"}],v0="rootEntityType",xx="datePreset",wx="dateFrom",Sx="dateTo",YAs=new Set(["all","last-24h","last-3d","last-7d","last-14d","last-30d","custom"]),Al={level:"filterLevel",tags:"filterTags",entityName:"filterEntityName",traceId:"filterTraceId",spanId:"filterSpanId",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId"},M6=Object.keys(Al),r2e=new Set(["tags"]),s2e="mastra:logs:saved-filters";function KAs(e,t=s2e){const n=nRs(e),r=e.get(xx);r&&n.set(xx,r);const s=e.get(wx);s&&n.set(wx,s);const o=e.get(Sx);o&&n.set(Sx,o);try{localStorage.setItem(t,n.toString())}catch{}}function XAs(e=s2e){try{localStorage.removeItem(e)}catch{}}function Yot(e=s2e){try{const t=localStorage.getItem(e);if(!t)return null;const n=new URLSearchParams(t);return n.toString()?n:null}catch{return null}}function JAs(e){if(e.has(xx)||e.has(wx)||e.has(Sx)||e.has(v0))return!0;for(const t of M6)if(e.has(Al[t]))return!0;return!1}function eRs({availableTags:e,availableRootEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const o=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:pJt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"level",label:"Level",kind:"pick-multi",searchable:!1,options:QAs.map(u=>({label:u.label,value:u.value})),placeholder:"Choose level",emptyText:"No levels."},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"traceId",label:"Trace ID",kind:"text"},{id:"spanId",label:"Span ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"threadId",label:"Thread ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=o.filter(u=>u.kind==="pick-multi").sort(i),c=o.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function tRs(e){const t=[],n=new Map([[v0,"rootEntityType"]]);for(const s of M6)n.set(Al[s],s);const r=new Set;for(const[s]of e.entries()){const o=n.get(s);if(!o||r.has(o))continue;if(r.add(o),r2e.has(o)){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:o,value:l.filter(Boolean)});continue}const i=e.get(s);i!==null&&t.push({fieldId:o,value:i})}return t}function nRs(e){const t=new URLSearchParams,n=e.get(v0);n&&t.set(v0,n);for(const r of M6){const s=Al[r];if(r2e.has(r)){for(const i of e.getAll(s))t.append(s,i);continue}const o=e.get(s);o&&t.set(s,o)}return t}function rRs(e,t){e.delete(v0);for(const n of M6)e.delete(Al[n]);for(const n of t){if(n.fieldId==="rootEntityType"&&typeof n.value=="string"){e.set(v0,n.value);continue}const r=Al[n.fieldId];if(r){if(r2e.has(n.fieldId)&&Array.isArray(n.value)){if(n.value.length===0)e.append(r,"");else for(const s of n.value)e.append(r,s);continue}typeof n.value=="string"&&e.set(r,n.value.trim())}}}function sRs({rootEntityType:e,dateFrom:t,dateTo:n,tokens:r}){const s={};e&&(s.rootEntityType=e),(t||n)&&(s.timestamp={...t?{start:t}:{},...n?{end:n}:{}});for(const o of r){if(o.fieldId==="tags"){Array.isArray(o.value)&&o.value.length>0?s.tags=o.value:typeof o.value=="string"&&o.value.trim()&&(s.tags=[o.value.trim()]);continue}if(o.fieldId==="level"){typeof o.value=="string"&&o.value.trim()&&o.value!=="Any"&&(s.level=o.value);continue}if(typeof o.value=="string"&&o.value.trim()&&o.value!=="Any")switch(o.fieldId){case"entityName":s.rootEntityName=o.value;break;case"traceId":s.traceId=o.value;break;case"spanId":s.spanId=o.value;break;case"runId":s.runId=o.value;break;case"threadId":s.threadId=o.value;break;case"sessionId":s.sessionId=o.value;break;case"requestId":s.requestId=o.value;break;case"resourceId":s.resourceId=o.value;break;case"userId":s.userId=o.value;break;case"organizationId":s.organizationId=o.value;break;case"serviceName":s.serviceName=o.value;break;case"environment":s.environment=o.value;break;case"experimentId":s.experimentId=o.value;break}}return s}function oRs(e,t){return t.map(n=>{const r=e.find(s=>s.id===n.fieldId);return r?r.kind==="text"?{fieldId:n.fieldId,value:""}:r.kind==="pick-multi"?r.multi?{fieldId:n.fieldId,value:[]}:{fieldId:n.fieldId,value:"Any"}:n:n})}const iRs="Filters setting for Logs saved",aRs="Filters setting for Logs cleared up";function lRs(e,t,n){const{storageKey:r,messages:s,skipHydration:o}={},[i,l]=g.useState(()=>Yot(r)!==null),c=g.useCallback(()=>{KAs(e,r),l(!0);const f=s?.saved??iRs;f!==!1&&Ye.success(f)},[e,r,s?.saved]),u=g.useCallback(()=>{XAs(r),l(!1);const f=s?.cleared??aRs;f!==!1&&Ye.success(f)},[r,s?.cleared]),d=g.useRef(!1);return g.useEffect(()=>{if(o||d.current||(d.current=!0,JAs(e)))return;const f=Yot(r);f&&t(h=>{const p=new URLSearchParams(h);for(const[m,y]of f)p.append(m,y);return p},{replace:!0})},[]),{hasSavedFilters:i,handleSave:c,handleRemoveSaved:u}}function cRs(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function uRs(e){const t=new Map;for(const n of e){if(n.logId){t.set(n,n.logId);continue}const r=n.timestamp instanceof Date?n.timestamp.toISOString():n.timestamp;t.set(n,cRs(`${r}${n.message??""}${n.data?JSON.stringify(n.data):""}`))}return t}function dRs(e,t,n,r){const s=g.useMemo(()=>uRs(e),[e]),o=g.useMemo(()=>{const p=new Map;for(const[m,y]of e.entries()){const v=s.get(y);v&&p.set(v,{log:y,idx:m})}return p},[e,s]),l=(t?o.get(t):void 0)?.idx??-1,c=l>=0?e[l]??null:null,u=g.useCallback(p=>s.get(p),[s]),d=g.useCallback(p=>{const m=s.get(p);if(m){if(t===m){n({logId:null});return}n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}},[s,t,r,n]),f=l>0?()=>{const p=e[l-1];if(!p)return;const m=s.get(p);m&&n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}:void 0,h=l>=0&&l<e.length-1?()=>{const p=e[l+1];if(!p)return;const m=s.get(p);m&&n(r?{logId:m,traceId:p.traceId??null,spanId:null}:{logId:m})}:void 0;return{logIdMap:s,getLogId:u,featuredLog:c,handleLogClick:d,handlePreviousLog:f,handleNextLog:h}}const GSe="logId",QSe="traceId",YSe="spanId",K$=1440*60*1e3,fRs={"last-24h":K$,"last-3d":3*K$,"last-7d":7*K$,"last-14d":14*K$,"last-30d":30*K$};function oB(e){e.delete(GSe),e.delete(QSe),e.delete(YSe)}function hRs(e,t,n){const{onRemoveAll:r}={},s=g.useMemo(()=>{const C=e.get(xx);return C&&YAs.has(C)?C:"last-24h"},[e]),o=e.get(wx),i=e.get(Sx),l=g.useMemo(()=>{if(s==="custom"){if(!o)return;const _=new Date(o);return Number.isNaN(_.getTime())?void 0:_}if(s==="all")return;const C=fRs[s];return C?new Date(Date.now()-C):void 0},[s,o]),c=g.useMemo(()=>{if(s!=="custom"||!i)return;const C=new Date(i);return Number.isNaN(C.getTime())?void 0:C},[s,i]),u=g.useRef(s);u.current=s;const d=e.get(GSe),f=e.get(QSe),h=e.get(YSe),p=g.useMemo(()=>pJt.find(C=>C.entityType===e.get(v0)),[e]),m=g.useMemo(()=>tRs(e),[e]),y=g.useCallback(C=>{t(_=>{const T=new URLSearchParams(_);for(const[E,I]of Object.entries(C)){const N=E==="logId"?GSe:E==="traceId"?QSe:YSe;I?T.set(N,I):T.delete(N)}return T},{replace:!0})},[t]),v=g.useCallback(C=>{t(_=>{const T=new URLSearchParams(_);return rRs(T,C),oB(T),T},{replace:!0})},[t]),b=v,x=g.useCallback((C,_)=>{if(u.current!=="custom")return;const T=_==="from"?wx:Sx;t(E=>{const I=new URLSearchParams(E);return C?I.set(T,C.toISOString()):I.delete(T),oB(I),I},{replace:!0})},[t]),w=g.useCallback(C=>{u.current=C,t(_=>{const T=new URLSearchParams(_);return C==="last-24h"?(T.delete(xx),T.delete(wx),T.delete(Sx)):C==="custom"?T.set(xx,"custom"):(T.set(xx,C),T.delete(wx),T.delete(Sx)),oB(T),T},{replace:!0})},[t]),k=g.useCallback(()=>{t(C=>{const _=new URLSearchParams(C);_.delete(v0);for(const T of M6)_.delete(Al[T]);return _.delete(xx),_.delete(wx),_.delete(Sx),oB(_),_},{replace:!0}),r?.()},[t,r]);return g.useMemo(()=>({searchParams:e,setSearchParams:t,datePreset:s,selectedDateFrom:l,selectedDateTo:c,datePresetRef:u,featuredLogId:d,featuredTraceId:f,featuredSpanId:h,selectedEntityOption:p,filterTokens:m,handleFeaturedChange:y,handleFilterTokensChange:b,handleDateChange:x,handleDatePresetChange:w,handleRemoveAll:k,applyFilterTokens:v}),[e,t,s,l,c,u,d,f,h,p,m,y,b,x,w,k,v])}const mJt=()=>{const e=Je();return kt({queryKey:["observability-service-names"],queryFn:async()=>{try{return await e.getServiceNames()}catch{return{serviceNames:[]}}},select:t=>t?.serviceNames??[],retry:!1,staleTime:A6})},gJt=()=>{const e=Je();return kt({queryKey:["observability-tags"],queryFn:async()=>{try{return await e.getTags()}catch{return{tags:[]}}},select:t=>t?.tags??[],retry:!1,staleTime:A6})},hce=[Br("/logs")],pRs=["timestamp"],mRs={key:"timestamp",direction:"desc"};function gRs(){const[e,t]=oo(),n=hRs(e,t),{sort:r,onSortChange:s}=ck({searchParams:e,setSearchParams:t,allowedKeys:pRs,defaultSort:mRs}),o=g.useMemo(()=>({field:"timestamp",direction:r?.direction==="asc"?"ASC":"DESC"}),[r?.direction]),i=lRs(e,t),[l,c]=g.useState(),{data:u=[],isPending:d}=gJt(),{data:f=[],isPending:h}=MMe({entityType:n.selectedEntityOption?.entityType,rootOnly:!0}),{data:p=[],isPending:m}=DMe(),{data:y=[],isPending:v}=mJt(),b=g.useMemo(()=>eRs({availableTags:u,availableRootEntityNames:f,availableServiceNames:y,availableEnvironments:p,loading:{tags:d,entityNames:h,serviceNames:v,environments:m}}),[u,f,y,p,d,h,v,m]),x=g.useMemo(()=>sRs({rootEntityType:n.selectedEntityOption?.entityType,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,tokens:n.filterTokens}),[n.filterTokens,n.selectedDateFrom,n.selectedDateTo,n.selectedEntityOption]),{data:w=[],isLoading:k,error:C,isFetchingNextPage:_,hasNextPage:T,setEndOfListElement:E}=GAs({filters:x,orderBy:o}),{logIdMap:I,featuredLog:N,handleLogClick:A,handlePreviousLog:P,handleNextLog:F}=dRs(w,n.featuredLogId,n.handleFeaturedChange,n.featuredTraceId),{data:L,isLoading:q}=CE(n.featuredTraceId??null),V=g.useCallback(()=>n.applyFilterTokens(oRs(b,n.filterTokens)),[b,n]),H=g.useCallback(()=>n.handleFeaturedChange({logId:null}),[n]),B=g.useCallback(M=>n.handleFeaturedChange({traceId:M,spanId:null}),[n]),W=g.useCallback((M,U)=>n.handleFeaturedChange({traceId:M,spanId:U}),[n]),z=g.useCallback(()=>n.handleFeaturedChange({traceId:null,spanId:null}),[n]),Y=g.useCallback(M=>n.handleFeaturedChange({spanId:M??null}),[n]),D=a.jsxs(a.Fragment,{children:[a.jsx(Vn,{children:a.jsxs(Vn.Start,{children:[a.jsx(D5,{preset:n.datePreset,onPresetChange:n.handleDatePresetChange,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo,onDateChange:n.handleDateChange,disabled:k,presets:["last-24h","last-3d","last-7d","last-14d","last-30d","custom"]}),a.jsx(hJt,{fields:b,tokens:n.filterTokens,onTokensChange:n.handleFilterTokensChange,disabled:k,onStartTextFilter:c})]})}),a.jsx(DAs,{isLoading:k,filterFields:b,filterTokens:n.filterTokens,onFilterTokensChange:n.handleFilterTokensChange,onClear:V,onRemoveAll:n.handleRemoveAll,onSave:i.handleSave,onRemoveSaved:i.hasSavedFilters?i.handleRemoveSaved:void 0,autoFocusFilterFieldId:l})]});if(C)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsx(EAs,{error:C,resource:"logs",errorTitle:"Failed to load logs"})})]});const R=!!n.selectedEntityOption||n.filterTokens.length>0;return w.length===0&&!k&&!R?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx(BAs,{datePreset:n.datePreset,dateFrom:n.selectedDateFrom,dateTo:n.selectedDateTo})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:hce}),actionRow:D,children:[a.jsx("h1",{className:"sr-only",children:"Logs"}),a.jsx(MAs,{logs:w,isLoading:k,isFetchingNextPage:_,hasNextPage:T,setEndOfListElement:E,logIdMap:I,featuredLogId:n.featuredLogId,onLogClick:A,timestampSort:r?.direction,onSortChange:s}),a.jsx(_As,{log:N??void 0,onClose:H,onTraceClick:B,onSpanClick:W,onPrevious:P,onNext:F}),a.jsx(GMe,{depth:2,traceId:N?n.featuredTraceId??void 0:void 0,spans:L?.spans,isLoadingSpans:q,selectedSpanId:n.featuredSpanId??null,onSpanSelect:Y,onClose:z})]})}const vRs={name:e=>e.name||e.id};function yRs({server:e,rowProps:t}){const{paths:n,Link:r}=fn(),o=Je().options.baseUrl,l=e.transports?.includes("sse")??!0?"sse":"mcp",c=o?`${o}/api/mcp/${e.id}/${l}`:"",{data:u}=YZt(e),d=Object.values(u||{}),f=d.length,h=d.filter(y=>y.toolType==="agent").length,p=d.filter(y=>y.toolType==="workflow").length,m=ef(e.name,50);return a.jsxs(xe.RowLink,{to:n.mcpServerLink(e.id),LinkComponent:r,...t,children:[a.jsx(xe.NameCell,{children:m}),a.jsx(xe.DescriptionCell,{children:c}),a.jsx(xe.TextCell,{className:"text-center",children:h||""}),a.jsx(xe.TextCell,{className:"text-center",children:f||""}),a.jsx(xe.TextCell,{className:"text-center",children:p||""})]})}function bRs({mcpServers:e,isLoading:t,search:n="",sort:r,onSortChange:s}){const o=g.useMemo(()=>{const c=n.toLowerCase();return Q0(e.filter(u=>u.name?.toLowerCase().includes(c)||u.id?.toLowerCase().includes(c)),r,vRs)},[e,n,r]),{containerRef:i,getRowProps:l}=Uc({count:o.length,global:!0});return t?a.jsx(hc,{columns:"auto 1fr auto auto auto"}):a.jsxs(xe,{columns:"auto 1fr auto auto auto",scrollRef:i,children:[a.jsxs(xe.Top,{children:[s?a.jsx(xe.SortableTopCell,{sortKey:"name",sort:r?.key==="name"?r.direction:void 0,onSortChange:s,children:"Name"}):a.jsx(xe.TopCell,{children:"Name"}),a.jsx(xe.TopCell,{children:"URL"}),a.jsx(xe.TopCellSmart,{long:"Agents",short:a.jsx(Mi,{}),tooltip:"Agent Tools",className:"text-center"}),a.jsx(xe.TopCellSmart,{long:"Tools",short:a.jsx(Gd,{}),tooltip:"Tools",className:"text-center"}),a.jsx(xe.TopCellSmart,{long:"Workflows",short:a.jsx(xl,{}),tooltip:"Workflow Tools",className:"text-center"})]}),o.length===0&&n?a.jsx(xe.NoMatch,{message:"No MCP Servers match your search"}):null,o.map((c,u)=>a.jsx(yRs,{server:c,rowProps:l(u)},c.id))]})}const xRs=()=>a.jsx(dn,{titleSlot:"No MCP Servers yet",descriptionSlot:a.jsxs(a.Fragment,{children:["MCP servers are not configured yet. ",a.jsx("br",{}),"More information in the documentation."]}),actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/tools-mcp/mcp-overview",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"MCP Documentation"}),variant:"fill"}),X$=[Br("/mcps")],wRs=()=>{const{data:e=[],isLoading:t,error:n}=IA(),[r,s]=g.useState(""),[o,i]=g.useState();return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(As,{variant:"fill",resource:"MCP servers"})]}):n?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load MCP servers",descriptionSlot:n.message})]}):e.length===0&&!t?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(xRs,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:X$}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:s,label:"Filter MCP servers",placeholder:"Filter by name"})})})}),children:[a.jsx("h1",{className:"sr-only",children:"MCP Servers"}),a.jsx(bRs,{mcpServers:e,isLoading:t,search:r,sort:o,onSortChange:(l,c)=>i({key:c,direction:l})})]})},Kot="auto 1fr auto",SRs={tool:"Tool",agent:"Agent",workflow:"Workflow"};function kRs(e){return e in Z$e}function ORs({type:e}){const t=kRs(e)?e:"tool",n=Z$e[t],r=SRs[t];return a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{"aria-label":t,className:"text-neutral3 inline-flex [&>svg]:size-4",children:a.jsx(n,{})})}),a.jsx(Cn,{children:r})]})}const CRs=gr({ui:gr({resourceUri:jn().optional()}).optional(),"ui/resourceUri":jn().optional()});function _Rs(e){const t=CRs.safeParse(e);return t.success?!!(t.data.ui?.resourceUri?.startsWith("ui://")||t.data["ui/resourceUri"]?.startsWith("ui://")):!1}function ERs({server:e}){const[t,n]=g.useState(""),{data:r={},isLoading:s}=YZt(e),{Link:o,paths:i}=fn(),l=g.useMemo(()=>{const d=t.toLowerCase();return Object.values(r).filter(f=>f.name.toLowerCase().includes(d)||f.description?.toLowerCase().includes(d))},[r,t]),{containerRef:c,getRowProps:u}=Uc({count:l.length});return a.jsxs("section",{className:"flex flex-col gap-3",children:[a.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[a.jsx(Ae,{as:"h2",variant:"heading",children:"Available tools"}),a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:n,label:"Filter tools",placeholder:"Filter by name",shortcutDisabled:!0})})]}),s?a.jsx(hc,{columns:Kot}):a.jsxs(xe,{columns:Kot,scrollRef:c,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Name"}),a.jsx(xe.TopCell,{children:"Description"}),a.jsx(xe.TopCell,{className:"justify-center text-center",children:"Type"})]}),l.length===0&&t?a.jsx(xe.NoMatch,{message:"No tools match your search"}):null,l.map((d,f)=>a.jsxs(xe.RowLink,{to:i.mcpServerToolLink(e.id,d.name),LinkComponent:o,...u(f),children:[a.jsx(xe.NameCell,{children:a.jsxs("span",{className:"flex items-center gap-2",children:[d.name,_Rs(d._meta)&&a.jsx($t,{size:"xs",children:"App"})]})}),a.jsx(xe.DescriptionCell,{children:d.description}),a.jsx(xe.TextCell,{className:"justify-center text-center",children:a.jsx(ORs,{type:d.toolType??"tool"})})]},d.name))]})]})}const TRs=({isLoading:e,server:t})=>{const[{sseUrl:n,httpStreamUrl:r},s]=g.useState({sseUrl:"",httpStreamUrl:""});if(g.useEffect(()=>{if(!t)return;const c=window.MASTRA_SERVER_HOST,u=window.MASTRA_SERVER_PORT;let d=null;c&&u&&(d=`http://${c}:${u}`);const f=d||"http://localhost:4111",h=`${f}/api/mcp/${t.id}/sse`,p=`${f}/api/mcp/${t.id}/mcp`;s({sseUrl:h,httpStreamUrl:p})},[t]),e)return null;if(!t)return a.jsx(Ae,{as:"h1",variant:"heading",tone:"muted",className:"py-20 text-center",children:"Server not found"});const o=t.transports?.includes("sse")??!0,i=`npx -y mcp-remote ${o?n:r}`,l=[{value:"http",label:"HTTP",description:"Use for stateless HTTP transport with streamable responses.",content:r,tooltip:"Copy HTTP Stream URL"},...o?[{value:"sse",label:"SSE",description:"Use for real-time communication via SSE.",content:n,tooltip:"Copy SSE URL"}]:[],{value:"cli",label:"CLI",description:"Use for local command-line access via npx and mcp-remote.",content:i,tooltip:"Copy Command Line Config"}];return a.jsxs("div",{className:"flex flex-col gap-6 pt-4",children:[a.jsx(Ou,{children:a.jsxs(Ya,{defaultTab:"http",children:[a.jsxs(Aq,{className:"border-border1 flex-row items-center justify-between gap-3 space-y-0 border-b",children:[a.jsx(Y1,{className:"shrink-0",children:"Connect"}),a.jsx("div",{className:"min-w-0",children:a.jsx(Qa,{variant:"pill-ghost",size:"sm",children:l.map(c=>a.jsx(Ar,{value:c.value,children:c.label},c.value))})})]}),l.map(c=>a.jsx(vs,{value:c.value,flush:!0,children:a.jsxs(ov,{className:"flex flex-col gap-3",children:[a.jsx(Ae,{tone:"muted",children:c.description}),a.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-lg bg-muted py-2 pr-2 pl-3",children:[a.jsx(Ae,{as:"span",className:"min-w-0 font-mono break-all",children:c.content}),a.jsx(Co,{tooltip:c.tooltip,content:c.content})]})]})},c.value))]})}),a.jsx(ERs,{server:t})]})},jRs=()=>{const{serverId:e}=hr(),t=[Br("/mcps"),oCt],{data:n=[],isLoading:r}=IA(),s=n.find(l=>l.id===e),o=s?.transports?.includes("sse")??!0,i=r||s?a.jsxs(Ic,{children:[a.jsx(Ic.Title,{isLoading:r,children:s?.name}),s&&a.jsx(Ic.Meta,{beside:!0,children:a.jsxs($t,{size:"sm",children:["v",s.version_detail.version]})}),s&&a.jsx(Ic.Description,{children:o?"This MCP server can be accessed through multiple transport methods. Choose the one that best fits your use case.":"This MCP server speaks Streamable HTTP only (protocol 2026-07-28)."})]}):void 0;return a.jsx(pt,{variant:"narrow",breadcrumbs:a.jsx(St,{crumbs:t}),header:i,children:a.jsx(TRs,{isLoading:r,server:s})})};function NRs(e){if(!e)return;const t=e.ui;if(t?.resourceUri)return t.resourceUri;const n=e["ui/resourceUri"];if(typeof n=="string")return n}function IRs(e){return typeof e=="object"&&e!==null&&e.status==="suspended"}function ARs(e){return JSON.stringify({error:e instanceof Error?e.message:String(e)},null,2)}const RRs=({toolId:e,serverId:t})=>{const{canExecute:n}=Ea(),r=n("tools"),s=Je(),{data:o,isLoading:i,error:l}=DCe(t,e),{mutateAsync:c,isPending:u,data:d,error:f}=x6n(t,e),h=o?NRs(o._meta):void 0,{data:p}=kt({queryKey:["mcp-app-resource",t,h],queryFn:async()=>h?(await s.readMcpServerResource(t,h)).contents[0]?.text??null:null,enabled:!!h}),m=g.useCallback(async(b,x)=>await c(x),[c]);g.useEffect(()=>{if(l){const b=l instanceof Error?l.message:"Failed to load tool";Ye.error(`Error loading tool: ${b}`)}},[l]);const y=async b=>{if(o)return await c(b).catch(()=>{})};if(i)return a.jsxs("div",{className:"p-4",children:[a.jsx(lt,{className:"mb-4 h-8 w-48"}),a.jsx(lt,{className:"h-32 w-full"})]});if(l)return null;if(!o)return a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"heading",tone:"muted",children:"Tool not found"})});if(!r)return a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"caption",tone:"muted",children:"You don't have permission to execute tools."})});let v;try{v=jm(o.inputSchema)}catch(b){console.error("Error processing input schema:",b),Ye.error("Failed to process tool input schema."),v=gr({})}return a.jsxs("div",{className:"flex flex-col gap-4",children:[p&&a.jsx("div",{className:"border-b border-border p-4",children:a.jsx(QZt,{html:p,toolName:o.name,onToolCall:m})}),IRs(d)&&a.jsx("div",{className:"px-4 pt-4",children:a.jsxs(en,{variant:"warning",children:["This tool asked for more input, which Studio cannot provide. The suspend payload below shows what it needs. Call it from an MCP client with an ",a.jsx("code",{children:"inputRequests"})," handler to finish the request."]})}),a.jsx(G$e,{executionResult:d,errorString:f?ARs(f):void 0,isExecutingTool:u,zodInputSchema:v,handleExecuteTool:y,toolDescription:o.description||"",toolId:o.name})]})},PRs=()=>{const{serverId:e,toolId:t}=hr(),n=[Br("/mcps"),{...oCt,to:e?`/mcps/${encodeURIComponent(e)}`:void 0},{id:"mcp-server-tool",Component:k6n}],{data:r,isLoading:s}=DCe(e,t);return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:t}),!s&&r&&a.jsx("div",{className:"h-full w-full overflow-y-auto",children:a.jsx(RRs,{toolId:t,serverId:e})})]})};function $Rs({children:e,className:t}){return a.jsx("div",{className:Z("flex flex-wrap gap-4",t),children:e})}const vJt=[{label:"Agent",entityType:"agent"},{label:"Workflow",entityType:"workflow_run"},{label:"Scorer",entityType:"scorer"},{label:"Ingest",entityType:"rag_ingestion"}],XI="rootEntityType",JI={tags:"filterTags",entityId:"filterEntityId",entityName:"filterEntityName",runId:"filterRunId",threadId:"filterThreadId",sessionId:"filterSessionId",requestId:"filterRequestId",resourceId:"filterResourceId",userId:"filterUserId",organizationId:"filterOrganizationId",serviceName:"filterServiceName",environment:"filterEnvironment",experimentId:"filterExperimentId",provider:"filterProvider",model:"filterModel"},KX=Object.keys(JI),o2e="mastra:metrics:saved-filters";function MRs(e){const t=zRs(e);try{localStorage.setItem(o2e,t.toString())}catch{}}function DRs(){try{localStorage.removeItem(o2e)}catch{}}function yJt(){try{const e=localStorage.getItem(o2e);if(!e)return null;const t=new URLSearchParams(e);return t.toString()?t:null}catch{return null}}function LRs(e){if(e.has(XI))return!0;for(const t of KX)if(e.has(JI[t]))return!0;return!1}function bJt({availableTags:e,availableEntityNames:t,availableServiceNames:n,availableEnvironments:r,loading:s}){const o=[{id:"rootEntityType",label:"Primitive Type",kind:"pick-multi",searchable:!1,options:vJt.map(u=>({label:u.label,value:u.entityType})),placeholder:"Choose entity type",emptyText:"No entity types."},{id:"entityName",label:"Primitive Name",kind:"pick-multi",options:t.map(u=>({label:u,value:u})),placeholder:"Choose entity names",emptyText:"No entity names found.",isLoading:s?.entityNames},{id:"entityId",label:"Primitive ID",kind:"text"},{id:"tags",label:"Tags",kind:"pick-multi",multi:!0,options:e.map(u=>({label:u,value:u})),placeholder:"Choose tags",emptyText:"No tags found.",isLoading:s?.tags},{id:"serviceName",label:"Service Name",kind:"pick-multi",options:n.map(u=>({label:u,value:u})),placeholder:"Choose service names",emptyText:"No service names found.",isLoading:s?.serviceNames},{id:"environment",label:"Environment",kind:"pick-multi",options:r.map(u=>({label:u,value:u})),placeholder:"Choose environments",emptyText:"No environments found.",isLoading:s?.environments},{id:"threadId",label:"Thread ID",kind:"text"},{id:"resourceId",label:"Resource ID",kind:"text"},{id:"userId",label:"User ID",kind:"text"},{id:"organizationId",label:"Organization ID",kind:"text"},{id:"runId",label:"Run ID",kind:"text"},{id:"sessionId",label:"Session ID",kind:"text"},{id:"requestId",label:"Request ID",kind:"text"},{id:"experimentId",label:"Experiment ID",kind:"text"}],i=(u,d)=>u.label.localeCompare(d.label),l=o.filter(u=>u.kind==="pick-multi").sort(i),c=o.filter(u=>u.kind==="text").sort(i);return[...l,...c]}function FRs(e){const t=[],n=new Map([[XI,"rootEntityType"]]);for(const s of KX)n.set(JI[s],s);const r=new Set;for(const[s]of e.entries()){const o=n.get(s);if(!o||r.has(o))continue;if(r.add(o),o==="tags"){const l=e.getAll(s);if(l.length===0)continue;t.push({fieldId:o,value:l.filter(Boolean)});continue}if(o==="rootEntityType"||o==="entityName"||o==="serviceName"||o==="environment"||o==="provider"||o==="model"){const l=e.getAll(s);if(l.length>1){t.push({fieldId:o,value:l});continue}}const i=e.get(s);i!==null&&t.push({fieldId:o,value:i})}return t}function zRs(e){const t=new URLSearchParams,n=e.getAll(XI);for(const r of n)t.append(XI,r);for(const r of KX){const s=JI[r],o=e.getAll(s);for(const i of o)t.append(s,i)}return t}function BRs(e,t){e.delete(XI);for(const n of KX)e.delete(JI[n]);for(const n of t){const r=n.fieldId==="rootEntityType"?XI:JI[n.fieldId];if(r)if(Array.isArray(n.value)){const s=n.value.filter(o=>typeof o=="string"&&o!=="");if(s.length===0){n.fieldId==="tags"&&e.append(r,"");continue}for(const o of s)e.append(r,o)}else typeof n.value=="string"&&e.set(r,n.value.trim())}}const URs="Any";function Xot(e){const t=e.trim();return t===""||t===URs}const VRs=new Set(vJt.map(e=>e.entityType));function Jot(e){const t=e.trim();return VRs.has(t)?t:void 0}function qRs(e){const t={};for(const n of e){const r=n.fieldId;if(Array.isArray(n.value)){const s=n.value.filter(o=>typeof o=="string").map(o=>o.trim()).filter(o=>!Xot(o));if(s.length===0)continue;if(r==="tags")t.tags=s;else if(r==="rootEntityType"){const o=s[0],i=o!==void 0?Jot(o):void 0;i&&(t.rootEntityType=i)}else t[r]=s[0]}else if(typeof n.value=="string"){if(Xot(n.value))continue;const s=n.value.trim();if(r==="rootEntityType"){const o=Jot(s);o&&(t.rootEntityType=o)}else t[r]=s}}return t}const xJt=[{label:"Last 24 hours",value:"24h"},{label:"Last 3 days",value:"3d"},{label:"Last 7 days",value:"7d"},{label:"Last 14 days",value:"14d"},{label:"Last 30 days",value:"30d"}],HRs=new Set(xJt.map(e=>e.value));function WRs(e){return typeof e=="string"&&(HRs.has(e)||e==="custom")}const wJt=g.createContext({datePreset:"24h",setDatePreset:()=>{},customRange:void 0,setCustomRange:()=>{},dateRangeLabel:"Last 24 hours",filterTokens:[],setFilterTokens:()=>{},dimensionalFilter:{},dimensionalFilterKey:"{}",tracesBasePath:void 0,logsBasePath:void 0});function XX(){return g.useContext(wJt)}function ZRs(e,t){return e!=="custom"?xJt.find(n=>n.value===e)?.label??e:t?.from?t.to?`${Rr(t.from,"MMM d, yyyy")} – ${Rr(t.to,"MMM d, yyyy")}`:Rr(t.from,"MMM d, yyyy"):"Custom range"}function GRs({children:e,preset:t,filterTokens:n,onPresetChange:r,onFilterTokensChange:s,customRange:o,onCustomRangeChange:i,tracesBasePath:l,logsBasePath:c}){const u=g.useMemo(()=>JSON.stringify(n),[n]),d=g.useMemo(()=>n,[u]),f=g.useMemo(()=>qRs(d),[d]),h=g.useMemo(()=>JSON.stringify(f),[f]),p=ZRs(t,o),m=g.useMemo(()=>({datePreset:t,setDatePreset:r,customRange:o,setCustomRange:i??(()=>{}),dateRangeLabel:p,filterTokens:d,setFilterTokens:s,dimensionalFilter:f,dimensionalFilterKey:h,tracesBasePath:l,logsBasePath:c}),[t,r,o,i,p,d,s,f,h,l,c]);return a.jsx(wJt.Provider,{value:m,children:e})}const KSe=1440*60*1e3,QRs={"24h":KSe,"3d":4320*60*1e3,"7d":10080*60*1e3,"14d":336*60*60*1e3,"30d":720*60*60*1e3};function YRs(e,t,n){if(e!=="custom"){const r=QRs[e]??KSe;return{start:new Date(n-r),end:new Date(n)}}return{start:t?.from??new Date(n-KSe),end:t?.to??new Date(n)}}function tg(){const{datePreset:e,customRange:t,dimensionalFilter:n,dimensionalFilterKey:r}=XX(),s=g.useRef(null),o=e==="custom"?`custom:${t?.from?.getTime()??""}:${t?.to?.getTime()??""}`:`preset:${e}`;(!s.current||s.current.key!==o)&&(s.current={key:o,anchor:Date.now()});const i=s.current.anchor,l=g.useMemo(()=>YRs(e,t,i),[e,t,i]),c=g.useMemo(()=>({timestamp:l,...n}),[l,r]),u=g.useMemo(()=>`${o}|${r}`,[o,r]);return{datePreset:e,customRange:t,timestamp:l,filters:c,dimensionalFilter:n,filterKey:u}}function SJt(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","agent-runs-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count",filters:t,comparePeriod:"previous_period"})})}function D6({href:e,LinkComponent:t="a"}){return a.jsx(le,{render:a.jsx(t,{href:e}),variant:"ghost",size:"icon-md",tooltip:"View in Traces","aria-label":"View in Traces",children:a.jsx(Ua,{})})}function KRs({href:e,LinkComponent:t="a"}){return a.jsx(le,{render:a.jsx(t,{href:e}),variant:"ghost",size:"icon-md",tooltip:"View errors in Logs","aria-label":"View errors in Logs",children:a.jsx(t2n,{})})}function XRs(e){return e==="agents"||e==="workflows"||e==="tools"}function eit(e,t){if(e.length===0)return"0";const n=e.reduce((r,s)=>{const o=s[t];return r+(typeof o=="number"&&Number.isFinite(o)?o:0)},0);return`${Math.round(n/e.length)}`}function JRs(e){const t=e;return typeof t?.tsMs=="number"&&Number.isFinite(t.tsMs)}const ePs=[{dataKey:"p50",label:"p50",color:Qh.blue,aggregate:e=>({value:eit(e,"p50"),suffix:"avg ms"})},{dataKey:"p95",label:"p95",color:Qh.yellow,aggregate:e=>({value:eit(e,"p95"),suffix:"avg ms"})}];function pce({data:e,onPointClick:t}){return e.length===0?a.jsx(Gt.NoData,{message:"No latency data yet"}):a.jsx(IW,{data:e,series:ePs,onPointClick:t?n=>JRs(n)?t(n):void 0:void 0})}function tPs({data:e,isLoading:t,isError:n,onPointClick:r,actions:s}){const o=(e?.agentData.length??0)>0,i=(e?.workflowData.length??0)>0,l=(e?.toolData.length??0)>0,c={agents:o,workflows:i,tools:l},u=o?"agents":i?"workflows":l?"tools":"agents",[d,f]=g.useState("agents"),h=c[d]?d:u,p=typeof s=="function"?s(h):s,m=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),y=e?Object.values(e).filter(Array.isArray).flat().map(b=>b.p50).filter(b=>typeof b=="number"):[],v=y.length>0?`${Math.round(y.reduce((b,x)=>b+x,0)/y.length)}ms`:"—";return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Latency",description:"Hourly p50 and p95 latency."}),m&&a.jsx(Gt.Summary,{value:v,label:"Avg p50"}),p?a.jsx(Gt.Actions,{children:p}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load latency data"}):a.jsx(Gt.Content,{children:m?a.jsxs(Ya,{value:h,onValueChange:b=>{XRs(b)&&c[b]&&f(b)},defaultTab:u,className:"overflow-visible",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"agents",disabled:!o,disabledTooltip:"No agent latency data for this period",children:"Agents"}),a.jsx(Ar,{value:"workflows",disabled:!i,disabledTooltip:"No workflow latency data for this period",children:"Workflows"}),a.jsx(Ar,{value:"tools",disabled:!l,disabledTooltip:"No tool latency data for this period",children:"Tools"})]}),a.jsx(vs,{value:"agents",children:a.jsx(pce,{data:e.agentData,onPointClick:r?b=>r("agents",b):void 0})}),a.jsx(vs,{value:"workflows",children:a.jsx(pce,{data:e.workflowData,onPointClick:r?b=>r("workflows",b):void 0})}),a.jsx(vs,{value:"tools",children:a.jsx(pce,{data:e.toolData,onPointClick:r?b=>r("tools",b):void 0})})]}):a.jsx(Gt.NoData,{message:"No latency data yet"})})]})}function nPs(e){switch(e){case"24h":return"last-24h";case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return}}function rPs(e,t){if(t==="1h"){const s=new Date(e);s.setUTCMinutes(0,0,0);const o=new Date(s.getTime()+3600*1e3);return{from:s,to:o}}const n=new Date(e);n.setUTCHours(0,0,0,0);const r=new Date(n.getTime()+1440*60*1e3);return{from:n,to:r}}function kJt(e,t,n,r,s,o,i){if(i){e.set(t,"custom"),e.set(n,i.from.toISOString()),e.set(r,i.to.toISOString());return}if(s==="custom"){e.set(t,"custom"),o?.from&&e.set(n,o.from.toISOString()),o?.to&&e.set(r,o.to.toISOString());return}const l=nPs(s);l&&e.set(t,l)}function Da(e,t,n){typeof n=="string"&&n.length>0&&e.set(t,n)}function OJt(e,t,n){if(!(!Array.isArray(n)||n.length===0))for(const r of n)r&&e.append(t,r)}function tit({preset:e,customRange:t,dashboardFilter:n,scope:r,tracesBasePath:s="/traces"}){const o=new URLSearchParams;o.set(gS,"branches"),kJt(o,vS,Kw,Xw,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&o.set(j1,i),r.status&&o.set(N1,r.status),Da(o,Xl.entityName,r.entityName??n.entityName),Da(o,Xl.threadId,r.threadId??n.threadId),Da(o,Xl.resourceId,r.resourceId??n.resourceId),Da(o,Xl.entityId,n.entityId),Da(o,Xl.runId,n.runId),Da(o,Xl.sessionId,n.sessionId),Da(o,Xl.requestId,n.requestId),Da(o,Xl.userId,n.userId),Da(o,Xl.organizationId,n.organizationId),Da(o,Xl.experimentId,n.experimentId),Da(o,Xl.serviceName,n.serviceName),Da(o,Xl.environment,n.environment),OJt(o,Xl.tags,n.tags);const l=o.toString();return l?`${s}?${l}`:s}function sPs({preset:e,customRange:t,dashboardFilter:n,scope:r,logsBasePath:s="/logs"}){const o=new URLSearchParams;kJt(o,xx,wx,Sx,e,t,r.window);const i=r.rootEntityType??n.rootEntityType;i&&o.set(v0,i),Da(o,Al.entityName,r.entityName??n.entityName),Da(o,Al.threadId,r.threadId??n.threadId),Da(o,Al.resourceId,r.resourceId??n.resourceId),Da(o,Al.runId,n.runId),Da(o,Al.sessionId,n.sessionId),Da(o,Al.requestId,n.requestId),Da(o,Al.userId,n.userId),Da(o,Al.organizationId,n.organizationId),Da(o,Al.experimentId,n.experimentId),Da(o,Al.serviceName,n.serviceName),Da(o,Al.environment,n.environment),OJt(o,Al.tags,n.tags),r.status==="error"&&o.append(Al.level,"error");const l=o.toString();return l?`${s}?${l}`:s}function AR(){const{datePreset:e,customRange:t,dimensionalFilter:n,tracesBasePath:r,logsBasePath:s}=XX(),o=g.useCallback((c={})=>tit({preset:e,customRange:t,dashboardFilter:n,scope:c,tracesBasePath:r}),[e,t,n,r]),i=g.useCallback((c={})=>sPs({preset:e,customRange:t,dashboardFilter:n,scope:c,logsBasePath:s}),[e,t,n,s]),l=g.useCallback((c,u,d)=>{const f=rPs(u,d);return tit({preset:e,customRange:t,dashboardFilter:n,scope:{...c,window:f},tracesBasePath:r})},[e,t,n,r]);return{getTracesHref:o,getLogsHref:i,getBucketTracesHref:l}}const CJt="1h";async function mce(e,t,n){const r=await e.getMetricPercentiles({name:t,percentiles:[.5,.95],interval:CJt,filters:n}),s=r.series.find(l=>l.percentile===.5),o=r.series.find(l=>l.percentile===.95);if(!s||!o)return[];const i=new Map(o.points.map(l=>[new Date(l.timestamp).getTime(),l.value]));return s.points.map(l=>{const c=new Date(l.timestamp),u=c.getTime();return{time:c.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tsMs:u,p50:Math.round(l.value),p95:Math.round(i.get(u)??0)}})}function oPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","latency",n],queryFn:async()=>{const[r,s,o]=await Promise.all([mce(e,"mastra_agent_duration_ms",t),mce(e,"mastra_workflow_duration_ms",t),mce(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:o,interval:CJt}}})}const nit={agents:cu.AGENT,workflows:cu.WORKFLOW_RUN,tools:cu.TOOL};function iPs(){const{data:e,isLoading:t,isError:n}=oPs(),{getTracesHref:r,getBucketTracesHref:s}=AR(),{Link:o}=fn(),i=Ur();return a.jsx(tPs,{data:e,isLoading:t,isError:n,onPointClick:(l,c)=>{Number.isFinite(c.tsMs)&&i(s({rootEntityType:nit[l]},c.tsMs,"1h"))},actions:l=>a.jsx(D6,{href:r({rootEntityType:nit[l]}),LinkComponent:o})})}function aPs(e){return e==="threads"||e==="resources"}function gce(e){return e.length<=12?e:`${e.slice(0,6)}…${e.slice(-4)}`}function lPs({threads:e,resources:t,getThreadRowHref:n,getResourceRowHref:r,actions:s,LinkComponent:o}){const[i,l]=g.useState("threads"),c=e.data?.map(v=>({...v,key:v.threadId}))??[],u=t.data?.map(v=>({...v,key:v.resourceId}))??[],d=c.length>0,f=u.length>0,h=e.data?.reduce((v,b)=>v+b.runs,0)??0,p=t.data?.reduce((v,b)=>v+b.threadCount,0)??0,m=i==="threads"?e:t,y=typeof s=="function"?s(i):s;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Memory",description:"Resource and Thread consumption"}),i==="threads"&&d&&a.jsx(Gt.Summary,{value:h.toLocaleString(),label:"Total runs"}),i==="resources"&&f&&a.jsx(Gt.Summary,{value:p.toLocaleString(),label:"Total threads"}),y?a.jsx(Gt.Actions,{children:y}):null]}),m.isLoading?a.jsx(Gt.Loading,{}):m.isError?a.jsx(Gt.Error,{message:"Failed to load memory data"}):a.jsx(Gt.Content,{children:a.jsxs(Ya,{defaultTab:"threads",value:i,onValueChange:v=>{aPs(v)&&l(v)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"threads",children:"Threads"}),a.jsx(Ar,{value:"resources",children:"Resources"})]}),a.jsx(vs,{value:"threads",children:d?a.jsxs(xe,{columns:"auto auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Thread ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Resource ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Runs"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Tokens"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),c.map(v=>{const b=n?.(v),x=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:gce(v.threadId)}),a.jsx(xe.NumberCell,{children:v.resourceId?gce(v.resourceId):"—"}),a.jsx(xe.NumberCell,{highlight:!0,children:v.runs.toLocaleString()}),a.jsx(xe.NumberCell,{children:v.tokens>0?vi(v.tokens):"—"}),a.jsx(xe.NumberCell,{children:v.cost!=null?Ud(v.cost,v.costUnit):"—"})]});return b?a.jsx(xe.RowLink,{to:b,LinkComponent:o,children:x},v.key):a.jsx(xe.RowStatic,{children:x},v.key)})]}):a.jsx(Gt.NoData,{message:"No thread activity yet"})}),a.jsx(vs,{value:"resources",children:f?a.jsxs(xe,{columns:"auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Resource ID"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Threads"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Tokens"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),u.map(v=>{const b=r?.(v),x=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:gce(v.resourceId)}),a.jsx(xe.NumberCell,{highlight:!0,children:v.threadCount.toLocaleString()}),a.jsx(xe.NumberCell,{children:v.tokens>0?vi(v.tokens):"—"}),a.jsx(xe.NumberCell,{children:v.cost!=null?Ud(v.cost,v.costUnit):"—"})]});return b?a.jsx(xe.RowLink,{to:b,LinkComponent:o,children:x},v.key):a.jsx(xe.RowStatic,{children:x},v.key)})]}):a.jsx(Gt.NoData,{message:"No resource activity yet"})})]})})]})}const vce=20;function cPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","top-active-threads",n],queryFn:async()=>{const r={groupBy:["threadId","resourceId"],orderDirection:"DESC",filters:t},[s,o,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count",limit:vce}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:vce}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:vce})]),l=new Map,c=d=>NR(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const h=f.dimensions.threadId;if(!h)continue;const p=c(h);p.tokens+=f.value,f.estimatedCost!=null&&(p.cost=(p.cost??0)+f.estimatedCost,f.costUnit&&(p.costUnit=f.costUnit))}};return u(o.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.threadId).map(d=>{const f=d.dimensions.threadId,h=l.get(f);return{threadId:f,resourceId:d.dimensions.resourceId??null,runs:d.value,tokens:h?.tokens??0,cost:h?.cost??null,costUnit:h?.costUnit??null}})}})}const yce=20;function uPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","top-resources-by-threads",n],queryFn:async()=>{const r={groupBy:["resourceId"],orderDirection:"DESC",filters:t},[s,o,i]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",limit:yce}),e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"],aggregation:"sum",limit:yce}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"],aggregation:"sum",limit:yce})]),l=new Map,c=d=>NR(l,d,()=>({tokens:0,cost:null,costUnit:null})),u=d=>{for(const f of d){const h=f.dimensions.resourceId;if(!h)continue;const p=c(h);p.tokens+=f.value,f.estimatedCost!=null&&(p.cost=(p.cost??0)+f.estimatedCost,f.costUnit&&(p.costUnit=f.costUnit))}};return u(o.groups),u(i.groups),s.groups.filter(d=>!!d.dimensions.resourceId).map(d=>{const f=d.dimensions.resourceId,h=l.get(f);return{resourceId:f,threadCount:d.value,tokens:h?.tokens??0,cost:h?.cost??null,costUnit:h?.costUnit??null}})}})}function dPs(){const e=cPs(),t=uPs(),{getTracesHref:n}=AR(),{Link:r}=fn();return a.jsx(lPs,{threads:{data:e.data,isLoading:e.isLoading,isError:e.isError},resources:{data:t.data,isLoading:t.isLoading,isError:t.isError},LinkComponent:r,getThreadRowHref:s=>n({threadId:s.threadId,...s.resourceId?{resourceId:s.resourceId}:{}}),getResourceRowHref:s=>n({resourceId:s.resourceId})})}function L6({label:e,value:t,prevValue:n,changePct:r,isLoading:s,isError:o,lowerIsBetter:i}){const l=t!=null;return a.jsxs(er,{children:[a.jsx(er.Label,{children:e}),a.jsxs(er.ValueRow,{children:[l?a.jsx(er.Value,{children:t}):null,o?a.jsx(er.Error,{}):s?a.jsx(er.Loading,{}):l?r!=null&&r!==0?a.jsx(er.Change,{changePct:r,prevValue:n,lowerIsBetter:i}):a.jsx(er.NoChange,{}):a.jsx(er.NoData,{})]})]})}function fPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","active-resources-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"resourceId",filters:t,comparePeriod:"previous_period"})})}function hPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","active-threads-kpi",n],queryFn:()=>e.getMetricAggregate({name:["mastra_agent_duration_ms"],aggregation:"count_distinct",distinctColumn:"threadId",filters:t,comparePeriod:"previous_period"})})}function pPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","model-cost-kpi",n],queryFn:async()=>{const r=await e.getMetricAggregate({name:["mastra_model_total_input_tokens","mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"});return{cost:r.estimatedCost??null,costUnit:r.costUnit??null,previousCost:r.previousEstimatedCost??null,costChangePercent:r.costChangePercent??null}}})}function mPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","total-tokens-kpi",n],queryFn:async()=>{const[r,s]=await Promise.all([e.getMetricAggregate({name:["mastra_model_total_input_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"}),e.getMetricAggregate({name:["mastra_model_total_output_tokens"],aggregation:"sum",filters:t,comparePeriod:"previous_period"})]),o=r.value!=null||s.value!=null,i=r.previousValue!=null||s.previousValue!=null,l=(r.value??0)+(s.value??0),c=(r.previousValue??0)+(s.previousValue??0),u=i&&c>0?(l-c)/c*100:null;return{value:o?l:null,previousValue:i?c:null,changePercent:u}}})}function gPs(){const{data:e,isLoading:t,isError:n}=SJt();return a.jsx(L6,{label:"Total Agent Runs",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function vPs(){const{data:e,isLoading:t,isError:n}=pPs();return a.jsx(L6,{label:"Total Model Cost",value:e?.cost!=null?Ud(e.cost,e.costUnit):null,prevValue:e?.previousCost!=null?Ud(e.previousCost,e.costUnit):void 0,changePct:e?.costChangePercent??null,lowerIsBetter:!0,isLoading:t,isError:n})}function yPs(){const{data:e,isLoading:t,isError:n}=mPs();return a.jsx(L6,{label:"Total Tokens",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function bPs(){const{data:e,isLoading:t,isError:n}=hPs();return a.jsx(L6,{label:"Total Threads",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}function xPs(){const{data:e,isLoading:t,isError:n}=fPs();return a.jsx(L6,{label:"Total Resources",value:e?.value!=null?vi(e.value):null,prevValue:e?.previousValue!=null?vi(e.previousValue):void 0,changePct:e?.changePercent??null,isLoading:t,isError:n})}const wPs=["last-24h","last-3d","last-7d","last-14d","last-30d","custom"];function SPs(e){switch(e){case"3d":return"last-3d";case"7d":return"last-7d";case"14d":return"last-14d";case"30d":return"last-30d";case"custom":return"custom";default:return"last-24h"}}function kPs(e){switch(e){case"last-3d":return"3d";case"last-7d":return"7d";case"last-14d":return"14d";case"last-30d":return"30d";case"custom":return"custom";default:return"24h"}}function OPs(){const{datePreset:e,setDatePreset:t,customRange:n,setCustomRange:r}=XX(),s=g.useRef(e);s.current=e;const o=g.useRef(n);return o.current=n,a.jsx(D5,{preset:SPs(e),onPresetChange:i=>{const l=kPs(i);s.current=l,t(l)},dateFrom:n?.from,dateTo:n?.to,onDateChange:(i,l)=>{if(s.current!=="custom")return;const c={...o.current,[l]:i};o.current=c,r(c)},presets:wPs})}const G2=[Br("/metrics")];function CPs({onClear:e,onRemoveAll:t,onSave:n,onRemoveSaved:r,isLoading:s,filterFields:o,filterTokens:i,onFilterTokensChange:l,autoFocusFilterFieldId:c}){const u=i.length>0,d=i.some(f=>_Ps(f,o));return u?a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] items-start gap-3"),children:[a.jsx(dJt,{fields:o,tokens:i,onTokensChange:l,disabled:s,autoFocusFieldId:c}),u&&a.jsx(cJt,{disabled:s,onClear:d?e:void 0,onRemoveAll:t,onSave:n,onRemoveSaved:r})]}):null}function _Ps(e,t){const n=t.find(r=>r.id===e.fieldId);return n?n.kind==="text"?typeof e.value=="string"&&e.value.trim()!=="":n.kind==="pick-multi"?n.multi?Array.isArray(e.value)&&e.value.length>0:typeof e.value=="string"&&e.value!==""&&e.value!=="Any":n.kind==="multi-select"?Array.isArray(e.value)&&e.value.length>0:!1:!1}function XSe({children:e,filterFields:t,isLoading:n=!1}){const[r]=oo(),{filterTokens:s,setFilterTokens:o}=XX(),[i,l]=g.useState(),[c,u]=g.useState(()=>!!yJt()),d=()=>{MRs(r),u(!0),Ye.success("Filters setting for Metrics saved")},f=()=>{DRs(),u(!1),Ye.success("Filters setting for Metrics cleared up")},h=()=>{const p=s.map(m=>{const y=t.find(v=>v.id===m.fieldId);return y?y.kind==="text"?{fieldId:m.fieldId,value:""}:y.kind==="pick-multi"?y.multi?{fieldId:m.fieldId,value:[]}:{fieldId:m.fieldId,value:"Any"}:y.kind==="multi-select"?{fieldId:m.fieldId,value:[]}:m:m});o(p)};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),actionRow:a.jsxs(a.Fragment,{children:[a.jsx(Vn,{children:a.jsxs(Vn.Start,{children:[a.jsx(OPs,{}),a.jsx(hJt,{fields:t,tokens:s,onTokensChange:o,disabled:n,onStartTextFilter:l})]})}),a.jsx(CPs,{isLoading:n,filterFields:t,filterTokens:s,onFilterTokensChange:o,onClear:h,onRemoveAll:()=>o([]),onSave:d,onRemoveSaved:c?f:void 0,autoFocusFilterFieldId:i})]}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),e]})}function EPs({error:e}){return Ss(e)?a.jsx(Us,{}):Ts(e)?a.jsx(As,{resource:"metrics"}):a.jsx(dn,{tone:"error",titleSlot:"Failed to load storage capabilities",descriptionSlot:e.message})}const rit=bJt({availableTags:[],availableEntityNames:[],availableServiceNames:[],availableEnvironments:[]});function TPs({children:e}){const{supportsMetrics:t,isLoading:n,error:r}=R6();return n?a.jsx(XSe,{filterFields:rit,isLoading:!0,children:a.jsxs("div",{className:"flex h-full items-center justify-center gap-2",children:[a.jsx(_n,{"aria-label":"Loading storage capabilities"}),a.jsx("span",{className:"text-caption text-muted-foreground",children:"Loading storage capabilities"})]})}):r?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsx(EPs,{error:r})})]}):t?e:a.jsx(XSe,{filterFields:rit,children:a.jsx(dn,{titleSlot:"Metrics are not available with your current storage",descriptionSlot:"Metrics require ClickHouse, DuckDB, Postgres v-next, Spanner, or in-memory storage for observability. Other relational databases (LibSQL, MSSQL) and document stores (MongoDB) do not support metrics collection. To enable metrics on an existing project, switch the observability storage in the Mastra configuration.",actionSlot:a.jsx(le,{variant:"ghost",render:a.jsx("a",{href:"https://mastra.ai/docs/observability/metrics/overview",target:"_blank",rel:"noopener noreferrer"}),icon:a.jsx(Is,{}),children:"Metrics Documentation"}),variant:"fill"})})}function jPs({rows:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:o}){const i=!!e&&e.length>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Model Usage & Cost",description:"Token consumption by model."}),i&&(()=>{const l=e.reduce((d,f)=>d+(f.cost??0),0),c=new Set;for(const d of e)d.cost!=null&&d.costUnit&&c.add(d.costUnit);let u;return c.size===0?u=l>0?Ud(l):"—":c.size===1?u=l>0?Ud(l,[...c][0]):"—":u="Mixed",a.jsx(Gt.Summary,{value:u,label:"Total cost"})})(),s?a.jsx(Gt.Actions,{children:s}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load model usage data"}):a.jsx(Gt.Content,{children:i?a.jsxs(xe,{columns:"auto auto auto auto auto auto",...$Se,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{sticky:"start",children:"Model"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Input"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Output"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cache Read"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cache Write"}),a.jsx(xe.TopCell,{className:"justify-end text-right",children:"Cost"})]}),e.map(l=>{const c=r?.(l),u=a.jsxs(a.Fragment,{children:[a.jsx(xe.RowHeaderCell,{className:"text-caption",children:l.model}),a.jsx(xe.NumberCell,{children:l.input}),a.jsx(xe.NumberCell,{children:l.output}),a.jsx(xe.NumberCell,{children:l.cacheRead}),a.jsx(xe.NumberCell,{children:l.cacheWrite}),a.jsx(xe.NumberCell,{highlight:!0,children:l.cost!=null?Ud(l.cost,l.costUnit):"—"})]});return c?a.jsx(xe.RowLink,{to:c,LinkComponent:o,children:u},l.model):a.jsx(xe.RowStatic,{children:u},l.model)})]}):a.jsx(Gt.NoData,{message:"No model usage data yet"})})]})}function NPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","model-usage-cost",n],queryFn:async()=>{const[r,s,o,i]=await Promise.all(["mastra_model_total_input_tokens","mastra_model_total_output_tokens","mastra_model_input_cache_read_tokens","mastra_model_input_cache_write_tokens"].map(d=>e.getMetricBreakdown({name:[d],groupBy:["model"],aggregation:"sum",orderDirection:"DESC",filters:t})));if(!r||!s||!o||!i)return[];const l=new Map,c=d=>NR(l,d,()=>({input:0,output:0,cacheRead:0,cacheWrite:0,cost:null,costUnit:null})),u=(d,f)=>{f.estimatedCost!=null&&(d.cost=(d.cost??0)+f.estimatedCost,f.costUnit&&(d.costUnit=f.costUnit))};for(const d of r.groups){const f=d.dimensions.model??"unknown",h=c(f);h.input=d.value,u(h,d)}for(const d of s.groups){const f=d.dimensions.model??"unknown",h=c(f);h.output=d.value,u(h,d)}for(const d of o.groups){const f=d.dimensions.model??"unknown",h=c(f);h.cacheRead=d.value}for(const d of i.groups){const f=d.dimensions.model??"unknown",h=c(f);h.cacheWrite=d.value}return Array.from(l.entries()).map(([d,f])=>({model:d,input:vi(f.input),output:vi(f.output),cacheRead:vi(f.cacheRead),cacheWrite:vi(f.cacheWrite),cost:f.cost,costUnit:f.costUnit})).sort((d,f)=>d.model.localeCompare(f.model))}})}function IPs(){const{data:e,isLoading:t,isError:n}=NPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(jPs,{rows:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:()=>r({rootEntityType:cu.AGENT}),actions:a.jsx(D6,{href:r({rootEntityType:cu.AGENT}),LinkComponent:s})})}function APs(e){return e==="tokens"||e==="cost"}function RPs({data:e,isLoading:t,isError:n,getRowHref:r,actions:s,LinkComponent:o}){const[i,l]=g.useState("tokens"),c=e??[],u=c.length>0,d=c.reduce((b,x)=>b+x.total,0),f=c.filter(b=>b.cost!=null&&b.cost>0),h=new Set(f.map(b=>b.costUnit??"usd")),p=h.size<=1,m=p?[...h][0]??"usd":null,y=p?f.reduce((b,x)=>b+(x.cost??0),0):0,v=p&&y>0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Token Usage by Agent",description:"Token consumption grouped by agent."}),u&&(i==="cost"&&v?a.jsx(Gt.Summary,{value:Ud(y,m),label:"Total cost"}):a.jsx(Gt.Summary,{value:vi(d),label:"Total tokens"})),u&&s?a.jsx(Gt.Actions,{children:s}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load token usage data"}):a.jsx(Gt.Content,{children:u?a.jsxs(Ya,{defaultTab:"tokens",value:i,onValueChange:b=>{APs(b)&&l(b)},className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"tokens",children:"Tokens"}),a.jsx(Ar,{value:"cost",children:"Cost"})]}),a.jsx(vs,{value:"tokens",children:a.jsx(KI,{LinkComponent:o,data:c.map(b=>({name:b.name,values:[b.input,b.output],href:r?.(b)})),segments:[{label:"Input",color:Qh.blueDark},{label:"Output",color:Qh.blue}],maxVal:Math.max(...c.map(b=>b.input+b.output)),fmt:vi})}),a.jsx(vs,{value:"cost",children:v?a.jsx(KI,{LinkComponent:o,data:f.slice().sort((b,x)=>(x.cost??0)-(b.cost??0)).map(b=>({name:b.name,values:[b.cost],href:r?.(b)})),segments:[{label:"Cost",color:Qh.purple}],maxVal:Math.max(...f.map(b=>b.cost??0)),fmt:b=>Ud(b,m)}):a.jsx(Gt.NoData,{message:"No cost data yet"})})]}):a.jsx(Gt.NoData,{message:"No token usage data yet"})})]})}function PPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","token-usage-by-agent",n],queryFn:async()=>{const r={groupBy:["entityName"],aggregation:"sum",orderDirection:"DESC",filters:t},[s,o]=await Promise.all([e.getMetricBreakdown({...r,name:["mastra_model_total_input_tokens"]}),e.getMetricBreakdown({...r,name:["mastra_model_total_output_tokens"]})]),i=new Map,l=u=>NR(i,u,()=>({input:0,output:0,cost:null,costUnit:null})),c=(u,d)=>{d.estimatedCost!=null&&(u.cost=(u.cost??0)+d.estimatedCost,d.costUnit&&(u.costUnit=d.costUnit))};for(const u of s.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.input=u.value,c(f,u)}for(const u of o.groups){const d=u.dimensions.entityName??"unknown",f=l(d);f.output=u.value,c(f,u)}return Array.from(i.entries()).map(([u,d])=>({name:u,input:d.input,output:d.output,total:d.input+d.output,cost:d.cost,costUnit:d.costUnit})).sort((u,d)=>d.total-u.total)}})}function $Ps(){const{data:e,isLoading:t,isError:n}=PPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(RPs,{data:e,isLoading:t,isError:n,LinkComponent:s,getRowHref:o=>r({rootEntityType:cu.AGENT,entityName:o.name}),actions:a.jsx(D6,{href:r({rootEntityType:cu.AGENT}),LinkComponent:s})})}function JSe(e,t=vi){return n=>({value:t(n.reduce((r,s)=>r+(typeof s[e]=="number"?s[e]:0),0))})}const MPs=[{dataKey:"input",label:"Input tokens",color:Qh.blue,aggregate:JSe("input")},{dataKey:"output",label:"Output tokens",color:Qh.yellow,aggregate:JSe("output")}];function DPs(e){return e==="tokens"||e==="cost"}function LPs({data:e,interval:t="1d",isLoading:n,isError:r,actions:s}){const[o,i]=g.useState("tokens"),l=e??[],c=l.map(k=>({...k})),u=l.length>0,d=l.reduce((k,C)=>k+C.total,0),f=l.filter(k=>k.cost!=null&&k.cost>0),h=f.map(k=>({...k})),p=new Set(f.map(k=>k.costUnit).filter(k=>!!k)),m=p.size===1&&f.every(k=>k.costUnit!=null),y=m?[...p][0]??null:null,v=m?f.reduce((k,C)=>k+(C.cost??0),0):0,b=m&&v>0,x=t==="1h"?"Input and output tokens per hour.":"Input and output tokens per day.",w=[{dataKey:"cost",label:"Cost",color:Qh.purple,aggregate:JSe("cost",k=>Ud(k,y))}];return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Token usage over time",description:x}),u&&(o==="cost"&&b?a.jsx(Gt.Summary,{value:Ud(v,y),label:"Total cost"}):a.jsx(Gt.Summary,{value:vi(d),label:"Total tokens"})),u&&s?a.jsx(Gt.Actions,{children:s}):null]}),n?a.jsx(Gt.Loading,{}):r?a.jsx(Gt.Error,{message:"Failed to load token usage timeline"}):a.jsx(Gt.Content,{children:u?a.jsxs(Ya,{defaultTab:"tokens",value:o,onValueChange:k=>{DPs(k)&&i(k)},className:"overflow-visible",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"tokens",children:"Tokens"}),a.jsx(Ar,{value:"cost",children:"Cost"})]}),a.jsx(vs,{value:"tokens",children:a.jsx(IW,{data:c,series:MPs})}),a.jsx(vs,{value:"cost",children:b?a.jsx(IW,{data:h,series:w}):a.jsx(Gt.NoData,{message:"No cost data yet"})})]}):a.jsx(Gt.NoData,{message:"No token usage data yet"})})]})}function FPs(e){return e==="24h"?"1h":"1d"}function zPs(e,t){return t==="1h"?e.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):e.toLocaleDateString("en-US",{month:"short",day:"2-digit"})}function sit(e,t,n){for(const r of t?.points??[]){const s=new Date(r.timestamp).getTime();if(!Number.isFinite(s))continue;const o=e.get(s)??{tsMs:s,input:0,output:0,cost:null,costUnits:new Set,hasUnknownCostUnit:!1};o[n]+=r.value,r.estimatedCost!=null&&(o.cost=(o.cost??0)+r.estimatedCost,t?.costUnit?o.costUnits.add(t.costUnit):o.hasUnknownCostUnit=!0),e.set(s,o)}}function BPs(e){return e.cost==null||e.hasUnknownCostUnit||e.costUnits.size!==1?null:[...e.costUnits][0]??null}function UPs(){const e=Je(),{datePreset:t,filters:n,filterKey:r}=tg(),s=FPs(t);return kt({queryKey:["metrics","token-usage-timeseries",r,s],queryFn:async()=>{const[o,i]=await Promise.all([e.getMetricTimeSeries({name:["mastra_model_total_input_tokens"],interval:s,aggregation:"sum",filters:n}),e.getMetricTimeSeries({name:["mastra_model_total_output_tokens"],interval:s,aggregation:"sum",filters:n})]),l=new Map;return sit(l,o.series[0],"input"),sit(l,i.series[0],"output"),{data:Array.from(l.values()).sort((u,d)=>u.tsMs-d.tsMs).map(u=>{const d=new Date(u.tsMs);return{time:zPs(d,s),tsMs:u.tsMs,input:u.input,output:u.output,total:u.input+u.output,cost:u.cost,costUnit:BPs(u)}}),interval:s}}})}function VPs(){const{data:e,isLoading:t,isError:n}=UPs(),{getTracesHref:r}=AR(),{Link:s}=fn();return a.jsx(LPs,{data:e?.data,interval:e?.interval,isLoading:t,isError:n,actions:a.jsx(D6,{href:r(),LinkComponent:s})})}function bce({data:e,rowHrefs:t,errorHrefs:n,LinkComponent:r}){return a.jsx(KI,{LinkComponent:r,data:e.map(s=>{const o=n?.(s),i=t?.(s);return o?{name:s.name,values:[s.completed,s.errors],hrefs:[i,o]}:{name:s.name,values:[s.completed,s.errors],href:i}}),segments:[{label:"Completed",color:Qh.blueDark},{label:"Errors",color:Qh.pink}],maxVal:Math.max(...e.map(s=>s.completed+s.errors)),fmt:vi})}function qPs({data:e,isLoading:t,isError:n,getRowHref:r,getErrorSegmentHref:s,actions:o,LinkComponent:i}){const[l,c]=g.useState("agents"),u=typeof o=="function"?o(l):o,d=!!e&&(e.agentData.length>0||e.workflowData.length>0||e.toolData.length>0),f=e?[...e.agentData,...e.workflowData,...e.toolData].reduce((m,y)=>m+y.completed+y.errors,0):0,h=m=>r?y=>r(m,y):void 0,p=m=>s?y=>s(m,y):void 0;return a.jsxs(Gt,{children:[a.jsxs(Gt.TopBar,{children:[a.jsx(Gt.TitleAndDescription,{title:"Trace Volume",description:"Runs and call counts."}),d&&a.jsx(Gt.Summary,{value:vi(f),label:"Total runs"}),u?a.jsx(Gt.Actions,{children:u}):null]}),t?a.jsx(Gt.Loading,{}):n?a.jsx(Gt.Error,{message:"Failed to load trace volume data"}):a.jsx(Gt.Content,{children:d?a.jsxs(Ya,{value:l,onValueChange:c,defaultTab:"agents",className:"grid h-full grid-rows-[auto_1fr] overflow-y-auto",children:[a.jsxs(Qa,{children:[a.jsx(Ar,{value:"agents",children:"Agents"}),a.jsx(Ar,{value:"workflows",children:"Workflows"}),a.jsx(Ar,{value:"tools",children:"Tools"})]}),a.jsx(vs,{value:"agents",children:e.agentData.length>0?a.jsx(bce,{data:e.agentData,rowHrefs:h("agents"),errorHrefs:p("agents"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No agent data yet"})}),a.jsx(vs,{value:"workflows",children:e.workflowData.length>0?a.jsx(bce,{data:e.workflowData,rowHrefs:h("workflows"),errorHrefs:p("workflows"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No workflow data yet"})}),a.jsx(vs,{value:"tools",children:e.toolData.length>0?a.jsx(bce,{data:e.toolData,rowHrefs:h("tools"),errorHrefs:p("tools"),LinkComponent:i}):a.jsx(Gt.NoData,{message:"No tool data yet"})})]}):a.jsx(Gt.NoData,{message:"No trace volume data yet"})})]})}async function xce(e,t,n){const r=await e.getMetricBreakdown({name:[t],groupBy:["entityName","status"],aggregation:"count",orderDirection:"DESC",filters:n}),s=new Map;for(const o of r.groups){const i=o.dimensions.entityName??"unknown",l=o.dimensions.status??"ok",c=NR(s,i,()=>({completed:0,errors:0}));l==="error"?c.errors+=o.value:c.completed+=o.value}return Array.from(s.entries()).map(([o,i])=>({name:o,...i})).sort((o,i)=>i.completed+i.errors-(o.completed+o.errors))}function HPs(){const e=Je(),{filters:t,filterKey:n}=tg();return kt({queryKey:["metrics","trace-volume",n],queryFn:async()=>{const[r,s,o]=await Promise.all([xce(e,"mastra_agent_duration_ms",t),xce(e,"mastra_workflow_duration_ms",t),xce(e,"mastra_tool_duration_ms",t)]);return{agentData:r,workflowData:s,toolData:o}}})}const iB={agents:cu.AGENT,workflows:cu.WORKFLOW_RUN,tools:cu.TOOL};function WPs(){const{data:e,isLoading:t,isError:n}=HPs(),{getTracesHref:r,getLogsHref:s}=AR(),{Link:o}=fn();return a.jsx(qPs,{data:e,isLoading:t,isError:n,LinkComponent:o,getRowHref:(i,l)=>r({rootEntityType:iB[i],entityName:l.name}),getErrorSegmentHref:(i,l)=>l.errors>0?s({rootEntityType:iB[i],entityName:l.name,status:"error"}):void 0,actions:i=>a.jsxs(a.Fragment,{children:[a.jsx(D6,{href:r({rootEntityType:iB[i]}),LinkComponent:o}),a.jsx(KRs,{href:s({rootEntityType:iB[i],status:"error"}),LinkComponent:o})]})})}const wce="period",aB="dateFrom",lB="dateTo";function ZPs(){const[e,t]=oo(),n=e.get(wce),r=WRs(n)?n:"24h",s=g.useMemo(()=>{if(r!=="custom")return;const d=p=>{if(!p)return;const m=new Date(p);return Number.isNaN(m.getTime())?void 0:m},f=d(e.get(aB)),h=d(e.get(lB));if(!(!f&&!h))return{from:f,to:h}},[r,e.toString()]),o=g.useMemo(()=>FRs(e),[e.toString()]),i=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return d==="24h"?h.delete(wce):h.set(wce,d),d!=="custom"&&(h.delete(aB),h.delete(lB)),h},{replace:!0})},[t]),l=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return d?.from?h.set(aB,d.from.toISOString()):h.delete(aB),d?.to?h.set(lB,d.to.toISOString()):h.delete(lB),h},{replace:!0})},[t]),c=g.useCallback(d=>{t(f=>{const h=new URLSearchParams(f);return BRs(h,d),h},{replace:!0})},[t]),u=g.useRef(!1);return g.useEffect(()=>{if(u.current||(u.current=!0,LRs(e)))return;const d=yJt();d&&t(f=>{const h=new URLSearchParams(f);for(const[p,m]of d)h.append(p,m);return h},{replace:!0})},[]),a.jsx(GRs,{preset:r,filterTokens:o,onPresetChange:i,onFilterTokensChange:c,customRange:s,onCustomRangeChange:l,children:a.jsx(TPs,{children:a.jsx(GPs,{})})})}function GPs(){const{error:e,isLoading:t}=SJt(),{isInMemory:n}=R6(),{data:r,isLoading:s}=gJt(),{data:o,isLoading:i}=MMe(),{data:l,isLoading:c}=mJt(),{data:u,isLoading:d}=DMe(),f=g.useMemo(()=>bJt({availableTags:r??[],availableEntityNames:o??[],availableServiceNames:l??[],availableEnvironments:u??[],loading:{tags:s,entityNames:i,serviceNames:c,environments:d}}),[r,o,l,u,s,i,c,d]);return e&&Ss(e)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(Us,{variant:"fill"})]}):e&&Ts(e)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(As,{variant:"fill",resource:"metrics"})]}):e?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:G2}),children:[a.jsx("h1",{className:"sr-only",children:"Metrics"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load metrics",descriptionSlot:e.message})]}):a.jsx(XSe,{filterFields:f,isLoading:t,children:a.jsxs("div",{className:"grid content-start gap-4 pb-6",children:[n&&a.jsx(en,{variant:"info",title:"Metrics are not persisted",children:a.jsx(en.Message,{children:"This project uses in-memory storage for observability. Metrics will be lost on every server restart. For persistent metrics, switch the observability storage to ClickHouse, DuckDB, Postgres v-next, or Spanner."})}),a.jsxs(BXt,{children:[a.jsx(gPs,{}),a.jsx(vPs,{}),a.jsx(yPs,{}),a.jsx(bPs,{}),a.jsx(xPs,{})]}),a.jsxs($Rs,{children:[a.jsx(IPs,{}),a.jsx($Ps,{}),a.jsx(VPs,{}),a.jsx(dPs,{}),a.jsx(WPs,{}),a.jsx(iPs,{})]})]})})}function QPs(){const{isCmsAvailable:e}=xb(),{paths:t}=fn();return e?a.jsx(hK,{href:t.cmsPromptBlockCreateLink(),tooltip:"Create a prompt",children:"New prompt"}):null}const J$=[Br("/prompts")],YPs=50,KPs=["updatedAt"];function XPs(){const[e,t]=g.useState(""),[n,r]=g.useState(0),[s,o]=oo(),{sort:i,onSortChange:l}=ck({searchParams:s,setSearchParams:o,allowedKeys:KPs}),c=g.useMemo(()=>i?{field:i.key,direction:i.direction==="asc"?"ASC":"DESC"}:void 0,[i]),{data:u,isLoading:d,error:f,isPlaceholderData:h}=uQt({page:n,perPage:YPs,orderBy:c}),p=u?.promptBlocks??[],m=u?.hasMore??!1,y=g.useCallback(()=>{h||r(w=>w+1)},[h]),v=g.useCallback(()=>{h||r(w=>Math.max(0,w-1))},[h]),b=g.useCallback(w=>{t(w),r(0)},[]),x=g.useCallback((w,k)=>{l(w,k),r(0)},[l]);return f&&Ss(f)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(Us,{variant:"fill"})]}):f&&Ts(f)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(As,{variant:"fill",resource:"prompt blocks"})]}):f?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load prompt blocks",descriptionSlot:f.message})]}):p.length===0&&!d&&n===0?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(lxs,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:J$}),headerActions:a.jsx(QPs,{}),actionRow:a.jsx(Vn,{children:a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:b,label:"Filter prompts",placeholder:"Filter by name or description"})})})}),children:[a.jsx("h1",{className:"sr-only",children:"Prompts"}),a.jsx(axs,{promptBlocks:p,isLoading:d,search:e,currentPage:n,hasMore:m,onNextPage:y,onPrevPage:v,updatedSort:i?.direction,onSortChange:x})]})}const JPs=[Br("/request-context")];function e$s(){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:JPs}),children:[a.jsx("h1",{className:"sr-only",children:"Request Context"}),a.jsx("div",{children:a.jsx(Wps,{children:a.jsx(iSe,{})})})]})}const t$s=[Br("/resources")],n$s=[{title:"Mastra APIs",description:"Explore and test the available REST API endpoints with the interactive Swagger UI.",icon:O$n,href:"/swagger-ui",external:!1},{title:"Documentation",description:"Read the official Mastra documentation for guides, references, and tutorials.",icon:Gwt,href:"https://mastra.ai/en/docs",external:!0},{title:"Github",description:"Browse the source code, report issues, and contribute to the Mastra project.",icon:Is,href:"https://github.com/mastra-ai/mastra",external:!0},{title:"Community",description:"Join the Mastra Discord community for help, discussion, and collaboration.",icon:b3,href:"https://discord.gg/mastra-ai",external:!0},{title:"Share with your team",description:"Running Mastra Studio locally? Deploy to the cloud so your team can collaborate.",icon:eSt,href:"https://mastra.ai/cloud",external:!0},{title:"Talk to our Sales team",description:"Get a custom demo, discuss on-prem deployments, and how we can help you accelerate getting agents into production.",icon:GOe,href:"https://mastra.ai/contact?ref=studio",external:!0}];function r$s(){return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t$s}),children:[a.jsx("h1",{className:"sr-only",children:"Resources"}),a.jsx("div",{children:a.jsx("div",{className:"grid max-w-3xl grid-cols-1 gap-4 sm:grid-cols-2",children:n$s.map(e=>a.jsxs("a",{href:e.href,...e.external?{target:"_blank",rel:"noreferrer"}:{},className:"group state-layer flex flex-col gap-3 rounded-lg border border-border bg-background p-5 hover:border-accent1",children:[a.jsxs("div",{className:"flex items-center gap-2.5",children:[a.jsx(e.icon,{className:Z("h-5 w-5 text-muted-foreground group-hover:text-accent1",yn)}),a.jsx("span",{className:"text-subheading text-foreground",children:e.title}),e.external&&a.jsx(Is,{className:"ml-auto h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100"})]}),a.jsx("p",{className:"text-text3 text-caption",children:e.description})]},e.href))})})]})}function oit(){const{isCmsAvailable:e}=xb(),{paths:t}=fn();return e?a.jsx(hK,{href:t.cmsScorersCreateLink(),tooltip:"Create a scorer",children:"New scorer"}):null}const eM=[Br("/scorers")];function s$s(){const{data:e={},isLoading:t,error:n}=Gf(),[r,s]=g.useState(""),[o,i]=g.useState("all"),[l,c]=g.useState();if(n&&Ss(n))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Us,{variant:"fill"})]});if(n&&Ts(n))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(As,{variant:"fill",resource:"scorers"})]});if(n)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load scorers",descriptionSlot:n.message})]});if(Object.keys(e).length===0&&!t)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),headerActions:a.jsx(oit,{}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Lgs,{})]});const u=o!=="all"||r!=="",d=()=>{s(""),i("all")};return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:eM}),headerActions:a.jsx(oit,{}),actionRow:a.jsx(zgs,{search:r,onSearchChange:s,sourceFilter:o,onSourceFilterChange:i,onReset:d,hasActiveFilters:u}),children:[a.jsx("h1",{className:"sr-only",children:"Scorers"}),a.jsx(Dgs,{scorers:e,isLoading:t,search:r,sourceFilter:o,sort:l,onSortChange:(f,h)=>c({key:h,direction:f})})]})}const _Jt=["input","entity"],o$s={input:"Input",entity:"Entity"};function i$s(e){const t=["auto","auto","minmax(0, 10rem)"];return e.has("entity")&&t.push("minmax(0, 14rem)"),e.has("input")&&t.push("minmax(0, 40rem)"),t.join(" ")}function a$s(){const[e,t]=g.useState(new Set),n=g.useMemo(()=>new Set(_Jt.filter(o=>!e.has(o))),[e]),r=g.useMemo(()=>i$s(n),[n]),s=g.useCallback(o=>{t(i=>{const l=new Set(i);return l.has(o)?l.delete(o):l.add(o),l})},[]);return{visibleColumns:n,columns:r,toggleColumn:s}}function l$s({visibleColumns:e,toggleColumn:t}){return a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{icon:a.jsx(Fve,{}),children:"Columns"})}),a.jsxs(ht.Content,{align:"end",children:[a.jsx(ht.Label,{children:"Toggle columns"}),_Jt.map(n=>a.jsx(ht.CheckboxItem,{checked:e.has(n),onClick:()=>t(n),children:o$s[n]},n))]})]})}const iit=[Br("/scorers"),xqn],c$s=["date","score"];function u$s(){const{scorerId:e}=hr(),[t,n]=oo(),r=t.get("scoreId")??void 0,[s,o]=g.useState(r),[i,l]=g.useState(!1),c=Ur(),[u,d]=g.useState({value:"all",label:"All Entities",type:"ALL"}),{scorer:f,error:h}=JVn(e),p=a$s(),{data:m={},isLoading:y,error:v}=nf(),{isLoading:b,error:x}=lp(),{sort:w,onSortChange:k}=ck({searchParams:t,setSearchParams:n,allowedKeys:c$s}),{data:C=[],isLoading:_,error:T,isFetchingNextPage:E,hasNextPage:I,setEndOfListElement:N}=XVn({scorerId:e,entityId:u?.value==="all"?void 0:u?.value,entityType:u?.type==="ALL"?void 0:u?.type}),A=g.useMemo(()=>Q0(C,w,{date:X=>X.createdAt,score:X=>typeof X.score=="number"?X.score:void 0}),[C,w]),P=g.useMemo(()=>f?.agentIds?.filter(X=>m[X]).map(X=>({value:X,label:m[X].name,type:"AGENT"}))||[],[f?.agentIds,m]),F=g.useMemo(()=>f?.workflowIds?.map(X=>({value:X,label:X,type:"WORKFLOW"}))||[],[f?.workflowIds]),L=g.useMemo(()=>[{value:"all",label:"All Entities",type:"ALL"},...P,...F],[P,F]),q=t.get("entity")??"all",V=L.find(X=>X.value===q);V&&V.value!==u?.value&&d(V),g.useEffect(()=>{if(h){const X=h instanceof Error?h.message:"Failed to load scorer";Ye.error(`Error loading scorer: ${X}`)}},[h]),g.useEffect(()=>{if(v){const X=v instanceof Error?v.message:"Failed to load agents";Ye.error(`Error loading agents: ${X}`)}},[v]),g.useEffect(()=>{if(x){const X=x instanceof Error?x.message:"Failed to load workflows";Ye.error(`Error loading workflows: ${X}`)}},[x]);const H=X=>{X?.value&&n(te=>{const ne=new URLSearchParams(te);return ne.set("entity",X.value),ne})};g.useEffect(()=>{const X=t.get("scoreId")??void 0;if(X===s)return;if(!X){o(void 0);return}A.find(ne=>ne.id===X)&&o(X)},[t,A]);const B=g.useCallback(X=>{o(X||void 0),n(te=>{const ne=new URLSearchParams(te);return X?ne.set("scoreId",X):ne.delete("scoreId"),ne})},[n]);if(!f)return null;const W=Ss(h)||Ss(v)||Ss(x),z=h&&Ts(h),Y=!W&&!z&&(h||v||x),D=!_&&A.length===0,R=u?.value!=="all",M=f?.source==="stored",U=e?a.jsx(HX,{open:i,onOpenChange:l,initialScorerIds:[e],onSuccess:X=>{c(`/experiments/${X}`)}}):null,Q=M?a.jsxs(ht,{children:[a.jsx(ht.Trigger,{asChild:!0,children:a.jsx(le,{size:"lg","aria-label":"Scorer actions menu",children:a.jsx(B1,{})})}),a.jsx(ht.Content,{align:"end",className:"w-48",children:a.jsxs(ht.Item,{onSelect:()=>{c(`/cms/scorers/${e}/edit`)},children:[a.jsx(qd,{})," Edit Scorer"]})})]}):null;if(W||z||Y||D&&!R){const X=(h instanceof Error?h.message:void 0)??(v instanceof Error?v.message:void 0)??(x instanceof Error?x.message:void 0)??"An unexpected error occurred",te=W||z||Y;return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:iit}),actionRow:!te&&Q?a.jsx(Vn,{children:a.jsx(Vn.End,{children:Q})}):void 0,children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"flex h-full items-center justify-center",children:W?a.jsx(Us,{}):z?a.jsx(As,{resource:"scorers"}):Y?a.jsx(dn,{tone:"error",titleSlot:"Failed to load scorer",descriptionSlot:X}):a.jsx(mgs,{onRunExperiment:()=>l(!0)})}),U]})}return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:iit}),actionRow:a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:a.jsx(ggs,{selectedEntity:u,entityOptions:L,onEntityChange:H,onReset:()=>{n(X=>{const te=new URLSearchParams(X);return te.set("entity","all"),te})},isLoading:_||y||b})}),a.jsxs(Vn.End,{children:[a.jsx(l$s,{visibleColumns:p.visibleColumns,toggleColumn:p.toggleColumn}),a.jsx(le,{variant:"primary",onClick:()=>l(!0),icon:a.jsx(xu,{}),children:"Run Experiment"}),Q]})]}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(pgs,{scores:A,isLoading:_,selectedScoreId:s,isFetchingNextPage:E,hasNextPage:I,setEndOfListElement:N,onScoreClick:B,errorMsg:T?.message,columnsState:p,sort:w,onSortChange:k}),U]})}const d$s=[{value:"system",label:"System",icon:a.jsx(vSt,{})},{value:"light",label:"Light",icon:a.jsx(VDn,{})},{value:"dark",label:"Dark",icon:a.jsx(b2n,{})}],f$s={md:{itemGap:2,itemWidth:28,root:"gap-0.5 p-0.5",indicator:"inset-y-0.5 left-0.5",item:"h-6 [&_svg]:size-3.5"},xs:{itemGap:1,itemWidth:20,root:"gap-px p-px",indicator:"inset-y-px left-px",item:"h-4 [&_svg]:size-icon-xs"},sm:{itemGap:1,itemWidth:24,root:"gap-px p-px",indicator:"inset-y-px left-px",item:"h-5 [&_svg]:size-icon-xs"}},h$s=({value:e,onChange:t,options:n=d$s,size:r="md",className:s,"aria-label":o="Theme",...i})=>{const{theme:l,setTheme:c}=T3(),u=e??l,d=t??c,f=n.some(v=>v.value===u)?u:n[0]?.value??"system",h=v=>{const b=n.find(x=>x.value===v);b&&d(b.value)},p=Math.max(0,n.findIndex(v=>v.value===f)),m=f$s[r],y=p*(m.itemWidth+m.itemGap);return a.jsxs(n7t,{...i,value:f,onValueChange:h,"aria-label":o,className:Z(sr,"relative inline-flex w-fit items-center rounded-full",m.root,s),children:[a.jsx("span",{"aria-hidden":"true",className:Z("pointer-events-none absolute rounded-full bg-fill-hover motion-reduce:transition-none",Oo.transform,m.indicator),style:{width:m.itemWidth,transform:`translateX(${y}px)`}}),n.map(v=>a.jsx(t7t,{value:v.value,"aria-label":v.label,style:{width:m.itemWidth},className:Z("relative inline-flex cursor-pointer items-center justify-center rounded-full","text-muted-foreground hover:text-foreground data-[checked]:text-foreground",m.item,"focus-visible:outline-hidden","active:scale-90 motion-reduce:transition-none",Oo.colors,Oo.transform),children:a.jsx("span",{"aria-hidden":"true",className:"pointer-events-none inline-flex items-center justify-center",children:v.icon})},v.value))]})},p$s=[Br("/settings")],m$s=()=>{const{baseUrl:e,headers:t,apiPrefix:n}=S3();return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:p$s}),children:[a.jsx("h1",{className:"sr-only",children:"Settings"}),a.jsx(lvs,{children:a.jsxs("div",{className:"mx-auto flex max-w-4xl flex-col gap-8",children:[a.jsxs(Bnt,{children:[a.jsxs(Unt,{children:[a.jsx(Vnt,{children:"General"}),a.jsx(qnt,{children:"Stored in this browser."})]}),a.jsx(yGt,{children:a.jsx(dSe,{label:"Theme",description:"Customize the appearance of the studio.",children:a.jsx(h$s,{})})})]}),a.jsxs(Bnt,{children:[a.jsxs(Unt,{children:[a.jsx(Vnt,{children:"Mastra Connection"}),a.jsx(qnt,{children:"Configure the Mastra instance URL, API prefix, and request headers used by the studio."})]}),a.jsx(AGt,{variant:"factory",initialConfig:{baseUrl:e,headers:t,apiPrefix:n}})]})]})})]})};function g$s(){const[e]=oo(),t=Ur(),n=e.get("redirect")||"/",r=()=>{n.startsWith("http")?window.location.href=n:t(n,{replace:!0})};return a.jsx(lJt,{redirectUri:n,onSuccess:r,initialMode:"signup"})}function v$s(e){return e.replace(/\/$/,"").split("/").pop()}function y$s({templates:e,linkComponent:t,className:n,isLoading:r}){const s=t||"a";return r?a.jsx("div",{className:Z("grid gap-y-4",n),children:Array.from({length:5}).map((o,i)=>a.jsx("div",{className:"h-16 animate-pulse rounded-lg bg-card"},i))}):a.jsx("div",{className:Z("grid gap-y-4",n),children:e.map(o=>{const i=o?.agents||o?.tools||o?.networks||o?.workflows||o?.mcp;return a.jsxs("article",{className:Z(sr,"state-layer grid w-full grid-cols-[1fr_auto] overflow-hidden rounded-lg"),children:[a.jsxs(s,{to:`/templates/${o.slug}`,className:Z("group grid",{"grid-cols-[8rem_1fr] lg:grid-cols-[12rem_1fr]":o.imageURL}),children:[o.imageURL&&a.jsx("div",{className:Z("overflow-hidden"),children:a.jsx("div",{className:"thumb transition-scale h-full w-full bg-cover duration-150",style:{backgroundImage:`url(${o.imageURL})`}})}),a.jsxs("div",{className:Z("grid w-full gap-0.5 px-4 py-3","[&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:text-muted-foreground"),children:[a.jsx("h2",{className:"text-body text-foreground",children:o.title}),a.jsx("p",{className:Z("text-body",Zy,yn),children:o.description}),a.jsxs("div",{className:"mt-3 hidden flex-wrap items-center gap-4 text-body text-muted-foreground 2xl:flex",children:[i&&a.jsxs("ul",{className:Z("m-0 flex list-none gap-4 p-0 text-body text-muted-foreground","text-muted-foreground [&>li]:flex [&>li]:items-center [&>li]:gap-0.5"),children:[o?.agents&&o.agents.length>0&&a.jsxs("li",{children:[a.jsx(Mi,{})," ",o.agents.length]}),o?.tools&&o.tools.length>0&&a.jsxs("li",{children:[a.jsx(Gd,{})," ",o.tools.length]}),o?.networks&&o.networks.length>0&&a.jsxs("li",{children:[a.jsx(ySt,{})," ",o.networks.length]}),o?.workflows&&o.workflows.length>0&&a.jsxs("li",{children:[a.jsx(V1,{})," ",o.workflows.length]}),o?.mcp&&o.mcp.length>0&&a.jsxs("li",{children:[a.jsx(K_,{})," ",o.mcp.length]})]}),i&&o.supportedProviders&&a.jsx("small",{children:"|"}),a.jsx("div",{className:"flex items-center gap-4 text-muted-foreground",children:o.supportedProviders.map(l=>a.jsx("span",{className:"",children:l},l))})]})]})]}),a.jsx("a",{href:o.githubUrl,className:Z("group ml-auto hidden items-center gap-2 pr-4 text-body","lg:flex"),target:"_blank",rel:"noopener noreferrer",children:a.jsxs("span",{className:Z("flex items-center gap-2 rounded bg-sidebar px-2 py-1",$wt,Zy,yn),children:[a.jsx(fK,{})," ",v$s(o.githubUrl)]})})]},o.slug)})})}function b$s({tagOptions:e,selectedTag:t,providerOptions:n,selectedProvider:r,onTagChange:s,onProviderChange:o,searchTerm:i,onSearchChange:l,onReset:c,className:u,isLoading:d}){return d?a.jsxs("div",{className:Z("flex h-[6.5rem] items-center gap-5","[&>div]:h-8 [&>div]:w-48 [&>div]:animate-pulse [&>div]:bg-card",u),children:[a.jsx("div",{})," ",a.jsx("div",{})," ",a.jsx("div",{})]}):a.jsxs("div",{className:Z("sticky top-0 mx-auto flex flex-wrap gap-4 bg-background py-5",u),children:[a.jsx(QD,{name:"search-templates",label:"Search templates",labelIsHidden:!0,value:i,onChange:f=>l?.(f.target.value),placeholder:"Search Template"}),a.jsx(Su,{label:"Filter by tag",labelIsHidden:!0,name:"filter-tag",value:t,onValueChange:s,options:e}),a.jsx(Su,{label:"Filter by provider",labelIsHidden:!0,name:"filter-provider",value:r,onValueChange:o,options:n}),c&&a.jsx(le,{onClick:c,icon:a.jsx(Qt,{}),children:"Reset"})]})}const x$s=[{id:"templates",label:"Templates"}];function w$s(){const{data:e,isLoading:t}=bvr(),{templates:n,tags:r,providers:s}=e??{templates:[],tags:[],providers:[]},[o,i]=g.useState("all"),[l,c]=g.useState("all"),[u,d]=g.useState(""),f=[{value:"all",label:"Any tag"}];(r||[]).forEach(x=>{f.push({value:x,label:x})});const h=[{value:"all",label:"Any provider"}];(s||[]).forEach(x=>{h.push({value:x,label:x})});const p=(x,w)=>{w==="tag"?i(x):w==="provider"&&c(x)},m=x=>{d(x)},y=()=>{i("all"),c("all"),d("")},v=n.filter(x=>!(u&&!x.title.toLowerCase().includes(u)&&!x.description.toLowerCase().includes(u)||o!=="all"&&!x.tags.includes(o)||l!=="all"&&!x.supportedProviders.includes(l))),b=u||o!=="all"||l!=="all";return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:x$s}),children:[a.jsx("h1",{className:"sr-only",children:"Templates"}),a.jsx(k3,{children:a.jsxs(t1t,{children:[a.jsx(Et,{children:a.jsx(Dx,{})}),"Templates"]})}),a.jsxs("div",{className:Z("z-10 h-full w-full overflow-y-auto px-5 pb-12"),children:[a.jsx(b$s,{selectedTag:o,onTagChange:x=>p(x,"tag"),tagOptions:f,selectedProvider:l,onProviderChange:x=>p(x,"provider"),providerOptions:h,searchTerm:u,onSearchChange:m,onReset:b?y:void 0,className:"max-w-[80rem]",isLoading:t}),a.jsx(y$s,{templates:v,linkComponent:vl,className:"mx-auto max-w-[80rem]",isLoading:t})]})]})}const S$s="1.70.0";function JX({children:e,className:t}){return a.jsx("div",{className:Z("transition-height mt-12 rounded-lg border border-border px-4 py-5 lg:min-h-[25rem] lg:px-12",t),children:e})}function k$s({errorMsg:e,validationErrors:t}){const n=typeof e=="string"?e:e!=null?String(e):void 0,r=n?.includes("Invalid schema for function"),s=n?.includes("validation issue")||t&&t.length>0,o=()=>s?"Template installation completed but some validation issues remain. The template may still be functional, but you should review and fix these issues.":r?"There was an issue with the AI model configuration. This may be related to the selected model or AI SDK version compatibility.":"An unexpected error occurred during template installation.",i=()=>s?{icon:a.jsx(uu,{className:"text-yellow-500"}),title:"Template Installed with Warnings"}:{icon:a.jsx(D$n,{}),title:"Template Installation Failed"},{icon:l,title:c}=i();return a.jsxs(JX,{className:"mb-5 content-center space-y-4 text-muted-foreground",children:[a.jsxs("div",{className:Z("grid content-center items-center justify-items-center gap-4","[&>svg]:h-8 [&>svg]:w-8"),children:[l,a.jsxs("div",{className:"space-y-2 text-center",children:[a.jsx("p",{className:"text-subheading text-foreground",children:c}),a.jsx("p",{className:"text-body text-muted-foreground",children:o()})]})]}),t&&t.length>0&&a.jsxs("details",{className:"text-caption",children:[a.jsxs("summary",{className:Z($n,"cursor-pointer text-center select-none"),children:["Show Validation Issues (",t.length,")"]}),a.jsx("div",{className:"mt-4 max-h-60 space-y-2 overflow-auto rounded bg-muted p-3 text-left text-caption",children:t.map((u,d)=>a.jsxs("div",{className:"border-l-2 border-destructive pl-2",children:[a.jsx("div",{className:"font-medium text-destructive",children:u.type==="typescript"?"🔴 TypeScript Error":"⚠️ Lint Error"}),a.jsx("div",{className:"mt-1 font-mono text-caption wrap-break-word whitespace-pre-wrap text-muted-foreground",children:u.message})]},d))})]}),n&&!s&&a.jsxs("details",{className:"text-caption",children:[a.jsx("summary",{className:Z($n,"cursor-pointer text-center select-none"),children:"Show Details"}),a.jsx("div",{className:"mt-4 max-h-60 overflow-auto rounded bg-muted p-3 text-left font-mono text-caption",children:a.jsx("div",{className:"wrap-break-word whitespace-pre-wrap",children:n})})]})]})}const O$s=g.createContext(null);function C$s(){const e=g.useContext(O$s);return e||{registerResetFn:()=>{},triggerReset:()=>{}}}const EJt=({defaultProvider:e,defaultModel:t,updateModel:n,resetModel:r})=>{const[s]=g.useState(e),[o]=g.useState(t),[i,l]=g.useState(t),[c,u]=g.useState(e||""),[d,f]=g.useState(!1),[h,p]=g.useState(!1),[m,y]=g.useState(!1),{data:v,isLoading:b}=L5(),x=_0(),{models:w}=V0(),k=g.useMemo(()=>v?.providers||[],[v]);g.useEffect(()=>{l(t),u(e||"")},[t,e]);const C=ii(c),T=uN(k,C)?.id||C,E=async L=>{if(l(L),L&&T){f(!0);try{const q=await n({provider:T,modelId:L});console.info("Model updated:",q)}catch(q){console.error("Failed to update model:",q)}finally{f(!1)}}},I=L=>{const q=ii(L);u(q),q!==C&&(l(""),y(!0))},{registerResetFn:N}=C$s();if(g.useEffect(()=>(N(()=>{if(h||m)return;if(C&&C!==s&&(!i||i==="")){u(ii(s)),l(o);const B=uN(k,s)?.id||s;B&&o&&n({provider:B,modelId:o}).catch(W=>{console.error("Failed to reset model:",W)})}}),()=>{N(null)}),[N,C,i,s,o,n,h,m,k]),b)return a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(_n,{}),a.jsx("span",{className:"text-body text-muted-foreground",children:"Loading providers..."})]});const A=async()=>{if(!r){console.warn("Reset model function not provided");return}try{f(!0),await r()}catch(L){console.error("Failed to reset model:",L)}finally{f(!1)}},P=uN(k,C);if(x.active&&x.pickerVisible===!1){const L=x.default&&x.default.provider&&x.default.modelId?`${x.default.provider}/${x.default.modelId}`:c&&i?`${c}/${i}`:"Locked by admin";return a.jsxs("div",{className:Z(sr,"flex items-center gap-2 rounded-md px-3 py-2"),"data-testid":"agent-metadata-model-locked",children:[a.jsx(td,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"truncate text-caption text-foreground",children:L}),a.jsx("span",{className:"ml-auto shrink-0 text-meta text-muted-foreground",children:"Set by admin"})]})}const F=!!(C&&i)&&x.active&&x.allowed!==void 0&&!w.some(L=>ii(L.provider)===C&&L.model===i);return a.jsxs("div",{className:"@container",children:[a.jsxs("div",{className:"flex w-full flex-col items-stretch gap-2 @xs:flex-row @xs:items-center",children:[a.jsx("div",{className:"w-full @xs:w-2/5",children:a.jsx(ek,{value:C,onValueChange:I,open:h,onOpenChange:p})}),a.jsx("div",{className:"w-full @xs:w-3/5",children:a.jsx(tk,{llmId:C,value:i,onValueChange:E,open:m,onOpenChange:y})}),a.jsx(le,{variant:"default",size:"md",onClick:A,disabled:d,className:"flex items-center gap-1.5 border-0! text-caption whitespace-nowrap",title:"Reset to original model",children:a.jsx(V_,{className:"h-3.5 w-3.5"})})]}),F&&a.jsx("div",{className:"p-2 pt-2","data-testid":"agent-metadata-model-stale-warning",children:a.jsx(en,{variant:"warning",title:"Model not allowed",children:a.jsxs(en.Message,{children:[a.jsxs("code",{className:"rounded bg-yellow-100 px-1 py-0.5 dark:bg-yellow-900/50",children:[c,"/",i]})," ","is no longer allowed by the admin policy. Pick a different model to save changes."]})})}),P&&!P.connected&&a.jsx("div",{className:"p-2 pt-2",children:a.jsx(en,{variant:"warning",title:"Provider not connected",children:a.jsxs(en.Message,{children:["Set the"," ",a.jsx("code",{className:"rounded bg-yellow-100 px-1 py-0.5 dark:bg-yellow-900/50",children:Array.isArray(P.envVar)?P.envVar.join(", "):P.envVar})," ","environment"," ",Array.isArray(P.envVar)&&P.envVar.length>1?"variables":"variable"," to use this provider."]})})})]})};function _$s({providerOptions:e,selectedProvider:t,onProviderChange:n,variables:r,errors:s,handleInstallTemplate:o,handleVariableChange:i,isLoadingEnvVars:l,isInstalling:c,defaultModelProvider:u,defaultModelId:d,onModelUpdate:f}){return a.jsx(JX,{children:a.jsxs("div",{className:"mx-auto my-4 grid max-w-[40rem] gap-5 p-4 lg:p-5",children:[a.jsxs("h2",{className:Z("flex items-center gap-2 text-heading text-muted-foreground","[&_svg]:h-[1.2em] [&_svg]:opacity-70 [&>svg]:w-[1.2em]"),children:["Install Template ",a.jsx(bSt,{})]}),a.jsx(Su,{name:"template-provider",options:e,label:"Template AI Model Provider",onValueChange:n,value:t,placeholder:"Select",layout:"horizontal"}),t&&Object.entries(r||{}).length>0&&a.jsxs(a.Fragment,{children:[a.jsx("h3",{className:"text-body text-muted-foreground",children:"Set required Environmental Variables"}),a.jsx("div",{className:"grid grid-cols-[1fr_1fr] items-start gap-4",children:l?a.jsxs("div",{className:Z("col-span-2 flex items-center justify-center gap-4 text-caption text-muted-foreground","[&_svg]:h-[1.1em] [&_svg]:w-[1.1em] [&_svg]:opacity-50","animate-in duration-300 fade-in"),children:[a.jsx(_n,{})," Loading variables..."]}):Object.entries(r).map(([h,p])=>a.jsxs(g.Fragment,{children:[a.jsx(Wi,{name:`env-${h}`,labelIsHidden:!0,label:"Key",value:h,disabled:!0,className:"w-full"}),a.jsx(Wi,{name:h,labelIsHidden:!0,label:"Value",value:p,onChange:i,errorMsg:s.includes(h)?"Value is required.":"",autoComplete:"off",className:"w-full"})]},h))}),a.jsxs("div",{className:"relative mt-3.5 border-t border-border pt-12",children:[a.jsx("div",{className:"absolute top-0 left-1/2 flex h-8 w-8 -translate-x-1/2 -translate-y-4 items-center justify-center rounded-full bg-background text-caption text-muted-foreground",children:"And"}),a.jsx("h3",{className:"text-body text-muted-foreground",children:"Set AI Model for Template Installation"}),a.jsx("p",{className:"mt-2 mb-5 text-body text-muted-foreground",children:"This model will be used by the workflow to process and install the template"}),a.jsx(EJt,{defaultProvider:u||"",defaultModel:d||"",updateModel:f||(()=>Promise.resolve({message:"Updated"})),closeEditor:()=>{},autoSave:!0,selectProviderPlaceholder:"Provider"})]})]}),t&&!l&&a.jsx(le,{className:Z("state-layer mt-4 flex min-h-10 w-full items-center justify-center gap-2 rounded-lg bg-card text-body text-foreground","[&_svg]:h-[1.1em] [&_svg]:text-foreground [&>svg]:w-[1.1em]"),onClick:o,disabled:!t||!u||!d||s.length>0||c,children:c?a.jsxs(a.Fragment,{children:[a.jsx(_n,{className:"h-4 w-4"})," Installing..."]}):a.jsxs(a.Fragment,{children:["Install ",a.jsx(qf,{})]})})]})})}function E$s({title:e,description:t,githubUrl:n,isLoading:r,infoData:s,templateSlug:o}){const i=o?`feat/install-template-${o}`:"feat/install-template-[slug]";return a.jsxs(a.Fragment,{children:[a.jsx("div",{className:Z("mt-5 grid items-center"),children:a.jsxs("div",{className:Z("flex items-center gap-3 text-title","[&>svg]:h-[1.2em] [&>svg]:w-[1.2em] [&>svg]:opacity-50",{"[&>svg]:opacity-20":r}),children:[a.jsx(Dx,{}),a.jsx("h2",{className:Z({"flex min-w-[50%] rounded-lg bg-muted":r}),children:r?a.jsx(a.Fragment,{children:" "}):e})]})}),a.jsxs("div",{className:"grid gap-x-24 lg:grid-cols-[1fr_1fr]",children:[a.jsxs("div",{className:"grid",children:[a.jsx("p",{className:Z("mt-2 mb-4 text-body text-muted-foreground",{"rounded-lg bg-muted":r}),children:r?a.jsx(a.Fragment,{children:" "}):t}),!r&&o&&a.jsxs("div",{className:Z("mb-4 rounded-lg border border-border bg-background p-4","flex items-start gap-3"),children:[a.jsx("div",{className:"mt-0.5 shrink-0",children:a.jsx(Hf,{className:"h-[1.1em] w-[1.1em] text-blue-500"})}),a.jsxs("div",{className:"flex-1 space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(VN,{className:"h-[1em] w-[1em] text-muted-foreground"}),a.jsx("span",{className:"text-subheading text-foreground",children:"A new Git branch will be created"})]}),a.jsxs("div",{className:"space-y-1 text-caption text-muted-foreground",children:[a.jsxs("div",{children:[a.jsx("span",{className:"font-medium",children:"Branch name:"})," ",a.jsx("code",{className:"rounded bg-card px-1.5 py-0.5 font-mono text-caption",children:i})]}),a.jsx("div",{children:"This ensures safe installation with easy rollback if needed. Your main branch remains unchanged."})]})]})]}),n&&a.jsxs("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:Z($n,"mt-auto flex items-center gap-2 text-body"),children:[a.jsx(fK,{}),n?.split("/")?.pop()]})]}),s&&a.jsx(L$e,{data:s,labelsAreHidden:!0,isLoading:r})]})]})}function ait(e){switch(e){case"running":return a.jsx(_n,{size:"sm","aria-hidden":!0});case"success":return a.jsx(Hn,{"aria-hidden":!0});case"failed":return a.jsx(Qt,{"aria-hidden":!0});default:return null}}function T$s(){return a.jsx("svg",{viewBox:"0 0 24 24",className:"text-placeholder","aria-hidden":!0,children:a.jsx("circle",{cx:"12",cy:"12",r:"8.5",pathLength:"48",fill:"none",stroke:"currentcolor",strokeWidth:"2.8",strokeLinecap:"round",strokeDasharray:"3 3"})})}function j$s({status:e,variant:t}){return t==="plain"?a.jsx("span",{className:Z("flex size-4 items-center justify-center self-center [&>svg]:size-4",Oo.colors,{"[&>svg]:text-positive1":e==="success","[&>svg]:text-negative1":e==="failed"}),children:e==="pending"?a.jsx(T$s,{}):ait(e)}):a.jsx("span",{className:Z("flex size-7 items-center justify-center self-center rounded-full motion-reduce:transition-none",Oo.colors,Oo.transform,{"[&>svg]:text-notice-success-fg":e==="success","[&>svg]:text-notice-destructive-fg":e==="failed","border border-dashed border-placeholder":e==="pending","[&>svg]:size-4":e!=="running","bg-accent1Dark":e==="success","bg-accent2Dark":e==="failed","scale-110":e==="success"||e==="failed"}),children:ait(e)})}function N$s({step:e,isActive:t,position:n,variant:r="default"}){return a.jsxs("div",{className:Z("grid grid-cols-[1fr_auto] gap-6 rounded-lg px-4 py-3 motion-reduce:transition-none",Oo.colors,{"border border-transparent":r==="default","border-dashed border-placeholder bg-card":t&&r==="default"}),children:[a.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_1fr] gap-2",children:[a.jsxs("span",{className:Z("flex min-w-6 justify-end text-body",Oo.colors,{"text-foreground":t||e.status==="success","text-muted-foreground":!t&&e.status!=="success"}),children:[n,"."]}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("h4",{className:Z("text-body",Oo.colors,{"text-foreground":t||e.status==="success","text-muted-foreground":!t&&e.status!=="success"}),children:e.title}),e.description&&a.jsx("p",{className:Z("-mt-0.5 text-body text-placeholder",{truncate:r==="plain"}),children:e.description})]})]}),a.jsx(j$s,{status:e.status,variant:r})]})}function I$s({currentStep:e,steps:t=[],className:n}){return a.jsx("div",{className:Z(n),children:t.map((r,s)=>a.jsx(N$s,{step:r,isActive:e?.id===r.id,position:s+1},r.id))})}function A$s({steps:e}){const t=e.length,n=e.filter(r=>r.status==="success").length;return a.jsxs("div",{className:"flex w-full flex-col content-center justify-center gap-4",children:[a.jsx("div",{className:"grid w-full grid-cols-[0_repeat(9,1fr)]",children:e.map((r,s)=>a.jsx("div",{className:Z("relative flex h-8 items-center justify-end",Oo.colors,{"bg-accent1Dark":r.status==="success"&&e?.[s-1]?.status==="success"}),children:a.jsx("div",{className:Z("absolute right-0 z-10 flex size-8 translate-x-1/2 items-center justify-center self-center rounded-full bg-fill text-column text-muted-foreground motion-reduce:transition-none",Oo.colors,Oo.transform,{"border border-dashed border-placeholder":r.status==="pending","scale-110 bg-accent1Dark text-notice-success-fg":r.status==="success","scale-110 bg-accent2Dark text-notice-destructive-fg":r.status==="failed"}),children:r.status==="running"?a.jsx(_n,{}):s+1})},r.id))}),a.jsxs("div",{className:Z("text-center text-caption text-muted-foreground",Oo.colors),children:[n," of ",t," steps completed"]})]})}function R$s({name:e,streamResult:t,runId:n,workflowInfo:r}){const s=t?.phase||"initializing",o=t?.payload?.workflowState,i=t?.payload?.currentStep,l=t?.error,c=o?.steps||{},u=Object.keys(c).length>0,d=y=>y==="input"||y.endsWith(".input")||y.startsWith("Mapping_")&&/[0-9a-f]{8}/.test(y)||/[0-9a-f]{8,}/.test(y)?!1:r?.allSteps?y in r.allSteps:!0,f=Object.entries(c).filter(([y,v])=>d(y)),h=f.length,p=()=>{switch(s){case"initializing":return"Preparing template installation...";case"processing":return`Installing ${e} template`;case"completed":return"Template installation completed!";case"error":return"Template installation failed";default:return"Installing template..."}},m=f.map(([y,v])=>({id:y,status:v?.status,description:v?.description,title:y.charAt(0).toUpperCase()+y.slice(1).replace(/-/g," "),isActive:i?.id===y}));return a.jsxs(JX,{className:"mb-5 content-center space-y-6 text-muted-foreground",children:[a.jsxs("div",{className:"text-center",children:[a.jsx("h3",{className:"text-heading text-foreground",children:p()}),(t?.runId||n)&&a.jsxs("div",{className:"mt-2 text-caption text-muted-foreground",children:["Run ID: ",t?.runId??n]})]}),u&&h>0&&!["error"].includes(s)&&a.jsx("div",{className:"mx-auto w-full max-w-[30rem] px-4",children:a.jsx(A$s,{steps:m})}),l&&s==="error"&&a.jsxs("div",{className:Z("flex items-center gap-3 rounded-lg bg-red-500/10 p-4 text-body text-foreground","[&>svg]:h-6 [&>svg]:w-6 [&>svg]:text-red-500 [&>svg]:opacity-70"),children:[a.jsx(A2n,{}),l||"Something went wrong"]}),u&&a.jsx(I$s,{steps:m,currentStep:i,className:"pb-4"}),!u&&s==="initializing"&&a.jsxs("div",{className:"grid justify-items-center gap-4 text-center text-body text-muted-foreground",children:[a.jsx(_n,{}),a.jsx("p",{children:"This may take some time..."})]})]})}function P$s({name:e,installedEntities:t}){return a.jsxs(JX,{className:Z("grid content-center items-center justify-items-center gap-4","[&>svg]:h-8 [&>svg]:w-8"),children:[a.jsx(bSt,{}),a.jsx("h2",{className:"text-heading",children:"Done!"}),a.jsxs("p",{className:"text-center text-body text-muted-foreground",children:["The ",a.jsx("b",{className:"text-muted-foreground",children:e})," template has been successfully installed.",t&&t.length>0&&a.jsxs(a.Fragment,{children:[a.jsx("br",{})," Installed entities are listed below."]})]}),t&&t.length>0&&a.jsx(L$e,{data:t})]})}function $$s(){const{templateSlug:e}=hr(),t=[{id:"templates",label:"Templates",to:"/templates"},{id:"template",label:MG(e)}],[n,r]=oo(),[s,o]=g.useState(""),[i,l]=g.useState(""),[c,u]=g.useState(""),[d,f]=g.useState({}),[h,p]=g.useState([]),[m,y]=g.useState(null),[v,b]=g.useState(!1),[x,w]=g.useState(""),[k,C]=g.useState(!1),[_,T]=g.useState(!1),[E,I]=g.useState([]),{data:N,isLoading:A}=xvr({repoOrSlug:e,owner:"mastra-ai"}),F=S$s?.includes("beta")??!1?"beta":"main",{data:L,isLoading:q}=wvr({repo:N?.githubUrl?new URL(N.githubUrl).pathname.split("/")[2]:`template-${e}`,owner:"mastra-ai",branch:F}),{data:V,isLoading:H}=Svr(),{mutateAsync:B,isPending:W}=kvr(),{mutateAsync:z}=Ovr(),{streamInstall:Y,streamResult:D,isStreaming:R}=_vr(V),{observeInstall:M,streamResult:U,isStreaming:Q}=Evr(V);g.useEffect(()=>{const se=n.get("runId");se&&!v&&!m&&!R&&!Q&&(console.info("🔄 Checking completed run after hot reload:",{runId:se}),w(se),z({runId:se}).then(ae=>{const ue=ae.snapshot;if(ue?.status==="success"&&ue?.result?.success)b(!0);else if(ue?.result?.success===!1)if(ue?.result?.validationResults&&!ue?.result?.validationResults?.valid&&ue?.result?.validationResults?.remainingErrors>0){const{remainingErrors:Se,errors:Te}=ue.result.validationResults,Ne=`Template installation completed but ${Se} validation issue${Se>1?"s":""} remain unresolved.`;y(Ne),I(Te||[])}else{const Se=ue?.result?.message||ue?.result?.error||"Template installation failed";y(typeof Se=="string"?Se:String(Se))}}).catch(ae=>{console.error("❌ Failed to fetch run details:",ae),y("Failed to retrieve installation status after reload")}))},[n,v,m,R,Q,z]),g.useEffect(()=>{const se=n.get("runId"),ae=n.get("resume"),ue=n.get("provider");if(se&&ae==="true"&&ue&&!R&&!Q&&!k&&!_&&V){w(se),C(!0);try{z({runId:se}).then(pe=>{if(pe.snapshot?.status==="running")return M.mutateAsync({runId:se})}).then(()=>{r(pe=>{const Se=new URLSearchParams(pe);return Se.delete("resume"),Se})}).catch(pe=>{console.error("❌ Failed to resume template installation:",pe),pe.message?.includes("404")||pe.message?.includes("not found")?y("Template installation run not found. It may have expired or been completed."):y("Failed to resume template installation. Please try again.")})}catch(pe){console.error("❌ Auto-resume failed with error:",pe),y("Failed to resume template installation. Please refresh and try again.")}}},[n,e,R,Q,k,_,V,z,M,r]);const ee=[{value:"openai",label:"OpenAI"},{value:"anthropic",label:"Anthropic"},{value:"groq",label:"Groq"},{value:"google",label:"Google"}],X=[{key:"tools",label:"Tools",value:N?.tools?.length?N.tools.map(se=>se).join(", "):"n/a",icon:a.jsx(Gd,{})},{key:"agents",label:"Agents",value:N?.agents?.length?N.agents.map(se=>se).join(", "):"n/a",icon:a.jsx(Mi,{})},{key:"workflows",label:"Workflows",value:N?.workflows?.length?N.workflows.map(se=>se).join(", "):"n/a",icon:a.jsx(V1,{})},{key:"providers",label:"Providers",value:N?.supportedProviders?.length?N.supportedProviders.join(", "):"n/a",icon:a.jsx(my,{})},{key:"tags",label:"Tags",value:N?.tags?.length?N.tags.join(", "):"n/a",icon:a.jsx(U1,{})}],te=[{...X[0]},{...X[1]},{...X[2]}].filter(se=>se.value!=="n/a");g.useEffect(()=>{L&&f(L)},[L]),g.useEffect(()=>{const se=D||U;se?.phase==="error"&&se?.error&&y(typeof se.error=="string"?se.error:String(se.error))},[D?.phase,D?.error,U?.phase,U?.error]);const ne=se=>{o(se)},ce=async se=>(l(se.provider),u(se.modelId),{message:"Model updated successfully"}),J=async()=>{const se=Object.entries(d).reduce((ae,[ue,pe])=>(pe===""&&ae.push(ue),ae),[]);if(se.length>0){p(se);return}if(N){y(null),b(!1),w(""),T(!0);try{const ue={repo:N.githubUrl||`https://github.com/mastra-ai/template-${N.slug}`,ref:F,slug:N.slug,variables:d},{runId:pe}=await B({});w(pe),r(Se=>{const Te=new URLSearchParams(Se);return Te.set("runId",pe),Te.set("resume","true"),Te.set("provider",s||"openai"),Te}),await Y.mutateAsync({inputData:ue,selectedModel:{provider:i,modelId:c},runId:pe})}catch(ae){T(!1),y(ae?.message||"Template installation failed"),console.error("Template installation failed",ae)}}},re=se=>{const{name:ae,value:ue}=se.target;ue.trim()===""?p(pe=>[...pe,ae]):p(pe=>pe.filter(Se=>Se!==ae)),f(pe=>({...pe,[ae]:ue}))};return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:Z("h-full w-full overflow-y-scroll lg:px-12"),children:a.jsxs("div",{className:"mx-auto grid w-full max-w-[80rem] gap-y-4 p-4",children:[a.jsx(E$s,{isLoading:A,title:N?.title,description:N?.longDescription,imageURL:N?.imageURL,githubUrl:N?.githubUrl,infoData:X,templateSlug:e}),N&&a.jsxs(a.Fragment,{children:[(R||Q)&&a.jsx(R$s,{name:N.title,streamResult:Q?U:D,runId:x,workflowInfo:V}),v&&a.jsx(P$s,{name:N.title,installedEntities:te,linkComponent:vl}),m&&a.jsx(k$s,{errorMsg:m,validationErrors:E.length>0?E:D?.validationResults?.errors||U?.validationResults?.errors}),!R&&!Q&&!v&&!m&&a.jsx(_$s,{providerOptions:ee,selectedProvider:s,onProviderChange:ne,variables:d,setVariables:f,errors:h,setErrors:p,handleInstallTemplate:J,handleVariableChange:re,isLoadingEnvVars:q||H,isInstalling:W,defaultModelProvider:i,defaultModelId:c,onModelUpdate:ce})]})]})})]})}const M$s=()=>{const{toolId:e,agentId:t}=hr(),n=[Br("/agents"),{...N_e,to:t?`/agents/${encodeURIComponent(t)}`:void 0},{id:"agent-tool",Component:p6n}];return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:n}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"h-full w-full overflow-y-auto",children:a.jsx(Tys,{toolId:e,agentId:t})})]})},D$s=()=>{const e=Je();return Sn({mutationFn:async({toolId:t,input:n,requestContext:r})=>{const s=new C_;Object.entries(r??{}).forEach(([o,i])=>{s.set(o,i)});try{return await e.getTool(t).execute({data:n,requestContext:s})}catch(o){throw Ye.error("Error executing dev tool"),console.error("Error executing dev tool:",o),o}}})},L$s=({toolId:e})=>{const{canExecute:t}=Ea(),n=t("tools"),{data:r={}}=nf(),s=g.useMemo(()=>{for(const y of Object.values(r))if(y.tools){const v=Object.values(y.tools).find(b=>b.id===e);if(v)return v}return null},[r,e]),{data:o,isLoading:i,error:l}=sqn(e,{enabled:!s}),c=s||o,{mutateAsync:u,isPending:d,data:f}=D$s(),{requestContext:h}=ks();g.useEffect(()=>{if(l){const y=l instanceof Error?l.message:"Failed to load tool";Ye.error(`Error loading tool: ${y}`)}},[l]);const p=async(y,v)=>{if(!c)return;const b={...h??{},...v??{}};return u({toolId:c.id,input:y,requestContext:b})},m=c?.inputSchema?jm(e0(c?.inputSchema)):gr({});return i?a.jsxs("div",{className:"p-4",children:[a.jsx(lt,{className:"mb-4 h-8 w-48"}),a.jsx(lt,{className:"h-32 w-full"})]}):l?null:c?n?a.jsx(G$e,{executionResult:f,isExecutingTool:d,zodInputSchema:m,handleExecuteTool:p,toolDescription:c.description,toolId:c.id,requestContextSchema:c.requestContextSchema}):a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"caption",tone:"muted",children:"You don't have permission to execute tools."})}):a.jsx("div",{className:"px-4 py-8 text-center",children:a.jsx(Ae,{variant:"heading",tone:"muted",children:"Tool not found"})})},F$s=()=>{const{toolId:e}=hr(),t=[Br("/tools"),wqn];return a.jsxs(pt,{variant:"fit",breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx("div",{className:"h-full w-full overflow-y-hidden",children:a.jsx(L$s,{toolId:e})})]})},tM=[Br("/workflows")];function z$s(){const{data:e,isLoading:t,error:n}=lp(),[r,s]=g.useState(""),[o,i]=g.useState();return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(As,{variant:"fill",resource:"workflows"})]}):n?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load workflows",descriptionSlot:n.message})]}):Object.keys(e||{}).length===0&&!t?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(els,{})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:tM}),actionRow:a.jsxs(Vn,{children:[a.jsx(Vn.Start,{children:a.jsx("div",{className:"max-w-120 flex-1",children:a.jsx(Nu,{onSearch:s,label:"Filter workflows",placeholder:"Filter by name or description"})})}),a.jsx(Vn.End,{children:a.jsx(le,{render:a.jsx(vl,{to:"/workflows/schedules"}),variant:"primary",icon:a.jsx(Xx,{}),children:"Schedules"})})]}),children:[a.jsx("h1",{className:"sr-only",children:"Workflows"}),a.jsx(Jas,{workflows:e||{},isLoading:t,search:r,sort:o,onSortChange:(l,c)=>i({key:c,direction:l})})]})}const B$s={active:"bg-accent1",paused:"bg-accent3"},U$s={active:"text-accent1",paused:"text-accent3"},TJt=({status:e})=>a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("span",{className:`h-1.5 w-1.5 rounded-full ${B$s[e]}`,"aria-hidden":!0}),a.jsx("span",{className:`text-caption ${U$s[e]}`,children:e})]}),xN=e=>!e||e<=0?"—":new Date(e).toLocaleString(),Q2=e=>{if(!e||e<=0)return"—";const t=e-Date.now(),n=Math.abs(t),r=Math.floor(n/1e3);if(r<60)return t>=0?`in ${r}s`:`${r}s ago`;const s=Math.floor(r/60);if(s<60)return t>=0?`in ${s}m`:`${s}m ago`;const o=Math.floor(s/60);if(o<24)return t>=0?`in ${o}h`:`${o}h ago`;const i=Math.floor(o/24);return t>=0?`in ${i}d`:`${i}d ago`};function jJt({status:e}){const{icon:t,color:n}=V$s(e);return a.jsxs("span",{className:`inline-flex items-center gap-1.5 text-caption whitespace-nowrap ${n}`,children:[a.jsx("span",{className:"inline-flex shrink-0 items-center","aria-hidden":!0,children:t}),a.jsx("span",{children:e})]})}function V$s(e){switch(e){case"success":return{icon:a.jsx(Hn,{size:14}),color:"text-accent1"};case"failed":return{icon:a.jsx(Qt,{size:14}),color:"text-accent2"};case"running":return{icon:a.jsx(_n,{}),color:"text-muted-foreground"};case"suspended":return{icon:a.jsx(nG,{size:14}),color:"text-accent3"};case"canceled":return{icon:a.jsx(bA,{size:14}),color:"text-muted-foreground"};case"pending":case"waiting":return{icon:a.jsx(jC,{size:14}),color:"text-muted-foreground"};default:return{icon:null,color:"text-muted-foreground"}}}const lit="auto auto auto auto 1fr";function q$s(e){if(e===void 0)return"—";if(e<1e3)return`${e}ms`;if(e<6e4)return`${(e/1e3).toFixed(1)}s`;const t=Math.floor(e/6e4),n=Math.floor(e%6e4/1e3);return`${t}m ${n}s`}function H$s(e){const t=Math.abs(e),n=e<0?"-":"";return t<1e3?`${n}${t}ms`:t<6e4?`${n}${(t/1e3).toFixed(1)}s`:t<36e5?`${n}${(t/6e4).toFixed(1)}m`:`${n}${(t/36e5).toFixed(1)}h`}const W$s=3e4,Z$s=5*6e4;function G$s({triggers:e,isLoading:t,workflowId:n,hasNextPage:r,isFetchingNextPage:s,setEndOfListElement:o}){const{Link:i,paths:l}=fn(),c=p=>!!(n&&p.runId&&p.outcome!=="failed"),u=e.filter(c).length,{containerRef:d,getRowProps:f}=Uc({count:u});let h=-1;return t?a.jsx(hc,{columns:lit}):e.length===0?a.jsx(Ae,{variant:"body",tone:"muted",className:"p-4",children:"No trigger history yet."}):a.jsxs(xe,{columns:lit,className:"min-w-0",scrollRef:d,children:[a.jsxs(xe.Top,{children:[a.jsx(xe.TopCell,{children:"Run"}),a.jsx(xe.TopCell,{children:"Status"}),a.jsx(xe.TopCell,{children:"Started"}),a.jsx(xe.TopCell,{children:"Duration"}),a.jsx(xe.TopCell,{children:" "})]}),e.map(p=>{const m=p.actualFireAt-p.scheduledFireAt,y=H$s(m),v=`Scheduled ${xN(p.scheduledFireAt)} — published ${xN(p.actualFireAt)} (drift ${y})`,b=p.outcome==="failed",x=b?p.error:p.run?.error,w=Math.abs(m),k=!b&&w>W$s&&w<=Z$s,C=`${p.scheduleId}-${p.runId}-${p.actualFireAt}`,_=c(p);_&&(h+=1);const T=a.jsx("span",{className:_?"font-mono text-caption whitespace-nowrap text-accent1":"font-mono text-caption whitespace-nowrap text-muted-foreground",children:p.runId}),E=a.jsxs(a.Fragment,{children:[a.jsx(xe.Cell,{children:T}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2",children:[b?a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-caption whitespace-nowrap text-accent2",children:[a.jsx(uu,{size:14}),"publish failed"]}):p.run?a.jsx(jJt,{status:p.run.status}):a.jsx("span",{className:"inline-flex items-center gap-1.5 text-caption whitespace-nowrap text-muted-foreground",children:"pending"}),x?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"inline-flex text-accent2",children:a.jsx(uu,{size:14})})}),a.jsx(Cn,{children:x})]}):null]})}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("span",{title:v,children:Q2(p.actualFireAt)}),k?a.jsxs(In,{children:[a.jsx(On,{asChild:!0,children:a.jsx("span",{className:"inline-flex text-accent3",children:a.jsx(uu,{size:14})})}),a.jsxs(Cn,{children:["Published ",y," after the scheduled fire time"]})]}):null]})}),a.jsx(xe.Cell,{children:p.run?a.jsx("span",{children:q$s(p.run.durationMs)}):a.jsx("span",{className:"text-muted-foreground",children:"—"})}),a.jsx(xe.Cell,{children:" "})]});return _?a.jsx(xe.RowLink,{to:l.workflowRunLink(n,p.runId),LinkComponent:i,...f(h),children:E},C):a.jsx(xe.RowStatic,{children:E},C)}),a.jsx(xe.NextPageLoading,{isLoading:s,hasMore:r,setEndOfListElement:o})]})}const Q$s=e=>{const t=Je();return kt({queryKey:["schedule",e],enabled:!!e,queryFn:async()=>{if(!e)throw new Error("scheduleId is required");return t.getSchedule(e)}})},cit=25,Y$s=e=>{const t=Je(),{inView:n,setRef:r}=N0(),s=hv({queryKey:["schedule-triggers",e],enabled:!!e,initialPageParam:void 0,queryFn:async({pageParam:u})=>e?t.listScheduleTriggers(e,{limit:cit,toActualFireAt:u}):{triggers:[]},getNextPageParam:u=>{if(!(!u?.triggers?.length||u.triggers.length<cit))return u.triggers[u.triggers.length-1].actualFireAt},refetchInterval:u=>(u.state.data?.pages.flatMap(h=>h.triggers)??[]).some(h=>h.run?h.run.status==="pending"||h.run.status==="running"||h.run.status==="waiting":h.outcome==="published")?5e3:!1}),o=s.data?.pages.flatMap(u=>u?.triggers??[])??[],{hasNextPage:i,isFetchingNextPage:l,fetchNextPage:c}=s;return g.useEffect(()=>{n&&i&&!l&&c()},[n,i,l,c]),{...s,data:o,setEndOfListElement:r}},K$s=e=>{const t=Je(),n=jr();return Sn({mutationFn:async r=>{if(!e)throw new Error("scheduleId is required");return r==="pause"?t.pauseSchedule(e):t.resumeSchedule(e)},onSuccess:(r,s)=>{n.invalidateQueries({queryKey:["schedule",e]}),n.invalidateQueries({queryKey:["schedules"]}),Ye.success(s==="pause"?"Schedule paused":"Schedule resumed")},onError:r=>{Ye.error(r.message)}})},NJt={id:"workflow-schedules",label:"Schedules",icon:Xx,to:"/workflows/schedules"};function cB({label:e,children:t}){return a.jsxs("div",{className:"flex flex-col gap-1",children:[a.jsx(Ae,{variant:"meta",tone:"muted",className:"tracking-wide uppercase",children:e}),a.jsx("div",{className:"text-body",children:t})]})}function X$s(){const{scheduleId:e}=hr(),t=[Br("/workflows"),NJt,{id:"schedule",label:MG(e),icon:Xx}],{paths:n}=fn(),{data:r,error:s}=Q$s(e),{data:o,isLoading:i,error:l,hasNextPage:c,isFetchingNextPage:u,setEndOfListElement:d}=Y$s(e),f=K$s(e);if(s&&Ss(s))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(Us,{variant:"fill"})]});if(s&&Ts(s))return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(As,{variant:"fill",resource:"schedules"})]});if(s)return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),children:[a.jsx("h1",{className:"sr-only",children:e}),a.jsx(dn,{tone:"error",variant:"fill",titleSlot:"Failed to load schedule",descriptionSlot:s.message})]});const h=r?.workflowId,p=r?.agentId;return a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:t}),actionRow:a.jsx(Vn,{children:a.jsxs(Vn.End,{children:[a.jsx(le,{render:a.jsx(vl,{to:n.schedulesLink()}),variant:"ghost",icon:a.jsx(Eu,{}),children:"Back to schedules"}),h?a.jsx(le,{icon:a.jsx(xl,{}),render:a.jsx(vl,{to:n.workflowLink(h)}),variant:"ghost",children:"Open workflow"}):null,r?a.jsx(le,{onClick:()=>f.mutate(r.status==="active"?"pause":"resume"),disabled:f.isPending,"data-testid":"schedule-toggle-button",children:r.status==="active"?a.jsxs(a.Fragment,{children:[a.jsx(e1,{}),"Pause"]}):a.jsxs(a.Fragment,{children:[a.jsx(xu,{}),"Resume"]})}):null]})}),children:[a.jsx("h1",{className:"sr-only",children:e}),r?a.jsxs("div",{className:"grid h-full grid-cols-[minmax(0,20rem)_1fr] gap-4 overflow-hidden",children:[a.jsxs("div",{className:"flex h-fit flex-col gap-4 rounded-md border border-border p-4",children:[a.jsx(cB,{label:p?"Agent":"Workflow",children:h?a.jsx(vl,{to:n.workflowLink(h),className:"text-accent1 hover:underline",children:h}):p?a.jsx(vl,{to:n.agentLink(p),className:"text-accent1 hover:underline",children:p}):"—"}),a.jsxs(cB,{label:"Cron",children:[a.jsx("code",{className:"font-mono text-body",children:r.cron}),r.timezone?a.jsx("span",{className:"ml-2 text-caption text-muted-foreground",children:r.timezone}):null]}),a.jsx(cB,{label:"Status",children:a.jsx(TJt,{status:r.status})}),a.jsx(cB,{label:"Next fire",children:a.jsx("span",{title:xN(r.nextFireAt),children:Q2(r.nextFireAt)})})]}),a.jsxs("div",{className:"overflow-y-auto","data-testid":"schedule-triggers-panel",children:[a.jsx(Ae,{variant:"body",className:"mb-3",children:"Trigger history"}),l?a.jsx(dn,{tone:"error",titleSlot:"Failed to load trigger history",descriptionSlot:l.message}):a.jsx(G$s,{triggers:o??[],isLoading:i,workflowId:h,hasNextPage:c,isFetchingNextPage:u,setEndOfListElement:d})]})]}):null]})}const J$s={target:e=>e.workflowId??e.agentId??"",status:e=>e.status,nextFireAt:e=>e.nextFireAt,lastFireAt:e=>e.lastFireAt},uit="minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) auto auto auto";function eMs({schedules:e,isLoading:t,search:n="",sort:r,onSortChange:s}){const{paths:o,Link:i}=fn(),l=g.useMemo(()=>{const f=n.toLowerCase(),h=f?e.filter(p=>p.id.toLowerCase().includes(f)||(p.workflowId??p.agentId??"").toLowerCase().includes(f)):e;return Q0(h,r,J$s)},[e,n,r]),{containerRef:c,getRowProps:u}=Uc({count:l.length,global:!0});if(t)return a.jsx(hc,{columns:uit});const d=(f,h)=>s?a.jsx(xe.SortableTopCell,{sortKey:f,sort:r?.key===f?r.direction:void 0,onSortChange:s,children:h}):a.jsx(xe.TopCell,{children:h});return a.jsxs(xe,{columns:uit,className:"min-w-0",scrollRef:c,children:[a.jsxs(xe.Top,{children:[d("target","Target"),a.jsx(xe.TopCell,{children:"Schedule ID"}),a.jsx(xe.TopCell,{children:"Cron"}),d("status","Status"),d("nextFireAt","Next fire"),d("lastFireAt","Last run")]}),l.length===0&&n?a.jsx(xe.NoMatch,{message:"No schedules match your search"}):null,l.length===0&&!n?a.jsx(xe.NoMatch,{message:"No schedules configured"}):null,l.map((f,h)=>a.jsxs(xe.RowLink,{to:o.scheduleLink(f.id),LinkComponent:i,...u(h),children:[a.jsx(xe.NameCell,{children:f.workflowId??f.agentId}),a.jsx(xe.Cell,{className:"min-w-0",children:a.jsx("span",{className:"block truncate font-mono text-body-sm text-muted-foreground",title:f.id,children:f.id})}),a.jsx(xe.Cell,{children:a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx("code",{className:"font-mono text-caption",children:f.cron}),f.timezone?a.jsx("span",{className:"text-meta text-muted-foreground",children:f.timezone}):null]})}),a.jsx(xe.Cell,{children:a.jsx(TJt,{status:f.status})}),a.jsx(xe.Cell,{children:a.jsx("span",{className:"whitespace-nowrap",title:xN(f.nextFireAt),children:Q2(f.nextFireAt)})}),a.jsx(xe.Cell,{children:f.lastRun?a.jsxs("span",{className:"inline-flex items-center gap-2 whitespace-nowrap",children:[a.jsx(jJt,{status:f.lastRun.status}),a.jsx("span",{className:"text-caption text-muted-foreground",title:xN(f.lastFireAt),children:f.lastFireAt?Q2(f.lastFireAt):""})]}):f.lastFireAt?a.jsx("span",{className:"whitespace-nowrap",title:xN(f.lastFireAt),children:Q2(f.lastFireAt)}):a.jsx("span",{className:"text-muted-foreground",children:"Never"})})]},f.id))]})}function IJt({workflowId:e}={}){const{data:t,isLoading:n,error:r}=CQ(e?{workflowId:e}:{}),[s,o]=g.useState(""),[i,l]=g.useState();return r?a.jsx(dn,{tone:"error",titleSlot:"Failed to load schedules",descriptionSlot:r.message}):a.jsxs("div",{className:"grid h-full grid-rows-[auto_1fr] gap-4 overflow-hidden",children:[a.jsx("div",{className:"max-w-120",children:a.jsx(Nu,{onSearch:o,label:"Filter schedules",placeholder:"Filter by id or workflow"})}),a.jsx("div",{className:"overflow-y-auto",children:a.jsx(eMs,{schedules:t??[],isLoading:n,search:s,sort:i,onSortChange:(c,u)=>l({key:u,direction:c})})})]})}const Sce=[Br("/workflows"),NJt];function tMs(){const[e]=oo(),t=e.get("workflowId")??void 0,{error:n}=CQ(t?{workflowId:t}:{});return n&&Ss(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx(Us,{variant:"fill"})]}):n&&Ts(n)?a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx(As,{variant:"fill",resource:"schedules"})]}):a.jsxs(pt,{breadcrumbs:a.jsx(St,{crumbs:Sce}),children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),a.jsx("div",{className:"h-full",children:a.jsx(IJt,{workflowId:t})})]})}const nMs={"--belt-hue":"var(--warning1)"};function rMs(e){const t=new Blob([JSON.stringify(e??null)]).size;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function sMs(e,t){if(e&&typeof e=="object"&&!Array.isArray(e)){const n=Object.keys(e);if(n.length===1)return n[0]}return t}function oMs({suspendedSteps:e,workflow:t,isStreaming:n,onResume:r}){return n||e.length===0?null:a.jsxs("section",{className:Z(PTe,"pointer-events-auto relative isolate"),"data-testid":"workflow-suspended-steps","aria-label":"Step suspended",children:[a.jsxs("div",{className:"max-h-[calc(100cqh-64px)] overflow-y-auto overscroll-contain rounded-[inherit]",children:[a.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border/50 bg-background px-5 py-4",children:[a.jsxs(Ae,{as:"h2",variant:"column",tone:"ink",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(nG,{})}),"Step suspended"]}),a.jsx($t,{variant:"orange",emphasis:"muted",children:"Needs input"})]}),e.map(s=>{const o=t.allSteps[s.stepId];if(!o||o.isWorkflow)return null;const i=o?.resumeSchema?jm(e0(o.resumeSchema)):wf(jn(),Nf());return a.jsx(iMs,{step:s,stepSchema:i,description:o.description,onResume:r},`${s.runId}-${s.stepId}`)})]}),a.jsx(lAt,{status:"ready",label:"Needs input",className:"before:hidden",style:nMs})]})}function iMs({step:e,stepSchema:t,description:n,onResume:r}){const[s,o]=g.useState(!1),[i,l]=g.useState(!1),c=async u=>{l(!0);try{await r({stepId:e.stepId.split("."),runId:e.runId,resumeData:u})}catch(d){Ye.error(d instanceof Error?d.message:"Error resuming workflow")}finally{l(!1)}};return a.jsxs("div",{className:"space-y-5 p-5 [&+&]:border-t [&+&]:border-border/50",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ae,{as:"p",variant:"subheading",tone:"ink",className:"break-words",children:e.stepId}),n&&a.jsx(Ae,{as:"p",variant:"caption",tone:"muted",children:n})]}),e.suspendPayload!==void 0&&a.jsxs("div",{className:"space-y-2",children:[a.jsxs(Ae,{as:"p",variant:"caption",tone:"muted",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(w2n,{})}),"The step is asking"]}),a.jsxs(Za,{open:s,onOpenChange:o,children:[a.jsxs(Ta,{className:Z(sr,"flex w-full items-center justify-between gap-2 rounded-lg px-3 py-2.5"),children:[a.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[a.jsx(Et,{children:a.jsx(xr,{className:Z("text-muted-foreground transition-transform",{"rotate-90 transform":s})})}),a.jsx(Ae,{as:"span",variant:"body",tone:"ink",className:"truncate",children:sMs(e.suspendPayload,e.stepId)})]}),a.jsx(Ae,{as:"span",variant:"caption",tone:"muted",className:"shrink-0",children:rMs(e.suspendPayload)})]}),a.jsx(ja,{children:a.jsx("div",{"data-testid":"suspended-payload",className:"pt-2",children:a.jsx(Or,{value:JSON.stringify(e.suspendPayload,null,2),editable:!1,className:"w-full overflow-x-auto p-2",showCopyButton:!1})})})]})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsxs(Ae,{as:"p",variant:"caption",tone:"muted",className:"flex items-center gap-2",children:[a.jsx(Et,{children:a.jsx(C2n,{})}),"Your response"]}),a.jsx("div",{className:"-mx-5",children:a.jsx(NTe,{schema:t,isSubmitLoading:i,submitButtonLabel:"Resume",submitButtonVariant:"primary",submitButtonIcon:a.jsx(xu,{}),submitButtonFullWidth:!0,collapsible:!1,hideHeading:!0,hideInputTypeLabel:!0,onSubmit:c})})]})]})}function aMs({hidden:e}){const{result:t,workflow:n,runId:r,isStreamingWorkflow:s}=g.useContext(cc),{canExecute:o,isLoading:i}=Ea(),l=cRt(t,r),c=Hmr(),u=t?.status==="suspended"&&l.length>0&&!s,d=!i&&o("workflows");return!n||!u||!d?null:a.jsx("div",{hidden:e,"data-testid":"workflow-suspended-overlay",className:"pointer-events-none absolute top-12 right-2 z-30 w-[380px] max-w-[calc(100%-16px)] animate-in duration-300 fade-in-0 slide-in-from-top-2 motion-reduce:animate-none",children:a.jsx(oMs,{suspendedSteps:l,workflow:n,isStreaming:s,onResume:c})},r)}const dit={success:{label:"Completed",icon:Hn,color:"text-positive1",bar:"bg-muted-foreground/60"},failed:{label:"Failed",icon:MD,color:"text-negative1",bar:"bg-negative1/60"},suspended:{label:"Needs input",icon:e1,color:"text-accent3",bar:"bg-accent3/60"},waiting:{label:"Waiting",icon:n1,color:"text-muted-foreground",bar:"bg-muted-foreground/40"},paused:{label:"Paused",icon:e1,color:"text-muted-foreground",bar:"bg-muted-foreground/40"},skipped:{label:"Skipped",icon:IDn,color:"text-muted-foreground",bar:"bg-muted-foreground/25"},running:{label:"Running",icon:yo,color:"text-accent6",bar:"bg-accent6/60"},canceled:{label:"Canceled",icon:bA,color:"text-muted-foreground",bar:"bg-muted-foreground/40"}},lMs={label:"Status unavailable",icon:XPn,color:"text-muted-foreground",bar:"bg-muted-foreground/25"};function cMs({row:e,isSelected:t,isHovered:n,onSelectStep:r,onHoverStep:s,onOpenInput:o,onOpenOutput:i}){const l=Object.hasOwn(dit,e.status)?dit[e.status]:lMs,c=l.icon,u=e.stepId.slice(0,e.stepId.lastIndexOf(".")),d=e.isNestedEntry?e.stepId.slice(e.stepId.lastIndexOf(".")+1):e.stepId;return a.jsxs("div",{"data-testid":"workflow-timeline-row","data-workflow-step-key":e.stepId,onMouseEnter:()=>!e.isNestedEntry&&s(e.stepId),onMouseLeave:()=>!e.isNestedEntry&&s(null),className:Z("grid grid-cols-[minmax(130px,1fr)_minmax(64px,1fr)_56px_64px] items-center gap-3 rounded-md px-2 py-1","@max-[540px]/workflow-timeline:grid-cols-[minmax(0,1fr)_48px_64px] @max-[540px]/workflow-timeline:gap-x-1.5 @max-[540px]/workflow-timeline:gap-y-1 @max-[540px]/workflow-timeline:py-2",(t||n)&&"bg-fill-subtle"),children:[a.jsxs("button",{type:"button",className:"flex min-h-9 min-w-0 cursor-pointer items-center gap-2.5 text-left text-meta text-foreground focus-visible:rounded-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus aria-disabled:cursor-default","aria-disabled":e.isNestedEntry,"aria-pressed":t,onClick:()=>{e.isNestedEntry||r(e.stepId)},title:e.stepId,children:[a.jsx("span",{"aria-label":l.label,className:Z("grid size-6 flex-none place-items-center rounded-md border border-border bg-background",l.color),children:a.jsx(c,{"aria-hidden":!0,className:Z("size-3.5",e.status==="running"&&"motion-safe:animate-spin")})}),a.jsxs("span",{className:"min-w-0",children:[a.jsx("span",{className:"block truncate",children:d}),e.isNestedEntry&&a.jsxs("span",{className:"flex min-w-0 items-center gap-1 text-meta text-muted-foreground",children:[a.jsx(KOe,{"aria-hidden":!0,className:"size-3 shrink-0"}),a.jsx("span",{className:"truncate",children:u})]})]})]}),a.jsx("div",{className:"relative h-5 min-w-0 overflow-hidden rounded-sm bg-muted @max-[540px]/workflow-timeline:col-span-full @max-[540px]/workflow-timeline:row-start-2 @max-[540px]/workflow-timeline:ml-[34px]","aria-hidden":!0,children:e.timing&&a.jsx("div",{"data-testid":"workflow-timeline-bar","data-offset":e.timing.offsetPct,"data-width":e.timing.widthPct,className:Z("absolute top-0 h-full min-w-0.5 rounded-sm",l.bar),style:{left:`${e.timing.offsetPct}%`,width:`${e.timing.widthPct}%`}})}),a.jsx("span",{className:"text-right text-meta whitespace-nowrap text-muted-foreground tabular-nums",title:e.timing&&e.spansSuspension?"Includes time spent suspended waiting for input":void 0,children:e.timing?i5(e.timing.durationMs):a.jsx("span",{"aria-label":"Timing unavailable",children:"—"})}),a.jsxs("div",{className:"flex items-center",children:[a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step input",disabled:e.step.input===void 0,onClick:f=>o(e,f.currentTarget),children:a.jsx(JZ,{})}),a.jsx(le,{type:"button",variant:"ghost",size:"icon-sm",tooltip:"View step output",disabled:e.step.output===void 0,onClick:f=>i(e,f.currentTarget),children:a.jsx(tG,{})})]})]})}const uMs=e=>e.includes("."),dMs=e=>e==="input"||e.endsWith(".input"),fit=1;function fMs(e,t){const n=TTe(e),r=n?.isLive?Math.max(t,n.start):n?.end;return{span:n&&r!==void 0?{start:n.start,end:r}:void 0,isLive:n?.isLive??!1,spansSuspension:n?.spansSuspension??!1}}function hMs(e,t){const n=Object.entries(e).filter(([l])=>!dMs(l)).map(([l,c])=>({stepId:l,step:c,...fMs(c,t)})).sort((l,c)=>(l.span?.start??1/0)-(c.span?.start??1/0)||l.stepId.localeCompare(c.stepId)),r=n.flatMap(l=>l.span?[l.span]:[]),s=Math.min(...r.map(l=>l.start)),o=Math.max(s,...r.map(l=>l.end)),i=Math.max(o-s,1);return n.map(({stepId:l,step:c,span:u,isLive:d,spansSuspension:f})=>{let h;if(u){const p=u.end-u.start,m=Math.min((u.start-s)/i*100,100-fit),y=Math.min(Math.max(p/i*100,fit),100-m);h={durationMs:p,offsetPct:m,widthPct:y}}return{stepId:l,step:c,status:OQ(c)?"suspended":c.status,timing:h,spansSuspension:f,isRunning:d,isNestedEntry:uMs(l)}})}function pMs(){const{steps:e}=kR(),{selectedStepId:t,hoverStepId:n,setSelectedStepId:r,setHoverStepId:s}=FG(),[o,i]=g.useState(()=>Date.now()),[l,c]=g.useState(!0),[u,d]=g.useState(!1),{showData:f}=Q1(),h=g.useRef(null),p=hMs(e,o),m=p.some(y=>y.isRunning);return W1t(h,{enabled:m&&!l}),g.useEffect(()=>{if(!m||l)return;const y=setInterval(()=>i(Date.now()),100);return()=>clearInterval(y)},[m,l]),p.length===0?null:a.jsx("div",{"data-testid":"workflow-timeline",className:"relative z-20 shrink-0 px-2 pb-2",children:a.jsxs(Za,{open:!l,onOpenChange:y=>c(!y),className:Z(sr,"@container/workflow-timeline pointer-events-auto overflow-hidden rounded-xl"),children:[a.jsxs("div",{className:"flex items-center",children:[a.jsxs(Ta,{className:"flex min-h-11 min-w-0 flex-1 items-center gap-2 px-3.5 py-2.5 text-caption text-foreground hover:bg-fill-subtle","aria-label":l?"Expand timeline":"Collapse timeline",children:[a.jsx("span",{children:a.jsx(Ywt,{"aria-hidden":!0,className:"size-4 text-muted-foreground"})}),a.jsx("span",{children:"Timeline"}),a.jsxs("span",{className:"text-meta text-muted-foreground",children:[p.length," events"]}),a.jsx("span",{className:"ml-auto",children:a.jsx(ko,{"aria-hidden":!0,className:Z("size-4 transition-transform motion-reduce:transition-none",l&&"-rotate-90")})})]}),!l&&a.jsx(le,{variant:"ghost",size:"icon-sm",tooltip:u?"Restore timeline height":"Enlarge timeline","aria-pressed":u,onClick:()=>d(!u),className:"mr-2 shrink-0",children:u?a.jsx(MPn,{}):a.jsx(Xwt,{})})]}),a.jsx(ja,{children:a.jsx("div",{ref:h,"data-testid":"workflow-timeline-list",className:Z("overflow-auto overscroll-contain px-1.5 pb-1.5",u?"max-h-[min(720px,calc(100dvh-112px))]":"max-h-[min(320px,40dvh)]"),children:p.map(y=>a.jsx(cMs,{row:y,isSelected:t===y.stepId,isHovered:n===y.stepId,onSelectStep:r,onHoverStep:s,onOpenInput:(v,b)=>f({type:"step-input",stepId:v.stepId},b),onOpenOutput:(v,b)=>f({type:"step-output",stepId:v.stepId},b)},y.stepId))})})]})})}const mMs=({workflowId:e,workflow:t,isLoading:n})=>{const{stepDetail:r}=Q1(),s=UA(),o=r?.type==="data",i=a.jsxs("div",{className:"[container-type:size] relative h-full min-h-0",children:[a.jsx(h7t,{workflowId:e,workflow:t,isLoading:n}),a.jsx(aMs,{hidden:o}),o&&a.jsx("div",{className:"pointer-events-auto absolute top-12 right-2 z-30 flex max-h-[calc(100cqh-64px)] w-[440px] max-w-[calc(100%-16px)] flex-col",children:a.jsx(j7,{})}),a.jsx("div",{className:"pointer-events-none absolute right-0 bottom-0 left-[var(--workflow-left-panel-width,0px)] z-20",children:a.jsx(pMs,{})})]});return s&&r&&!o?a.jsx("div",{className:"h-full min-h-0 overflow-hidden",children:a.jsx(j7,{})}):a.jsxs("div",{className:"relative h-full min-h-0",children:[i,a.jsxs(iMe,{className:"pointer-events-none absolute inset-0 z-30 min-h-0 w-full min-w-0 p-2",children:[a.jsx(w_,{id:"workflow-graph",className:"pointer-events-none min-w-0"}),r&&!o&&a.jsxs(a.Fragment,{children:[a.jsx(RW,{className:"pointer-events-auto"}),a.jsx(w_,{id:"workflow-step-detail",minSize:300,maxSize:"60%",defaultSize:420,className:"min-w-0",children:a.jsx("div",{className:"pointer-events-auto h-full min-h-0 overflow-hidden rounded-studio-panel border border-border bg-background",children:a.jsx(j7,{})})})]})]})]})},hit=()=>{const{workflowId:e}=hr(),{data:t,isLoading:n,error:r}=u5(e);return r&&Ss(r)?a.jsx(Us,{variant:"fill"}):r&&Ts(r)?a.jsx(As,{variant:"fill",resource:"workflows"}):a.jsx(mMs,{workflowId:e,workflow:t??void 0,isLoading:n})};function gMs(){const{workflowId:e}=hr(),{error:t}=CQ(e?{workflowId:e}:{});if(!e)return null;let n;return t&&Ss(t)?n=a.jsx(Us,{variant:"fill"}):t&&Ts(t)?n=a.jsx(As,{variant:"fill",resource:"schedules"}):n=a.jsx("div",{className:"h-full",children:a.jsx(IJt,{workflowId:e})}),a.jsxs(pt,{children:[a.jsx("h1",{className:"sr-only",children:"Schedules"}),n]})}function vMs(){const{workflowId:e}=hr();return e?a.jsx(QMe,{scopedEntityId:e,scopedEntityType:cu.WORKFLOW_RUN}):null}function yMs(e,t){if(e==null)return{};var n,r,s=_jt(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(s[n]=e[n])}return s}function e1e(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bMs(e){if(Array.isArray(e))return e1e(e)}function xMs(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wMs(e,t){if(e){if(typeof e=="string")return e1e(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e1e(e,t):void 0}}function SMs(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
687
687
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function t1e(e){return bMs(e)||xMs(e)||wMs(e)||SMs()}function I4(e){"@babel/helpers - typeof";return I4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},I4(e)}function kMs(e,t){if(I4(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(I4(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function OMs(e){var t=kMs(e,"string");return I4(t)=="symbol"?t:t+""}function AJt(e,t,n){return(t=OMs(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pit(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Aj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?pit(Object(n),!0).forEach(function(r){AJt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pit(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function CMs(e){var t=e.length;if(t===0||t===1)return e;if(t===2)return[e[0],e[1],"".concat(e[0],".").concat(e[1]),"".concat(e[1],".").concat(e[0])];if(t===3)return[e[0],e[1],e[2],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0])];if(t>=4)return[e[0],e[1],e[2],e[3],"".concat(e[0],".").concat(e[1]),"".concat(e[0],".").concat(e[2]),"".concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[0]),"".concat(e[1],".").concat(e[2]),"".concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[1]),"".concat(e[2],".").concat(e[3]),"".concat(e[3],".").concat(e[0]),"".concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[0]),"".concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[0],".").concat(e[1],".").concat(e[2],".").concat(e[3]),"".concat(e[0],".").concat(e[1],".").concat(e[3],".").concat(e[2]),"".concat(e[0],".").concat(e[2],".").concat(e[1],".").concat(e[3]),"".concat(e[0],".").concat(e[2],".").concat(e[3],".").concat(e[1]),"".concat(e[0],".").concat(e[3],".").concat(e[1],".").concat(e[2]),"".concat(e[0],".").concat(e[3],".").concat(e[2],".").concat(e[1]),"".concat(e[1],".").concat(e[0],".").concat(e[2],".").concat(e[3]),"".concat(e[1],".").concat(e[0],".").concat(e[3],".").concat(e[2]),"".concat(e[1],".").concat(e[2],".").concat(e[0],".").concat(e[3]),"".concat(e[1],".").concat(e[2],".").concat(e[3],".").concat(e[0]),"".concat(e[1],".").concat(e[3],".").concat(e[0],".").concat(e[2]),"".concat(e[1],".").concat(e[3],".").concat(e[2],".").concat(e[0]),"".concat(e[2],".").concat(e[0],".").concat(e[1],".").concat(e[3]),"".concat(e[2],".").concat(e[0],".").concat(e[3],".").concat(e[1]),"".concat(e[2],".").concat(e[1],".").concat(e[0],".").concat(e[3]),"".concat(e[2],".").concat(e[1],".").concat(e[3],".").concat(e[0]),"".concat(e[2],".").concat(e[3],".").concat(e[0],".").concat(e[1]),"".concat(e[2],".").concat(e[3],".").concat(e[1],".").concat(e[0]),"".concat(e[3],".").concat(e[0],".").concat(e[1],".").concat(e[2]),"".concat(e[3],".").concat(e[0],".").concat(e[2],".").concat(e[1]),"".concat(e[3],".").concat(e[1],".").concat(e[0],".").concat(e[2]),"".concat(e[3],".").concat(e[1],".").concat(e[2],".").concat(e[0]),"".concat(e[3],".").concat(e[2],".").concat(e[0],".").concat(e[1]),"".concat(e[3],".").concat(e[2],".").concat(e[1],".").concat(e[0])]}var kce={};function _Ms(e){if(e.length===0||e.length===1)return e;var t=e.join(".");return kce[t]||(kce[t]=CMs(e)),kce[t]}function EMs(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=e.filter(function(o){return o!=="token"}),s=_Ms(r);return s.reduce(function(o,i){return Aj(Aj({},o),n[i])},t)}function mit(e){return e.join(" ")}function TMs(e,t){var n=0;return function(r){return n+=1,r.map(function(s,o){return RJt({node:s,stylesheet:e,useInlineStyles:t,key:"code-segment-".concat(n,"-").concat(o)})})}}function RJt(e){var t=e.node,n=e.stylesheet,r=e.style,s=r===void 0?{}:r,o=e.useInlineStyles,i=e.key,l=t.properties,c=t.type,u=t.tagName,d=t.value;if(c==="text")return d;if(u){var f=TMs(n,o),h;if(!o)h=Aj(Aj({},l),{},{className:mit(l.className)});else{var p=Object.keys(n).reduce(function(b,x){return x.split(".").forEach(function(w){b.includes(w)||b.push(w)}),b},[]),m=l.className&&l.className.includes("token")?["token"]:[],y=l.className&&m.concat(l.className.filter(function(b){return!p.includes(b)}));h=Aj(Aj({},l),{},{className:mit(y)||void 0,style:EMs(l.className,Object.assign({},l.style,s),n)})}var v=f(t.children);return Pe.createElement(u,KC({key:i},h),v)}}const jMs=(function(e,t){var n=e.listLanguages();return n.indexOf(t)!==-1});var NMs=["language","children","style","customStyle","codeTagProps","useInlineStyles","showLineNumbers","showInlineLineNumbers","startingLineNumber","lineNumberContainerStyle","lineNumberStyle","wrapLines","wrapLongLines","lineProps","renderer","PreTag","CodeTag","code","astGenerator"];function git(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function bS(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?git(Object(n),!0).forEach(function(r){AJt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):git(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}var IMs=/\n/g;function AMs(e){return e.match(IMs)}function RMs(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(s,o){var i=o+n;return Pe.createElement("span",{key:"line-".concat(o),className:"react-syntax-highlighter-line-number",style:typeof r=="function"?r(i):r},"".concat(i,`
688
688
  `))})}function PMs(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,s=r===void 0?{float:"left",paddingRight:"10px"}:r,o=e.numberStyle,i=o===void 0?{}:o,l=e.startingLineNumber;return Pe.createElement("code",{style:Object.assign({},n,s)},RMs({lines:t.replace(/\n$/,"").split(`
689
689
  `),style:i,startingLineNumber:l}))}function $Ms(e){return"".concat(e.toString().length,".25em")}function PJt(e,t){return{type:"element",tagName:"span",properties:{key:"line-number--".concat(e),className:["comment","linenumber","react-syntax-highlighter-line-number"],style:t},children:[{type:"text",value:e}]}}function $Jt(e,t,n){var r={display:"inline-block",minWidth:$Ms(n),paddingRight:"1em",textAlign:"right",userSelect:"none"},s=typeof e=="function"?e(t):e,o=bS(bS({},r),s);return o}function F7(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,s=e.largestLineNumber,o=e.showInlineLineNumbers,i=e.lineProps,l=i===void 0?{}:i,c=e.className,u=c===void 0?[]:c,d=e.showLineNumbers,f=e.wrapLongLines,h=e.wrapLines,p=h===void 0?!1:h,m=p?bS({},typeof l=="function"?l(n):l):{};if(m.className=m.className?[].concat(t1e(m.className.trim().split(/\s+/)),t1e(u)):u,n&&o){var y=$Jt(r,n,s);t.unshift(PJt(n,y))}return f&d&&(m.style=bS({display:"flex"},m.style)),{type:"element",tagName:"span",properties:m,children:t}}function MJt(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r<e.length;r++){var s=e[r];if(s.type==="text")n.push(F7({children:[s],className:t1e(new Set(t))}));else if(s.children){var o=t.concat(s.properties.className);MJt(s.children,o).forEach(function(i){return n.push(i)})}}return n}function MMs(e,t,n,r,s,o,i,l,c){var u,d=MJt(e.value),f=[],h=-1,p=0;function m(C,_){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return F7({children:C,lineNumber:_,lineNumberStyle:l,largestLineNumber:i,showInlineLineNumbers:s,lineProps:n,className:T,showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function y(C,_){if(r&&_&&s){var T=$Jt(l,_,i);C.unshift(PJt(_,T))}return C}function v(C,_){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||T.length>0?m(C,_,T):y(C,_)}for(var b=function(){var _=d[p],T=_.children[0].value,E=AMs(T);if(E){var I=T.split(`