@abstractframework/observer 0.1.3 → 0.1.4

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.
@@ -0,0 +1,143 @@
1
+ var Cx=Object.defineProperty;var Ex=(e,t,r)=>t in e?Cx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var bu=(e,t,r)=>Ex(e,typeof t!="symbol"?t+"":t,r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))o(l);new MutationObserver(l=>{for(const u of l)if(u.type==="childList")for(const c of u.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&o(c)}).observe(document,{childList:!0,subtree:!0});function r(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerPolicy&&(u.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?u.credentials="include":l.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function o(l){if(l.ep)return;l.ep=!0;const u=r(l);fetch(l.href,u)}})();function ih(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xf={exports:{}},Su={},Kf={exports:{}},vn={};/**
2
+ * @license React
3
+ * react.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var pp;function $x(){if(pp)return vn;pp=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),_=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),x=Symbol.iterator;function v(E){return E===null||typeof E!="object"?null:(E=x&&E[x]||E["@@iterator"],typeof E=="function"?E:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,S={};function M(E,U,te){this.props=E,this.context=U,this.refs=S,this.updater=te||b}M.prototype.isReactComponent={},M.prototype.setState=function(E,U){if(typeof E!="object"&&typeof E!="function"&&E!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,E,U,"setState")},M.prototype.forceUpdate=function(E){this.updater.enqueueForceUpdate(this,E,"forceUpdate")};function A(){}A.prototype=M.prototype;function D(E,U,te){this.props=E,this.context=U,this.refs=S,this.updater=te||b}var O=D.prototype=new A;O.constructor=D,j(O,M.prototype),O.isPureReactComponent=!0;var L=Array.isArray,Y=Object.prototype.hasOwnProperty,ne={current:null},X={key:!0,ref:!0,__self:!0,__source:!0};function J(E,U,te){var re,he={},Ne=null,ce=null;if(U!=null)for(re in U.ref!==void 0&&(ce=U.ref),U.key!==void 0&&(Ne=""+U.key),U)Y.call(U,re)&&!X.hasOwnProperty(re)&&(he[re]=U[re]);var xe=arguments.length-2;if(xe===1)he.children=te;else if(1<xe){for(var Pe=Array(xe),oe=0;oe<xe;oe++)Pe[oe]=arguments[oe+2];he.children=Pe}if(E&&E.defaultProps)for(re in xe=E.defaultProps,xe)he[re]===void 0&&(he[re]=xe[re]);return{$$typeof:e,type:E,key:Ne,ref:ce,props:he,_owner:ne.current}}function ge(E,U){return{$$typeof:e,type:E.type,key:U,ref:E.ref,props:E.props,_owner:E._owner}}function me(E){return typeof E=="object"&&E!==null&&E.$$typeof===e}function $e(E){var U={"=":"=0",":":"=2"};return"$"+E.replace(/[=:]/g,function(te){return U[te]})}var Me=/\/+/g;function ue(E,U){return typeof E=="object"&&E!==null&&E.key!=null?$e(""+E.key):U.toString(36)}function I(E,U,te,re,he){var Ne=typeof E;(Ne==="undefined"||Ne==="boolean")&&(E=null);var ce=!1;if(E===null)ce=!0;else switch(Ne){case"string":case"number":ce=!0;break;case"object":switch(E.$$typeof){case e:case t:ce=!0}}if(ce)return ce=E,he=he(ce),E=re===""?"."+ue(ce,0):re,L(he)?(te="",E!=null&&(te=E.replace(Me,"$&/")+"/"),I(he,U,te,"",function(oe){return oe})):he!=null&&(me(he)&&(he=ge(he,te+(!he.key||ce&&ce.key===he.key?"":(""+he.key).replace(Me,"$&/")+"/")+E)),U.push(he)),1;if(ce=0,re=re===""?".":re+":",L(E))for(var xe=0;xe<E.length;xe++){Ne=E[xe];var Pe=re+ue(Ne,xe);ce+=I(Ne,U,te,Pe,he)}else if(Pe=v(E),typeof Pe=="function")for(E=Pe.call(E),xe=0;!(Ne=E.next()).done;)Ne=Ne.value,Pe=re+ue(Ne,xe++),ce+=I(Ne,U,te,Pe,he);else if(Ne==="object")throw U=String(E),Error("Objects are not valid as a React child (found: "+(U==="[object Object]"?"object with keys {"+Object.keys(E).join(", ")+"}":U)+"). If you meant to render a collection of children, use an array instead.");return ce}function G(E,U,te){if(E==null)return E;var re=[],he=0;return I(E,re,"","",function(Ne){return U.call(te,Ne,he++)}),re}function H(E){if(E._status===-1){var U=E._result;U=U(),U.then(function(te){(E._status===0||E._status===-1)&&(E._status=1,E._result=te)},function(te){(E._status===0||E._status===-1)&&(E._status=2,E._result=te)}),E._status===-1&&(E._status=0,E._result=U)}if(E._status===1)return E._result.default;throw E._result}var Z={current:null},N={transition:null},z={ReactCurrentDispatcher:Z,ReactCurrentBatchConfig:N,ReactCurrentOwner:ne};function F(){throw Error("act(...) is not supported in production builds of React.")}return vn.Children={map:G,forEach:function(E,U,te){G(E,function(){U.apply(this,arguments)},te)},count:function(E){var U=0;return G(E,function(){U++}),U},toArray:function(E){return G(E,function(U){return U})||[]},only:function(E){if(!me(E))throw Error("React.Children.only expected to receive a single React element child.");return E}},vn.Component=M,vn.Fragment=r,vn.Profiler=l,vn.PureComponent=D,vn.StrictMode=o,vn.Suspense=h,vn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=z,vn.act=F,vn.cloneElement=function(E,U,te){if(E==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+E+".");var re=j({},E.props),he=E.key,Ne=E.ref,ce=E._owner;if(U!=null){if(U.ref!==void 0&&(Ne=U.ref,ce=ne.current),U.key!==void 0&&(he=""+U.key),E.type&&E.type.defaultProps)var xe=E.type.defaultProps;for(Pe in U)Y.call(U,Pe)&&!X.hasOwnProperty(Pe)&&(re[Pe]=U[Pe]===void 0&&xe!==void 0?xe[Pe]:U[Pe])}var Pe=arguments.length-2;if(Pe===1)re.children=te;else if(1<Pe){xe=Array(Pe);for(var oe=0;oe<Pe;oe++)xe[oe]=arguments[oe+2];re.children=xe}return{$$typeof:e,type:E.type,key:he,ref:Ne,props:re,_owner:ce}},vn.createContext=function(E){return E={$$typeof:c,_currentValue:E,_currentValue2:E,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},E.Provider={$$typeof:u,_context:E},E.Consumer=E},vn.createElement=J,vn.createFactory=function(E){var U=J.bind(null,E);return U.type=E,U},vn.createRef=function(){return{current:null}},vn.forwardRef=function(E){return{$$typeof:d,render:E}},vn.isValidElement=me,vn.lazy=function(E){return{$$typeof:g,_payload:{_status:-1,_result:E},_init:H}},vn.memo=function(E,U){return{$$typeof:_,type:E,compare:U===void 0?null:U}},vn.startTransition=function(E){var U=N.transition;N.transition={};try{E()}finally{N.transition=U}},vn.unstable_act=F,vn.useCallback=function(E,U){return Z.current.useCallback(E,U)},vn.useContext=function(E){return Z.current.useContext(E)},vn.useDebugValue=function(){},vn.useDeferredValue=function(E){return Z.current.useDeferredValue(E)},vn.useEffect=function(E,U){return Z.current.useEffect(E,U)},vn.useId=function(){return Z.current.useId()},vn.useImperativeHandle=function(E,U,te){return Z.current.useImperativeHandle(E,U,te)},vn.useInsertionEffect=function(E,U){return Z.current.useInsertionEffect(E,U)},vn.useLayoutEffect=function(E,U){return Z.current.useLayoutEffect(E,U)},vn.useMemo=function(E,U){return Z.current.useMemo(E,U)},vn.useReducer=function(E,U,te){return Z.current.useReducer(E,U,te)},vn.useRef=function(E){return Z.current.useRef(E)},vn.useState=function(E){return Z.current.useState(E)},vn.useSyncExternalStore=function(E,U,te){return Z.current.useSyncExternalStore(E,U,te)},vn.useTransition=function(){return Z.current.useTransition()},vn.version="18.3.1",vn}var gp;function Ku(){return gp||(gp=1,Kf.exports=$x()),Kf.exports}/**
10
+ * @license React
11
+ * react-jsx-runtime.production.min.js
12
+ *
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var _p;function Tx(){if(_p)return Su;_p=1;var e=Ku(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,l=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function c(d,h,_){var g,x={},v=null,b=null;_!==void 0&&(v=""+_),h.key!==void 0&&(v=""+h.key),h.ref!==void 0&&(b=h.ref);for(g in h)o.call(h,g)&&!u.hasOwnProperty(g)&&(x[g]=h[g]);if(d&&d.defaultProps)for(g in h=d.defaultProps,h)x[g]===void 0&&(x[g]=h[g]);return{$$typeof:t,type:d,key:v,ref:b,props:x,_owner:l.current}}return Su.Fragment=r,Su.jsx=c,Su.jsxs=c,Su}var yp;function Mx(){return yp||(yp=1,Xf.exports=Tx()),Xf.exports}var s=Mx(),m=Ku();const Ee=ih(m);var Ed={},Jf={exports:{}},wi={},Qf={exports:{}},Zf={};/**
18
+ * @license React
19
+ * scheduler.production.min.js
20
+ *
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */var xp;function Ax(){return xp||(xp=1,(function(e){function t(N,z){var F=N.length;N.push(z);e:for(;0<F;){var E=F-1>>>1,U=N[E];if(0<l(U,z))N[E]=z,N[F]=U,F=E;else break e}}function r(N){return N.length===0?null:N[0]}function o(N){if(N.length===0)return null;var z=N[0],F=N.pop();if(F!==z){N[0]=F;e:for(var E=0,U=N.length,te=U>>>1;E<te;){var re=2*(E+1)-1,he=N[re],Ne=re+1,ce=N[Ne];if(0>l(he,F))Ne<U&&0>l(ce,he)?(N[E]=ce,N[Ne]=F,E=Ne):(N[E]=he,N[re]=F,E=re);else if(Ne<U&&0>l(ce,F))N[E]=ce,N[Ne]=F,E=Ne;else break e}}return z}function l(N,z){var F=N.sortIndex-z.sortIndex;return F!==0?F:N.id-z.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var c=Date,d=c.now();e.unstable_now=function(){return c.now()-d}}var h=[],_=[],g=1,x=null,v=3,b=!1,j=!1,S=!1,M=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function O(N){for(var z=r(_);z!==null;){if(z.callback===null)o(_);else if(z.startTime<=N)o(_),z.sortIndex=z.expirationTime,t(h,z);else break;z=r(_)}}function L(N){if(S=!1,O(N),!j)if(r(h)!==null)j=!0,H(Y);else{var z=r(_);z!==null&&Z(L,z.startTime-N)}}function Y(N,z){j=!1,S&&(S=!1,A(J),J=-1),b=!0;var F=v;try{for(O(z),x=r(h);x!==null&&(!(x.expirationTime>z)||N&&!$e());){var E=x.callback;if(typeof E=="function"){x.callback=null,v=x.priorityLevel;var U=E(x.expirationTime<=z);z=e.unstable_now(),typeof U=="function"?x.callback=U:x===r(h)&&o(h),O(z)}else o(h);x=r(h)}if(x!==null)var te=!0;else{var re=r(_);re!==null&&Z(L,re.startTime-z),te=!1}return te}finally{x=null,v=F,b=!1}}var ne=!1,X=null,J=-1,ge=5,me=-1;function $e(){return!(e.unstable_now()-me<ge)}function Me(){if(X!==null){var N=e.unstable_now();me=N;var z=!0;try{z=X(!0,N)}finally{z?ue():(ne=!1,X=null)}}else ne=!1}var ue;if(typeof D=="function")ue=function(){D(Me)};else if(typeof MessageChannel<"u"){var I=new MessageChannel,G=I.port2;I.port1.onmessage=Me,ue=function(){G.postMessage(null)}}else ue=function(){M(Me,0)};function H(N){X=N,ne||(ne=!0,ue())}function Z(N,z){J=M(function(){N(e.unstable_now())},z)}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(N){N.callback=null},e.unstable_continueExecution=function(){j||b||(j=!0,H(Y))},e.unstable_forceFrameRate=function(N){0>N||125<N?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):ge=0<N?Math.floor(1e3/N):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return r(h)},e.unstable_next=function(N){switch(v){case 1:case 2:case 3:var z=3;break;default:z=v}var F=v;v=z;try{return N()}finally{v=F}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(N,z){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var F=v;v=N;try{return z()}finally{v=F}},e.unstable_scheduleCallback=function(N,z,F){var E=e.unstable_now();switch(typeof F=="object"&&F!==null?(F=F.delay,F=typeof F=="number"&&0<F?E+F:E):F=E,N){case 1:var U=-1;break;case 2:U=250;break;case 5:U=1073741823;break;case 4:U=1e4;break;default:U=5e3}return U=F+U,N={id:g++,callback:z,priorityLevel:N,startTime:F,expirationTime:U,sortIndex:-1},F>E?(N.sortIndex=F,t(_,N),r(h)===null&&N===r(_)&&(S?(A(J),J=-1):S=!0,Z(L,F-E))):(N.sortIndex=U,t(h,N),j||b||(j=!0,H(Y))),N},e.unstable_shouldYield=$e,e.unstable_wrapCallback=function(N){var z=v;return function(){var F=v;v=z;try{return N.apply(this,arguments)}finally{v=F}}}})(Zf)),Zf}var vp;function zx(){return vp||(vp=1,Qf.exports=Ax()),Qf.exports}/**
26
+ * @license React
27
+ * react-dom.production.min.js
28
+ *
29
+ * Copyright (c) Facebook, Inc. and its affiliates.
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */var wp;function Rx(){if(wp)return wi;wp=1;var e=Ku(),t=zx();function r(n){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+n,a=1;a<arguments.length;a++)i+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+n+"; visit "+i+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,l={};function u(n,i){c(n,i),c(n+"Capture",i)}function c(n,i){for(l[n]=i,n=0;n<i.length;n++)o.add(i[n])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,_=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,g={},x={};function v(n){return h.call(x,n)?!0:h.call(g,n)?!1:_.test(n)?x[n]=!0:(g[n]=!0,!1)}function b(n,i,a,f){if(a!==null&&a.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return f?!1:a!==null?!a.acceptsBooleans:(n=n.toLowerCase().slice(0,5),n!=="data-"&&n!=="aria-");default:return!1}}function j(n,i,a,f){if(i===null||typeof i>"u"||b(n,i,a,f))return!0;if(f)return!1;if(a!==null)switch(a.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function S(n,i,a,f,p,y,T){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=f,this.attributeNamespace=p,this.mustUseProperty=a,this.propertyName=n,this.type=i,this.sanitizeURL=y,this.removeEmptyString=T}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){M[n]=new S(n,0,!1,n,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(n){var i=n[0];M[i]=new S(i,1,!1,n[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(n){M[n]=new S(n,2,!1,n.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){M[n]=new S(n,2,!1,n,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(n){M[n]=new S(n,3,!1,n.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(n){M[n]=new S(n,3,!0,n,null,!1,!1)}),["capture","download"].forEach(function(n){M[n]=new S(n,4,!1,n,null,!1,!1)}),["cols","rows","size","span"].forEach(function(n){M[n]=new S(n,6,!1,n,null,!1,!1)}),["rowSpan","start"].forEach(function(n){M[n]=new S(n,5,!1,n.toLowerCase(),null,!1,!1)});var A=/[\-:]([a-z])/g;function D(n){return n[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(n){var i=n.replace(A,D);M[i]=new S(i,1,!1,n,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(n){var i=n.replace(A,D);M[i]=new S(i,1,!1,n,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(n){var i=n.replace(A,D);M[i]=new S(i,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(n){M[n]=new S(n,1,!1,n.toLowerCase(),null,!1,!1)}),M.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(n){M[n]=new S(n,1,!1,n.toLowerCase(),null,!0,!0)});function O(n,i,a,f){var p=M.hasOwnProperty(i)?M[i]:null;(p!==null?p.type!==0:f||!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(j(i,a,p,f)&&(a=null),f||p===null?v(i)&&(a===null?n.removeAttribute(i):n.setAttribute(i,""+a)):p.mustUseProperty?n[p.propertyName]=a===null?p.type===3?!1:"":a:(i=p.attributeName,f=p.attributeNamespace,a===null?n.removeAttribute(i):(p=p.type,a=p===3||p===4&&a===!0?"":""+a,f?n.setAttributeNS(f,i,a):n.setAttribute(i,a))))}var L=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Y=Symbol.for("react.element"),ne=Symbol.for("react.portal"),X=Symbol.for("react.fragment"),J=Symbol.for("react.strict_mode"),ge=Symbol.for("react.profiler"),me=Symbol.for("react.provider"),$e=Symbol.for("react.context"),Me=Symbol.for("react.forward_ref"),ue=Symbol.for("react.suspense"),I=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),Z=Symbol.for("react.offscreen"),N=Symbol.iterator;function z(n){return n===null||typeof n!="object"?null:(n=N&&n[N]||n["@@iterator"],typeof n=="function"?n:null)}var F=Object.assign,E;function U(n){if(E===void 0)try{throw Error()}catch(a){var i=a.stack.trim().match(/\n( *(at )?)/);E=i&&i[1]||""}return`
34
+ `+E+n}var te=!1;function re(n,i){if(!n||te)return"";te=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(i)if(i=function(){throw Error()},Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(i,[])}catch(we){var f=we}Reflect.construct(n,[],i)}else{try{i.call()}catch(we){f=we}n.call(i.prototype)}else{try{throw Error()}catch(we){f=we}n()}}catch(we){if(we&&f&&typeof we.stack=="string"){for(var p=we.stack.split(`
35
+ `),y=f.stack.split(`
36
+ `),T=p.length-1,q=y.length-1;1<=T&&0<=q&&p[T]!==y[q];)q--;for(;1<=T&&0<=q;T--,q--)if(p[T]!==y[q]){if(T!==1||q!==1)do if(T--,q--,0>q||p[T]!==y[q]){var ee=`
37
+ `+p[T].replace(" at new "," at ");return n.displayName&&ee.includes("<anonymous>")&&(ee=ee.replace("<anonymous>",n.displayName)),ee}while(1<=T&&0<=q);break}}}finally{te=!1,Error.prepareStackTrace=a}return(n=n?n.displayName||n.name:"")?U(n):""}function he(n){switch(n.tag){case 5:return U(n.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return n=re(n.type,!1),n;case 11:return n=re(n.type.render,!1),n;case 1:return n=re(n.type,!0),n;default:return""}}function Ne(n){if(n==null)return null;if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case X:return"Fragment";case ne:return"Portal";case ge:return"Profiler";case J:return"StrictMode";case ue:return"Suspense";case I:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case $e:return(n.displayName||"Context")+".Consumer";case me:return(n._context.displayName||"Context")+".Provider";case Me:var i=n.render;return n=n.displayName,n||(n=i.displayName||i.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case G:return i=n.displayName||null,i!==null?i:Ne(n.type)||"Memo";case H:i=n._payload,n=n._init;try{return Ne(n(i))}catch{}}return null}function ce(n){var i=n.type;switch(n.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return n=i.render,n=n.displayName||n.name||"",i.displayName||(n!==""?"ForwardRef("+n+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ne(i);case 8:return i===J?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function xe(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function Pe(n){var i=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function oe(n){var i=Pe(n)?"checked":"value",a=Object.getOwnPropertyDescriptor(n.constructor.prototype,i),f=""+n[i];if(!n.hasOwnProperty(i)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var p=a.get,y=a.set;return Object.defineProperty(n,i,{configurable:!0,get:function(){return p.call(this)},set:function(T){f=""+T,y.call(this,T)}}),Object.defineProperty(n,i,{enumerable:a.enumerable}),{getValue:function(){return f},setValue:function(T){f=""+T},stopTracking:function(){n._valueTracker=null,delete n[i]}}}}function be(n){n._valueTracker||(n._valueTracker=oe(n))}function Se(n){if(!n)return!1;var i=n._valueTracker;if(!i)return!0;var a=i.getValue(),f="";return n&&(f=Pe(n)?n.checked?"true":"false":n.value),n=f,n!==a?(i.setValue(n),!0):!1}function Ue(n){if(n=n||(typeof document<"u"?document:void 0),typeof n>"u")return null;try{return n.activeElement||n.body}catch{return n.body}}function De(n,i){var a=i.checked;return F({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??n._wrapperState.initialChecked})}function ct(n,i){var a=i.defaultValue==null?"":i.defaultValue,f=i.checked!=null?i.checked:i.defaultChecked;a=xe(i.value!=null?i.value:a),n._wrapperState={initialChecked:f,initialValue:a,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function ut(n,i){i=i.checked,i!=null&&O(n,"checked",i,!1)}function Ae(n,i){ut(n,i);var a=xe(i.value),f=i.type;if(a!=null)f==="number"?(a===0&&n.value===""||n.value!=a)&&(n.value=""+a):n.value!==""+a&&(n.value=""+a);else if(f==="submit"||f==="reset"){n.removeAttribute("value");return}i.hasOwnProperty("value")?dt(n,i.type,a):i.hasOwnProperty("defaultValue")&&dt(n,i.type,xe(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(n.defaultChecked=!!i.defaultChecked)}function Re(n,i,a){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var f=i.type;if(!(f!=="submit"&&f!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+n._wrapperState.initialValue,a||i===n.value||(n.value=i),n.defaultValue=i}a=n.name,a!==""&&(n.name=""),n.defaultChecked=!!n._wrapperState.initialChecked,a!==""&&(n.name=a)}function dt(n,i,a){(i!=="number"||Ue(n.ownerDocument)!==n)&&(a==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+a&&(n.defaultValue=""+a))}var jt=Array.isArray;function Mt(n,i,a,f){if(n=n.options,i){i={};for(var p=0;p<a.length;p++)i["$"+a[p]]=!0;for(a=0;a<n.length;a++)p=i.hasOwnProperty("$"+n[a].value),n[a].selected!==p&&(n[a].selected=p),p&&f&&(n[a].defaultSelected=!0)}else{for(a=""+xe(a),i=null,p=0;p<n.length;p++){if(n[p].value===a){n[p].selected=!0,f&&(n[p].defaultSelected=!0);return}i!==null||n[p].disabled||(i=n[p])}i!==null&&(i.selected=!0)}}function gt(n,i){if(i.dangerouslySetInnerHTML!=null)throw Error(r(91));return F({},i,{value:void 0,defaultValue:void 0,children:""+n._wrapperState.initialValue})}function _e(n,i){var a=i.value;if(a==null){if(a=i.children,i=i.defaultValue,a!=null){if(i!=null)throw Error(r(92));if(jt(a)){if(1<a.length)throw Error(r(93));a=a[0]}i=a}i==null&&(i=""),a=i}n._wrapperState={initialValue:xe(a)}}function Kt(n,i){var a=xe(i.value),f=xe(i.defaultValue);a!=null&&(a=""+a,a!==n.value&&(n.value=a),i.defaultValue==null&&n.defaultValue!==a&&(n.defaultValue=a)),f!=null&&(n.defaultValue=""+f)}function Te(n){var i=n.textContent;i===n._wrapperState.initialValue&&i!==""&&i!==null&&(n.value=i)}function nt(n){switch(n){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(n,i){return n==null||n==="http://www.w3.org/1999/xhtml"?nt(i):n==="http://www.w3.org/2000/svg"&&i==="foreignObject"?"http://www.w3.org/1999/xhtml":n}var Oe,Jt=(function(n){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(i,a,f,p){MSApp.execUnsafeLocalFunction(function(){return n(i,a,f,p)})}:n})(function(n,i){if(n.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in n)n.innerHTML=i;else{for(Oe=Oe||document.createElement("div"),Oe.innerHTML="<svg>"+i.valueOf().toString()+"</svg>",i=Oe.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;i.firstChild;)n.appendChild(i.firstChild)}});function vt(n,i){if(i){var a=n.firstChild;if(a&&a===n.lastChild&&a.nodeType===3){a.nodeValue=i;return}}n.textContent=i}var on={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bn=["Webkit","ms","Moz","O"];Object.keys(on).forEach(function(n){bn.forEach(function(i){i=i+n.charAt(0).toUpperCase()+n.substring(1),on[i]=on[n]})});function un(n,i,a){return i==null||typeof i=="boolean"||i===""?"":a||typeof i!="number"||i===0||on.hasOwnProperty(n)&&on[n]?(""+i).trim():i+"px"}function yn(n,i){n=n.style;for(var a in i)if(i.hasOwnProperty(a)){var f=a.indexOf("--")===0,p=un(a,i[a],f);a==="float"&&(a="cssFloat"),f?n.setProperty(a,p):n[a]=p}}var Pn=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function En(n,i){if(i){if(Pn[n]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(r(137,n));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(r(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(r(61))}if(i.style!=null&&typeof i.style!="object")throw Error(r(62))}}function sr(n,i){if(n.indexOf("-")===-1)return typeof i.is=="string";switch(n){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var It=null;function kr(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var Nr=null,Wn=null,ae=null;function ke(n){if(n=Ja(n)){if(typeof Nr!="function")throw Error(r(280));var i=n.stateNode;i&&(i=hc(i),Nr(n.stateNode,n.type,i))}}function st(n){Wn?ae?ae.push(n):ae=[n]:Wn=n}function it(){if(Wn){var n=Wn,i=ae;if(ae=Wn=null,ke(n),i)for(n=0;n<i.length;n++)ke(i[n])}}function _t(n,i){return n(i)}function Tt(){}var Ot=!1;function Wt(n,i,a){if(Ot)return n(i,a);Ot=!0;try{return _t(n,i,a)}finally{Ot=!1,(Wn!==null||ae!==null)&&(Tt(),it())}}function nn(n,i){var a=n.stateNode;if(a===null)return null;var f=hc(a);if(f===null)return null;a=f[i];e:switch(i){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(f=!f.disabled)||(n=n.type,f=!(n==="button"||n==="input"||n==="select"||n==="textarea")),n=!f;break e;default:n=!1}if(n)return null;if(a&&typeof a!="function")throw Error(r(231,i,typeof a));return a}var Ft=!1;if(d)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){Ft=!0}}),window.addEventListener("test",dn,dn),window.removeEventListener("test",dn,dn)}catch{Ft=!1}function hn(n,i,a,f,p,y,T,q,ee){var we=Array.prototype.slice.call(arguments,3);try{i.apply(a,we)}catch(He){this.onError(He)}}var Qt=!1,rn=null,qt=!1,et=null,Sn={onError:function(n){Qt=!0,rn=n}};function Nn(n,i,a,f,p,y,T,q,ee){Qt=!1,rn=null,hn.apply(Sn,arguments)}function In(n,i,a,f,p,y,T,q,ee){if(Nn.apply(this,arguments),Qt){if(Qt){var we=rn;Qt=!1,rn=null}else throw Error(r(198));qt||(qt=!0,et=we)}}function $n(n){var i=n,a=n;if(n.alternate)for(;i.return;)i=i.return;else{n=i;do i=n,(i.flags&4098)!==0&&(a=i.return),n=i.return;while(n)}return i.tag===3?a:null}function Cr(n){if(n.tag===13){var i=n.memoizedState;if(i===null&&(n=n.alternate,n!==null&&(i=n.memoizedState)),i!==null)return i.dehydrated}return null}function ir(n){if($n(n)!==n)throw Error(r(188))}function lr(n){var i=n.alternate;if(!i){if(i=$n(n),i===null)throw Error(r(188));return i!==n?null:n}for(var a=n,f=i;;){var p=a.return;if(p===null)break;var y=p.alternate;if(y===null){if(f=p.return,f!==null){a=f;continue}break}if(p.child===y.child){for(y=p.child;y;){if(y===a)return ir(p),n;if(y===f)return ir(p),i;y=y.sibling}throw Error(r(188))}if(a.return!==f.return)a=p,f=y;else{for(var T=!1,q=p.child;q;){if(q===a){T=!0,a=p,f=y;break}if(q===f){T=!0,f=p,a=y;break}q=q.sibling}if(!T){for(q=y.child;q;){if(q===a){T=!0,a=y,f=p;break}if(q===f){T=!0,f=y,a=p;break}q=q.sibling}if(!T)throw Error(r(189))}}if(a.alternate!==f)throw Error(r(190))}if(a.tag!==3)throw Error(r(188));return a.stateNode.current===a?n:i}function gr(n){return n=lr(n),n!==null?Ns(n):null}function Ns(n){if(n.tag===5||n.tag===6)return n;for(n=n.child;n!==null;){var i=Ns(n);if(i!==null)return i;n=n.sibling}return null}var ds=t.unstable_scheduleCallback,Si=t.unstable_cancelCallback,Bo=t.unstable_shouldYield,Ir=t.unstable_requestPaint,Tn=t.unstable_now,Ds=t.unstable_getCurrentPriorityLevel,Ii=t.unstable_ImmediatePriority,fs=t.unstable_UserBlockingPriority,Kn=t.unstable_NormalPriority,Ze=t.unstable_LowPriority,bt=t.unstable_IdlePriority,fn=null,fr=null;function Vr(n){if(fr&&typeof fr.onCommitFiberRoot=="function")try{fr.onCommitFiberRoot(fn,n,void 0,(n.current.flags&128)===128)}catch{}}var Er=Math.clz32?Math.clz32:ai,ms=Math.log,oi=Math.LN2;function ai(n){return n>>>=0,n===0?32:31-(ms(n)/oi|0)|0}var Fn=64,qr=4194304;function or(n){switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return n&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return n}}function Ce(n,i){var a=n.pendingLanes;if(a===0)return 0;var f=0,p=n.suspendedLanes,y=n.pingedLanes,T=a&268435455;if(T!==0){var q=T&~p;q!==0?f=or(q):(y&=T,y!==0&&(f=or(y)))}else T=a&~p,T!==0?f=or(T):y!==0&&(f=or(y));if(f===0)return 0;if(i!==0&&i!==f&&(i&p)===0&&(p=f&-f,y=i&-i,p>=y||p===16&&(y&4194240)!==0))return i;if((f&4)!==0&&(f|=a&16),i=n.entangledLanes,i!==0)for(n=n.entanglements,i&=f;0<i;)a=31-Er(i),p=1<<a,f|=n[a],i&=~p;return f}function _r(n,i){switch(n){case 1:case 2:case 4:return i+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qe(n,i){for(var a=n.suspendedLanes,f=n.pingedLanes,p=n.expirationTimes,y=n.pendingLanes;0<y;){var T=31-Er(y),q=1<<T,ee=p[T];ee===-1?((q&a)===0||(q&f)!==0)&&(p[T]=_r(q,i)):ee<=i&&(n.expiredLanes|=q),y&=~q}}function Jn(n){return n=n.pendingLanes&-1073741825,n!==0?n:n&1073741824?1073741824:0}function Cn(){var n=Fn;return Fn<<=1,(Fn&4194240)===0&&(Fn=64),n}function Cs(n){for(var i=[],a=0;31>a;a++)i.push(n);return i}function mr(n,i,a){n.pendingLanes|=i,i!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,i=31-Er(i),n[i]=a}function Bs(n,i){var a=n.pendingLanes&~i;n.pendingLanes=i,n.suspendedLanes=0,n.pingedLanes=0,n.expiredLanes&=i,n.mutableReadLanes&=i,n.entangledLanes&=i,i=n.entanglements;var f=n.eventTimes;for(n=n.expirationTimes;0<a;){var p=31-Er(a),y=1<<p;i[p]=0,f[p]=-1,n[p]=-1,a&=~y}}function hs(n,i){var a=n.entangledLanes|=i;for(n=n.entanglements;a;){var f=31-Er(a),p=1<<f;p&i|n[f]&i&&(n[f]|=i),a&=~p}}var pn=0;function ar(n){return n&=-n,1<n?4<n?(n&268435455)!==0?16:536870912:4:1}var li,Us,Qn,cr,ps,Zr=!1,Ws=[],$r=null,Mn=null,hr=null,Es=new Map,Hs=new Map,Or=[],Gr="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Vs(n,i){switch(n){case"focusin":case"focusout":$r=null;break;case"dragenter":case"dragleave":Mn=null;break;case"mouseover":case"mouseout":hr=null;break;case"pointerover":case"pointerout":Es.delete(i.pointerId);break;case"gotpointercapture":case"lostpointercapture":Hs.delete(i.pointerId)}}function $s(n,i,a,f,p,y){return n===null||n.nativeEvent!==y?(n={blockedOn:i,domEventName:a,eventSystemFlags:f,nativeEvent:y,targetContainers:[p]},i!==null&&(i=Ja(i),i!==null&&Us(i)),n):(n.eventSystemFlags|=f,i=n.targetContainers,p!==null&&i.indexOf(p)===-1&&i.push(p),n)}function ci(n,i,a,f,p){switch(i){case"focusin":return $r=$s($r,n,i,a,f,p),!0;case"dragenter":return Mn=$s(Mn,n,i,a,f,p),!0;case"mouseover":return hr=$s(hr,n,i,a,f,p),!0;case"pointerover":var y=p.pointerId;return Es.set(y,$s(Es.get(y)||null,n,i,a,f,p)),!0;case"gotpointercapture":return y=p.pointerId,Hs.set(y,$s(Hs.get(y)||null,n,i,a,f,p)),!0}return!1}function Oi(n){var i=mi(n.target);if(i!==null){var a=$n(i);if(a!==null){if(i=a.tag,i===13){if(i=Cr(a),i!==null){n.blockedOn=i,ps(n.priority,function(){Qn(a)});return}}else if(i===3&&a.stateNode.current.memoizedState.isDehydrated){n.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}n.blockedOn=null}function es(n){if(n.blockedOn!==null)return!1;for(var i=n.targetContainers;0<i.length;){var a=ie(n.domEventName,n.eventSystemFlags,i[0],n.nativeEvent);if(a===null){a=n.nativeEvent;var f=new a.constructor(a.type,a);It=f,a.target.dispatchEvent(f),It=null}else return i=Ja(a),i!==null&&Us(i),n.blockedOn=a,!1;i.shift()}return!0}function uo(n,i,a){es(n)&&a.delete(i)}function Fi(){Zr=!1,$r!==null&&es($r)&&($r=null),Mn!==null&&es(Mn)&&(Mn=null),hr!==null&&es(hr)&&(hr=null),Es.forEach(uo),Hs.forEach(uo)}function gs(n,i){n.blockedOn===i&&(n.blockedOn=null,Zr||(Zr=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Fi)))}function Ts(n){function i(p){return gs(p,n)}if(0<Ws.length){gs(Ws[0],n);for(var a=1;a<Ws.length;a++){var f=Ws[a];f.blockedOn===n&&(f.blockedOn=null)}}for($r!==null&&gs($r,n),Mn!==null&&gs(Mn,n),hr!==null&&gs(hr,n),Es.forEach(i),Hs.forEach(i),a=0;a<Or.length;a++)f=Or[a],f.blockedOn===n&&(f.blockedOn=null);for(;0<Or.length&&(a=Or[0],a.blockedOn===null);)Oi(a),a.blockedOn===null&&Or.shift()}var ts=L.ReactCurrentBatchConfig,Ms=!0;function fo(n,i,a,f){var p=pn,y=ts.transition;ts.transition=null;try{pn=1,ns(n,i,a,f)}finally{pn=p,ts.transition=y}}function Di(n,i,a,f){var p=pn,y=ts.transition;ts.transition=null;try{pn=4,ns(n,i,a,f)}finally{pn=p,ts.transition=y}}function ns(n,i,a,f){if(Ms){var p=ie(n,i,a,f);if(p===null)Xa(n,i,f,R,a),Vs(n,f);else if(ci(p,n,i,a,f))f.stopPropagation();else if(Vs(n,f),i&4&&-1<Gr.indexOf(n)){for(;p!==null;){var y=Ja(p);if(y!==null&&li(y),y=ie(n,i,a,f),y===null&&Xa(n,i,f,R,a),y===p)break;p=y}p!==null&&f.stopPropagation()}else Xa(n,i,f,null,a)}}var R=null;function ie(n,i,a,f){if(R=null,n=kr(f),n=mi(n),n!==null)if(i=$n(n),i===null)n=null;else if(a=i.tag,a===13){if(n=Cr(i),n!==null)return n;n=null}else if(a===3){if(i.stateNode.current.memoizedState.isDehydrated)return i.tag===3?i.stateNode.containerInfo:null;n=null}else i!==n&&(n=null);return R=n,null}function je(n){switch(n){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ds()){case Ii:return 1;case fs:return 4;case Kn:case Ze:return 16;case bt:return 536870912;default:return 16}default:return 16}}var ze=null,Ie=null,rt=null;function Et(){if(rt)return rt;var n,i=Ie,a=i.length,f,p="value"in ze?ze.value:ze.textContent,y=p.length;for(n=0;n<a&&i[n]===p[n];n++);var T=a-n;for(f=1;f<=T&&i[a-f]===p[y-f];f++);return rt=p.slice(n,1<f?1-f:void 0)}function Nt(n){var i=n.keyCode;return"charCode"in n?(n=n.charCode,n===0&&i===13&&(n=13)):n=i,n===10&&(n=13),32<=n||n===13?n:0}function zt(){return!0}function Gt(){return!1}function en(n){function i(a,f,p,y,T){this._reactName=a,this._targetInst=p,this.type=f,this.nativeEvent=y,this.target=T,this.currentTarget=null;for(var q in n)n.hasOwnProperty(q)&&(a=n[q],this[q]=a?a(y):y[q]);return this.isDefaultPrevented=(y.defaultPrevented!=null?y.defaultPrevented:y.returnValue===!1)?zt:Gt,this.isPropagationStopped=Gt,this}return F(i.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=zt)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=zt)},persist:function(){},isPersistent:zt}),i}var Zn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},an=en(Zn),ft=F({},Zn,{view:0,detail:0}),jn=en(ft),An,yr,_s,qs=F({},ft,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ji,button:0,buttons:0,relatedTarget:function(n){return n.relatedTarget===void 0?n.fromElement===n.srcElement?n.toElement:n.fromElement:n.relatedTarget},movementX:function(n){return"movementX"in n?n.movementX:(n!==_s&&(_s&&n.type==="mousemove"?(An=n.screenX-_s.screenX,yr=n.screenY-_s.screenY):yr=An=0,_s=n),An)},movementY:function(n){return"movementY"in n?n.movementY:yr}}),Bi=en(qs),fa=F({},qs,{dataTransfer:0}),El=en(fa),ui=F({},ft,{relatedTarget:0}),Uo=en(ui),mo=F({},Zn,{animationName:0,elapsedTime:0,pseudoElement:0}),ma=en(mo),Gs=F({},Zn,{clipboardData:function(n){return"clipboardData"in n?n.clipboardData:window.clipboardData}}),$l=en(Gs),ho=F({},Zn,{data:0}),Wo=en(ho),Ho={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},po={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},dc={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function go(n){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(n):(n=dc[n])?!!i[n]:!1}function ji(){return go}var Ui=F({},ft,{key:function(n){if(n.key){var i=Ho[n.key]||n.key;if(i!=="Unidentified")return i}return n.type==="keypress"?(n=Nt(n),n===13?"Enter":String.fromCharCode(n)):n.type==="keydown"||n.type==="keyup"?po[n.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ji,charCode:function(n){return n.type==="keypress"?Nt(n):0},keyCode:function(n){return n.type==="keydown"||n.type==="keyup"?n.keyCode:0},which:function(n){return n.type==="keypress"?Nt(n):n.type==="keydown"||n.type==="keyup"?n.keyCode:0}}),Tl=en(Ui),ha=F({},qs,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ml=en(ha),pa=F({},ft,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ji}),ki=en(pa),Vo=F({},Zn,{propertyName:0,elapsedTime:0,pseudoElement:0}),_o=en(Vo),qo=F({},qs,{deltaX:function(n){return"deltaX"in n?n.deltaX:"wheelDeltaX"in n?-n.wheelDeltaX:0},deltaY:function(n){return"deltaY"in n?n.deltaY:"wheelDeltaY"in n?-n.wheelDeltaY:"wheelDelta"in n?-n.wheelDelta:0},deltaZ:0,deltaMode:0}),ga=en(qo),Fa=[9,13,27,32],_a=d&&"CompositionEvent"in window,di=null;d&&"documentMode"in document&&(di=document.documentMode);var Al=d&&"TextEvent"in window&&!di,yo=d&&(!_a||di&&8<di&&11>=di),xo=" ",zl=!1;function ya(n,i){switch(n){case"keyup":return Fa.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Rl(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var vo=!1;function xa(n,i){switch(n){case"compositionend":return Rl(i);case"keypress":return i.which!==32?null:(zl=!0,xo);case"textInput":return n=i.data,n===xo&&zl?null:n;default:return null}}function Ys(n,i){if(vo)return n==="compositionend"||!_a&&ya(n,i)?(n=Et(),rt=Ie=ze=null,vo=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1<i.char.length)return i.char;if(i.which)return String.fromCharCode(i.which)}return null;case"compositionend":return yo&&i.locale!=="ko"?null:i.data;default:return null}}var Wi={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ll(n){var i=n&&n.nodeName&&n.nodeName.toLowerCase();return i==="input"?!!Wi[n.type]:i==="textarea"}function wo(n,i,a,f){st(f),i=Ki(i,"onChange"),0<i.length&&(a=new an("onChange","change",null,a,f),n.push({event:a,listeners:i}))}var Go=null,Ni=null;function Yo(n){Ga(n,0)}function Tr(n){var i=Sa(n);if(Se(i))return n}function Ci(n,i){if(n==="change")return i}var bo=!1;if(d){var Xs;if(d){var Hi="oninput"in document;if(!Hi){var kn=document.createElement("div");kn.setAttribute("oninput","return;"),Hi=typeof kn.oninput=="function"}Xs=Hi}else Xs=!1;bo=Xs&&(!document.documentMode||9<document.documentMode)}function Mr(){Go&&(Go.detachEvent("onpropertychange",Yr),Ni=Go=null)}function Yr(n){if(n.propertyName==="value"&&Tr(Ni)){var i=[];wo(i,Ni,n,kr(n)),Wt(Yo,i)}}function ys(n,i,a){n==="focusin"?(Mr(),Go=i,Ni=a,Go.attachEvent("onpropertychange",Yr)):n==="focusout"&&Mr()}function Xo(n){if(n==="selectionchange"||n==="keyup"||n==="keydown")return Tr(Ni)}function As(n,i){if(n==="click")return Tr(i)}function Ar(n,i){if(n==="input"||n==="change")return Tr(i)}function rs(n,i){return n===i&&(n!==0||1/n===1/i)||n!==n&&i!==i}var xr=typeof Object.is=="function"?Object.is:rs;function Ks(n,i){if(xr(n,i))return!0;if(typeof n!="object"||n===null||typeof i!="object"||i===null)return!1;var a=Object.keys(n),f=Object.keys(i);if(a.length!==f.length)return!1;for(f=0;f<a.length;f++){var p=a[f];if(!h.call(i,p)||!xr(n[p],i[p]))return!1}return!0}function Js(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function pr(n,i){var a=Js(n);n=0;for(var f;a;){if(a.nodeType===3){if(f=n+a.textContent.length,n<=i&&f>=i)return{node:a,offset:i-n};n=f}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Js(a)}}function Vi(n,i){return n&&i?n===i?!0:n&&n.nodeType===3?!1:i&&i.nodeType===3?Vi(n,i.parentNode):"contains"in n?n.contains(i):n.compareDocumentPosition?!!(n.compareDocumentPosition(i)&16):!1:!1}function Fr(){for(var n=window,i=Ue();i instanceof n.HTMLIFrameElement;){try{var a=typeof i.contentWindow.location.href=="string"}catch{a=!1}if(a)n=i.contentWindow;else break;i=Ue(n.document)}return i}function Ei(n){var i=n&&n.nodeName&&n.nodeName.toLowerCase();return i&&(i==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||i==="textarea"||n.contentEditable==="true")}function xs(n){var i=Fr(),a=n.focusedElem,f=n.selectionRange;if(i!==a&&a&&a.ownerDocument&&Vi(a.ownerDocument.documentElement,a)){if(f!==null&&Ei(a)){if(i=f.start,n=f.end,n===void 0&&(n=i),"selectionStart"in a)a.selectionStart=i,a.selectionEnd=Math.min(n,a.value.length);else if(n=(i=a.ownerDocument||document)&&i.defaultView||window,n.getSelection){n=n.getSelection();var p=a.textContent.length,y=Math.min(f.start,p);f=f.end===void 0?y:Math.min(f.end,p),!n.extend&&y>f&&(p=f,f=y,y=p),p=pr(a,y);var T=pr(a,f);p&&T&&(n.rangeCount!==1||n.anchorNode!==p.node||n.anchorOffset!==p.offset||n.focusNode!==T.node||n.focusOffset!==T.offset)&&(i=i.createRange(),i.setStart(p.node,p.offset),n.removeAllRanges(),y>f?(n.addRange(i),n.extend(T.node,T.offset)):(i.setEnd(T.node,T.offset),n.addRange(i)))}}for(i=[],n=a;n=n.parentNode;)n.nodeType===1&&i.push({element:n,left:n.scrollLeft,top:n.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<i.length;a++)n=i[a],n.element.scrollLeft=n.left,n.element.scrollTop=n.top}}var So=d&&"documentMode"in document&&11>=document.documentMode,qi=null,Da=null,Gi=null,Ct=!1;function Ba(n,i,a){var f=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Ct||qi==null||qi!==Ue(f)||(f=qi,"selectionStart"in f&&Ei(f)?f={start:f.selectionStart,end:f.selectionEnd}:(f=(f.ownerDocument&&f.ownerDocument.defaultView||window).getSelection(),f={anchorNode:f.anchorNode,anchorOffset:f.anchorOffset,focusNode:f.focusNode,focusOffset:f.focusOffset}),Gi&&Ks(Gi,f)||(Gi=f,f=Ki(Da,"onSelect"),0<f.length&&(i=new an("onSelect","select",null,i,a),n.push({event:i,listeners:f}),i.target=qi)))}function vr(n,i){var a={};return a[n.toLowerCase()]=i.toLowerCase(),a["Webkit"+n]="webkit"+i,a["Moz"+n]="moz"+i,a}var mn={animationend:vr("Animation","AnimationEnd"),animationiteration:vr("Animation","AnimationIteration"),animationstart:vr("Animation","AnimationStart"),transitionend:vr("Transition","TransitionEnd")},Dn={},Ua={};d&&(Ua=document.createElement("div").style,"AnimationEvent"in window||(delete mn.animationend.animation,delete mn.animationiteration.animation,delete mn.animationstart.animation),"TransitionEvent"in window||delete mn.transitionend.transition);function va(n){if(Dn[n])return Dn[n];if(!mn[n])return n;var i=mn[n],a;for(a in i)if(i.hasOwnProperty(a)&&a in Ua)return Dn[n]=i[a];return n}var Yi=va("animationend"),Wa=va("animationiteration"),ln=va("animationstart"),Pl=va("transitionend"),Ha=new Map,fc="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Xi(n,i){Ha.set(n,i),u(i,[n])}for(var Il=0;Il<fc.length;Il++){var Ol=fc[Il],su=Ol.toLowerCase(),mc=Ol[0].toUpperCase()+Ol.slice(1);Xi(su,"on"+mc)}Xi(Yi,"onAnimationEnd"),Xi(Wa,"onAnimationIteration"),Xi(ln,"onAnimationStart"),Xi("dblclick","onDoubleClick"),Xi("focusin","onFocus"),Xi("focusout","onBlur"),Xi(Pl,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var wa="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Va=new Set("cancel close invalid load scroll toggle".split(" ").concat(wa));function qa(n,i,a){var f=n.type||"unknown-event";n.currentTarget=a,In(f,i,void 0,n),n.currentTarget=null}function Ga(n,i){i=(i&4)!==0;for(var a=0;a<n.length;a++){var f=n[a],p=f.event;f=f.listeners;e:{var y=void 0;if(i)for(var T=f.length-1;0<=T;T--){var q=f[T],ee=q.instance,we=q.currentTarget;if(q=q.listener,ee!==y&&p.isPropagationStopped())break e;qa(p,q,we),y=ee}else for(T=0;T<f.length;T++){if(q=f[T],ee=q.instance,we=q.currentTarget,q=q.listener,ee!==y&&p.isPropagationStopped())break e;qa(p,q,we),y=ee}}}if(qt)throw n=et,qt=!1,et=null,n}function Bn(n,i){var a=i[Hn];a===void 0&&(a=i[Hn]=new Set);var f=n+"__bubble";a.has(f)||(ur(i,n,2,!1),a.add(f))}function Ya(n,i,a){var f=0;i&&(f|=4),ur(a,n,f,i)}var Ko="_reactListening"+Math.random().toString(36).slice(2);function ba(n){if(!n[Ko]){n[Ko]=!0,o.forEach(function(a){a!=="selectionchange"&&(Va.has(a)||Ya(a,!1,n),Ya(a,!0,n))});var i=n.nodeType===9?n:n.ownerDocument;i===null||i[Ko]||(i[Ko]=!0,Ya("selectionchange",!1,i))}}function ur(n,i,a,f){switch(je(i)){case 1:var p=fo;break;case 4:p=Di;break;default:p=ns}a=p.bind(null,i,a,n),p=void 0,!Ft||i!=="touchstart"&&i!=="touchmove"&&i!=="wheel"||(p=!0),f?p!==void 0?n.addEventListener(i,a,{capture:!0,passive:p}):n.addEventListener(i,a,!0):p!==void 0?n.addEventListener(i,a,{passive:p}):n.addEventListener(i,a,!1)}function Xa(n,i,a,f,p){var y=f;if((i&1)===0&&(i&2)===0&&f!==null)e:for(;;){if(f===null)return;var T=f.tag;if(T===3||T===4){var q=f.stateNode.containerInfo;if(q===p||q.nodeType===8&&q.parentNode===p)break;if(T===4)for(T=f.return;T!==null;){var ee=T.tag;if((ee===3||ee===4)&&(ee=T.stateNode.containerInfo,ee===p||ee.nodeType===8&&ee.parentNode===p))return;T=T.return}for(;q!==null;){if(T=mi(q),T===null)return;if(ee=T.tag,ee===5||ee===6){f=y=T;continue e}q=q.parentNode}}f=f.return}Wt(function(){var we=y,He=kr(a),Ve=[];e:{var We=Ha.get(n);if(We!==void 0){var mt=an,St=n;switch(n){case"keypress":if(Nt(a)===0)break e;case"keydown":case"keyup":mt=Tl;break;case"focusin":St="focus",mt=Uo;break;case"focusout":St="blur",mt=Uo;break;case"beforeblur":case"afterblur":mt=Uo;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":mt=Bi;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":mt=El;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":mt=ki;break;case Yi:case Wa:case ln:mt=ma;break;case Pl:mt=_o;break;case"scroll":mt=jn;break;case"wheel":mt=ga;break;case"copy":case"cut":case"paste":mt=$l;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":mt=Ml}var kt=(i&4)!==0,Pr=!kt&&n==="scroll",pe=kt?We!==null?We+"Capture":null:We;kt=[];for(var le=we,ye;le!==null;){ye=le;var Xe=ye.stateNode;if(ye.tag===5&&Xe!==null&&(ye=Xe,pe!==null&&(Xe=nn(le,pe),Xe!=null&&kt.push(jo(le,Xe,ye)))),Pr)break;le=le.return}0<kt.length&&(We=new mt(We,St,null,a,He),Ve.push({event:We,listeners:kt}))}}if((i&7)===0){e:{if(We=n==="mouseover"||n==="pointerover",mt=n==="mouseout"||n==="pointerout",We&&a!==It&&(St=a.relatedTarget||a.fromElement)&&(mi(St)||St[Yn]))break e;if((mt||We)&&(We=He.window===He?He:(We=He.ownerDocument)?We.defaultView||We.parentWindow:window,mt?(St=a.relatedTarget||a.toElement,mt=we,St=St?mi(St):null,St!==null&&(Pr=$n(St),St!==Pr||St.tag!==5&&St.tag!==6)&&(St=null)):(mt=null,St=we),mt!==St)){if(kt=Bi,Xe="onMouseLeave",pe="onMouseEnter",le="mouse",(n==="pointerout"||n==="pointerover")&&(kt=Ml,Xe="onPointerLeave",pe="onPointerEnter",le="pointer"),Pr=mt==null?We:Sa(mt),ye=St==null?We:Sa(St),We=new kt(Xe,le+"leave",mt,a,He),We.target=Pr,We.relatedTarget=ye,Xe=null,mi(He)===we&&(kt=new kt(pe,le+"enter",St,a,He),kt.target=ye,kt.relatedTarget=Pr,Xe=kt),Pr=Xe,mt&&St)t:{for(kt=mt,pe=St,le=0,ye=kt;ye;ye=Ji(ye))le++;for(ye=0,Xe=pe;Xe;Xe=Ji(Xe))ye++;for(;0<le-ye;)kt=Ji(kt),le--;for(;0<ye-le;)pe=Ji(pe),ye--;for(;le--;){if(kt===pe||pe!==null&&kt===pe.alternate)break t;kt=Ji(kt),pe=Ji(pe)}kt=null}else kt=null;mt!==null&&Fl(Ve,We,mt,kt,!1),St!==null&&Pr!==null&&Fl(Ve,Pr,St,kt,!0)}}e:{if(We=we?Sa(we):window,mt=We.nodeName&&We.nodeName.toLowerCase(),mt==="select"||mt==="input"&&We.type==="file")var $t=Ci;else if(Ll(We))if(bo)$t=Ar;else{$t=Xo;var Bt=ys}else(mt=We.nodeName)&&mt.toLowerCase()==="input"&&(We.type==="checkbox"||We.type==="radio")&&($t=As);if($t&&($t=$t(n,we))){wo(Ve,$t,a,He);break e}Bt&&Bt(n,We,we),n==="focusout"&&(Bt=We._wrapperState)&&Bt.controlled&&We.type==="number"&&dt(We,"number",We.value)}switch(Bt=we?Sa(we):window,n){case"focusin":(Ll(Bt)||Bt.contentEditable==="true")&&(qi=Bt,Da=we,Gi=null);break;case"focusout":Gi=Da=qi=null;break;case"mousedown":Ct=!0;break;case"contextmenu":case"mouseup":case"dragend":Ct=!1,Ba(Ve,a,He);break;case"selectionchange":if(So)break;case"keydown":case"keyup":Ba(Ve,a,He)}var Ut;if(_a)e:{switch(n){case"compositionstart":var Xt="onCompositionStart";break e;case"compositionend":Xt="onCompositionEnd";break e;case"compositionupdate":Xt="onCompositionUpdate";break e}Xt=void 0}else vo?ya(n,a)&&(Xt="onCompositionEnd"):n==="keydown"&&a.keyCode===229&&(Xt="onCompositionStart");Xt&&(yo&&a.locale!=="ko"&&(vo||Xt!=="onCompositionStart"?Xt==="onCompositionEnd"&&vo&&(Ut=Et()):(ze=He,Ie="value"in ze?ze.value:ze.textContent,vo=!0)),Bt=Ki(we,Xt),0<Bt.length&&(Xt=new Wo(Xt,n,null,a,He),Ve.push({event:Xt,listeners:Bt}),Ut?Xt.data=Ut:(Ut=Rl(a),Ut!==null&&(Xt.data=Ut)))),(Ut=Al?xa(n,a):Ys(n,a))&&(we=Ki(we,"onBeforeInput"),0<we.length&&(He=new Wo("onBeforeInput","beforeinput",null,a,He),Ve.push({event:He,listeners:we}),He.data=Ut))}Ga(Ve,i)})}function jo(n,i,a){return{instance:n,listener:i,currentTarget:a}}function Ki(n,i){for(var a=i+"Capture",f=[];n!==null;){var p=n,y=p.stateNode;p.tag===5&&y!==null&&(p=y,y=nn(n,a),y!=null&&f.unshift(jo(n,y,p)),y=nn(n,i),y!=null&&f.push(jo(n,y,p))),n=n.return}return f}function Ji(n){if(n===null)return null;do n=n.return;while(n&&n.tag!==5);return n||null}function Fl(n,i,a,f,p){for(var y=i._reactName,T=[];a!==null&&a!==f;){var q=a,ee=q.alternate,we=q.stateNode;if(ee!==null&&ee===f)break;q.tag===5&&we!==null&&(q=we,p?(ee=nn(a,y),ee!=null&&T.unshift(jo(a,ee,q))):p||(ee=nn(a,y),ee!=null&&T.push(jo(a,ee,q)))),a=a.return}T.length!==0&&n.push({event:i,listeners:T})}var $=/\r\n?/g,V=/\u0000|\uFFFD/g;function B(n){return(typeof n=="string"?n:""+n).replace($,`
38
+ `).replace(V,"")}function fe(n,i,a){if(i=B(i),B(n)!==i&&a)throw Error(r(425))}function ve(){}var Be=null,Ge=null;function Ye(n,i){return n==="textarea"||n==="noscript"||typeof i.children=="string"||typeof i.children=="number"||typeof i.dangerouslySetInnerHTML=="object"&&i.dangerouslySetInnerHTML!==null&&i.dangerouslySetInnerHTML.__html!=null}var at=typeof setTimeout=="function"?setTimeout:void 0,gn=typeof clearTimeout=="function"?clearTimeout:void 0,Dt=typeof Promise=="function"?Promise:void 0,_n=typeof queueMicrotask=="function"?queueMicrotask:typeof Dt<"u"?function(n){return Dt.resolve(null).then(n).catch(sn)}:at;function sn(n){setTimeout(function(){throw n})}function zs(n,i){var a=i,f=0;do{var p=a.nextSibling;if(n.removeChild(a),p&&p.nodeType===8)if(a=p.data,a==="/$"){if(f===0){n.removeChild(p),Ts(i);return}f--}else a!=="$"&&a!=="$?"&&a!=="$!"||f++;a=p}while(a);Ts(i)}function Dr(n){for(;n!=null;n=n.nextSibling){var i=n.nodeType;if(i===1||i===3)break;if(i===8){if(i=n.data,i==="$"||i==="$!"||i==="$?")break;if(i==="/$")return null}}return n}function $i(n){n=n.previousSibling;for(var i=0;n;){if(n.nodeType===8){var a=n.data;if(a==="$"||a==="$!"||a==="$?"){if(i===0)return n;i--}else a==="/$"&&i++}n=n.previousSibling}return null}var Qs=Math.random().toString(36).slice(2),vs="__reactFiber$"+Qs,fi="__reactProps$"+Qs,Yn="__reactContainer$"+Qs,Hn="__reactEvents$"+Qs,Dl="__reactListeners$"+Qs,Ka="__reactHandles$"+Qs;function mi(n){var i=n[vs];if(i)return i;for(var a=n.parentNode;a;){if(i=a[Yn]||a[vs]){if(a=i.alternate,i.child!==null||a!==null&&a.child!==null)for(n=$i(n);n!==null;){if(a=n[vs])return a;n=$i(n)}return i}n=a,a=n.parentNode}return null}function Ja(n){return n=n[vs]||n[Yn],!n||n.tag!==5&&n.tag!==6&&n.tag!==13&&n.tag!==3?null:n}function Sa(n){if(n.tag===5||n.tag===6)return n.stateNode;throw Error(r(33))}function hc(n){return n[fi]||null}var iu=[],Qa=-1;function Jo(n){return{current:n}}function Xn(n){0>Qa||(n.current=iu[Qa],iu[Qa]=null,Qa--)}function Vn(n,i){Qa++,iu[Qa]=n.current,n.current=i}var Qo={},Xr=Jo(Qo),ss=Jo(!1),ja=Qo;function Za(n,i){var a=n.type.contextTypes;if(!a)return Qo;var f=n.stateNode;if(f&&f.__reactInternalMemoizedUnmaskedChildContext===i)return f.__reactInternalMemoizedMaskedChildContext;var p={},y;for(y in a)p[y]=i[y];return f&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=i,n.__reactInternalMemoizedMaskedChildContext=p),p}function is(n){return n=n.childContextTypes,n!=null}function pc(){Xn(ss),Xn(Xr)}function Bl(n,i,a){if(Xr.current!==Qo)throw Error(r(168));Vn(Xr,i),Vn(ss,a)}function ko(n,i,a){var f=n.stateNode;if(i=i.childContextTypes,typeof f.getChildContext!="function")return a;f=f.getChildContext();for(var p in f)if(!(p in i))throw Error(r(108,ce(n)||"Unknown",p));return F({},a,f)}function wr(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||Qo,ja=Xr.current,Vn(Xr,n),Vn(ss,ss.current),!0}function hi(n,i,a){var f=n.stateNode;if(!f)throw Error(r(169));a?(n=ko(n,i,ja),f.__reactInternalMemoizedMergedChildContext=n,Xn(ss),Xn(Xr),Vn(Xr,n)):Xn(ss),Vn(ss,a)}var No=null,Ul=!1,ou=!1;function gc(n){No===null?No=[n]:No.push(n)}function vf(n){Ul=!0,gc(n)}function Zo(){if(!ou&&No!==null){ou=!0;var n=0,i=pn;try{var a=No;for(pn=1;n<a.length;n++){var f=a[n];do f=f(!0);while(f!==null)}No=null,Ul=!1}catch(p){throw No!==null&&(No=No.slice(n+1)),ds(Ii,Zo),p}finally{pn=i,ou=!1}}return null}var el=[],pi=0,Qi=null,gi=0,zr=[],er=0,Rs=null,Co=1,Zi="";function os(n,i){el[pi++]=gi,el[pi++]=Qi,Qi=n,gi=i}function tl(n,i,a){zr[er++]=Co,zr[er++]=Zi,zr[er++]=Rs,Rs=n;var f=Co;n=Zi;var p=32-Er(f)-1;f&=~(1<<p),a+=1;var y=32-Er(i)+p;if(30<y){var T=p-p%5;y=(f&(1<<T)-1).toString(32),f>>=T,p-=T,Co=1<<32-Er(i)+p|a<<p|f,Zi=y+n}else Co=1<<y|a<<p|f,Zi=n}function _c(n){n.return!==null&&(os(n,1),tl(n,1,0))}function yc(n){for(;n===Qi;)Qi=el[--pi],el[pi]=null,gi=el[--pi],el[pi]=null;for(;n===Rs;)Rs=zr[--er],zr[er]=null,Zi=zr[--er],zr[er]=null,Co=zr[--er],zr[er]=null}var Zs=null,ei=null,xn=!1,ws=null;function au(n,i){var a=io(5,null,null,0);a.elementType="DELETED",a.stateNode=i,a.return=n,i=n.deletions,i===null?(n.deletions=[a],n.flags|=16):i.push(a)}function lu(n,i){switch(n.tag){case 5:var a=n.type;return i=i.nodeType!==1||a.toLowerCase()!==i.nodeName.toLowerCase()?null:i,i!==null?(n.stateNode=i,Zs=n,ei=Dr(i.firstChild),!0):!1;case 6:return i=n.pendingProps===""||i.nodeType!==3?null:i,i!==null?(n.stateNode=i,Zs=n,ei=null,!0):!1;case 13:return i=i.nodeType!==8?null:i,i!==null?(a=Rs!==null?{id:Co,overflow:Zi}:null,n.memoizedState={dehydrated:i,treeContext:a,retryLane:1073741824},a=io(18,null,null,0),a.stateNode=i,a.return=n,n.child=a,Zs=n,ei=null,!0):!1;default:return!1}}function Vt(n){return(n.mode&1)!==0&&(n.flags&128)===0}function xc(n){if(xn){var i=ei;if(i){var a=i;if(!lu(n,i)){if(Vt(n))throw Error(r(418));i=Dr(a.nextSibling);var f=Zs;i&&lu(n,i)?au(f,a):(n.flags=n.flags&-4097|2,xn=!1,Zs=n)}}else{if(Vt(n))throw Error(r(418));n.flags=n.flags&-4097|2,xn=!1,Zs=n}}}function _i(n){for(n=n.return;n!==null&&n.tag!==5&&n.tag!==3&&n.tag!==13;)n=n.return;Zs=n}function vc(n){if(n!==Zs)return!1;if(!xn)return _i(n),xn=!0,!1;var i;if((i=n.tag!==3)&&!(i=n.tag!==5)&&(i=n.type,i=i!=="head"&&i!=="body"&&!Ye(n.type,n.memoizedProps)),i&&(i=ei)){if(Vt(n))throw ed(),Error(r(418));for(;i;)au(n,i),i=Dr(i.nextSibling)}if(_i(n),n.tag===13){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(r(317));e:{for(n=n.nextSibling,i=0;n;){if(n.nodeType===8){var a=n.data;if(a==="/$"){if(i===0){ei=Dr(n.nextSibling);break e}i--}else a!=="$"&&a!=="$!"&&a!=="$?"||i++}n=n.nextSibling}ei=null}}else ei=Zs?Dr(n.stateNode.nextSibling):null;return!0}function ed(){for(var n=ei;n;)n=Dr(n.nextSibling)}function ka(){ei=Zs=null,xn=!1}function wc(n){ws===null?ws=[n]:ws.push(n)}var nl=L.ReactCurrentBatchConfig;function ea(n,i,a){if(n=a.ref,n!==null&&typeof n!="function"&&typeof n!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(r(309));var f=a.stateNode}if(!f)throw Error(r(147,n));var p=f,y=""+n;return i!==null&&i.ref!==null&&typeof i.ref=="function"&&i.ref._stringRef===y?i.ref:(i=function(T){var q=p.refs;T===null?delete q[y]:q[y]=T},i._stringRef=y,i)}if(typeof n!="string")throw Error(r(284));if(!a._owner)throw Error(r(290,n))}return n}function bc(n,i){throw n=Object.prototype.toString.call(i),Error(r(31,n==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":n))}function Eo(n){var i=n._init;return i(n._payload)}function Sc(n){function i(pe,le){if(n){var ye=pe.deletions;ye===null?(pe.deletions=[le],pe.flags|=16):ye.push(le)}}function a(pe,le){if(!n)return null;for(;le!==null;)i(pe,le),le=le.sibling;return null}function f(pe,le){for(pe=new Map;le!==null;)le.key!==null?pe.set(le.key,le):pe.set(le.index,le),le=le.sibling;return pe}function p(pe,le){return pe=gl(pe,le),pe.index=0,pe.sibling=null,pe}function y(pe,le,ye){return pe.index=ye,n?(ye=pe.alternate,ye!==null?(ye=ye.index,ye<le?(pe.flags|=2,le):ye):(pe.flags|=2,le)):(pe.flags|=1048576,le)}function T(pe){return n&&pe.alternate===null&&(pe.flags|=2),pe}function q(pe,le,ye,Xe){return le===null||le.tag!==6?(le=Wf(ye,pe.mode,Xe),le.return=pe,le):(le=p(le,ye),le.return=pe,le)}function ee(pe,le,ye,Xe){var $t=ye.type;return $t===X?He(pe,le,ye.props.children,Xe,ye.key):le!==null&&(le.elementType===$t||typeof $t=="object"&&$t!==null&&$t.$$typeof===H&&Eo($t)===le.type)?(Xe=p(le,ye.props),Xe.ref=ea(pe,le,ye),Xe.return=pe,Xe):(Xe=vd(ye.type,ye.key,ye.props,null,pe.mode,Xe),Xe.ref=ea(pe,le,ye),Xe.return=pe,Xe)}function we(pe,le,ye,Xe){return le===null||le.tag!==4||le.stateNode.containerInfo!==ye.containerInfo||le.stateNode.implementation!==ye.implementation?(le=Hf(ye,pe.mode,Xe),le.return=pe,le):(le=p(le,ye.children||[]),le.return=pe,le)}function He(pe,le,ye,Xe,$t){return le===null||le.tag!==7?(le=tc(ye,pe.mode,Xe,$t),le.return=pe,le):(le=p(le,ye),le.return=pe,le)}function Ve(pe,le,ye){if(typeof le=="string"&&le!==""||typeof le=="number")return le=Wf(""+le,pe.mode,ye),le.return=pe,le;if(typeof le=="object"&&le!==null){switch(le.$$typeof){case Y:return ye=vd(le.type,le.key,le.props,null,pe.mode,ye),ye.ref=ea(pe,null,le),ye.return=pe,ye;case ne:return le=Hf(le,pe.mode,ye),le.return=pe,le;case H:var Xe=le._init;return Ve(pe,Xe(le._payload),ye)}if(jt(le)||z(le))return le=tc(le,pe.mode,ye,null),le.return=pe,le;bc(pe,le)}return null}function We(pe,le,ye,Xe){var $t=le!==null?le.key:null;if(typeof ye=="string"&&ye!==""||typeof ye=="number")return $t!==null?null:q(pe,le,""+ye,Xe);if(typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case Y:return ye.key===$t?ee(pe,le,ye,Xe):null;case ne:return ye.key===$t?we(pe,le,ye,Xe):null;case H:return $t=ye._init,We(pe,le,$t(ye._payload),Xe)}if(jt(ye)||z(ye))return $t!==null?null:He(pe,le,ye,Xe,null);bc(pe,ye)}return null}function mt(pe,le,ye,Xe,$t){if(typeof Xe=="string"&&Xe!==""||typeof Xe=="number")return pe=pe.get(ye)||null,q(le,pe,""+Xe,$t);if(typeof Xe=="object"&&Xe!==null){switch(Xe.$$typeof){case Y:return pe=pe.get(Xe.key===null?ye:Xe.key)||null,ee(le,pe,Xe,$t);case ne:return pe=pe.get(Xe.key===null?ye:Xe.key)||null,we(le,pe,Xe,$t);case H:var Bt=Xe._init;return mt(pe,le,ye,Bt(Xe._payload),$t)}if(jt(Xe)||z(Xe))return pe=pe.get(ye)||null,He(le,pe,Xe,$t,null);bc(le,Xe)}return null}function St(pe,le,ye,Xe){for(var $t=null,Bt=null,Ut=le,Xt=le=0,cs=null;Ut!==null&&Xt<ye.length;Xt++){Ut.index>Xt?(cs=Ut,Ut=null):cs=Ut.sibling;var On=We(pe,Ut,ye[Xt],Xe);if(On===null){Ut===null&&(Ut=cs);break}n&&Ut&&On.alternate===null&&i(pe,Ut),le=y(On,le,Xt),Bt===null?$t=On:Bt.sibling=On,Bt=On,Ut=cs}if(Xt===ye.length)return a(pe,Ut),xn&&os(pe,Xt),$t;if(Ut===null){for(;Xt<ye.length;Xt++)Ut=Ve(pe,ye[Xt],Xe),Ut!==null&&(le=y(Ut,le,Xt),Bt===null?$t=Ut:Bt.sibling=Ut,Bt=Ut);return xn&&os(pe,Xt),$t}for(Ut=f(pe,Ut);Xt<ye.length;Xt++)cs=mt(Ut,pe,Xt,ye[Xt],Xe),cs!==null&&(n&&cs.alternate!==null&&Ut.delete(cs.key===null?Xt:cs.key),le=y(cs,le,Xt),Bt===null?$t=cs:Bt.sibling=cs,Bt=cs);return n&&Ut.forEach(function(_l){return i(pe,_l)}),xn&&os(pe,Xt),$t}function kt(pe,le,ye,Xe){var $t=z(ye);if(typeof $t!="function")throw Error(r(150));if(ye=$t.call(ye),ye==null)throw Error(r(151));for(var Bt=$t=null,Ut=le,Xt=le=0,cs=null,On=ye.next();Ut!==null&&!On.done;Xt++,On=ye.next()){Ut.index>Xt?(cs=Ut,Ut=null):cs=Ut.sibling;var _l=We(pe,Ut,On.value,Xe);if(_l===null){Ut===null&&(Ut=cs);break}n&&Ut&&_l.alternate===null&&i(pe,Ut),le=y(_l,le,Xt),Bt===null?$t=_l:Bt.sibling=_l,Bt=_l,Ut=cs}if(On.done)return a(pe,Ut),xn&&os(pe,Xt),$t;if(Ut===null){for(;!On.done;Xt++,On=ye.next())On=Ve(pe,On.value,Xe),On!==null&&(le=y(On,le,Xt),Bt===null?$t=On:Bt.sibling=On,Bt=On);return xn&&os(pe,Xt),$t}for(Ut=f(pe,Ut);!On.done;Xt++,On=ye.next())On=mt(Ut,pe,Xt,On.value,Xe),On!==null&&(n&&On.alternate!==null&&Ut.delete(On.key===null?Xt:On.key),le=y(On,le,Xt),Bt===null?$t=On:Bt.sibling=On,Bt=On);return n&&Ut.forEach(function(Nx){return i(pe,Nx)}),xn&&os(pe,Xt),$t}function Pr(pe,le,ye,Xe){if(typeof ye=="object"&&ye!==null&&ye.type===X&&ye.key===null&&(ye=ye.props.children),typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case Y:e:{for(var $t=ye.key,Bt=le;Bt!==null;){if(Bt.key===$t){if($t=ye.type,$t===X){if(Bt.tag===7){a(pe,Bt.sibling),le=p(Bt,ye.props.children),le.return=pe,pe=le;break e}}else if(Bt.elementType===$t||typeof $t=="object"&&$t!==null&&$t.$$typeof===H&&Eo($t)===Bt.type){a(pe,Bt.sibling),le=p(Bt,ye.props),le.ref=ea(pe,Bt,ye),le.return=pe,pe=le;break e}a(pe,Bt);break}else i(pe,Bt);Bt=Bt.sibling}ye.type===X?(le=tc(ye.props.children,pe.mode,Xe,ye.key),le.return=pe,pe=le):(Xe=vd(ye.type,ye.key,ye.props,null,pe.mode,Xe),Xe.ref=ea(pe,le,ye),Xe.return=pe,pe=Xe)}return T(pe);case ne:e:{for(Bt=ye.key;le!==null;){if(le.key===Bt)if(le.tag===4&&le.stateNode.containerInfo===ye.containerInfo&&le.stateNode.implementation===ye.implementation){a(pe,le.sibling),le=p(le,ye.children||[]),le.return=pe,pe=le;break e}else{a(pe,le);break}else i(pe,le);le=le.sibling}le=Hf(ye,pe.mode,Xe),le.return=pe,pe=le}return T(pe);case H:return Bt=ye._init,Pr(pe,le,Bt(ye._payload),Xe)}if(jt(ye))return St(pe,le,ye,Xe);if(z(ye))return kt(pe,le,ye,Xe);bc(pe,ye)}return typeof ye=="string"&&ye!==""||typeof ye=="number"?(ye=""+ye,le!==null&&le.tag===6?(a(pe,le.sibling),le=p(le,ye),le.return=pe,pe=le):(a(pe,le),le=Wf(ye,pe.mode,Xe),le.return=pe,pe=le),T(pe)):a(pe,le)}return Pr}var ta=Sc(!0),qn=Sc(!1),jc=Jo(null),eo=null,rl=null,Wl=null;function kc(){Wl=rl=eo=null}function Hl(n){var i=jc.current;Xn(jc),n._currentValue=i}function Na(n,i,a){for(;n!==null;){var f=n.alternate;if((n.childLanes&i)!==i?(n.childLanes|=i,f!==null&&(f.childLanes|=i)):f!==null&&(f.childLanes&i)!==i&&(f.childLanes|=i),n===a)break;n=n.return}}function $o(n,i){eo=n,Wl=rl=null,n=n.dependencies,n!==null&&n.firstContext!==null&&((n.lanes&i)!==0&&(yi=!0),n.firstContext=null)}function as(n){var i=n._currentValue;if(Wl!==n)if(n={context:n,memoizedValue:i,next:null},rl===null){if(eo===null)throw Error(r(308));rl=n,eo.dependencies={lanes:0,firstContext:n}}else rl=rl.next=n;return i}var na=null;function Nc(n){na===null?na=[n]:na.push(n)}function td(n,i,a,f){var p=i.interleaved;return p===null?(a.next=a,Nc(i)):(a.next=p.next,p.next=a),i.interleaved=a,To(n,f)}function To(n,i){n.lanes|=i;var a=n.alternate;for(a!==null&&(a.lanes|=i),a=n,n=n.return;n!==null;)n.childLanes|=i,a=n.alternate,a!==null&&(a.childLanes|=i),a=n,n=n.return;return a.tag===3?a.stateNode:null}var Mo=!1;function Cc(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cu(n,i){n=n.updateQueue,i.updateQueue===n&&(i.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,effects:n.effects})}function to(n,i){return{eventTime:n,lane:i,tag:0,payload:null,callback:null,next:null}}function Ao(n,i,a){var f=n.updateQueue;if(f===null)return null;if(f=f.shared,(Rn&2)!==0){var p=f.pending;return p===null?i.next=i:(i.next=p.next,p.next=i),f.pending=i,To(n,a)}return p=f.interleaved,p===null?(i.next=i,Nc(f)):(i.next=p.next,p.next=i),f.interleaved=i,To(n,a)}function Vl(n,i,a){if(i=i.updateQueue,i!==null&&(i=i.shared,(a&4194240)!==0)){var f=i.lanes;f&=n.pendingLanes,a|=f,i.lanes=a,hs(n,a)}}function uu(n,i){var a=n.updateQueue,f=n.alternate;if(f!==null&&(f=f.updateQueue,a===f)){var p=null,y=null;if(a=a.firstBaseUpdate,a!==null){do{var T={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};y===null?p=y=T:y=y.next=T,a=a.next}while(a!==null);y===null?p=y=i:y=y.next=i}else p=y=i;a={baseState:f.baseState,firstBaseUpdate:p,lastBaseUpdate:y,shared:f.shared,effects:f.effects},n.updateQueue=a;return}n=a.lastBaseUpdate,n===null?a.firstBaseUpdate=i:n.next=i,a.lastBaseUpdate=i}function ql(n,i,a,f){var p=n.updateQueue;Mo=!1;var y=p.firstBaseUpdate,T=p.lastBaseUpdate,q=p.shared.pending;if(q!==null){p.shared.pending=null;var ee=q,we=ee.next;ee.next=null,T===null?y=we:T.next=we,T=ee;var He=n.alternate;He!==null&&(He=He.updateQueue,q=He.lastBaseUpdate,q!==T&&(q===null?He.firstBaseUpdate=we:q.next=we,He.lastBaseUpdate=ee))}if(y!==null){var Ve=p.baseState;T=0,He=we=ee=null,q=y;do{var We=q.lane,mt=q.eventTime;if((f&We)===We){He!==null&&(He=He.next={eventTime:mt,lane:0,tag:q.tag,payload:q.payload,callback:q.callback,next:null});e:{var St=n,kt=q;switch(We=i,mt=a,kt.tag){case 1:if(St=kt.payload,typeof St=="function"){Ve=St.call(mt,Ve,We);break e}Ve=St;break e;case 3:St.flags=St.flags&-65537|128;case 0:if(St=kt.payload,We=typeof St=="function"?St.call(mt,Ve,We):St,We==null)break e;Ve=F({},Ve,We);break e;case 2:Mo=!0}}q.callback!==null&&q.lane!==0&&(n.flags|=64,We=p.effects,We===null?p.effects=[q]:We.push(q))}else mt={eventTime:mt,lane:We,tag:q.tag,payload:q.payload,callback:q.callback,next:null},He===null?(we=He=mt,ee=Ve):He=He.next=mt,T|=We;if(q=q.next,q===null){if(q=p.shared.pending,q===null)break;We=q,q=We.next,We.next=null,p.lastBaseUpdate=We,p.shared.pending=null}}while(!0);if(He===null&&(ee=Ve),p.baseState=ee,p.firstBaseUpdate=we,p.lastBaseUpdate=He,i=p.shared.interleaved,i!==null){p=i;do T|=p.lane,p=p.next;while(p!==i)}else y===null&&(p.shared.lanes=0);Jl|=T,n.lanes=T,n.memoizedState=Ve}}function du(n,i,a){if(n=i.effects,i.effects=null,n!==null)for(i=0;i<n.length;i++){var f=n[i],p=f.callback;if(p!==null){if(f.callback=null,f=a,typeof p!="function")throw Error(r(191,p));p.call(f)}}}var sl={},Ti=Jo(sl),il=Jo(sl),ol=Jo(sl);function ra(n){if(n===sl)throw Error(r(174));return n}function Ec(n,i){switch(Vn(ol,i),Vn(il,n),Vn(Ti,sl),n=i.nodeType,n){case 9:case 11:i=(i=i.documentElement)?i.namespaceURI:se(null,"");break;default:n=n===8?i.parentNode:i,i=n.namespaceURI||null,n=n.tagName,i=se(i,n)}Xn(Ti),Vn(Ti,i)}function Ca(){Xn(Ti),Xn(il),Xn(ol)}function fu(n){ra(ol.current);var i=ra(Ti.current),a=se(i,n.type);i!==a&&(Vn(il,n),Vn(Ti,a))}function $c(n){il.current===n&&(Xn(Ti),Xn(il))}var tr=Jo(0);function Gl(n){for(var i=n;i!==null;){if(i.tag===13){var a=i.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return i}else if(i.tag===19&&i.memoizedProps.revealOrder!==void 0){if((i.flags&128)!==0)return i}else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===n)break;for(;i.sibling===null;){if(i.return===null||i.return===n)return null;i=i.return}i.sibling.return=i.return,i=i.sibling}return null}var Tc=[];function Mc(){for(var n=0;n<Tc.length;n++)Tc[n]._workInProgressVersionPrimary=null;Tc.length=0}var Yl=L.ReactCurrentDispatcher,Ac=L.ReactCurrentBatchConfig,sa=0,nr=null,br=null,Rr=null,Xl=!1,al=!1,ll=0,nd=0;function w(){throw Error(r(321))}function k(n,i){if(i===null)return!1;for(var a=0;a<i.length&&a<n.length;a++)if(!xr(n[a],i[a]))return!1;return!0}function P(n,i,a,f,p,y){if(sa=y,nr=i,i.memoizedState=null,i.updateQueue=null,i.lanes=0,Yl.current=n===null||n.memoizedState===null?cl:hu,n=a(f,p),al){y=0;do{if(al=!1,ll=0,25<=y)throw Error(r(301));y+=1,Rr=br=null,i.updateQueue=null,Yl.current=ad,n=a(f,p)}while(al)}if(Yl.current=ni,i=br!==null&&br.next!==null,sa=0,Rr=br=nr=null,Xl=!1,i)throw Error(r(300));return n}function C(){var n=ll!==0;return ll=0,n}function W(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Rr===null?nr.memoizedState=Rr=n:Rr=Rr.next=n,Rr}function K(){if(br===null){var n=nr.alternate;n=n!==null?n.memoizedState:null}else n=br.next;var i=Rr===null?nr.memoizedState:Rr.next;if(i!==null)Rr=i,br=n;else{if(n===null)throw Error(r(310));br=n,n={memoizedState:br.memoizedState,baseState:br.baseState,baseQueue:br.baseQueue,queue:br.queue,next:null},Rr===null?nr.memoizedState=Rr=n:Rr=Rr.next=n}return Rr}function Q(n,i){return typeof i=="function"?i(n):i}function de(n){var i=K(),a=i.queue;if(a===null)throw Error(r(311));a.lastRenderedReducer=n;var f=br,p=f.baseQueue,y=a.pending;if(y!==null){if(p!==null){var T=p.next;p.next=y.next,y.next=T}f.baseQueue=p=y,a.pending=null}if(p!==null){y=p.next,f=f.baseState;var q=T=null,ee=null,we=y;do{var He=we.lane;if((sa&He)===He)ee!==null&&(ee=ee.next={lane:0,action:we.action,hasEagerState:we.hasEagerState,eagerState:we.eagerState,next:null}),f=we.hasEagerState?we.eagerState:n(f,we.action);else{var Ve={lane:He,action:we.action,hasEagerState:we.hasEagerState,eagerState:we.eagerState,next:null};ee===null?(q=ee=Ve,T=f):ee=ee.next=Ve,nr.lanes|=He,Jl|=He}we=we.next}while(we!==null&&we!==y);ee===null?T=f:ee.next=q,xr(f,i.memoizedState)||(yi=!0),i.memoizedState=f,i.baseState=T,i.baseQueue=ee,a.lastRenderedState=f}if(n=a.interleaved,n!==null){p=n;do y=p.lane,nr.lanes|=y,Jl|=y,p=p.next;while(p!==n)}else p===null&&(a.lanes=0);return[i.memoizedState,a.dispatch]}function Fe(n){var i=K(),a=i.queue;if(a===null)throw Error(r(311));a.lastRenderedReducer=n;var f=a.dispatch,p=a.pending,y=i.memoizedState;if(p!==null){a.pending=null;var T=p=p.next;do y=n(y,T.action),T=T.next;while(T!==p);xr(y,i.memoizedState)||(yi=!0),i.memoizedState=y,i.baseQueue===null&&(i.baseState=y),a.lastRenderedState=y}return[y,f]}function Le(){}function Ke(n,i){var a=nr,f=K(),p=i(),y=!xr(f.memoizedState,p);if(y&&(f.memoizedState=p,yi=!0),f=f.queue,zn(Qe.bind(null,a,f,n),[n]),f.getSnapshot!==i||y||Rr!==null&&Rr.memoizedState.tag&1){if(a.flags|=2048,Ht(9,Je.bind(null,a,f,p,i),void 0,null),ls===null)throw Error(r(349));(sa&30)!==0||At(a,i,p)}return p}function At(n,i,a){n.flags|=16384,n={getSnapshot:i,value:a},i=nr.updateQueue,i===null?(i={lastEffect:null,stores:null},nr.updateQueue=i,i.stores=[n]):(a=i.stores,a===null?i.stores=[n]:a.push(n))}function Je(n,i,a,f){i.value=a,i.getSnapshot=f,Rt(i)&&lt(n)}function Qe(n,i,a){return a(function(){Rt(i)&&lt(n)})}function Rt(n){var i=n.getSnapshot;n=n.value;try{var a=i();return!xr(n,a)}catch{return!0}}function lt(n){var i=To(n,1);i!==null&&Lo(i,n,1,-1)}function yt(n){var i=W();return typeof n=="function"&&(n=n()),i.memoizedState=i.baseState=n,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Q,lastRenderedState:n},i.queue=n,n=n.dispatch=xt.bind(null,nr,n),[i.memoizedState,n]}function Ht(n,i,a,f){return n={tag:n,create:i,destroy:a,deps:f,next:null},i=nr.updateQueue,i===null?(i={lastEffect:null,stores:null},nr.updateQueue=i,i.lastEffect=n.next=n):(a=i.lastEffect,a===null?i.lastEffect=n.next=n:(f=a.next,a.next=n,n.next=f,i.lastEffect=n)),n}function Un(){return K().memoizedState}function tt(n,i,a,f){var p=W();nr.flags|=n,p.memoizedState=Ht(1|i,a,void 0,f===void 0?null:f)}function ot(n,i,a,f){var p=K();f=f===void 0?null:f;var y=void 0;if(br!==null){var T=br.memoizedState;if(y=T.destroy,f!==null&&k(f,T.deps)){p.memoizedState=Ht(i,a,y,f);return}}nr.flags|=n,p.memoizedState=Ht(1|i,a,y,f)}function Zt(n,i){return tt(8390656,8,n,i)}function zn(n,i){return ot(2048,8,n,i)}function Yt(n,i){return ot(4,2,n,i)}function Br(n,i){return ot(4,4,n,i)}function Mi(n,i){if(typeof i=="function")return n=n(),i(n),function(){i(null)};if(i!=null)return n=n(),i.current=n,function(){i.current=null}}function no(n,i,a){return a=a!=null?a.concat([n]):null,ot(4,4,Mi.bind(null,i,n),a)}function ti(){}function Sr(n,i){var a=K();i=i===void 0?null:i;var f=a.memoizedState;return f!==null&&i!==null&&k(i,f[1])?f[0]:(a.memoizedState=[n,i],n)}function rd(n,i){var a=K();i=i===void 0?null:i;var f=a.memoizedState;return f!==null&&i!==null&&k(i,f[1])?f[0]:(n=n(),a.memoizedState=[n,i],n)}function sd(n,i,a){return(sa&21)===0?(n.baseState&&(n.baseState=!1,yi=!0),n.memoizedState=a):(xr(a,i)||(a=Cn(),nr.lanes|=a,Jl|=a,n.baseState=!0),i)}function id(n,i){var a=pn;pn=a!==0&&4>a?a:4,n(!0);var f=Ac.transition;Ac.transition={};try{n(!1),i()}finally{pn=a,Ac.transition=f}}function mu(){return K().memoizedState}function od(n,i,a){var f=hl(n);if(a={lane:f,action:a,hasEagerState:!1,eagerState:null,next:null},ro(n))Ea(i,a);else if(a=td(n,i,a,f),a!==null){var p=si();Lo(a,n,f,p),Ai(a,i,f)}}function xt(n,i,a){var f=hl(n),p={lane:f,action:a,hasEagerState:!1,eagerState:null,next:null};if(ro(n))Ea(i,p);else{var y=n.alternate;if(n.lanes===0&&(y===null||y.lanes===0)&&(y=i.lastRenderedReducer,y!==null))try{var T=i.lastRenderedState,q=y(T,a);if(p.hasEagerState=!0,p.eagerState=q,xr(q,T)){var ee=i.interleaved;ee===null?(p.next=p,Nc(i)):(p.next=ee.next,ee.next=p),i.interleaved=p;return}}catch{}finally{}a=td(n,i,p,f),a!==null&&(p=si(),Lo(a,n,f,p),Ai(a,i,f))}}function ro(n){var i=n.alternate;return n===nr||i!==null&&i===nr}function Ea(n,i){al=Xl=!0;var a=n.pending;a===null?i.next=i:(i.next=a.next,a.next=i),n.pending=i}function Ai(n,i,a){if((a&4194240)!==0){var f=i.lanes;f&=n.pendingLanes,a|=f,i.lanes=a,hs(n,a)}}var ni={readContext:as,useCallback:w,useContext:w,useEffect:w,useImperativeHandle:w,useInsertionEffect:w,useLayoutEffect:w,useMemo:w,useReducer:w,useRef:w,useState:w,useDebugValue:w,useDeferredValue:w,useTransition:w,useMutableSource:w,useSyncExternalStore:w,useId:w,unstable_isNewReconciler:!1},cl={readContext:as,useCallback:function(n,i){return W().memoizedState=[n,i===void 0?null:i],n},useContext:as,useEffect:Zt,useImperativeHandle:function(n,i,a){return a=a!=null?a.concat([n]):null,tt(4194308,4,Mi.bind(null,i,n),a)},useLayoutEffect:function(n,i){return tt(4194308,4,n,i)},useInsertionEffect:function(n,i){return tt(4,2,n,i)},useMemo:function(n,i){var a=W();return i=i===void 0?null:i,n=n(),a.memoizedState=[n,i],n},useReducer:function(n,i,a){var f=W();return i=a!==void 0?a(i):i,f.memoizedState=f.baseState=i,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:i},f.queue=n,n=n.dispatch=od.bind(null,nr,n),[f.memoizedState,n]},useRef:function(n){var i=W();return n={current:n},i.memoizedState=n},useState:yt,useDebugValue:ti,useDeferredValue:function(n){return W().memoizedState=n},useTransition:function(){var n=yt(!1),i=n[0];return n=id.bind(null,n[1]),W().memoizedState=n,[i,n]},useMutableSource:function(){},useSyncExternalStore:function(n,i,a){var f=nr,p=W();if(xn){if(a===void 0)throw Error(r(407));a=a()}else{if(a=i(),ls===null)throw Error(r(349));(sa&30)!==0||At(f,i,a)}p.memoizedState=a;var y={value:a,getSnapshot:i};return p.queue=y,Zt(Qe.bind(null,f,y,n),[n]),f.flags|=2048,Ht(9,Je.bind(null,f,y,a,i),void 0,null),a},useId:function(){var n=W(),i=ls.identifierPrefix;if(xn){var a=Zi,f=Co;a=(f&~(1<<32-Er(f)-1)).toString(32)+a,i=":"+i+"R"+a,a=ll++,0<a&&(i+="H"+a.toString(32)),i+=":"}else a=nd++,i=":"+i+"r"+a.toString(32)+":";return n.memoizedState=i},unstable_isNewReconciler:!1},hu={readContext:as,useCallback:Sr,useContext:as,useEffect:zn,useImperativeHandle:no,useInsertionEffect:Yt,useLayoutEffect:Br,useMemo:rd,useReducer:de,useRef:Un,useState:function(){return de(Q)},useDebugValue:ti,useDeferredValue:function(n){var i=K();return sd(i,br.memoizedState,n)},useTransition:function(){var n=de(Q)[0],i=K().memoizedState;return[n,i]},useMutableSource:Le,useSyncExternalStore:Ke,useId:mu,unstable_isNewReconciler:!1},ad={readContext:as,useCallback:Sr,useContext:as,useEffect:zn,useImperativeHandle:no,useInsertionEffect:Yt,useLayoutEffect:Br,useMemo:rd,useReducer:Fe,useRef:Un,useState:function(){return Fe(Q)},useDebugValue:ti,useDeferredValue:function(n){var i=K();return br===null?i.memoizedState=n:sd(i,br.memoizedState,n)},useTransition:function(){var n=Fe(Q)[0],i=K().memoizedState;return[n,i]},useMutableSource:Le,useSyncExternalStore:Ke,useId:mu,unstable_isNewReconciler:!1};function Ls(n,i){if(n&&n.defaultProps){i=F({},i),n=n.defaultProps;for(var a in n)i[a]===void 0&&(i[a]=n[a]);return i}return i}function zc(n,i,a,f){i=n.memoizedState,a=a(f,i),a=a==null?i:F({},i,a),n.memoizedState=a,n.lanes===0&&(n.updateQueue.baseState=a)}var ul={isMounted:function(n){return(n=n._reactInternals)?$n(n)===n:!1},enqueueSetState:function(n,i,a){n=n._reactInternals;var f=si(),p=hl(n),y=to(f,p);y.payload=i,a!=null&&(y.callback=a),i=Ao(n,y,p),i!==null&&(Lo(i,n,p,f),Vl(i,n,p))},enqueueReplaceState:function(n,i,a){n=n._reactInternals;var f=si(),p=hl(n),y=to(f,p);y.tag=1,y.payload=i,a!=null&&(y.callback=a),i=Ao(n,y,p),i!==null&&(Lo(i,n,p,f),Vl(i,n,p))},enqueueForceUpdate:function(n,i){n=n._reactInternals;var a=si(),f=hl(n),p=to(a,f);p.tag=2,i!=null&&(p.callback=i),i=Ao(n,p,f),i!==null&&(Lo(i,n,f,a),Vl(i,n,f))}};function Kl(n,i,a,f,p,y,T){return n=n.stateNode,typeof n.shouldComponentUpdate=="function"?n.shouldComponentUpdate(f,y,T):i.prototype&&i.prototype.isPureReactComponent?!Ks(a,f)||!Ks(p,y):!0}function dr(n,i,a){var f=!1,p=Qo,y=i.contextType;return typeof y=="object"&&y!==null?y=as(y):(p=is(i)?ja:Xr.current,f=i.contextTypes,y=(f=f!=null)?Za(n,p):Qo),i=new i(a,y),n.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=ul,n.stateNode=i,i._reactInternals=n,f&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=p,n.__reactInternalMemoizedMaskedChildContext=y),i}function Lr(n,i,a,f){n=i.state,typeof i.componentWillReceiveProps=="function"&&i.componentWillReceiveProps(a,f),typeof i.UNSAFE_componentWillReceiveProps=="function"&&i.UNSAFE_componentWillReceiveProps(a,f),i.state!==n&&ul.enqueueReplaceState(i,i.state,null)}function Kr(n,i,a,f){var p=n.stateNode;p.props=a,p.state=n.memoizedState,p.refs={},Cc(n);var y=i.contextType;typeof y=="object"&&y!==null?p.context=as(y):(y=is(i)?ja:Xr.current,p.context=Za(n,y)),p.state=n.memoizedState,y=i.getDerivedStateFromProps,typeof y=="function"&&(zc(n,i,y,a),p.state=n.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(i=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),i!==p.state&&ul.enqueueReplaceState(p,p.state,null),ql(n,a,p,f),p.state=n.memoizedState),typeof p.componentDidMount=="function"&&(n.flags|=4194308)}function Ps(n,i){try{var a="",f=i;do a+=he(f),f=f.return;while(f);var p=a}catch(y){p=`
39
+ Error generating stack: `+y.message+`
40
+ `+y.stack}return{value:n,source:i,stack:p,digest:null}}function zi(n,i,a){return{value:n,source:null,stack:a??null,digest:i??null}}function Is(n,i){try{console.error(i.value)}catch(a){setTimeout(function(){throw a})}}var pu=typeof WeakMap=="function"?WeakMap:Map;function Rc(n,i,a){a=to(-1,a),a.tag=3,a.payload={element:null};var f=i.value;return a.callback=function(){hd||(hd=!0,Lf=f),Is(n,i)},a}function ia(n,i,a){a=to(-1,a),a.tag=3;var f=n.type.getDerivedStateFromError;if(typeof f=="function"){var p=i.value;a.payload=function(){return f(p)},a.callback=function(){Is(n,i)}}var y=n.stateNode;return y!==null&&typeof y.componentDidCatch=="function"&&(a.callback=function(){Is(n,i),typeof f!="function"&&(fl===null?fl=new Set([this]):fl.add(this));var T=i.stack;this.componentDidCatch(i.value,{componentStack:T!==null?T:""})}),a}function $a(n,i,a){var f=n.pingCache;if(f===null){f=n.pingCache=new pu;var p=new Set;f.set(i,p)}else p=f.get(i),p===void 0&&(p=new Set,f.set(i,p));p.has(a)||(p.add(a),n=px.bind(null,n,i,a),i.then(n,n))}function Ta(n){do{var i;if((i=n.tag===13)&&(i=n.memoizedState,i=i!==null?i.dehydrated!==null:!0),i)return n;n=n.return}while(n!==null);return null}function Eh(n,i,a,f,p){return(n.mode&1)===0?(n===i?n.flags|=65536:(n.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(i=to(-1,1),i.tag=2,Ao(a,i,1))),a.lanes|=1),n):(n.flags|=65536,n.lanes=p,n)}var nx=L.ReactCurrentOwner,yi=!1;function ri(n,i,a,f){i.child=n===null?qn(i,null,a,f):ta(i,n.child,a,f)}function $h(n,i,a,f,p){a=a.render;var y=i.ref;return $o(i,p),f=P(n,i,a,f,y,p),a=C(),n!==null&&!yi?(i.updateQueue=n.updateQueue,i.flags&=-2053,n.lanes&=~p,Ma(n,i,p)):(xn&&a&&_c(i),i.flags|=1,ri(n,i,f,p),i.child)}function Th(n,i,a,f,p){if(n===null){var y=a.type;return typeof y=="function"&&!Uf(y)&&y.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(i.tag=15,i.type=y,Mh(n,i,y,f,p)):(n=vd(a.type,null,f,i,i.mode,p),n.ref=i.ref,n.return=i,i.child=n)}if(y=n.child,(n.lanes&p)===0){var T=y.memoizedProps;if(a=a.compare,a=a!==null?a:Ks,a(T,f)&&n.ref===i.ref)return Ma(n,i,p)}return i.flags|=1,n=gl(y,f),n.ref=i.ref,n.return=i,i.child=n}function Mh(n,i,a,f,p){if(n!==null){var y=n.memoizedProps;if(Ks(y,f)&&n.ref===i.ref)if(yi=!1,i.pendingProps=f=y,(n.lanes&p)!==0)(n.flags&131072)!==0&&(yi=!0);else return i.lanes=n.lanes,Ma(n,i,p)}return wf(n,i,a,f,p)}function Ah(n,i,a){var f=i.pendingProps,p=f.children,y=n!==null?n.memoizedState:null;if(f.mode==="hidden")if((i.mode&1)===0)i.memoizedState={baseLanes:0,cachePool:null,transitions:null},Vn(Pc,Ri),Ri|=a;else{if((a&1073741824)===0)return n=y!==null?y.baseLanes|a:a,i.lanes=i.childLanes=1073741824,i.memoizedState={baseLanes:n,cachePool:null,transitions:null},i.updateQueue=null,Vn(Pc,Ri),Ri|=n,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null},f=y!==null?y.baseLanes:a,Vn(Pc,Ri),Ri|=f}else y!==null?(f=y.baseLanes|a,i.memoizedState=null):f=a,Vn(Pc,Ri),Ri|=f;return ri(n,i,p,a),i.child}function zh(n,i){var a=i.ref;(n===null&&a!==null||n!==null&&n.ref!==a)&&(i.flags|=512,i.flags|=2097152)}function wf(n,i,a,f,p){var y=is(a)?ja:Xr.current;return y=Za(i,y),$o(i,p),a=P(n,i,a,f,y,p),f=C(),n!==null&&!yi?(i.updateQueue=n.updateQueue,i.flags&=-2053,n.lanes&=~p,Ma(n,i,p)):(xn&&f&&_c(i),i.flags|=1,ri(n,i,a,p),i.child)}function Rh(n,i,a,f,p){if(is(a)){var y=!0;wr(i)}else y=!1;if($o(i,p),i.stateNode===null)cd(n,i),dr(i,a,f),Kr(i,a,f,p),f=!0;else if(n===null){var T=i.stateNode,q=i.memoizedProps;T.props=q;var ee=T.context,we=a.contextType;typeof we=="object"&&we!==null?we=as(we):(we=is(a)?ja:Xr.current,we=Za(i,we));var He=a.getDerivedStateFromProps,Ve=typeof He=="function"||typeof T.getSnapshotBeforeUpdate=="function";Ve||typeof T.UNSAFE_componentWillReceiveProps!="function"&&typeof T.componentWillReceiveProps!="function"||(q!==f||ee!==we)&&Lr(i,T,f,we),Mo=!1;var We=i.memoizedState;T.state=We,ql(i,f,T,p),ee=i.memoizedState,q!==f||We!==ee||ss.current||Mo?(typeof He=="function"&&(zc(i,a,He,f),ee=i.memoizedState),(q=Mo||Kl(i,a,q,f,We,ee,we))?(Ve||typeof T.UNSAFE_componentWillMount!="function"&&typeof T.componentWillMount!="function"||(typeof T.componentWillMount=="function"&&T.componentWillMount(),typeof T.UNSAFE_componentWillMount=="function"&&T.UNSAFE_componentWillMount()),typeof T.componentDidMount=="function"&&(i.flags|=4194308)):(typeof T.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=f,i.memoizedState=ee),T.props=f,T.state=ee,T.context=we,f=q):(typeof T.componentDidMount=="function"&&(i.flags|=4194308),f=!1)}else{T=i.stateNode,cu(n,i),q=i.memoizedProps,we=i.type===i.elementType?q:Ls(i.type,q),T.props=we,Ve=i.pendingProps,We=T.context,ee=a.contextType,typeof ee=="object"&&ee!==null?ee=as(ee):(ee=is(a)?ja:Xr.current,ee=Za(i,ee));var mt=a.getDerivedStateFromProps;(He=typeof mt=="function"||typeof T.getSnapshotBeforeUpdate=="function")||typeof T.UNSAFE_componentWillReceiveProps!="function"&&typeof T.componentWillReceiveProps!="function"||(q!==Ve||We!==ee)&&Lr(i,T,f,ee),Mo=!1,We=i.memoizedState,T.state=We,ql(i,f,T,p);var St=i.memoizedState;q!==Ve||We!==St||ss.current||Mo?(typeof mt=="function"&&(zc(i,a,mt,f),St=i.memoizedState),(we=Mo||Kl(i,a,we,f,We,St,ee)||!1)?(He||typeof T.UNSAFE_componentWillUpdate!="function"&&typeof T.componentWillUpdate!="function"||(typeof T.componentWillUpdate=="function"&&T.componentWillUpdate(f,St,ee),typeof T.UNSAFE_componentWillUpdate=="function"&&T.UNSAFE_componentWillUpdate(f,St,ee)),typeof T.componentDidUpdate=="function"&&(i.flags|=4),typeof T.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof T.componentDidUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=4),typeof T.getSnapshotBeforeUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=1024),i.memoizedProps=f,i.memoizedState=St),T.props=f,T.state=St,T.context=ee,f=we):(typeof T.componentDidUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=4),typeof T.getSnapshotBeforeUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=1024),f=!1)}return bf(n,i,a,f,y,p)}function bf(n,i,a,f,p,y){zh(n,i);var T=(i.flags&128)!==0;if(!f&&!T)return p&&hi(i,a,!1),Ma(n,i,y);f=i.stateNode,nx.current=i;var q=T&&typeof a.getDerivedStateFromError!="function"?null:f.render();return i.flags|=1,n!==null&&T?(i.child=ta(i,n.child,null,y),i.child=ta(i,null,q,y)):ri(n,i,q,y),i.memoizedState=f.state,p&&hi(i,a,!0),i.child}function Lh(n){var i=n.stateNode;i.pendingContext?Bl(n,i.pendingContext,i.pendingContext!==i.context):i.context&&Bl(n,i.context,!1),Ec(n,i.containerInfo)}function Ph(n,i,a,f,p){return ka(),wc(p),i.flags|=256,ri(n,i,a,f),i.child}var Sf={dehydrated:null,treeContext:null,retryLane:0};function jf(n){return{baseLanes:n,cachePool:null,transitions:null}}function Ih(n,i,a){var f=i.pendingProps,p=tr.current,y=!1,T=(i.flags&128)!==0,q;if((q=T)||(q=n!==null&&n.memoizedState===null?!1:(p&2)!==0),q?(y=!0,i.flags&=-129):(n===null||n.memoizedState!==null)&&(p|=1),Vn(tr,p&1),n===null)return xc(i),n=i.memoizedState,n!==null&&(n=n.dehydrated,n!==null)?((i.mode&1)===0?i.lanes=1:n.data==="$!"?i.lanes=8:i.lanes=1073741824,null):(T=f.children,n=f.fallback,y?(f=i.mode,y=i.child,T={mode:"hidden",children:T},(f&1)===0&&y!==null?(y.childLanes=0,y.pendingProps=T):y=wd(T,f,0,null),n=tc(n,f,a,null),y.return=i,n.return=i,y.sibling=n,i.child=y,i.child.memoizedState=jf(a),i.memoizedState=Sf,n):kf(i,T));if(p=n.memoizedState,p!==null&&(q=p.dehydrated,q!==null))return rx(n,i,T,f,q,p,a);if(y){y=f.fallback,T=i.mode,p=n.child,q=p.sibling;var ee={mode:"hidden",children:f.children};return(T&1)===0&&i.child!==p?(f=i.child,f.childLanes=0,f.pendingProps=ee,i.deletions=null):(f=gl(p,ee),f.subtreeFlags=p.subtreeFlags&14680064),q!==null?y=gl(q,y):(y=tc(y,T,a,null),y.flags|=2),y.return=i,f.return=i,f.sibling=y,i.child=f,f=y,y=i.child,T=n.child.memoizedState,T=T===null?jf(a):{baseLanes:T.baseLanes|a,cachePool:null,transitions:T.transitions},y.memoizedState=T,y.childLanes=n.childLanes&~a,i.memoizedState=Sf,f}return y=n.child,n=y.sibling,f=gl(y,{mode:"visible",children:f.children}),(i.mode&1)===0&&(f.lanes=a),f.return=i,f.sibling=null,n!==null&&(a=i.deletions,a===null?(i.deletions=[n],i.flags|=16):a.push(n)),i.child=f,i.memoizedState=null,f}function kf(n,i){return i=wd({mode:"visible",children:i},n.mode,0,null),i.return=n,n.child=i}function ld(n,i,a,f){return f!==null&&wc(f),ta(i,n.child,null,a),n=kf(i,i.pendingProps.children),n.flags|=2,i.memoizedState=null,n}function rx(n,i,a,f,p,y,T){if(a)return i.flags&256?(i.flags&=-257,f=zi(Error(r(422))),ld(n,i,T,f)):i.memoizedState!==null?(i.child=n.child,i.flags|=128,null):(y=f.fallback,p=i.mode,f=wd({mode:"visible",children:f.children},p,0,null),y=tc(y,p,T,null),y.flags|=2,f.return=i,y.return=i,f.sibling=y,i.child=f,(i.mode&1)!==0&&ta(i,n.child,null,T),i.child.memoizedState=jf(T),i.memoizedState=Sf,y);if((i.mode&1)===0)return ld(n,i,T,null);if(p.data==="$!"){if(f=p.nextSibling&&p.nextSibling.dataset,f)var q=f.dgst;return f=q,y=Error(r(419)),f=zi(y,f,void 0),ld(n,i,T,f)}if(q=(T&n.childLanes)!==0,yi||q){if(f=ls,f!==null){switch(T&-T){case 4:p=2;break;case 16:p=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:p=32;break;case 536870912:p=268435456;break;default:p=0}p=(p&(f.suspendedLanes|T))!==0?0:p,p!==0&&p!==y.retryLane&&(y.retryLane=p,To(n,p),Lo(f,n,p,-1))}return Bf(),f=zi(Error(r(421))),ld(n,i,T,f)}return p.data==="$?"?(i.flags|=128,i.child=n.child,i=gx.bind(null,n),p._reactRetry=i,null):(n=y.treeContext,ei=Dr(p.nextSibling),Zs=i,xn=!0,ws=null,n!==null&&(zr[er++]=Co,zr[er++]=Zi,zr[er++]=Rs,Co=n.id,Zi=n.overflow,Rs=i),i=kf(i,f.children),i.flags|=4096,i)}function Oh(n,i,a){n.lanes|=i;var f=n.alternate;f!==null&&(f.lanes|=i),Na(n.return,i,a)}function Nf(n,i,a,f,p){var y=n.memoizedState;y===null?n.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:f,tail:a,tailMode:p}:(y.isBackwards=i,y.rendering=null,y.renderingStartTime=0,y.last=f,y.tail=a,y.tailMode=p)}function Fh(n,i,a){var f=i.pendingProps,p=f.revealOrder,y=f.tail;if(ri(n,i,f.children,a),f=tr.current,(f&2)!==0)f=f&1|2,i.flags|=128;else{if(n!==null&&(n.flags&128)!==0)e:for(n=i.child;n!==null;){if(n.tag===13)n.memoizedState!==null&&Oh(n,a,i);else if(n.tag===19)Oh(n,a,i);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===i)break e;for(;n.sibling===null;){if(n.return===null||n.return===i)break e;n=n.return}n.sibling.return=n.return,n=n.sibling}f&=1}if(Vn(tr,f),(i.mode&1)===0)i.memoizedState=null;else switch(p){case"forwards":for(a=i.child,p=null;a!==null;)n=a.alternate,n!==null&&Gl(n)===null&&(p=a),a=a.sibling;a=p,a===null?(p=i.child,i.child=null):(p=a.sibling,a.sibling=null),Nf(i,!1,p,a,y);break;case"backwards":for(a=null,p=i.child,i.child=null;p!==null;){if(n=p.alternate,n!==null&&Gl(n)===null){i.child=p;break}n=p.sibling,p.sibling=a,a=p,p=n}Nf(i,!0,a,null,y);break;case"together":Nf(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function cd(n,i){(i.mode&1)===0&&n!==null&&(n.alternate=null,i.alternate=null,i.flags|=2)}function Ma(n,i,a){if(n!==null&&(i.dependencies=n.dependencies),Jl|=i.lanes,(a&i.childLanes)===0)return null;if(n!==null&&i.child!==n.child)throw Error(r(153));if(i.child!==null){for(n=i.child,a=gl(n,n.pendingProps),i.child=a,a.return=i;n.sibling!==null;)n=n.sibling,a=a.sibling=gl(n,n.pendingProps),a.return=i;a.sibling=null}return i.child}function sx(n,i,a){switch(i.tag){case 3:Lh(i),ka();break;case 5:fu(i);break;case 1:is(i.type)&&wr(i);break;case 4:Ec(i,i.stateNode.containerInfo);break;case 10:var f=i.type._context,p=i.memoizedProps.value;Vn(jc,f._currentValue),f._currentValue=p;break;case 13:if(f=i.memoizedState,f!==null)return f.dehydrated!==null?(Vn(tr,tr.current&1),i.flags|=128,null):(a&i.child.childLanes)!==0?Ih(n,i,a):(Vn(tr,tr.current&1),n=Ma(n,i,a),n!==null?n.sibling:null);Vn(tr,tr.current&1);break;case 19:if(f=(a&i.childLanes)!==0,(n.flags&128)!==0){if(f)return Fh(n,i,a);i.flags|=128}if(p=i.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),Vn(tr,tr.current),f)break;return null;case 22:case 23:return i.lanes=0,Ah(n,i,a)}return Ma(n,i,a)}var Dh,Cf,Bh,Uh;Dh=function(n,i){for(var a=i.child;a!==null;){if(a.tag===5||a.tag===6)n.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===i)break;for(;a.sibling===null;){if(a.return===null||a.return===i)return;a=a.return}a.sibling.return=a.return,a=a.sibling}},Cf=function(){},Bh=function(n,i,a,f){var p=n.memoizedProps;if(p!==f){n=i.stateNode,ra(Ti.current);var y=null;switch(a){case"input":p=De(n,p),f=De(n,f),y=[];break;case"select":p=F({},p,{value:void 0}),f=F({},f,{value:void 0}),y=[];break;case"textarea":p=gt(n,p),f=gt(n,f),y=[];break;default:typeof p.onClick!="function"&&typeof f.onClick=="function"&&(n.onclick=ve)}En(a,f);var T;a=null;for(we in p)if(!f.hasOwnProperty(we)&&p.hasOwnProperty(we)&&p[we]!=null)if(we==="style"){var q=p[we];for(T in q)q.hasOwnProperty(T)&&(a||(a={}),a[T]="")}else we!=="dangerouslySetInnerHTML"&&we!=="children"&&we!=="suppressContentEditableWarning"&&we!=="suppressHydrationWarning"&&we!=="autoFocus"&&(l.hasOwnProperty(we)?y||(y=[]):(y=y||[]).push(we,null));for(we in f){var ee=f[we];if(q=p!=null?p[we]:void 0,f.hasOwnProperty(we)&&ee!==q&&(ee!=null||q!=null))if(we==="style")if(q){for(T in q)!q.hasOwnProperty(T)||ee&&ee.hasOwnProperty(T)||(a||(a={}),a[T]="");for(T in ee)ee.hasOwnProperty(T)&&q[T]!==ee[T]&&(a||(a={}),a[T]=ee[T])}else a||(y||(y=[]),y.push(we,a)),a=ee;else we==="dangerouslySetInnerHTML"?(ee=ee?ee.__html:void 0,q=q?q.__html:void 0,ee!=null&&q!==ee&&(y=y||[]).push(we,ee)):we==="children"?typeof ee!="string"&&typeof ee!="number"||(y=y||[]).push(we,""+ee):we!=="suppressContentEditableWarning"&&we!=="suppressHydrationWarning"&&(l.hasOwnProperty(we)?(ee!=null&&we==="onScroll"&&Bn("scroll",n),y||q===ee||(y=[])):(y=y||[]).push(we,ee))}a&&(y=y||[]).push("style",a);var we=y;(i.updateQueue=we)&&(i.flags|=4)}},Uh=function(n,i,a,f){a!==f&&(i.flags|=4)};function gu(n,i){if(!xn)switch(n.tailMode){case"hidden":i=n.tail;for(var a=null;i!==null;)i.alternate!==null&&(a=i),i=i.sibling;a===null?n.tail=null:a.sibling=null;break;case"collapsed":a=n.tail;for(var f=null;a!==null;)a.alternate!==null&&(f=a),a=a.sibling;f===null?i||n.tail===null?n.tail=null:n.tail.sibling=null:f.sibling=null}}function Os(n){var i=n.alternate!==null&&n.alternate.child===n.child,a=0,f=0;if(i)for(var p=n.child;p!==null;)a|=p.lanes|p.childLanes,f|=p.subtreeFlags&14680064,f|=p.flags&14680064,p.return=n,p=p.sibling;else for(p=n.child;p!==null;)a|=p.lanes|p.childLanes,f|=p.subtreeFlags,f|=p.flags,p.return=n,p=p.sibling;return n.subtreeFlags|=f,n.childLanes=a,i}function ix(n,i,a){var f=i.pendingProps;switch(yc(i),i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Os(i),null;case 1:return is(i.type)&&pc(),Os(i),null;case 3:return f=i.stateNode,Ca(),Xn(ss),Xn(Xr),Mc(),f.pendingContext&&(f.context=f.pendingContext,f.pendingContext=null),(n===null||n.child===null)&&(vc(i)?i.flags|=4:n===null||n.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,ws!==null&&(Of(ws),ws=null))),Cf(n,i),Os(i),null;case 5:$c(i);var p=ra(ol.current);if(a=i.type,n!==null&&i.stateNode!=null)Bh(n,i,a,f,p),n.ref!==i.ref&&(i.flags|=512,i.flags|=2097152);else{if(!f){if(i.stateNode===null)throw Error(r(166));return Os(i),null}if(n=ra(Ti.current),vc(i)){f=i.stateNode,a=i.type;var y=i.memoizedProps;switch(f[vs]=i,f[fi]=y,n=(i.mode&1)!==0,a){case"dialog":Bn("cancel",f),Bn("close",f);break;case"iframe":case"object":case"embed":Bn("load",f);break;case"video":case"audio":for(p=0;p<wa.length;p++)Bn(wa[p],f);break;case"source":Bn("error",f);break;case"img":case"image":case"link":Bn("error",f),Bn("load",f);break;case"details":Bn("toggle",f);break;case"input":ct(f,y),Bn("invalid",f);break;case"select":f._wrapperState={wasMultiple:!!y.multiple},Bn("invalid",f);break;case"textarea":_e(f,y),Bn("invalid",f)}En(a,y),p=null;for(var T in y)if(y.hasOwnProperty(T)){var q=y[T];T==="children"?typeof q=="string"?f.textContent!==q&&(y.suppressHydrationWarning!==!0&&fe(f.textContent,q,n),p=["children",q]):typeof q=="number"&&f.textContent!==""+q&&(y.suppressHydrationWarning!==!0&&fe(f.textContent,q,n),p=["children",""+q]):l.hasOwnProperty(T)&&q!=null&&T==="onScroll"&&Bn("scroll",f)}switch(a){case"input":be(f),Re(f,y,!0);break;case"textarea":be(f),Te(f);break;case"select":case"option":break;default:typeof y.onClick=="function"&&(f.onclick=ve)}f=p,i.updateQueue=f,f!==null&&(i.flags|=4)}else{T=p.nodeType===9?p:p.ownerDocument,n==="http://www.w3.org/1999/xhtml"&&(n=nt(a)),n==="http://www.w3.org/1999/xhtml"?a==="script"?(n=T.createElement("div"),n.innerHTML="<script><\/script>",n=n.removeChild(n.firstChild)):typeof f.is=="string"?n=T.createElement(a,{is:f.is}):(n=T.createElement(a),a==="select"&&(T=n,f.multiple?T.multiple=!0:f.size&&(T.size=f.size))):n=T.createElementNS(n,a),n[vs]=i,n[fi]=f,Dh(n,i,!1,!1),i.stateNode=n;e:{switch(T=sr(a,f),a){case"dialog":Bn("cancel",n),Bn("close",n),p=f;break;case"iframe":case"object":case"embed":Bn("load",n),p=f;break;case"video":case"audio":for(p=0;p<wa.length;p++)Bn(wa[p],n);p=f;break;case"source":Bn("error",n),p=f;break;case"img":case"image":case"link":Bn("error",n),Bn("load",n),p=f;break;case"details":Bn("toggle",n),p=f;break;case"input":ct(n,f),p=De(n,f),Bn("invalid",n);break;case"option":p=f;break;case"select":n._wrapperState={wasMultiple:!!f.multiple},p=F({},f,{value:void 0}),Bn("invalid",n);break;case"textarea":_e(n,f),p=gt(n,f),Bn("invalid",n);break;default:p=f}En(a,p),q=p;for(y in q)if(q.hasOwnProperty(y)){var ee=q[y];y==="style"?yn(n,ee):y==="dangerouslySetInnerHTML"?(ee=ee?ee.__html:void 0,ee!=null&&Jt(n,ee)):y==="children"?typeof ee=="string"?(a!=="textarea"||ee!=="")&&vt(n,ee):typeof ee=="number"&&vt(n,""+ee):y!=="suppressContentEditableWarning"&&y!=="suppressHydrationWarning"&&y!=="autoFocus"&&(l.hasOwnProperty(y)?ee!=null&&y==="onScroll"&&Bn("scroll",n):ee!=null&&O(n,y,ee,T))}switch(a){case"input":be(n),Re(n,f,!1);break;case"textarea":be(n),Te(n);break;case"option":f.value!=null&&n.setAttribute("value",""+xe(f.value));break;case"select":n.multiple=!!f.multiple,y=f.value,y!=null?Mt(n,!!f.multiple,y,!1):f.defaultValue!=null&&Mt(n,!!f.multiple,f.defaultValue,!0);break;default:typeof p.onClick=="function"&&(n.onclick=ve)}switch(a){case"button":case"input":case"select":case"textarea":f=!!f.autoFocus;break e;case"img":f=!0;break e;default:f=!1}}f&&(i.flags|=4)}i.ref!==null&&(i.flags|=512,i.flags|=2097152)}return Os(i),null;case 6:if(n&&i.stateNode!=null)Uh(n,i,n.memoizedProps,f);else{if(typeof f!="string"&&i.stateNode===null)throw Error(r(166));if(a=ra(ol.current),ra(Ti.current),vc(i)){if(f=i.stateNode,a=i.memoizedProps,f[vs]=i,(y=f.nodeValue!==a)&&(n=Zs,n!==null))switch(n.tag){case 3:fe(f.nodeValue,a,(n.mode&1)!==0);break;case 5:n.memoizedProps.suppressHydrationWarning!==!0&&fe(f.nodeValue,a,(n.mode&1)!==0)}y&&(i.flags|=4)}else f=(a.nodeType===9?a:a.ownerDocument).createTextNode(f),f[vs]=i,i.stateNode=f}return Os(i),null;case 13:if(Xn(tr),f=i.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(xn&&ei!==null&&(i.mode&1)!==0&&(i.flags&128)===0)ed(),ka(),i.flags|=98560,y=!1;else if(y=vc(i),f!==null&&f.dehydrated!==null){if(n===null){if(!y)throw Error(r(318));if(y=i.memoizedState,y=y!==null?y.dehydrated:null,!y)throw Error(r(317));y[vs]=i}else ka(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;Os(i),y=!1}else ws!==null&&(Of(ws),ws=null),y=!0;if(!y)return i.flags&65536?i:null}return(i.flags&128)!==0?(i.lanes=a,i):(f=f!==null,f!==(n!==null&&n.memoizedState!==null)&&f&&(i.child.flags|=8192,(i.mode&1)!==0&&(n===null||(tr.current&1)!==0?Jr===0&&(Jr=3):Bf())),i.updateQueue!==null&&(i.flags|=4),Os(i),null);case 4:return Ca(),Cf(n,i),n===null&&ba(i.stateNode.containerInfo),Os(i),null;case 10:return Hl(i.type._context),Os(i),null;case 17:return is(i.type)&&pc(),Os(i),null;case 19:if(Xn(tr),y=i.memoizedState,y===null)return Os(i),null;if(f=(i.flags&128)!==0,T=y.rendering,T===null)if(f)gu(y,!1);else{if(Jr!==0||n!==null&&(n.flags&128)!==0)for(n=i.child;n!==null;){if(T=Gl(n),T!==null){for(i.flags|=128,gu(y,!1),f=T.updateQueue,f!==null&&(i.updateQueue=f,i.flags|=4),i.subtreeFlags=0,f=a,a=i.child;a!==null;)y=a,n=f,y.flags&=14680066,T=y.alternate,T===null?(y.childLanes=0,y.lanes=n,y.child=null,y.subtreeFlags=0,y.memoizedProps=null,y.memoizedState=null,y.updateQueue=null,y.dependencies=null,y.stateNode=null):(y.childLanes=T.childLanes,y.lanes=T.lanes,y.child=T.child,y.subtreeFlags=0,y.deletions=null,y.memoizedProps=T.memoizedProps,y.memoizedState=T.memoizedState,y.updateQueue=T.updateQueue,y.type=T.type,n=T.dependencies,y.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),a=a.sibling;return Vn(tr,tr.current&1|2),i.child}n=n.sibling}y.tail!==null&&Tn()>Ic&&(i.flags|=128,f=!0,gu(y,!1),i.lanes=4194304)}else{if(!f)if(n=Gl(T),n!==null){if(i.flags|=128,f=!0,a=n.updateQueue,a!==null&&(i.updateQueue=a,i.flags|=4),gu(y,!0),y.tail===null&&y.tailMode==="hidden"&&!T.alternate&&!xn)return Os(i),null}else 2*Tn()-y.renderingStartTime>Ic&&a!==1073741824&&(i.flags|=128,f=!0,gu(y,!1),i.lanes=4194304);y.isBackwards?(T.sibling=i.child,i.child=T):(a=y.last,a!==null?a.sibling=T:i.child=T,y.last=T)}return y.tail!==null?(i=y.tail,y.rendering=i,y.tail=i.sibling,y.renderingStartTime=Tn(),i.sibling=null,a=tr.current,Vn(tr,f?a&1|2:a&1),i):(Os(i),null);case 22:case 23:return Df(),f=i.memoizedState!==null,n!==null&&n.memoizedState!==null!==f&&(i.flags|=8192),f&&(i.mode&1)!==0?(Ri&1073741824)!==0&&(Os(i),i.subtreeFlags&6&&(i.flags|=8192)):Os(i),null;case 24:return null;case 25:return null}throw Error(r(156,i.tag))}function ox(n,i){switch(yc(i),i.tag){case 1:return is(i.type)&&pc(),n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 3:return Ca(),Xn(ss),Xn(Xr),Mc(),n=i.flags,(n&65536)!==0&&(n&128)===0?(i.flags=n&-65537|128,i):null;case 5:return $c(i),null;case 13:if(Xn(tr),n=i.memoizedState,n!==null&&n.dehydrated!==null){if(i.alternate===null)throw Error(r(340));ka()}return n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 19:return Xn(tr),null;case 4:return Ca(),null;case 10:return Hl(i.type._context),null;case 22:case 23:return Df(),null;case 24:return null;default:return null}}var ud=!1,Fs=!1,ax=typeof WeakSet=="function"?WeakSet:Set,wt=null;function Lc(n,i){var a=n.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(f){jr(n,i,f)}else a.current=null}function Ef(n,i,a){try{a()}catch(f){jr(n,i,f)}}var Wh=!1;function lx(n,i){if(Be=Ms,n=Fr(),Ei(n)){if("selectionStart"in n)var a={start:n.selectionStart,end:n.selectionEnd};else e:{a=(a=n.ownerDocument)&&a.defaultView||window;var f=a.getSelection&&a.getSelection();if(f&&f.rangeCount!==0){a=f.anchorNode;var p=f.anchorOffset,y=f.focusNode;f=f.focusOffset;try{a.nodeType,y.nodeType}catch{a=null;break e}var T=0,q=-1,ee=-1,we=0,He=0,Ve=n,We=null;t:for(;;){for(var mt;Ve!==a||p!==0&&Ve.nodeType!==3||(q=T+p),Ve!==y||f!==0&&Ve.nodeType!==3||(ee=T+f),Ve.nodeType===3&&(T+=Ve.nodeValue.length),(mt=Ve.firstChild)!==null;)We=Ve,Ve=mt;for(;;){if(Ve===n)break t;if(We===a&&++we===p&&(q=T),We===y&&++He===f&&(ee=T),(mt=Ve.nextSibling)!==null)break;Ve=We,We=Ve.parentNode}Ve=mt}a=q===-1||ee===-1?null:{start:q,end:ee}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ge={focusedElem:n,selectionRange:a},Ms=!1,wt=i;wt!==null;)if(i=wt,n=i.child,(i.subtreeFlags&1028)!==0&&n!==null)n.return=i,wt=n;else for(;wt!==null;){i=wt;try{var St=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(St!==null){var kt=St.memoizedProps,Pr=St.memoizedState,pe=i.stateNode,le=pe.getSnapshotBeforeUpdate(i.elementType===i.type?kt:Ls(i.type,kt),Pr);pe.__reactInternalSnapshotBeforeUpdate=le}break;case 3:var ye=i.stateNode.containerInfo;ye.nodeType===1?ye.textContent="":ye.nodeType===9&&ye.documentElement&&ye.removeChild(ye.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(Xe){jr(i,i.return,Xe)}if(n=i.sibling,n!==null){n.return=i.return,wt=n;break}wt=i.return}return St=Wh,Wh=!1,St}function _u(n,i,a){var f=i.updateQueue;if(f=f!==null?f.lastEffect:null,f!==null){var p=f=f.next;do{if((p.tag&n)===n){var y=p.destroy;p.destroy=void 0,y!==void 0&&Ef(i,a,y)}p=p.next}while(p!==f)}}function dd(n,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var a=i=i.next;do{if((a.tag&n)===n){var f=a.create;a.destroy=f()}a=a.next}while(a!==i)}}function $f(n){var i=n.ref;if(i!==null){var a=n.stateNode;switch(n.tag){case 5:n=a;break;default:n=a}typeof i=="function"?i(n):i.current=n}}function Hh(n){var i=n.alternate;i!==null&&(n.alternate=null,Hh(i)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&&(i=n.stateNode,i!==null&&(delete i[vs],delete i[fi],delete i[Hn],delete i[Dl],delete i[Ka])),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}function Vh(n){return n.tag===5||n.tag===3||n.tag===4}function qh(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||Vh(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function Tf(n,i,a){var f=n.tag;if(f===5||f===6)n=n.stateNode,i?a.nodeType===8?a.parentNode.insertBefore(n,i):a.insertBefore(n,i):(a.nodeType===8?(i=a.parentNode,i.insertBefore(n,a)):(i=a,i.appendChild(n)),a=a._reactRootContainer,a!=null||i.onclick!==null||(i.onclick=ve));else if(f!==4&&(n=n.child,n!==null))for(Tf(n,i,a),n=n.sibling;n!==null;)Tf(n,i,a),n=n.sibling}function Mf(n,i,a){var f=n.tag;if(f===5||f===6)n=n.stateNode,i?a.insertBefore(n,i):a.appendChild(n);else if(f!==4&&(n=n.child,n!==null))for(Mf(n,i,a),n=n.sibling;n!==null;)Mf(n,i,a),n=n.sibling}var bs=null,zo=!1;function dl(n,i,a){for(a=a.child;a!==null;)Gh(n,i,a),a=a.sibling}function Gh(n,i,a){if(fr&&typeof fr.onCommitFiberUnmount=="function")try{fr.onCommitFiberUnmount(fn,a)}catch{}switch(a.tag){case 5:Fs||Lc(a,i);case 6:var f=bs,p=zo;bs=null,dl(n,i,a),bs=f,zo=p,bs!==null&&(zo?(n=bs,a=a.stateNode,n.nodeType===8?n.parentNode.removeChild(a):n.removeChild(a)):bs.removeChild(a.stateNode));break;case 18:bs!==null&&(zo?(n=bs,a=a.stateNode,n.nodeType===8?zs(n.parentNode,a):n.nodeType===1&&zs(n,a),Ts(n)):zs(bs,a.stateNode));break;case 4:f=bs,p=zo,bs=a.stateNode.containerInfo,zo=!0,dl(n,i,a),bs=f,zo=p;break;case 0:case 11:case 14:case 15:if(!Fs&&(f=a.updateQueue,f!==null&&(f=f.lastEffect,f!==null))){p=f=f.next;do{var y=p,T=y.destroy;y=y.tag,T!==void 0&&((y&2)!==0||(y&4)!==0)&&Ef(a,i,T),p=p.next}while(p!==f)}dl(n,i,a);break;case 1:if(!Fs&&(Lc(a,i),f=a.stateNode,typeof f.componentWillUnmount=="function"))try{f.props=a.memoizedProps,f.state=a.memoizedState,f.componentWillUnmount()}catch(q){jr(a,i,q)}dl(n,i,a);break;case 21:dl(n,i,a);break;case 22:a.mode&1?(Fs=(f=Fs)||a.memoizedState!==null,dl(n,i,a),Fs=f):dl(n,i,a);break;default:dl(n,i,a)}}function Yh(n){var i=n.updateQueue;if(i!==null){n.updateQueue=null;var a=n.stateNode;a===null&&(a=n.stateNode=new ax),i.forEach(function(f){var p=_x.bind(null,n,f);a.has(f)||(a.add(f),f.then(p,p))})}}function Ro(n,i){var a=i.deletions;if(a!==null)for(var f=0;f<a.length;f++){var p=a[f];try{var y=n,T=i,q=T;e:for(;q!==null;){switch(q.tag){case 5:bs=q.stateNode,zo=!1;break e;case 3:bs=q.stateNode.containerInfo,zo=!0;break e;case 4:bs=q.stateNode.containerInfo,zo=!0;break e}q=q.return}if(bs===null)throw Error(r(160));Gh(y,T,p),bs=null,zo=!1;var ee=p.alternate;ee!==null&&(ee.return=null),p.return=null}catch(we){jr(p,i,we)}}if(i.subtreeFlags&12854)for(i=i.child;i!==null;)Xh(i,n),i=i.sibling}function Xh(n,i){var a=n.alternate,f=n.flags;switch(n.tag){case 0:case 11:case 14:case 15:if(Ro(i,n),oa(n),f&4){try{_u(3,n,n.return),dd(3,n)}catch(kt){jr(n,n.return,kt)}try{_u(5,n,n.return)}catch(kt){jr(n,n.return,kt)}}break;case 1:Ro(i,n),oa(n),f&512&&a!==null&&Lc(a,a.return);break;case 5:if(Ro(i,n),oa(n),f&512&&a!==null&&Lc(a,a.return),n.flags&32){var p=n.stateNode;try{vt(p,"")}catch(kt){jr(n,n.return,kt)}}if(f&4&&(p=n.stateNode,p!=null)){var y=n.memoizedProps,T=a!==null?a.memoizedProps:y,q=n.type,ee=n.updateQueue;if(n.updateQueue=null,ee!==null)try{q==="input"&&y.type==="radio"&&y.name!=null&&ut(p,y),sr(q,T);var we=sr(q,y);for(T=0;T<ee.length;T+=2){var He=ee[T],Ve=ee[T+1];He==="style"?yn(p,Ve):He==="dangerouslySetInnerHTML"?Jt(p,Ve):He==="children"?vt(p,Ve):O(p,He,Ve,we)}switch(q){case"input":Ae(p,y);break;case"textarea":Kt(p,y);break;case"select":var We=p._wrapperState.wasMultiple;p._wrapperState.wasMultiple=!!y.multiple;var mt=y.value;mt!=null?Mt(p,!!y.multiple,mt,!1):We!==!!y.multiple&&(y.defaultValue!=null?Mt(p,!!y.multiple,y.defaultValue,!0):Mt(p,!!y.multiple,y.multiple?[]:"",!1))}p[fi]=y}catch(kt){jr(n,n.return,kt)}}break;case 6:if(Ro(i,n),oa(n),f&4){if(n.stateNode===null)throw Error(r(162));p=n.stateNode,y=n.memoizedProps;try{p.nodeValue=y}catch(kt){jr(n,n.return,kt)}}break;case 3:if(Ro(i,n),oa(n),f&4&&a!==null&&a.memoizedState.isDehydrated)try{Ts(i.containerInfo)}catch(kt){jr(n,n.return,kt)}break;case 4:Ro(i,n),oa(n);break;case 13:Ro(i,n),oa(n),p=n.child,p.flags&8192&&(y=p.memoizedState!==null,p.stateNode.isHidden=y,!y||p.alternate!==null&&p.alternate.memoizedState!==null||(Rf=Tn())),f&4&&Yh(n);break;case 22:if(He=a!==null&&a.memoizedState!==null,n.mode&1?(Fs=(we=Fs)||He,Ro(i,n),Fs=we):Ro(i,n),oa(n),f&8192){if(we=n.memoizedState!==null,(n.stateNode.isHidden=we)&&!He&&(n.mode&1)!==0)for(wt=n,He=n.child;He!==null;){for(Ve=wt=He;wt!==null;){switch(We=wt,mt=We.child,We.tag){case 0:case 11:case 14:case 15:_u(4,We,We.return);break;case 1:Lc(We,We.return);var St=We.stateNode;if(typeof St.componentWillUnmount=="function"){f=We,a=We.return;try{i=f,St.props=i.memoizedProps,St.state=i.memoizedState,St.componentWillUnmount()}catch(kt){jr(f,a,kt)}}break;case 5:Lc(We,We.return);break;case 22:if(We.memoizedState!==null){Qh(Ve);continue}}mt!==null?(mt.return=We,wt=mt):Qh(Ve)}He=He.sibling}e:for(He=null,Ve=n;;){if(Ve.tag===5){if(He===null){He=Ve;try{p=Ve.stateNode,we?(y=p.style,typeof y.setProperty=="function"?y.setProperty("display","none","important"):y.display="none"):(q=Ve.stateNode,ee=Ve.memoizedProps.style,T=ee!=null&&ee.hasOwnProperty("display")?ee.display:null,q.style.display=un("display",T))}catch(kt){jr(n,n.return,kt)}}}else if(Ve.tag===6){if(He===null)try{Ve.stateNode.nodeValue=we?"":Ve.memoizedProps}catch(kt){jr(n,n.return,kt)}}else if((Ve.tag!==22&&Ve.tag!==23||Ve.memoizedState===null||Ve===n)&&Ve.child!==null){Ve.child.return=Ve,Ve=Ve.child;continue}if(Ve===n)break e;for(;Ve.sibling===null;){if(Ve.return===null||Ve.return===n)break e;He===Ve&&(He=null),Ve=Ve.return}He===Ve&&(He=null),Ve.sibling.return=Ve.return,Ve=Ve.sibling}}break;case 19:Ro(i,n),oa(n),f&4&&Yh(n);break;case 21:break;default:Ro(i,n),oa(n)}}function oa(n){var i=n.flags;if(i&2){try{e:{for(var a=n.return;a!==null;){if(Vh(a)){var f=a;break e}a=a.return}throw Error(r(160))}switch(f.tag){case 5:var p=f.stateNode;f.flags&32&&(vt(p,""),f.flags&=-33);var y=qh(n);Mf(n,y,p);break;case 3:case 4:var T=f.stateNode.containerInfo,q=qh(n);Tf(n,q,T);break;default:throw Error(r(161))}}catch(ee){jr(n,n.return,ee)}n.flags&=-3}i&4096&&(n.flags&=-4097)}function cx(n,i,a){wt=n,Kh(n)}function Kh(n,i,a){for(var f=(n.mode&1)!==0;wt!==null;){var p=wt,y=p.child;if(p.tag===22&&f){var T=p.memoizedState!==null||ud;if(!T){var q=p.alternate,ee=q!==null&&q.memoizedState!==null||Fs;q=ud;var we=Fs;if(ud=T,(Fs=ee)&&!we)for(wt=p;wt!==null;)T=wt,ee=T.child,T.tag===22&&T.memoizedState!==null?Zh(p):ee!==null?(ee.return=T,wt=ee):Zh(p);for(;y!==null;)wt=y,Kh(y),y=y.sibling;wt=p,ud=q,Fs=we}Jh(n)}else(p.subtreeFlags&8772)!==0&&y!==null?(y.return=p,wt=y):Jh(n)}}function Jh(n){for(;wt!==null;){var i=wt;if((i.flags&8772)!==0){var a=i.alternate;try{if((i.flags&8772)!==0)switch(i.tag){case 0:case 11:case 15:Fs||dd(5,i);break;case 1:var f=i.stateNode;if(i.flags&4&&!Fs)if(a===null)f.componentDidMount();else{var p=i.elementType===i.type?a.memoizedProps:Ls(i.type,a.memoizedProps);f.componentDidUpdate(p,a.memoizedState,f.__reactInternalSnapshotBeforeUpdate)}var y=i.updateQueue;y!==null&&du(i,y,f);break;case 3:var T=i.updateQueue;if(T!==null){if(a=null,i.child!==null)switch(i.child.tag){case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}du(i,T,a)}break;case 5:var q=i.stateNode;if(a===null&&i.flags&4){a=q;var ee=i.memoizedProps;switch(i.type){case"button":case"input":case"select":case"textarea":ee.autoFocus&&a.focus();break;case"img":ee.src&&(a.src=ee.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(i.memoizedState===null){var we=i.alternate;if(we!==null){var He=we.memoizedState;if(He!==null){var Ve=He.dehydrated;Ve!==null&&Ts(Ve)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}Fs||i.flags&512&&$f(i)}catch(We){jr(i,i.return,We)}}if(i===n){wt=null;break}if(a=i.sibling,a!==null){a.return=i.return,wt=a;break}wt=i.return}}function Qh(n){for(;wt!==null;){var i=wt;if(i===n){wt=null;break}var a=i.sibling;if(a!==null){a.return=i.return,wt=a;break}wt=i.return}}function Zh(n){for(;wt!==null;){var i=wt;try{switch(i.tag){case 0:case 11:case 15:var a=i.return;try{dd(4,i)}catch(ee){jr(i,a,ee)}break;case 1:var f=i.stateNode;if(typeof f.componentDidMount=="function"){var p=i.return;try{f.componentDidMount()}catch(ee){jr(i,p,ee)}}var y=i.return;try{$f(i)}catch(ee){jr(i,y,ee)}break;case 5:var T=i.return;try{$f(i)}catch(ee){jr(i,T,ee)}}}catch(ee){jr(i,i.return,ee)}if(i===n){wt=null;break}var q=i.sibling;if(q!==null){q.return=i.return,wt=q;break}wt=i.return}}var ux=Math.ceil,fd=L.ReactCurrentDispatcher,Af=L.ReactCurrentOwner,so=L.ReactCurrentBatchConfig,Rn=0,ls=null,Ur=null,Ss=0,Ri=0,Pc=Jo(0),Jr=0,yu=null,Jl=0,md=0,zf=0,xu=null,xi=null,Rf=0,Ic=1/0,Aa=null,hd=!1,Lf=null,fl=null,pd=!1,ml=null,gd=0,vu=0,Pf=null,_d=-1,yd=0;function si(){return(Rn&6)!==0?Tn():_d!==-1?_d:_d=Tn()}function hl(n){return(n.mode&1)===0?1:(Rn&2)!==0&&Ss!==0?Ss&-Ss:nl.transition!==null?(yd===0&&(yd=Cn()),yd):(n=pn,n!==0||(n=window.event,n=n===void 0?16:je(n.type)),n)}function Lo(n,i,a,f){if(50<vu)throw vu=0,Pf=null,Error(r(185));mr(n,a,f),((Rn&2)===0||n!==ls)&&(n===ls&&((Rn&2)===0&&(md|=a),Jr===4&&pl(n,Ss)),vi(n,f),a===1&&Rn===0&&(i.mode&1)===0&&(Ic=Tn()+500,Ul&&Zo()))}function vi(n,i){var a=n.callbackNode;qe(n,i);var f=Ce(n,n===ls?Ss:0);if(f===0)a!==null&&Si(a),n.callbackNode=null,n.callbackPriority=0;else if(i=f&-f,n.callbackPriority!==i){if(a!=null&&Si(a),i===1)n.tag===0?vf(tp.bind(null,n)):gc(tp.bind(null,n)),_n(function(){(Rn&6)===0&&Zo()}),a=null;else{switch(ar(f)){case 1:a=Ii;break;case 4:a=fs;break;case 16:a=Kn;break;case 536870912:a=bt;break;default:a=Kn}a=cp(a,ep.bind(null,n))}n.callbackPriority=i,n.callbackNode=a}}function ep(n,i){if(_d=-1,yd=0,(Rn&6)!==0)throw Error(r(327));var a=n.callbackNode;if(Oc()&&n.callbackNode!==a)return null;var f=Ce(n,n===ls?Ss:0);if(f===0)return null;if((f&30)!==0||(f&n.expiredLanes)!==0||i)i=xd(n,f);else{i=f;var p=Rn;Rn|=2;var y=rp();(ls!==n||Ss!==i)&&(Aa=null,Ic=Tn()+500,Zl(n,i));do try{mx();break}catch(q){np(n,q)}while(!0);kc(),fd.current=y,Rn=p,Ur!==null?i=0:(ls=null,Ss=0,i=Jr)}if(i!==0){if(i===2&&(p=Jn(n),p!==0&&(f=p,i=If(n,p))),i===1)throw a=yu,Zl(n,0),pl(n,f),vi(n,Tn()),a;if(i===6)pl(n,f);else{if(p=n.current.alternate,(f&30)===0&&!dx(p)&&(i=xd(n,f),i===2&&(y=Jn(n),y!==0&&(f=y,i=If(n,y))),i===1))throw a=yu,Zl(n,0),pl(n,f),vi(n,Tn()),a;switch(n.finishedWork=p,n.finishedLanes=f,i){case 0:case 1:throw Error(r(345));case 2:ec(n,xi,Aa);break;case 3:if(pl(n,f),(f&130023424)===f&&(i=Rf+500-Tn(),10<i)){if(Ce(n,0)!==0)break;if(p=n.suspendedLanes,(p&f)!==f){si(),n.pingedLanes|=n.suspendedLanes&p;break}n.timeoutHandle=at(ec.bind(null,n,xi,Aa),i);break}ec(n,xi,Aa);break;case 4:if(pl(n,f),(f&4194240)===f)break;for(i=n.eventTimes,p=-1;0<f;){var T=31-Er(f);y=1<<T,T=i[T],T>p&&(p=T),f&=~y}if(f=p,f=Tn()-f,f=(120>f?120:480>f?480:1080>f?1080:1920>f?1920:3e3>f?3e3:4320>f?4320:1960*ux(f/1960))-f,10<f){n.timeoutHandle=at(ec.bind(null,n,xi,Aa),f);break}ec(n,xi,Aa);break;case 5:ec(n,xi,Aa);break;default:throw Error(r(329))}}}return vi(n,Tn()),n.callbackNode===a?ep.bind(null,n):null}function If(n,i){var a=xu;return n.current.memoizedState.isDehydrated&&(Zl(n,i).flags|=256),n=xd(n,i),n!==2&&(i=xi,xi=a,i!==null&&Of(i)),n}function Of(n){xi===null?xi=n:xi.push.apply(xi,n)}function dx(n){for(var i=n;;){if(i.flags&16384){var a=i.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var f=0;f<a.length;f++){var p=a[f],y=p.getSnapshot;p=p.value;try{if(!xr(y(),p))return!1}catch{return!1}}}if(a=i.child,i.subtreeFlags&16384&&a!==null)a.return=i,i=a;else{if(i===n)break;for(;i.sibling===null;){if(i.return===null||i.return===n)return!0;i=i.return}i.sibling.return=i.return,i=i.sibling}}return!0}function pl(n,i){for(i&=~zf,i&=~md,n.suspendedLanes|=i,n.pingedLanes&=~i,n=n.expirationTimes;0<i;){var a=31-Er(i),f=1<<a;n[a]=-1,i&=~f}}function tp(n){if((Rn&6)!==0)throw Error(r(327));Oc();var i=Ce(n,0);if((i&1)===0)return vi(n,Tn()),null;var a=xd(n,i);if(n.tag!==0&&a===2){var f=Jn(n);f!==0&&(i=f,a=If(n,f))}if(a===1)throw a=yu,Zl(n,0),pl(n,i),vi(n,Tn()),a;if(a===6)throw Error(r(345));return n.finishedWork=n.current.alternate,n.finishedLanes=i,ec(n,xi,Aa),vi(n,Tn()),null}function Ff(n,i){var a=Rn;Rn|=1;try{return n(i)}finally{Rn=a,Rn===0&&(Ic=Tn()+500,Ul&&Zo())}}function Ql(n){ml!==null&&ml.tag===0&&(Rn&6)===0&&Oc();var i=Rn;Rn|=1;var a=so.transition,f=pn;try{if(so.transition=null,pn=1,n)return n()}finally{pn=f,so.transition=a,Rn=i,(Rn&6)===0&&Zo()}}function Df(){Ri=Pc.current,Xn(Pc)}function Zl(n,i){n.finishedWork=null,n.finishedLanes=0;var a=n.timeoutHandle;if(a!==-1&&(n.timeoutHandle=-1,gn(a)),Ur!==null)for(a=Ur.return;a!==null;){var f=a;switch(yc(f),f.tag){case 1:f=f.type.childContextTypes,f!=null&&pc();break;case 3:Ca(),Xn(ss),Xn(Xr),Mc();break;case 5:$c(f);break;case 4:Ca();break;case 13:Xn(tr);break;case 19:Xn(tr);break;case 10:Hl(f.type._context);break;case 22:case 23:Df()}a=a.return}if(ls=n,Ur=n=gl(n.current,null),Ss=Ri=i,Jr=0,yu=null,zf=md=Jl=0,xi=xu=null,na!==null){for(i=0;i<na.length;i++)if(a=na[i],f=a.interleaved,f!==null){a.interleaved=null;var p=f.next,y=a.pending;if(y!==null){var T=y.next;y.next=p,f.next=T}a.pending=f}na=null}return n}function np(n,i){do{var a=Ur;try{if(kc(),Yl.current=ni,Xl){for(var f=nr.memoizedState;f!==null;){var p=f.queue;p!==null&&(p.pending=null),f=f.next}Xl=!1}if(sa=0,Rr=br=nr=null,al=!1,ll=0,Af.current=null,a===null||a.return===null){Jr=1,yu=i,Ur=null;break}e:{var y=n,T=a.return,q=a,ee=i;if(i=Ss,q.flags|=32768,ee!==null&&typeof ee=="object"&&typeof ee.then=="function"){var we=ee,He=q,Ve=He.tag;if((He.mode&1)===0&&(Ve===0||Ve===11||Ve===15)){var We=He.alternate;We?(He.updateQueue=We.updateQueue,He.memoizedState=We.memoizedState,He.lanes=We.lanes):(He.updateQueue=null,He.memoizedState=null)}var mt=Ta(T);if(mt!==null){mt.flags&=-257,Eh(mt,T,q,y,i),mt.mode&1&&$a(y,we,i),i=mt,ee=we;var St=i.updateQueue;if(St===null){var kt=new Set;kt.add(ee),i.updateQueue=kt}else St.add(ee);break e}else{if((i&1)===0){$a(y,we,i),Bf();break e}ee=Error(r(426))}}else if(xn&&q.mode&1){var Pr=Ta(T);if(Pr!==null){(Pr.flags&65536)===0&&(Pr.flags|=256),Eh(Pr,T,q,y,i),wc(Ps(ee,q));break e}}y=ee=Ps(ee,q),Jr!==4&&(Jr=2),xu===null?xu=[y]:xu.push(y),y=T;do{switch(y.tag){case 3:y.flags|=65536,i&=-i,y.lanes|=i;var pe=Rc(y,ee,i);uu(y,pe);break e;case 1:q=ee;var le=y.type,ye=y.stateNode;if((y.flags&128)===0&&(typeof le.getDerivedStateFromError=="function"||ye!==null&&typeof ye.componentDidCatch=="function"&&(fl===null||!fl.has(ye)))){y.flags|=65536,i&=-i,y.lanes|=i;var Xe=ia(y,q,i);uu(y,Xe);break e}}y=y.return}while(y!==null)}ip(a)}catch($t){i=$t,Ur===a&&a!==null&&(Ur=a=a.return);continue}break}while(!0)}function rp(){var n=fd.current;return fd.current=ni,n===null?ni:n}function Bf(){(Jr===0||Jr===3||Jr===2)&&(Jr=4),ls===null||(Jl&268435455)===0&&(md&268435455)===0||pl(ls,Ss)}function xd(n,i){var a=Rn;Rn|=2;var f=rp();(ls!==n||Ss!==i)&&(Aa=null,Zl(n,i));do try{fx();break}catch(p){np(n,p)}while(!0);if(kc(),Rn=a,fd.current=f,Ur!==null)throw Error(r(261));return ls=null,Ss=0,Jr}function fx(){for(;Ur!==null;)sp(Ur)}function mx(){for(;Ur!==null&&!Bo();)sp(Ur)}function sp(n){var i=lp(n.alternate,n,Ri);n.memoizedProps=n.pendingProps,i===null?ip(n):Ur=i,Af.current=null}function ip(n){var i=n;do{var a=i.alternate;if(n=i.return,(i.flags&32768)===0){if(a=ix(a,i,Ri),a!==null){Ur=a;return}}else{if(a=ox(a,i),a!==null){a.flags&=32767,Ur=a;return}if(n!==null)n.flags|=32768,n.subtreeFlags=0,n.deletions=null;else{Jr=6,Ur=null;return}}if(i=i.sibling,i!==null){Ur=i;return}Ur=i=n}while(i!==null);Jr===0&&(Jr=5)}function ec(n,i,a){var f=pn,p=so.transition;try{so.transition=null,pn=1,hx(n,i,a,f)}finally{so.transition=p,pn=f}return null}function hx(n,i,a,f){do Oc();while(ml!==null);if((Rn&6)!==0)throw Error(r(327));a=n.finishedWork;var p=n.finishedLanes;if(a===null)return null;if(n.finishedWork=null,n.finishedLanes=0,a===n.current)throw Error(r(177));n.callbackNode=null,n.callbackPriority=0;var y=a.lanes|a.childLanes;if(Bs(n,y),n===ls&&(Ur=ls=null,Ss=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||pd||(pd=!0,cp(Kn,function(){return Oc(),null})),y=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||y){y=so.transition,so.transition=null;var T=pn;pn=1;var q=Rn;Rn|=4,Af.current=null,lx(n,a),Xh(a,n),xs(Ge),Ms=!!Be,Ge=Be=null,n.current=a,cx(a),Ir(),Rn=q,pn=T,so.transition=y}else n.current=a;if(pd&&(pd=!1,ml=n,gd=p),y=n.pendingLanes,y===0&&(fl=null),Vr(a.stateNode),vi(n,Tn()),i!==null)for(f=n.onRecoverableError,a=0;a<i.length;a++)p=i[a],f(p.value,{componentStack:p.stack,digest:p.digest});if(hd)throw hd=!1,n=Lf,Lf=null,n;return(gd&1)!==0&&n.tag!==0&&Oc(),y=n.pendingLanes,(y&1)!==0?n===Pf?vu++:(vu=0,Pf=n):vu=0,Zo(),null}function Oc(){if(ml!==null){var n=ar(gd),i=so.transition,a=pn;try{if(so.transition=null,pn=16>n?16:n,ml===null)var f=!1;else{if(n=ml,ml=null,gd=0,(Rn&6)!==0)throw Error(r(331));var p=Rn;for(Rn|=4,wt=n.current;wt!==null;){var y=wt,T=y.child;if((wt.flags&16)!==0){var q=y.deletions;if(q!==null){for(var ee=0;ee<q.length;ee++){var we=q[ee];for(wt=we;wt!==null;){var He=wt;switch(He.tag){case 0:case 11:case 15:_u(8,He,y)}var Ve=He.child;if(Ve!==null)Ve.return=He,wt=Ve;else for(;wt!==null;){He=wt;var We=He.sibling,mt=He.return;if(Hh(He),He===we){wt=null;break}if(We!==null){We.return=mt,wt=We;break}wt=mt}}}var St=y.alternate;if(St!==null){var kt=St.child;if(kt!==null){St.child=null;do{var Pr=kt.sibling;kt.sibling=null,kt=Pr}while(kt!==null)}}wt=y}}if((y.subtreeFlags&2064)!==0&&T!==null)T.return=y,wt=T;else e:for(;wt!==null;){if(y=wt,(y.flags&2048)!==0)switch(y.tag){case 0:case 11:case 15:_u(9,y,y.return)}var pe=y.sibling;if(pe!==null){pe.return=y.return,wt=pe;break e}wt=y.return}}var le=n.current;for(wt=le;wt!==null;){T=wt;var ye=T.child;if((T.subtreeFlags&2064)!==0&&ye!==null)ye.return=T,wt=ye;else e:for(T=le;wt!==null;){if(q=wt,(q.flags&2048)!==0)try{switch(q.tag){case 0:case 11:case 15:dd(9,q)}}catch($t){jr(q,q.return,$t)}if(q===T){wt=null;break e}var Xe=q.sibling;if(Xe!==null){Xe.return=q.return,wt=Xe;break e}wt=q.return}}if(Rn=p,Zo(),fr&&typeof fr.onPostCommitFiberRoot=="function")try{fr.onPostCommitFiberRoot(fn,n)}catch{}f=!0}return f}finally{pn=a,so.transition=i}}return!1}function op(n,i,a){i=Ps(a,i),i=Rc(n,i,1),n=Ao(n,i,1),i=si(),n!==null&&(mr(n,1,i),vi(n,i))}function jr(n,i,a){if(n.tag===3)op(n,n,a);else for(;i!==null;){if(i.tag===3){op(i,n,a);break}else if(i.tag===1){var f=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof f.componentDidCatch=="function"&&(fl===null||!fl.has(f))){n=Ps(a,n),n=ia(i,n,1),i=Ao(i,n,1),n=si(),i!==null&&(mr(i,1,n),vi(i,n));break}}i=i.return}}function px(n,i,a){var f=n.pingCache;f!==null&&f.delete(i),i=si(),n.pingedLanes|=n.suspendedLanes&a,ls===n&&(Ss&a)===a&&(Jr===4||Jr===3&&(Ss&130023424)===Ss&&500>Tn()-Rf?Zl(n,0):zf|=a),vi(n,i)}function ap(n,i){i===0&&((n.mode&1)===0?i=1:(i=qr,qr<<=1,(qr&130023424)===0&&(qr=4194304)));var a=si();n=To(n,i),n!==null&&(mr(n,i,a),vi(n,a))}function gx(n){var i=n.memoizedState,a=0;i!==null&&(a=i.retryLane),ap(n,a)}function _x(n,i){var a=0;switch(n.tag){case 13:var f=n.stateNode,p=n.memoizedState;p!==null&&(a=p.retryLane);break;case 19:f=n.stateNode;break;default:throw Error(r(314))}f!==null&&f.delete(i),ap(n,a)}var lp;lp=function(n,i,a){if(n!==null)if(n.memoizedProps!==i.pendingProps||ss.current)yi=!0;else{if((n.lanes&a)===0&&(i.flags&128)===0)return yi=!1,sx(n,i,a);yi=(n.flags&131072)!==0}else yi=!1,xn&&(i.flags&1048576)!==0&&tl(i,gi,i.index);switch(i.lanes=0,i.tag){case 2:var f=i.type;cd(n,i),n=i.pendingProps;var p=Za(i,Xr.current);$o(i,a),p=P(null,i,f,n,p,a);var y=C();return i.flags|=1,typeof p=="object"&&p!==null&&typeof p.render=="function"&&p.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,is(f)?(y=!0,wr(i)):y=!1,i.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,Cc(i),p.updater=ul,i.stateNode=p,p._reactInternals=i,Kr(i,f,n,a),i=bf(null,i,f,!0,y,a)):(i.tag=0,xn&&y&&_c(i),ri(null,i,p,a),i=i.child),i;case 16:f=i.elementType;e:{switch(cd(n,i),n=i.pendingProps,p=f._init,f=p(f._payload),i.type=f,p=i.tag=xx(f),n=Ls(f,n),p){case 0:i=wf(null,i,f,n,a);break e;case 1:i=Rh(null,i,f,n,a);break e;case 11:i=$h(null,i,f,n,a);break e;case 14:i=Th(null,i,f,Ls(f.type,n),a);break e}throw Error(r(306,f,""))}return i;case 0:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ls(f,p),wf(n,i,f,p,a);case 1:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ls(f,p),Rh(n,i,f,p,a);case 3:e:{if(Lh(i),n===null)throw Error(r(387));f=i.pendingProps,y=i.memoizedState,p=y.element,cu(n,i),ql(i,f,null,a);var T=i.memoizedState;if(f=T.element,y.isDehydrated)if(y={element:f,isDehydrated:!1,cache:T.cache,pendingSuspenseBoundaries:T.pendingSuspenseBoundaries,transitions:T.transitions},i.updateQueue.baseState=y,i.memoizedState=y,i.flags&256){p=Ps(Error(r(423)),i),i=Ph(n,i,f,a,p);break e}else if(f!==p){p=Ps(Error(r(424)),i),i=Ph(n,i,f,a,p);break e}else for(ei=Dr(i.stateNode.containerInfo.firstChild),Zs=i,xn=!0,ws=null,a=qn(i,null,f,a),i.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(ka(),f===p){i=Ma(n,i,a);break e}ri(n,i,f,a)}i=i.child}return i;case 5:return fu(i),n===null&&xc(i),f=i.type,p=i.pendingProps,y=n!==null?n.memoizedProps:null,T=p.children,Ye(f,p)?T=null:y!==null&&Ye(f,y)&&(i.flags|=32),zh(n,i),ri(n,i,T,a),i.child;case 6:return n===null&&xc(i),null;case 13:return Ih(n,i,a);case 4:return Ec(i,i.stateNode.containerInfo),f=i.pendingProps,n===null?i.child=ta(i,null,f,a):ri(n,i,f,a),i.child;case 11:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ls(f,p),$h(n,i,f,p,a);case 7:return ri(n,i,i.pendingProps,a),i.child;case 8:return ri(n,i,i.pendingProps.children,a),i.child;case 12:return ri(n,i,i.pendingProps.children,a),i.child;case 10:e:{if(f=i.type._context,p=i.pendingProps,y=i.memoizedProps,T=p.value,Vn(jc,f._currentValue),f._currentValue=T,y!==null)if(xr(y.value,T)){if(y.children===p.children&&!ss.current){i=Ma(n,i,a);break e}}else for(y=i.child,y!==null&&(y.return=i);y!==null;){var q=y.dependencies;if(q!==null){T=y.child;for(var ee=q.firstContext;ee!==null;){if(ee.context===f){if(y.tag===1){ee=to(-1,a&-a),ee.tag=2;var we=y.updateQueue;if(we!==null){we=we.shared;var He=we.pending;He===null?ee.next=ee:(ee.next=He.next,He.next=ee),we.pending=ee}}y.lanes|=a,ee=y.alternate,ee!==null&&(ee.lanes|=a),Na(y.return,a,i),q.lanes|=a;break}ee=ee.next}}else if(y.tag===10)T=y.type===i.type?null:y.child;else if(y.tag===18){if(T=y.return,T===null)throw Error(r(341));T.lanes|=a,q=T.alternate,q!==null&&(q.lanes|=a),Na(T,a,i),T=y.sibling}else T=y.child;if(T!==null)T.return=y;else for(T=y;T!==null;){if(T===i){T=null;break}if(y=T.sibling,y!==null){y.return=T.return,T=y;break}T=T.return}y=T}ri(n,i,p.children,a),i=i.child}return i;case 9:return p=i.type,f=i.pendingProps.children,$o(i,a),p=as(p),f=f(p),i.flags|=1,ri(n,i,f,a),i.child;case 14:return f=i.type,p=Ls(f,i.pendingProps),p=Ls(f.type,p),Th(n,i,f,p,a);case 15:return Mh(n,i,i.type,i.pendingProps,a);case 17:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ls(f,p),cd(n,i),i.tag=1,is(f)?(n=!0,wr(i)):n=!1,$o(i,a),dr(i,f,p),Kr(i,f,p,a),bf(null,i,f,!0,n,a);case 19:return Fh(n,i,a);case 22:return Ah(n,i,a)}throw Error(r(156,i.tag))};function cp(n,i){return ds(n,i)}function yx(n,i,a,f){this.tag=n,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=f,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function io(n,i,a,f){return new yx(n,i,a,f)}function Uf(n){return n=n.prototype,!(!n||!n.isReactComponent)}function xx(n){if(typeof n=="function")return Uf(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Me)return 11;if(n===G)return 14}return 2}function gl(n,i){var a=n.alternate;return a===null?(a=io(n.tag,i,n.key,n.mode),a.elementType=n.elementType,a.type=n.type,a.stateNode=n.stateNode,a.alternate=n,n.alternate=a):(a.pendingProps=i,a.type=n.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=n.flags&14680064,a.childLanes=n.childLanes,a.lanes=n.lanes,a.child=n.child,a.memoizedProps=n.memoizedProps,a.memoizedState=n.memoizedState,a.updateQueue=n.updateQueue,i=n.dependencies,a.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},a.sibling=n.sibling,a.index=n.index,a.ref=n.ref,a}function vd(n,i,a,f,p,y){var T=2;if(f=n,typeof n=="function")Uf(n)&&(T=1);else if(typeof n=="string")T=5;else e:switch(n){case X:return tc(a.children,p,y,i);case J:T=8,p|=8;break;case ge:return n=io(12,a,i,p|2),n.elementType=ge,n.lanes=y,n;case ue:return n=io(13,a,i,p),n.elementType=ue,n.lanes=y,n;case I:return n=io(19,a,i,p),n.elementType=I,n.lanes=y,n;case Z:return wd(a,p,y,i);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case me:T=10;break e;case $e:T=9;break e;case Me:T=11;break e;case G:T=14;break e;case H:T=16,f=null;break e}throw Error(r(130,n==null?n:typeof n,""))}return i=io(T,a,i,p),i.elementType=n,i.type=f,i.lanes=y,i}function tc(n,i,a,f){return n=io(7,n,f,i),n.lanes=a,n}function wd(n,i,a,f){return n=io(22,n,f,i),n.elementType=Z,n.lanes=a,n.stateNode={isHidden:!1},n}function Wf(n,i,a){return n=io(6,n,null,i),n.lanes=a,n}function Hf(n,i,a){return i=io(4,n.children!==null?n.children:[],n.key,i),i.lanes=a,i.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},i}function vx(n,i,a,f,p){this.tag=i,this.containerInfo=n,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Cs(0),this.expirationTimes=Cs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Cs(0),this.identifierPrefix=f,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function Vf(n,i,a,f,p,y,T,q,ee){return n=new vx(n,i,a,q,ee),i===1?(i=1,y===!0&&(i|=8)):i=0,y=io(3,null,null,i),n.current=y,y.stateNode=n,y.memoizedState={element:f,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},Cc(y),n}function wx(n,i,a){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:ne,key:f==null?null:""+f,children:n,containerInfo:i,implementation:a}}function up(n){if(!n)return Qo;n=n._reactInternals;e:{if($n(n)!==n||n.tag!==1)throw Error(r(170));var i=n;do{switch(i.tag){case 3:i=i.stateNode.context;break e;case 1:if(is(i.type)){i=i.stateNode.__reactInternalMemoizedMergedChildContext;break e}}i=i.return}while(i!==null);throw Error(r(171))}if(n.tag===1){var a=n.type;if(is(a))return ko(n,a,i)}return i}function dp(n,i,a,f,p,y,T,q,ee){return n=Vf(a,f,!0,n,p,y,T,q,ee),n.context=up(null),a=n.current,f=si(),p=hl(a),y=to(f,p),y.callback=i??null,Ao(a,y,p),n.current.lanes=p,mr(n,p,f),vi(n,f),n}function bd(n,i,a,f){var p=i.current,y=si(),T=hl(p);return a=up(a),i.context===null?i.context=a:i.pendingContext=a,i=to(y,T),i.payload={element:n},f=f===void 0?null:f,f!==null&&(i.callback=f),n=Ao(p,i,T),n!==null&&(Lo(n,p,T,y),Vl(n,p,T)),T}function Sd(n){if(n=n.current,!n.child)return null;switch(n.child.tag){case 5:return n.child.stateNode;default:return n.child.stateNode}}function fp(n,i){if(n=n.memoizedState,n!==null&&n.dehydrated!==null){var a=n.retryLane;n.retryLane=a!==0&&a<i?a:i}}function qf(n,i){fp(n,i),(n=n.alternate)&&fp(n,i)}function bx(){return null}var mp=typeof reportError=="function"?reportError:function(n){console.error(n)};function Gf(n){this._internalRoot=n}jd.prototype.render=Gf.prototype.render=function(n){var i=this._internalRoot;if(i===null)throw Error(r(409));bd(n,i,null,null)},jd.prototype.unmount=Gf.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var i=n.containerInfo;Ql(function(){bd(null,n,null,null)}),i[Yn]=null}};function jd(n){this._internalRoot=n}jd.prototype.unstable_scheduleHydration=function(n){if(n){var i=cr();n={blockedOn:null,target:n,priority:i};for(var a=0;a<Or.length&&i!==0&&i<Or[a].priority;a++);Or.splice(a,0,n),a===0&&Oi(n)}};function Yf(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function kd(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11&&(n.nodeType!==8||n.nodeValue!==" react-mount-point-unstable "))}function hp(){}function Sx(n,i,a,f,p){if(p){if(typeof f=="function"){var y=f;f=function(){var we=Sd(T);y.call(we)}}var T=dp(i,f,n,0,null,!1,!1,"",hp);return n._reactRootContainer=T,n[Yn]=T.current,ba(n.nodeType===8?n.parentNode:n),Ql(),T}for(;p=n.lastChild;)n.removeChild(p);if(typeof f=="function"){var q=f;f=function(){var we=Sd(ee);q.call(we)}}var ee=Vf(n,0,!1,null,null,!1,!1,"",hp);return n._reactRootContainer=ee,n[Yn]=ee.current,ba(n.nodeType===8?n.parentNode:n),Ql(function(){bd(i,ee,a,f)}),ee}function Nd(n,i,a,f,p){var y=a._reactRootContainer;if(y){var T=y;if(typeof p=="function"){var q=p;p=function(){var ee=Sd(T);q.call(ee)}}bd(i,T,n,p)}else T=Sx(a,i,n,p,f);return Sd(T)}li=function(n){switch(n.tag){case 3:var i=n.stateNode;if(i.current.memoizedState.isDehydrated){var a=or(i.pendingLanes);a!==0&&(hs(i,a|1),vi(i,Tn()),(Rn&6)===0&&(Ic=Tn()+500,Zo()))}break;case 13:Ql(function(){var f=To(n,1);if(f!==null){var p=si();Lo(f,n,1,p)}}),qf(n,1)}},Us=function(n){if(n.tag===13){var i=To(n,134217728);if(i!==null){var a=si();Lo(i,n,134217728,a)}qf(n,134217728)}},Qn=function(n){if(n.tag===13){var i=hl(n),a=To(n,i);if(a!==null){var f=si();Lo(a,n,i,f)}qf(n,i)}},cr=function(){return pn},ps=function(n,i){var a=pn;try{return pn=n,i()}finally{pn=a}},Nr=function(n,i,a){switch(i){case"input":if(Ae(n,a),i=a.name,a.type==="radio"&&i!=null){for(a=n;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),i=0;i<a.length;i++){var f=a[i];if(f!==n&&f.form===n.form){var p=hc(f);if(!p)throw Error(r(90));Se(f),Ae(f,p)}}}break;case"textarea":Kt(n,a);break;case"select":i=a.value,i!=null&&Mt(n,!!a.multiple,i,!1)}},_t=Ff,Tt=Ql;var jx={usingClientEntryPoint:!1,Events:[Ja,Sa,hc,st,it,Ff]},wu={findFiberByHostInstance:mi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},kx={bundleType:wu.bundleType,version:wu.version,rendererPackageName:wu.rendererPackageName,rendererConfig:wu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:L.ReactCurrentDispatcher,findHostInstanceByFiber:function(n){return n=gr(n),n===null?null:n.stateNode},findFiberByHostInstance:wu.findFiberByHostInstance||bx,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Cd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Cd.isDisabled&&Cd.supportsFiber)try{fn=Cd.inject(kx),fr=Cd}catch{}}return wi.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=jx,wi.createPortal=function(n,i){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Yf(i))throw Error(r(200));return wx(n,i,null,a)},wi.createRoot=function(n,i){if(!Yf(n))throw Error(r(299));var a=!1,f="",p=mp;return i!=null&&(i.unstable_strictMode===!0&&(a=!0),i.identifierPrefix!==void 0&&(f=i.identifierPrefix),i.onRecoverableError!==void 0&&(p=i.onRecoverableError)),i=Vf(n,1,!1,null,null,a,!1,f,p),n[Yn]=i.current,ba(n.nodeType===8?n.parentNode:n),new Gf(i)},wi.findDOMNode=function(n){if(n==null)return null;if(n.nodeType===1)return n;var i=n._reactInternals;if(i===void 0)throw typeof n.render=="function"?Error(r(188)):(n=Object.keys(n).join(","),Error(r(268,n)));return n=gr(i),n=n===null?null:n.stateNode,n},wi.flushSync=function(n){return Ql(n)},wi.hydrate=function(n,i,a){if(!kd(i))throw Error(r(200));return Nd(null,n,i,!0,a)},wi.hydrateRoot=function(n,i,a){if(!Yf(n))throw Error(r(405));var f=a!=null&&a.hydratedSources||null,p=!1,y="",T=mp;if(a!=null&&(a.unstable_strictMode===!0&&(p=!0),a.identifierPrefix!==void 0&&(y=a.identifierPrefix),a.onRecoverableError!==void 0&&(T=a.onRecoverableError)),i=dp(i,null,n,1,a??null,p,!1,y,T),n[Yn]=i.current,ba(n),f)for(n=0;n<f.length;n++)a=f[n],p=a._getVersion,p=p(a._source),i.mutableSourceEagerHydrationData==null?i.mutableSourceEagerHydrationData=[a,p]:i.mutableSourceEagerHydrationData.push(a,p);return new jd(i)},wi.render=function(n,i,a){if(!kd(i))throw Error(r(200));return Nd(null,n,i,!1,a)},wi.unmountComponentAtNode=function(n){if(!kd(n))throw Error(r(40));return n._reactRootContainer?(Ql(function(){Nd(null,null,n,!1,function(){n._reactRootContainer=null,n[Yn]=null})}),!0):!1},wi.unstable_batchedUpdates=Ff,wi.unstable_renderSubtreeIntoContainer=function(n,i,a,f){if(!kd(a))throw Error(r(200));if(n==null||n._reactInternals===void 0)throw Error(r(38));return Nd(n,i,a,!1,f)},wi.version="18.3.1-next-f1338f8080-20240426",wi}var bp;function Xg(){if(bp)return Jf.exports;bp=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(),Jf.exports=Rx(),Jf.exports}var Sp;function Lx(){if(Sp)return Ed;Sp=1;var e=Xg();return Ed.createRoot=e.createRoot,Ed.hydrateRoot=e.hydrateRoot,Ed}var Px=Lx();const Ix=ih(Px);function Kg(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Jg(e){return Array.isArray(e)}function Ox(e){const t=e.trim();if(!t)return e;if(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]"))try{return JSON.parse(t)}catch{return e}return e}function Fx(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function Dx(e){const t=String(e||"");if(t)try{await navigator.clipboard.writeText(t)}catch{const r=document.createElement("textarea");r.value=t,document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}}function qc({kind:e,children:t}){return s.jsx("span",{className:`json-token ${e}`,children:t})}function Bx(e){return e===null?s.jsx(qc,{kind:"null",children:"null"}):typeof e=="string"?s.jsx(qc,{kind:"string",children:JSON.stringify(e)}):typeof e=="number"?s.jsx(qc,{kind:"number",children:String(e)}):typeof e=="boolean"?s.jsx(qc,{kind:"boolean",children:e?"true":"false"}):s.jsx(qc,{kind:"string",children:JSON.stringify(String(e))})}function Ux(e){return Jg(e)?e.length===1?"1 item":`${e.length} items`:Kg(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function Qg(e){const{label:t,value:r,depth:o,collapse_after_depth:l,trailing_comma:u}=e,c=o*14,d=Kg(r),h=Jg(r),_=d||h,g=o<l,[x,v]=m.useState(g),b=t?s.jsxs(s.Fragment,{children:[s.jsx(qc,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!_)return s.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:c},children:[b,Bx(r),u?",":""]});const j=h?"[":"{",S=h?"]":"}",M=Ux(r),A=x?`${j}`:`${j}…${S}${M?` (${M})`:""}`,D=h?r.map((O,L)=>({key:String(L),label:void 0,value:O})):Object.entries(r).map(([O,L])=>({key:O,label:O,value:L}));return s.jsxs("details",{className:"json-viewer__details",open:x,onToggle:O=>v(O.currentTarget.open),children:[s.jsxs("summary",{className:"json-viewer__summary",style:{paddingLeft:c},children:[b,s.jsx("span",{className:"json-viewer__caret","aria-hidden":"true",children:x?"▾":"▸"}),s.jsx("span",{className:"json-viewer__punct",children:A}),!x&&u?s.jsx("span",{className:"json-viewer__punct",children:","}):null]}),x?s.jsx("div",{className:"json-viewer__children",children:D.length===0?s.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:c},children:[s.jsx("span",{className:"json-viewer__punct",children:S}),u?",":""]}):s.jsxs(s.Fragment,{children:[D.map((O,L)=>{const Y=L===D.length-1;return s.jsx(Qg,{label:O.label,value:O.value,depth:o+1,collapse_after_depth:l,trailing_comma:!Y},`${o}:${t||"root"}:${O.key}`)}),s.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:c},children:[s.jsx("span",{className:"json-viewer__punct",children:S}),u?",":""]})]})}):null]})}function Zg(e){const{value:t,className:r,showCopy:o=!0}=e,l=Number.isFinite(e.collapseAfterDepth??NaN)?Number(e.collapseAfterDepth):3,u=m.useMemo(()=>typeof t=="string"?Ox(t):t,[t]),c=m.useMemo(()=>Fx(t),[t]),d=["json-viewer","run-details-output",r].filter(Boolean).join(" ");return s.jsxs("div",{className:d,children:[o?s.jsx("div",{className:"json-viewer__toolbar",children:s.jsx("button",{type:"button",className:"modal-button json-viewer__copy",onClick:()=>void Dx(c),children:"Copy"})}):null,s.jsx("div",{className:"json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:s.jsx(Qg,{value:u,depth:0,collapse_after_depth:l,trailing_comma:!1})})]})}function em(e){const t=[],r=String(e??"");let o=0,l="";const u=()=>{l&&(t.push(l),l="")};for(;o<r.length;){const c=r[o];if(c==="`"){const d=r.indexOf("`",o+1);if(d!==-1){u(),t.push(s.jsx("code",{children:r.slice(o+1,d)},`code:${o}`)),o=d+1;continue}}if(c==="*"&&r[o+1]==="*"){const d=r.indexOf("**",o+2);if(d!==-1){u(),t.push(s.jsx("strong",{children:r.slice(o+2,d)},`bold:${o}`)),o=d+2;continue}}l+=c,o+=1}return u(),t}function Wx(e){return String(e??"").replace(/\r\n/g,`
41
+ `).replace(/\r/g,`
42
+ `).split(`
43
+ `)}function Hx({text:e,className:t}){const r=Wx(e),o=[];let l=0;for(;l<r.length;){const c=r[l],d=String(c??"");if(!d.trim()){l+=1;continue}if(d.trim().startsWith("```")){const v=d.trim().replace(/```/g,"").trim(),b=[];for(l+=1;l<r.length&&!String(r[l]??"").trim().startsWith("```");)b.push(String(r[l]??"")),l+=1;l<r.length&&(l+=1);const j=b.join(`
44
+ `);o.push(s.jsx("pre",{className:"mf-md_pre",children:s.jsx("code",{className:v?`language-${v}`:void 0,children:j})},`pre:${l}`));continue}const h=d.match(/^(#{1,3})\s+(.*)$/);if(h){const x=h[1].length,v=h[2]||"",b=em(v);x===1?o.push(s.jsx("h1",{children:b},`h1:${l}`)):x===2?o.push(s.jsx("h2",{children:b},`h2:${l}`)):o.push(s.jsx("h3",{children:b},`h3:${l}`)),l+=1;continue}const _=x=>{const v=x.trimStart();return v.startsWith("- ")||v.startsWith("* ")};if(_(d)){const x=[];for(;l<r.length&&_(String(r[l]??""));){const v=String(r[l]??"").trimStart();x.push(v.slice(2)),l+=1}o.push(s.jsx("ul",{className:"mf-md_ul",children:x.map((v,b)=>s.jsx("li",{children:em(v)},`li:${l}:${b}`))},`ul:${l}`));continue}const g=[];for(;l<r.length&&String(r[l]??"").trim();)g.push(String(r[l]??"")),l+=1;o.push(s.jsx("p",{className:"mf-md_p",children:g.map((x,v)=>s.jsxs(Ee.Fragment,{children:[em(x),v<g.length-1?s.jsx("br",{}):null]},`pl:${l}:${v}`))},`p:${l}`))}const u=["mf-md",t].filter(Boolean).join(" ");return s.jsx("div",{className:u,children:o})}async function Vx(e){const t=String(e||"");if(t)try{await navigator.clipboard.writeText(t)}catch{const r=document.createElement("textarea");r.value=t,document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}}function ii(e){return!e||typeof e!="object"?null:e}function Tm(e,t){const r=String(e||"").replace(/\s+/g," ").trim();return r?r.length<=t?r:`${r.slice(0,Math.max(0,t-1)).trimEnd()}…`:""}function jp(e){const t=ii(e);if(!t)return null;const r=typeof t.role=="string"?String(t.role).trim():"",o=typeof t.content=="string"?String(t.content):"";if(!r||o==="")return null;const l=typeof t.name=="string"?String(t.name).trim():"";return{role:r,content:o,name:l||void 0}}function qx(e){if(Array.isArray(e)){if(e.length===0)return null;const r=[];for(const o of e){const l=jp(o);if(!l)return null;r.push(l)}return r}const t=jp(e);return t?[t]:null}function Gx(e){const t=String(e||"").trim();if(!t)return null;const r=t[0],o=t[t.length-1];if(!(r==="{"&&o==="}"||r==="["&&o==="]"))return null;try{const u=JSON.parse(t);return u&&typeof u=="object"||Array.isArray(u)?u:null}catch{return null}}function Yx(e){const t=String(e||"");return t.trim()?!!(t.includes("```")||/\n\s*#{1,3}\s+/.test(t)||/\n\s*[-*]\s+/.test(t)||/\n\s*\d+[\.\)]\s+/.test(t)||t.includes("**")||t.includes("`")):!1}function kp({text:e}){const t=String(e||""),r=Gx(t);if(r!==null)return s.jsx(Zg,{value:r});const o=t.trim();return o.startsWith("{")||o.startsWith("[")?s.jsx("pre",{className:"run-details-output",children:t||"(none)"}):t.includes(`
45
+ `)||Yx(t)?s.jsx("div",{className:"run-details-output",children:s.jsx(Hx,{text:t})}):s.jsx("pre",{className:"run-details-output",children:t||"(none)"})}function e_({value:e}){if(e==null)return s.jsx("pre",{className:"run-details-output",children:"(none)"});const t=qx(e);return t?s.jsx("div",{className:"mf-msg-list",children:t.map((r,o)=>s.jsxs("div",{className:"mf-msg",children:[s.jsxs("div",{className:"mf-msg-meta",children:[s.jsx("span",{className:`mf-msg-role ${r.role}`,children:r.role}),r.name?s.jsx("span",{className:"mf-msg-name",children:r.name}):null]}),s.jsx("div",{className:"mf-msg-content",children:s.jsx(kp,{text:r.content})})]},`${r.role}:${o}`))}):typeof e=="string"?s.jsx(kp,{text:e}):s.jsx(Zg,{value:e})}function t_(e){const t=e.effect;return!t||typeof t!="object"?null:t}function Cl(e){const t=t_(e);return(t&&typeof t.type=="string"?t.type:"")||"effect"}function df(e){const t=t_(e),r=t==null?void 0:t.payload;return!r||typeof r!="object"?null:r}function oh(e){const t=e.result;return!t||typeof t!="object"?null:t}function n_(e){if(Cl(e)!=="tool_calls")return[];const r=oh(e),o=r&&Array.isArray(r.results)?r.results:null;if(!o)return[];const l=[];for(const u of o){const c=ii(u);if(!c)continue;const d=typeof c.name=="string"?c.name.trim():"";d&&l.push({call_id:typeof c.call_id=="string"?c.call_id:void 0,name:d,success:!!c.success,output:c.output,error:c.error})}return l}function r_(e){if(Cl(e)!=="tool_calls")return[];const r=df(e),o=r&&Array.isArray(r.tool_calls)?r.tool_calls:null;if(!o)return[];const l=[];for(const u of o){const c=ii(u);if(!c)continue;const d=typeof c.name=="string"?c.name.trim():"";if(!d)continue;const h=ii(c.args)||ii(c.arguments)||{};l.push({call_id:typeof c.call_id=="string"?c.call_id:void 0,name:d,args:h})}return l}function ff(e){const t=e.error;if(typeof t=="string")return t.trim();const r=ii(t);if(r){const o=typeof r.message=="string"?r.message.trim():"",l=typeof r.stack=="string"?r.stack.trim():"";return o||l||""}return""}function s_(e){if(!e)return"";const t=e.reasoning;if(typeof t=="string")return t.trim();const r=ii(t);return r&&typeof r.text=="string"?r.text.trim():""}function i_(e){const t=Cl(e),r=df(e),o=oh(e),l=(u,c)=>{const d=String(u||"").replace(/\s+/g," ").trim();return d?d.length<=c?d:`${d.slice(0,Math.max(0,c-1)).trimEnd()}…`:""};if(t==="llm_call"){const u=o==null?void 0:o.content,c=typeof u=="string"?u.replace(/\s+/g," ").trim():"",d=s_(o),h=Array.isArray(o==null?void 0:o.tool_calls)?o.tool_calls:null,g=!!(h&&h.length>0)?d||c:c||d;return l(g,220)}if(t==="tool_calls"){const u=o&&Array.isArray(o.results)?o.results:null;if(!u)return"";const c=u.filter(d=>{var h;return((h=ii(d))==null?void 0:h.success)===!1});return c.length>0?`${c.length} tool call(s) failed`:`${u.length} tool call(s) executed`}return t==="ask_user"&&r&&typeof r.prompt=="string"?String(r.prompt).trim():""}function Qd(e){const t=typeof e.status=="string"?e.status:"unknown";return t==="failed"||ff(e.step)?"failed":t}function Xx(e){const t=e.map(r=>Qd(r));return t.some(r=>r==="failed")?"failed":t.some(r=>r==="waiting")?"waiting":t.some(r=>r==="running")?"running":"completed"}function tm(e){return e.filter(t=>!t.hidden)}function Kx(e){const t=Cl(e),r=ff(e);return tm(t==="llm_call"?[{id:"system",label:"System"},{id:"user",label:"User"},{id:"tools",label:"Tools"},{id:"response",label:"Response"},{id:"reasoning",label:"Reasoning"},{id:"errors",label:"Errors",hidden:!r},{id:"raw",label:"Raw"}]:t==="tool_calls"?[{id:"tools",label:"Tools"},{id:"errors",label:"Errors",hidden:!r},{id:"raw",label:"Raw"}]:[{id:"errors",label:"Errors",hidden:!r},{id:"raw",label:"Raw"}])}function Jx(e){const t=Cl(e);return t==="llm_call"?"user":t==="tool_calls"?"tools":ff(e)?"errors":"raw"}function Qx(e){const t=new Map,r=df(e),o=r&&Array.isArray(r.tools)?r.tools:null;if(!o)return t;for(const l of o){const u=ii(l);if(!u)continue;const c=typeof u.name=="string"?u.name.trim():"";if(!c)continue;const h=(Array.isArray(u.parameters)?u.parameters:[]).map(_=>{const g=ii(_);return(g&&typeof g.id=="string"?g.id.trim():"")||""}).filter(Boolean);t.set(c,h)}return t}function o_(e,t,r){const o=Object.keys(t||{}),l=r&&r.length?r.filter(h=>o.includes(h)):[],u=o.filter(h=>!l.includes(h)).sort(),c=[...l,...u],d=c.slice(0,5).map(h=>{const _=t[h];return typeof _=="string"?`${h}=${JSON.stringify(Tm(_,42))}`:typeof _=="number"||typeof _=="boolean"?`${h}=${String(_)}`:_==null?`${h}=null`:`${h}=${Tm(JSON.stringify(_),42)}`});return`${e}(${d.join(", ")}${c.length>5?", …":""})`}function Zx(e){const t=e.ts?String(e.ts):"";if(!t)return"";try{const r=new Date(t);return Number.isFinite(r.getTime())?r.toLocaleTimeString():""}catch{return""}}function nm({item:e,label:t,toolDefs:r,defaultOpen:o=!1}){const l=e.step,u=Cl(l),c=Kx(l),d=Jx(l),[h,_]=m.useState(d),[g,x]=m.useState(!!o),v=df(l),b=oh(l),j=ff(l),S=Zx(e),M=e.nodeId?String(e.nodeId):"",A=e.runId?String(e.runId):"",D=u==="tool_calls"?r_(l):[],O=u==="tool_calls"?n_(l):[],L=D.map(me=>o_(me.name,me.args,r.get(me.name)||null)),ne=(()=>{if(h==="raw")return l;if(h==="errors")return j||null;if(u==="llm_call"){const me=v||{},$e=typeof me.system_prompt=="string"?String(me.system_prompt):"",Me=typeof me.prompt=="string"?String(me.prompt):"",ue=ii(b==null?void 0:b.metadata),I=ue?ii(ue._runtime_observability):null,G=I?ii(I.llm_generate_kwargs):null,H=G&&Array.isArray(G.messages)?G.messages:null,Z=ue?ii(ue._provider_request):null,N=Z?ii(Z.payload):null,z=N&&Array.isArray(N.messages)?N.messages:null,F=Array.isArray(me.messages)?me.messages:[],E=H||z||F,U=E.filter(re=>String((re==null?void 0:re.role)||"").trim()==="system"),te=E.filter(re=>String((re==null?void 0:re.role)||"").trim()==="user");if(h==="system"){const re=[],he=$e.trim(),Ne=!!he&&U.some(ce=>typeof(ce==null?void 0:ce.content)=="string"&&String(ce.content).trim()===he);return he&&!Ne&&re.push({role:"system",name:"system_prompt",content:$e}),re.push(...U),re}if(h==="user"){const re=[],he=Me.trim(),Ne=!!he&&te.some(ce=>typeof(ce==null?void 0:ce.content)=="string"&&String(ce.content).trim()===he);return he&&!Ne&&re.push({role:"user",name:"prompt",content:Me}),re.push(...te),re}if(h==="tools")return me.tools||[];if(h==="response"){const re=b==null?void 0:b.content;if(typeof re=="string"&&re.trim())return re;const he=b==null?void 0:b.output;if(he!==void 0)return he;const Ne=Array.isArray(b==null?void 0:b.tool_calls)?b.tool_calls:null;return Ne&&Ne.length?{tool_calls:Ne}:b}if(h==="reasoning")return s_(b)||null}return u==="tool_calls"&&h==="tools"?{tool_calls:D,tool_signatures:L,results:O}:l})(),X=i_(l),J=Qd(e),ge=J==="completed"?"OK":J==="failed"?"ERROR":J==="waiting"?"WAITING":J.toUpperCase();return s.jsxs("details",{className:`agent-trace-entry ${J}`,open:g,onToggle:me=>x(me.currentTarget.open),children:[s.jsxs("summary",{className:"agent-trace-summary",children:[s.jsx("span",{className:`agent-trace-status ${J}`,children:ge}),s.jsx("span",{className:"agent-cycle-stage",children:t}),s.jsx("span",{className:"agent-trace-kind",children:u}),S?s.jsx("span",{className:"agent-trace-node",children:S}):null,M?s.jsx("span",{className:"agent-trace-node",children:M}):null,A?s.jsx("span",{className:"agent-trace-run",children:A}):null]}),X?s.jsx("div",{className:"agent-trace-preview",children:X}):null,s.jsxs("div",{className:"agent-trace-body",children:[s.jsx("div",{className:"agent-trace-tabs",children:c.map(me=>s.jsx("button",{type:"button",className:`agent-trace-tab ${me.id===h?"active":""}`,onClick:()=>_(me.id),children:me.label},me.id))}),s.jsx(e_,{value:ne})]})]})}function ev({acts:e}){const t=e.flatMap(u=>n_(u.step)),r=t.filter(u=>u.success===!1),o=r.length?`${r.length} error(s)`:t.length?`${t.length} tool result(s)`:"(none)",l=r.length?"failed":"completed";return s.jsxs("details",{className:`agent-trace-entry ${l}`,open:!1,children:[s.jsxs("summary",{className:"agent-trace-summary",children:[s.jsx("span",{className:`agent-trace-status ${l}`,children:r.length?"ERROR":"OK"}),s.jsx("span",{className:"agent-cycle-stage",children:"observe"}),s.jsx("span",{className:"agent-trace-kind",children:"OBSERVATIONS"}),s.jsx("span",{className:"agent-trace-preview-inline",children:o})]}),s.jsx("div",{className:"agent-observe-body",children:t.length===0?s.jsx("div",{className:"agent-observe-empty",children:"(no tool results)"}):s.jsx("div",{className:"agent-observe-results",children:t.map((u,c)=>{const d=u.success?"completed":"failed",h=u.success?"OK":"ERROR",_=u.success?u.output:u.error??u.output;return s.jsxs("details",{className:`agent-observe-result ${d}`,open:!1,children:[s.jsxs("summary",{className:"agent-observe-summary",children:[s.jsx("span",{className:`agent-trace-status ${d}`,children:h}),s.jsx("span",{className:"agent-observe-name",children:u.name}),u.call_id?s.jsx("span",{className:"agent-observe-callid",children:u.call_id}):null]}),s.jsx(e_,{value:_})]},`${u.name}:${u.call_id||""}:${c}`)})})})]})}function tv({items:e,subRunId:t,title:r,subtitle:o,onOpenSubRun:l,defaultOpenLatest:u=!0}){const c=m.useMemo(()=>{const x=Array.isArray(e)?e.slice():[];return x.sort((v,b)=>{const j=v.ts?new Date(v.ts).getTime():NaN,S=b.ts?new Date(b.ts).getTime():NaN;return Number.isFinite(j)&&Number.isFinite(S)?j-S:0}),x},[e]),d=m.useMemo(()=>{const x=[];let v=null,b=0;for(const j of c){const S=Cl(j.step);if(S==="llm_call"){b+=1,v={id:`cycle:${j.runId}:${b}:${j.ts||""}`,index:b,items:[j],think:j,acts:[],others:[],status:Qd(j),ts:j.ts},x.push(v);continue}v||(b+=1,v={id:`cycle:${j.runId}:${b}:${j.ts||""}`,index:b,items:[],think:null,acts:[],others:[],status:Qd(j),ts:j.ts},x.push(v)),v.items.push(j),S==="tool_calls"?v.acts.push(j):v.others.push(j),v.status=Xx(v.items)}return x},[c]),h=typeof r=="string"&&r.trim()?r.trim():"Agent calls",_=typeof o=="string"&&o.trim()?o.trim():"Live per-effect trace (LLM/tool calls).",g=typeof t=="string"?t.trim():"";return s.jsxs("div",{className:"agent-trace-panel",children:[s.jsxs("div",{className:"agent-trace-header",children:[s.jsx("div",{className:"agent-trace-title",children:h}),s.jsxs("div",{className:"agent-trace-subtitle",children:[_,g?s.jsxs("span",{className:"agent-trace-subrun",children:[" ","sub_run_id: ",g,s.jsx("button",{type:"button",className:"agent-trace-copy",onClick:x=>{x.stopPropagation(),Vx(g)},title:`Copy sub_run_id: ${g}`,"aria-label":"Copy sub run id",children:"⧉"}),l?s.jsx("button",{type:"button",className:"agent-trace-open",onClick:x=>{x.stopPropagation(),l()},title:"Open sub-run",children:"Open"}):null]}):null]})]}),c.length===0?s.jsx("div",{className:"agent-trace-empty",children:"No trace entries yet."}):s.jsxs("div",{className:"agent-cycle-list",children:[s.jsxs("div",{className:"agent-cycle-meta",children:[d.length," cycle(s)"]}),d.map(x=>{const v=x.status,b=v==="completed"?"OK":v==="failed"?"ERROR":v==="waiting"?"WAITING":v.toUpperCase(),j=v==="completed"?"✓":v==="failed"?"✗":"",S=j?`${j} ${b}`:b,M=x.think?i_(x.think.step):"",A=x.think?Qx(x.think.step):new Map,O=x.acts.flatMap(Y=>r_(Y.step)).map(Y=>o_(Y.name,Y.args,A.get(Y.name)||null)),L=u&&x.index===d.length;return s.jsxs("details",{className:`agent-cycle ${v}`,open:L,children:[s.jsxs("summary",{className:"agent-cycle-summary",children:[s.jsx("span",{className:`agent-trace-status ${v}`,children:S}),s.jsx("span",{className:"agent-cycle-label",children:"cycle"}),s.jsxs("span",{className:"agent-cycle-index",children:["#",x.index]}),O.length?s.jsxs("span",{className:"agent-trace-badges",children:[O.slice(0,3).map(Y=>s.jsx("span",{className:"run-metric-badge metric-tool",title:Y,children:Tm(Y,62)},Y)),O.length>3?s.jsxs("span",{className:"run-metric-badge metric-tool",children:["+",O.length-3]}):null]}):null,s.jsx("span",{className:"agent-cycle-spacer"}),M?s.jsx("span",{className:"agent-cycle-preview",children:M}):null]}),s.jsxs("div",{className:"agent-cycle-body",children:[x.think?s.jsx(nm,{item:x.think,label:"think",toolDefs:A,defaultOpen:L}):null,x.acts.map(Y=>s.jsx(nm,{item:Y,label:"act",toolDefs:A},Y.id)),s.jsx(ev,{acts:x.acts}),x.others.length?s.jsxs("div",{className:"agent-cycle-others",children:[s.jsx("div",{className:"agent-cycle-others-title",children:"other"}),x.others.map(Y=>{const ne=L&&Cl(Y.step)==="answer_user";return s.jsx(nm,{item:Y,label:"other",toolDefs:A,defaultOpen:ne},Y.id)})]}):null]})]},x.id)})]})]})}function Fo(e){return typeof e=="string"?e.trim():""}function nv(e){var t;return Fo(e.run_id)||Fo((t=e.record)==null?void 0:t.run_id)}function Mm(e){return Fo(e==null?void 0:e.node_id)}const rv=new Set(["reason","act","observe","thought","think"]);function Am(e){const t=Fo(e);if(!t.includes("::"))return t;const r=t.split("::");if(r.length<2)return t;const o=String(r[r.length-1]||"").trim().toLowerCase();return rv.has(o)?r.slice(0,-1).join("::"):t}function a_(e){var t;return Fo((t=e==null?void 0:e.effect)==null?void 0:t.type)}function sv(e){return Fo(e==null?void 0:e.status)||"unknown"}function Np(e){return Fo(e==null?void 0:e.step_id)}function iv(e){return Fo(e==null?void 0:e.ended_at)||Fo(e==null?void 0:e.started_at)}function ov(e){const t=new Map,r=new Map;for(const l of e){const u=Am(Mm(l));if(!u)continue;const c=a_(l);c==="llm_call"?t.set(u,(t.get(u)||0)+1):c==="tool_calls"&&r.set(u,(r.get(u)||0)+1)}const o=l=>{let u="",c=-1;for(const[d,h]of l)h>c&&(u=d,c=h);return u};return o(t)||o(r)||""}function av(e,t){const r=Fo(t.run_id);if(!r)return{run_id:"",node_id:"",items:[]};const o=(Array.isArray(e)?e:[]).filter(b=>b&&b.record&&nv(b)===r).map(b=>({cursor:b.cursor,record:b.record})).sort((b,j)=>(b.cursor||0)-(j.cursor||0)),l=o.map(b=>b.record),u=Am(Fo(t.node_id)),c=u||ov(l),d=new Set(["llm_call","tool_calls","ask_user","answer_user"]);let h=o.filter(b=>d.has(a_(b.record)));u&&(h=h.filter(b=>Am(Mm(b.record))===u));const _=new Map,g=[];for(const b of h){const j=Np(b.record);if(!j){g.push(b);continue}const S=_.get(j);(!S||(b.cursor||0)>(S.cursor||0))&&_.set(j,b)}const v=[...g,...Array.from(_.values())].sort((b,j)=>(b.cursor||0)-(j.cursor||0)).map(b=>{const j=b.record,S=Mm(j)||"(node?)",M=iv(j),A=Np(j);return{id:`ledger:${r}:${b.cursor}:${A||""}`,runId:r,nodeId:S,ts:M||void 0,status:sv(j),step:j}});return{run_id:r,node_id:c,items:v}}function l_(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function c_(e){return Array.isArray(e)}function lv(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function cv(e){const t=String(e||"");if(t)try{await navigator.clipboard.writeText(t)}catch{const r=document.createElement("textarea");r.value=t,document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}}function Gc({kind:e,children:t}){return s.jsx("span",{className:`pc-json-token ${e}`,children:t})}function uv(e){return e===null?s.jsx(Gc,{kind:"null",children:"null"}):typeof e=="string"?s.jsx(Gc,{kind:"string",children:JSON.stringify(e)}):typeof e=="number"?s.jsx(Gc,{kind:"number",children:String(e)}):typeof e=="boolean"?s.jsx(Gc,{kind:"boolean",children:e?"true":"false"}):s.jsx(Gc,{kind:"string",children:JSON.stringify(String(e))})}function dv(e){return c_(e)?e.length===1?"1 item":`${e.length} items`:l_(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function u_(e){const{label:t,value:r,depth:o,collapseAfterDepth:l,trailingComma:u}=e,c=o*14,d=l_(r),h=c_(r),_=d||h,g=o<l,[x,v]=m.useState(g),b=t?s.jsxs(s.Fragment,{children:[s.jsx(Gc,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!_)return s.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:c},children:[b,uv(r),u?",":""]});const j=h?"[":"{",S=h?"]":"}",M=dv(r),A=x?`${j}`:`${j}…${S}${M?` (${M})`:""}`,D=h?r.map((O,L)=>({key:String(L),label:void 0,value:O})):Object.entries(r).map(([O,L])=>({key:O,label:O,value:L}));return s.jsxs("details",{className:"pc-json-viewer__details",open:x,onToggle:O=>v(O.currentTarget.open),children:[s.jsxs("summary",{className:"pc-json-viewer__summary",style:{paddingLeft:c},children:[b,s.jsx("span",{className:"pc-json-viewer__caret","aria-hidden":"true",children:x?"▾":"▸"}),s.jsx("span",{className:"pc-json-viewer__punct",children:A}),!x&&u?s.jsx("span",{className:"pc-json-viewer__punct",children:","}):null]}),x?s.jsx("div",{className:"pc-json-viewer__children",children:D.length===0?s.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:c},children:[s.jsx("span",{className:"pc-json-viewer__punct",children:S}),u?",":""]}):s.jsxs(s.Fragment,{children:[D.map((O,L)=>{const Y=L===D.length-1;return s.jsx(u_,{label:O.label,value:O.value,depth:o+1,collapseAfterDepth:l,trailingComma:!Y},`${o}:${t||"root"}:${O.key}`)}),s.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:c},children:[s.jsx("span",{className:"pc-json-viewer__punct",children:S}),u?",":""]})]})}):null]})}function fv(e){const{value:t,className:r,showCopy:o=!0}=e,l=Number.isFinite(e.collapseAfterDepth??NaN)?Number(e.collapseAfterDepth):3,u=m.useMemo(()=>lv(t),[t]),c=["pc-json-viewer",r].filter(Boolean).join(" ");return s.jsxs("div",{className:c,children:[o?s.jsx("div",{className:"pc-json-viewer__toolbar",children:s.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__copy",onClick:()=>void cv(u),children:"Copy"})}):null,s.jsx("div",{className:"pc-json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:s.jsx(u_,{value:t,depth:0,collapseAfterDepth:l,trailingComma:!1})})]})}function $d(e,t){const r=String(e??"");if(!t||!t.needles.length)return[r];const o=[],l=r.toLowerCase();let u=0;for(;u<r.length;){let c=-1,d="";for(let g=0;g<t.needlesLower.length;g++){const x=t.needlesLower[g];if(!x)continue;const v=l.indexOf(x,u);if(v===-1)continue;const b=t.needles[g]||"";b&&(c===-1||v<c||v===c&&b.length>d.length)&&(c=v,d=b)}if(c===-1||!d){o.push(r.slice(u));break}c>u&&o.push(r.slice(u,c));const h=t.hits===0&&t.id?t.id:void 0,_=r.slice(c,c+d.length);o.push(s.jsx("span",{id:h,className:t.className,children:_},`hl:${t.hits}`)),t.hits+=1,u=c+d.length}return o}function nc(e,t){const r=[],o=String(e??"");let l=0,u="";const c=()=>{if(u){for(const d of $d(u,t))r.push(d);u=""}};for(;l<o.length;){const d=o[l];if(d==="`"){const h=o.indexOf("`",l+1);if(h!==-1){c();const _=o.slice(l+1,h);r.push(s.jsx("code",{children:t?$d(_,t):_},`code:${l}`)),l=h+1;continue}}if(d==="*"&&o[l+1]==="*"){const h=o.indexOf("**",l+2);if(h!==-1){c();const _=o.slice(l+2,h);r.push(s.jsx("strong",{children:t?$d(_,t):_},`bold:${l}`)),l=h+2;continue}}if(d==="*"&&o[l+1]!=="*"){const h=o.indexOf("*",l+1);if(h!==-1){c();const _=o.slice(l+1,h);r.push(s.jsx("em",{children:t?$d(_,t):_},`em:${l}`)),l=h+1;continue}}u+=d,l+=1}return c(),r}function mv(e){return String(e??"").replace(/\r\n/g,`
46
+ `).replace(/\r/g,`
47
+ `).split(`
48
+ `)}function Cp(e){let t=String(e??"").trim();return t?(t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1)),t.split("|").map(r=>String(r??"").trim())):[]}function hv(e){let t=String(e??"").trim();if(!t)return!1;t.startsWith("|")&&(t=t.slice(1)),t.endsWith("|")&&(t=t.slice(0,-1));const r=t.split("|").map(o=>String(o??"").trim());return r.length<2?!1:r.every(o=>/^:?-{3,}:?$/.test(o))}function co({text:e,className:t,highlight:r,highlights:o,highlightClassName:l,highlightId:u}){const c=mv(e),d=[],h=[];Array.isArray(o)&&h.push(...o),typeof r=="string"&&r.trim()&&h.push(r);const _=Array.from(new Set(h.map(b=>String(b??"").trim()).filter(Boolean))).filter(b=>b.length>=4),g=_.length?{needles:_,needlesLower:_.map(b=>b.toLowerCase()),className:l||"pc-md_hl",id:u,hits:0}:null;let x=0;for(;x<c.length;){const b=String(c[x]??"");if(!b.trim()){x+=1;continue}const j=b.trim();if(j==="---"||j==="___"||j==="***"||/^(-{3,}|_{3,}|\*{3,})$/.test(j)){d.push(s.jsx("hr",{className:"pc-md_hr"},`hr:${x}`)),x+=1;continue}if(b.trim().startsWith("```")){const L=b.trim().replace(/```/g,"").trim(),Y=[];for(x+=1;x<c.length&&!String(c[x]??"").trim().startsWith("```");)Y.push(String(c[x]??"")),x+=1;x<c.length&&(x+=1);const ne=Y.join(`
49
+ `);d.push(s.jsx("pre",{className:"pc-md_pre",children:s.jsx("code",{className:L?`language-${L}`:void 0,children:ne})},`pre:${x}`));continue}const S=b.match(/^(#{1,3})\s+(.*)$/);if(S){const O=S[1].length,L=S[2]||"",Y=nc(L,g);O===1?d.push(s.jsx("h1",{children:Y},`h1:${x}`)):O===2?d.push(s.jsx("h2",{children:Y},`h2:${x}`)):d.push(s.jsx("h3",{children:Y},`h3:${x}`)),x+=1;continue}if(b.trimStart().startsWith(">")){const O=[];for(;x<c.length&&String(c[x]??"").trimStart().startsWith(">");){const Y=String(c[x]??"").trimStart();O.push(Y.replace(/^>\s?/,"")),x+=1}d.push(s.jsx("blockquote",{className:"pc-md_quote",children:O.map((L,Y)=>s.jsxs(Ee.Fragment,{children:[nc(L,g),Y<O.length-1?s.jsx("br",{}):null]},`q:${x}:${Y}`))},`quote:${x}`));continue}if(b.includes("|")&&x+1<c.length&&hv(String(c[x+1]??""))){const O=Cp(b),L=Math.max(1,O.length),Y=[];for(x+=2;x<c.length;){const ne=String(c[x]??"");if(!ne.trim()||!ne.includes("|"))break;const X=Cp(ne),J=[];for(let ge=0;ge<L;ge++)J.push(X[ge]??"");Y.push(J),x+=1}d.push(s.jsx("div",{className:"pc-md_table_wrap",children:s.jsxs("table",{className:"pc-md_table",children:[s.jsx("thead",{children:s.jsx("tr",{children:O.slice(0,L).map((ne,X)=>s.jsx("th",{children:nc(ne,g)},`th:${x}:${X}`))})}),s.jsx("tbody",{children:Y.map((ne,X)=>s.jsx("tr",{children:ne.map((J,ge)=>s.jsx("td",{children:nc(J,g)},`td:${x}:${X}:${ge}`))},`tr:${x}:${X}`))})]})},`table:${x}`));continue}const M=O=>/^\s*\d+\.\s+/.test(O);if(M(b)){const O=[];for(;x<c.length&&M(String(c[x]??""));){const L=String(c[x]??"");O.push(L.replace(/^\s*\d+\.\s+/,"")),x+=1}d.push(s.jsx("ol",{className:"pc-md_ol",children:O.map((L,Y)=>s.jsx("li",{children:nc(L,g)},`oli:${x}:${Y}`))},`ol:${x}`));continue}const A=O=>{const L=O.trimStart();return L.startsWith("- ")||L.startsWith("* ")};if(A(b)){const O=[];for(;x<c.length&&A(String(c[x]??""));){const L=String(c[x]??"").trimStart();O.push(L.slice(2)),x+=1}d.push(s.jsx("ul",{className:"pc-md_ul",children:O.map((L,Y)=>s.jsx("li",{children:nc(L,g)},`li:${x}:${Y}`))},`ul:${x}`));continue}const D=[];for(;x<c.length&&String(c[x]??"").trim();)D.push(String(c[x]??"")),x+=1;d.push(s.jsx("p",{className:"pc-md_p",children:D.map((O,L)=>s.jsxs(Ee.Fragment,{children:[nc(O,g),L<D.length-1?s.jsx("br",{}):null]},`pl:${x}:${L}`))},`p:${x}`))}const v=["pc-md",t].filter(Boolean).join(" ");return s.jsx("div",{className:v,children:d})}function d_(e){const t=String(e??"").trim();if(!t||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return null;try{return JSON.parse(t)}catch{return null}}function pv(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function gv(e){const t=String(e.role||"message").trim()||"message",r=String(e.title||"").trim(),o=String(e.ts||"").trim(),l=[t];return r&&l.push(r),o&&l.push(o),l.join(" · ")}function _v(e){return e.endsWith(`
50
+ `)?e:`${e}
51
+ `}function yv(e){return String(e||"").trimStart().startsWith("```")}function xv(e,t){const o=[`# ${String((t==null?void 0:t.heading)||"Chat").trim()||"Chat"}`,""];for(const l of e){const u=gv(l);o.push(`## ${u}`,"");const c=String(l.content||""),d=d_(c);d!==null&&!yv(c)?o.push("```json",pv(d).trimEnd(),"```",""):o.push(_v(c).trimEnd(),""),o.push("---","")}for(;o.length&&!o[o.length-1].trim();)o.pop();return o.length&&o[o.length-1]==="---"&&o.pop(),`${o.join(`
52
+ `).trimEnd()}
53
+ `}async function js(e){const t=String(e||"");if(!t)return!1;try{return await navigator.clipboard.writeText(t),!0}catch{try{const r=document.createElement("textarea");return r.value=t,r.style.position="fixed",r.style.left="-9999px",document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r),!0}catch{return!1}}}function vv(e){const t=String(e.filename||"").trim()||"export.txt",r=String(e.text||""),o=String(e.mime),l=new Blob([r],{type:o}),u=URL.createObjectURL(l),c=document.createElement("a");c.href=u,c.download=t,document.body.appendChild(c),c.click(),c.remove(),window.setTimeout(()=>URL.revokeObjectURL(u),1e3)}function wv(e){const t=String(e.text??""),r=d_(t),o=["pc-chat-content",e.className].filter(Boolean).join(" ");return r!==null?s.jsx("div",{className:o,children:s.jsx(fv,{value:r,collapseAfterDepth:e.jsonCollapseAfterDepth})}):e.renderMarkdown?s.jsx("div",{className:o,children:e.renderMarkdown(t)}):s.jsx("div",{className:o,children:s.jsx(co,{text:t})})}const qd=Ee.forwardRef(function(t,r){const o=typeof t.rows=="number"&&Number.isFinite(t.rows)?Math.max(1,Math.trunc(t.rows)):3,l=!!t.disabled,u=!!t.busy,c=!l&&!u&&!!String(t.value||"").trim();return s.jsxs("div",{className:["pc-composer",t.className].filter(Boolean).join(" "),children:[s.jsx("textarea",{ref:r,className:["pc-composer__textarea",t.textareaClassName].filter(Boolean).join(" "),value:t.value,onChange:d=>t.onChange(d.target.value),rows:o,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off",placeholder:t.placeholder||"",disabled:l,autoFocus:!!t.autoFocus,onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),t.onSubmit())}}),s.jsxs("div",{className:"pc-composer__row",children:[s.jsx("div",{className:"pc-composer__actions",children:t.actions}),s.jsx("button",{type:"button",className:t.sendButtonClassName||"pc-btn",disabled:!c,onClick:()=>t.onSubmit(),children:u?t.busyLabel||"Thinking…":t.sendLabel||"Send"})]})]})}),f_=[{id:"dark",label:"Dark (Abstract)",group:"dark",swatches:["#1a1a2e","#16213e","#0f3460","#e94560","#60a5fa","#27ae60"]},{id:"catppuccin-mocha",label:"Catppuccin Mocha",group:"dark",swatches:["#1e1e2e","#181825","#313244","#cba6f7","#89b4fa","#a6e3a1"]},{id:"catppuccin-macchiato",label:"Catppuccin Macchiato",group:"dark",swatches:["#24273a","#1e2030","#363a4f","#c6a0f6","#8aadf4","#a6da95"]},{id:"catppuccin-frappe",label:"Catppuccin Frappe",group:"dark",swatches:["#303446","#292c3c","#414559","#ca9ee6","#8caaee","#a6d189"]},{id:"rose-pine",label:"Rose Pine",group:"dark",swatches:["#191724","#1f1d2e","#26233a","#c4a7e7","#31748f","#9ccfd8"]},{id:"rose-pine-moon",label:"Rose Pine Moon",group:"dark",swatches:["#232136","#2a273f","#393552","#c4a7e7","#3e8fb0","#9ccfd8"]},{id:"tokyo-night",label:"Tokyo Night",group:"dark",swatches:["#1a1b26","#24283b","#414868","#7aa2f7","#2ac3de","#9ece6a"]},{id:"nord",label:"Nord",group:"dark",swatches:["#2e3440","#3b4252","#434c5e","#88c0d0","#5e81ac","#a3be8c"]},{id:"one-dark",label:"One Dark",group:"dark",swatches:["#282c34","#21252b","#3a3f4b","#61afef","#c678dd","#98c379"]},{id:"dracula",label:"Dracula",group:"dark",swatches:["#282a36","#343746","#44475a","#ff79c6","#8be9fd","#50fa7b"]},{id:"monokai",label:"Monokai",group:"dark",swatches:["#272822","#2d2e27","#3e3d32","#66d9ef","#a1efe4","#a6e22e"]},{id:"gruvbox",label:"Gruvbox",group:"dark",swatches:["#282828","#3c3836","#504945","#fe8019","#83a598","#b8bb26"]},{id:"solarized-dark",label:"Solarized Dark",group:"dark",swatches:["#002b36","#073642","#0b4b5a","#268bd2","#2aa198","#859900"]},{id:"everforest-dark",label:"Everforest Dark",group:"dark",swatches:["#2b3339","#323c41","#3a464c","#a7c080","#7fbbb3","#a7c080"]},{id:"catppuccin-latte",label:"Catppuccin Latte",group:"light",swatches:["#eff1f5","#e6e9ef","#ccd0da","#8839ef","#1e66f5","#40a02b"]},{id:"rose-pine-dawn",label:"Rose Pine Dawn",group:"light",swatches:["#faf4ed","#fffaf3","#f2e9e1","#907aa9","#56949f","#286983"]},{id:"one-light",label:"One Light",group:"light",swatches:["#fafafa","#ffffff","#e5e5e6","#4078f2","#a626a4","#50a14f"]},{id:"everforest-light",label:"Everforest Light",group:"light",swatches:["#fdf6e3","#fffbef","#e8e0cc","#4f8f5a","#3a94c5","#4f8f5a"]},{id:"solarized-light",label:"Solarized Light",group:"light",swatches:["#fdf6e3","#eee8d5","#e3ddc9","#268bd2","#2aa198","#859900"]},{id:"light",label:"Light",group:"light",swatches:["#f7f7fb","#ffffff","#e6e8f0","#e94560","#2563eb","#16a34a"]}];f_.map(e=>({id:e.id,label:e.label}));function bv(e){return`theme-${String(e||"").trim()||"dark"}`}function Sv(e){try{const t=document.documentElement,r=Array.from(t.classList).filter(o=>o.startsWith("theme-"));for(const o of r)t.classList.remove(o);t.classList.add(bv(e))}catch{}}const zm=[{id:"sm",label:"Small",scale:.9},{id:"md",label:"Medium",scale:1},{id:"lg",label:"Large",scale:1.1},{id:"xl",label:"Extra Large",scale:1.2}],Rm=[{id:"compact",label:"Compact",density:.85},{id:"standard",label:"Standard",density:1},{id:"spacious",label:"Spacious",density:1.2}];function jv(e){const t=String(e).trim();return zm.find(r=>r.id===t)||zm[1]}function kv(e){const t=String(e).trim();return Rm.find(r=>r.id===t)||Rm[1]}function Nv(e){try{const t=document.documentElement,r=jv(e.font_scale||"md"),o=kv(e.header_density||"standard");t.style.setProperty("--font-scale",String(r.scale)),t.style.setProperty("--header-density",String(o.density))}catch{}}var Cv=Xg();function Fc(...e){return e.filter(Boolean).join(" ")}function eu({value:e,options:t,placeholder:r="Select…",disabled:o=!1,loading:l=!1,searchable:u=!0,searchPlaceholder:c="Search…",allowCustom:d=!1,clearable:h=!1,minPopoverWidth:_=240,variant:g="panel",className:x,triggerClassName:v,onChange:b,renderOption:j,renderValue:S}){const M=m.useRef(null),A=m.useRef(null),D=m.useRef(null),[O,L]=m.useState(!1),[Y,ne]=m.useState(""),[X,J]=m.useState(0),[ge,me]=m.useState("bottom"),[$e,Me]=m.useState({left:0,top:0,width:0}),ue=m.useMemo(()=>{const ce=String(e??"");return t.find(xe=>xe.value===ce)||null},[t,e]),I=m.useMemo(()=>(ue==null?void 0:ue.label)||String(e||"").trim()||"",[ue,e]),G=m.useMemo(()=>{const ce=Y.trim().toLowerCase();return ce?t.filter(xe=>xe.label.toLowerCase().includes(ce)||xe.value.toLowerCase().includes(ce)):t},[t,Y]),H=m.useMemo(()=>{if(!d)return null;const ce=Y.trim();return!ce||t.some(Pe=>Pe.value===ce)?null:{value:ce,label:`Use "${ce}"`}},[d,t,Y]),Z=m.useMemo(()=>H?[H,...G]:G,[H,G]),N=m.useCallback(()=>{const ce=M.current;if(!ce)return;const xe=ce.getBoundingClientRect(),Pe=Math.max(xe.width,_),oe=Math.max(8,Math.min(xe.left,window.innerWidth-Pe-8)),be=window.innerHeight-xe.bottom,Se=xe.top,Ue=be>=220||be>=Se?"bottom":"top";me(Ue);const De=Ue==="bottom"?xe.bottom+6:xe.top-6;Me({left:oe,top:De,width:Pe})},[_]),z=m.useCallback(()=>{L(!1),ne("")},[]);m.useEffect(()=>{if(!O)return;N();const ce=()=>N();return window.addEventListener("resize",ce),window.addEventListener("scroll",ce,!0),()=>{window.removeEventListener("resize",ce),window.removeEventListener("scroll",ce,!0)}},[O,N]),m.useEffect(()=>{if(!O)return;const ce=xe=>{var oe,be;const Pe=xe.target;Pe&&((oe=M.current)!=null&&oe.contains(Pe)||(be=A.current)!=null&&be.contains(Pe)||z())};return document.addEventListener("mousedown",ce,!0),()=>document.removeEventListener("mousedown",ce,!0)},[O,z]),m.useEffect(()=>{if(!O)return;const ce=Math.max(0,Z.findIndex(xe=>xe.value===e));J(ce===-1?0:ce),u&&setTimeout(()=>{var xe;return(xe=D.current)==null?void 0:xe.focus()},0)},[O,u,e,Z]);const F=ce=>{b(ce),z()},E=ce=>{o||(ce.key==="Enter"||ce.key===" "?(ce.preventDefault(),L(xe=>!xe)):ce.key==="ArrowDown"&&(ce.preventDefault(),L(!0)))},U=ce=>{if(ce.key==="Escape"){ce.preventDefault(),z();return}if(ce.key==="ArrowDown"){ce.preventDefault(),J(xe=>Math.min(xe+1,Math.max(0,Z.length-1)));return}if(ce.key==="ArrowUp"){ce.preventDefault(),J(xe=>Math.max(xe-1,0));return}if(ce.key==="Enter"){ce.preventDefault();const xe=Z[X];xe&&F(xe.value)}},te=!!String(e||"").trim(),re=te?I:r,he=s.jsx("span",{className:Fc("af-select-value",!te&&"af-select-value--placeholder"),children:l?"Loading…":re}),Ne=S?S(ue,String(e||"")):he;return s.jsxs("span",{className:Fc("af-select",g==="pin"?"af-select--pin":"af-select--panel",x),children:[s.jsxs("button",{ref:M,type:"button",className:Fc("af-select-trigger",v),disabled:o,onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>{ce.stopPropagation(),!o&&L(xe=>!xe)},onKeyDown:E,"aria-haspopup":"listbox","aria-expanded":O,children:[Ne,h&&te?s.jsx("span",{className:"af-select-clear",role:"button",tabIndex:-1,onMouseDown:ce=>{ce.preventDefault(),ce.stopPropagation()},onClick:ce=>{ce.preventDefault(),ce.stopPropagation(),b(""),z()},title:"Clear",children:"×"}):null,s.jsx("span",{className:Fc("af-select-caret",O&&"af-select-caret--open"),children:"▾"})]}),O?Cv.createPortal(s.jsxs("div",{ref:A,className:Fc("af-select-popover",ge==="top"&&"af-select-popover--top"),style:{position:"fixed",left:`${$e.left}px`,top:`${$e.top}px`,width:`${$e.width}px`},onMouseDown:ce=>ce.stopPropagation(),onClick:ce=>ce.stopPropagation(),onKeyDown:U,role:"listbox",tabIndex:-1,children:[u?s.jsx("div",{className:"af-select-search",children:s.jsx("input",{ref:D,className:"af-select-search-input",value:Y,onChange:ce=>ne(ce.target.value),placeholder:c,onKeyDown:U})}):null,s.jsx("div",{className:"af-select-options",children:Z.length===0?s.jsx("div",{className:"af-select-empty",children:"No results"}):Z.map((ce,xe)=>{var De;const Pe=ce.value===e,oe=xe===X,be=String(ce.group||"").trim(),Se=xe>0?String(((De=Z[xe-1])==null?void 0:De.group)||"").trim():"",Ue=!!be&&be!==Se;return s.jsxs(Ee.Fragment,{children:[Ue?s.jsx("div",{className:"af-select-group",children:be}):null,s.jsx("div",{className:Fc("af-select-option",Pe&&"af-select-option--selected",oe&&"af-select-option--highlighted"),onMouseEnter:()=>J(xe),onMouseDown:ct=>{ct.preventDefault(),ct.stopPropagation()},onClick:()=>F(ce.value),children:j?j(ce,{selected:Pe,highlighted:oe}):s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"af-select-option-label",children:ce.label}),Pe?s.jsx("span",{className:"af-select-check",children:"✓"}):null]})})]},ce.value)})})]}),document.body):null]})}function Ev(e){const t=new Set,r=[];for(const o of e||[]){if(!o||typeof o!="object")continue;const l=String(o.name||"").trim();!l||t.has(l)||(t.add(l),r.push({name:l,display_name:typeof o.display_name=="string"?o.display_name:void 0}))}return r.sort((o,l)=>o.name.localeCompare(l.name)),r}function $v(e){const t=new Set,r=[];for(const o of e||[]){const l=String(o||"").trim();!l||t.has(l)||(t.add(l),r.push(l))}return r.sort(),r}function Tv(e){const t=e.disabled===!0,r=e.layout||"stack",o=e.allowGatewayDefault!==!1,l=String(e.gatewayDefaultLabel||"(gateway default)"),u=String(e.providerLabel||"Provider"),c=String(e.modelLabel||"Model"),d=String(e.providerPlaceholder||"(select)"),h=String(e.modelPlaceholder||"(select)"),_=String(e.provider||"").trim(),g=String(e.model||"").trim(),x=Ev(e.providers),v=$v(e.models),b=t||!!e.loadingProviders,j=t||!!e.loadingModels,S=[...o?[{value:"",label:l}]:[],...x.map(A=>({value:A.name,label:A.display_name?`${A.display_name} (${A.name})`:A.name}))],M=[...o?[{value:"",label:l}]:[],...v.map(A=>({value:A,label:A}))];return s.jsxs("div",{className:e.className,style:r==="row"?{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"flex-start"}:{display:"flex",flexDirection:"column",gap:"10px"},children:[s.jsxs("div",{style:r==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[s.jsx("label",{children:u}),s.jsx(eu,{value:_,options:S,placeholder:o?l:d,disabled:b,loading:!!e.loadingProviders,searchable:!0,allowCustom:e.allowCustomProvider===!0,clearable:o,variant:"panel",triggerClassName:e.selectClassName,onChange:A=>e.onChange({provider:String(A||"").trim(),model:""})}),e.loadingProviders?s.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading providers…"}):null,e.providerError?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"12px",marginTop:"6px"},children:e.providerError}):null]}),s.jsxs("div",{style:r==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[s.jsx("label",{children:c}),s.jsx(eu,{value:g,options:M,placeholder:o?l:h,disabled:j,loading:!!e.loadingModels,searchable:!0,allowCustom:e.allowCustomModel===!0,clearable:o,variant:"panel",triggerClassName:e.selectClassName,onChange:A=>e.onChange({provider:_,model:String(A||"").trim()})}),e.loadingModels?s.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading models…"}):null,e.modelError?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"12px",marginTop:"6px"},children:e.modelError}):null]})]})}function Mv(e){return e==="light"?"Light":"Dark"}function Av(e){const t=e.themes&&e.themes.length?e.themes:f_,r=e.showSwatches!==!1,o=e.variant||"panel",l=m.useMemo(()=>{const c={};for(const d of t)c[d.id]=d;return c},[t]),u=m.useMemo(()=>t.map(c=>({value:c.id,label:c.label,group:Mv(c.group)})),[t]);return s.jsx(eu,{value:e.value,options:u,placeholder:e.placeholder||"Select theme…",disabled:e.disabled===!0,searchable:!0,allowCustom:!1,clearable:!1,variant:o,className:e.className,triggerClassName:e.triggerClassName,onChange:c=>e.onChange(String(c||"").trim()),renderValue:(c,d)=>{const h=String(d||"").trim(),_=l[h],g=(_==null?void 0:_.label)||h||e.placeholder||"Select theme…",x=(_==null?void 0:_.swatches)||null,v=!h;return s.jsxs("span",{className:"af-theme-value",children:[s.jsx("span",{className:`af-theme-label ${v?"af-theme-label--placeholder":""}`.trim(),children:g}),r&&x?s.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:x.map((b,j)=>s.jsx("span",{className:"af-theme-swatch",style:{background:b}},`${h}:${j}`))}):null]})},renderOption:(c,d)=>{const h=String(c.value||"").trim(),_=l[h],g=(_==null?void 0:_.swatches)||null;return s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"af-theme-option-label",children:c.label}),s.jsxs("span",{className:"af-theme-option-right",children:[r&&g?s.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:g.map((x,v)=>s.jsx("span",{className:"af-theme-swatch",style:{background:x}},`${h}:${v}`))}):null,d.selected?s.jsx("span",{className:"af-select-check",children:"✓"}):null]})]})}})}function zv(e){const t=e.scales&&e.scales.length?e.scales:zm,r=e.variant||"panel",o=m.useMemo(()=>t.map(l=>({value:l.id,label:l.label})),[t]);return s.jsx(eu,{value:e.value,options:o,placeholder:e.placeholder||"Font size…",disabled:e.disabled===!0,searchable:!1,allowCustom:!1,clearable:!1,variant:r,className:e.className,triggerClassName:e.triggerClassName,onChange:l=>e.onChange(String(l||"").trim())})}function Rv(e){const t=e.densities&&e.densities.length?e.densities:Rm,r=e.variant||"panel",o=m.useMemo(()=>t.map(l=>({value:l.id,label:l.label})),[t]);return s.jsx(eu,{value:e.value,options:o,placeholder:e.placeholder||"Header size…",disabled:e.disabled===!0,searchable:!1,allowCustom:!1,clearable:!1,variant:r,className:e.className,triggerClassName:e.triggerClassName,onChange:l=>e.onChange(String(l||"").trim())})}function Lv(e){switch(e){case"chat":return s.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H8l-5 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"});case"plus":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M12 5v14"}),s.jsx("path",{d:"M5 12h14"})]});case"history":return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:"12",cy:"12",r:"9"}),s.jsx("path",{d:"M12 7v5l3 3"})]});case"refresh":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M21 12a9 9 0 0 0-15.5-6.4L3 8"}),s.jsx("path",{d:"M3 3v5h5"}),s.jsx("path",{d:"M3 12a9 9 0 0 0 15.5 6.4L21 16"}),s.jsx("path",{d:"M21 21v-5h-5"})]});case"settings":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M4 6h16"}),s.jsx("circle",{cx:"8",cy:"6",r:"2"}),s.jsx("path",{d:"M4 12h16"}),s.jsx("circle",{cx:"16",cy:"12",r:"2"}),s.jsx("path",{d:"M4 18h16"}),s.jsx("circle",{cx:"10",cy:"18",r:"2"})]});case"user":return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:"12",cy:"8",r:"4"}),s.jsx("path",{d:"M4 21a8 8 0 0 1 16 0"})]});case"bot":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M12 2v3"}),s.jsx("rect",{x:"5",y:"6",width:"14",height:"14",rx:"3"}),s.jsx("circle",{cx:"9",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),s.jsx("circle",{cx:"15",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),s.jsx("path",{d:"M9 17h6"})]});case"paperclip":return s.jsx("path",{d:"M21.44 11.05l-9.19 9.19a5.5 5.5 0 0 1-7.78-7.78l9.19-9.19a3.5 3.5 0 0 1 4.95 4.95l-9.2 9.19a1.5 1.5 0 0 1-2.12-2.12l8.49-8.48"});case"mic":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3z"}),s.jsx("path",{d:"M19 11a7 7 0 0 1-14 0"}),s.jsx("path",{d:"M12 18v4"}),s.jsx("path",{d:"M8 22h8"})]});case"speaker":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),s.jsx("path",{d:"M15.5 8.5a5 5 0 0 1 0 7"}),s.jsx("path",{d:"M18 6a9 9 0 0 1 0 12"})]});case"pause":return s.jsxs(s.Fragment,{children:[s.jsx("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"}),s.jsx("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"})]});case"terminal":return s.jsxs(s.Fragment,{children:[s.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2",ry:"2"}),s.jsx("path",{d:"M7 9l3 3-3 3"}),s.jsx("path",{d:"M12 15h5"})]});case"edit":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M12 20h9"}),s.jsx("path",{d:"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z"})]});case"download":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),s.jsx("path",{d:"M7 10l5 5 5-5"}),s.jsx("path",{d:"M12 15V3"})]});case"loader":return s.jsx("path",{d:"M21 12a9 9 0 1 1-3.3-6.9"});case"info":return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M12 16v-4"}),s.jsx("circle",{cx:"12",cy:"8",r:"0.75",fill:"currentColor",stroke:"none"})]});case"warning":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M12 3l10 18H2L12 3z"}),s.jsx("path",{d:"M12 9v4"}),s.jsx("circle",{cx:"12",cy:"17",r:"0.75",fill:"currentColor",stroke:"none"})]});case"error":return s.jsxs(s.Fragment,{children:[s.jsx("circle",{cx:"12",cy:"12",r:"10"}),s.jsx("path",{d:"M15 9l-6 6"}),s.jsx("path",{d:"M9 9l6 6"})]});case"copy":return s.jsxs(s.Fragment,{children:[s.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),s.jsx("path",{d:"M5 15V5a2 2 0 0 1 2-2h10"})]});case"check":return s.jsx("path",{d:"M20 6L9 17l-5-5"});case"x":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M18 6L6 18"}),s.jsx("path",{d:"M6 6l12 12"})]});case"chevronDown":return s.jsx("path",{d:"M6 9l6 6 6-6"});case"chevronRight":return s.jsx("path",{d:"M9 18l6-6-6-6"});case"trash":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M3 6h18"}),s.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),s.jsx("path",{d:"M6 6l1 16h10l1-16"}),s.jsx("path",{d:"M10 11v6"}),s.jsx("path",{d:"M14 11v6"})]});case"send":return s.jsxs(s.Fragment,{children:[s.jsx("path",{d:"M22 2L11 13"}),s.jsx("path",{d:"M22 2L15 22l-4-9-9-4 20-7z"})]});default:return null}}function Gn({name:e,size:t=16,className:r,title:o,...l}){const u=o?void 0:!0;return s.jsxs("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,"aria-hidden":u,role:o?"img":"presentation",...l,children:[o?s.jsx("title",{children:o}):null,Lv(e)]})}function Pv(e){const t=String(e.role||"").trim().toLowerCase()||"system",r=String(e.kind||"").trim().toLowerCase(),o=String(e.level||"").trim().toLowerCase();return t==="system"&&r==="report_bug"?{label:String(e.title||"").trim()||"Bug report",icon:"warning",variant:"report_bug"}:t==="system"&&r==="report_feature"?{label:String(e.title||"").trim()||"Feature request",icon:"check",variant:"report_feature"}:t==="user"?{label:"You",icon:"user",variant:"user"}:t==="assistant"?{label:"Agent",icon:"bot",variant:"assistant"}:{label:String(e.title||"").trim()||(o==="error"?"Error":o==="warn"?"Warning":"System"),icon:o==="error"?"error":o==="warn"?"warning":"info",variant:o==="error"?"error":o==="warn"?"warn":"status"}}function Iv(e){var j;const t=e.message,r=m.useMemo(()=>Pv(t),[t.kind,t.level,t.role,t.title]),o=String(t.ts||"").trim(),l=o?new Date(o).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",[u,c]=m.useState("idle"),d=typeof e.onSpeakToggle=="function"&&r.variant==="assistant"&&!!String(t.content||"").trim(),h=d&&((j=e.getSpeakState)==null?void 0:j.call(e,t))||"idle",_=h==="loading"?"loader":h==="playing"?"pause":"speaker",g=h==="loading"?"Generating audio…":h==="playing"?"Pause":h==="paused"?"Resume":"Speak (TTS)",x=e.showCopy!==!1,v=Array.isArray(e.attachments)?e.attachments:[],b=Array.isArray(e.stats)?e.stats:[];return s.jsxs("div",{className:["pc-chat-item",`pc-chat-item--${r.variant}`,e.className].filter(Boolean).join(" "),children:[s.jsxs("div",{className:"pc-chat-header",children:[s.jsx("div",{className:"pc-chat-avatar","aria-hidden":"true",children:s.jsx(Gn,{name:r.icon,size:14})}),s.jsx("span",{className:"pc-chat-role",children:r.label}),s.jsx("span",{className:"pc-chat-header-spacer"}),l?s.jsx("span",{className:"pc-chat-time",children:l}):null,s.jsxs("div",{className:"pc-chat-header-actions",children:[d?s.jsx("button",{className:"pc-chat-icon-btn",type:"button","aria-label":g,title:g,onClick:()=>{var S;return(S=e.onSpeakToggle)==null?void 0:S.call(e,t)},children:s.jsx(Gn,{name:_,size:22})}):null,x?s.jsx("button",{className:`pc-chat-icon-btn ${u!=="idle"?`pc-chat-icon-btn--${u}`:""}`.trim(),type:"button","aria-label":"Copy message",title:u==="idle"?"Copy":u==="copied"?"Copied":"Copy failed",onClick:async()=>{const S=await js(String(t.content||""));c(S?"copied":"failed"),window.setTimeout(()=>c("idle"),900)},children:s.jsx(Gn,{name:"copy",size:22})}):null]})]}),s.jsx("div",{className:"pc-chat-body",children:s.jsx(wv,{text:String(t.content||""),renderMarkdown:e.renderMarkdown,jsonCollapseAfterDepth:e.jsonCollapseAfterDepth})}),v.length?s.jsx("div",{className:"pc-chat-attachments","aria-label":"Attachments",children:v.slice(0,24).map((S,M)=>{const A=String(S.label||"").trim()||"attachment",D=String(S.target||"").trim(),O=String(S.title||"").trim(),L=!!S.disabled||typeof S.onClick!="function";return s.jsxs("button",{type:"button",className:"pc-chat-attachment-chip",title:O||A,onClick:L?void 0:S.onClick,disabled:L,children:[s.jsx(Gn,{name:"paperclip",size:14}),D?s.jsx("span",{className:`pc-chat-attachment-target pc-chat-attachment-target--${D}`,children:D}):null,s.jsx("span",{className:"pc-chat-attachment-name",children:A})]},S.id||`${A}:${M}`)})}):null,b.length?s.jsx("div",{className:"pc-chat-stats","aria-label":"Stats",children:b.slice(0,12).map((S,M)=>{const A=String(S.label||"").trim();if(!A)return null;const D=String(S.title||"").trim(),O=typeof S.onClick=="function";return s.jsxs("button",{type:"button",className:["pc-chat-stat",O?"pc-chat-stat--clickable":""].filter(Boolean).join(" "),title:D||void 0,onClick:O?()=>{var L;return(L=S.onClick)==null?void 0:L.call(S)}:void 0,disabled:!O,children:[S.icon?s.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:S.icon}):null,s.jsx("span",{className:"pc-chat-stat-label",children:A})]},S.id||`${A}:${M}`)})}):null]})}function Ov(e,t){const r=Math.max(0,Math.trunc(t));return e.scrollHeight-e.scrollTop-e.clientHeight<=r}function Gd(e){const t=typeof e.autoScrollThresholdPx=="number"&&Number.isFinite(e.autoScrollThresholdPx)?e.autoScrollThresholdPx:120,r=e.autoScroll!==!1,o=m.useRef(null),l=m.useRef(null),[u,c]=m.useState(!0),d=m.useMemo(()=>Array.isArray(e.messages)?e.messages:[],[e.messages]);return m.useEffect(()=>{if(!r)return;const h=o.current;if(!h)return;const _=()=>{c(Ov(h,t))};return h.addEventListener("scroll",_,{passive:!0}),_(),()=>h.removeEventListener("scroll",_)},[r,t]),m.useEffect(()=>{var h;r&&u&&((h=l.current)==null||h.scrollIntoView({block:"end"}))},[r,u,d.length]),s.jsxs("div",{ref:o,className:["pc-chat-thread",e.className].filter(Boolean).join(" "),children:[d.length?null:e.empty||null,d.map((h,_)=>s.jsx(Iv,{message:h,...e.messageProps||{}},String(h.id||"")||String(h.ts||"")+":"+String(h.role||"")+":"+_)),s.jsx("div",{ref:l})]})}class Zd{constructor(t){this._maxSize=Zd._normalizeMaxSize(t),this._values=[]}get maxSize(){return this._maxSize}get size(){return this._values.length}static _normalizeMaxSize(t){const r=Number(t);return!Number.isFinite(r)||r<=0?1:Math.min(1e3,Math.floor(r))}setMaxSize(t){const r=Zd._normalizeMaxSize(t);this._maxSize=r,this._values.length>r&&(this._values=this._values.slice(this._values.length-r))}clear(){this._values=[]}push(t){const r=Number(t),o=Number.isFinite(r)?r:null;this._values.push(o),this._values.length>this._maxSize&&this._values.splice(0,this._values.length-this._maxSize)}values(){return this._values.slice()}last(){return this._values.length?this._values[this._values.length-1]:null}}function Fv(e){try{return new URL(String(e)),!0}catch{return!1}}function Dv({baseUrl:e,endpoint:t}){const r=String(t||"/api/gateway/host/metrics/gpu");return Fv(r)?r:e&&String(e).trim()?new URL(r,String(e)).toString():r}async function Bv({token:e,getToken:t}){if(typeof t=="function"){const r=await t();return r==null?"":String(r)}return e==null?"":String(e)}function Uv({token:e}){const t=String(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}function Wv(e){if(!e||typeof e!="object")return null;const t=Number(e.utilization_gpu_pct);if(Number.isFinite(t))return t;const r=e.gpus;if(Array.isArray(r)&&r.length){const o=r.map(u=>Number(u&&u.utilization_gpu_pct)).filter(u=>Number.isFinite(u));return o.length?o.reduce((u,c)=>u+c,0)/o.length:null}return null}async function Hv({baseUrl:e,endpoint:t,token:r,getToken:o,signal:l,fetchImpl:u}={}){const c=Dv({baseUrl:e,endpoint:t}),d=await Bv({token:r,getToken:o}),h=u||globalThis.fetch;if(typeof h!="function")return{ok:!1,status:0,error:"fetch_unavailable",payload:null};let _;try{_=await h(c,{method:"GET",headers:{Accept:"application/json",...Uv({token:d})},signal:l})}catch(x){return{ok:!1,status:0,error:"network_error",detail:x instanceof Error?x.message:String(x),payload:null}}let g=null;try{g=await _.json()}catch{g=null}return{ok:_.ok,status:_.status,error:_.ok?null:"http_error",payload:g}}const ju=Object.freeze({tickMs:1500,historySize:20,endpoint:"/api/gateway/host/metrics/gpu",baseUrl:"",mode:"full"});function Vv(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function Ep(e,t,r){return Number.isFinite(e)?Math.min(r,Math.max(t,e)):t}function $p(e,t){const r=Number(e);return Number.isFinite(r)?Math.floor(r):t}function rm(e,t=1){const r=Ep(Number(e)/100,0,1),o=Math.round(140-140*r),l=Ep(Number(t),0,1);return l>=1?`hsl(${o} 85% 55%)`:`hsl(${o} 85% 55% / ${l})`}function Tp(e){const t={...ju,...e||{}};return t.tickMs=Math.max(250,$p(t.tickMs,ju.tickMs)),t.historySize=Math.max(1,Math.min(200,$p(t.historySize,ju.historySize))),t.endpoint=String(t.endpoint||ju.endpoint),t.baseUrl=String(t.baseUrl||""),t.mode=String(t.mode||ju.mode).trim().toLowerCase(),t.mode!=="icon"&&(t.mode="full"),t}function qv(){return`
54
+ :host{display:inline-block;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";line-height:1}
55
+ .wrap{box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:var(--monitor-gpu-padding,8px 10px);border:1px solid var(--monitor-gpu-border,#2a2f3a);border-radius:var(--monitor-gpu-radius,10px);background:var(--monitor-gpu-bg,#0b1020);color:var(--monitor-gpu-fg,#e7eaf0);width:var(--monitor-gpu-width,180px)}
56
+ .wrap.icon{gap:var(--monitor-gpu-gap,4px);padding:var(--monitor-gpu-padding,4px);border-radius:var(--monitor-gpu-radius,999px);width:var(--monitor-gpu-width,30px);background:linear-gradient(180deg,rgba(255,255,255,0.08),rgba(255,255,255,0.02)),var(--monitor-gpu-bg,#0b1020);box-shadow:0 0 14px var(--monitor-gpu-accent-glow, rgba(76,195,255,0.18))}
57
+ .wrap.icon .top{display:none}
58
+ .wrap.icon .bars{height:var(--monitor-gpu-bars-height,18px)}
59
+ .top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
60
+ .label{font-size:var(--monitor-gpu-font-size,var(--font-size-sm,12px));opacity:.9}
61
+ .value{font-variant-numeric:tabular-nums;font-size:var(--monitor-gpu-font-size,var(--font-size-sm,12px));opacity:.95}
62
+ .bars{display:flex;align-items:flex-end;gap:2px;height:var(--monitor-gpu-bars-height,34px);overflow:hidden}
63
+ .bar{flex:1;min-width:0;border-radius:2px;background:var(--monitor-gpu-bar,#4cc3ff);height:2px;opacity:.9;transition:height .25s ease, background .25s ease, opacity .25s ease}
64
+ .bar.missing{background:var(--monitor-gpu-bar-missing,#62708a);opacity:.35}
65
+ .bar.error{background:var(--monitor-gpu-bar-error,#ff6b6b);opacity:.7}
66
+ .muted{opacity:.6}
67
+ `}class Gv{constructor(t,r={}){if(!t||typeof t!="object")throw new TypeError("target element is required");this._target=t,this._opts=Tp(r),this._buffer=new Zd(this._opts.historySize),this._timer=null,this._timer_gen=0,this._running=!1,this._abort=null,this._resumeTimer=null,this._mounted=!1,this._els=null,this._token=r.token,this._getToken=r.getToken,this._stoppedForAuth=!1}get options(){return{...this._opts}}set token(t){this._token=t,String(this._token||"").trim()&&this._stoppedForAuth&&(this._stoppedForAuth=!1,this.start())}get token(){return this._token}set getToken(t){this._getToken=t}get getToken(){return this._getToken}mount(){if(this._mounted)return;if(typeof document>"u")throw new Error("MonitorGpuWidget requires a browser DOM");const t=this._target;t.textContent="";const r=document.createElement("style");r.textContent=qv();const o=document.createElement("div");o.className=this._opts.mode==="icon"?"wrap icon":"wrap";const l=document.createElement("div");l.className="top";const u=document.createElement("div");u.className="label",u.textContent="GPU";const c=document.createElement("div");c.className="value muted",c.textContent="—",l.appendChild(u),l.appendChild(c);const d=document.createElement("div");d.className="bars",o.appendChild(l),o.appendChild(d),t.appendChild(r),t.appendChild(o),this._els={wrap:o,value:c,bars:d},this._mounted=!0,this._rebuildBars(),this._render()}start(){this.mount(),!this._running&&(this._running=!0,this._timer_gen+=1,this._poll_loop(this._timer_gen))}stop(){this._running=!1,this._timer_gen+=1,this._timer&&(clearTimeout(this._timer),this._timer=null),this._resumeTimer&&(clearTimeout(this._resumeTimer),this._resumeTimer=null),this._abort&&(this._abort.abort(),this._abort=null)}destroy(){this.stop(),this._target&&this._mounted&&(this._target.textContent=""),this._mounted=!1,this._els=null}setOptions(t){const r=Tp({...this._opts,...t||{}}),o=r.historySize!==this._opts.historySize,l=r.tickMs!==this._opts.tickMs,u=r.mode!==this._opts.mode;this._opts=r,u&&this._mounted&&this._els&&this._els.wrap&&(this._els.wrap.className=r.mode==="icon"?"wrap icon":"wrap"),o&&(this._buffer.setMaxSize(r.historySize),this._mounted&&this._rebuildBars()),l&&this._running?(this.stop(),this.start()):this._mounted&&this._render()}push(t){this._buffer.push(t),this._render()}_rebuildBars(){if(!this._els)return;const{bars:t}=this._els;t.textContent="";for(let r=0;r<this._opts.historySize;r+=1){const o=document.createElement("div");o.className="bar missing",o.style.height="2px",t.appendChild(o)}}_render({error:t=!1}={}){if(!this._els)return;const{wrap:r,value:o,bars:l}=this._els,u=this._buffer.values(),c=this._buffer.last(),d=Number.isFinite(c)?Math.max(0,Math.min(100,c)):null;d==null?(o.textContent=t?"N/A":"—",o.classList.add("muted")):(o.textContent=`${d.toFixed(0)}%`,o.classList.remove("muted")),r&&(r.title=d==null?"GPU —":`GPU ${d.toFixed(0)}%`,d==null?(r.style.removeProperty("--monitor-gpu-accent"),r.style.removeProperty("--monitor-gpu-accent-glow")):(r.style.setProperty("--monitor-gpu-accent",rm(d,.95)),r.style.setProperty("--monitor-gpu-accent-glow",rm(d,.35))));const h=Array.from(l.children),_=Math.max(0,h.length-u.length),g=Math.max(2,l&&typeof l.clientHeight=="number"&&l.clientHeight>0?l.clientHeight:34);for(let x=0;x<h.length;x+=1){const v=h[x],b=x-_,j=b>=0?u[b]:null,S=Number.isFinite(j)?j:null,M=S==null?0:Vv(S/100),A=Math.max(2,Math.min(g,Math.round(M*g)));v.style.height=`${A}px`,v.style.background=S==null?"":rm(S),v.className="bar",S==null&&v.classList.add("missing"),t&&v.classList.add("error")}}async _tick(){const t=String(this._token||"").trim(),r=this._getToken,o=!!t||typeof r=="function";this._abort&&this._abort.abort(),this._abort=new AbortController;const l=await Hv({baseUrl:this._opts.baseUrl,endpoint:this._opts.endpoint,token:t,getToken:r,signal:this._abort.signal}),u=l&&l.payload,c=u&&typeof u=="object"?u.supported!==!1:!0,d=Wv(u);if(!l.ok){if(this._buffer.push(null),this._render({error:!0}),l.status===401||l.status===403){const h=String(this._token||"").trim(),_=typeof this._getToken=="function";if(!o&&(!!h||_))return;this._stoppedForAuth=!0,this.stop()}else l.status===429&&(this.stop(),this._resumeTimer=setTimeout(()=>{this._resumeTimer=null,this._mounted&&this.start()},3e4));return}if(!c||d==null){this._buffer.push(null),this._render();return}this._buffer.push(d),this._render()}async _poll_loop(t){!this._running||t!==this._timer_gen||(await this._tick(),!(!this._running||t!==this._timer_gen)&&(this._timer=setTimeout(()=>{this._timer=null,this._poll_loop(t)},this._opts.tickMs)))}}function Yv(e="monitor-gpu"){if(typeof globalThis>"u"||typeof globalThis.customElements>"u"||globalThis.customElements.get(e))return;const t=globalThis.HTMLElement||class{};class r extends t{static get observedAttributes(){return["tick-ms","history-size","endpoint","base-url","mode"]}constructor(){super(),this._shadow=this.attachShadow?this.attachShadow({mode:"open"}):null;const l=this._shadow||this;this._controller=new Gv(l,{}),this._upgradeProperty("token"),this._upgradeProperty("getToken"),this._upgradeProperty("mode")}_upgradeProperty(l){if(!Object.prototype.hasOwnProperty.call(this,l))return;const u=this[l];try{delete this[l]}catch{}this[l]=u}connectedCallback(){this._controller.setOptions(this._readAttrs());const l=()=>{this.isConnected&&this._controller.start()};typeof queueMicrotask=="function"?queueMicrotask(l):Promise.resolve().then(l)}disconnectedCallback(){this._controller.destroy()}attributeChangedCallback(){this._controller.setOptions(this._readAttrs())}_readAttrs(){const l=this.getAttribute("tick-ms"),u=this.getAttribute("history-size"),c=this.getAttribute("endpoint"),d=this.getAttribute("base-url"),h=this.getAttribute("mode");return{...l!=null?{tickMs:l}:{},...u!=null?{historySize:u}:{},...c!=null?{endpoint:c}:{},...d!=null?{baseUrl:d}:{},...h!=null?{mode:h}:{}}}set token(l){this._controller.token=l}get token(){return this._controller.token}set getToken(l){this._controller.getToken=l}get getToken(){return this._controller.getToken}set tickMs(l){this._controller.setOptions({tickMs:l})}get tickMs(){return this._controller.options.tickMs}set historySize(l){this._controller.setOptions({historySize:l})}get historySize(){return this._controller.options.historySize}set endpoint(l){this._controller.setOptions({endpoint:l})}get endpoint(){return this._controller.options.endpoint}set baseUrl(l){this._controller.setOptions({baseUrl:l})}get baseUrl(){return this._controller.options.baseUrl}set mode(l){this._controller.setOptions({mode:l})}get mode(){return this._controller.options.mode}}globalThis.customElements.define(e,r)}class Xv{constructor(){bu(this,"_buffer","");bu(this,"_current",{data_lines:[]})}push(t,r){for(this._buffer+=t;;){const o=this._buffer.indexOf(`
68
+ `);if(o===-1)return;const l=this._buffer.slice(0,o);this._buffer=this._buffer.slice(o+1);const u=l.endsWith("\r")?l.slice(0,-1):l;if(u.startsWith(":"))continue;if(u===""){if(this._current.data_lines.length>0||this._current.event||this._current.id){const _={id:this._current.id,event:this._current.event,data:this._current.data_lines.join(`
69
+ `)};r(_)}this._current={data_lines:[]};continue}const c=u.indexOf(":"),d=c===-1?u:u.slice(0,c),h=c===-1?"":u.slice(c+1).trimStart();if(d==="id"){this._current.id=h;continue}if(d==="event"){this._current.event=h;continue}if(d==="data"){this._current.data_lines.push(h);continue}}}}function ht(e,t){const r=(e||"").trim().replace(/\/+$/,"");return r?`${r}${t}`:t}function pt(e){const t=(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}async function Lt(e){try{const t=await e.text();return t!=null&&t.trim()?t.trim():`${e.status}`}catch{return`${e.status}`}}class Kv{constructor(t){bu(this,"_cfg");this._cfg={...t,base_url:(t.base_url||"").trim()}}async start_run(t,r,o){const l=String((o==null?void 0:o.bundle_id)||"").trim(),u=(o==null?void 0:o.session_id)===null||(o==null?void 0:o.session_id)===void 0?"":String(o.session_id||"").trim(),c=String(t||"").trim(),d={input_data:r||{}};l&&(d.bundle_id=l),c&&(d.flow_id=c),u&&(d.session_id=u);const h=await fetch(ht(this._cfg.base_url,"/api/gateway/runs/start"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!h.ok)throw new Error(`start_run failed: ${h.status}`);const _=await h.json(),g=_==null?void 0:_.run_id;if(typeof g!="string"||!g)throw new Error("start_run: missing run_id");return g}async schedule_run(t){const r=String((t==null?void 0:t.bundle_id)||"").trim(),o=String((t==null?void 0:t.flow_id)||"").trim();if(!r)throw new Error("schedule_run: bundle_id is required");if(!o)throw new Error("schedule_run: flow_id is required");const l={bundle_id:r,flow_id:o,input_data:(t==null?void 0:t.input_data)||{}},u=(t==null?void 0:t.start_at)===null||(t==null?void 0:t.start_at)===void 0?"":String(t.start_at||"").trim();u&&(l.start_at=u);const c=(t==null?void 0:t.interval)===null||(t==null?void 0:t.interval)===void 0?"":String(t.interval||"").trim();c&&(l.interval=c),typeof(t==null?void 0:t.repeat_count)=="number"&&Number.isFinite(t.repeat_count)&&(l.repeat_count=Number(t.repeat_count));const d=(t==null?void 0:t.repeat_until)===null||(t==null?void 0:t.repeat_until)===void 0?"":String(t.repeat_until||"").trim();d&&(l.repeat_until=d),typeof(t==null?void 0:t.share_context)=="boolean"&&(l.share_context=!!t.share_context);const h=(t==null?void 0:t.session_id)===null||(t==null?void 0:t.session_id)===void 0?"":String(t.session_id||"").trim();h&&(l.session_id=h);const _=await fetch(ht(this._cfg.base_url,"/api/gateway/runs/schedule"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!_.ok)throw new Error(`schedule_run failed: ${_.status}`);const g=await _.json(),x=g==null?void 0:g.run_id;if(typeof x!="string"||!x)throw new Error("schedule_run: missing run_id");return x}async get_run(t){const r=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}`),{headers:{...pt(this._cfg.auth_token)}});if(!r.ok)throw new Error(`get_run failed: ${await Lt(r)}`);return await r.json()}async list_runs(t){const r=typeof(t==null?void 0:t.limit)=="number"?t.limit:50,o=String((t==null?void 0:t.status)||"").trim(),l=String((t==null?void 0:t.workflow_id)||"").trim(),u=String((t==null?void 0:t.session_id)||"").trim(),c=(t==null?void 0:t.root_only)===!0,d=new URLSearchParams;d.set("limit",String(r)),o&&d.set("status",o),l&&d.set("workflow_id",l),u&&d.set("session_id",u),c&&d.set("root_only","true");const h=ht(this._cfg.base_url,`/api/gateway/runs?${d.toString()}`),_=await fetch(h,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`list_runs failed: ${await Lt(_)}`);return await _.json()}async list_processes(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/processes"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_processes failed: ${await Lt(t)}`);return await t.json()}async list_process_env_vars(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/processes/env"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_process_env_vars failed: ${await Lt(t)}`);return await t.json()}async update_process_env_vars(t){const r={},o=t!=null&&t.set&&typeof t.set=="object"?t.set:{},l=Array.isArray(t==null?void 0:t.unset)?t==null?void 0:t.unset:[];o&&Object.keys(o).length&&(r.set=o),l&&l.length&&(r.unset=l);const u=await fetch(ht(this._cfg.base_url,"/api/gateway/processes/env"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!u.ok)throw new Error(`update_process_env_vars failed: ${await Lt(u)}`);return await u.json()}async start_process(t){const r=String(t||"").trim(),o=await fetch(ht(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/start`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`start_process failed: ${await Lt(o)}`);return await o.json()}async stop_process(t){const r=String(t||"").trim(),o=await fetch(ht(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/stop`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`stop_process failed: ${await Lt(o)}`);return await o.json()}async restart_process(t){const r=String(t||"").trim(),o=await fetch(ht(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/restart`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`restart_process failed: ${await Lt(o)}`);return await o.json()}async redeploy_process(t){const r=String(t||"").trim(),o=await fetch(ht(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/redeploy`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`redeploy_process failed: ${await Lt(o)}`);return await o.json()}async process_log_tail(t,r){const o=String(t||"").trim(),l=typeof(r==null?void 0:r.max_bytes)=="number"?Math.max(1024,Math.min(4e5,Math.floor(r.max_bytes))):8e4,u=ht(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(o)}/logs/tail?max_bytes=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`process_log_tail failed: ${await Lt(c)}`);return await c.json()}async get_run_input_data(t){const r=String(t||"").trim();if(!r)throw new Error("get_run_input_data: run_id is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(r)}/input_data`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_run_input_data failed: ${await Lt(o)}`);return await o.json()}async list_run_artifacts(t,r){const o=String(t||"").trim();if(!o)throw new Error("list_run_artifacts: run_id is required");const l=typeof(r==null?void 0:r.limit)=="number"?r.limit:200,u=ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/artifacts?limit=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`list_run_artifacts failed: ${await Lt(c)}`);return await c.json()}async download_run_artifact_content(t,r){const o=String(t||"").trim(),l=String(r||"").trim();if(!o)throw new Error("download_run_artifact_content: run_id is required");if(!l)throw new Error("download_run_artifact_content: artifact_id is required");const u=ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/artifacts/${encodeURIComponent(l)}/content`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`download_run_artifact_content failed: ${await Lt(c)}`);return await c.blob()}async get_ledger(t,r){const o=Number((r==null?void 0:r.after)||0),l=Number((r==null?void 0:r.limit)||0),u=ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger?after=${encodeURIComponent(String(o))}&limit=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`get_ledger failed: ${c.status}`);const d=await c.json(),h=Array.isArray(d==null?void 0:d.items)?d.items:[],_=typeof(d==null?void 0:d.next_after)=="number"?d.next_after:o;return{items:h,next_after:_}}async get_ledger_batch(t){const r=Array.isArray(t==null?void 0:t.runs)?t.runs:[],o=Number((t==null?void 0:t.limit)||0),l=await fetch(ht(this._cfg.base_url,"/api/gateway/runs/ledger/batch"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify({runs:r,limit:o})});if(!l.ok)throw new Error(`get_ledger_batch failed: ${l.status}`);const u=await l.json(),d=(u&&typeof u=="object"?u:{}).runs;return{runs:d&&typeof d=="object"?d:{}}}async generate_run_summary(t,r){const o=String(t||"").trim();if(!o)throw new Error("generate_run_summary: run_id is required");const l={include_subruns:(r==null?void 0:r.include_subruns)!==!1},u=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";u&&(l.provider=u);const c=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";c&&(l.model=c);const d=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/summary`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!d.ok)throw new Error(`generate_run_summary failed: ${d.status}`);return await d.json()}async run_chat(t,r){const o=String(t||"").trim();if(!o)throw new Error("run_chat: run_id is required");const l={include_subruns:(r==null?void 0:r.include_subruns)!==!1,messages:Array.isArray(r==null?void 0:r.messages)?r.messages:[],persist:!!(r!=null&&r.persist)},u=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";u&&(l.provider=u);const c=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";c&&(l.model=c);const d=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!d.ok)throw new Error(`run_chat failed: ${d.status}`);return await d.json()}async audio_transcribe(t,r){const o=String(t||"").trim();if(!o)throw new Error("audio_transcribe: run_id is required");const l=r==null?void 0:r.audio_artifact;if(!l||typeof l!="object")throw new Error("audio_transcribe: audio_artifact is required");if(!String(l.$artifact||"").trim())throw new Error("audio_transcribe: audio_artifact.$artifact is required");const c={audio_artifact:l},d=String((r==null?void 0:r.language)||"").trim();d&&(c.language=d);const h=String((r==null?void 0:r.request_id)||"").trim();h&&(c.request_id=h);const _=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/audio/transcribe`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`audio_transcribe failed: ${await Lt(_)}`);const g=await _.json(),x=String((g==null?void 0:g.text)||"");return{ok:!!(g!=null&&g.ok),run_id:String((g==null?void 0:g.run_id)||""),request_id:String((g==null?void 0:g.request_id)||""),text:x,transcript_artifact:g==null?void 0:g.transcript_artifact}}async voice_tts(t,r){const o=String(t||"").trim();if(!o)throw new Error("voice_tts: run_id is required");const l=String((r==null?void 0:r.text)||"").trim();if(!l)throw new Error("voice_tts: text is required");const u={text:l},c=String((r==null?void 0:r.voice)||"").trim();c&&(u.voice=c);const d=String((r==null?void 0:r.format)||"").trim();d&&(u.format=d);const h=String((r==null?void 0:r.request_id)||"").trim();h&&(u.request_id=h);const _=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/voice/tts`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`voice_tts failed: ${await Lt(_)}`);const g=await _.json();return{ok:!!(g!=null&&g.ok),run_id:String((g==null?void 0:g.run_id)||""),request_id:String((g==null?void 0:g.request_id)||""),audio_artifact:g==null?void 0:g.audio_artifact}}async save_chat_thread(t,r){const o=String(t||"").trim();if(!o)throw new Error("save_chat_thread: run_id is required");const l={include_subruns:(r==null?void 0:r.include_subruns)!==!1,messages:Array.isArray(r==null?void 0:r.messages)?r.messages:[]},u=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";u&&(l.provider=u);const c=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";c&&(l.model=c);const d=typeof(r==null?void 0:r.title)=="string"?String(r.title).trim():"";d&&(l.title=d);const h=await fetch(ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat_threads`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!h.ok)throw new Error(`save_chat_thread failed: ${await Lt(h)}`);return await h.json()}async list_bundles(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/bundles"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_bundles failed: ${t.status}`);return await t.json()}async reload_bundles(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/bundles/reload"),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`reload_bundles failed: ${t.status}`);return await t.json()}async upload_bundle(t,r){const o=(r==null?void 0:r.overwrite)===!0,l=(r==null?void 0:r.reload)!==!1,u=new FormData;u.set("overwrite",o?"true":"false"),u.set("reload",l?"true":"false"),u.set("file",t,t.name||"upload.flow");const c=await fetch(ht(this._cfg.base_url,"/api/gateway/bundles/upload"),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:u});if(!c.ok)throw new Error(`upload_bundle failed: ${await Lt(c)}`);return await c.json()}async attachments_upload(t,r,o){const l=String(t||"").trim();if(!l)throw new Error("attachments_upload: session_id is required");if(!r)throw new Error("attachments_upload: file is required");const u=String((o==null?void 0:o.filename)||"").trim()||String((r==null?void 0:r.name)||"").trim()||"upload.bin",c=String((o==null?void 0:o.content_type)||"").trim()||String((r==null?void 0:r.type)||"").trim(),d=new FormData;d.append("session_id",l),d.append("file",r,u),d.append("filename",u),c&&d.append("content_type",c);const h=await fetch(ht(this._cfg.base_url,"/api/gateway/attachments/upload"),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:d});if(!h.ok)throw new Error(`attachments_upload failed: ${await Lt(h)}`);const _=await h.json(),g=_==null?void 0:_.attachment;if(!g||typeof g!="object")throw new Error("attachments_upload: missing attachment");if(!String(g.$artifact||"").trim())throw new Error("attachments_upload: missing attachment.$artifact");return g}async remove_bundle(t,r){const o=String(t||"").trim();if(!o)throw new Error("remove_bundle: bundle_id is required");const l=new URLSearchParams,u=String((r==null?void 0:r.bundle_version)||"").trim();u&&l.set("bundle_version",u),l.set("reload",(r==null?void 0:r.reload)===!1?"false":"true");const c=ht(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}?${l.toString()}`),d=await fetch(c,{method:"DELETE",headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`remove_bundle failed: ${await Lt(d)}`);return await d.json()}async discovery_tools(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/discovery/tools"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`discovery_tools failed: ${t.status}`);return await t.json()}async discovery_providers(t){const r=(t==null?void 0:t.include_models)===!0,o=ht(this._cfg.base_url,`/api/gateway/discovery/providers?include_models=${encodeURIComponent(String(r))}`),l=await fetch(o,{headers:{...pt(this._cfg.auth_token)}});if(!l.ok)throw new Error(`discovery_providers failed: ${l.status}`);return await l.json()}async discovery_provider_models(t){const r=String(t||"").trim();if(!r)throw new Error("discovery_provider_models: provider_name is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/discovery/providers/${encodeURIComponent(r)}/models`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`discovery_provider_models failed: ${o.status}`);return await o.json()}async get_bundle(t){const r=String(t||"").trim();if(!r)throw new Error("get_bundle: bundle_id is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(r)}`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_bundle failed: ${o.status}`);return await o.json()}async get_bundle_flow(t,r){const o=String(t||"").trim(),l=String(r||"").trim();if(!o)throw new Error("get_bundle_flow: bundle_id is required");if(!l)throw new Error("get_bundle_flow: flow_id is required");const u=await fetch(ht(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}/flows/${encodeURIComponent(l)}`),{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`get_bundle_flow failed: ${u.status}`);return await u.json()}async get_workflow_flow(t){const r=String(t||"").trim();if(!r)throw new Error("get_workflow_flow: workflow_id is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/workflows/${encodeURIComponent(r)}/flow`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_workflow_flow failed: ${o.status}`);return await o.json()}async submit_command(t){const r=await fetch(ht(this._cfg.base_url,"/api/gateway/commands"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(t)});if(!r.ok)throw new Error(`submit_command failed: ${r.status}`);return await r.json()}async kg_query(t){const r=String((t==null?void 0:t.scope)||"session").trim().toLowerCase(),o=String((t==null?void 0:t.order)||"desc").trim().toLowerCase(),l=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):500,u={scope:r,order:o,limit:l},c=String((t==null?void 0:t.run_id)||"").trim();c&&(u.run_id=c);const d=String((t==null?void 0:t.session_id)||"").trim();d&&(u.session_id=d);const h=String((t==null?void 0:t.owner_id)||"").trim();h&&(u.owner_id=h),t!=null&&t.all_owners&&(u.all_owners=!0);const _=String((t==null?void 0:t.subject)||"").trim();_&&(u.subject=_);const g=String((t==null?void 0:t.predicate)||"").trim();g&&(u.predicate=g);const x=String((t==null?void 0:t.object)||"").trim();x&&(u.object=x);const v=String((t==null?void 0:t.since)||"").trim();v&&(u.since=v);const b=String((t==null?void 0:t.until)||"").trim();b&&(u.until=b);const j=String((t==null?void 0:t.active_at)||"").trim();j&&(u.active_at=j);const S=String((t==null?void 0:t.query_text)||"").trim();S&&(u.query_text=S),typeof(t==null?void 0:t.min_score)=="number"&&Number.isFinite(t.min_score)&&(u.min_score=Number(t.min_score));const M=await fetch(ht(this._cfg.base_url,"/api/gateway/kg/query"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!M.ok)throw new Error(`kg_query failed: ${await Lt(M)}`);return await M.json()}async list_bug_reports(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/reports/bugs"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_bug_reports failed: ${await Lt(t)}`);return await t.json()}async list_feature_requests(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/reports/features"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_feature_requests failed: ${await Lt(t)}`);return await t.json()}async get_bug_report_content(t){const r=String(t||"").trim();if(!r)throw new Error("get_bug_report_content: filename is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/reports/bugs/${encodeURIComponent(r)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_bug_report_content failed: ${await Lt(o)}`);return await o.json()}async get_feature_request_content(t){const r=String(t||"").trim();if(!r)throw new Error("get_feature_request_content: filename is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/reports/features/${encodeURIComponent(r)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_feature_request_content failed: ${await Lt(o)}`);return await o.json()}async email_list_accounts(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/email/accounts"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`email_list_accounts failed: ${await Lt(t)}`);return await t.json()}async email_list_messages(t){const r=new URLSearchParams,o=String((t==null?void 0:t.account)||"").trim();o&&r.set("account",o);const l=String((t==null?void 0:t.mailbox)||"").trim();l&&r.set("mailbox",l);const u=String((t==null?void 0:t.since)||"").trim();u&&r.set("since",u);const c=String((t==null?void 0:t.status)||"").trim();c&&r.set("status",c);const d=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):20;r.set("limit",String(d));const h=ht(this._cfg.base_url,`/api/gateway/email/messages?${r.toString()}`),_=await fetch(h,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_list_messages failed: ${await Lt(_)}`);return await _.json()}async email_read_message(t,r){const o=String(t||"").trim();if(!o)throw new Error("email_read_message: uid is required");const l=new URLSearchParams,u=String((r==null?void 0:r.account)||"").trim();u&&l.set("account",u);const c=String((r==null?void 0:r.mailbox)||"").trim();c&&l.set("mailbox",c);const d=typeof(r==null?void 0:r.max_body_chars)=="number"&&Number.isFinite(r.max_body_chars)?Number(r.max_body_chars):2e4;l.set("max_body_chars",String(d));const h=ht(this._cfg.base_url,`/api/gateway/email/messages/${encodeURIComponent(o)}?${l.toString()}`),_=await fetch(h,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_read_message failed: ${await Lt(_)}`);return await _.json()}async email_send(t){if(!String((t==null?void 0:t.subject)||"").trim())throw new Error("email_send: subject is required");const o=await fetch(ht(this._cfg.base_url,"/api/gateway/email/send"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(t||{})});if(!o.ok)throw new Error(`email_send failed: ${await Lt(o)}`);return await o.json()}async triage_run(t){const r={};typeof(t==null?void 0:t.write_drafts)=="boolean"&&(r.write_drafts=!!t.write_drafts),typeof(t==null?void 0:t.enable_llm)=="boolean"&&(r.enable_llm=!!t.enable_llm);const o=await fetch(ht(this._cfg.base_url,"/api/gateway/triage/run"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!o.ok)throw new Error(`triage_run failed: ${await Lt(o)}`);return await o.json()}async list_triage_decisions(t){const r=new URLSearchParams,o=String((t==null?void 0:t.status)||"").trim();o&&r.set("status",o);const l=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):200;r.set("limit",String(l));const u=ht(this._cfg.base_url,`/api/gateway/triage/decisions?${r.toString()}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`list_triage_decisions failed: ${await Lt(c)}`);return await c.json()}async apply_triage_decision(t,r){const o=String(t||"").trim();if(!o)throw new Error("apply_triage_decision: decision_id is required");const l=String((r==null?void 0:r.action)||"").trim();if(!l)throw new Error("apply_triage_decision: action is required");const u={action:l};if(l==="defer"){const d=r==null?void 0:r.defer_days;typeof d=="number"&&Number.isFinite(d)&&d>0&&(u.defer_days=Number(d))}const c=await fetch(ht(this._cfg.base_url,`/api/gateway/triage/decisions/${encodeURIComponent(o)}/apply`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!c.ok)throw new Error(`apply_triage_decision failed: ${await Lt(c)}`);return await c.json()}async backlog_list(t){const r=String(t||"").trim();if(!r)throw new Error("backlog_list: kind is required");const o=await fetch(ht(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`backlog_list failed: ${await Lt(o)}`);return await o.json()}async backlog_content(t,r){const o=String(t||"").trim(),l=String(r||"").trim();if(!o)throw new Error("backlog_content: kind is required");if(!l)throw new Error("backlog_content: filename is required");const u=await fetch(ht(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(o)}/${encodeURIComponent(l)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`backlog_content failed: ${await Lt(u)}`);return await u.json()}async backlog_template(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/template"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_template failed: ${await Lt(t)}`);return await t.json()}async backlog_move(t){const r=String((t==null?void 0:t.from_kind)||"").trim(),o=String((t==null?void 0:t.to_kind)||"").trim(),l=String((t==null?void 0:t.filename)||"").trim();if(!r)throw new Error("backlog_move: from_kind is required");if(!o)throw new Error("backlog_move: to_kind is required");if(!l)throw new Error("backlog_move: filename is required");const u=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/move"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify({from_kind:r,to_kind:o,filename:l})});if(!u.ok)throw new Error(`backlog_move failed: ${await Lt(u)}`);return await u.json()}async backlog_update(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.filename)||"").trim();if(!r)throw new Error("backlog_update: kind is required");if(!o)throw new Error("backlog_update: filename is required");const u={content:String((t==null?void 0:t.content)??"")},c=String((t==null?void 0:t.expected_sha256)||"").trim();c&&(u.expected_sha256=c);const d=await fetch(ht(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/update`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!d.ok)throw new Error(`backlog_update failed: ${await Lt(d)}`);return await d.json()}async backlog_create(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.package)||"").trim(),l=String((t==null?void 0:t.title)||"").trim();if(!r)throw new Error("backlog_create: kind is required");if(!o)throw new Error("backlog_create: package is required");if(!l)throw new Error("backlog_create: title is required");const u={kind:r,package:o,title:l},c=String((t==null?void 0:t.task_type)||"").trim();c&&(u.task_type=c);const d=String((t==null?void 0:t.summary)||"").trim();d&&(u.summary=d);const h=(t==null?void 0:t.content)==null?"":String((t==null?void 0:t.content)??"");h.trim()&&(u.content=h);const _=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/create"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`backlog_create failed: ${await Lt(_)}`);return await _.json()}async backlog_execute(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.filename)||"").trim();if(!r)throw new Error("backlog_execute: kind is required");if(!o)throw new Error("backlog_execute: filename is required");const l=new URLSearchParams,u=String((t==null?void 0:t.execution_mode)||"").trim();u&&l.set("execution_mode",u);const c=ht(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/execute${l.toString()?`?${l.toString()}`:""}`),d=await fetch(c,{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_execute failed: ${await Lt(d)}`);return await d.json()}async backlog_execute_batch(t){const r=Array.isArray(t==null?void 0:t.items)?t.items:[];if(!r.length)throw new Error("backlog_execute_batch: items are required");const o={items:r.map(c=>({kind:String((c==null?void 0:c.kind)||"").trim(),filename:String((c==null?void 0:c.filename)||"").trim()}))},l=String((t==null?void 0:t.execution_mode)||"").trim();l&&(o.execution_mode=l);const u=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/execute_batch"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!u.ok)throw new Error(`backlog_execute_batch failed: ${await Lt(u)}`);return await u.json()}async backlog_merge(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.package)||"").trim(),l=String((t==null?void 0:t.title)||"").trim(),u=Array.isArray(t==null?void 0:t.items)?t.items:[];if(!r)throw new Error("backlog_merge: kind is required");if(!o)throw new Error("backlog_merge: package is required");if(!l)throw new Error("backlog_merge: title is required");if(u.length<2)throw new Error("backlog_merge: at least 2 items are required");const c={kind:r,package:o,title:l,items:u.map(g=>({kind:String((g==null?void 0:g.kind)||"").trim(),filename:String((g==null?void 0:g.filename)||"").trim()}))},d=String((t==null?void 0:t.task_type)||"").trim();d&&(c.task_type=d);const h=String((t==null?void 0:t.summary)||"").trim();h&&(c.summary=h);const _=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/merge"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`backlog_merge failed: ${await Lt(_)}`);return await _.json()}async backlog_exec_config(){const t=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/exec/config"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_exec_config failed: ${await Lt(t)}`);return await t.json()}async backlog_exec_requests(t){const r=new URLSearchParams,o=String((t==null?void 0:t.status)||"").trim();o&&r.set("status",o);const l=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):200;r.set("limit",String(l));const u=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests?${r.toString()}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_requests failed: ${await Lt(c)}`);return await c.json()}async backlog_exec_request(t,r){const o=String(t||"").trim();if(!o)throw new Error("backlog_exec_request: request_id is required");const l=new URLSearchParams;(r==null?void 0:r.include_prompt)===!0&&l.set("include_prompt","true");const u=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(o)}?${l.toString()}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_request failed: ${await Lt(c)}`);return await c.json()}async backlog_exec_feedback(t){const r=String((t==null?void 0:t.request_id)||"").trim();if(!r)throw new Error("backlog_exec_feedback: request_id is required");const o=String((t==null?void 0:t.feedback)??"");if(!o.trim())throw new Error("backlog_exec_feedback: feedback is required");const l={feedback:o},u=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/feedback`),c=await fetch(u,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!c.ok)throw new Error(`backlog_exec_feedback failed: ${await Lt(c)}`);return await c.json()}async backlog_exec_promote(t){const r=String((t==null?void 0:t.request_id)||"").trim();if(!r)throw new Error("backlog_exec_promote: request_id is required");const o={};(t==null?void 0:t.redeploy)===!0&&(o.redeploy=!0);const l=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/promote`),u=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!u.ok)throw new Error(`backlog_exec_promote failed: ${await Lt(u)}`);return await u.json()}async backlog_exec_deploy_uat(t){const r=String((t==null?void 0:t.request_id)||"").trim();if(!r)throw new Error("backlog_exec_deploy_uat: request_id is required");const o=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/uat/deploy`),l=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:"{}"});if(!l.ok)throw new Error(`backlog_exec_deploy_uat failed: ${await Lt(l)}`);return await l.json()}async backlog_exec_log_tail(t){const r=String((t==null?void 0:t.request_id)||"").trim();if(!r)throw new Error("backlog_exec_log_tail: request_id is required");const o=new URLSearchParams,l=String((t==null?void 0:t.name)||"").trim();l&&o.set("name",l);const u=typeof(t==null?void 0:t.max_bytes)=="number"&&Number.isFinite(t.max_bytes)?Number(t.max_bytes):0;u>0&&o.set("max_bytes",String(Math.floor(u)));const c=ht(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/logs/tail?${o.toString()}`),d=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_exec_log_tail failed: ${await Lt(d)}`);return await d.json()}async backlog_exec_active_items(t){const r=new URLSearchParams,o=String((t==null?void 0:t.status)||"").trim();o&&r.set("status",o);const l=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):600;r.set("limit",String(l));const u=ht(this._cfg.base_url,`/api/gateway/backlog/exec/active_items?${r.toString()}`),c=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_active_items failed: ${await Lt(c)}`);return await c.json()}async backlog_upload_attachment(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.filename)||"").trim(),l=t==null?void 0:t.file;if(!r)throw new Error("backlog_upload_attachment: kind is required");if(!o)throw new Error("backlog_upload_attachment: filename is required");if(!l)throw new Error("backlog_upload_attachment: file is required");const u=(t==null?void 0:t.overwrite)===!0,c=new FormData;c.set("overwrite",u?"true":"false"),c.set("file",l,l.name||"attachment");const d=await fetch(ht(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/attachments/upload`),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:c});if(!d.ok)throw new Error(`backlog_upload_attachment failed: ${await Lt(d)}`);return await d.json()}async backlog_assist(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.package)||"").trim(),l=String((t==null?void 0:t.title)||"").trim();if(!r)throw new Error("backlog_assist: kind is required");if(!o)throw new Error("backlog_assist: package is required");if(!l)throw new Error("backlog_assist: title is required");const u=Array.isArray(t==null?void 0:t.messages)?t.messages:[],c={kind:r,package:o,title:l,messages:u},d=String((t==null?void 0:t.summary)||"").trim();d&&(c.summary=d);const h=(t==null?void 0:t.draft_markdown)==null?"":String(t.draft_markdown??"");h.trim()&&(c.draft_markdown=h);const _=String((t==null?void 0:t.provider)||"").trim();_&&(c.provider=_);const g=String((t==null?void 0:t.model)||"").trim();g&&(c.model=g);const x=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/assist"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!x.ok)throw new Error(`backlog_assist failed: ${await Lt(x)}`);return await x.json()}async backlog_maintain(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.filename)||"").trim(),l=String((t==null?void 0:t.package)||"").trim(),u=String((t==null?void 0:t.title)||"").trim();if(!r)throw new Error("backlog_maintain: kind is required");if(!o)throw new Error("backlog_maintain: filename is required");if(!l)throw new Error("backlog_maintain: package is required");if(!u)throw new Error("backlog_maintain: title is required");const c=Array.isArray(t==null?void 0:t.messages)?t.messages:[],d={kind:r,filename:o,package:l,title:u,messages:c},h=String((t==null?void 0:t.summary)||"").trim();h&&(d.summary=h);const _=(t==null?void 0:t.draft_markdown)==null?"":String(t.draft_markdown??"");_.trim()&&(d.draft_markdown=_);const g=String((t==null?void 0:t.provider)||"").trim();g&&(d.provider=g);const x=String((t==null?void 0:t.model)||"").trim();x&&(d.model=x);const v=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/maintain"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!v.ok)throw new Error(`backlog_maintain failed: ${await Lt(v)}`);return await v.json()}async backlog_advisor(t){const o={messages:Array.isArray(t==null?void 0:t.messages)?t.messages:[]},l=String((t==null?void 0:t.provider)||"").trim();l&&(o.provider=l);const u=String((t==null?void 0:t.model)||"").trim();u&&(o.model=u);const c=String((t==null?void 0:t.agent)||"").trim();c&&(o.agent=c),(t==null?void 0:t.include_trace)===!0&&(o.include_trace=!0);const d=String((t==null?void 0:t.focus_kind)||"").trim();d&&(o.focus_kind=d);const h=String((t==null?void 0:t.focus_type)||"").trim();h&&(o.focus_type=h);const _=await fetch(ht(this._cfg.base_url,"/api/gateway/backlog/advisor"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!_.ok)throw new Error(`backlog_advisor failed: ${await Lt(_)}`);return await _.json()}async bug_report_create(t){const r=String((t==null?void 0:t.session_id)||"").trim();if(!r)throw new Error("bug_report_create: session_id is required");const o=String((t==null?void 0:t.description)||"").trim();if(!o)throw new Error("bug_report_create: description is required");const l={session_id:r,description:o},u=String((t==null?void 0:t.active_run_id)||"").trim();u&&(l.active_run_id=u);const c=String((t==null?void 0:t.workflow_id)||"").trim();c&&(l.workflow_id=c);const d=String((t==null?void 0:t.client)||"").trim();d&&(l.client=d);const h=String((t==null?void 0:t.client_version)||"").trim();h&&(l.client_version=h);const _=String((t==null?void 0:t.user_agent)||"").trim();_&&(l.user_agent=_);const g=String((t==null?void 0:t.url)||"").trim();g&&(l.url=g);const x=String((t==null?void 0:t.provider)||"").trim();x&&(l.provider=x);const v=String((t==null?void 0:t.model)||"").trim();v&&(l.model=v);const b=String((t==null?void 0:t.template)||"").trim();b&&(l.template=b);const j=t==null?void 0:t.context;j&&typeof j=="object"&&(l.context=j);const S=await fetch(ht(this._cfg.base_url,"/api/gateway/bugs/report"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!S.ok)throw new Error(`bug_report_create failed: ${await Lt(S)}`);return await S.json()}async feature_report_create(t){const r=String((t==null?void 0:t.session_id)||"").trim();if(!r)throw new Error("feature_report_create: session_id is required");const o=String((t==null?void 0:t.description)||"").trim();if(!o)throw new Error("feature_report_create: description is required");const l={session_id:r,description:o},u=String((t==null?void 0:t.active_run_id)||"").trim();u&&(l.active_run_id=u);const c=String((t==null?void 0:t.workflow_id)||"").trim();c&&(l.workflow_id=c);const d=String((t==null?void 0:t.client)||"").trim();d&&(l.client=d);const h=String((t==null?void 0:t.client_version)||"").trim();h&&(l.client_version=h);const _=String((t==null?void 0:t.user_agent)||"").trim();_&&(l.user_agent=_);const g=String((t==null?void 0:t.url)||"").trim();g&&(l.url=g);const x=String((t==null?void 0:t.provider)||"").trim();x&&(l.provider=x);const v=String((t==null?void 0:t.model)||"").trim();v&&(l.model=v);const b=String((t==null?void 0:t.template)||"").trim();b&&(l.template=b);const j=t==null?void 0:t.context;j&&typeof j=="object"&&(l.context=j);const S=await fetch(ht(this._cfg.base_url,"/api/gateway/features/report"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!S.ok)throw new Error(`feature_report_create failed: ${await Lt(S)}`);return await S.json()}async stream_ledger(t,r){const o=Number((r==null?void 0:r.after)||0),l=r.on_step,u=r.signal,c=ht(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger/stream?after=${encodeURIComponent(String(o))}`),d=await fetch(c,{headers:{Accept:"text/event-stream",...pt(this._cfg.auth_token)},signal:u});if(!d.ok)throw new Error(`stream_ledger failed: ${d.status}`);if(!d.body)throw new Error("stream_ledger: response body is missing");const h=d.body.getReader(),_=new TextDecoder("utf-8"),g=new Xv;for(;;){const{value:x,done:v}=await h.read();if(v)return;const b=_.decode(x,{stream:!0});g.push(b,j=>{if(!(j.event!=="step"||!j.data))try{const S=JSON.parse(j.data);S&&typeof S.cursor=="number"&&S.record&&l(S)}catch{}})}}}function Wr(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id_${Date.now()}_${Math.random().toString(16).slice(2)}`}function Jv(e){const t=(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}class Qv{constructor(t){bu(this,"_cfg");this._cfg={...t,url:(t.url||"").trim()}}async call_tool(t){const r=String((t==null?void 0:t.name)||"").trim(),o=String((t==null?void 0:t.call_id)||(t==null?void 0:t.id)||Wr()),l=t!=null&&t.arguments&&typeof t.arguments=="object"?t.arguments:{};if(!r)return{call_id:o,name:"",success:!1,output:null,error:"Missing tool name"};const u={jsonrpc:"2.0",id:Wr(),method:"tools/call",params:{name:r,arguments:l}},c=await fetch(this._cfg.url,{method:"POST",headers:{"Content-Type":"application/json",...Jv(this._cfg.auth_token)},body:JSON.stringify(u)});if(!c.ok)return{call_id:o,name:r,success:!1,output:null,error:`Worker HTTP ${c.status}`};const d=await c.json().catch(()=>null),h=d==null?void 0:d.result,_=!!(h!=null&&h.isError),x=(Array.isArray(h==null?void 0:h.content)?h.content:[]).find(b=>b&&b.type==="text"&&typeof b.text=="string"),v=(x==null?void 0:x.text)??"";return _?{call_id:o,name:r,success:!1,output:null,error:v||"Tool failed"}:{call_id:o,name:r,success:!0,output:v,error:null}}}function vl(e){var o;const t=e,r=(o=t==null?void 0:t.result)==null?void 0:o.wait;return!r||typeof r!="object"?null:r}function Td(e){var u,c,d;const t=e,r=t==null?void 0:t.effect;if(!r||typeof r!="object"||String(r.type||"")!=="emit_event")return null;const o=String(((u=r==null?void 0:r.payload)==null?void 0:u.name)||((c=r==null?void 0:r.payload)==null?void 0:c.event_name)||"").trim();if(!o)return null;const l=(d=r==null?void 0:r.payload)==null?void 0:d.payload;return{name:o,payload:l}}function m_(e){const t=e,r=t==null?void 0:t.details;if(!r||typeof r!="object")return[];const o=r==null?void 0:r.tool_calls;return Array.isArray(o)?o:[]}const Zv={execution:"#FFFFFF",string:"#FF00FF",number:"#00FF00",boolean:"#FF0000",object:"#00FFFF",array:"#FF8800",tools:"#FF8800",provider:"#00D2FF",model:"#9D4EDD",agent:"#4488FF",any:"#888888"},ew=[{type:"execution",label:"Execution",shape:"▷",description:"Controls flow order"},{type:"string",label:"String",shape:"●",description:"Text data"},{type:"number",label:"Number",shape:"●",description:"Integer or float"},{type:"boolean",label:"Boolean",shape:"◇",description:"True/False"},{type:"object",label:"Object",shape:"●",description:"JSON objects"},{type:"array",label:"Array",shape:"■",description:"Collections"},{type:"tools",label:"Tools",shape:"■",description:"Tool allowlist (string[])"},{type:"provider",label:"Provider",shape:"●",description:"LLM provider id/name (string-like)"},{type:"model",label:"Model",shape:"●",description:"LLM model id/name (string-like)"},{type:"agent",label:"Agent",shape:"⬢",description:"Agent reference"},{type:"any",label:"Any",shape:"●",description:"Accepts any type"}];function tw(){const[e,t]=m.useState(!0);return s.jsxs("div",{className:"pin-legend",children:[s.jsxs("button",{className:"pin-legend-toggle mono",type:"button",onClick:()=>t(r=>!r),title:"Pin Type Legend",children:[e?"?":"×"," Pin Types"]}),e?null:s.jsxs("div",{className:"pin-legend-content",children:[ew.map(r=>s.jsxs("div",{className:"pin-legend-row",children:[s.jsx("span",{className:"pin-legend-shape",style:{color:Zv[r.type]},children:r.shape}),s.jsx("span",{className:"pin-legend-label mono",children:r.label}),s.jsx("span",{className:"pin-legend-desc mono",children:r.description})]},r.type)),s.jsxs("div",{className:"pin-legend-rules mono",children:[s.jsx("strong",{children:"Connection Rules:"}),s.jsxs("ul",{children:[s.jsx("li",{children:"Execution connects to Execution only"}),s.jsx("li",{children:'"Any" type accepts all data types'}),s.jsx("li",{children:"Same types always compatible"}),s.jsx("li",{children:"Array and Object are interchangeable"}),s.jsx("li",{children:'"Tools" is compatible with Array (specialized string[])'})]})]})]})]})}function Ln(e){return typeof e=="string"?e:e==null?"":String(e)}function Mp(e,t){const r=Ln(e).trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function h_(e){const t=Ln(e==null?void 0:e.targetHandle),r=Ln(e==null?void 0:e.sourceHandle);return!!(t==="exec-in"||r==="exec-out"||t.includes("exec")||r.includes("exec"))}function p_(e){if(!e||typeof e!="object")return"";const t=e!=null&&e.data&&typeof e.data=="object"?e.data:{};return Ln((t==null?void 0:t.nodeType)||(e==null?void 0:e.type)||"").trim()}function g_(e){if(!e||typeof e!="object")return"";const t=e!=null&&e.data&&typeof e.data=="object"?e.data:{},r=(t==null?void 0:t.subflowId)||(t==null?void 0:t.flowId),o=Ln(r).trim();if(!o)return"";if(o.includes(":")){const l=o.split(":",2);if(l.length===2&&l[1])return l[1].trim()}return o}function nw(e){const t=Ln(e==null?void 0:e.entryNode).trim();if(t)return t;const r=Array.isArray(e==null?void 0:e.nodes)?e.nodes:[];for(const o of r)if(p_(o)==="on_flow_start"){const l=Ln(o==null?void 0:o.id).trim();if(l)return l}return""}function sm(e){const t=e!=null&&e.position&&typeof e.position=="object"?e.position:{},r=typeof t.x=="number"?t.x:0,o=typeof t.y=="number"?t.y:0;return{x:r,y:o}}function ku(e,t){const r=Ln(e).trim(),o=Ln(t).trim();return o?r?`${r}::${o}`:o:""}function rw(e){const t=e.root&&typeof e.root=="object"?e.root:{};if(!e.expand_subflows)return t;const r=[],o=[],l=new Set,u=(c,d,h,_)=>{if(!c||typeof c!="object"||r.length>=e.max_nodes||o.length>=e.max_edges)return;const g=Array.isArray(c.nodes)?c.nodes:[],x=Array.isArray(c.edges)?c.edges:[];for(const v of g){const b=Ln(v==null?void 0:v.id).trim();if(!b)continue;const j=ku(d,b);if(!j||l.has(j))continue;const S=sm(v),M={...v,id:j,position:{x:S.x+h.x,y:S.y+h.y}};if(r.push(M),l.add(j),r.length>=e.max_nodes)break}for(const v of x){if(!h_(v))continue;const b=Ln(v==null?void 0:v.source).trim(),j=Ln(v==null?void 0:v.target).trim();if(!b||!j)continue;const S=ku(d,b),M=ku(d,j);if(!S||!M)continue;const A=Ln(v==null?void 0:v.id).trim(),D=A?`${S}->${M}::${A}`:`${S}->${M}`;if(o.push({...v,id:D,source:S,target:M}),o.length>=e.max_edges)break}if(!(_>=e.max_depth))for(const v of g){if(r.length>=e.max_nodes||o.length>=e.max_edges)return;if(p_(v)!=="subflow")continue;const b=g_(v);if(!b)continue;const j=e.flow_by_id[b];if(!j||typeof j!="object")continue;const S=ku(d,Ln(v==null?void 0:v.id));if(!S)continue;const M=nw(j);if(!M)continue;const D=(Array.isArray(j.nodes)?j.nodes:[]).find(ge=>Ln(ge==null?void 0:ge.id).trim()===M)||null;if(!D)continue;const O=sm(v),L=sm(D),X={x:O.x+h.x+240-L.x,y:O.y+h.y+0-L.y},J=ku(S,M);o.push({id:`${S}=>${J}`,source:S,target:J,sourceHandle:"exec-out",targetHandle:"exec-in"}),u(j,S,X,_+1)}};return u(t,"",{x:0,y:0},0),{...t,id:Ln(t.id),nodes:r,edges:o}}function sw(e){const t=Ln(e).trim().toLowerCase();return t?!!(t.startsWith("literal")||t.includes("literal")||t==="concat"||t==="join"||t==="cast"||t==="parse_json"||t==="stringify_json"||t==="break_object"||t==="get_property"||t==="set_property"||t.includes("get_property")||t.includes("set_property")||t==="get_variable"||t==="set_variable"||t.includes("get_variable")||t.includes("set_variable")||t==="json_schema"):!1}function iw(e){const t=e.nodes.filter(u=>e.keep_id(u.id)),r=new Set(t.map(u=>u.id)),o={};for(const u of e.edges)o[u.source]||(o[u.source]=[]),o[u.source].push(u.target);const l=new Map;for(const u of t){const c=new Set,d=(o[u.id]||[]).slice();for(;d.length;){const h=d.pop();if(!h||c.has(h))continue;if(c.add(h),r.has(h)){const g=`${u.id}->${h}`;l.has(g)||l.set(g,{id:g,source:u.id,target:h});continue}const _=o[h]||[];for(const g of _)c.has(g)||d.push(g);if(l.size>=e.max_edges)break}if(l.size>=e.max_edges)break}return{nodes:t,edges:Array.from(l.values())}}function Ap(e,t){const l=Math.max(t.w*8,160),u=Math.max(t.h*8,120),c=Math.max(160,Math.min(l,e.w)),d=Math.max(120,Math.min(u,e.h));return{x:e.x,y:e.y,w:c,h:d}}function ow(e){const t=typeof e.now_ms=="number"?e.now_ms:Date.now(),r=e.flow,o=Ln(e.active_node_id),l=e.recent_nodes||{},u=e.visited_nodes||{},c=e.highlight_path===!0,d=typeof e.vertical_compact=="number"?Math.max(.4,Math.min(1,e.vertical_compact)):.78,{nodes:h,edges:_,bounds:g}=m.useMemo(()=>{const N=rw({root:r||{},flow_by_id:e.flow_by_id||{},expand_subflows:e.expand_subflows===!0,max_depth:3,max_nodes:700,max_edges:900}),z=Array.isArray(N.nodes)?N.nodes:[],F=Array.isArray(N.edges)?N.edges:[];let E=[];for(const Ae of z){const Re=Ln(Ae==null?void 0:Ae.id).trim();if(!Re)continue;const dt=Ae!=null&&Ae.position&&typeof Ae.position=="object"?Ae.position:{},jt=typeof dt.x=="number"?dt.x:0,Mt=typeof dt.y=="number"?dt.y:0,gt=Ae!=null&&Ae.data&&typeof Ae.data=="object"?Ae.data:{},_e=Ln((gt==null?void 0:gt.label)||(Ae==null?void 0:Ae.label)||Re)||Re,Kt=Ln((gt==null?void 0:gt.nodeType)||(Ae==null?void 0:Ae.type)||"unknown")||"unknown",Te=Ln((gt==null?void 0:gt.headerColor)||(Ae==null?void 0:Ae.headerColor)||"")||"",nt=gt!=null&&gt.eventConfig&&typeof gt.eventConfig=="object"?gt.eventConfig:null,se=nt&&typeof nt.schedule=="string"?Ln(nt.schedule).trim():"",Oe=nt&&typeof nt.recurrent=="boolean"?!!nt.recurrent:void 0,Jt=Kt==="subflow"?g_(Ae):"",vt=se||Oe!==void 0||Jt?{schedule:se||void 0,recurrent:Oe,subflow_id:Jt||void 0}:void 0;E.push({id:Re,x:jt,y:Mt,label:_e,type:Kt,color:Te,meta:vt})}const U={};for(const Ae of E)U[Ae.id]=Ae;let te=[];for(const Ae of F){if(!h_(Ae))continue;const Re=Ln(Ae==null?void 0:Ae.source).trim(),dt=Ln(Ae==null?void 0:Ae.target).trim();!Re||!dt||te.push({id:Ln((Ae==null?void 0:Ae.id)||`${Re}->${dt}`),source:Re,target:dt})}const re=new Set(E.map(Ae=>Ae.id));if(te=te.filter(Ae=>re.has(Ae.source)&&re.has(Ae.target)),e.simplify===!0){const Re=iw({nodes:E,edges:te,keep_id:dt=>{if(o&&dt===o)return!0;const jt=U[dt];if(!jt)return!1;const Mt=Ln(jt.type).trim().toLowerCase();return Mt==="on_flow_start"||Mt==="on_flow_end"||Mt==="subflow"?!0:!sw(Mt)},max_edges:900});E=Re.nodes,te=Re.edges}if(e.prefer_vertical===!0&&E.length>=2){const Ae=E.map(gt=>gt.x),Re=E.map(gt=>gt.y),dt=Math.max(...Ae)-Math.min(...Ae),jt=Math.max(...Re)-Math.min(...Re);dt>=jt&&(E=E.map(gt=>({...gt,x:gt.y,y:gt.x})));const Mt=Math.min(...E.map(gt=>gt.y));E=E.map(gt=>({...gt,y:Mt+(gt.y-Mt)*d}))}const he={};for(const Ae of E)he[Ae.id]=Ae;const Ne=160,ce=56,xe=Ne/2,Pe=ce/2;let oe=0,be=0,Se=0,Ue=0;E.length&&(oe=Math.min(...E.map(Ae=>Ae.x)),be=Math.min(...E.map(Ae=>Ae.y)),Se=Math.max(...E.map(Ae=>Ae.x+Ne)),Ue=Math.max(...E.map(Ae=>Ae.y+ce)));let De=0;if(te.length){const Ae=new Set(te.map(Re=>`${Re.source}->${Re.target}`));for(const Re of te){if(!Ae.has(`${Re.target}->${Re.source}`))continue;const dt=he[Re.source],jt=he[Re.target];if(!dt||!jt)continue;const Mt=dt.x+xe,gt=dt.y+Pe,_e=jt.x+xe,Kt=jt.y+Pe,Te=Math.max(1,Math.hypot(_e-Mt,Kt-gt)),nt=Math.max(28,Math.min(72,Te*.14)),se=Math.min(200,nt*3.5);se>De&&(De=se)}}const ct=60+De,ut={x:oe-ct,y:be-ct,w:Se-oe+ct*2,h:Ue-be+ct*2,node_w:Ne,node_h:ce};return{nodes:E,edges:te,bounds:ut}},[r,e.flow_by_id,e.expand_subflows,e.simplify,e.prefer_vertical,o,d]);if(!r)return s.jsx("div",{className:"graph_empty mono",children:"(no graph loaded)"});const x=m.useRef(null),[v,b]=m.useState(()=>({x:g.x,y:g.y,w:g.w,h:g.h})),j=m.useRef(v);j.current=v,m.useEffect(()=>{b({x:g.x,y:g.y,w:g.w,h:g.h})},[g.x,g.y,g.w,g.h]);const S=m.useRef(new Map),M=m.useRef(null),A=`${v.x} ${v.y} ${v.w} ${v.h}`,D={};for(const N of h)D[N.id]=N;const O=N=>{let z=Ln(N).trim();if(!z)return"";if(D[z])return z;for(;z.includes("::");)if(z=z.slice(0,Math.max(0,z.lastIndexOf("::"))),D[z])return z;return""},L=O(o),Y={};for(const[N,z]of Object.entries(l)){if(typeof z!="number")continue;const F=O(N);F&&(Y[F]=Math.max(Y[F]||0,z))}const ne={};if(c)for(const[N,z]of Object.entries(u)){if(typeof z!="number")continue;const F=O(N);F&&(ne[F]=typeof ne[F]=="number"?Math.min(ne[F],z):z)}const X=Ln(e.schedule_next_in).trim(),J=Ln(e.schedule_interval).trim(),ge=e.node_last_ms&&typeof e.node_last_ms=="object"?e.node_last_ms:{},me=N=>{try{const z=new Date(N),F=String(z.getHours()).padStart(2,"0"),E=String(z.getMinutes()).padStart(2,"0");return`${F}:${E}`}catch{return""}},$e=(N,z)=>{var te,re;const F=Ln((te=N.meta)==null?void 0:te.schedule).trim();if(!(((re=N.meta)==null?void 0:re.recurrent)===!0))return z&&X?`next ${X}`:F&&F.length<=12&&!F.includes("T")?`in ${F}`:"scheduled";const U=F||J;return U?z&&X?`${U} • next ${X}`:`every ${U}`:z&&X?`next ${X}`:"scheduled"},Me=N=>{var Ne;const z=Ln((Ne=N.meta)==null?void 0:Ne.subflow_id).trim(),F=z&&e.flow_by_id?e.flow_by_id[z]:null,U=Ln(F==null?void 0:F.name).trim()||z||N.label||N.id,te=typeof ge[N.id]=="number"?Number(ge[N.id]):null,re=te!==null?me(te):"",he=re?`last ${re}`:"subflow";return{label:U,sub:he}},ue=(N,z,F)=>{const E=F||j.current,U=x.current;if(!U)return{x:N,y:z};const te=U.getBoundingClientRect(),re=te.width>0?(N-te.left)/te.width:0,he=te.height>0?(z-te.top)/te.height:0;return{x:E.x+re*E.w,y:E.y+he*E.h}},I=(N,z,F)=>{const E=F||j.current,U=Math.max(.12,Math.min(8,z)),te=E.w*U,re=E.h*U,he=E.w>0?(N.x-E.x)/E.w:.5,Ne=E.h>0?(N.y-E.y)/E.h:.5,ce=N.x-he*te,xe=N.y-Ne*re;b(Ap({x:ce,y:xe,w:te,h:re},g))},G=(N,z,F)=>{const E=F||j.current,U=x.current;if(!U)return;const te=U.getBoundingClientRect(),re=.88,he=te.width>0?N/te.width*E.w*re:0,Ne=te.height>0?z/te.height*E.h*re:0;b(ce=>Ap({x:(F||ce).x-he,y:(F||ce).y-Ne,w:(F||ce).w,h:(F||ce).h},g))},H=m.useMemo(()=>{const N=new Set;for(const z of _)N.add(`${z.source}->${z.target}`);return N},[_]),Z=(N,z,F,E)=>{const U=g.node_w,te=g.node_h,re=Math.abs(F),he=Math.abs(E);if(re<1e-6&&he<1e-6)return{x:N,y:z};const Ne=re>1e-6?U/2/re:Number.POSITIVE_INFINITY,ce=he>1e-6?te/2/he:Number.POSITIVE_INFINITY,xe=Math.min(Ne,ce);return{x:N+F*xe,y:z+E*xe}};return s.jsxs("div",{className:"graph_wrap",children:[s.jsxs("div",{className:"graph_corner",children:[s.jsxs("div",{className:"graph_corner_buttons",children:[s.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>b({x:g.x,y:g.y,w:g.w,h:g.h}),title:"Recenter",children:"⤢"}),s.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>{const N=x.current;if(!N)return;const z=N.getBoundingClientRect(),F=ue(z.left+z.width/2,z.top+z.height/2);I(F,.84)},title:"Zoom in",children:"+"}),s.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>{const N=x.current;if(!N)return;const z=N.getBoundingClientRect(),F=ue(z.left+z.width/2,z.top+z.height/2);I(F,1.18)},title:"Zoom out",children:"−"})]}),s.jsx(tw,{})]}),s.jsxs("svg",{ref:x,className:"graph_svg",viewBox:A,role:"img","aria-label":"Workflow execution graph",onWheel:N=>{N.preventDefault();const z=ue(N.clientX,N.clientY),F=typeof N.deltaY=="number"?N.deltaY:0,E=typeof N.deltaMode=="number"?Number(N.deltaMode):0,U=E===1?F*24:E===2?F*800:F,te=45e-5*1.15*1.1;let re=Math.exp(U*te);re=Math.max(.86,Math.min(1.16,re)),I(z,re)},onPointerDown:N=>{var F,E;(E=(F=N.currentTarget).setPointerCapture)==null||E.call(F,N.pointerId),S.current.set(N.pointerId,{x:N.clientX,y:N.clientY});const z=Array.from(S.current.values());if(z.length===1)M.current={mode:"pan",start_view:j.current,start_client:{x:N.clientX,y:N.clientY},start_dist:0,anchor_svg:{x:0,y:0}};else if(z.length>=2){const U=z[0],te=z[1],re=U.x-te.x,he=U.y-te.y,Ne=Math.max(1,Math.hypot(re,he)),ce={x:(U.x+te.x)/2,y:(U.y+te.y)/2},xe=j.current;M.current={mode:"pinch",start_view:xe,start_client:ce,start_dist:Ne,anchor_svg:ue(ce.x,ce.y,xe)}}},onPointerMove:N=>{if(!S.current.has(N.pointerId))return;S.current.set(N.pointerId,{x:N.clientX,y:N.clientY});const z=M.current;if(!z)return;const F=Array.from(S.current.values());if(z.mode==="pan"&&F.length===1){const E=N.clientX-z.start_client.x,U=N.clientY-z.start_client.y;G(E,U,z.start_view)}else if(z.mode==="pinch"&&F.length>=2){const E=F[0],U=F[1],te=E.x-U.x,re=E.y-U.y,he=Math.max(1,Math.hypot(te,re)),Ne=z.start_dist/he;I(z.anchor_svg,Ne,z.start_view)}},onPointerUp:N=>{S.current.delete(N.pointerId),S.current.size===0&&(M.current=null)},onPointerCancel:N=>{S.current.delete(N.pointerId),S.current.size===0&&(M.current=null)},children:[s.jsxs("defs",{children:[s.jsx("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:s.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"rgba(148,163,184,0.55)"})}),s.jsxs("filter",{id:"glow",children:[s.jsx("feGaussianBlur",{stdDeviation:"3",result:"coloredBlur"}),s.jsxs("feMerge",{children:[s.jsx("feMergeNode",{in:"coloredBlur"}),s.jsx("feMergeNode",{in:"SourceGraphic"})]})]})]}),_.map(N=>{const z=D[N.source],F=D[N.target];if(!z||!F)return null;const E=z.x+g.node_w/2,U=z.y+g.node_h/2,te=F.x+g.node_w/2,re=F.y+g.node_h/2,he=te-E,Ne=re-U,ce=Z(E,U,he,Ne),xe=Z(te,re,-he,-Ne),Pe=N.source!==N.target&&H.has(`${N.target}->${N.source}`),oe=Math.max(1,Math.hypot(he,Ne)),be=-Ne/oe,Se=he/oe,Ue=String(N.source)<String(N.target)?1:-1,ct=Math.abs(he)>=Math.abs(Ne)?he>=0:Ne>=0,ut=!Pe||ct,Ae=Math.max(28,Math.min(72,oe*.14)),Re=Math.min(200,Ae*3.5),dt=Pe&&!ut?Re*Ue:0,jt=(ce.x+xe.x)/2+be*dt,Mt=(ce.y+xe.y)/2+Se*dt,gt=Pe&&!ut?`M ${ce.x} ${ce.y} Q ${jt} ${Mt} ${xe.x} ${xe.y}`:`M ${ce.x} ${ce.y} L ${xe.x} ${xe.y}`,_e=c&&ne&&ne[N.source]!==void 0&&ne[N.target]!==void 0;return s.jsx("path",{d:gt,className:`graph_edge ${_e?"visited":""}`,markerEnd:"url(#arrow)",fill:"none"},N.id)}),h.map(N=>{const F=(typeof Y[N.id]=="number"?Y[N.id]:0)>t,E=L&&N.id===L,U=c&&ne&&ne[N.id]!==void 0,te=`graph_node ${E?"active":F?"recent":""} ${U?"visited":""}`,re=N.color||"rgba(255,255,255,0.16)";let he=N.label||N.id,Ne=N.type;if(N.type==="on_schedule")Ne=$e(N,!!E);else if(N.type==="subflow"){const Pe=Me(N);he=Pe.label,Ne=Pe.sub}const ce=Mp(he,22),xe=Mp(Ne,22);return s.jsxs("g",{className:te,transform:`translate(${N.x}, ${N.y})`,children:[s.jsx("rect",{className:"graph_node_bg",width:g.node_w,height:g.node_h,rx:12,ry:12}),s.jsx("rect",{className:"graph_node_bar",width:g.node_w,height:6,rx:12,ry:12,fill:re}),s.jsx("text",{className:"graph_node_label",x:12,y:28,children:ce}),s.jsx("text",{className:"graph_node_type",x:12,y:46,children:xe}),N.type==="on_schedule"?s.jsx("text",{className:"graph_node_icon",x:g.node_w-18,y:18,children:"⏰"}):null]},N.id)})]})]})}function ah(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function __(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:ah(e)?`Object(${Object.keys(e).length})`:typeof e}function zp(e,t){const r={},o=(l,u,c)=>{if(Array.isArray(l)){c>=t.depth_threshold&&l.length>=t.min_items&&(r[u]=!0),l.forEach((d,h)=>o(d,`${u}[${h}]`,c+1));return}if(ah(l)){const d=Object.keys(l);c>=t.depth_threshold&&d.length>=t.min_items&&(r[u]=!0),d.forEach(h=>o(l[h],`${u}.${h}`,c+1))}};return o(e,"$",0),r}function y_(e){const t=typeof e.max_string_len=="number"?e.max_string_len:240,r=m.useMemo(()=>e.value,[e.value]),[o,l]=m.useState(()=>zp(r,{depth_threshold:2,min_items:6})),[u,c]=m.useState({});m.useEffect(()=>{l(zp(r,{depth_threshold:2,min_items:6})),c({})},[r]);const d=_=>l(g=>({...g,[_]:!g[_]})),h=_=>c(g=>({...g,[_]:!g[_]}));return s.jsx("div",{className:"json_viewer",children:lh({value:r,path:"$",depth:0,is_last:!0,collapsed:o,expanded_string:u,toggle_collapse:d,toggle_string:h,max_string_len:t})})}function lh(e){const t=e.value,r=e.prefix||null;return t===null?oo(e.depth,r,s.jsx("span",{className:"json_null",children:"null"}),e.is_last):t===void 0?oo(e.depth,r,s.jsx("span",{className:"json_null",children:"undefined"}),e.is_last):typeof t=="string"?oo(e.depth,r,aw(t,e),e.is_last):typeof t=="number"?oo(e.depth,r,s.jsx("span",{className:"json_number",children:String(t)}),e.is_last):typeof t=="boolean"?oo(e.depth,r,s.jsx("span",{className:"json_bool",children:String(t)}),e.is_last):Array.isArray(t)?lw(t,e):ah(t)?cw(t,e):oo(e.depth,r,s.jsx("span",{className:"json_string",children:JSON.stringify(String(t))}),e.is_last)}function aw(e,t){const r=t.expanded_string[t.path]===!0,o=e.length>t.max_string_len,l=o&&!r?e.slice(0,t.max_string_len):e,u=JSON.stringify(l);return s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"json_string",children:u}),o?s.jsxs(s.Fragment,{children:[r?null:s.jsx("span",{className:"json_ellipsis",children:"…"}),s.jsx("button",{className:"json_toggle json_toggle_inline",onClick:()=>t.toggle_string(t.path),title:r?"Collapse string":"Expand string",children:r?"−":"+"}),s.jsxs("span",{className:"json_hint",children:[e.length," chars"]})]}):null]})}function lw(e,t){const r=t.collapsed[t.path]===!0,o=e.length;return r?oo(t.depth,t.prefix,s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"json_toggle",onClick:()=>t.toggle_collapse(t.path),title:"Expand",children:"▶"}),s.jsx("span",{className:"json_brace",children:"["}),s.jsx("span",{className:"json_hint",children:__(e)}),s.jsx("span",{className:"json_brace",children:"]"}),s.jsxs("span",{className:"json_hint",children:[" ",o]})]}),t.is_last):s.jsxs(s.Fragment,{children:[oo(t.depth,t.prefix,s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"json_toggle",onClick:()=>t.toggle_collapse(t.path),title:"Collapse",children:"▼"}),s.jsx("span",{className:"json_brace",children:"["})]}),!0),e.map((l,u)=>lh({...t,value:l,path:`${t.path}[${u}]`,depth:t.depth+1,is_last:u===e.length-1,prefix:null})),oo(t.depth,null,s.jsx("span",{className:"json_brace",children:"]"}),t.is_last)]})}function cw(e,t){const r=t.collapsed[t.path]===!0,o=Object.keys(e),l=o.length;return r?oo(t.depth,t.prefix,s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"json_toggle",onClick:()=>t.toggle_collapse(t.path),title:"Expand",children:"▶"}),s.jsx("span",{className:"json_brace",children:"{"}),s.jsx("span",{className:"json_hint",children:__(e)}),s.jsx("span",{className:"json_brace",children:"}"}),s.jsxs("span",{className:"json_hint",children:[" ",l]})]}),t.is_last):s.jsxs(s.Fragment,{children:[oo(t.depth,t.prefix,s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"json_toggle",onClick:()=>t.toggle_collapse(t.path),title:"Collapse",children:"▼"}),s.jsx("span",{className:"json_brace",children:"{"})]}),!0),o.map((u,c)=>{const d=`${t.path}.${u}`,h=c===o.length-1,_=e[u],g=s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"json_key",children:JSON.stringify(u)}),s.jsx("span",{className:"json_colon",children:": "})]});return lh({...t,value:_,path:d,depth:t.depth+1,is_last:h,prefix:g})}),oo(t.depth,null,s.jsx("span",{className:"json_brace",children:"}"}),t.is_last)]})}function oo(e,t,r,o){return s.jsxs("div",{className:"json_line",style:{paddingLeft:`${e*14}px`},children:[t?s.jsx("span",{className:"json_prefix",children:t}):null,r,o?null:s.jsx("span",{className:"json_comma",children:","})]})}function uw(){var t;if(typeof window>"u")return!1;const e=navigator;return!!((t=e==null?void 0:e.mediaDevices)!=null&&t.getUserMedia)&&typeof window.MediaRecorder=="function"}function dw(){if(typeof window>"u")return!1;const e=window;return!!(e!=null&&e.AudioContext||e!=null&&e.webkitAudioContext)}function fw(){const e=window.MediaRecorder,t=o=>{var l;try{return!!((l=e==null?void 0:e.isTypeSupported)!=null&&l.call(e,o))}catch{return!1}},r=["audio/webm;codecs=opus","audio/webm","audio/mp4","audio/ogg;codecs=opus","audio/ogg"];for(const o of r)if(t(o))return o;return""}async function mw(e,t){var l;const r=t.slice(0),o=(l=e.decodeAudioData)==null?void 0:l.bind(e);if(typeof o!="function")throw new Error("decodeAudioData not available");try{const u=o(r);if(u&&typeof u.then=="function")return await u}catch{}return await new Promise((u,c)=>{try{o(r,u,c)}catch(d){c(d)}})}function x_(e){const t=G=>{var H;return(H=e.on_error)==null?void 0:H.call(e,G)},r=m.useMemo(()=>dw(),[]),o=m.useMemo(()=>uw(),[]),[l,u]=m.useState({key:"",status:"idle"}),c=m.useRef(""),d=m.useRef(""),h=m.useRef(null),_=m.useRef(null),g=m.useRef(null),x=m.useRef(null),v=m.useRef(0),b=m.useRef(0),j=()=>{try{const G=globalThis,H=(G==null?void 0:G.AudioContext)||(G==null?void 0:G.webkitAudioContext);if(!H)return null;if(!h.current){const z=new H,F=z.createGain();F.gain.value=1,F.connect(z.destination),h.current=z,_.current=F}const Z=h.current,N=_.current;if(!Z||!N)return null;try{Z.state==="suspended"&&Z.resume()}catch{}return{ctx:Z,gain:N}}catch{return null}},S=()=>{const G=g.current;if(g.current=null,!!G){try{G.onended=null}catch{}try{G.stop()}catch{}try{G.disconnect()}catch{}}},M=()=>{S(),d.current="",c.current="",x.current=null,v.current=0,b.current=0,u({key:"",status:"idle"})};m.useEffect(()=>()=>{var G,H;M();try{(G=_.current)==null||G.disconnect()}catch{}try{(H=h.current)==null||H.close()}catch{}h.current=null,_.current=null,x.current=null},[]);const A=async(G,H,Z)=>{const N=j();if(!N)throw new Error("TTS playback is not supported in this browser");const{ctx:z,gain:F}=N;try{z.state==="suspended"&&await z.resume()}catch{}S();const E=z.createBufferSource();E.buffer=H,E.connect(F);const U=Number.isFinite(Number(H.duration))?Number(H.duration):0,te=Math.max(0,Math.min(Number(Z||0),U>0?Math.max(0,U-.01):0));b.current=z.currentTime-te,v.current=te,g.current=E,c.current=G,E.onended=()=>{g.current===E&&(g.current=null,v.current=0,b.current=0,c.current="",u({key:"",status:"idle"}))},E.start(0,te),u({key:G,status:"playing"})},D=async(G,H)=>{const Z=String(G||"").trim(),N=String(H||"").trim();if(!Z||!N)return;const z=e.gateway,F=String(e.run_id||"").trim();if(!z){t==null||t("Connect to the gateway first.");return}if(!F){t==null||t("Voice store not available (missing run_id).");return}const E=j();if(!E){t==null||t("TTS playback is not supported in this browser.");return}const U=l.key===Z;if(U&&l.status==="playing"){const te=Math.max(0,E.ctx.currentTime-Number(b.current||0));v.current=te,S(),u({key:Z,status:"paused"});return}if(U&&l.status==="paused"){const te=x.current;if(te){t==null||t("");try{await A(Z,te,v.current)}catch(re){t==null||t(String((re==null?void 0:re.message)||re||"TTS play failed")),u({key:"",status:"idle"})}return}}if(!(U&&l.status==="loading")){S(),x.current=null,v.current=0,b.current=0,c.current=Z,d.current=Z,u({key:Z,status:"loading"}),t==null||t("");try{const te=await z.voice_tts(F,{text:N,request_id:Wr()}),re=te==null?void 0:te.audio_artifact,he=re&&typeof re=="object"&&!Array.isArray(re)?String(re.$artifact||"").trim():"";if(!he)throw new Error("TTS failed: missing audio artifact");const ce=await(await z.download_run_artifact_content(F,he)).arrayBuffer();if(d.current!==Z)return;const xe=await mw(E.ctx,ce);if(d.current!==Z)return;x.current=xe,v.current=0,await A(Z,xe,0)}catch(te){d.current===Z&&(d.current="",c.current="",u({key:"",status:"idle"})),t==null||t(String((te==null?void 0:te.message)||te||"TTS failed"))}}},[O,L]=m.useState(!1),[Y,ne]=m.useState(!1),X=m.useRef(null),J=m.useRef(null),ge=m.useRef([]),me=m.useRef("");function $e(){var G,H;try{(H=(G=X.current)==null?void 0:G.getTracks)==null||H.call(G).forEach(Z=>{try{Z.stop()}catch{}})}catch{}X.current=null}m.useEffect(()=>()=>{var G,H;try{(H=(G=J.current)==null?void 0:G.stop)==null||H.call(G)}catch{}J.current=null,$e()},[]);async function Me(G,H){var F;if(t==null||t(""),!G||!G.size||Y)return;const Z=e.gateway,N=String(e.session_id||"").trim(),z=String(e.run_id||"").trim();if(!Z){t==null||t("Connect to the gateway first.");return}if(!N){t==null||t("Voice input unavailable (missing session_id).");return}if(!z){t==null||t("Voice input unavailable (missing run_id).");return}ne(!0);try{const E=String(H||G.type||"").toLowerCase(),U=E.includes("mp4")?"m4a":E.includes("ogg")?"ogg":E.includes("wav")?"wav":"webm",te=new File([G],`recording.${U}`,{type:E||"audio/webm"}),re=await Z.attachments_upload(N,te,{filename:te.name,content_type:te.type}),he=await Z.audio_transcribe(z,{audio_artifact:re,request_id:Wr()}),Ne=String((he==null?void 0:he.text)||"").trim();Ne&&((F=e.on_transcript)==null||F.call(e,Ne))}catch(E){t==null||t(String((E==null?void 0:E.message)||E||"Transcription failed"))}finally{ne(!1)}}async function ue(){if(t==null||t(""),!o){t==null||t("Voice recording is not supported in this browser (MediaRecorder/getUserMedia unavailable).");return}if(!Y&&!(O||J.current)){ge.current=[];try{const G=await navigator.mediaDevices.getUserMedia({audio:!0});X.current=G;const H=fw();me.current=H;const Z=H?new MediaRecorder(G,{mimeType:H}):new MediaRecorder(G);J.current=Z,Z.ondataavailable=N=>{try{N!=null&&N.data&&ge.current.push(N.data)}catch{}},Z.onerror=()=>{t==null||t("Recording failed.")},Z.onstop=()=>{L(!1),$e(),J.current=null;try{const N=new Blob(ge.current,{type:me.current||""});Me(N,me.current)}catch(N){t==null||t(String((N==null?void 0:N.message)||N||"Failed to build recording"))}},Z.start(),L(!0)}catch(G){$e(),J.current=null,L(!1);const H=String((G==null?void 0:G.message)||G||"Failed to access microphone");t==null||t(H.toLowerCase().includes("permission")?`Microphone permission denied: ${H}`:H)}}}function I(){const G=J.current;if(!(!O||!G)){J.current=null,L(!1);try{G.stop()}catch(H){t==null||t(String((H==null?void 0:H.message)||H||"Failed to stop recording"))}}}return m.useEffect(()=>{if(!O)return;const G=()=>I();return window.addEventListener("pointerup",G),window.addEventListener("pointercancel",G),()=>{window.removeEventListener("pointerup",G),window.removeEventListener("pointercancel",G)}},[O]),{tts_supported:r,tts_playback:l,toggle_tts:D,stop_tts:M,voice_ptt_supported:o,voice_ptt_recording:O,voice_ptt_busy:Y,start_voice_ptt_recording:ue,stop_voice_ptt_recording:I}}function im(e,t){const r=String(e||"").replace(/\r/g,"").trim();if(!r)return"";const l=(r.split(`
70
+ `,1)[0]||"").trim();return l.length<=t?l:`${l.slice(0,Math.max(0,t-1))}…`}function hw(e){const t=String(e||"").trim();if(t.length<2)return t;const r=t[0],o=t[t.length-1];return r==="'"&&o==="'"||r==='"'&&o==='"'?t.slice(1,-1):t}function v_(e){const t=String(e||"").trim();if(!t)return"";const r=t.match(/^(?:\/bin\/)?(?:zsh|bash)\s+-lc\s+([\s\S]+)$/);return r?hw(String(r[1]||"").trim()):t}function pw(e,t){const r=String(e||"").trim().toLowerCase();if(r==="error"||r==="turn.failed")return"error";if(r==="turn.completed"||r==="turn.succeeded"||r==="turn.success")return"ok";const o=t&&typeof t=="object"?t:null,l=o&&typeof o.item=="object"?o.item:null;if(l&&String(l.type||"").trim()==="command_execution"){const u=String(l.status||"").trim().toLowerCase();if(u==="failed")return"error";const c=l.exit_code,d=typeof c=="number"?c:Number.isFinite(Number(c))?Number(c):null;if(d!=null)return d===0?"ok":"error";if(u==="completed")return"ok"}return"info"}function gw(e,t){var _;const r=t&&typeof t=="object"?t:{},o=r.item&&typeof r.item=="object"?r.item:null,l=o?String(o.type||"").trim():"",u=o?String(o.text||"").trim():"",c=o?String(o.command||"").trim():"",d=o&&Array.isArray(o.items)?o.items:[],h=String((r==null?void 0:r.message)||((_=r==null?void 0:r.error)==null?void 0:_.message)||"").trim();if(l==="command_execution"&&c)return v_(c)||c;if(l==="todo_list"&&d.length>0){const g=d.length,x=d.filter(A=>(A&&A.completed)===!0).length,v=d.find(A=>(A&&A.completed)!==!0),b=String((v==null?void 0:v.text)||"").trim(),j=g>1?` (+${g-1})`:"",S=g>0?` (${x}/${g})`:"",M=b?`todo: ${b}${j}`:`todo list (${g})`;return im(`${M}${S}`,96)}return u?im(u,96)||u:h?im(h,96)||h:l||String(e||"").trim()||"event"}function Rp(e){const t=new Date(e),r=o=>String(o).padStart(2,"0");return`${r(t.getHours())}:${r(t.getMinutes())}`}function _w(e){var o,l,u;const t=e&&typeof e=="object"?e:{},r=[t.at,t.created_at,t.timestamp,t.time,t.ts,t.datetime,(o=t.item)==null?void 0:o.at,(l=t.item)==null?void 0:l.created_at,(u=t.item)==null?void 0:u.timestamp];for(const c of r)if(c!=null){if(typeof c=="number"&&Number.isFinite(c)){const d=c>1e11?c:c*1e3;return Rp(d)}if(typeof c=="string"){const d=c.trim();if(!d)continue;const h=Date.parse(d.replace(/(\.\d{3})\d+/,"$1"));if(Number.isFinite(h))return Rp(h)}}return null}function Lp(e){const t=Array.from(new Set(e.map(r=>String(r||"").trim()).filter(Boolean)));return t.sort((r,o)=>r.localeCompare(o)),t}function w_(e){const t=e.disabled===!0,r=m.useMemo(()=>Lp(e.options||[]),[e.options]),o=m.useMemo(()=>Lp(e.value||[]),[e.value]),[l,u]=m.useState(!1),[c,d]=m.useState(""),h=m.useMemo(()=>{const v=c.trim().toLowerCase();return v?r.filter(b=>b.toLowerCase().includes(v)):r},[r,c]),_=m.useMemo(()=>new Set(o),[o]),g=typeof e.max_list_height_px=="number"?e.max_list_height_px:220,x=o.length>0?`${o.length} selected: ${o.slice(0,3).join(", ")}${o.length>3?"…":""}`:e.placeholder||"(none)";return s.jsxs("div",{className:"multi_select",children:[s.jsxs("div",{className:"multi_select_row",children:[s.jsxs("button",{className:"btn",type:"button",onClick:()=>u(v=>!v),disabled:t||!r.length,"aria-expanded":l,children:[l?"Hide":"Select"," • ",x]}),s.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange([]),disabled:t||o.length===0,title:"Clear selection",children:"Clear"})]}),l?s.jsxs("div",{className:"multi_select_panel",children:[s.jsx("input",{className:"mono",value:c,onChange:v=>d(String(v.target.value||"")),placeholder:"filter…",disabled:t}),s.jsxs("div",{className:"multi_select_list",style:{maxHeight:`${g}px`},children:[h.map(v=>{const b=_.has(v);return s.jsxs("label",{className:`multi_select_item mono ${b?"checked":""}`,children:[s.jsx("input",{type:"checkbox",checked:b,disabled:t,onChange:j=>{const S=new Set(_);j.target.checked?S.add(v):S.delete(v),e.onChange(Array.from(S.values()))}}),s.jsx("span",{children:v})]},v)}),h.length?null:s.jsx("div",{className:"mono muted",children:"(no matches)"})]})]}):null]})}function Li({open:e,title:t,children:r,actions:o,variant:l="default",onClose:u}){if(m.useEffect(()=>{if(!e)return;const d=h=>{h.key==="Escape"&&u()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[e,u]),!e)return null;const c=l==="fullscreen";return s.jsx("div",{className:`modal_backdrop${c?" fullscreen":""}`,onMouseDown:d=>{d.target===d.currentTarget&&u()},children:s.jsxs("div",{className:`modal_panel${c?" fullscreen":""}`,children:[s.jsxs("div",{className:"modal_header",children:[s.jsx("div",{className:"modal_title",children:t}),s.jsx("button",{className:"btn",onClick:u,children:"Close"})]}),s.jsx("div",{className:"modal_body",children:r}),o?s.jsx("div",{className:"modal_footer",children:o}):null]})})}function aa(e){return e!=="processing"&&e!=="failed"}function Ou(e){const t=String(e||"").trim().toLowerCase();return t==="bug"||t==="feature"||t==="task"?t:"task"}function b_(e){return e.toUpperCase()}function Pp(e){return e==="bug"?"danger":e==="feature"?"ok":"task"}function S_(e){const t=String(e||"").trim();return t.replace(/^\[(bug|feature|task)\]\s*/i,"").trim()||t}function la(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function om(e){return typeof(e==null?void 0:e.parsed)=="boolean"?!!e.parsed:typeof e.item_id=="number"&&e.item_id>0}function yw(e){const t=String((e==null?void 0:e.package)||"").trim();if(t)return t;const o=String((e==null?void 0:e.filename)||"").trim().split("-");return o.length>=2?String(o[1]||"").trim():""}function Lm(e=new Date){const t=d=>String(d).padStart(2,"0"),r=-e.getTimezoneOffset(),o=r>=0?"+":"-",l=Math.abs(r),u=t(Math.floor(l/60)),c=t(l%60);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())} ${o}${u}${c}`}function xw(e){try{return JSON.parse(e)}catch{return null}}function Ip(e,t){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function vw(e){const t=String(e||"").replace(/\r/g,"").trim();if(!t)return"";const r=t.split(`
71
+ `),o=[];for(const l of r){const u=String(l||"");if(!u.trim()){if(o.length)break;continue}if(o.push(u),o.length>=6)break}return o.join(`
72
+ `).trim()}function am(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=t.replace(/(\.\d{3})\d+/,"$1"),o=Date.parse(r);return Number.isFinite(o)?o:null}function Md(e){if(!Number.isFinite(e))return"";const t=Math.max(0,Math.floor(e/1e3)),r=t%60,o=Math.floor(t/60),l=o%60,u=Math.floor(o/60),c=u%24,d=Math.floor(u/24);return d>0?`${d}d ${c}h`:u>0?`${u}h ${l}m`:o>0?`${o}m ${r}s`:`${t}s`}async function Pm(e){const t=String(e||""),r=new TextEncoder().encode(t),o=globalThis.crypto;if(!o||!o.subtle||typeof o.subtle.digest!="function")return"";const l=await o.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(l)).map(u=>u.toString(16).padStart(2,"0")).join("")}const ww=/^[a-zA-Z0-9_-]+$/;function Op(e){return ww.test(String(e||"").trim())}async function bw(e){const t=String(e).trim();if(!t)throw new Error("session_id is required");if(Op(t)){const o=`session_memory_${t}`;if(Op(o))return o}return`session_memory_sha_${(await Pm(t)).slice(0,32)}`}function Sw(e){const t=()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia(e).matches,[r,o]=m.useState(t);return m.useEffect(()=>{var c;if(typeof window>"u"||typeof window.matchMedia!="function")return;const l=window.matchMedia(e),u=()=>o(l.matches);return u(),typeof l.addEventListener=="function"?l.addEventListener("change",u):(c=l.addListener)==null||c.call(l,u),()=>{var d;typeof l.removeEventListener=="function"?l.removeEventListener("change",u):(d=l.removeListener)==null||d.call(l,u)}},[e]),r}function jw(e,t){const r=String(t.package_name).trim()||"{Package}",o=S_(String(t.title||"").trim()||"{Title}"),l=String(t.summary||"").trim(),u=Ou(t.task_type),c=`# {ID}-${r}: [${b_(u)}] ${o}`.trim();let d=String(e||"");d=d.split("{Package}").join(r).split("{Title}").join(o);const h=d.split(/\r?\n/);let _=!1;for(let j=0;j<h.length;j+=1){const S=String(h[j]||"");if(S.trim().startsWith("# ")){h[j]=c,_=!0;break}if(S.trim())break}_||(h.unshift("",c),h.shift());const g=`> Created: ${String(t.created_at||"").trim()}`.trim();let x=!1;for(let j=0;j<Math.min(h.length,40);j+=1)if(String(h[j]||"").trim().toLowerCase().startsWith("> created:")){h[j]=g,x=!0;break}if(!x){const j=h.length>1&&!String(h[1]||"").trim()?2:1;h.splice(j,0,g,"")}const v=`> Type: ${u}`.trim();let b=!1;for(let j=0;j<Math.min(h.length,60);j+=1)if(String(h[j]||"").trim().toLowerCase().startsWith("> type:")){h[j]=v,b=!0;break}if(!b){let j=-1;for(let S=0;S<Math.min(h.length,60);S+=1)if(String(h[S]||"").trim().toLowerCase().startsWith("> created:")){j=S;break}if(j>=0){const S=j+1;S<h.length&&!String(h[S]||"").trim()?h.splice(S,0,v):h.splice(S,0,v,"")}else{const S=h.length>1&&!String(h[1]||"").trim()?2:1;h.splice(S,0,v,"")}}if(l){for(let j=0;j<h.length;j+=1)if(String(h[j]||"").trim().toLowerCase()==="## summary"){let S=j+1;for(;S<h.length&&!String(h[S]||"").trim();)S+=1;(S<h.length?String(h[S]||""):"").trim().toLowerCase().startsWith("one paragraph describing")?h[S]=l:h.splice(j+1,0,l,"");break}}return d=h.join(`
73
+ `),d.endsWith(`
74
+ `)||(d+=`
75
+ `),d}function yl(e){return String(e||"").split(/\r?\n/).map(t=>t.trim()).filter(Boolean)}function kw(e){const t=String(e.package_name||"").trim()||"{Package}",r=S_(String(e.title||"").trim()||"{Title}"),o=Ou(e.task_type),l=String(e.created_at||"").trim()||Lm(),u=String(e.diagram||"").trim(),c=String(e.context||"").trim(),d=[];return d.push(`# {ID}-${t}: [${b_(o)}] ${r}`),d.push(""),d.push(`> Created: ${l}`),d.push(`> Type: ${o}`),d.push(""),d.push("## Summary"),d.push(e.summary.trim()||"One paragraph describing what this task accomplishes (user value + outcome)."),d.push(""),d.push("## Diagram"),d.push("```"),d.push(u||`ASCII diagram of the system change.
76
+ Show inputs/outputs and where code lives.`),d.push("```"),d.push(""),d.push("## Context"),d.push(c||"(why is this needed? link to evidence: bug/feature report paths, discussions, etc.)"),d.push(""),d.push("## Scope"),d.push("### Included"),e.included.length?d.push(...e.included.map(h=>`- ${h}`)):d.push("- "),d.push(""),d.push("### Excluded"),e.excluded.length?d.push(...e.excluded.map(h=>`- ${h}`)):d.push("- "),d.push(""),d.push("## Implementation Plan"),e.plan.length?d.push(...e.plan.map((h,_)=>`${_+1}. ${h}`)):d.push("1. "),d.push(""),d.push("## Dependencies"),e.dependencies.length?d.push(...e.dependencies.map(h=>`- ${h}`)):d.push("- Related backlog items / ADRs"),d.push(""),d.push("## Acceptance Criteria"),e.acceptance.length?d.push(...e.acceptance.map(h=>`- [ ] ${h}`)):d.push("- [ ] Criterion 1 (clear, testable)"),d.push(""),d.push("## Testing (ADR-0019)"),d.push("- Level A:"),e.tests_a.length?d.push(...e.tests_a.map(h=>` - \`${h}\``)):d.push(" - `...`"),d.push("- Level B:"),e.tests_b.length?d.push(...e.tests_b.map(h=>` - \`${h}\``)):d.push(" - `...`"),d.push("- Level C (optional / opt-in):"),e.tests_c.length?d.push(...e.tests_c.map(h=>` - \`${h}\``)):d.push(" - n/a"),d.push(""),d.push("## Related"),d.push("- ADRs:"),d.push("- Code:"),d.push("- Reports:"),e.attachments.length&&(d.push("- Attachments:"),d.push(...e.attachments.map(h=>` - ${h}`))),d.push(""),d.push("---"),d.push("## Report (added when completed)"),d.push(""),d.push("> Completed: YYYY-MM-DD"),d.push(""),d.push("### What changed"),d.push("- "),d.push(""),d.push("### Security / hardening"),d.push("- "),d.push(""),d.push("### Testing (ADR-0019)"),d.push("Levels executed:"),d.push("- A:"),d.push("- B:"),d.push("- C (if any):"),d.push(""),d.push("Commands run:"),d.push("- `...`"),d.push(""),d.push("### Follow-ups"),d.push("- "),d.push(""),d.join(`
77
+ `)}function Fp(e,t){const r=t.map(h=>String(h||"").trim()).filter(Boolean);if(!r.length)return e;const o=String(e||"").split(/\r?\n/),l=o.map(h=>h.toLowerCase()),u=l.findIndex(h=>h.trim()==="## related");if(u<0)return`${String(e||"").trimEnd()}
78
+
79
+ ## Related
80
+ - Attachments:
81
+ ${r.map(_=>` - ${_}`).join(`
82
+ `)}
83
+ `;let c=-1;for(let h=u+1;h<o.length;h+=1){const _=l[h].trim();if(_.startsWith("## ")||_.startsWith("---"))break;if(_.startsWith("- attachments:")){c=h;break}}const d=["- Attachments:",...r.map(h=>` - ${h}`)];if(c>=0){let h=c+1;for(;h<o.length&&l[h].trim().startsWith(" -");)h+=1;o.splice(h,0,...r.map(_=>` - ${_}`))}else{let h=u+1;for(let _=u+1;_<o.length;_+=1){const g=l[_].trim();if(g.startsWith("## ")||g.startsWith("---")){h=_;break}h=_+1}o.splice(h,0,...d,"")}return o.join(`
84
+ `)}function Nw(e){var Fl;const t=e.gateway,r=e.gateway_connected,o=String(e.maintenance_ai_provider||"").trim(),l=String(e.maintenance_ai_model||"").trim(),u=String(e.backlog_advisor_agent||"").trim(),[c,d]=m.useState("planned"),h=Sw("(max-width: 900px)"),[_,g]=m.useState("list"),[x,v]=m.useState([]),[b,j]=m.useState(!1),[S,M]=m.useState(""),[A,D]=m.useState([]),[O,L]=m.useState(""),[Y,ne]=m.useState("all"),[X,J]=m.useState(null),[ge,me]=m.useState(""),[$e,Me]=m.useState(""),[ue,I]=m.useState(!1),[G,H]=m.useState(""),[Z,N]=m.useState(!1),[z,F]=m.useState(""),[E,U]=m.useState(!1),[te,re]=m.useState(""),[he,Ne]=m.useState(!1),[ce,xe]=m.useState(""),[Pe,oe]=m.useState([]),[be,Se]=m.useState(""),[Ue,De]=m.useState(!1),[ct,ut]=m.useState(""),[Ae,Re]=m.useState(!1),[dt,jt]=m.useState([]),[Mt,gt]=m.useState(""),[_e,Kt]=m.useState(!1),[Te,nt]=m.useState(""),[se,Oe]=m.useState(!1),[Jt,vt]=m.useState([]),on=m.useRef(null),bn=m.useRef(null),un=String(e.voice_session_id||"").trim()||"abstractobserver_backlog_advisor",[yn,Pn]=m.useState(""),[En,sr]=m.useState("");m.useEffect(()=>{(async()=>{try{const $=await bw(un);Pn($)}catch{Pn("")}})()},[un]);const It=x_({gateway:r?t:null,session_id:un,run_id:yn,on_error:sr,on_transcript:$=>{const V=String($||"").trim();V&&(gt(B=>{const fe=String(B||"");return fe.trim()?`${fe.trimEnd()}
85
+ ${V}`:V}),window.setTimeout(()=>{var B;return(B=on.current)==null?void 0:B.focus()},0))}}),kr=m.useRef(null),[Nr,Wn]=m.useState(!1),[ae,ke]=m.useState(""),[st,it]=m.useState([]),[_t,Tt]=m.useState(!1),[Ot,Wt]=m.useState(null),[nn,Ft]=m.useState("uat"),[dn,hn]=m.useState([]),[Qt,rn]=m.useState(!1),[qt,et]=m.useState(!1),[Sn,Nn]=m.useState(""),[In,$n]=m.useState("uat"),[Cr,ir]=m.useState(!1),[lr,gr]=m.useState(""),[Ns,ds]=m.useState("framework"),[Si,Bo]=m.useState("task"),[Ir,Tn]=m.useState(""),[Ds,Ii]=m.useState(!1),[fs,Kn]=m.useState(""),[Ze,bt]=m.useState(null),[fn,fr]=m.useState(!1),[Vr,Er]=m.useState(""),[ms,oi]=m.useState([]),[ai,Fn]=m.useState(!1),[qr,or]=m.useState(""),[Ce,_r]=m.useState(null),[qe,Jn]=m.useState(null),[Cn,Cs]=m.useState(!1),[mr,Bs]=m.useState(""),[hs,pn]=m.useState(""),[ar,li]=m.useState(!1),[Us,Qn]=m.useState(""),[cr,ps]=m.useState("events"),[Zr,Ws]=m.useState(""),[$r,Mn]=m.useState(!1),[hr,Es]=m.useState(""),[Hs,Or]=m.useState(!1),[Gr,Vs]=m.useState(!0),$s=m.useRef(null),ci=m.useRef(!0),[Oi,es]=m.useState(!1),[uo,Fi]=m.useState(""),[gs,Ts]=m.useState([]),[ts,Ms]=m.useState(""),[fo,Di]=m.useState("events"),[ns,R]=m.useState(""),[ie,je]=m.useState(!1),[ze,Ie]=m.useState(""),[rt,Et]=m.useState(!1),[Nt,zt]=m.useState(""),Gt=m.useRef(null),[en,Zn]=m.useState("tasks"),[an,ft]=m.useState(!1),[jn,An]=m.useState(""),[yr,_s]=m.useState(!1),[qs,Bi]=m.useState(""),[fa,El]=m.useState("proposed"),[ui,Uo]=m.useState("feature"),[mo,ma]=m.useState("framework"),[Gs,$l]=m.useState(""),[ho,Wo]=m.useState(""),[Ho,po]=m.useState(""),[dc,go]=m.useState(""),[ji,Ui]=m.useState(!1),[Tl,ha]=m.useState(""),[Ml,pa]=m.useState(""),[ki,Vo]=m.useState(""),[_o,qo]=m.useState(""),[ga,Fa]=m.useState(""),[_a,di]=m.useState(""),[Al,yo]=m.useState(""),[xo,zl]=m.useState(""),[ya,Rl]=m.useState(""),[vo,xa]=m.useState(""),[Ys,Wi]=m.useState([]),[Ll,wo]=m.useState(!1),[Go,Ni]=m.useState(""),[Yo,Tr]=m.useState([]),[Ci,bo]=m.useState(""),[Xs,Hi]=m.useState(!1),kn=c==="processing"||c==="failed"||c==="completed"&&en==="runs";m.useEffect(()=>{h&&g("list")},[h,c,en]),m.useEffect(()=>{if(!Ae)return;const $=V=>{V.key==="Escape"&&Re(!1)};return window.addEventListener("keydown",$),setTimeout(()=>{var V;return(V=on.current)==null?void 0:V.focus()},0),()=>window.removeEventListener("keydown",$)},[Ae]);const Mr=m.useMemo(()=>{if(cr!=="events")return null;const $=String(Zr||""),V=$.split(/\r?\n/).filter(ve=>String(ve||"").trim().length>0),B=[];let fe=0;for(let ve=0;ve<V.length;ve+=1){const Be=String(V[ve]||"").trim(),Ge=xw(Be);if(!Ge||typeof Ge!="object"){fe+=1,B.push({idx:ve,type:"raw",payload:null,raw:Be});continue}const Ye=String(Ge.type||Ge.event||"event");B.push({idx:ve,type:Ye,payload:Ge,raw:Be})}return{total:V.length,bad:fe,events:B,raw:$}},[Zr,cr]),Yr=m.useMemo(()=>{if(!Mr)return null;let $=0,V=0,B=0,fe=0,ve=0;for(const Ge of Mr.events){const Ye=Ge.payload,at=Ye&&typeof Ye.usage=="object"?Ye.usage:null;at&&(Number.isFinite(Number(at.input_tokens))&&($+=Number(at.input_tokens)),Number.isFinite(Number(at.cached_input_tokens))&&(V+=Number(at.cached_input_tokens)),Number.isFinite(Number(at.output_tokens))&&(B+=Number(at.output_tokens)));const gn=Ye&&typeof Ye.item=="object"?Ye.item:null;gn&&String(gn.type||"").trim()==="command_execution"&&(fe+=1,String(gn.status||"").trim().toLowerCase()==="failed"&&(ve+=1))}return{has_tokens:$>0||B>0||V>0,input_tokens:$,cached_input_tokens:V,output_tokens:B,total_tokens:$+B,command_count:fe,command_fail_count:ve}},[Mr]),ys=m.useMemo(()=>{const $=am(Ce==null?void 0:Ce.created_at),V=am(Ce==null?void 0:Ce.started_at),B=am(Ce==null?void 0:Ce.finished_at),fe=Date.now(),ve=String((Ce==null?void 0:Ce.status)||"").trim().toLowerCase(),Be=B??(ve==="running"?fe:null),Ge=B!=null,Ye=$!=null&&V!=null?Math.max(0,V-$):null,at=V!=null&&Be!=null?Math.max(0,Be-V):null,gn=$!=null&&Be!=null?Math.max(0,Be-$):null,Dt=!Ge&&$!=null?Math.max(0,fe-$):null;return{is_done:Ge,queue_delay_ms:Ye,run_ms:at,total_ms:gn,age_ms:Dt}},[Ce==null?void 0:Ce.created_at,Ce==null?void 0:Ce.started_at,Ce==null?void 0:Ce.finished_at,Ce==null?void 0:Ce.status]);function Xo($){return $==="processing"?"queued,running,awaiting_qa":$==="failed"?"failed":$==="completed"&&en==="runs"?"completed,promoted":""}function As($,V){const B=$&&typeof $=="object"?$:{},fe=B.backlog&&typeof B.backlog=="object"?B.backlog:{},ve=B.result&&typeof B.result=="object"?B.result:{},Be=B.executor&&typeof B.executor=="object"?B.executor:{},Ge=String(ve.last_message||"").trim(),Ye=String(B.target_model||Be.model||"").trim(),at=String(B.target_reasoning_effort||Be.reasoning_effort||"").trim();return{request_id:V,status:String(B.status||"unknown"),created_at:B.created_at??null,started_at:B.started_at??null,finished_at:B.finished_at??null,backlog_relpath:fe.relpath??null,backlog_kind:fe.kind??null,backlog_filename:fe.filename??null,target_agent:B.target_agent??null,target_model:Ye||null,target_reasoning_effort:at||null,executor_type:Be.type??null,ok:typeof ve.ok=="boolean"?ve.ok:null,exit_code:typeof ve.exit_code=="number"?ve.exit_code:ve.exit_code??null,error:typeof ve.error=="string"?ve.error:ve.error??null,run_dir_relpath:B.run_dir_relpath??null,last_message:Ge?Ge.slice(0,1200):null}}async function Ar($){const V=$||(aa(c)?c:"planned"),B=await t.backlog_list(V);let fe=Array.isArray(B==null?void 0:B.items)?B.items:[];if(V==="planned")try{const ve=await t.backlog_exec_active_items({status:"queued,running,awaiting_qa",limit:1200}),Be=Array.isArray(ve==null?void 0:ve.items)?ve.items:[],Ge=new Set(Be.filter(at=>String((at==null?void 0:at.kind)||"").trim()==="planned").map(at=>String((at==null?void 0:at.filename)||"").trim()).filter(Boolean)),Ye=Array.from(Ge);Ye.sort(),D(Ye),Ge.size&&(fe=fe.filter(at=>!Ge.has(String(at.filename||"").trim())))}catch{D([])}else D([]);return v(fe),X&&$===void 0&&!fe.some(ve=>ve.filename===X.filename)&&(J(null),me(""),Me(""),H(""),U(!1),re(""),xe("")),fe}async function rs($){if(ai)return ms;or(""),Fn(!0);const V=$||c;try{const B=Xo(V),fe=await t.backlog_exec_requests({status:B,limit:200}),ve=Array.isArray(fe==null?void 0:fe.requests)?fe.requests:[];if(oi(ve),V==="processing"&&(Ce!=null&&Ce.request_id)&&!ve.some(Be=>Be.request_id===Ce.request_id))try{const Be=await t.backlog_exec_request(Ce.request_id),Ge=Be==null?void 0:Be.payload,Ye=String((Ge==null?void 0:Ge.status)||"").trim().toLowerCase();Ye==="failed"?d("failed"):(Ye==="completed"||Ye==="promoted")&&(Zn("runs"),d("completed")),(Ye==="failed"||Ye==="completed"||Ye==="promoted")&&(Jn(Ge),_r(As(Ge,Ce.request_id)))}catch{}if(Ce!=null&&Ce.request_id){const Be=ve.find(Ge=>Ge.request_id===Ce.request_id)||null;Be&&_r(Be)}return ve}catch(B){return oi([]),or(String((B==null?void 0:B.message)||B||"Failed to load backlog exec requests")),[]}finally{Fn(!1)}}async function xr(){if(r){if(kn){await rs();return}if(!b){M(""),j(!0);try{await Ar()}catch($){v([]),M(String(($==null?void 0:$.message)||$||"Failed to load backlog list"))}finally{j(!1)}}}}m.useEffect(()=>{xr()},[c,en,r]),m.useEffect(()=>{if(c!=="planned"){hn([]);return}const $=new Set(x.map(V=>String(V.filename||"").trim()).filter(Boolean));hn(V=>V.filter(B=>$.has(B)))},[c,x]),m.useEffect(()=>{an&&r&&Pl()},[an,r]),m.useEffect(()=>{_t&&r&&xs()},[_t,r]),m.useEffect(()=>{Qt&&r&&xs()},[Qt,r]),m.useEffect(()=>{r&&kn&&xs()},[kn,r]),m.useEffect(()=>{if(!r||!kn)return;const V=setInterval(()=>void rs(c),c==="processing"?2e3:5e3);return()=>clearInterval(V)},[c,en,r,kn,Ce==null?void 0:Ce.request_id]),m.useEffect(()=>{r&&kn&&Ce!=null&&Ce.request_id&&Ct({request_id:Ce.request_id,name:cr})},[Ce==null?void 0:Ce.request_id,cr,kn,r]),m.useEffect(()=>{ci.current=!0},[Ce==null?void 0:Ce.request_id,cr]),m.useEffect(()=>{if(!$s.current||!ci.current)return;const V=window.requestAnimationFrame(()=>{const B=$s.current;B&&(B.scrollTop=B.scrollHeight)});return()=>window.cancelAnimationFrame(V)},[Zr,cr,Ce==null?void 0:Ce.request_id]),m.useEffect(()=>{if(!r||!kn||!(Ce!=null&&Ce.request_id))return;const $=String(Ce.status||"").trim().toLowerCase();if($!=="running"&&Gr!==!0)return;const B=setInterval(()=>{Ct({request_id:Ce.request_id,name:cr})},$==="running"?1500:2500);return()=>clearInterval(B)},[Ce==null?void 0:Ce.request_id,Ce==null?void 0:Ce.status,cr,kn,r,Gr]),m.useEffect(()=>{g("list"),kn?X&&(J(null),me(""),Me(""),H(""),U(!1),re(""),xe(""),oe([]),Se(""),De(!1),ut(""),Wn(!1),ke(""),it([])):Ce&&(_r(null),Jn(null),Bs(""),Ws(""),Es(""),Or(!1))},[kn]);async function Ks($,V){const B=(V==null?void 0:V.kind)||(aa(c)?c:"planned");J($),h&&g("detail"),U(!1),re(""),xe(""),oe([]),Se(""),De(!1),ut(""),Wn(!1),ke(""),it([]),F(""),me(""),Me(""),H(""),I(!0);try{const fe=await t.backlog_content(B,$.filename),ve=String((fe==null?void 0:fe.content)||"");me(ve),Me(await Pm(ve))}catch(fe){H(String((fe==null?void 0:fe.message)||fe||"Failed to load backlog item"))}finally{I(!1)}}const Js=m.useMemo(()=>{const $=String(O||"").trim().toLowerCase(),V=String(Y||"all").trim().toLowerCase();return x.filter(B=>V&&V!=="all"&&Ou(B.task_type)!==V?!1:$?`${B.item_id||""} ${B.package||""} ${B.title||""} ${B.task_type||""} ${B.summary||""} ${B.filename||""}`.toLowerCase().includes($):!0)},[x,O,Y]),pr=m.useMemo(()=>{if(c!=="planned")return[];const $=new Set(dn.map(B=>String(B||"").trim()).filter(Boolean)),V=x.filter(B=>$.has(String(B.filename||"").trim()));return V.sort((B,fe)=>String(B.filename||"").localeCompare(String(fe.filename||""))),V},[x,dn,c]),Vi=m.useMemo(()=>{const $=String(O||"").trim().toLowerCase();return $?ms.filter(V=>`${V.request_id||""} ${V.status||""} ${V.backlog_filename||""} ${V.backlog_relpath||""} ${V.target_model||""} ${V.target_reasoning_effort||""} ${V.error||""} ${V.last_message||""}`.toLowerCase().includes($)):ms},[ms,O]);async function Fr($){if(X&&aa(c)&&!Z){F(""),N(!0);try{await t.backlog_move({from_kind:c,to_kind:$,filename:X.filename}),d($),L("");const B=(await Ar($)).find(fe=>fe.filename===X.filename)||null;J(B),me(""),Me(""),H(""),B&&await Ks(B,{kind:$})}catch(V){F(String((V==null?void 0:V.message)||V||"Backlog move failed"))}finally{N(!1)}}}async function Ei(){if(X&&aa(c)&&!he){xe(""),Ne(!0);try{const $=await t.backlog_update({kind:c,filename:X.filename,content:te,expected_sha256:$e||null}),V=te.endsWith(`
86
+ `)?te:`${te}
87
+ `;me(V),Me(String(($==null?void 0:$.sha256)||"")),U(!1),await xr()}catch($){xe(String(($==null?void 0:$.message)||$||"Save failed"))}finally{Ne(!1)}}}async function xs(){if(!r)return null;if(fn)return Ze;Er(""),fr(!0);try{const $=await t.backlog_exec_config();return bt($),$}catch($){const V=String(($==null?void 0:$.message)||$||"Failed to load backlog exec config");return Er(V),bt(null),null}finally{fr(!1)}}async function So($){if(r){_r($),h&&g("detail"),Jn(null),Bs(""),Cs(!0),Qn(""),pn(""),Ws(""),Es(""),Or(!1);try{const V=await t.backlog_exec_request($.request_id);Jn((V==null?void 0:V.payload)??null)}catch(V){Bs(String((V==null?void 0:V.message)||V||"Failed to load request"))}finally{Cs(!1)}}}async function qi(){if(!r)return;const $=String((Ce==null?void 0:Ce.request_id)||"").trim();if(!$||ar)return;const V=String(hs||"");if(!V.trim()){Qn("Feedback is required.");return}Qn(""),li(!0);try{const B=await t.backlog_exec_feedback({request_id:$,feedback:V}),fe=(B==null?void 0:B.payload)??null;Jn(fe),fe&&_r(As(fe,$)),pn(""),d("processing"),await rs("processing")}catch(B){Qn(String((B==null?void 0:B.message)||B||"Failed to send feedback"))}finally{li(!1)}}async function Da(){if(!r)return;const $=String((Ce==null?void 0:Ce.request_id)||"").trim();if($&&!ar){Qn(""),li(!0);try{const V=await t.backlog_exec_promote({request_id:$,redeploy:!0}),B=(V==null?void 0:V.payload)??null;Jn(B),B&&_r(As(B,$)),pn(""),Zn("runs"),d("completed"),await rs("completed"),await rs("processing")}catch(V){Qn(String((V==null?void 0:V.message)||V||"Failed to promote to prod"));try{const B=await t.backlog_exec_request($),fe=(B==null?void 0:B.payload)??null;Jn(fe),fe&&_r(As(fe,$))}catch{}}finally{li(!1)}}}async function Gi(){if(!r)return;const $=String((Ce==null?void 0:Ce.request_id)||"").trim();if($&&!ar){Qn(""),li(!0);try{const V=await t.backlog_exec_deploy_uat({request_id:$}),B=(V==null?void 0:V.payload)??null;Jn(B),B&&_r(As(B,$)),d("processing"),await rs("processing")}catch(V){Qn(String((V==null?void 0:V.message)||V||"Failed to deploy to UAT"))}finally{li(!1)}}}async function Ct($){if(!r)return;const V=String(($==null?void 0:$.request_id)||(Ce==null?void 0:Ce.request_id)||"").trim();if(!V)return;const B=($==null?void 0:$.name)||cr,fe=typeof($==null?void 0:$.max_bytes)=="number"&&Number.isFinite($.max_bytes)?Number($.max_bytes):16e4;if(!$r){Es(""),Mn(!0);try{const ve=await t.backlog_exec_log_tail({request_id:V,name:String(B),max_bytes:fe});Ws(String((ve==null?void 0:ve.content)||"")),Or(!!(ve!=null&&ve.truncated))}catch(ve){Es(String((ve==null?void 0:ve.message)||ve||"Failed to load logs"))}finally{Mn(!1)}}}function Ba($){if(!$||typeof $!="object")return"";const V=$.$artifact;return typeof V=="string"?V.trim():""}async function vr($){var fe;if(!r)return;const V=String(($==null?void 0:$.request_id)||ts||"").trim();if(!V)return;const B=($==null?void 0:$.name)||fo;if(!ie){Ie(""),je(!0),Et(!1);try{const ve=await t.backlog_exec_request(V),Be=ve==null?void 0:ve.payload,Ge=(fe=Be==null?void 0:Be.result)==null?void 0:fe.ledger,Ye=String((Ge==null?void 0:Ge.ledger_run_id)||"").trim(),at=Ge==null?void 0:Ge.log_artifacts,gn=at?at[String(B)]:null,Dt=Ba(gn);if(Ye&&Dt){const zs=await(await t.download_run_artifact_content(Ye,Dt)).text();R(zs);return}const _n=await t.backlog_exec_log_tail({request_id:V,name:String(B),max_bytes:4e5});R(String((_n==null?void 0:_n.content)||"")),Et(!!(_n!=null&&_n.truncated)),_n!=null&&_n.truncated&&Ie("Legacy fallback: log is truncated (this exec request predates ledger log capture).")}catch(ve){Ie(String((ve==null?void 0:ve.message)||ve||"Failed to load execution log"))}finally{je(!1)}}}async function mn($){if(!r)return;const V=String($||"").trim();if(V){es(!0),Fi(V),Ts([]),Ms(""),Di("events"),R(""),Ie(""),Et(!1),zt("");try{const B=await t.backlog_exec_requests({status:"completed,failed",limit:500}),ve=(Array.isArray(B==null?void 0:B.requests)?B.requests:[]).filter(Ge=>String(Ge.backlog_filename||"").trim()===V);if(ve.sort((Ge,Ye)=>{const at=String(Ge.finished_at||Ge.started_at||Ge.created_at||"");return String(Ye.finished_at||Ye.started_at||Ye.created_at||"").localeCompare(at)}),Ts(ve),!ve.length){Ie("No execution logs found for this backlog item.");return}const Be=String(ve[0].request_id||"").trim();Ms(Be),await vr({request_id:Be,name:"events"}),setTimeout(()=>{var Ge;return(Ge=Gt.current)==null?void 0:Ge.focus()},0)}catch(B){Ie(String((B==null?void 0:B.message)||B||"Failed to load execution logs"))}}}function Dn($){const V=String(Nt||"");if(!V)return;const B=String(ns||"");if(!B)return;const fe=Gt.current;if(!fe)return;const ve=typeof fe.selectionStart=="number"?fe.selectionStart:0,Be=typeof fe.selectionEnd=="number"?fe.selectionEnd:0;let Ge=-1;if($===1){const Ye=Math.min(B.length,Math.max(0,Be));Ge=B.indexOf(V,Ye),Ge<0&&Ye>0&&(Ge=B.indexOf(V,0))}else{const Ye=Math.min(B.length,Math.max(0,ve-1));Ge=B.lastIndexOf(V,Ye),Ge<0&&Ye<B.length-1&&(Ge=B.lastIndexOf(V,B.length))}if(!(Ge<0))try{fe.focus(),fe.setSelectionRange(Ge,Ge+V.length)}catch{}}async function Ua(){if(Ot&&!Z){F(""),N(!0);try{const $=Ze||await xs();if(!$){F("Could not load gateway exec config.");return}const V=$.runner_alive!==!1,B=$.codex_available!==!1;if($.runner_enabled!==!0){F("Backlog exec runner is disabled on this gateway.");return}if(!V){F($.runner_error?`Backlog exec runner not running: ${$.runner_error}`:"Backlog exec runner is not running.");return}if(!B){const at=String($.codex_bin||"codex");F(`Codex not found on gateway: ${at}`);return}if($.can_execute!==!0){F("Backlog exec is not available on this gateway (misconfigured executor).");return}const fe=await t.backlog_execute({kind:Ot.kind,filename:Ot.filename,execution_mode:nn}),ve=String((fe==null?void 0:fe.request_id)||"").trim();if(!ve)throw new Error("No request_id returned");Tt(!1),Wt(null),d("processing"),Zn("tasks"),L(""),J(null),me(""),Me(""),H(""),U(!1),re(""),xe(""),oe([]),Se(""),De(!1),ut(""),Wn(!1),ke(""),it([]);const Be={request_id:ve,status:"queued"};_r(Be),Jn(null),Bs("");const Ye=(await rs("processing")).find(at=>at.request_id===ve)||null;Ye?await So(Ye):await So(Be)}catch($){F(String(($==null?void 0:$.message)||$||"Execute failed"))}finally{N(!1)}}}async function va(){if(!qt&&pr.length){if(pr.length<2){Nn("Select at least 2 planned backlog items.");return}Nn(""),et(!0);try{const $=Ze||await xs();if(!$){Nn("Could not load gateway exec config.");return}const V=$.runner_alive!==!1,B=$.codex_available!==!1;if($.runner_enabled!==!0){Nn("Backlog exec runner is disabled on this gateway.");return}if(!V){Nn($.runner_error?`Backlog exec runner not running: ${$.runner_error}`:"Backlog exec runner is not running.");return}if(!B){const at=String($.codex_bin||"codex");Nn(`Codex not found on gateway: ${at}`);return}if($.can_execute!==!0){Nn("Backlog exec is not available on this gateway (misconfigured executor).");return}const fe=await t.backlog_execute_batch({items:pr.map(at=>({kind:"planned",filename:at.filename})),execution_mode:In}),ve=String((fe==null?void 0:fe.request_id)||"").trim();if(!ve)throw new Error("No request_id returned");rn(!1),hn([]),d("processing"),Zn("tasks"),L(""),J(null),me(""),Me(""),H(""),U(!1),re(""),xe("");const Be={request_id:ve,status:"queued"};_r(Be),Jn(null),Bs("");const Ye=(await rs("processing")).find(at=>at.request_id===ve)||null;Ye?await So(Ye):await So(Be)}catch($){Nn(String(($==null?void 0:$.message)||$||"Execute batch failed"))}finally{et(!1)}}}async function Yi(){if(Ds)return;if(pr.length<2){Kn("Select at least 2 planned backlog items.");return}const $=lr.trim();if(!$){Kn("Title is required.");return}const V=Ns.trim().toLowerCase();if(!V){Kn("Package is required.");return}Kn(""),Ii(!0);try{const B=await t.backlog_merge({kind:"planned",package:V,title:$,task_type:Si,summary:Ir.trim()||null,items:pr.map(Ye=>({kind:"planned",filename:Ye.filename}))}),fe=String((B==null?void 0:B.kind)||"").trim(),ve=String((B==null?void 0:B.filename)||"").trim();if(!fe||!ve)throw new Error("Merge succeeded but returned an invalid response");ir(!1),gr(""),Tn(""),hn([]),d(fe),L("");const Ge=(await Ar(fe)).find(Ye=>Ye.filename===ve)||null;Ge&&await Ks(Ge,{kind:fe})}catch(B){Kn(String((B==null?void 0:B.message)||B||"Merge failed"))}finally{Ii(!1)}}function Wa(){El("proposed"),Uo("feature"),ma("framework"),$l(""),Wo(""),po(""),go(""),Ui(!1),ha(""),pa(""),Vo(""),qo(""),Fa(""),di(""),yo(""),zl(""),Rl(""),xa(""),Wi([]),wo(!1),Ni(""),Tr([]),bo(""),Hi(!1)}async function ln(){const $=String(jn||"").trim();if($)return $;if(yr)return"";Bi(""),_s(!0);try{const V=await t.backlog_template(),B=String((V==null?void 0:V.content)||"");return An(B),B}catch(V){return Bi(String((V==null?void 0:V.message)||V||"Failed to load backlog template")),""}finally{_s(!1)}}async function Pl($){if(!r)return;const V=($==null?void 0:$.force)===!0;if(!V&&Ho.trim())return;const B=await ln();if(!B.trim())return;const fe=String(mo||"").trim().toLowerCase()||"{Package}",ve=Lm(),Be=jw(B,{package_name:fe,title:Gs,task_type:ui,summary:ho,created_at:ve});po(Ge=>V||!String(Ge||"").trim()?Be:Ge)}function Ha($){if(Ho.trim()&&!globalThis.confirm("Overwrite the current draft markdown with a guided draft?"))return;const V=String(mo||"").trim().toLowerCase()||"{Package}",B=Lm(),fe=kw({package_name:V,title:Gs,task_type:ui,summary:ho,diagram:Tl,context:Ml,included:yl(ki),excluded:yl(_o),plan:yl(ga),dependencies:yl(_a),acceptance:yl(Al),tests_a:yl(xo),tests_b:yl(ya),tests_c:yl(vo),created_at:B,attachments:[]});po(fe)}async function fc(){var V;if(ji)return;go(""),Ui(!0),Ni("");let $="";try{const B=String(mo||"").trim().toLowerCase(),fe=await t.backlog_create({kind:fa,package:B,title:Gs,task_type:ui,summary:ho||null,content:Ho||null}),ve=String((fe==null?void 0:fe.kind)||"").trim(),Be=String((fe==null?void 0:fe.filename)||"").trim(),Ge=[...Ys||[]];if(ve&&Be&&Ge.length){wo(!0);try{const gn=[];for(const Dt of Ge){const _n=await t.backlog_upload_attachment({kind:ve,filename:Be,file:Dt,overwrite:!1}),sn=String(((V=_n==null?void 0:_n.stored)==null?void 0:V.relpath)||"").trim();sn&&gn.push(sn)}if(gn.length){const Dt=await t.backlog_content(ve,Be),_n=String((Dt==null?void 0:Dt.content)||""),sn=await Pm(_n),zs=Fp(_n,gn);await t.backlog_update({kind:ve,filename:Be,content:zs,expected_sha256:sn||null})}}catch(gn){$=String((gn==null?void 0:gn.message)||gn||"Attachment upload failed"),Ni($)}finally{wo(!1)}}ft(!1),Wa(),ve&&d(ve);const at=(await Ar(ve)).find(gn=>gn.filename===Be)||null;at&&await Ks(at,{kind:ve}),$&&F(`Created task, but attachments failed: ${$}`)}catch(B){go(String((B==null?void 0:B.message)||B||"Create failed"))}finally{Ui(!1)}}async function Xi(){if(Xs)return;go("");const $=Ci.trim();if(!$)return;if(!Gs.trim()){go("Title is required before using AI assist.");return}const V=String(mo||"").trim().toLowerCase();if(!V){go("Package is required before using AI assist.");return}const B={id:Wr(),role:"user",content:$,ts:new Date().toISOString()},fe=[...Yo,B];Tr(fe),bo(""),Hi(!0);try{const ve=await t.backlog_assist({kind:fa,package:V,title:Gs,summary:ho||null,draft_markdown:Ho||null,messages:fe.map(Ye=>({role:Ye.role,content:Ye.content})),provider:o||null,model:l||null}),Be=String((ve==null?void 0:ve.reply)||"").trim(),Ge=String((ve==null?void 0:ve.draft_markdown)||"").trim();Be&&Tr(Ye=>[...Ye,{id:Wr(),role:"assistant",content:Be,ts:new Date().toISOString()}]),Ge&&po(Ge)}catch(ve){go(String((ve==null?void 0:ve.message)||ve||"AI assist failed"))}finally{Hi(!1)}}async function Il($){var V;if(X&&aa(c)&&$.length&&r&&!Nr){ke(""),Wn(!0);try{const B=[];for(const fe of $){const ve=await t.backlog_upload_attachment({kind:c,filename:X.filename,file:fe,overwrite:!1}),Be=String(((V=ve==null?void 0:ve.stored)==null?void 0:V.relpath)||"").trim();Be&&B.push(Be)}B.length&&(it(fe=>[...B,...fe].slice(0,12)),re(fe=>Fp(String(fe||""),B)))}catch(B){ke(String((B==null?void 0:B.message)||B||"Attachment upload failed"))}finally{Wn(!1)}}}async function Ol(){if(Ue||!X||!aa(c)||!r)return;if(!(c==="planned"||c==="proposed"||c==="recurrent"||c==="deprecated")){ut("Maintenance chat is only available for planned/proposed/recurrent/deprecated items.");return}ut("");const V=be.trim();if(!V)return;const B={id:Wr(),role:"user",content:V,ts:new Date().toISOString()},fe=[...Pe,B];oe(fe),Se(""),De(!0);try{const ve=yw(X);if(!ve)throw new Error("Backlog item missing package (cannot maintain)");const Be=await t.backlog_maintain({kind:c,filename:X.filename,package:ve,title:X.title||X.filename,summary:X.summary||null,draft_markdown:te||null,messages:fe.map(at=>({role:at.role,content:at.content})),provider:o||null,model:l||null}),Ge=String((Be==null?void 0:Be.reply)||"").trim(),Ye=String((Be==null?void 0:Be.draft_markdown)||"").trim();Ge&&oe(at=>[...at,{id:Wr(),role:"assistant",content:Ge,ts:new Date().toISOString()}]),Ye&&re(Ye)}catch(ve){ut(String((ve==null?void 0:ve.message)||ve||"Maintenance AI failed"))}finally{De(!1)}}async function su(){if(_e||!r)return;if(It.voice_ptt_busy){sr("Wait for transcription to finish.");return}nt(""),sr("");const $=Mt.trim();if(!$)return;const V={id:Wr(),role:"user",content:$,ts:new Date().toISOString()},B=[...dt,V];jt(B),gt(""),Kt(!0);try{const fe=await t.backlog_advisor({messages:B.map(Ye=>({role:Ye.role,content:Ye.content})),provider:o||null,model:l||null,agent:u||null,include_trace:se,focus_kind:c,focus_type:Y}),ve=se&&Array.isArray(fe==null?void 0:fe.tool_trace)?fe.tool_trace:[],Be=String((fe==null?void 0:fe.run_id)||"").trim(),Ge=String((fe==null?void 0:fe.reply)||"").trim();if(se&&ve.length){const Ye={id:Wr(),role:"system",title:"Tool execution",level:"info",ts:new Date().toISOString(),content:JSON.stringify({run_id:Be||null,tool_trace:ve},null,2)};jt(at=>[...at,Ye])}Ge&&jt(Ye=>[...Ye,{id:Wr(),role:"assistant",content:Ge,ts:new Date().toISOString()}])}catch(fe){nt(String((fe==null?void 0:fe.message)||fe||"Backlog advisor failed"))}finally{Kt(!1)}}async function mc($){var Ge;const V=Array.from($||[]);if(!V.length)return;const B=[],fe=[],ve=6,Be=2e4;for(const Ye of V.slice(0,ve)){const at=String((Ye==null?void 0:Ye.name)||"").trim()||"attachment";fe.push(at);try{const gn=await Ye.text(),Dt=gn.length>Be?`${gn.slice(0,Be)}
88
+ …(truncated)…
89
+ `:gn;B.push(`[attached file: ${at}]
90
+
91
+ \`\`\`
92
+ ${Dt}
93
+ \`\`\``)}catch{B.push(`[attached file: ${at}] (unreadable in browser)`)}}vt(Ye=>[...fe,...Ye].slice(0,12)),gt(Ye=>{const at=String(Ye||"").trim(),gn=B.join(`
94
+
95
+ `);return at?`${at}
96
+
97
+ ${gn}`:gn});try{(Ge=on.current)==null||Ge.focus()}catch{}}function wa($){const V=String($.id||$.ts||"").trim(),B=String($.content||"").trim();!V||!B||(sr(""),It.toggle_tts(V,B))}function Va($){const V=String($.id||$.ts||"").trim(),B=It.tts_playback;return!V||!B.key||B.key!==V?"idle":B.status}function qa(){It.stop_voice_ptt_recording(),It.stop_tts()}const Ga=X&&om(X)?Ou(X.task_type):null,Bn=!!(X&&c==="planned"),Ya=!!(X&&c==="proposed"),Ko=!!(X&&c==="planned"),ba=!!(X&&aa(c)&&c!=="deprecated"&&c!=="trash"),ur=!!(X&&aa(c)&&c!=="trash"),Xa=!!(X&&c==="trash"),jo=!!(X&&c==="deprecated"),Ki=!h||_==="list",Ji=!h||_==="detail";return s.jsxs("div",{className:"page backlog_page",children:[s.jsxs("div",{className:"page_inner",children:[s.jsxs("div",{className:"card",children:[s.jsxs("div",{className:"title",children:[s.jsx("h1",{children:"Backlog"}),r&&Ze?s.jsxs("span",{className:"badge",style:{background:Ze.runner_alive?"rgba(34, 197, 94, 0.14)":"rgba(239, 68, 68, 0.14)",borderColor:Ze.runner_alive?"rgba(34, 197, 94, 0.35)":"rgba(239, 68, 68, 0.35)"},title:Ze.codex_model||Ze.codex_reasoning_effort?`codex: ${String(Ze.codex_model||"").trim()||"?"}${Ze.codex_reasoning_effort?` (reasoning ${Ze.codex_reasoning_effort})`:""}`:void 0,children:["exec worker ",Ze.runner_alive?"on":"off",!h&&Ze.codex_model?` · ${Ze.codex_model}`:"",!h&&Ze.codex_reasoning_effort?` · ${Ze.codex_reasoning_effort}`:""]}):null]}),s.jsxs("div",{className:"row backlog_toolbar",style:{alignItems:"center",justifyContent:"space-between"},children:[s.jsxs("div",{className:"tab_bar backlog_tabs",style:{paddingBottom:0,borderBottom:"none"},children:[s.jsx("button",{className:`tab ${c==="processing"?"active":""}`,onClick:()=>d("processing"),children:"Processing"}),s.jsx("button",{className:`tab ${c==="planned"?"active":""}`,onClick:()=>d("planned"),children:"Planned"}),s.jsx("button",{className:`tab ${c==="proposed"?"active":""}`,onClick:()=>d("proposed"),children:"Proposed"}),s.jsx("button",{className:`tab ${c==="recurrent"?"active":""}`,onClick:()=>d("recurrent"),children:"Recurrent"}),s.jsx("button",{className:`tab ${c==="completed"?"active":""}`,onClick:()=>d("completed"),children:"Completed"}),s.jsx("button",{className:`tab ${c==="failed"?"active":""}`,onClick:()=>d("failed"),children:"Failed"}),s.jsx("button",{className:`tab ${c==="deprecated"?"active":""}`,onClick:()=>d("deprecated"),children:"Deprecated"}),s.jsx("button",{className:`tab ${c==="trash"?"active":""}`,onClick:()=>d("trash"),children:"Trash"})]}),s.jsxs("div",{className:"row backlog_toolbar_actions",style:{gap:"8px",justifyContent:"flex-end"},children:[s.jsxs("button",{className:"btn btn_icon",onClick:()=>ft(!0),disabled:!r,title:"New task","aria-label":"New task",children:[s.jsx(Gn,{name:"plus",size:16}),s.jsx("span",{className:"btn_label",children:"New"})]}),s.jsxs("button",{className:`btn btn_icon ${(kn?ai:b)?"is_loading":""}`,onClick:()=>void xr(),disabled:!r||(kn?ai:b),title:"Refresh","aria-label":"Refresh",children:[s.jsx(Gn,{name:"refresh",size:16}),s.jsx("span",{className:"btn_label",children:kn?ai?"Refreshing":"Refresh":b?"Refreshing":"Refresh"})]})]})]}),s.jsx("div",{className:`row backlog_filters ${c==="completed"?"backlog_filters_completed":""}`,style:{marginTop:"10px",alignItems:c==="completed"?"flex-start":"center",justifyContent:"space-between"},children:c==="completed"?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"backlog_filters_left",children:s.jsx("div",{className:"field backlog_search_field",children:s.jsx("input",{value:O,onChange:$=>L($.target.value),placeholder:kn?"Search exec requests (id/status/backlog/error…)":"Search backlog (id/title/package/filename…)"})})}),s.jsxs("div",{className:"backlog_filters_right",children:[s.jsxs("div",{className:"tab_bar backlog_completed_view_tabs",style:{paddingBottom:0,borderBottom:"none"},children:[s.jsx("button",{className:`tab ${en==="tasks"?"active":""}`,onClick:()=>Zn("tasks"),children:"Tasks"}),s.jsx("button",{className:`tab ${en==="runs"?"active":""}`,onClick:()=>Zn("runs"),children:"Runs"})]}),s.jsxs("div",{className:"backlog_completed_meta_row",children:[kn?null:s.jsx("div",{className:"field backlog_type_filter_field",children:s.jsxs("select",{value:Y,onChange:$=>ne($.target.value),title:"Filter by type",children:[s.jsx("option",{value:"all",children:"all"}),s.jsx("option",{value:"task",children:"task"}),s.jsx("option",{value:"bug",children:"bug"}),s.jsx("option",{value:"feature",children:"feature"})]})}),s.jsx("div",{className:"mono muted backlog_count",style:{fontSize:"var(--font-size-sm)"},children:kn?`${Vi.length}/${ms.length}`:`${Js.length}/${x.length}`})]})]})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"field backlog_search_field",children:s.jsx("input",{value:O,onChange:$=>L($.target.value),placeholder:kn?"Search exec requests (id/status/backlog/error…)":"Search backlog (id/title/package/filename…)"})}),kn?null:s.jsx("div",{className:"field backlog_type_filter_field",children:s.jsxs("select",{value:Y,onChange:$=>ne($.target.value),title:"Filter by type",children:[s.jsx("option",{value:"all",children:"all"}),s.jsx("option",{value:"task",children:"task"}),s.jsx("option",{value:"bug",children:"bug"}),s.jsx("option",{value:"feature",children:"feature"})]})}),s.jsx("div",{className:"mono muted backlog_count",style:{fontSize:"var(--font-size-sm)"},children:kn?`${Vi.length}/${ms.length}`:`${Js.length}/${x.length}`})]})}),!kn&&c==="planned"&&A.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:[A.length," planned item",A.length===1?"":"s"," hidden while queued/running."," ",s.jsx("button",{className:"btn",style:{padding:"4px 10px",marginLeft:"6px"},onClick:()=>d("processing"),disabled:!r,children:"View processing"})]}):null,!kn&&c==="planned"?s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer",fontSize:"var(--font-size-sm)"},children:"Batch actions (shared context)"}),s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select multiple planned backlog items to either execute them sequentially in a single exec worker (one Codex run) or merge them into a master backlog item."}),s.jsx("div",{style:{marginTop:"10px"},children:s.jsx(w_,{options:x.map($=>String($.filename||"").trim()).filter(Boolean),value:dn,disabled:!r||b,placeholder:"(no items selected)",onChange:$=>hn($)})}),s.jsxs("div",{className:"row",style:{gap:"8px",marginTop:"10px",flexWrap:"wrap"},children:[s.jsx("button",{className:"btn primary",disabled:!r||pr.length<2,onClick:()=>{Nn(""),$n("uat"),rn(!0)},children:"Execute batch"}),s.jsx("button",{className:"btn",disabled:!r||pr.length<2,onClick:()=>{const $=(()=>{const V=pr.map(fe=>String(fe.package||"").trim()).filter(Boolean);if(!V.length)return"framework";const B=V[0];return V.every(fe=>fe===B)?B:"framework"})();ds($),Bo("task"),gr(`Master backlog (${pr.length} items)`),Tn(""),Kn(""),ir(!0)},children:"Merge → master"})]})]})]}):null,!kn&&S?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:S}):null,kn&&qr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:qr}):null,!kn&&!S&&!b&&!x.length?s.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:"No items (or backlog browsing not configured on this gateway)."}):null,kn&&!qr&&!ai&&!ms.length?s.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:"No exec requests found."}):null]}),s.jsxs("div",{className:"inbox_layout",children:[Ki?s.jsx("div",{className:"card inbox_sidebar",children:s.jsx("div",{className:"inbox_list",children:kn?Vi.length?Vi.map($=>{const V=(Ce==null?void 0:Ce.request_id)===$.request_id,B=String($.status||"").trim().toLowerCase(),fe=B==="completed"||B==="promoted"?"ok":B==="failed"?"danger":B==="running"?"info":B==="queued"||B==="awaiting_qa"?"warn":"muted";return s.jsxs("button",{className:`inbox_item ${V?"active":""}`,onClick:()=>void So($),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`chip ${fe} mono`,children:B||"unknown"}),s.jsx("span",{className:"item_title_text",children:la($.backlog_filename||$.backlog_relpath||"request",56)})]}),s.jsx("div",{className:"inbox_item_meta mono muted",children:la($.request_id,80)}),$.error?s.jsx("div",{className:"inbox_item_meta mono",style:{color:"rgba(239, 68, 68, 0.9)"},children:la($.error,180)}):null]},`exec:${$.request_id}`)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No requests."}):Js.length?Js.map($=>{const V=(X==null?void 0:X.filename)===$.filename,B=om($),fe=Ou($.task_type);return s.jsxs("button",{className:`inbox_item ${V?"active":""}`,onClick:()=>void Ks($),children:[s.jsxs("div",{className:"inbox_item_title",children:[B?null:s.jsx("span",{className:"pill unparsed",children:"unparsed"}),$.item_id?s.jsxs("span",{className:"chip info mono",children:["#",$.item_id]}):null,B?s.jsx("span",{className:`chip ${Pp(fe)} mono`,children:fe}):null,$.package?s.jsx("span",{className:"chip muted mono",children:$.package}):null,s.jsx("span",{className:"item_title_text",children:la($.title||$.filename,56)})]}),$.summary?s.jsx("div",{className:"item_summary_text",children:s.jsx(co,{text:vw($.summary),className:"backlog_summary_md"})}):null,s.jsx("div",{className:"inbox_item_meta mono muted",children:$.filename})]},`${c}:${$.filename}`)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No items."})})}):null,Ji?s.jsx("div",{className:"card inbox_viewer",children:kn?Ce?s.jsxs("div",{className:"inbox_detail",children:[s.jsxs("div",{className:"inbox_detail_header",children:[s.jsxs("div",{className:"inbox_detail_title",children:[s.jsx("span",{className:"mono",style:{fontWeight:700},children:Ce.backlog_filename||Ce.backlog_relpath||Ce.request_id}),(()=>{const $=String(Ce.status||"").trim().toLowerCase(),V=$==="completed"||$==="promoted"?"ok":$==="failed"?"danger":$==="running"?"info":$==="queued"||$==="awaiting_qa"?"warn":"muted";return s.jsx("span",{className:`chip mono ${V}`,children:$||"unknown"})})(),s.jsx("span",{className:"chip mono muted",children:la(Ce.request_id,16)})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[h?s.jsx("button",{className:"btn",onClick:()=>g("list"),disabled:Cn,children:"Back"}):null,s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(Ce.request_id),disabled:Cn,"aria-label":"Copy request id",title:"Copy request id",children:[s.jsx(Gn,{name:"copy",size:16}),h?null:"Copy request id"]}),Ce.backlog_relpath?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(Ce.backlog_relpath||""),disabled:Cn,"aria-label":"Copy backlog path",title:"Copy backlog path",children:[s.jsx(Gn,{name:"copy",size:16}),h?null:"Copy backlog path"]}):null,(()=>{var B;const V=(Array.isArray((B=qe==null?void 0:qe.backlog_queue)==null?void 0:B.items)?qe.backlog_queue.items:[]).map(fe=>String((fe==null?void 0:fe.relpath)||"").trim()).filter(Boolean);return V.length?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(V.join(`
98
+ `)),disabled:Cn,"aria-label":"Copy backlog paths",title:"Copy backlog paths",children:[s.jsx(Gn,{name:"copy",size:16}),h?null:"Copy backlog paths"]}):null})(),Ce.run_dir_relpath?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(Ce.run_dir_relpath||""),disabled:Cn,"aria-label":"Copy run dir",title:"Copy run dir",children:[s.jsx(Gn,{name:"copy",size:16}),h?null:"Copy run dir"]}):null]})]}),s.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[Ce.created_at?`created ${new Date(Ce.created_at).toLocaleString()}`:"",Ce.started_at?` • started ${new Date(Ce.started_at).toLocaleString()}`:"",Ce.finished_at?` • finished ${new Date(Ce.finished_at).toLocaleString()}`:""]}),Ce.error?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Ce.error}):null,mr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:mr}):null,s.jsx("div",{style:{marginTop:"12px"},children:Cn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):s.jsxs(s.Fragment,{children:[(()=>{if(String(Ce.status||"").trim().toLowerCase()!=="awaiting_qa")return null;const V=String((qe==null?void 0:qe.execution_mode)||"").trim().toLowerCase()||"uat",B=String((qe==null?void 0:qe.candidate_relpath)||"").trim(),fe=String((qe==null?void 0:qe.candidate_patch_relpath)||"").trim(),ve=String((qe==null?void 0:qe.candidate_manifest_relpath)||"").trim(),Be=String((qe==null?void 0:qe.uat_current_relpath)||"").trim(),Ge=String((qe==null?void 0:qe.uat_lock_owner_request_id)||"").trim(),Ye=!!(qe!=null&&qe.uat_lock_acquired),at=!!(qe!=null&&qe.uat_pending),gn=(qe==null?void 0:qe.uat_deploy)??null,Dt=String((qe==null?void 0:qe.uat_deploy_error)||"").trim(),_n=qe==null?void 0:qe.attempt,sn=(qe==null?void 0:qe.promotion_report)??null,zs=!!(sn!=null&&sn.blocked),Dr=String((sn==null?void 0:sn.reason)||"").trim(),$i=Array.isArray(sn==null?void 0:sn.conflicts)?(sn==null?void 0:sn.conflicts).slice(0,8):[],Qs=typeof(sn==null?void 0:sn.conflicts_total)=="number"?Number(sn.conflicts_total):$i.length;let vs="",fi="";const Yn=[];try{const Hn=gn==null?void 0:gn.processes;if(Hn&&typeof Hn=="object"&&!Array.isArray(Hn)){typeof Hn.status=="string"&&(vs=String(Hn.status||"").trim()),typeof Hn.reason=="string"&&(fi=String(Hn.reason||"").trim());for(const[Dl,Ka]of Object.entries(Hn)){if(!Ka||typeof Ka!="object"||Array.isArray(Ka))continue;const mi=Ka.probe;!mi||typeof mi!="object"||mi.ok===!1&&Yn.push(String(Dl))}}}catch{}return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_title",children:"QA decision"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"mode:"})," ",V]}),typeof _n=="number"?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"attempt:"})," ",_n]}):null,B?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"candidate:"})," ",B]}):null,ve?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"manifest:"})," ",ve]}):null,fe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"patch:"})," ",fe]}):null,Be?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"uat_current:"})," ",Be]}):null,V==="uat"&&Ge?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"uat_lock:"})," ",Ge,Ye?" (owned)":at?" (pending)":""]}):null]}),V==="inplace"?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Inplace mode: prod may already be mutated. Approving only finalizes the request status."}):V==="uat"&&at&&Ge&&!Ye?s.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT currently points to ",la(Ge,16),". Click “Restart UAT” to switch the shared UAT stack to this request."]}):V==="uat"&&Ye?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"UAT URLs: gateway `http://localhost:6081`, observer `http://localhost:6082`, code `http://localhost:6083`, flow `http://localhost:6084`"}),Yn.length?s.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT may be unreachable: URL probe failed for ",Yn.slice(0,4).join(", "),Yn.length>4?"…":"",". Click “Restart UAT” and check process logs."]}):null]}):null,V==="uat"&&vs==="skipped"&&fi==="process_manager_disabled"?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"UAT services were not started: process manager is disabled. Restart the gateway with `ABSTRACTGATEWAY_ENABLE_PROCESS_MANAGER=1`."}):null,Dt?s.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT deploy failed: ",Dt]}):null,zs&&Dr==="conflicts"?s.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["Promotion blocked: prod diverged from the candidate base (",Qs," conflict",Qs===1?"":"s","). Use “Iterate” to re-run the request on top of current prod, or resolve conflicts manually.",$i.length?s.jsx("ul",{style:{marginTop:"8px",paddingLeft:"18px"},children:$i.map((Hn,Dl)=>s.jsxs("li",{children:[String((Hn==null?void 0:Hn.repo)||""),"/",String((Hn==null?void 0:Hn.path)||"")," (",String((Hn==null?void 0:Hn.reason)||"conflict"),")"]},`c:${Dl}`))}):null]}):null,s.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:[fe?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(fe),disabled:ar,children:[s.jsx(Gn,{name:"copy",size:16}),"Copy patch path"]}):null,ve?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(ve),disabled:ar,children:[s.jsx(Gn,{name:"copy",size:16}),"Copy manifest path"]}):null,B?s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(B),disabled:ar,children:[s.jsx(Gn,{name:"copy",size:16}),"Copy candidate path"]}):null]}),s.jsx("div",{style:{marginTop:"10px"},children:s.jsx("textarea",{value:hs,onChange:Hn=>pn(Hn.target.value),rows:3,placeholder:"QA feedback (what to change / fix)…",style:{width:"100%",resize:"vertical",minHeight:"72px"},disabled:ar})}),Us?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Us}):null,s.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"8px",marginTop:"10px"},children:[V==="uat"?s.jsx("button",{className:"btn",onClick:()=>void Gi(),disabled:ar,children:"Restart UAT"}):null,s.jsx("button",{className:"btn primary",onClick:()=>void Da(),disabled:ar,children:V==="inplace"?"Approve (finalize)":"Approve → promote to prod"}),s.jsx("button",{className:"btn",onClick:()=>void qi(),disabled:ar,children:"Iterate (send feedback)"})]}),s.jsx("div",{className:"section_divider"})]})})(),(()=>{if(String(Ce.status||"").trim().toLowerCase()!=="promoted")return null;const V=String((qe==null?void 0:qe.promoted_at)||"").trim(),B=(qe==null?void 0:qe.promotion)??null,fe=(qe==null?void 0:qe.promotion_report)??null,ve=typeof(B==null?void 0:B.copied)=="number"?Number(B==null?void 0:B.copied):null,Be=typeof(B==null?void 0:B.deleted)=="number"?Number(B==null?void 0:B.deleted):null,Ge=String((B==null?void 0:B.manifest_sha256)||"").trim(),Ye=String((B==null?void 0:B.mode)||"").trim(),at=(fe==null?void 0:fe.redeploy)??null,gn=String((at==null?void 0:at.status)||"").trim(),Dt=String((at==null?void 0:at.reason)||"").trim(),_n=String((fe==null?void 0:fe.redeploy_error)||"").trim();return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_title",children:"Promotion"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[V?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"promoted_at:"})," ",new Date(V).toLocaleString()]}):null,Ye?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"mode:"})," ",Ye]}):null,Ge?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"manifest_sha256:"})," ",Ge.slice(0,16),"…"]}):null,ve!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"files_copied:"})," ",ve]}):null,Be!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"files_deleted:"})," ",Be]}):null,gn?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"redeploy:"})," ",gn,Dt?` (${Dt})`:""]}):null,_n?s.jsxs("div",{style:{color:"rgba(239, 68, 68, 0.9)"},children:[s.jsx("span",{className:"mono muted",children:"redeploy_error:"})," ",_n]}):null]}),s.jsx("div",{className:"section_divider"})]})})(),s.jsx("div",{className:"section_title",children:"Execution"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"status:"})," ",Ce.status||"unknown"]}),Ce.executor_type?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"executor:"})," ",Ce.executor_type]}):null,Ce.target_agent?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"target_agent:"})," ",Ce.target_agent]}):null,Ce.target_model?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"model:"})," ",Ce.target_model,Ce.target_reasoning_effort?` (reasoning ${Ce.target_reasoning_effort})`:""]}):null,Ce.exit_code!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"exit_code:"})," ",String(Ce.exit_code)]}):null,Ce.run_dir_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"run_dir:"})," ",Ce.run_dir_relpath]}):null,ys.age_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"age:"})," ",Md(ys.age_ms)]}):null,ys.queue_delay_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"queue_delay:"})," ",Md(ys.queue_delay_ms)]}):null,ys.run_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"run_time:"})," ",Md(ys.run_ms)]}):null,ys.total_ms!=null&&ys.is_done?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"total_time:"})," ",Md(ys.total_ms)]}):null,Yr?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"commands:"})," ",Yr.command_count.toLocaleString(),Yr.command_fail_count?` (${Yr.command_fail_count.toLocaleString()} failed)`:""]}):null,s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"tokens:"})," ",Yr!=null&&Yr.has_tokens?s.jsxs(s.Fragment,{children:["in ",Yr.input_tokens.toLocaleString(),Yr.cached_input_tokens?` (cached ${Yr.cached_input_tokens.toLocaleString()})`:"",", out ",Yr.output_tokens.toLocaleString(),", total ",Yr.total_tokens.toLocaleString()]}):s.jsx("span",{className:"mono muted",children:cr==="events"?"n/a":'select "events"'})]})]}),(()=>{const $=qe&&typeof qe.promotion=="object"?qe.promotion:null;if(!$)return null;const V=qe&&typeof qe.promotion_report=="object"?qe.promotion_report:null,B=String(($==null?void 0:$.mode)||"").trim(),fe=($==null?void 0:$.copied)!=null?String($.copied):"",ve=($==null?void 0:$.deleted)!=null?String($.deleted):"",Be=String(($==null?void 0:$.manifest_sha256)||"").trim(),Ge=V&&typeof V.redeploy=="object"?V.redeploy:null,Ye=Ge?String(Ge.status||"").trim():"";return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Promotion"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[B?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"mode:"})," ",B]}):null,fe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"copied:"})," ",fe," files"]}):null,ve?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"deleted:"})," ",ve," files"]}):null,Be?s.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[s.jsxs("div",{style:{minWidth:"180px"},children:[s.jsx("span",{className:"mono muted",children:"manifest_sha256:"})," ",Be.slice(0,16),"…"]}),s.jsxs("button",{className:"btn btn_icon",onClick:()=>js(Be),disabled:ar,children:[s.jsx(Gn,{name:"copy",size:16}),"Copy sha"]})]}):null,Ye?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"redeploy:"})," ",Ye]}):null]})]})})(),(()=>{var B;const V=(Array.isArray((B=qe==null?void 0:qe.backlog_queue)==null?void 0:B.items)?qe.backlog_queue.items:[]).map(fe=>String((fe==null?void 0:fe.relpath)||"").trim()).filter(Boolean);return V.length?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Backlog queue"}),s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:V.map(fe=>s.jsx("div",{children:fe},`bq:${fe}`))})]}):null})(),(()=>{var V;const $=String(((V=qe==null?void 0:qe.result)==null?void 0:V.last_message)||Ce.last_message||"").trim();return $?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Last message"}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:$})]}):null})(),s.jsx("div",{className:"section_divider"}),s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",gap:"8px",marginTop:"8px"},children:[s.jsx("div",{className:"section_title",style:{marginTop:0},children:"Live logs"}),s.jsxs("div",{style:{display:"flex",gap:"6px",alignItems:"center",justifyContent:"flex-end",flexWrap:"wrap"},children:[s.jsxs("select",{value:cr,onChange:$=>ps($.target.value),children:[s.jsx("option",{value:"events",children:"events"}),s.jsx("option",{value:"stderr",children:"stderr"}),s.jsx("option",{value:"last_message",children:"last message"})]}),s.jsx("button",{className:`btn ${Gr?"primary":""}`,onClick:()=>Vs($=>!$),disabled:!(Ce!=null&&Ce.request_id),children:Gr?"Auto on":"Auto off"}),s.jsxs("button",{className:`btn btn_icon ${$r?"is_loading":""}`,onClick:()=>void Ct(),disabled:$r||!(Ce!=null&&Ce.request_id),"aria-label":"Refresh logs",title:"Refresh logs",children:[s.jsx(Gn,{name:"refresh",size:16}),h?null:$r?"Loading…":"Refresh"]})]})]}),hr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:hr}):null,!hr&&Hs?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"(tail truncated)"}):null,cr==="events"&&Mr?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"exec_log_scroll",ref:$s,onScroll:$=>{ci.current=Ip($.currentTarget,12)},children:Mr.events.length===0?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"(no events yet)"}):Mr.events.map($=>{var fi;const V=$.payload,B=V&&typeof V.item=="object"?V.item:null,fe=B?String(B.type||"").trim():"",ve=B?String(B.id||"").trim():"",Be=V?String(V.thread_id||"").trim():"",Ge=pw($.type,V),Ye=Ge==="error"?"danger":Ge==="ok"?"ok":"info",at=_w(V),gn=gw($.type,V),Dt=String((V==null?void 0:V.message)||((fi=V==null?void 0:V.error)==null?void 0:fi.message)||"").trim(),_n=B?String(B.text||"").trim():"",sn=B?String(B.command||"").trim():"",zs=B?String(B.status||"").trim():"",Dr=B&&B.exit_code!=null?String(B.exit_code):"",$i=B?String(B.aggregated_output||"").trim():"",Qs=B&&Array.isArray(B.items)?B.items:[],vs=sn?v_(sn)||sn:"";return s.jsxs("details",{className:`exec_event ${Ge}`,children:[s.jsxs("summary",{className:"exec_event_summary",children:[at?s.jsx("span",{className:"exec_event_when mono muted",children:at}):null,at?s.jsx("span",{className:"exec_event_sep mono muted",children:"|"}):null,s.jsx("span",{className:"exec_event_main mono",title:gn,children:gn}),s.jsx("span",{className:`chip mono ${Ye}`,children:fe||$.type}),Dr?s.jsxs("span",{className:"mono muted exec_event_right",children:["exit=",Dr]}):null]}),s.jsxs("div",{className:"exec_event_body",children:[s.jsxs("div",{className:"row exec_event_meta",children:[s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:$.type}),ve?s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:ve}):null,Be?s.jsxs("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["thread ",la(Be,18)]}):null]}),Dt?s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Dt}):null,Qs&&Qs.length>0?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Qs.map((Yn,Hn)=>s.jsxs("div",{children:[(Yn&&Yn.completed)===!0?"✓":"○"," ",String((Yn==null?void 0:Yn.text)||"").trim()]},`${$.idx}-todo-${Hn}`))}):null,sn?s.jsxs("div",{style:{marginTop:"8px"},children:[s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["command_execution ",zs?`(${zs})`:""," ",Dr?`exit=${Dr}`:""]}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"6px"},children:vs})]}):null,$i?s.jsxs("details",{style:{marginTop:"8px"},children:[s.jsxs("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:["output (",$i.length.toLocaleString()," chars)"]}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:$i})]}):null,_n?s.jsx("div",{style:{marginTop:"8px"},children:s.jsx(co,{text:_n})}):null]})]},`${ve||$.idx}-${$.type}`)})}),s.jsxs("details",{style:{marginTop:"8px"},children:[s.jsxs("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:["Raw JSONL",Mr.bad?` (${Mr.bad} unparsable line(s))`:""]}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px",maxHeight:"240px",overflow:"auto"},children:Mr.raw||""})]})]}):s.jsx("div",{className:"exec_log_scroll",ref:$s,onScroll:$=>{ci.current=Ip($.currentTarget,12)},children:s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)"},children:(()=>{var V;if(String(Zr||"").trim())return Zr;if(cr==="last_message"){const B=String(((V=qe==null?void 0:qe.result)==null?void 0:V.last_message)||Ce.last_message||"").trim();if(B)return B;const fe=String(Ce.status||"").trim().toLowerCase();return fe==="queued"||fe==="running"?"(last message is written when the run finishes — use events for live output)":"(no last message yet)"}return cr==="stderr"?"(no stderr yet)":"(no logs yet)"})()})}),(Fl=qe==null?void 0:qe.result)!=null&&Fl.logs?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Logs"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[qe.result.logs.events_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"events:"})," ",qe.result.logs.events_relpath]}):null,qe.result.logs.stderr_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"stderr:"})," ",qe.result.logs.stderr_relpath]}):null,qe.result.logs.last_message_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"last_message:"})," ",qe.result.logs.last_message_relpath]}):null]})]}):null]})})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an exec request."}):X?s.jsxs("div",{className:"inbox_detail",children:[s.jsxs("div",{className:"inbox_detail_header",children:[s.jsxs("div",{className:"inbox_detail_title",children:[s.jsx("span",{className:"mono",style:{fontWeight:700},children:X.title||X.filename}),X.item_id?s.jsxs("span",{className:"chip mono muted",children:["#",X.item_id]}):null,X.package?s.jsx("span",{className:"chip mono muted",children:X.package}):null,Ga?s.jsx("span",{className:`chip ${Pp(Ga)} mono`,children:Ga}):null,om(X)?null:s.jsx("span",{className:"chip mono muted",children:"unparsed"}),s.jsxs("span",{className:"chip mono muted backlog_path_chip",children:[s.jsx("span",{className:"mono",children:X.filename}),s.jsx("button",{className:"chip_icon_btn",type:"button",onClick:()=>js(`docs/backlog/${String(c)}/${X.filename}`),"aria-label":"Copy path",title:"Copy path",disabled:Z,children:s.jsx(Gn,{name:"copy",size:14})})]})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[h?s.jsx("button",{className:"btn",onClick:()=>g("list"),disabled:Z,children:"Back"}):null,c==="completed"&&en==="tasks"?s.jsx("button",{className:"btn",onClick:()=>void mn(X.filename),disabled:Z||!r,children:"Execution log"}):null,Bn?s.jsx("button",{className:"btn primary",onClick:()=>{F(""),Ft("uat"),Wt({kind:"planned",filename:X.filename,title:X.title||X.filename}),Tt(!0)},disabled:Z,children:"Execute"}):null,Ya?s.jsx("button",{className:"btn primary",onClick:()=>void Fr("planned"),disabled:Z,children:"Elevate → planned"}):null,Ko?s.jsx("button",{className:"btn",onClick:()=>void Fr("proposed"),disabled:Z,children:"Downgrade → proposed"}):null,jo?s.jsx("button",{className:"btn",onClick:()=>void Fr("proposed"),disabled:Z,children:"Restore → proposed"}):null,Xa?s.jsx("button",{className:"btn",onClick:()=>void Fr("proposed"),disabled:Z,children:"Restore → proposed"}):null,ba?s.jsx("button",{className:"btn",onClick:()=>void Fr("deprecated"),disabled:Z,children:"Deprecate"}):null,ur?s.jsxs("button",{className:"btn btn_icon",onClick:()=>void Fr("trash"),disabled:Z,"aria-label":"Trash",title:"Trash",children:[s.jsx(Gn,{name:"trash",size:16}),h?null:"Trash"]}):null,E?s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>U(!1),disabled:he,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Ei(),disabled:he,children:he?"Saving…":"Save"})]}):s.jsxs("button",{className:"btn btn_icon",onClick:()=>{U(!0),re(ge),xe(""),oe([]),Se(""),ut(""),ke(""),it([])},disabled:ue||he,"aria-label":"Edit",title:"Edit",children:[s.jsx(Gn,{name:"edit",size:16}),h?null:"Edit"]})]})]}),s.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[String(c),$e?` • sha ${la($e,10)}`:""]}),z?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:z}):null,ce?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ce}):null,G?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:G}):null,ue?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):E?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"field",style:{marginTop:"8px"},children:s.jsx("textarea",{value:te,onChange:$=>re($.target.value),rows:18,className:"mono"})}),s.jsxs("div",{className:"backlog_edit_sticky",children:[s.jsx("div",{className:"section_title",style:{marginTop:0},children:"Maintenance AI (chat)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Ask the maintainer to refine this backlog item. Provider/model can be set in Settings (blank = gateway default)."}),s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)",marginTop:"6px"},children:["Using:"," ",s.jsxs("span",{className:"mono",children:[o||"(gateway default)"," / ",l||"(gateway default)"]})]}),s.jsxs("div",{className:"row",style:{marginTop:"10px",justifyContent:"space-between",gap:"10px",flexWrap:"wrap"},children:[s.jsx("input",{ref:kr,type:"file",multiple:!0,style:{display:"none"},onChange:$=>{const V=Array.from($.target.files||[]);V.length&&(Il(V),$.currentTarget.value="")}}),s.jsx("button",{type:"button",className:"btn",onClick:()=>{var $;return($=kr.current)==null?void 0:$.click()},disabled:!r||!X||!aa(c)||Nr,children:Nr?"Uploading…":"Attach files"}),st.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["Last attached: ",st[0]]}):null]}),ae?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ae}):null,s.jsx("div",{className:"section_divider",style:{marginTop:"10px"}}),s.jsx(Gd,{messages:Pe,className:"backlog_chat_thread_small",empty:s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages yet."})}),s.jsx("div",{style:{marginTop:"10px"},children:s.jsx(qd,{value:be,onChange:Se,onSubmit:()=>void Ol(),placeholder:"Message to maintainer (e.g. improve acceptance criteria…)",disabled:!r||Ue||!X||!aa(c),busy:Ue,rows:3,sendButtonClassName:"btn primary"})}),ct?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ct}):null]})]}):ge?s.jsx(co,{text:ge}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No content loaded."})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a backlog item."})}):null]})]}),s.jsxs(Li,{open:_t,title:"Execute backlog item?",onClose:()=>{Tt(!1),Wt(null)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{Tt(!1),Wt(null)},disabled:Z,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Ua(),disabled:Z||fn||!Ot||(Ze==null?void 0:Ze.can_execute)!==!0,children:Z?"Executing…":"Execute"})]}),children:[s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:["Target:"," ",s.jsx("span",{className:"mono",style:{fontWeight:700},children:Ot?Ot.title:"(unknown)"})]}),s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:"Execution mode"}),s.jsxs("select",{className:"input",value:nn,onChange:$=>Ft($.target.value),disabled:Z,style:{width:"100%"},children:[s.jsx("option",{value:"uat",children:"UAT (staged, safe)"}),s.jsx("option",{value:"inplace",children:"Inplace (dangerous, edits prod)"})]}),nn==="inplace"?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Warning: inplace runs directly in the prod workspace. Use only when you understand the risk."}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"The run will execute in a candidate workspace. When it reaches “awaiting QA”, click “Restart UAT” to deploy it to the shared UAT stack."})]}),fn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!fn&&(Ze==null?void 0:Ze.can_execute)!==!0?s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:(Ze==null?void 0:Ze.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(Ze==null?void 0:Ze.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(Ze==null?void 0:Ze.codex_available)===!1?`Codex not found on gateway: ${String((Ze==null?void 0:Ze.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),Ze!=null&&Ze.runner_error?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Ze.runner_error}):null,s.jsxs("details",{style:{marginTop:"8px"},children:[s.jsx("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:"Setup"}),s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:[s.jsx("div",{children:"Docs: `docs/backlog/README.md`"}),s.jsx("div",{style:{marginTop:"6px"},children:"Required env (example):"}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["ABSTRACTGATEWAY_BACKLOG_EXEC_RUNNER=1","ABSTRACTGATEWAY_BACKLOG_EXECUTOR=codex_cli","ABSTRACTGATEWAY_BACKLOG_CODEX_BIN=codex","ABSTRACTGATEWAY_BACKLOG_CODEX_MODEL=gpt-5.2"].join(`
99
+ `)}),s.jsx("button",{className:"btn",style:{marginTop:"8px"},onClick:()=>js(["ABSTRACTGATEWAY_BACKLOG_EXEC_RUNNER=1","ABSTRACTGATEWAY_BACKLOG_EXECUTOR=codex_cli","ABSTRACTGATEWAY_BACKLOG_CODEX_BIN=codex","ABSTRACTGATEWAY_BACKLOG_CODEX_MODEL=gpt-5.2"].join(`
100
+ `)),children:"Copy setup"})]})]})]}):null,Vr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Vr}):null,z?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:z}):null]}),s.jsxs(Li,{open:Qt,title:"Execute batch (single context)?",onClose:()=>{rn(!1),Nn("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{rn(!1),Nn("")},disabled:qt,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void va(),disabled:qt||fn||pr.length<2||(Ze==null?void 0:Ze.can_execute)!==!0,children:qt?"Executing…":"Execute batch"})]}),children:[s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:["Items:"," ",s.jsx("span",{className:"mono",style:{fontWeight:700},children:pr.length})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"This queues a single exec request whose prompt includes all selected backlog items (in order), so the agent keeps a shared growing context."}),s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:"Execution mode"}),s.jsxs("select",{className:"input",value:In,onChange:$=>$n($.target.value),disabled:qt,style:{width:"100%"},children:[s.jsx("option",{value:"uat",children:"UAT (staged, safe)"}),s.jsx("option",{value:"inplace",children:"Inplace (dangerous, edits prod)"})]}),In==="inplace"?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Warning: inplace runs directly in the prod workspace (for the entire batch). Use only when you understand the risk."}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"The batch will execute in a candidate workspace. When it reaches “awaiting QA”, click “Restart UAT” to deploy it to the shared UAT stack."})]}),pr.length?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:pr.map($=>s.jsxs("div",{children:["- docs/backlog/planned/",$.filename]},`batchitem:${$.filename}`))}):null,fn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!fn&&(Ze==null?void 0:Ze.can_execute)!==!0?s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:(Ze==null?void 0:Ze.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(Ze==null?void 0:Ze.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(Ze==null?void 0:Ze.codex_available)===!1?`Codex not found on gateway: ${String((Ze==null?void 0:Ze.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),Ze!=null&&Ze.runner_error?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Ze.runner_error}):null]}):null,Vr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Vr}):null,Sn?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Sn}):null]}),s.jsxs(Li,{open:Cr,title:"Merge planned items into master backlog?",onClose:()=>{ir(!1),Kn("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{ir(!1),Kn("")},disabled:Ds,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Yi(),disabled:Ds||pr.length<2||!lr.trim()||!Ns.trim(),children:Ds?"Merging…":"Create master"})]}),children:[s.jsxs("div",{className:"row",style:{gap:"10px",flexWrap:"wrap"},children:[s.jsx("div",{className:"col",style:{minWidth:220},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Package"}),s.jsx("input",{value:Ns,onChange:$=>ds($.target.value),placeholder:"framework"})]})}),s.jsx("div",{className:"col",style:{minWidth:220},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Type"}),s.jsxs("select",{value:Si,onChange:$=>Bo($.target.value),children:[s.jsx("option",{value:"task",children:"task"}),s.jsx("option",{value:"feature",children:"feature"}),s.jsx("option",{value:"bug",children:"bug"})]})]})})]}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Title"}),s.jsx("input",{value:lr,onChange:$=>gr($.target.value),placeholder:"Master backlog"})]}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Summary (optional)"}),s.jsx("textarea",{value:Ir,onChange:$=>Tn($.target.value),rows:3})]}),pr.length?s.jsxs("div",{style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Referenced backlog items:"}),s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:pr.map($=>s.jsxs("div",{children:["- docs/backlog/planned/",$.filename]},`mergeitem:${$.filename}`))})]}):null,fs?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:fs}):null]}),s.jsx(Li,{open:Oi,title:uo?`Execution log — ${uo}`:"Execution log",variant:"fullscreen",onClose:()=>{es(!1),Fi(""),Ts([]),Ms(""),R(""),Ie(""),Et(!1),zt("")},children:s.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[s.jsxs("div",{className:"row",style:{alignItems:"flex-end",gap:"10px",flexWrap:"wrap"},children:[s.jsx("div",{className:"col",style:{minWidth:420,flex:"0 0 auto"},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Execution"}),s.jsxs("select",{value:ts,onChange:$=>{const V=String($.target.value||"").trim();Ms(V),R(""),Ie(""),Et(!1),V&&vr({request_id:V,name:fo}),setTimeout(()=>{var B;return(B=Gt.current)==null?void 0:B.focus()},0)},disabled:ie||!gs.length,children:[gs.length?null:s.jsx("option",{value:"",children:"(none)"}),gs.map($=>{const V=String($.finished_at||$.started_at||$.created_at||"").trim(),B=V?`${V} • ${la($.request_id,16)} • ${String($.status||"").trim()}`:`${la($.request_id,16)} • ${String($.status||"").trim()}`;return s.jsx("option",{value:$.request_id,children:B},`execfull:${$.request_id}`)})]})]})}),s.jsx("div",{className:"col",style:{minWidth:180,flex:"0 0 auto"},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Log"}),s.jsxs("select",{value:fo,onChange:$=>{const V=$.target.value;Di(V),R(""),Ie(""),Et(!1),ts&&vr({request_id:ts,name:V}),setTimeout(()=>{var B;return(B=Gt.current)==null?void 0:B.focus()},0)},disabled:ie||!ts,children:[s.jsx("option",{value:"events",children:"events"}),s.jsx("option",{value:"stderr",children:"stderr"}),s.jsx("option",{value:"last_message",children:"last_message"})]})]})}),s.jsx("div",{className:"col",style:{minWidth:240,flex:"1 1 240px"},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Search"}),s.jsx("input",{value:Nt,onChange:$=>zt($.target.value),placeholder:"Find…",onKeyDown:$=>{$.key==="Enter"&&($.preventDefault(),Dn($.shiftKey?-1:1))}})]})}),s.jsxs("div",{className:"col",style:{flex:"0 0 auto",display:"flex",gap:"6px"},children:[s.jsx("button",{className:"btn",onClick:()=>Dn(-1),disabled:!Nt.trim()||!ns.trim(),children:"Prev"}),s.jsx("button",{className:"btn",onClick:()=>Dn(1),disabled:!Nt.trim()||!ns.trim(),children:"Next"}),s.jsx("button",{className:"btn",onClick:()=>void vr(),disabled:ie||!ts,children:ie?"Loading…":"Refresh"}),s.jsx("button",{className:"btn",onClick:()=>js(ns),disabled:!ns.trim(),children:"Copy"})]})]}),ze?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:ze}):null,!ze&&rt?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Showing only the tail of this log."}):null,s.jsx("div",{style:{flex:"1 1 auto",marginTop:"10px"},children:s.jsx("textarea",{ref:Gt,value:ns||"(no log loaded)",readOnly:!0,className:"mono",style:{width:"100%",height:"100%",resize:"none",borderRadius:"12px",border:"1px solid var(--border)",background:"rgba(0, 0, 0, 0.18)",color:"var(--text)",padding:"12px",fontSize:"var(--font-size-sm)",lineHeight:"16px"}})})]})}),s.jsxs(Li,{open:an,title:"New backlog task",onClose:()=>{ft(!1),Wa()},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{ft(!1),Wa()},disabled:ji||Xs,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void fc(),disabled:ji||!Gs.trim()||!mo.trim(),children:ji?"Creating…":"Create"})]}),children:[s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",style:{minWidth:220},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Kind"}),s.jsxs("select",{value:fa,onChange:$=>El($.target.value),children:[s.jsx("option",{value:"proposed",children:"proposed"}),s.jsx("option",{value:"planned",children:"planned"}),s.jsx("option",{value:"recurrent",children:"recurrent"})]})]})}),s.jsx("div",{className:"col",style:{minWidth:220},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Type"}),s.jsxs("select",{value:ui,onChange:$=>Uo($.target.value),children:[s.jsx("option",{value:"feature",children:"feature"}),s.jsx("option",{value:"bug",children:"bug"}),s.jsx("option",{value:"task",children:"task"})]})]})}),s.jsx("div",{className:"col",style:{minWidth:220},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Package"}),s.jsx("input",{value:mo,onChange:$=>ma($.target.value),placeholder:"framework"})]})})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Title"}),s.jsx("input",{value:Gs,onChange:$=>$l($.target.value),placeholder:"Short descriptive title"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Summary (optional)"}),s.jsx("textarea",{value:ho,onChange:$=>Wo($.target.value),rows:3,placeholder:"One paragraph summary"})]}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Guided fields (optional)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Use this to generate a structured draft without editing markdown directly. One item per line for list fields."}),s.jsx("div",{style:{marginTop:"8px"},children:s.jsxs("details",{children:[s.jsx("summary",{className:"mono",style:{cursor:"pointer"},children:"Show guided fields"}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Diagram (ASCII)"}),s.jsx("textarea",{value:Tl,onChange:$=>ha($.target.value),rows:4,className:"mono",placeholder:"(optional) ascii diagram"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Context"}),s.jsx("textarea",{value:Ml,onChange:$=>pa($.target.value),rows:4,placeholder:"Why is this needed? Link to evidence (reports, discussions, etc.)."})]}),s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",style:{minWidth:260},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Scope: Included (1 per line)"}),s.jsx("textarea",{value:ki,onChange:$=>Vo($.target.value),rows:4,className:"mono",placeholder:"..."})]})}),s.jsx("div",{className:"col",style:{minWidth:260},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Scope: Excluded (1 per line)"}),s.jsx("textarea",{value:_o,onChange:$=>qo($.target.value),rows:4,className:"mono",placeholder:"..."})]})})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Implementation Plan (1 per line)"}),s.jsx("textarea",{value:ga,onChange:$=>Fa($.target.value),rows:4,className:"mono",placeholder:"..."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Dependencies (1 per line)"}),s.jsx("textarea",{value:_a,onChange:$=>di($.target.value),rows:3,className:"mono",placeholder:"Related backlog items / ADRs / external libs…"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Acceptance Criteria (1 per line)"}),s.jsx("textarea",{value:Al,onChange:$=>yo($.target.value),rows:4,className:"mono",placeholder:"..."})]}),s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",style:{minWidth:260},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Testing Level A (1 per line)"}),s.jsx("textarea",{value:xo,onChange:$=>zl($.target.value),rows:3,className:"mono",placeholder:"cd pkg && pytest -q ..."})]})}),s.jsx("div",{className:"col",style:{minWidth:260},children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Testing Level B (1 per line)"}),s.jsx("textarea",{value:ya,onChange:$=>Rl($.target.value),rows:3,className:"mono",placeholder:"run local gateway + manual verification..."})]})})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Testing Level C (1 per line)"}),s.jsx("textarea",{value:vo,onChange:$=>xa($.target.value),rows:2,className:"mono",placeholder:"(optional / opt-in)"})]}),s.jsx("div",{className:"row",style:{marginTop:"10px",justifyContent:"flex-end"},children:s.jsx("button",{className:"btn",onClick:()=>Ha(),disabled:ji||Xs,children:"Generate draft from guided fields"})})]})}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Attachments (optional)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Upload screenshots/diagrams to `docs/backlog/assets/<id>/` and link them under `## Related` after the task is created."}),s.jsx("div",{className:"field",style:{marginTop:"8px"},children:s.jsx("input",{type:"file",multiple:!0,onChange:$=>{const V=Array.from($.target.files||[]);V.length&&(Wi(B=>[...B,...V]),$.currentTarget.value="")}})}),Ys.length?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Ys.map(($,V)=>s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",marginTop:"4px"},children:[s.jsxs("span",{className:"mono muted",style:{paddingRight:"10px"},children:[$.name," (",Math.round($.size/1024)," KB)"]}),s.jsx("button",{className:"btn",onClick:()=>Wi(B=>B.filter((fe,ve)=>ve!==V)),disabled:ji||Ll,children:"Remove"})]},`${$.name}_${$.size}_${V}`))}):null,Ll?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Uploading attachments…"}):null,Go?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Go}):null,s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Draft (Markdown)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Prefilled from `docs/backlog/template.md` (editable). AI assist can also refine the draft."}),yr?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Loading template…"}):null,qs?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:qs}):null,s.jsx("div",{className:"row",style:{marginTop:"10px",justifyContent:"flex-end",gap:"8px"},children:s.jsx("button",{className:"btn",onClick:()=>{Ho.trim()&&!globalThis.confirm("Reset the draft markdown to the backlog template?")||Pl({force:!0})},disabled:ji||Xs||yr||!r,children:"Reset from template"})}),s.jsx("div",{className:"field",children:s.jsx("textarea",{value:Ho,onChange:$=>po($.target.value),rows:10,className:"mono",placeholder:"(optional) full markdown draft"})}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"AI Assist (chat)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Use this to iteratively refine a backlog draft; assistant replies can also update the draft markdown."}),s.jsx(Gd,{messages:Yo,className:"backlog_chat_thread_small",empty:s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages yet."})}),s.jsx("div",{style:{marginTop:"10px"},children:s.jsx(qd,{value:Ci,onChange:bo,onSubmit:()=>void Xi(),placeholder:"Message to AI (e.g. refine acceptance criteria…)",disabled:!r||!Gs.trim(),busy:Xs,rows:3,sendButtonClassName:"btn primary"})}),dc?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:dc}):null]}),s.jsx("button",{className:`advisor_toggle ${Ae?"open":""}`,onClick:()=>{Re($=>{const V=!$;return V||qa(),V})},title:"Open backlog advisor (read-only)","aria-label":"Open backlog advisor",children:s.jsx("span",{className:"advisor_toggle_label",children:"Advisor"})}),Ae?s.jsx("div",{className:"drawer_backdrop",onMouseDown:$=>{$.target===$.currentTarget&&(qa(),Re(!1))},children:s.jsxs("div",{className:"drawer_panel",children:[s.jsxs("div",{className:"drawer_header",children:[s.jsxs("div",{className:"col",style:{gap:2},children:[s.jsx("div",{className:"drawer_title",children:"Backlog advisor"}),s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["Read-only. Agent: ",u||"basic-agent"," • Using: ",o||"(gateway default)"," / ",l||"(gateway default)"]})]}),s.jsxs("div",{className:"row",style:{gap:8,justifyContent:"flex-end"},children:[s.jsxs("button",{className:`btn btn_icon ${se?"primary":""}`,onClick:()=>Oe($=>!$),disabled:_e,title:se?"Hide tool execution":"Show tool execution","aria-label":se?"Hide tool execution":"Show tool execution",children:[s.jsx(Gn,{name:"terminal",size:16}),h?null:se?"Tools on":"Tools"]}),s.jsx("button",{className:"btn",onClick:()=>jt([]),disabled:_e||!dt.length,children:"Clear"}),s.jsx("button",{className:"btn",onClick:()=>{qa(),Re(!1)},children:"Close"})]})]}),s.jsxs("div",{className:"drawer_body",children:[s.jsx(Gd,{messages:dt,className:"drawer_chat_thread",messageProps:It.tts_supported&&r&&yn.trim()?{onSpeakToggle:wa,getSpeakState:Va,jsonCollapseAfterDepth:4}:{jsonCollapseAfterDepth:4},empty:s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Ask about the backlog, e.g. “What are the top 5 planned items to focus on next and why?”"})}),s.jsxs("div",{className:"drawer_footer",children:[s.jsx("input",{ref:bn,type:"file",multiple:!0,style:{display:"none"},onChange:$=>{const V=Array.from($.currentTarget.files||[]);$.currentTarget.value="",V.length&&mc(V)}}),s.jsx(qd,{ref:on,value:Mt,onChange:gt,onSubmit:()=>void su(),placeholder:"Message to backlog advisor…",disabled:!r,busy:_e||It.voice_ptt_busy,rows:3,sendButtonClassName:"btn primary",busyLabel:It.voice_ptt_busy?"Transcribing…":"Thinking…",actions:s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:`btn btn_icon voice_btn${It.voice_ptt_recording?" danger":""}`,type:"button",disabled:!r||!yn.trim()||_e||It.voice_ptt_busy||!It.voice_ptt_supported,title:It.voice_ptt_supported?It.voice_ptt_busy?"Transcribing…":It.voice_ptt_recording?"Recording… release to transcribe":"Hold to talk (record + transcribe)":"Voice recording is not supported in this browser","aria-label":"Voice input",onPointerDown:$=>{var V,B;if(!(!r||!yn.trim()||_e||It.voice_ptt_busy||!It.voice_ptt_supported)){$.preventDefault();try{(B=(V=$.currentTarget)==null?void 0:V.setPointerCapture)==null||B.call(V,$.pointerId)}catch{}It.start_voice_ptt_recording()}},onPointerUp:$=>{$.preventDefault(),It.stop_voice_ptt_recording()},onPointerCancel:$=>{$.preventDefault(),It.stop_voice_ptt_recording()},children:[s.jsx(Gn,{name:It.voice_ptt_recording?"x":"mic",size:16}),h?null:It.voice_ptt_busy?"Transcribing…":It.voice_ptt_recording?"Recording…":"Voice"]}),s.jsxs("button",{className:"btn btn_icon",type:"button",onClick:()=>{var $;return($=bn.current)==null?void 0:$.click()},disabled:_e,title:"Attach a local file to your message","aria-label":"Attach file",children:[s.jsx(Gn,{name:"paperclip",size:16}),h?null:"Attach"]})]})}),Jt.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["Last attached: ",Jt[0]]}):null,Te?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Te}):null,En?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:En}):null,r?null:s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Connect the gateway in Settings to use the advisor."})]})]})]})}):null]})}function ks(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let r=0,o;r<e.length;r++)(o=ks(e[r]))!==""&&(t+=(t&&" ")+o);else for(let r in e)e[r]&&(t+=(t&&" ")+r);return t}var lm={exports:{}},cm={},um={exports:{}},dm={};/**
101
+ * @license React
102
+ * use-sync-external-store-shim.production.js
103
+ *
104
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
105
+ *
106
+ * This source code is licensed under the MIT license found in the
107
+ * LICENSE file in the root directory of this source tree.
108
+ */var Dp;function Cw(){if(Dp)return dm;Dp=1;var e=Ku();function t(x,v){return x===v&&(x!==0||1/x===1/v)||x!==x&&v!==v}var r=typeof Object.is=="function"?Object.is:t,o=e.useState,l=e.useEffect,u=e.useLayoutEffect,c=e.useDebugValue;function d(x,v){var b=v(),j=o({inst:{value:b,getSnapshot:v}}),S=j[0].inst,M=j[1];return u(function(){S.value=b,S.getSnapshot=v,h(S)&&M({inst:S})},[x,b,v]),l(function(){return h(S)&&M({inst:S}),x(function(){h(S)&&M({inst:S})})},[x]),c(b),b}function h(x){var v=x.getSnapshot;x=x.value;try{var b=v();return!r(x,b)}catch{return!0}}function _(x,v){return v()}var g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?_:d;return dm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,dm}var Bp;function Ew(){return Bp||(Bp=1,um.exports=Cw()),um.exports}/**
109
+ * @license React
110
+ * use-sync-external-store-shim/with-selector.production.js
111
+ *
112
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
113
+ *
114
+ * This source code is licensed under the MIT license found in the
115
+ * LICENSE file in the root directory of this source tree.
116
+ */var Up;function $w(){if(Up)return cm;Up=1;var e=Ku(),t=Ew();function r(_,g){return _===g&&(_!==0||1/_===1/g)||_!==_&&g!==g}var o=typeof Object.is=="function"?Object.is:r,l=t.useSyncExternalStore,u=e.useRef,c=e.useEffect,d=e.useMemo,h=e.useDebugValue;return cm.useSyncExternalStoreWithSelector=function(_,g,x,v,b){var j=u(null);if(j.current===null){var S={hasValue:!1,value:null};j.current=S}else S=j.current;j=d(function(){function A(ne){if(!D){if(D=!0,O=ne,ne=v(ne),b!==void 0&&S.hasValue){var X=S.value;if(b(X,ne))return L=X}return L=ne}if(X=L,o(O,ne))return X;var J=v(ne);return b!==void 0&&b(X,J)?(O=ne,X):(O=ne,L=J)}var D=!1,O,L,Y=x===void 0?null:x;return[function(){return A(g())},Y===null?void 0:function(){return A(Y())}]},[g,x,v,b]);var M=l(_,j[0],j[1]);return c(function(){S.hasValue=!0,S.value=M},[M]),h(M),M},cm}var Wp;function Tw(){return Wp||(Wp=1,lm.exports=$w()),lm.exports}var Mw=Tw();const Aw=ih(Mw),zw={},Hp=e=>{let t;const r=new Set,o=(g,x)=>{const v=typeof g=="function"?g(t):g;if(!Object.is(v,t)){const b=t;t=x??(typeof v!="object"||v===null)?v:Object.assign({},t,v),r.forEach(j=>j(t,b))}},l=()=>t,h={setState:o,getState:l,getInitialState:()=>_,subscribe:g=>(r.add(g),()=>r.delete(g)),destroy:()=>{(zw?"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."),r.clear()}},_=t=e(o,l,h);return h},Rw=e=>e?Hp(e):Hp,{useDebugValue:Lw}=Ee,{useSyncExternalStoreWithSelector:Pw}=Aw,Iw=e=>e;function j_(e,t=Iw,r){const o=Pw(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return Lw(o),o}const Vp=(e,t)=>{const r=Rw(e),o=(l,u=t)=>j_(r,l,u);return Object.assign(o,r),o},Ow=(e,t)=>e?Vp(e,t):Vp;function us(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[o,l]of e)if(!Object.is(l,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(const o of r)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}var Fw={value:()=>{}};function mf(){for(var e=0,t=arguments.length,r={},o;e<t;++e){if(!(o=arguments[e]+"")||o in r||/[\s.]/.test(o))throw new Error("illegal type: "+o);r[o]=[]}return new Yd(r)}function Yd(e){this._=e}function Dw(e,t){return e.trim().split(/^|\s+/).map(function(r){var o="",l=r.indexOf(".");if(l>=0&&(o=r.slice(l+1),r=r.slice(0,l)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:o}})}Yd.prototype=mf.prototype={constructor:Yd,on:function(e,t){var r=this._,o=Dw(e+"",r),l,u=-1,c=o.length;if(arguments.length<2){for(;++u<c;)if((l=(e=o[u]).type)&&(l=Bw(r[l],e.name)))return l;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++u<c;)if(l=(e=o[u]).type)r[l]=qp(r[l],e.name,t);else if(t==null)for(l in r)r[l]=qp(r[l],e.name,null);return this},copy:function(){var e={},t=this._;for(var r in t)e[r]=t[r].slice();return new Yd(e)},call:function(e,t){if((l=arguments.length-2)>0)for(var r=new Array(l),o=0,l,u;o<l;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(u=this._[e],o=0,l=u.length;o<l;++o)u[o].value.apply(t,r)},apply:function(e,t,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],l=0,u=o.length;l<u;++l)o[l].value.apply(t,r)}};function Bw(e,t){for(var r=0,o=e.length,l;r<o;++r)if((l=e[r]).name===t)return l.value}function qp(e,t,r){for(var o=0,l=e.length;o<l;++o)if(e[o].name===t){e[o]=Fw,e=e.slice(0,o).concat(e.slice(o+1));break}return r!=null&&e.push({name:t,value:r}),e}var Im="http://www.w3.org/1999/xhtml";const Gp={svg:"http://www.w3.org/2000/svg",xhtml:Im,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function hf(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Gp.hasOwnProperty(t)?{space:Gp[t],local:e}:e}function Uw(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Im&&t.documentElement.namespaceURI===Im?t.createElement(e):t.createElementNS(r,e)}}function Ww(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function k_(e){var t=hf(e);return(t.local?Ww:Uw)(t)}function Hw(){}function ch(e){return e==null?Hw:function(){return this.querySelector(e)}}function Vw(e){typeof e!="function"&&(e=ch(e));for(var t=this._groups,r=t.length,o=new Array(r),l=0;l<r;++l)for(var u=t[l],c=u.length,d=o[l]=new Array(c),h,_,g=0;g<c;++g)(h=u[g])&&(_=e.call(h,h.__data__,g,u))&&("__data__"in h&&(_.__data__=h.__data__),d[g]=_);return new Pi(o,this._parents)}function qw(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Gw(){return[]}function N_(e){return e==null?Gw:function(){return this.querySelectorAll(e)}}function Yw(e){return function(){return qw(e.apply(this,arguments))}}function Xw(e){typeof e=="function"?e=Yw(e):e=N_(e);for(var t=this._groups,r=t.length,o=[],l=[],u=0;u<r;++u)for(var c=t[u],d=c.length,h,_=0;_<d;++_)(h=c[_])&&(o.push(e.call(h,h.__data__,_,c)),l.push(h));return new Pi(o,l)}function C_(e){return function(){return this.matches(e)}}function E_(e){return function(t){return t.matches(e)}}var Kw=Array.prototype.find;function Jw(e){return function(){return Kw.call(this.children,e)}}function Qw(){return this.firstElementChild}function Zw(e){return this.select(e==null?Qw:Jw(typeof e=="function"?e:E_(e)))}var e0=Array.prototype.filter;function t0(){return Array.from(this.children)}function n0(e){return function(){return e0.call(this.children,e)}}function r0(e){return this.selectAll(e==null?t0:n0(typeof e=="function"?e:E_(e)))}function s0(e){typeof e!="function"&&(e=C_(e));for(var t=this._groups,r=t.length,o=new Array(r),l=0;l<r;++l)for(var u=t[l],c=u.length,d=o[l]=[],h,_=0;_<c;++_)(h=u[_])&&e.call(h,h.__data__,_,u)&&d.push(h);return new Pi(o,this._parents)}function $_(e){return new Array(e.length)}function i0(){return new Pi(this._enter||this._groups.map($_),this._parents)}function ef(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}ef.prototype={constructor:ef,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 o0(e){return function(){return e}}function a0(e,t,r,o,l,u){for(var c=0,d,h=t.length,_=u.length;c<_;++c)(d=t[c])?(d.__data__=u[c],o[c]=d):r[c]=new ef(e,u[c]);for(;c<h;++c)(d=t[c])&&(l[c]=d)}function l0(e,t,r,o,l,u,c){var d,h,_=new Map,g=t.length,x=u.length,v=new Array(g),b;for(d=0;d<g;++d)(h=t[d])&&(v[d]=b=c.call(h,h.__data__,d,t)+"",_.has(b)?l[d]=h:_.set(b,h));for(d=0;d<x;++d)b=c.call(e,u[d],d,u)+"",(h=_.get(b))?(o[d]=h,h.__data__=u[d],_.delete(b)):r[d]=new ef(e,u[d]);for(d=0;d<g;++d)(h=t[d])&&_.get(v[d])===h&&(l[d]=h)}function c0(e){return e.__data__}function u0(e,t){if(!arguments.length)return Array.from(this,c0);var r=t?l0:a0,o=this._parents,l=this._groups;typeof e!="function"&&(e=o0(e));for(var u=l.length,c=new Array(u),d=new Array(u),h=new Array(u),_=0;_<u;++_){var g=o[_],x=l[_],v=x.length,b=d0(e.call(g,g&&g.__data__,_,o)),j=b.length,S=d[_]=new Array(j),M=c[_]=new Array(j),A=h[_]=new Array(v);r(g,x,S,M,A,b,t);for(var D=0,O=0,L,Y;D<j;++D)if(L=S[D]){for(D>=O&&(O=D+1);!(Y=M[O])&&++O<j;);L._next=Y||null}}return c=new Pi(c,o),c._enter=d,c._exit=h,c}function d0(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function f0(){return new Pi(this._exit||this._groups.map($_),this._parents)}function m0(e,t,r){var o=this.enter(),l=this,u=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(l=t(l),l&&(l=l.selection())),r==null?u.remove():r(u),o&&l?o.merge(l).order():l}function h0(e){for(var t=e.selection?e.selection():e,r=this._groups,o=t._groups,l=r.length,u=o.length,c=Math.min(l,u),d=new Array(l),h=0;h<c;++h)for(var _=r[h],g=o[h],x=_.length,v=d[h]=new Array(x),b,j=0;j<x;++j)(b=_[j]||g[j])&&(v[j]=b);for(;h<l;++h)d[h]=r[h];return new Pi(d,this._parents)}function p0(){for(var e=this._groups,t=-1,r=e.length;++t<r;)for(var o=e[t],l=o.length-1,u=o[l],c;--l>=0;)(c=o[l])&&(u&&c.compareDocumentPosition(u)^4&&u.parentNode.insertBefore(c,u),u=c);return this}function g0(e){e||(e=_0);function t(x,v){return x&&v?e(x.__data__,v.__data__):!x-!v}for(var r=this._groups,o=r.length,l=new Array(o),u=0;u<o;++u){for(var c=r[u],d=c.length,h=l[u]=new Array(d),_,g=0;g<d;++g)(_=c[g])&&(h[g]=_);h.sort(t)}return new Pi(l,this._parents).order()}function _0(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function y0(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function x0(){return Array.from(this)}function v0(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var o=e[t],l=0,u=o.length;l<u;++l){var c=o[l];if(c)return c}return null}function w0(){let e=0;for(const t of this)++e;return e}function b0(){return!this.node()}function S0(e){for(var t=this._groups,r=0,o=t.length;r<o;++r)for(var l=t[r],u=0,c=l.length,d;u<c;++u)(d=l[u])&&e.call(d,d.__data__,u,l);return this}function j0(e){return function(){this.removeAttribute(e)}}function k0(e){return function(){this.removeAttributeNS(e.space,e.local)}}function N0(e,t){return function(){this.setAttribute(e,t)}}function C0(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function E0(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function $0(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function T0(e,t){var r=hf(e);if(arguments.length<2){var o=this.node();return r.local?o.getAttributeNS(r.space,r.local):o.getAttribute(r)}return this.each((t==null?r.local?k0:j0:typeof t=="function"?r.local?$0:E0:r.local?C0:N0)(r,t))}function T_(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function M0(e){return function(){this.style.removeProperty(e)}}function A0(e,t,r){return function(){this.style.setProperty(e,t,r)}}function z0(e,t,r){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,r)}}function R0(e,t,r){return arguments.length>1?this.each((t==null?M0:typeof t=="function"?z0:A0)(e,t,r??"")):tu(this.node(),e)}function tu(e,t){return e.style.getPropertyValue(t)||T_(e).getComputedStyle(e,null).getPropertyValue(t)}function L0(e){return function(){delete this[e]}}function P0(e,t){return function(){this[e]=t}}function I0(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function O0(e,t){return arguments.length>1?this.each((t==null?L0:typeof t=="function"?I0:P0)(e,t)):this.node()[e]}function M_(e){return e.trim().split(/^|\s+/)}function uh(e){return e.classList||new A_(e)}function A_(e){this._node=e,this._names=M_(e.getAttribute("class")||"")}A_.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 z_(e,t){for(var r=uh(e),o=-1,l=t.length;++o<l;)r.add(t[o])}function R_(e,t){for(var r=uh(e),o=-1,l=t.length;++o<l;)r.remove(t[o])}function F0(e){return function(){z_(this,e)}}function D0(e){return function(){R_(this,e)}}function B0(e,t){return function(){(t.apply(this,arguments)?z_:R_)(this,e)}}function U0(e,t){var r=M_(e+"");if(arguments.length<2){for(var o=uh(this.node()),l=-1,u=r.length;++l<u;)if(!o.contains(r[l]))return!1;return!0}return this.each((typeof t=="function"?B0:t?F0:D0)(r,t))}function W0(){this.textContent=""}function H0(e){return function(){this.textContent=e}}function V0(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function q0(e){return arguments.length?this.each(e==null?W0:(typeof e=="function"?V0:H0)(e)):this.node().textContent}function G0(){this.innerHTML=""}function Y0(e){return function(){this.innerHTML=e}}function X0(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function K0(e){return arguments.length?this.each(e==null?G0:(typeof e=="function"?X0:Y0)(e)):this.node().innerHTML}function J0(){this.nextSibling&&this.parentNode.appendChild(this)}function Q0(){return this.each(J0)}function Z0(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function eb(){return this.each(Z0)}function tb(e){var t=typeof e=="function"?e:k_(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function nb(){return null}function rb(e,t){var r=typeof e=="function"?e:k_(e),o=t==null?nb:typeof t=="function"?t:ch(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),o.apply(this,arguments)||null)})}function sb(){var e=this.parentNode;e&&e.removeChild(this)}function ib(){return this.each(sb)}function ob(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ab(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function lb(e){return this.select(e?ab:ob)}function cb(e){return arguments.length?this.property("__data__",e):this.node().__data__}function ub(e){return function(t){e.call(this,t,this.__data__)}}function db(e){return e.trim().split(/^|\s+/).map(function(t){var r="",o=t.indexOf(".");return o>=0&&(r=t.slice(o+1),t=t.slice(0,o)),{type:t,name:r}})}function fb(e){return function(){var t=this.__on;if(t){for(var r=0,o=-1,l=t.length,u;r<l;++r)u=t[r],(!e.type||u.type===e.type)&&u.name===e.name?this.removeEventListener(u.type,u.listener,u.options):t[++o]=u;++o?t.length=o:delete this.__on}}}function mb(e,t,r){return function(){var o=this.__on,l,u=ub(t);if(o){for(var c=0,d=o.length;c<d;++c)if((l=o[c]).type===e.type&&l.name===e.name){this.removeEventListener(l.type,l.listener,l.options),this.addEventListener(l.type,l.listener=u,l.options=r),l.value=t;return}}this.addEventListener(e.type,u,r),l={type:e.type,name:e.name,value:t,listener:u,options:r},o?o.push(l):this.__on=[l]}}function hb(e,t,r){var o=db(e+""),l,u=o.length,c;if(arguments.length<2){var d=this.node().__on;if(d){for(var h=0,_=d.length,g;h<_;++h)for(l=0,g=d[h];l<u;++l)if((c=o[l]).type===g.type&&c.name===g.name)return g.value}return}for(d=t?mb:fb,l=0;l<u;++l)this.each(d(o[l],t,r));return this}function L_(e,t,r){var o=T_(e),l=o.CustomEvent;typeof l=="function"?l=new l(t,r):(l=o.document.createEvent("Event"),r?(l.initEvent(t,r.bubbles,r.cancelable),l.detail=r.detail):l.initEvent(t,!1,!1)),e.dispatchEvent(l)}function pb(e,t){return function(){return L_(this,e,t)}}function gb(e,t){return function(){return L_(this,e,t.apply(this,arguments))}}function _b(e,t){return this.each((typeof t=="function"?gb:pb)(e,t))}function*yb(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var o=e[t],l=0,u=o.length,c;l<u;++l)(c=o[l])&&(yield c)}var P_=[null];function Pi(e,t){this._groups=e,this._parents=t}function Ju(){return new Pi([[document.documentElement]],P_)}function xb(){return this}Pi.prototype=Ju.prototype={constructor:Pi,select:Vw,selectAll:Xw,selectChild:Zw,selectChildren:r0,filter:s0,data:u0,enter:i0,exit:f0,join:m0,merge:h0,selection:xb,order:p0,sort:g0,call:y0,nodes:x0,node:v0,size:w0,empty:b0,each:S0,attr:T0,style:R0,property:O0,classed:U0,text:q0,html:K0,raise:Q0,lower:eb,append:tb,insert:rb,remove:ib,clone:lb,datum:cb,on:hb,dispatch:_b,[Symbol.iterator]:yb};function ao(e){return typeof e=="string"?new Pi([[document.querySelector(e)]],[document.documentElement]):new Pi([[e]],P_)}function vb(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Po(e,t){if(e=vb(e),t===void 0&&(t=e.currentTarget),t){var r=t.ownerSVGElement||t;if(r.createSVGPoint){var o=r.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var l=t.getBoundingClientRect();return[e.clientX-l.left-t.clientLeft,e.clientY-l.top-t.clientTop]}}return[e.pageX,e.pageY]}const wb={passive:!1},Fu={capture:!0,passive:!1};function fm(e){e.stopImmediatePropagation()}function Jc(e){e.preventDefault(),e.stopImmediatePropagation()}function I_(e){var t=e.document.documentElement,r=ao(e).on("dragstart.drag",Jc,Fu);"onselectstart"in t?r.on("selectstart.drag",Jc,Fu):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function O_(e,t){var r=e.document.documentElement,o=ao(e).on("dragstart.drag",null);t&&(o.on("click.drag",Jc,Fu),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in r?o.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const Ad=e=>()=>e;function Om(e,{sourceEvent:t,subject:r,target:o,identifier:l,active:u,x:c,y:d,dx:h,dy:_,dispatch:g}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:l,enumerable:!0,configurable:!0},active:{value:u,enumerable:!0,configurable:!0},x:{value:c,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:h,enumerable:!0,configurable:!0},dy:{value:_,enumerable:!0,configurable:!0},_:{value:g}})}Om.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function bb(e){return!e.ctrlKey&&!e.button}function Sb(){return this.parentNode}function jb(e,t){return t??{x:e.x,y:e.y}}function kb(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nb(){var e=bb,t=Sb,r=jb,o=kb,l={},u=mf("start","drag","end"),c=0,d,h,_,g,x=0;function v(L){L.on("mousedown.drag",b).filter(o).on("touchstart.drag",M).on("touchmove.drag",A,wb).on("touchend.drag touchcancel.drag",D).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(L,Y){if(!(g||!e.call(this,L,Y))){var ne=O(this,t.call(this,L,Y),L,Y,"mouse");ne&&(ao(L.view).on("mousemove.drag",j,Fu).on("mouseup.drag",S,Fu),I_(L.view),fm(L),_=!1,d=L.clientX,h=L.clientY,ne("start",L))}}function j(L){if(Jc(L),!_){var Y=L.clientX-d,ne=L.clientY-h;_=Y*Y+ne*ne>x}l.mouse("drag",L)}function S(L){ao(L.view).on("mousemove.drag mouseup.drag",null),O_(L.view,_),Jc(L),l.mouse("end",L)}function M(L,Y){if(e.call(this,L,Y)){var ne=L.changedTouches,X=t.call(this,L,Y),J=ne.length,ge,me;for(ge=0;ge<J;++ge)(me=O(this,X,L,Y,ne[ge].identifier,ne[ge]))&&(fm(L),me("start",L,ne[ge]))}}function A(L){var Y=L.changedTouches,ne=Y.length,X,J;for(X=0;X<ne;++X)(J=l[Y[X].identifier])&&(Jc(L),J("drag",L,Y[X]))}function D(L){var Y=L.changedTouches,ne=Y.length,X,J;for(g&&clearTimeout(g),g=setTimeout(function(){g=null},500),X=0;X<ne;++X)(J=l[Y[X].identifier])&&(fm(L),J("end",L,Y[X]))}function O(L,Y,ne,X,J,ge){var me=u.copy(),$e=Po(ge||ne,Y),Me,ue,I;if((I=r.call(L,new Om("beforestart",{sourceEvent:ne,target:v,identifier:J,active:c,x:$e[0],y:$e[1],dx:0,dy:0,dispatch:me}),X))!=null)return Me=I.x-$e[0]||0,ue=I.y-$e[1]||0,function G(H,Z,N){var z=$e,F;switch(H){case"start":l[J]=G,F=c++;break;case"end":delete l[J],--c;case"drag":$e=Po(N||Z,Y),F=c;break}me.call(H,L,new Om(H,{sourceEvent:Z,subject:I,target:v,identifier:J,active:F,x:$e[0]+Me,y:$e[1]+ue,dx:$e[0]-z[0],dy:$e[1]-z[1],dispatch:me}),X)}}return v.filter=function(L){return arguments.length?(e=typeof L=="function"?L:Ad(!!L),v):e},v.container=function(L){return arguments.length?(t=typeof L=="function"?L:Ad(L),v):t},v.subject=function(L){return arguments.length?(r=typeof L=="function"?L:Ad(L),v):r},v.touchable=function(L){return arguments.length?(o=typeof L=="function"?L:Ad(!!L),v):o},v.on=function(){var L=u.on.apply(u,arguments);return L===u?v:L},v.clickDistance=function(L){return arguments.length?(x=(L=+L)*L,v):Math.sqrt(x)},v}function dh(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function F_(e,t){var r=Object.create(e.prototype);for(var o in t)r[o]=t[o];return r}function Qu(){}var Du=.7,tf=1/Du,Qc="\\s*([+-]?\\d+)\\s*",Bu="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ua="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Cb=/^#([0-9a-f]{3,8})$/,Eb=new RegExp(`^rgb\\(${Qc},${Qc},${Qc}\\)$`),$b=new RegExp(`^rgb\\(${ua},${ua},${ua}\\)$`),Tb=new RegExp(`^rgba\\(${Qc},${Qc},${Qc},${Bu}\\)$`),Mb=new RegExp(`^rgba\\(${ua},${ua},${ua},${Bu}\\)$`),Ab=new RegExp(`^hsl\\(${Bu},${ua},${ua}\\)$`),zb=new RegExp(`^hsla\\(${Bu},${ua},${ua},${Bu}\\)$`),Yp={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};dh(Qu,Uu,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Xp,formatHex:Xp,formatHex8:Rb,formatHsl:Lb,formatRgb:Kp,toString:Kp});function Xp(){return this.rgb().formatHex()}function Rb(){return this.rgb().formatHex8()}function Lb(){return D_(this).formatHsl()}function Kp(){return this.rgb().formatRgb()}function Uu(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=Cb.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?Jp(t):r===3?new bi(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?zd(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?zd(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=Eb.exec(e))?new bi(t[1],t[2],t[3],1):(t=$b.exec(e))?new bi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Tb.exec(e))?zd(t[1],t[2],t[3],t[4]):(t=Mb.exec(e))?zd(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Ab.exec(e))?eg(t[1],t[2]/100,t[3]/100,1):(t=zb.exec(e))?eg(t[1],t[2]/100,t[3]/100,t[4]):Yp.hasOwnProperty(e)?Jp(Yp[e]):e==="transparent"?new bi(NaN,NaN,NaN,0):null}function Jp(e){return new bi(e>>16&255,e>>8&255,e&255,1)}function zd(e,t,r,o){return o<=0&&(e=t=r=NaN),new bi(e,t,r,o)}function Pb(e){return e instanceof Qu||(e=Uu(e)),e?(e=e.rgb(),new bi(e.r,e.g,e.b,e.opacity)):new bi}function Fm(e,t,r,o){return arguments.length===1?Pb(e):new bi(e,t,r,o??1)}function bi(e,t,r,o){this.r=+e,this.g=+t,this.b=+r,this.opacity=+o}dh(bi,Fm,F_(Qu,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new bi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Du:Math.pow(Du,e),new bi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new bi(ac(this.r),ac(this.g),ac(this.b),nf(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:Qp,formatHex:Qp,formatHex8:Ib,formatRgb:Zp,toString:Zp}));function Qp(){return`#${ic(this.r)}${ic(this.g)}${ic(this.b)}`}function Ib(){return`#${ic(this.r)}${ic(this.g)}${ic(this.b)}${ic((isNaN(this.opacity)?1:this.opacity)*255)}`}function Zp(){const e=nf(this.opacity);return`${e===1?"rgb(":"rgba("}${ac(this.r)}, ${ac(this.g)}, ${ac(this.b)}${e===1?")":`, ${e})`}`}function nf(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ac(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ic(e){return e=ac(e),(e<16?"0":"")+e.toString(16)}function eg(e,t,r,o){return o<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Io(e,t,r,o)}function D_(e){if(e instanceof Io)return new Io(e.h,e.s,e.l,e.opacity);if(e instanceof Qu||(e=Uu(e)),!e)return new Io;if(e instanceof Io)return e;e=e.rgb();var t=e.r/255,r=e.g/255,o=e.b/255,l=Math.min(t,r,o),u=Math.max(t,r,o),c=NaN,d=u-l,h=(u+l)/2;return d?(t===u?c=(r-o)/d+(r<o)*6:r===u?c=(o-t)/d+2:c=(t-r)/d+4,d/=h<.5?u+l:2-u-l,c*=60):d=h>0&&h<1?0:c,new Io(c,d,h,e.opacity)}function Ob(e,t,r,o){return arguments.length===1?D_(e):new Io(e,t,r,o??1)}function Io(e,t,r,o){this.h=+e,this.s=+t,this.l=+r,this.opacity=+o}dh(Io,Ob,F_(Qu,{brighter(e){return e=e==null?tf:Math.pow(tf,e),new Io(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Du:Math.pow(Du,e),new Io(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,r=this.l,o=r+(r<.5?r:1-r)*t,l=2*r-o;return new bi(mm(e>=240?e-240:e+120,l,o),mm(e,l,o),mm(e<120?e+240:e-120,l,o),this.opacity)},clamp(){return new Io(tg(this.h),Rd(this.s),Rd(this.l),nf(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=nf(this.opacity);return`${e===1?"hsl(":"hsla("}${tg(this.h)}, ${Rd(this.s)*100}%, ${Rd(this.l)*100}%${e===1?")":`, ${e})`}`}}));function tg(e){return e=(e||0)%360,e<0?e+360:e}function Rd(e){return Math.max(0,Math.min(1,e||0))}function mm(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const B_=e=>()=>e;function Fb(e,t){return function(r){return e+r*t}}function Db(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(o){return Math.pow(e+o*t,r)}}function Bb(e){return(e=+e)==1?U_:function(t,r){return r-t?Db(t,r,e):B_(isNaN(t)?r:t)}}function U_(e,t){var r=t-e;return r?Fb(e,r):B_(isNaN(e)?t:e)}const ng=(function e(t){var r=Bb(t);function o(l,u){var c=r((l=Fm(l)).r,(u=Fm(u)).r),d=r(l.g,u.g),h=r(l.b,u.b),_=U_(l.opacity,u.opacity);return function(g){return l.r=c(g),l.g=d(g),l.b=h(g),l.opacity=_(g),l+""}}return o.gamma=e,o})(1);function Sl(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var Dm=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,hm=new RegExp(Dm.source,"g");function Ub(e){return function(){return e}}function Wb(e){return function(t){return e(t)+""}}function Hb(e,t){var r=Dm.lastIndex=hm.lastIndex=0,o,l,u,c=-1,d=[],h=[];for(e=e+"",t=t+"";(o=Dm.exec(e))&&(l=hm.exec(t));)(u=l.index)>r&&(u=t.slice(r,u),d[c]?d[c]+=u:d[++c]=u),(o=o[0])===(l=l[0])?d[c]?d[c]+=l:d[++c]=l:(d[++c]=null,h.push({i:c,x:Sl(o,l)})),r=hm.lastIndex;return r<t.length&&(u=t.slice(r),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?Wb(h[0].x):Ub(t):(t=h.length,function(_){for(var g=0,x;g<t;++g)d[(x=h[g]).i]=x.x(_);return d.join("")})}var rg=180/Math.PI,Bm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function W_(e,t,r,o,l,u){var c,d,h;return(c=Math.sqrt(e*e+t*t))&&(e/=c,t/=c),(h=e*r+t*o)&&(r-=e*h,o-=t*h),(d=Math.sqrt(r*r+o*o))&&(r/=d,o/=d,h/=d),e*o<t*r&&(e=-e,t=-t,h=-h,c=-c),{translateX:l,translateY:u,rotate:Math.atan2(t,e)*rg,skewX:Math.atan(h)*rg,scaleX:c,scaleY:d}}var Ld;function Vb(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Bm:W_(t.a,t.b,t.c,t.d,t.e,t.f)}function qb(e){return e==null||(Ld||(Ld=document.createElementNS("http://www.w3.org/2000/svg","g")),Ld.setAttribute("transform",e),!(e=Ld.transform.baseVal.consolidate()))?Bm:(e=e.matrix,W_(e.a,e.b,e.c,e.d,e.e,e.f))}function H_(e,t,r,o){function l(_){return _.length?_.pop()+" ":""}function u(_,g,x,v,b,j){if(_!==x||g!==v){var S=b.push("translate(",null,t,null,r);j.push({i:S-4,x:Sl(_,x)},{i:S-2,x:Sl(g,v)})}else(x||v)&&b.push("translate("+x+t+v+r)}function c(_,g,x,v){_!==g?(_-g>180?g+=360:g-_>180&&(_+=360),v.push({i:x.push(l(x)+"rotate(",null,o)-2,x:Sl(_,g)})):g&&x.push(l(x)+"rotate("+g+o)}function d(_,g,x,v){_!==g?v.push({i:x.push(l(x)+"skewX(",null,o)-2,x:Sl(_,g)}):g&&x.push(l(x)+"skewX("+g+o)}function h(_,g,x,v,b,j){if(_!==x||g!==v){var S=b.push(l(b)+"scale(",null,",",null,")");j.push({i:S-4,x:Sl(_,x)},{i:S-2,x:Sl(g,v)})}else(x!==1||v!==1)&&b.push(l(b)+"scale("+x+","+v+")")}return function(_,g){var x=[],v=[];return _=e(_),g=e(g),u(_.translateX,_.translateY,g.translateX,g.translateY,x,v),c(_.rotate,g.rotate,x,v),d(_.skewX,g.skewX,x,v),h(_.scaleX,_.scaleY,g.scaleX,g.scaleY,x,v),_=g=null,function(b){for(var j=-1,S=v.length,M;++j<S;)x[(M=v[j]).i]=M.x(b);return x.join("")}}}var Gb=H_(Vb,"px, ","px)","deg)"),Yb=H_(qb,", ",")",")"),Xb=1e-12;function sg(e){return((e=Math.exp(e))+1/e)/2}function Kb(e){return((e=Math.exp(e))-1/e)/2}function Jb(e){return((e=Math.exp(2*e))-1)/(e+1)}const Qb=(function e(t,r,o){function l(u,c){var d=u[0],h=u[1],_=u[2],g=c[0],x=c[1],v=c[2],b=g-d,j=x-h,S=b*b+j*j,M,A;if(S<Xb)A=Math.log(v/_)/t,M=function(X){return[d+X*b,h+X*j,_*Math.exp(t*X*A)]};else{var D=Math.sqrt(S),O=(v*v-_*_+o*S)/(2*_*r*D),L=(v*v-_*_-o*S)/(2*v*r*D),Y=Math.log(Math.sqrt(O*O+1)-O),ne=Math.log(Math.sqrt(L*L+1)-L);A=(ne-Y)/t,M=function(X){var J=X*A,ge=sg(Y),me=_/(r*D)*(ge*Jb(t*J+Y)-Kb(Y));return[d+me*b,h+me*j,_*ge/sg(t*J+Y)]}}return M.duration=A*1e3*t/Math.SQRT2,M}return l.rho=function(u){var c=Math.max(.001,+u),d=c*c,h=d*d;return e(c,d,h)},l})(Math.SQRT2,2,4);var nu=0,Pu=0,Nu=0,V_=1e3,rf,Iu,sf=0,cc=0,pf=0,Wu=typeof performance=="object"&&performance.now?performance:Date,q_=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function fh(){return cc||(q_(Zb),cc=Wu.now()+pf)}function Zb(){cc=0}function of(){this._call=this._time=this._next=null}of.prototype=G_.prototype={constructor:of,restart:function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?fh():+r)+(t==null?0:+t),!this._next&&Iu!==this&&(Iu?Iu._next=this:rf=this,Iu=this),this._call=e,this._time=r,Um()},stop:function(){this._call&&(this._call=null,this._time=1/0,Um())}};function G_(e,t,r){var o=new of;return o.restart(e,t,r),o}function eS(){fh(),++nu;for(var e=rf,t;e;)(t=cc-e._time)>=0&&e._call.call(void 0,t),e=e._next;--nu}function ig(){cc=(sf=Wu.now())+pf,nu=Pu=0;try{eS()}finally{nu=0,nS(),cc=0}}function tS(){var e=Wu.now(),t=e-sf;t>V_&&(pf-=t,sf=e)}function nS(){for(var e,t=rf,r,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(r=t._next,t._next=null,t=e?e._next=r:rf=r);Iu=e,Um(o)}function Um(e){if(!nu){Pu&&(Pu=clearTimeout(Pu));var t=e-cc;t>24?(e<1/0&&(Pu=setTimeout(ig,e-Wu.now()-pf)),Nu&&(Nu=clearInterval(Nu))):(Nu||(sf=Wu.now(),Nu=setInterval(tS,V_)),nu=1,q_(ig))}}function og(e,t,r){var o=new of;return t=t==null?0:+t,o.restart(l=>{o.stop(),e(l+t)},t,r),o}var rS=mf("start","end","cancel","interrupt"),sS=[],Y_=0,ag=1,Wm=2,Xd=3,lg=4,Hm=5,Kd=6;function gf(e,t,r,o,l,u){var c=e.__transition;if(!c)e.__transition={};else if(r in c)return;iS(e,r,{name:t,index:o,group:l,on:rS,tween:sS,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:Y_})}function mh(e,t){var r=Do(e,t);if(r.state>Y_)throw new Error("too late; already scheduled");return r}function da(e,t){var r=Do(e,t);if(r.state>Xd)throw new Error("too late; already running");return r}function Do(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function iS(e,t,r){var o=e.__transition,l;o[t]=r,r.timer=G_(u,0,r.time);function u(_){r.state=ag,r.timer.restart(c,r.delay,r.time),r.delay<=_&&c(_-r.delay)}function c(_){var g,x,v,b;if(r.state!==ag)return h();for(g in o)if(b=o[g],b.name===r.name){if(b.state===Xd)return og(c);b.state===lg?(b.state=Kd,b.timer.stop(),b.on.call("interrupt",e,e.__data__,b.index,b.group),delete o[g]):+g<t&&(b.state=Kd,b.timer.stop(),b.on.call("cancel",e,e.__data__,b.index,b.group),delete o[g])}if(og(function(){r.state===Xd&&(r.state=lg,r.timer.restart(d,r.delay,r.time),d(_))}),r.state=Wm,r.on.call("start",e,e.__data__,r.index,r.group),r.state===Wm){for(r.state=Xd,l=new Array(v=r.tween.length),g=0,x=-1;g<v;++g)(b=r.tween[g].value.call(e,e.__data__,r.index,r.group))&&(l[++x]=b);l.length=x+1}}function d(_){for(var g=_<r.duration?r.ease.call(null,_/r.duration):(r.timer.restart(h),r.state=Hm,1),x=-1,v=l.length;++x<v;)l[x].call(e,g);r.state===Hm&&(r.on.call("end",e,e.__data__,r.index,r.group),h())}function h(){r.state=Kd,r.timer.stop(),delete o[t];for(var _ in o)return;delete e.__transition}}function Jd(e,t){var r=e.__transition,o,l,u=!0,c;if(r){t=t==null?null:t+"";for(c in r){if((o=r[c]).name!==t){u=!1;continue}l=o.state>Wm&&o.state<Hm,o.state=Kd,o.timer.stop(),o.on.call(l?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete r[c]}u&&delete e.__transition}}function oS(e){return this.each(function(){Jd(this,e)})}function aS(e,t){var r,o;return function(){var l=da(this,e),u=l.tween;if(u!==r){o=r=u;for(var c=0,d=o.length;c<d;++c)if(o[c].name===t){o=o.slice(),o.splice(c,1);break}}l.tween=o}}function lS(e,t,r){var o,l;if(typeof r!="function")throw new Error;return function(){var u=da(this,e),c=u.tween;if(c!==o){l=(o=c).slice();for(var d={name:t,value:r},h=0,_=l.length;h<_;++h)if(l[h].name===t){l[h]=d;break}h===_&&l.push(d)}u.tween=l}}function cS(e,t){var r=this._id;if(e+="",arguments.length<2){for(var o=Do(this.node(),r).tween,l=0,u=o.length,c;l<u;++l)if((c=o[l]).name===e)return c.value;return null}return this.each((t==null?aS:lS)(r,e,t))}function hh(e,t,r){var o=e._id;return e.each(function(){var l=da(this,o);(l.value||(l.value={}))[t]=r.apply(this,arguments)}),function(l){return Do(l,o).value[t]}}function X_(e,t){var r;return(typeof t=="number"?Sl:t instanceof Uu?ng:(r=Uu(t))?(t=r,ng):Hb)(e,t)}function uS(e){return function(){this.removeAttribute(e)}}function dS(e){return function(){this.removeAttributeNS(e.space,e.local)}}function fS(e,t,r){var o,l=r+"",u;return function(){var c=this.getAttribute(e);return c===l?null:c===o?u:u=t(o=c,r)}}function mS(e,t,r){var o,l=r+"",u;return function(){var c=this.getAttributeNS(e.space,e.local);return c===l?null:c===o?u:u=t(o=c,r)}}function hS(e,t,r){var o,l,u;return function(){var c,d=r(this),h;return d==null?void this.removeAttribute(e):(c=this.getAttribute(e),h=d+"",c===h?null:c===o&&h===l?u:(l=h,u=t(o=c,d)))}}function pS(e,t,r){var o,l,u;return function(){var c,d=r(this),h;return d==null?void this.removeAttributeNS(e.space,e.local):(c=this.getAttributeNS(e.space,e.local),h=d+"",c===h?null:c===o&&h===l?u:(l=h,u=t(o=c,d)))}}function gS(e,t){var r=hf(e),o=r==="transform"?Yb:X_;return this.attrTween(e,typeof t=="function"?(r.local?pS:hS)(r,o,hh(this,"attr."+e,t)):t==null?(r.local?dS:uS)(r):(r.local?mS:fS)(r,o,t))}function _S(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function yS(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function xS(e,t){var r,o;function l(){var u=t.apply(this,arguments);return u!==o&&(r=(o=u)&&yS(e,u)),r}return l._value=t,l}function vS(e,t){var r,o;function l(){var u=t.apply(this,arguments);return u!==o&&(r=(o=u)&&_S(e,u)),r}return l._value=t,l}function wS(e,t){var r="attr."+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;var o=hf(e);return this.tween(r,(o.local?xS:vS)(o,t))}function bS(e,t){return function(){mh(this,e).delay=+t.apply(this,arguments)}}function SS(e,t){return t=+t,function(){mh(this,e).delay=t}}function jS(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?bS:SS)(t,e)):Do(this.node(),t).delay}function kS(e,t){return function(){da(this,e).duration=+t.apply(this,arguments)}}function NS(e,t){return t=+t,function(){da(this,e).duration=t}}function CS(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kS:NS)(t,e)):Do(this.node(),t).duration}function ES(e,t){if(typeof t!="function")throw new Error;return function(){da(this,e).ease=t}}function $S(e){var t=this._id;return arguments.length?this.each(ES(t,e)):Do(this.node(),t).ease}function TS(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;da(this,e).ease=r}}function MS(e){if(typeof e!="function")throw new Error;return this.each(TS(this._id,e))}function AS(e){typeof e!="function"&&(e=C_(e));for(var t=this._groups,r=t.length,o=new Array(r),l=0;l<r;++l)for(var u=t[l],c=u.length,d=o[l]=[],h,_=0;_<c;++_)(h=u[_])&&e.call(h,h.__data__,_,u)&&d.push(h);return new Ia(o,this._parents,this._name,this._id)}function zS(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,r=e._groups,o=t.length,l=r.length,u=Math.min(o,l),c=new Array(o),d=0;d<u;++d)for(var h=t[d],_=r[d],g=h.length,x=c[d]=new Array(g),v,b=0;b<g;++b)(v=h[b]||_[b])&&(x[b]=v);for(;d<o;++d)c[d]=t[d];return new Ia(c,this._parents,this._name,this._id)}function RS(e){return(e+"").trim().split(/^|\s+/).every(function(t){var r=t.indexOf(".");return r>=0&&(t=t.slice(0,r)),!t||t==="start"})}function LS(e,t,r){var o,l,u=RS(t)?mh:da;return function(){var c=u(this,e),d=c.on;d!==o&&(l=(o=d).copy()).on(t,r),c.on=l}}function PS(e,t){var r=this._id;return arguments.length<2?Do(this.node(),r).on.on(e):this.each(LS(r,e,t))}function IS(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function OS(){return this.on("end.remove",IS(this._id))}function FS(e){var t=this._name,r=this._id;typeof e!="function"&&(e=ch(e));for(var o=this._groups,l=o.length,u=new Array(l),c=0;c<l;++c)for(var d=o[c],h=d.length,_=u[c]=new Array(h),g,x,v=0;v<h;++v)(g=d[v])&&(x=e.call(g,g.__data__,v,d))&&("__data__"in g&&(x.__data__=g.__data__),_[v]=x,gf(_[v],t,r,v,_,Do(g,r)));return new Ia(u,this._parents,t,r)}function DS(e){var t=this._name,r=this._id;typeof e!="function"&&(e=N_(e));for(var o=this._groups,l=o.length,u=[],c=[],d=0;d<l;++d)for(var h=o[d],_=h.length,g,x=0;x<_;++x)if(g=h[x]){for(var v=e.call(g,g.__data__,x,h),b,j=Do(g,r),S=0,M=v.length;S<M;++S)(b=v[S])&&gf(b,t,r,S,v,j);u.push(v),c.push(g)}return new Ia(u,c,t,r)}var BS=Ju.prototype.constructor;function US(){return new BS(this._groups,this._parents)}function WS(e,t){var r,o,l;return function(){var u=tu(this,e),c=(this.style.removeProperty(e),tu(this,e));return u===c?null:u===r&&c===o?l:l=t(r=u,o=c)}}function K_(e){return function(){this.style.removeProperty(e)}}function HS(e,t,r){var o,l=r+"",u;return function(){var c=tu(this,e);return c===l?null:c===o?u:u=t(o=c,r)}}function VS(e,t,r){var o,l,u;return function(){var c=tu(this,e),d=r(this),h=d+"";return d==null&&(h=d=(this.style.removeProperty(e),tu(this,e))),c===h?null:c===o&&h===l?u:(l=h,u=t(o=c,d))}}function qS(e,t){var r,o,l,u="style."+t,c="end."+u,d;return function(){var h=da(this,e),_=h.on,g=h.value[u]==null?d||(d=K_(t)):void 0;(_!==r||l!==g)&&(o=(r=_).copy()).on(c,l=g),h.on=o}}function GS(e,t,r){var o=(e+="")=="transform"?Gb:X_;return t==null?this.styleTween(e,WS(e,o)).on("end.style."+e,K_(e)):typeof t=="function"?this.styleTween(e,VS(e,o,hh(this,"style."+e,t))).each(qS(this._id,e)):this.styleTween(e,HS(e,o,t),r).on("end.style."+e,null)}function YS(e,t,r){return function(o){this.style.setProperty(e,t.call(this,o),r)}}function XS(e,t,r){var o,l;function u(){var c=t.apply(this,arguments);return c!==l&&(o=(l=c)&&YS(e,c,r)),o}return u._value=t,u}function KS(e,t,r){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,XS(e,t,r??""))}function JS(e){return function(){this.textContent=e}}function QS(e){return function(){var t=e(this);this.textContent=t??""}}function ZS(e){return this.tween("text",typeof e=="function"?QS(hh(this,"text",e)):JS(e==null?"":e+""))}function ej(e){return function(t){this.textContent=e.call(this,t)}}function tj(e){var t,r;function o(){var l=e.apply(this,arguments);return l!==r&&(t=(r=l)&&ej(l)),t}return o._value=e,o}function nj(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,tj(e))}function rj(){for(var e=this._name,t=this._id,r=J_(),o=this._groups,l=o.length,u=0;u<l;++u)for(var c=o[u],d=c.length,h,_=0;_<d;++_)if(h=c[_]){var g=Do(h,t);gf(h,e,r,_,c,{time:g.time+g.delay+g.duration,delay:0,duration:g.duration,ease:g.ease})}return new Ia(o,this._parents,e,r)}function sj(){var e,t,r=this,o=r._id,l=r.size();return new Promise(function(u,c){var d={value:c},h={value:function(){--l===0&&u()}};r.each(function(){var _=da(this,o),g=_.on;g!==e&&(t=(e=g).copy(),t._.cancel.push(d),t._.interrupt.push(d),t._.end.push(h)),_.on=t}),l===0&&u()})}var ij=0;function Ia(e,t,r,o){this._groups=e,this._parents=t,this._name=r,this._id=o}function J_(){return++ij}var za=Ju.prototype;Ia.prototype={constructor:Ia,select:FS,selectAll:DS,selectChild:za.selectChild,selectChildren:za.selectChildren,filter:AS,merge:zS,selection:US,transition:rj,call:za.call,nodes:za.nodes,node:za.node,size:za.size,empty:za.empty,each:za.each,on:PS,attr:gS,attrTween:wS,style:GS,styleTween:KS,text:ZS,textTween:nj,remove:OS,tween:cS,delay:jS,duration:CS,ease:$S,easeVarying:MS,end:sj,[Symbol.iterator]:za[Symbol.iterator]};function oj(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var aj={time:null,delay:0,duration:250,ease:oj};function lj(e,t){for(var r;!(r=e.__transition)||!(r=r[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return r}function cj(e){var t,r;e instanceof Ia?(t=e._id,e=e._name):(t=J_(),(r=aj).time=fh(),e=e==null?null:e+"");for(var o=this._groups,l=o.length,u=0;u<l;++u)for(var c=o[u],d=c.length,h,_=0;_<d;++_)(h=c[_])&&gf(h,e,t,_,c,r||lj(h,t));return new Ia(o,this._parents,e,t)}Ju.prototype.interrupt=oS;Ju.prototype.transition=cj;const Pd=e=>()=>e;function uj(e,{sourceEvent:t,target:r,transform:o,dispatch:l}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:l}})}function La(e,t,r){this.k=e,this.x=t,this.y=r}La.prototype={constructor:La,scale:function(e){return e===1?this:new La(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new La(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 Pa=new La(1,0,0);La.prototype;function pm(e){e.stopImmediatePropagation()}function Cu(e){e.preventDefault(),e.stopImmediatePropagation()}function dj(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function fj(){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 cg(){return this.__zoom||Pa}function mj(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function hj(){return navigator.maxTouchPoints||"ontouchstart"in this}function pj(e,t,r){var o=e.invertX(t[0][0])-r[0][0],l=e.invertX(t[1][0])-r[1][0],u=e.invertY(t[0][1])-r[0][1],c=e.invertY(t[1][1])-r[1][1];return e.translate(l>o?(o+l)/2:Math.min(0,o)||Math.max(0,l),c>u?(u+c)/2:Math.min(0,u)||Math.max(0,c))}function Q_(){var e=dj,t=fj,r=pj,o=mj,l=hj,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=Qb,_=mf("start","zoom","end"),g,x,v,b=500,j=150,S=0,M=10;function A(I){I.property("__zoom",cg).on("wheel.zoom",J,{passive:!1}).on("mousedown.zoom",ge).on("dblclick.zoom",me).filter(l).on("touchstart.zoom",$e).on("touchmove.zoom",Me).on("touchend.zoom touchcancel.zoom",ue).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}A.transform=function(I,G,H,Z){var N=I.selection?I.selection():I;N.property("__zoom",cg),I!==N?Y(I,G,H,Z):N.interrupt().each(function(){ne(this,arguments).event(Z).start().zoom(null,typeof G=="function"?G.apply(this,arguments):G).end()})},A.scaleBy=function(I,G,H,Z){A.scaleTo(I,function(){var N=this.__zoom.k,z=typeof G=="function"?G.apply(this,arguments):G;return N*z},H,Z)},A.scaleTo=function(I,G,H,Z){A.transform(I,function(){var N=t.apply(this,arguments),z=this.__zoom,F=H==null?L(N):typeof H=="function"?H.apply(this,arguments):H,E=z.invert(F),U=typeof G=="function"?G.apply(this,arguments):G;return r(O(D(z,U),F,E),N,c)},H,Z)},A.translateBy=function(I,G,H,Z){A.transform(I,function(){return r(this.__zoom.translate(typeof G=="function"?G.apply(this,arguments):G,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),c)},null,Z)},A.translateTo=function(I,G,H,Z,N){A.transform(I,function(){var z=t.apply(this,arguments),F=this.__zoom,E=Z==null?L(z):typeof Z=="function"?Z.apply(this,arguments):Z;return r(Pa.translate(E[0],E[1]).scale(F.k).translate(typeof G=="function"?-G.apply(this,arguments):-G,typeof H=="function"?-H.apply(this,arguments):-H),z,c)},Z,N)};function D(I,G){return G=Math.max(u[0],Math.min(u[1],G)),G===I.k?I:new La(G,I.x,I.y)}function O(I,G,H){var Z=G[0]-H[0]*I.k,N=G[1]-H[1]*I.k;return Z===I.x&&N===I.y?I:new La(I.k,Z,N)}function L(I){return[(+I[0][0]+ +I[1][0])/2,(+I[0][1]+ +I[1][1])/2]}function Y(I,G,H,Z){I.on("start.zoom",function(){ne(this,arguments).event(Z).start()}).on("interrupt.zoom end.zoom",function(){ne(this,arguments).event(Z).end()}).tween("zoom",function(){var N=this,z=arguments,F=ne(N,z).event(Z),E=t.apply(N,z),U=H==null?L(E):typeof H=="function"?H.apply(N,z):H,te=Math.max(E[1][0]-E[0][0],E[1][1]-E[0][1]),re=N.__zoom,he=typeof G=="function"?G.apply(N,z):G,Ne=h(re.invert(U).concat(te/re.k),he.invert(U).concat(te/he.k));return function(ce){if(ce===1)ce=he;else{var xe=Ne(ce),Pe=te/xe[2];ce=new La(Pe,U[0]-xe[0]*Pe,U[1]-xe[1]*Pe)}F.zoom(null,ce)}})}function ne(I,G,H){return!H&&I.__zooming||new X(I,G)}function X(I,G){this.that=I,this.args=G,this.active=0,this.sourceEvent=null,this.extent=t.apply(I,G),this.taps=0}X.prototype={event:function(I){return I&&(this.sourceEvent=I),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(I,G){return this.mouse&&I!=="mouse"&&(this.mouse[1]=G.invert(this.mouse[0])),this.touch0&&I!=="touch"&&(this.touch0[1]=G.invert(this.touch0[0])),this.touch1&&I!=="touch"&&(this.touch1[1]=G.invert(this.touch1[0])),this.that.__zoom=G,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(I){var G=ao(this.that).datum();_.call(I,this.that,new uj(I,{sourceEvent:this.sourceEvent,target:A,transform:this.that.__zoom,dispatch:_}),G)}};function J(I,...G){if(!e.apply(this,arguments))return;var H=ne(this,G).event(I),Z=this.__zoom,N=Math.max(u[0],Math.min(u[1],Z.k*Math.pow(2,o.apply(this,arguments)))),z=Po(I);if(H.wheel)(H.mouse[0][0]!==z[0]||H.mouse[0][1]!==z[1])&&(H.mouse[1]=Z.invert(H.mouse[0]=z)),clearTimeout(H.wheel);else{if(Z.k===N)return;H.mouse=[z,Z.invert(z)],Jd(this),H.start()}Cu(I),H.wheel=setTimeout(F,j),H.zoom("mouse",r(O(D(Z,N),H.mouse[0],H.mouse[1]),H.extent,c));function F(){H.wheel=null,H.end()}}function ge(I,...G){if(v||!e.apply(this,arguments))return;var H=I.currentTarget,Z=ne(this,G,!0).event(I),N=ao(I.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",te,!0),z=Po(I,H),F=I.clientX,E=I.clientY;I_(I.view),pm(I),Z.mouse=[z,this.__zoom.invert(z)],Jd(this),Z.start();function U(re){if(Cu(re),!Z.moved){var he=re.clientX-F,Ne=re.clientY-E;Z.moved=he*he+Ne*Ne>S}Z.event(re).zoom("mouse",r(O(Z.that.__zoom,Z.mouse[0]=Po(re,H),Z.mouse[1]),Z.extent,c))}function te(re){N.on("mousemove.zoom mouseup.zoom",null),O_(re.view,Z.moved),Cu(re),Z.event(re).end()}}function me(I,...G){if(e.apply(this,arguments)){var H=this.__zoom,Z=Po(I.changedTouches?I.changedTouches[0]:I,this),N=H.invert(Z),z=H.k*(I.shiftKey?.5:2),F=r(O(D(H,z),Z,N),t.apply(this,G),c);Cu(I),d>0?ao(this).transition().duration(d).call(Y,F,Z,I):ao(this).call(A.transform,F,Z,I)}}function $e(I,...G){if(e.apply(this,arguments)){var H=I.touches,Z=H.length,N=ne(this,G,I.changedTouches.length===Z).event(I),z,F,E,U;for(pm(I),F=0;F<Z;++F)E=H[F],U=Po(E,this),U=[U,this.__zoom.invert(U),E.identifier],N.touch0?!N.touch1&&N.touch0[2]!==U[2]&&(N.touch1=U,N.taps=0):(N.touch0=U,z=!0,N.taps=1+!!g);g&&(g=clearTimeout(g)),z&&(N.taps<2&&(x=U[0],g=setTimeout(function(){g=null},b)),Jd(this),N.start())}}function Me(I,...G){if(this.__zooming){var H=ne(this,G).event(I),Z=I.changedTouches,N=Z.length,z,F,E,U;for(Cu(I),z=0;z<N;++z)F=Z[z],E=Po(F,this),H.touch0&&H.touch0[2]===F.identifier?H.touch0[0]=E:H.touch1&&H.touch1[2]===F.identifier&&(H.touch1[0]=E);if(F=H.that.__zoom,H.touch1){var te=H.touch0[0],re=H.touch0[1],he=H.touch1[0],Ne=H.touch1[1],ce=(ce=he[0]-te[0])*ce+(ce=he[1]-te[1])*ce,xe=(xe=Ne[0]-re[0])*xe+(xe=Ne[1]-re[1])*xe;F=D(F,Math.sqrt(ce/xe)),E=[(te[0]+he[0])/2,(te[1]+he[1])/2],U=[(re[0]+Ne[0])/2,(re[1]+Ne[1])/2]}else if(H.touch0)E=H.touch0[0],U=H.touch0[1];else return;H.zoom("touch",r(O(F,E,U),H.extent,c))}}function ue(I,...G){if(this.__zooming){var H=ne(this,G).event(I),Z=I.changedTouches,N=Z.length,z,F;for(pm(I),v&&clearTimeout(v),v=setTimeout(function(){v=null},b),z=0;z<N;++z)F=Z[z],H.touch0&&H.touch0[2]===F.identifier?delete H.touch0:H.touch1&&H.touch1[2]===F.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(F=Po(F,this),Math.hypot(x[0]-F[0],x[1]-F[1])<M)){var E=ao(this).on("dblclick.zoom");E&&E.apply(this,arguments)}}}return A.wheelDelta=function(I){return arguments.length?(o=typeof I=="function"?I:Pd(+I),A):o},A.filter=function(I){return arguments.length?(e=typeof I=="function"?I:Pd(!!I),A):e},A.touchable=function(I){return arguments.length?(l=typeof I=="function"?I:Pd(!!I),A):l},A.extent=function(I){return arguments.length?(t=typeof I=="function"?I:Pd([[+I[0][0],+I[0][1]],[+I[1][0],+I[1][1]]]),A):t},A.scaleExtent=function(I){return arguments.length?(u[0]=+I[0],u[1]=+I[1],A):[u[0],u[1]]},A.translateExtent=function(I){return arguments.length?(c[0][0]=+I[0][0],c[1][0]=+I[1][0],c[0][1]=+I[0][1],c[1][1]=+I[1][1],A):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},A.constrain=function(I){return arguments.length?(r=I,A):r},A.duration=function(I){return arguments.length?(d=+I,A):d},A.interpolate=function(I){return arguments.length?(h=I,A):h},A.on=function(){var I=_.on.apply(_,arguments);return I===_?A:I},A.clickDistance=function(I){return arguments.length?(S=(I=+I)*I,A):Math.sqrt(S)},A.tapDistance=function(I){return arguments.length?(M=+I,A):M},A}const _f=m.createContext(null),gj=_f.Provider,Oa={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,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,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.`},Z_=Oa.error001();function rr(e,t){const r=m.useContext(_f);if(r===null)throw new Error(Z_);return j_(r,e,t)}const Qr=()=>{const e=m.useContext(_f);if(e===null)throw new Error(Z_);return m.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},_j=e=>e.userSelectionActive?"none":"all";function Hu({position:e,children:t,className:r,style:o,...l}){const u=rr(_j),c=`${e}`.split("-");return Ee.createElement("div",{className:ks(["react-flow__panel",r,...c]),style:{...o,pointerEvents:u},...l},t)}function yj({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:Ee.createElement(Hu,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},Ee.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const xj=({x:e,y:t,label:r,labelStyle:o={},labelShowBg:l=!0,labelBgStyle:u={},labelBgPadding:c=[2,4],labelBgBorderRadius:d=2,children:h,className:_,...g})=>{const x=m.useRef(null),[v,b]=m.useState({x:0,y:0,width:0,height:0}),j=ks(["react-flow__edge-textwrapper",_]);return m.useEffect(()=>{if(x.current){const S=x.current.getBBox();b({x:S.x,y:S.y,width:S.width,height:S.height})}},[r]),typeof r>"u"||!r?null:Ee.createElement("g",{transform:`translate(${e-v.width/2} ${t-v.height/2})`,className:j,visibility:v.width?"visible":"hidden",...g},l&&Ee.createElement("rect",{width:v.width+2*c[0],x:-c[0],y:-c[1],height:v.height+2*c[1],className:"react-flow__edge-textbg",style:u,rx:d,ry:d}),Ee.createElement("text",{className:"react-flow__edge-text",y:v.height/2,dy:"0.3em",ref:x,style:o},r),h)};var vj=m.memo(xj);const ph=e=>({width:e.offsetWidth,height:e.offsetHeight}),ru=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),gh=(e={x:0,y:0},t)=>({x:ru(e.x,t[0][0],t[1][0]),y:ru(e.y,t[0][1],t[1][1])}),ug=(e,t,r)=>e<t?ru(Math.abs(e-t),1,50)/50:e>r?-ru(Math.abs(e-r),1,50)/50:0,ey=(e,t)=>{const r=ug(e.x,35,t.width-35)*20,o=ug(e.y,35,t.height-35)*20;return[r,o]},ty=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},ny=(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)}),Vu=({x:e,y:t,width:r,height:o})=>({x:e,y:t,x2:e+r,y2:t+o}),ry=({x:e,y:t,x2:r,y2:o})=>({x:e,y:t,width:r-e,height:o-t}),dg=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),wj=(e,t)=>ry(ny(Vu(e),Vu(t))),Vm=(e,t)=>{const r=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(r*o)},bj=e=>lo(e.width)&&lo(e.height)&&lo(e.x)&&lo(e.y),lo=e=>!isNaN(e)&&isFinite(e),Hr=Symbol.for("internals"),sy=["Enter"," ","Escape"],Sj=(e,t)=>{},jj=e=>"nativeEvent"in e;function qm(e){var l,u;const t=jj(e)?e.nativeEvent:e,r=((u=(l=t.composedPath)==null?void 0:l.call(t))==null?void 0:u[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const iy=e=>"clientX"in e,Nl=(e,t)=>{var u,c;const r=iy(e),o=r?e.clientX:(u=e.touches)==null?void 0:u[0].clientX,l=r?e.clientY:(c=e.touches)==null?void 0:c[0].clientY;return{x:o-((t==null?void 0:t.left)??0),y:l-((t==null?void 0:t.top)??0)}},af=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},Zu=({id:e,path:t,labelX:r,labelY:o,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:x,markerStart:v,interactionWidth:b=20})=>Ee.createElement(Ee.Fragment,null,Ee.createElement("path",{id:e,style:g,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:x,markerStart:v}),b&&Ee.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:b,className:"react-flow__edge-interaction"}),l&&lo(r)&&lo(o)?Ee.createElement(vj,{x:r,y:o,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_}):null);Zu.displayName="BaseEdge";function Eu(e,t,r){return r===void 0?r:o=>{const l=t().edges.find(u=>u.id===e);l&&r(o,{...l})}}function oy({sourceX:e,sourceY:t,targetX:r,targetY:o}){const l=Math.abs(r-e)/2,u=r<e?r+l:r-l,c=Math.abs(o-t)/2,d=o<t?o+c:o-c;return[u,d,l,c]}function ay({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:l,sourceControlY:u,targetControlX:c,targetControlY:d}){const h=e*.125+l*.375+c*.375+r*.125,_=t*.125+u*.375+d*.375+o*.125,g=Math.abs(h-e),x=Math.abs(_-t);return[h,_,g,x]}var uc;(function(e){e.Strict="strict",e.Loose="loose"})(uc||(uc={}));var oc;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(oc||(oc={}));var qu;(function(e){e.Partial="partial",e.Full="full"})(qu||(qu={}));var kl;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(kl||(kl={}));var Gu;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Gu||(Gu={}));var Pt;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Pt||(Pt={}));function fg({pos:e,x1:t,y1:r,x2:o,y2:l}){return e===Pt.Left||e===Pt.Right?[.5*(t+o),r]:[t,.5*(r+l)]}function ly({sourceX:e,sourceY:t,sourcePosition:r=Pt.Bottom,targetX:o,targetY:l,targetPosition:u=Pt.Top}){const[c,d]=fg({pos:r,x1:e,y1:t,x2:o,y2:l}),[h,_]=fg({pos:u,x1:o,y1:l,x2:e,y2:t}),[g,x,v,b]=ay({sourceX:e,sourceY:t,targetX:o,targetY:l,sourceControlX:c,sourceControlY:d,targetControlX:h,targetControlY:_});return[`M${e},${t} C${c},${d} ${h},${_} ${o},${l}`,g,x,v,b]}const _h=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:l=Pt.Bottom,targetPosition:u=Pt.Top,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:S})=>{const[M,A,D]=ly({sourceX:e,sourceY:t,sourcePosition:l,targetX:r,targetY:o,targetPosition:u});return Ee.createElement(Zu,{path:M,labelX:A,labelY:D,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:S})});_h.displayName="SimpleBezierEdge";const mg={[Pt.Left]:{x:-1,y:0},[Pt.Right]:{x:1,y:0},[Pt.Top]:{x:0,y:-1},[Pt.Bottom]:{x:0,y:1}},kj=({source:e,sourcePosition:t=Pt.Bottom,target:r})=>t===Pt.Left||t===Pt.Right?e.x<r.x?{x:1,y:0}:{x:-1,y:0}:e.y<r.y?{x:0,y:1}:{x:0,y:-1},hg=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Nj({source:e,sourcePosition:t=Pt.Bottom,target:r,targetPosition:o=Pt.Top,center:l,offset:u}){const c=mg[t],d=mg[o],h={x:e.x+c.x*u,y:e.y+c.y*u},_={x:r.x+d.x*u,y:r.y+d.y*u},g=kj({source:h,sourcePosition:t,target:_}),x=g.x!==0?"x":"y",v=g[x];let b=[],j,S;const M={x:0,y:0},A={x:0,y:0},[D,O,L,Y]=oy({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(c[x]*d[x]===-1){j=l.x||D,S=l.y||O;const X=[{x:j,y:h.y},{x:j,y:_.y}],J=[{x:h.x,y:S},{x:_.x,y:S}];c[x]===v?b=x==="x"?X:J:b=x==="x"?J:X}else{const X=[{x:h.x,y:_.y}],J=[{x:_.x,y:h.y}];if(x==="x"?b=c.x===v?J:X:b=c.y===v?X:J,t===o){const ue=Math.abs(e[x]-r[x]);if(ue<=u){const I=Math.min(u-1,u-ue);c[x]===v?M[x]=(h[x]>e[x]?-1:1)*I:A[x]=(_[x]>r[x]?-1:1)*I}}if(t!==o){const ue=x==="x"?"y":"x",I=c[x]===d[ue],G=h[ue]>_[ue],H=h[ue]<_[ue];(c[x]===1&&(!I&&G||I&&H)||c[x]!==1&&(!I&&H||I&&G))&&(b=x==="x"?X:J)}const ge={x:h.x+M.x,y:h.y+M.y},me={x:_.x+A.x,y:_.y+A.y},$e=Math.max(Math.abs(ge.x-b[0].x),Math.abs(me.x-b[0].x)),Me=Math.max(Math.abs(ge.y-b[0].y),Math.abs(me.y-b[0].y));$e>=Me?(j=(ge.x+me.x)/2,S=b[0].y):(j=b[0].x,S=(ge.y+me.y)/2)}return[[e,{x:h.x+M.x,y:h.y+M.y},...b,{x:_.x+A.x,y:_.y+A.y},r],j,S,L,Y]}function Cj(e,t,r,o){const l=Math.min(hg(e,t)/2,hg(t,r)/2,o),{x:u,y:c}=t;if(e.x===u&&u===r.x||e.y===c&&c===r.y)return`L${u} ${c}`;if(e.y===c){const _=e.x<r.x?-1:1,g=e.y<r.y?1:-1;return`L ${u+l*_},${c}Q ${u},${c} ${u},${c+l*g}`}const d=e.x<r.x?1:-1,h=e.y<r.y?-1:1;return`L ${u},${c+l*h}Q ${u},${c} ${u+l*d},${c}`}function Gm({sourceX:e,sourceY:t,sourcePosition:r=Pt.Bottom,targetX:o,targetY:l,targetPosition:u=Pt.Top,borderRadius:c=5,centerX:d,centerY:h,offset:_=20}){const[g,x,v,b,j]=Nj({source:{x:e,y:t},sourcePosition:r,target:{x:o,y:l},targetPosition:u,center:{x:d,y:h},offset:_});return[g.reduce((M,A,D)=>{let O="";return D>0&&D<g.length-1?O=Cj(g[D-1],A,g[D+1],c):O=`${D===0?"M":"L"}${A.x} ${A.y}`,M+=O,M},""),x,v,b,j]}const yf=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,sourcePosition:x=Pt.Bottom,targetPosition:v=Pt.Top,markerEnd:b,markerStart:j,pathOptions:S,interactionWidth:M})=>{const[A,D,O]=Gm({sourceX:e,sourceY:t,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:S==null?void 0:S.borderRadius,offset:S==null?void 0:S.offset});return Ee.createElement(Zu,{path:A,labelX:D,labelY:O,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:b,markerStart:j,interactionWidth:M})});yf.displayName="SmoothStepEdge";const yh=m.memo(e=>{var t;return Ee.createElement(yf,{...e,pathOptions:m.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(t=e.pathOptions)==null?void 0:t.offset])})});yh.displayName="StepEdge";function Ej({sourceX:e,sourceY:t,targetX:r,targetY:o}){const[l,u,c,d]=oy({sourceX:e,sourceY:t,targetX:r,targetY:o});return[`M ${e},${t}L ${r},${o}`,l,u,c,d]}const xh=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:x,markerStart:v,interactionWidth:b})=>{const[j,S,M]=Ej({sourceX:e,sourceY:t,targetX:r,targetY:o});return Ee.createElement(Zu,{path:j,labelX:S,labelY:M,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:x,markerStart:v,interactionWidth:b})});xh.displayName="StraightEdge";function Id(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function pg({pos:e,x1:t,y1:r,x2:o,y2:l,c:u}){switch(e){case Pt.Left:return[t-Id(t-o,u),r];case Pt.Right:return[t+Id(o-t,u),r];case Pt.Top:return[t,r-Id(r-l,u)];case Pt.Bottom:return[t,r+Id(l-r,u)]}}function cy({sourceX:e,sourceY:t,sourcePosition:r=Pt.Bottom,targetX:o,targetY:l,targetPosition:u=Pt.Top,curvature:c=.25}){const[d,h]=pg({pos:r,x1:e,y1:t,x2:o,y2:l,c}),[_,g]=pg({pos:u,x1:o,y1:l,x2:e,y2:t,c}),[x,v,b,j]=ay({sourceX:e,sourceY:t,targetX:o,targetY:l,sourceControlX:d,sourceControlY:h,targetControlX:_,targetControlY:g});return[`M${e},${t} C${d},${h} ${_},${g} ${o},${l}`,x,v,b,j]}const lf=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:l=Pt.Bottom,targetPosition:u=Pt.Top,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,pathOptions:S,interactionWidth:M})=>{const[A,D,O]=cy({sourceX:e,sourceY:t,sourcePosition:l,targetX:r,targetY:o,targetPosition:u,curvature:S==null?void 0:S.curvature});return Ee.createElement(Zu,{path:A,labelX:D,labelY:O,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:M})});lf.displayName="BezierEdge";const vh=m.createContext(null),$j=vh.Provider;vh.Consumer;const Tj=()=>m.useContext(vh),Mj=e=>"id"in e&&"source"in e&&"target"in e,Aj=({source:e,sourceHandle:t,target:r,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${r}${o||""}`,Ym=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`,zj=(e,t)=>t.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),Rj=(e,t)=>{if(!e.source||!e.target)return t;let r;return Mj(e)?r={...e}:r={...e,id:Aj(e)},zj(r,t)?t:t.concat(r)},Xm=({x:e,y:t},[r,o,l],u,[c,d])=>{const h={x:(e-r)/l,y:(t-o)/l};return u?{x:c*Math.round(h.x/c),y:d*Math.round(h.y/d)}:h},uy=({x:e,y:t},[r,o,l])=>({x:e*l+r,y:t*l+o}),lc=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*t[0],o=(e.height??0)*t[1],l={x:e.position.x-r,y:e.position.y-o};return{...l,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-o}:l}},xf=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((o,l)=>{const{x:u,y:c}=lc(l,t).positionAbsolute;return ny(o,Vu({x:u,y:c,width:l.width||0,height:l.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return ry(r)},dy=(e,t,[r,o,l]=[0,0,1],u=!1,c=!1,d=[0,0])=>{const h={x:(t.x-r)/l,y:(t.y-o)/l,width:t.width/l,height:t.height/l},_=[];return e.forEach(g=>{const{width:x,height:v,selectable:b=!0,hidden:j=!1}=g;if(c&&!b||j)return!1;const{positionAbsolute:S}=lc(g,d),M={x:S.x,y:S.y,width:x||0,height:v||0},A=Vm(h,M),D=typeof x>"u"||typeof v>"u"||x===null||v===null,O=u&&A>0,L=(x||0)*(v||0);(D||O||A>=L||g.dragging)&&_.push(g)}),_},fy=(e,t)=>{const r=e.map(o=>o.id);return t.filter(o=>r.includes(o.source)||r.includes(o.target))},my=(e,t,r,o,l,u=.1)=>{const c=t/(e.width*(1+u)),d=r/(e.height*(1+u)),h=Math.min(c,d),_=ru(h,o,l),g=e.x+e.width/2,x=e.y+e.height/2,v=t/2-g*_,b=r/2-x*_;return{x:v,y:b,zoom:_}},rc=(e,t=0)=>e.transition().duration(t);function gg(e,t,r,o){return(t[r]||[]).reduce((l,u)=>{var c,d;return`${e.id}-${u.id}-${r}`!==o&&l.push({id:u.id||null,type:r,nodeId:e.id,x:(((c=e.positionAbsolute)==null?void 0:c.x)??0)+u.x+u.width/2,y:(((d=e.positionAbsolute)==null?void 0:d.y)??0)+u.y+u.height/2}),l},[])}function Lj(e,t,r,o,l,u){const{x:c,y:d}=Nl(e),_=t.elementsFromPoint(c,d).find(j=>j.classList.contains("react-flow__handle"));if(_){const j=_.getAttribute("data-nodeid");if(j){const S=wh(void 0,_),M=_.getAttribute("data-handleid"),A=u({nodeId:j,id:M,type:S});if(A){const D=l.find(O=>O.nodeId===j&&O.type===S&&O.id===M);return{handle:{id:M,type:S,nodeId:j,x:(D==null?void 0:D.x)||r.x,y:(D==null?void 0:D.y)||r.y},validHandleResult:A}}}}let g=[],x=1/0;if(l.forEach(j=>{const S=Math.sqrt((j.x-r.x)**2+(j.y-r.y)**2);if(S<=o){const M=u(j);S<=x&&(S<x?g=[{handle:j,validHandleResult:M}]:S===x&&g.push({handle:j,validHandleResult:M}),x=S)}}),!g.length)return{handle:null,validHandleResult:hy()};if(g.length===1)return g[0];const v=g.some(({validHandleResult:j})=>j.isValid),b=g.some(({handle:j})=>j.type==="target");return g.find(({handle:j,validHandleResult:S})=>b?j.type==="target":v?S.isValid:!0)||g[0]}const Pj={source:null,target:null,sourceHandle:null,targetHandle:null},hy=()=>({handleDomNode:null,isValid:!1,connection:Pj,endHandle:null});function py(e,t,r,o,l,u,c){const d=l==="target",h=c.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),_={...hy(),handleDomNode:h};if(h){const g=wh(void 0,h),x=h.getAttribute("data-nodeid"),v=h.getAttribute("data-handleid"),b=h.classList.contains("connectable"),j=h.classList.contains("connectableend"),S={source:d?x:r,sourceHandle:d?v:o,target:d?r:x,targetHandle:d?o:v};_.connection=S,b&&j&&(t===uc.Strict?d&&g==="source"||!d&&g==="target":x!==r||v!==o)&&(_.endHandle={nodeId:x,handleId:v,type:g},_.isValid=u(S))}return _}function Ij({nodes:e,nodeId:t,handleId:r,handleType:o}){return e.reduce((l,u)=>{if(u[Hr]){const{handleBounds:c}=u[Hr];let d=[],h=[];c&&(d=gg(u,c,"source",`${t}-${r}-${o}`),h=gg(u,c,"target",`${t}-${r}-${o}`)),l.push(...d,...h)}return l},[])}function wh(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function gm(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Oj(e,t){let r=null;return t?r="valid":e&&!t&&(r="invalid"),r}function gy({event:e,handleId:t,nodeId:r,onConnect:o,isTarget:l,getState:u,setState:c,isValidConnection:d,edgeUpdaterType:h,onEdgeUpdateEnd:_}){const g=ty(e.target),{connectionMode:x,domNode:v,autoPanOnConnect:b,connectionRadius:j,onConnectStart:S,panBy:M,getNodes:A,cancelConnection:D}=u();let O=0,L;const{x:Y,y:ne}=Nl(e),X=g==null?void 0:g.elementFromPoint(Y,ne),J=wh(h,X),ge=v==null?void 0:v.getBoundingClientRect();if(!ge||!J)return;let me,$e=Nl(e,ge),Me=!1,ue=null,I=!1,G=null;const H=Ij({nodes:A(),nodeId:r,handleId:t,handleType:J}),Z=()=>{if(!b)return;const[F,E]=ey($e,ge);M({x:F,y:E}),O=requestAnimationFrame(Z)};c({connectionPosition:$e,connectionStatus:null,connectionNodeId:r,connectionHandleId:t,connectionHandleType:J,connectionStartHandle:{nodeId:r,handleId:t,type:J},connectionEndHandle:null}),S==null||S(e,{nodeId:r,handleId:t,handleType:J});function N(F){const{transform:E}=u();$e=Nl(F,ge);const{handle:U,validHandleResult:te}=Lj(F,g,Xm($e,E,!1,[1,1]),j,H,re=>py(re,x,r,t,l?"target":"source",d,g));if(L=U,Me||(Z(),Me=!0),G=te.handleDomNode,ue=te.connection,I=te.isValid,c({connectionPosition:L&&I?uy({x:L.x,y:L.y},E):$e,connectionStatus:Oj(!!L,I),connectionEndHandle:te.endHandle}),!L&&!I&&!G)return gm(me);ue.source!==ue.target&&G&&(gm(me),me=G,G.classList.add("connecting","react-flow__handle-connecting"),G.classList.toggle("valid",I),G.classList.toggle("react-flow__handle-valid",I))}function z(F){var E,U;(L||G)&&ue&&I&&(o==null||o(ue)),(U=(E=u()).onConnectEnd)==null||U.call(E,F),h&&(_==null||_(F)),gm(me),D(),cancelAnimationFrame(O),Me=!1,I=!1,ue=null,G=null,g.removeEventListener("mousemove",N),g.removeEventListener("mouseup",z),g.removeEventListener("touchmove",N),g.removeEventListener("touchend",z)}g.addEventListener("mousemove",N),g.addEventListener("mouseup",z),g.addEventListener("touchmove",N),g.addEventListener("touchend",z)}const _g=()=>!0,Fj=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Dj=(e,t,r)=>o=>{const{connectionStartHandle:l,connectionEndHandle:u,connectionClickStartHandle:c}=o;return{connecting:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===t&&(l==null?void 0:l.type)===r||(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===t&&(u==null?void 0:u.type)===r,clickConnecting:(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.handleId)===t&&(c==null?void 0:c.type)===r}},_y=m.forwardRef(({type:e="source",position:t=Pt.Top,isValidConnection:r,isConnectable:o=!0,isConnectableStart:l=!0,isConnectableEnd:u=!0,id:c,onConnect:d,children:h,className:_,onMouseDown:g,onTouchStart:x,...v},b)=>{var ge,me;const j=c||null,S=e==="target",M=Qr(),A=Tj(),{connectOnClick:D,noPanClassName:O}=rr(Fj,us),{connecting:L,clickConnecting:Y}=rr(Dj(A,j,e),us);A||(me=(ge=M.getState()).onError)==null||me.call(ge,"010",Oa.error010());const ne=$e=>{const{defaultEdgeOptions:Me,onConnect:ue,hasDefaultEdges:I}=M.getState(),G={...Me,...$e};if(I){const{edges:H,setEdges:Z}=M.getState();Z(Rj(G,H))}ue==null||ue(G),d==null||d(G)},X=$e=>{if(!A)return;const Me=iy($e);l&&(Me&&$e.button===0||!Me)&&gy({event:$e,handleId:j,nodeId:A,onConnect:ne,isTarget:S,getState:M.getState,setState:M.setState,isValidConnection:r||M.getState().isValidConnection||_g}),Me?g==null||g($e):x==null||x($e)},J=$e=>{const{onClickConnectStart:Me,onClickConnectEnd:ue,connectionClickStartHandle:I,connectionMode:G,isValidConnection:H}=M.getState();if(!A||!I&&!l)return;if(!I){Me==null||Me($e,{nodeId:A,handleId:j,handleType:e}),M.setState({connectionClickStartHandle:{nodeId:A,type:e,handleId:j}});return}const Z=ty($e.target),N=r||H||_g,{connection:z,isValid:F}=py({nodeId:A,id:j,type:e},G,I.nodeId,I.handleId||null,I.type,N,Z);F&&ne(z),ue==null||ue($e),M.setState({connectionClickStartHandle:null})};return Ee.createElement("div",{"data-handleid":j,"data-nodeid":A,"data-handlepos":t,"data-id":`${A}-${j}-${e}`,className:ks(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",O,_,{source:!S,target:S,connectable:o,connectablestart:l,connectableend:u,connecting:Y,connectionindicator:o&&(l&&!L||u&&L)}]),onMouseDown:X,onTouchStart:X,onClick:D?J:void 0,ref:b,...v},h)});_y.displayName="Handle";var cf=m.memo(_y);const yy=({data:e,isConnectable:t,targetPosition:r=Pt.Top,sourcePosition:o=Pt.Bottom})=>Ee.createElement(Ee.Fragment,null,Ee.createElement(cf,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label,Ee.createElement(cf,{type:"source",position:o,isConnectable:t}));yy.displayName="DefaultNode";var Km=m.memo(yy);const xy=({data:e,isConnectable:t,sourcePosition:r=Pt.Bottom})=>Ee.createElement(Ee.Fragment,null,e==null?void 0:e.label,Ee.createElement(cf,{type:"source",position:r,isConnectable:t}));xy.displayName="InputNode";var vy=m.memo(xy);const wy=({data:e,isConnectable:t,targetPosition:r=Pt.Top})=>Ee.createElement(Ee.Fragment,null,Ee.createElement(cf,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label);wy.displayName="OutputNode";var by=m.memo(wy);const bh=()=>null;bh.displayName="GroupNode";const Bj=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected)}),Od=e=>e.id;function Uj(e,t){return us(e.selectedNodes.map(Od),t.selectedNodes.map(Od))&&us(e.selectedEdges.map(Od),t.selectedEdges.map(Od))}const Sy=m.memo(({onSelectionChange:e})=>{const t=Qr(),{selectedNodes:r,selectedEdges:o}=rr(Bj,Uj);return m.useEffect(()=>{const l={nodes:r,edges:o};e==null||e(l),t.getState().onSelectionChange.forEach(u=>u(l))},[r,o,e]),null});Sy.displayName="SelectionListener";const Wj=e=>!!e.onSelectionChange;function Hj({onSelectionChange:e}){const t=rr(Wj);return e||t?Ee.createElement(Sy,{onSelectionChange:e}):null}const Vj=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Dc(e,t){m.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function wn(e,t,r){m.useEffect(()=>{typeof t<"u"&&r({[e]:t})},[t])}const qj=({nodes:e,edges:t,defaultNodes:r,defaultEdges:o,onConnect:l,onConnectStart:u,onConnectEnd:c,onClickConnectStart:d,onClickConnectEnd:h,nodesDraggable:_,nodesConnectable:g,nodesFocusable:x,edgesFocusable:v,edgesUpdatable:b,elevateNodesOnSelect:j,minZoom:S,maxZoom:M,nodeExtent:A,onNodesChange:D,onEdgesChange:O,elementsSelectable:L,connectionMode:Y,snapGrid:ne,snapToGrid:X,translateExtent:J,connectOnClick:ge,defaultEdgeOptions:me,fitView:$e,fitViewOptions:Me,onNodesDelete:ue,onEdgesDelete:I,onNodeDrag:G,onNodeDragStart:H,onNodeDragStop:Z,onSelectionDrag:N,onSelectionDragStart:z,onSelectionDragStop:F,noPanClassName:E,nodeOrigin:U,rfId:te,autoPanOnConnect:re,autoPanOnNodeDrag:he,onError:Ne,connectionRadius:ce,isValidConnection:xe,nodeDragThreshold:Pe})=>{const{setNodes:oe,setEdges:be,setDefaultNodesAndEdges:Se,setMinZoom:Ue,setMaxZoom:De,setTranslateExtent:ct,setNodeExtent:ut,reset:Ae}=rr(Vj,us),Re=Qr();return m.useEffect(()=>{const dt=o==null?void 0:o.map(jt=>({...jt,...me}));return Se(r,dt),()=>{Ae()}},[]),wn("defaultEdgeOptions",me,Re.setState),wn("connectionMode",Y,Re.setState),wn("onConnect",l,Re.setState),wn("onConnectStart",u,Re.setState),wn("onConnectEnd",c,Re.setState),wn("onClickConnectStart",d,Re.setState),wn("onClickConnectEnd",h,Re.setState),wn("nodesDraggable",_,Re.setState),wn("nodesConnectable",g,Re.setState),wn("nodesFocusable",x,Re.setState),wn("edgesFocusable",v,Re.setState),wn("edgesUpdatable",b,Re.setState),wn("elementsSelectable",L,Re.setState),wn("elevateNodesOnSelect",j,Re.setState),wn("snapToGrid",X,Re.setState),wn("snapGrid",ne,Re.setState),wn("onNodesChange",D,Re.setState),wn("onEdgesChange",O,Re.setState),wn("connectOnClick",ge,Re.setState),wn("fitViewOnInit",$e,Re.setState),wn("fitViewOnInitOptions",Me,Re.setState),wn("onNodesDelete",ue,Re.setState),wn("onEdgesDelete",I,Re.setState),wn("onNodeDrag",G,Re.setState),wn("onNodeDragStart",H,Re.setState),wn("onNodeDragStop",Z,Re.setState),wn("onSelectionDrag",N,Re.setState),wn("onSelectionDragStart",z,Re.setState),wn("onSelectionDragStop",F,Re.setState),wn("noPanClassName",E,Re.setState),wn("nodeOrigin",U,Re.setState),wn("rfId",te,Re.setState),wn("autoPanOnConnect",re,Re.setState),wn("autoPanOnNodeDrag",he,Re.setState),wn("onError",Ne,Re.setState),wn("connectionRadius",ce,Re.setState),wn("isValidConnection",xe,Re.setState),wn("nodeDragThreshold",Pe,Re.setState),Dc(e,oe),Dc(t,be),Dc(S,Ue),Dc(M,De),Dc(J,ct),Dc(A,ut),null},yg={display:"none"},Gj={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},jy="react-flow__node-desc",ky="react-flow__edge-desc",Yj="react-flow__aria-live",Xj=e=>e.ariaLiveMessage;function Kj({rfId:e}){const t=rr(Xj);return Ee.createElement("div",{id:`${Yj}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Gj},t)}function Jj({rfId:e,disableKeyboardA11y:t}){return Ee.createElement(Ee.Fragment,null,Ee.createElement("div",{id:`${jy}-${e}`,style:yg},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),Ee.createElement("div",{id:`${ky}-${e}`,style:yg},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&Ee.createElement(Kj,{rfId:e}))}var Yu=(e=null,t={actInsideInputWithModifier:!0})=>{const[r,o]=m.useState(!1),l=m.useRef(!1),u=m.useRef(new Set([])),[c,d]=m.useMemo(()=>{if(e!==null){const _=(Array.isArray(e)?e:[e]).filter(x=>typeof x=="string").map(x=>x.split("+")),g=_.reduce((x,v)=>x.concat(...v),[]);return[_,g]}return[[],[]]},[e]);return m.useEffect(()=>{const h=typeof document<"u"?document:null,_=(t==null?void 0:t.target)||h;if(e!==null){const g=b=>{if(l.current=b.ctrlKey||b.metaKey||b.shiftKey,(!l.current||l.current&&!t.actInsideInputWithModifier)&&qm(b))return!1;const S=vg(b.code,d);u.current.add(b[S]),xg(c,u.current,!1)&&(b.preventDefault(),o(!0))},x=b=>{if((!l.current||l.current&&!t.actInsideInputWithModifier)&&qm(b))return!1;const S=vg(b.code,d);xg(c,u.current,!0)?(o(!1),u.current.clear()):u.current.delete(b[S]),b.key==="Meta"&&u.current.clear(),l.current=!1},v=()=>{u.current.clear(),o(!1)};return _==null||_.addEventListener("keydown",g),_==null||_.addEventListener("keyup",x),window.addEventListener("blur",v),()=>{_==null||_.removeEventListener("keydown",g),_==null||_.removeEventListener("keyup",x),window.removeEventListener("blur",v)}}},[e,o]),r};function xg(e,t,r){return e.filter(o=>r||o.length===t.size).some(o=>o.every(l=>t.has(l)))}function vg(e,t){return t.includes(e)?"code":"key"}function Ny(e,t,r,o){var c,d;if(!e.parentNode)return r;const l=t.get(e.parentNode),u=lc(l,o);return Ny(l,t,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[Hr])==null?void 0:c.z)??0)>(r.z??0)?((d=l[Hr])==null?void 0:d.z)??0:r.z??0},o)}function Cy(e,t,r){e.forEach(o=>{var l;if(o.parentNode&&!e.has(o.parentNode))throw new Error(`Parent node ${o.parentNode} not found`);if(o.parentNode||r!=null&&r[o.id]){const{x:u,y:c,z:d}=Ny(o,e,{...o.position,z:((l=o[Hr])==null?void 0:l.z)??0},t);o.positionAbsolute={x:u,y:c},o[Hr].z=d,r!=null&&r[o.id]&&(o[Hr].isParent=!0)}})}function _m(e,t,r,o){const l=new Map,u={},c=o?1e3:0;return e.forEach(d=>{var v;const h=(lo(d.zIndex)?d.zIndex:0)+(d.selected?c:0),_=t.get(d.id),g={...d,positionAbsolute:{x:d.position.x,y:d.position.y}};d.parentNode&&(u[d.parentNode]=!0);const x=(_==null?void 0:_.type)&&(_==null?void 0:_.type)!==d.type;Object.defineProperty(g,Hr,{enumerable:!1,value:{handleBounds:x||(v=_==null?void 0:_[Hr])==null?void 0:v.handleBounds,z:h}}),l.set(d.id,g)}),Cy(l,r,u),l}function Ey(e,t={}){const{getNodes:r,width:o,height:l,minZoom:u,maxZoom:c,d3Zoom:d,d3Selection:h,fitViewOnInitDone:_,fitViewOnInit:g,nodeOrigin:x}=e(),v=t.initial&&!_&&g;if(d&&h&&(v||!t.initial)){const j=r().filter(M=>{var D;const A=t.includeHiddenNodes?M.width&&M.height:!M.hidden;return(D=t.nodes)!=null&&D.length?A&&t.nodes.some(O=>O.id===M.id):A}),S=j.every(M=>M.width&&M.height);if(j.length>0&&S){const M=xf(j,x),{x:A,y:D,zoom:O}=my(M,o,l,t.minZoom??u,t.maxZoom??c,t.padding??.1),L=Pa.translate(A,D).scale(O);return typeof t.duration=="number"&&t.duration>0?d.transform(rc(h,t.duration),L):d.transform(h,L),!0}}return!1}function Qj(e,t){return e.forEach(r=>{const o=t.get(r.id);o&&t.set(o.id,{...o,[Hr]:o[Hr],selected:r.selected})}),new Map(t)}function Zj(e,t){return t.map(r=>{const o=e.find(l=>l.id===r.id);return o&&(r.selected=o.selected),r})}function Fd({changedNodes:e,changedEdges:t,get:r,set:o}){const{nodeInternals:l,edges:u,onNodesChange:c,onEdgesChange:d,hasDefaultNodes:h,hasDefaultEdges:_}=r();e!=null&&e.length&&(h&&o({nodeInternals:Qj(e,l)}),c==null||c(e)),t!=null&&t.length&&(_&&o({edges:Zj(t,u)}),d==null||d(t))}const Bc=()=>{},ek={zoomIn:Bc,zoomOut:Bc,zoomTo:Bc,getZoom:()=>1,setViewport:Bc,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Bc,fitBounds:Bc,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},tk=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),nk=()=>{const e=Qr(),{d3Zoom:t,d3Selection:r}=rr(tk,us);return m.useMemo(()=>r&&t?{zoomIn:l=>t.scaleBy(rc(r,l==null?void 0:l.duration),1.2),zoomOut:l=>t.scaleBy(rc(r,l==null?void 0:l.duration),1/1.2),zoomTo:(l,u)=>t.scaleTo(rc(r,u==null?void 0:u.duration),l),getZoom:()=>e.getState().transform[2],setViewport:(l,u)=>{const[c,d,h]=e.getState().transform,_=Pa.translate(l.x??c,l.y??d).scale(l.zoom??h);t.transform(rc(r,u==null?void 0:u.duration),_)},getViewport:()=>{const[l,u,c]=e.getState().transform;return{x:l,y:u,zoom:c}},fitView:l=>Ey(e.getState,l),setCenter:(l,u,c)=>{const{width:d,height:h,maxZoom:_}=e.getState(),g=typeof(c==null?void 0:c.zoom)<"u"?c.zoom:_,x=d/2-l*g,v=h/2-u*g,b=Pa.translate(x,v).scale(g);t.transform(rc(r,c==null?void 0:c.duration),b)},fitBounds:(l,u)=>{const{width:c,height:d,minZoom:h,maxZoom:_}=e.getState(),{x:g,y:x,zoom:v}=my(l,c,d,h,_,(u==null?void 0:u.padding)??.1),b=Pa.translate(g,x).scale(v);t.transform(rc(r,u==null?void 0:u.duration),b)},project:l=>{const{transform:u,snapToGrid:c,snapGrid:d}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Xm(l,u,c,d)},screenToFlowPosition:l=>{const{transform:u,snapToGrid:c,snapGrid:d,domNode:h}=e.getState();if(!h)return l;const{x:_,y:g}=h.getBoundingClientRect(),x={x:l.x-_,y:l.y-g};return Xm(x,u,c,d)},flowToScreenPosition:l=>{const{transform:u,domNode:c}=e.getState();if(!c)return l;const{x:d,y:h}=c.getBoundingClientRect(),_=uy(l,u);return{x:_.x+d,y:_.y+h}},viewportInitialized:!0}:ek,[t,r])};function Sh(){const e=nk(),t=Qr(),r=m.useCallback(()=>t.getState().getNodes().map(S=>({...S})),[]),o=m.useCallback(S=>t.getState().nodeInternals.get(S),[]),l=m.useCallback(()=>{const{edges:S=[]}=t.getState();return S.map(M=>({...M}))},[]),u=m.useCallback(S=>{const{edges:M=[]}=t.getState();return M.find(A=>A.id===S)},[]),c=m.useCallback(S=>{const{getNodes:M,setNodes:A,hasDefaultNodes:D,onNodesChange:O}=t.getState(),L=M(),Y=typeof S=="function"?S(L):S;if(D)A(Y);else if(O){const ne=Y.length===0?L.map(X=>({type:"remove",id:X.id})):Y.map(X=>({item:X,type:"reset"}));O(ne)}},[]),d=m.useCallback(S=>{const{edges:M=[],setEdges:A,hasDefaultEdges:D,onEdgesChange:O}=t.getState(),L=typeof S=="function"?S(M):S;if(D)A(L);else if(O){const Y=L.length===0?M.map(ne=>({type:"remove",id:ne.id})):L.map(ne=>({item:ne,type:"reset"}));O(Y)}},[]),h=m.useCallback(S=>{const M=Array.isArray(S)?S:[S],{getNodes:A,setNodes:D,hasDefaultNodes:O,onNodesChange:L}=t.getState();if(O){const ne=[...A(),...M];D(ne)}else if(L){const Y=M.map(ne=>({item:ne,type:"add"}));L(Y)}},[]),_=m.useCallback(S=>{const M=Array.isArray(S)?S:[S],{edges:A=[],setEdges:D,hasDefaultEdges:O,onEdgesChange:L}=t.getState();if(O)D([...A,...M]);else if(L){const Y=M.map(ne=>({item:ne,type:"add"}));L(Y)}},[]),g=m.useCallback(()=>{const{getNodes:S,edges:M=[],transform:A}=t.getState(),[D,O,L]=A;return{nodes:S().map(Y=>({...Y})),edges:M.map(Y=>({...Y})),viewport:{x:D,y:O,zoom:L}}},[]),x=m.useCallback(({nodes:S,edges:M})=>{const{nodeInternals:A,getNodes:D,edges:O,hasDefaultNodes:L,hasDefaultEdges:Y,onNodesDelete:ne,onEdgesDelete:X,onNodesChange:J,onEdgesChange:ge}=t.getState(),me=(S||[]).map(G=>G.id),$e=(M||[]).map(G=>G.id),Me=D().reduce((G,H)=>{const Z=!me.includes(H.id)&&H.parentNode&&G.find(z=>z.id===H.parentNode);return(typeof H.deletable=="boolean"?H.deletable:!0)&&(me.includes(H.id)||Z)&&G.push(H),G},[]),ue=O.filter(G=>typeof G.deletable=="boolean"?G.deletable:!0),I=ue.filter(G=>$e.includes(G.id));if(Me||I){const G=fy(Me,ue),H=[...I,...G],Z=H.reduce((N,z)=>(N.includes(z.id)||N.push(z.id),N),[]);if((Y||L)&&(Y&&t.setState({edges:O.filter(N=>!Z.includes(N.id))}),L&&(Me.forEach(N=>{A.delete(N.id)}),t.setState({nodeInternals:new Map(A)}))),Z.length>0&&(X==null||X(H),ge&&ge(Z.map(N=>({id:N,type:"remove"})))),Me.length>0&&(ne==null||ne(Me),J)){const N=Me.map(z=>({id:z.id,type:"remove"}));J(N)}}},[]),v=m.useCallback(S=>{const M=bj(S),A=M?null:t.getState().nodeInternals.get(S.id);return!M&&!A?[null,null,M]:[M?S:dg(A),A,M]},[]),b=m.useCallback((S,M=!0,A)=>{const[D,O,L]=v(S);return D?(A||t.getState().getNodes()).filter(Y=>{if(!L&&(Y.id===O.id||!Y.positionAbsolute))return!1;const ne=dg(Y),X=Vm(ne,D);return M&&X>0||X>=D.width*D.height}):[]},[]),j=m.useCallback((S,M,A=!0)=>{const[D]=v(S);if(!D)return!1;const O=Vm(D,M);return A&&O>0||O>=D.width*D.height},[]);return m.useMemo(()=>({...e,getNodes:r,getNode:o,getEdges:l,getEdge:u,setNodes:c,setEdges:d,addNodes:h,addEdges:_,toObject:g,deleteElements:x,getIntersectingNodes:b,isNodeIntersecting:j}),[e,r,o,l,u,c,d,h,_,g,x,b,j])}const rk={actInsideInputWithModifier:!1};var sk=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const r=Qr(),{deleteElements:o}=Sh(),l=Yu(e,rk),u=Yu(t);m.useEffect(()=>{if(l){const{edges:c,getNodes:d}=r.getState(),h=d().filter(g=>g.selected),_=c.filter(g=>g.selected);o({nodes:h,edges:_}),r.setState({nodesSelectionActive:!1})}},[l]),m.useEffect(()=>{r.setState({multiSelectionActive:u})},[u])};function ik(e){const t=Qr();m.useEffect(()=>{let r;const o=()=>{var u,c;if(!e.current)return;const l=ph(e.current);(l.height===0||l.width===0)&&((c=(u=t.getState()).onError)==null||c.call(u,"004",Oa.error004())),t.setState({width:l.width||500,height:l.height||500})};return o(),window.addEventListener("resize",o),e.current&&(r=new ResizeObserver(()=>o()),r.observe(e.current)),()=>{window.removeEventListener("resize",o),r&&e.current&&r.unobserve(e.current)}},[])}const jh={position:"absolute",width:"100%",height:"100%",top:0,left:0},ok=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,Dd=e=>({x:e.x,y:e.y,zoom:e.k}),Uc=(e,t)=>e.target.closest(`.${t}`),wg=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),bg=e=>{const t=e.ctrlKey&&af()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},ak=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),lk=({onMove:e,onMoveStart:t,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:l=!0,zoomOnPinch:u=!0,panOnScroll:c=!1,panOnScrollSpeed:d=.5,panOnScrollMode:h=oc.Free,zoomOnDoubleClick:_=!0,elementsSelectable:g,panOnDrag:x=!0,defaultViewport:v,translateExtent:b,minZoom:j,maxZoom:S,zoomActivationKeyCode:M,preventScrolling:A=!0,children:D,noWheelClassName:O,noPanClassName:L})=>{const Y=m.useRef(),ne=Qr(),X=m.useRef(!1),J=m.useRef(!1),ge=m.useRef(null),me=m.useRef({x:0,y:0,zoom:0}),{d3Zoom:$e,d3Selection:Me,d3ZoomHandler:ue,userSelectionActive:I}=rr(ak,us),G=Yu(M),H=m.useRef(0),Z=m.useRef(!1),N=m.useRef();return ik(ge),m.useEffect(()=>{if(ge.current){const z=ge.current.getBoundingClientRect(),F=Q_().scaleExtent([j,S]).translateExtent(b),E=ao(ge.current).call(F),U=Pa.translate(v.x,v.y).scale(ru(v.zoom,j,S)),te=[[0,0],[z.width,z.height]],re=F.constrain()(U,te,b);F.transform(E,re),F.wheelDelta(bg),ne.setState({d3Zoom:F,d3Selection:E,d3ZoomHandler:E.on("wheel.zoom"),transform:[re.x,re.y,re.k],domNode:ge.current.closest(".react-flow")})}},[]),m.useEffect(()=>{Me&&$e&&(c&&!G&&!I?Me.on("wheel.zoom",z=>{if(Uc(z,O))return!1;z.preventDefault(),z.stopImmediatePropagation();const F=Me.property("__zoom").k||1,E=af();if(z.ctrlKey&&u&&E){const Pe=Po(z),oe=bg(z),be=F*Math.pow(2,oe);$e.scaleTo(Me,be,Pe,z);return}const U=z.deltaMode===1?20:1;let te=h===oc.Vertical?0:z.deltaX*U,re=h===oc.Horizontal?0:z.deltaY*U;!E&&z.shiftKey&&h!==oc.Vertical&&(te=z.deltaY*U,re=0),$e.translateBy(Me,-(te/F)*d,-(re/F)*d,{internal:!0});const he=Dd(Me.property("__zoom")),{onViewportChangeStart:Ne,onViewportChange:ce,onViewportChangeEnd:xe}=ne.getState();clearTimeout(N.current),Z.current||(Z.current=!0,t==null||t(z,he),Ne==null||Ne(he)),Z.current&&(e==null||e(z,he),ce==null||ce(he),N.current=setTimeout(()=>{r==null||r(z,he),xe==null||xe(he),Z.current=!1},150))},{passive:!1}):typeof ue<"u"&&Me.on("wheel.zoom",function(z,F){if(!A||Uc(z,O))return null;z.preventDefault(),ue.call(this,z,F)},{passive:!1}))},[I,c,h,Me,$e,ue,G,u,A,O,t,e,r]),m.useEffect(()=>{$e&&$e.on("start",z=>{var U,te;if(!z.sourceEvent||z.sourceEvent.internal)return null;H.current=(U=z.sourceEvent)==null?void 0:U.button;const{onViewportChangeStart:F}=ne.getState(),E=Dd(z.transform);X.current=!0,me.current=E,((te=z.sourceEvent)==null?void 0:te.type)==="mousedown"&&ne.setState({paneDragging:!0}),F==null||F(E),t==null||t(z.sourceEvent,E)})},[$e,t]),m.useEffect(()=>{$e&&(I&&!X.current?$e.on("zoom",null):I||$e.on("zoom",z=>{var E;const{onViewportChange:F}=ne.getState();if(ne.setState({transform:[z.transform.x,z.transform.y,z.transform.k]}),J.current=!!(o&&wg(x,H.current??0)),(e||F)&&!((E=z.sourceEvent)!=null&&E.internal)){const U=Dd(z.transform);F==null||F(U),e==null||e(z.sourceEvent,U)}}))},[I,$e,e,x,o]),m.useEffect(()=>{$e&&$e.on("end",z=>{if(!z.sourceEvent||z.sourceEvent.internal)return null;const{onViewportChangeEnd:F}=ne.getState();if(X.current=!1,ne.setState({paneDragging:!1}),o&&wg(x,H.current??0)&&!J.current&&o(z.sourceEvent),J.current=!1,(r||F)&&ok(me.current,z.transform)){const E=Dd(z.transform);me.current=E,clearTimeout(Y.current),Y.current=setTimeout(()=>{F==null||F(E),r==null||r(z.sourceEvent,E)},c?150:0)}})},[$e,c,x,r,o]),m.useEffect(()=>{$e&&$e.filter(z=>{const F=G||l,E=u&&z.ctrlKey;if((x===!0||Array.isArray(x)&&x.includes(1))&&z.button===1&&z.type==="mousedown"&&(Uc(z,"react-flow__node")||Uc(z,"react-flow__edge")))return!0;if(!x&&!F&&!c&&!_&&!u||I||!_&&z.type==="dblclick"||Uc(z,O)&&z.type==="wheel"||Uc(z,L)&&(z.type!=="wheel"||c&&z.type==="wheel"&&!G)||!u&&z.ctrlKey&&z.type==="wheel"||!F&&!c&&!E&&z.type==="wheel"||!x&&(z.type==="mousedown"||z.type==="touchstart")||Array.isArray(x)&&!x.includes(z.button)&&(z.type==="mousedown"||z.type==="touchstart"))return!1;const U=Array.isArray(x)&&x.includes(z.button)||!z.button||z.button<=1;return(!z.ctrlKey||z.type==="wheel")&&U})},[I,$e,l,u,c,_,x,g,G]),Ee.createElement("div",{className:"react-flow__renderer",ref:ge,style:jh},D)},ck=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function uk(){const{userSelectionActive:e,userSelectionRect:t}=rr(ck,us);return e&&t?Ee.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function Sg(e,t){const r=e.find(o=>o.id===t.parentNode);if(r){const o=t.position.x+t.width-r.width,l=t.position.y+t.height-r.height;if(o>0||l>0||t.position.x<0||t.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,o>0&&(r.style.width+=o),l>0&&(r.style.height+=l),t.position.x<0){const u=Math.abs(t.position.x);r.position.x=r.position.x-u,r.style.width+=u,t.position.x=0}if(t.position.y<0){const u=Math.abs(t.position.y);r.position.y=r.position.y-u,r.style.height+=u,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function dk(e,t){if(e.some(o=>o.type==="reset"))return e.filter(o=>o.type==="reset").map(o=>o.item);const r=e.filter(o=>o.type==="add").map(o=>o.item);return t.reduce((o,l)=>{const u=e.filter(d=>d.id===l.id);if(u.length===0)return o.push(l),o;const c={...l};for(const d of u)if(d)switch(d.type){case"select":{c.selected=d.selected;break}case"position":{typeof d.position<"u"&&(c.position=d.position),typeof d.positionAbsolute<"u"&&(c.positionAbsolute=d.positionAbsolute),typeof d.dragging<"u"&&(c.dragging=d.dragging),c.expandParent&&Sg(o,c);break}case"dimensions":{typeof d.dimensions<"u"&&(c.width=d.dimensions.width,c.height=d.dimensions.height),typeof d.updateStyle<"u"&&(c.style={...c.style||{},...d.dimensions}),typeof d.resizing=="boolean"&&(c.resizing=d.resizing),c.expandParent&&Sg(o,c);break}case"remove":return o}return o.push(c),o},r)}function fk(e,t){return dk(e,t)}const jl=(e,t)=>({id:e,type:"select",selected:t});function Xc(e,t){return e.reduce((r,o)=>{const l=t.includes(o.id);return!o.selected&&l?(o.selected=!0,r.push(jl(o.id,!0))):o.selected&&!l&&(o.selected=!1,r.push(jl(o.id,!1))),r},[])}const ym=(e,t)=>r=>{r.target===t.current&&(e==null||e(r))},mk=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),$y=m.memo(({isSelecting:e,selectionMode:t=qu.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:l,onPaneClick:u,onPaneContextMenu:c,onPaneScroll:d,onPaneMouseEnter:h,onPaneMouseMove:_,onPaneMouseLeave:g,children:x})=>{const v=m.useRef(null),b=Qr(),j=m.useRef(0),S=m.useRef(0),M=m.useRef(),{userSelectionActive:A,elementsSelectable:D,dragging:O}=rr(mk,us),L=()=>{b.setState({userSelectionActive:!1,userSelectionRect:null}),j.current=0,S.current=0},Y=ue=>{u==null||u(ue),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},ne=ue=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){ue.preventDefault();return}c==null||c(ue)},X=d?ue=>d(ue):void 0,J=ue=>{const{resetSelectedElements:I,domNode:G}=b.getState();if(M.current=G==null?void 0:G.getBoundingClientRect(),!D||!e||ue.button!==0||ue.target!==v.current||!M.current)return;const{x:H,y:Z}=Nl(ue,M.current);I(),b.setState({userSelectionRect:{width:0,height:0,startX:H,startY:Z,x:H,y:Z}}),o==null||o(ue)},ge=ue=>{const{userSelectionRect:I,nodeInternals:G,edges:H,transform:Z,onNodesChange:N,onEdgesChange:z,nodeOrigin:F,getNodes:E}=b.getState();if(!e||!M.current||!I)return;b.setState({userSelectionActive:!0,nodesSelectionActive:!1});const U=Nl(ue,M.current),te=I.startX??0,re=I.startY??0,he={...I,x:U.x<te?U.x:te,y:U.y<re?U.y:re,width:Math.abs(U.x-te),height:Math.abs(U.y-re)},Ne=E(),ce=dy(G,he,Z,t===qu.Partial,!0,F),xe=fy(ce,H).map(oe=>oe.id),Pe=ce.map(oe=>oe.id);if(j.current!==Pe.length){j.current=Pe.length;const oe=Xc(Ne,Pe);oe.length&&(N==null||N(oe))}if(S.current!==xe.length){S.current=xe.length;const oe=Xc(H,xe);oe.length&&(z==null||z(oe))}b.setState({userSelectionRect:he})},me=ue=>{if(ue.button!==0)return;const{userSelectionRect:I}=b.getState();!A&&I&&ue.target===v.current&&(Y==null||Y(ue)),b.setState({nodesSelectionActive:j.current>0}),L(),l==null||l(ue)},$e=ue=>{A&&(b.setState({nodesSelectionActive:j.current>0}),l==null||l(ue)),L()},Me=D&&(e||A);return Ee.createElement("div",{className:ks(["react-flow__pane",{dragging:O,selection:e}]),onClick:Me?void 0:ym(Y,v),onContextMenu:ym(ne,v),onWheel:ym(X,v),onMouseEnter:Me?void 0:h,onMouseDown:Me?J:void 0,onMouseMove:Me?ge:_,onMouseUp:Me?me:void 0,onMouseLeave:Me?$e:g,ref:v,style:jh},x,Ee.createElement(uk,null))});$y.displayName="Pane";function Ty(e,t){if(!e.parentNode)return!1;const r=t.get(e.parentNode);return r?r.selected?!0:Ty(r,t):!1}function jg(e,t,r){let o=e;do{if(o!=null&&o.matches(t))return!0;if(o===r.current)return!1;o=o.parentElement}while(o);return!1}function hk(e,t,r,o){return Array.from(e.values()).filter(l=>(l.selected||l.id===o)&&(!l.parentNode||!Ty(l,e))&&(l.draggable||t&&typeof l.draggable>"u")).map(l=>{var u,c;return{id:l.id,position:l.position||{x:0,y:0},positionAbsolute:l.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((u=l.positionAbsolute)==null?void 0:u.x)??0),y:r.y-(((c=l.positionAbsolute)==null?void 0:c.y)??0)},delta:{x:0,y:0},extent:l.extent,parentNode:l.parentNode,width:l.width,height:l.height,expandParent:l.expandParent}})}function pk(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function My(e,t,r,o,l=[0,0],u){const c=pk(e,e.extent||o);let d=c;if(e.extent==="parent"&&!e.expandParent)if(e.parentNode&&e.width&&e.height){const g=r.get(e.parentNode),{x,y:v}=lc(g,l).positionAbsolute;d=g&&lo(x)&&lo(v)&&lo(g.width)&&lo(g.height)?[[x+e.width*l[0],v+e.height*l[1]],[x+g.width-e.width+e.width*l[0],v+g.height-e.height+e.height*l[1]]]:d}else u==null||u("005",Oa.error005()),d=c;else if(e.extent&&e.parentNode&&e.extent!=="parent"){const g=r.get(e.parentNode),{x,y:v}=lc(g,l).positionAbsolute;d=[[e.extent[0][0]+x,e.extent[0][1]+v],[e.extent[1][0]+x,e.extent[1][1]+v]]}let h={x:0,y:0};if(e.parentNode){const g=r.get(e.parentNode);h=lc(g,l).positionAbsolute}const _=d&&d!=="parent"?gh(t,d):t;return{position:{x:_.x-h.x,y:_.y-h.y},positionAbsolute:_}}function xm({nodeId:e,dragItems:t,nodeInternals:r}){const o=t.map(l=>({...r.get(l.id),position:l.position,positionAbsolute:l.positionAbsolute}));return[e?o.find(l=>l.id===e):o[0],o]}const kg=(e,t,r,o)=>{const l=t.querySelectorAll(e);if(!l||!l.length)return null;const u=Array.from(l),c=t.getBoundingClientRect(),d={x:c.width*o[0],y:c.height*o[1]};return u.map(h=>{const _=h.getBoundingClientRect();return{id:h.getAttribute("data-handleid"),position:h.getAttribute("data-handlepos"),x:(_.left-c.left-d.x)/r,y:(_.top-c.top-d.y)/r,...ph(h)}})};function $u(e,t,r){return r===void 0?r:o=>{const l=t().nodeInternals.get(e);l&&r(o,{...l})}}function Jm({id:e,store:t,unselect:r=!1,nodeRef:o}){const{addSelectedNodes:l,unselectNodesAndEdges:u,multiSelectionActive:c,nodeInternals:d,onError:h}=t.getState(),_=d.get(e);if(!_){h==null||h("012",Oa.error012(e));return}t.setState({nodesSelectionActive:!1}),_.selected?(r||_.selected&&c)&&(u({nodes:[_],edges:[]}),requestAnimationFrame(()=>{var g;return(g=o==null?void 0:o.current)==null?void 0:g.blur()})):l([e])}function gk(){const e=Qr();return m.useCallback(({sourceEvent:r})=>{const{transform:o,snapGrid:l,snapToGrid:u}=e.getState(),c=r.touches?r.touches[0].clientX:r.clientX,d=r.touches?r.touches[0].clientY:r.clientY,h={x:(c-o[0])/o[2],y:(d-o[1])/o[2]};return{xSnapped:u?l[0]*Math.round(h.x/l[0]):h.x,ySnapped:u?l[1]*Math.round(h.y/l[1]):h.y,...h}},[])}function vm(e){return(t,r,o)=>e==null?void 0:e(t,o)}function Ay({nodeRef:e,disabled:t=!1,noDragClassName:r,handleSelector:o,nodeId:l,isSelectable:u,selectNodesOnDrag:c}){const d=Qr(),[h,_]=m.useState(!1),g=m.useRef([]),x=m.useRef({x:null,y:null}),v=m.useRef(0),b=m.useRef(null),j=m.useRef({x:0,y:0}),S=m.useRef(null),M=m.useRef(!1),A=m.useRef(!1),D=gk();return m.useEffect(()=>{if(e!=null&&e.current){const O=ao(e.current),L=({x:X,y:J})=>{const{nodeInternals:ge,onNodeDrag:me,onSelectionDrag:$e,updateNodePositions:Me,nodeExtent:ue,snapGrid:I,snapToGrid:G,nodeOrigin:H,onError:Z}=d.getState();x.current={x:X,y:J};let N=!1,z={x:0,y:0,x2:0,y2:0};if(g.current.length>1&&ue){const E=xf(g.current,H);z=Vu(E)}if(g.current=g.current.map(E=>{const U={x:X-E.distance.x,y:J-E.distance.y};G&&(U.x=I[0]*Math.round(U.x/I[0]),U.y=I[1]*Math.round(U.y/I[1]));const te=[[ue[0][0],ue[0][1]],[ue[1][0],ue[1][1]]];g.current.length>1&&ue&&!E.extent&&(te[0][0]=E.positionAbsolute.x-z.x+ue[0][0],te[1][0]=E.positionAbsolute.x+(E.width??0)-z.x2+ue[1][0],te[0][1]=E.positionAbsolute.y-z.y+ue[0][1],te[1][1]=E.positionAbsolute.y+(E.height??0)-z.y2+ue[1][1]);const re=My(E,U,ge,te,H,Z);return N=N||E.position.x!==re.position.x||E.position.y!==re.position.y,E.position=re.position,E.positionAbsolute=re.positionAbsolute,E}),!N)return;Me(g.current,!0,!0),_(!0);const F=l?me:vm($e);if(F&&S.current){const[E,U]=xm({nodeId:l,dragItems:g.current,nodeInternals:ge});F(S.current,E,U)}},Y=()=>{if(!b.current)return;const[X,J]=ey(j.current,b.current);if(X!==0||J!==0){const{transform:ge,panBy:me}=d.getState();x.current.x=(x.current.x??0)-X/ge[2],x.current.y=(x.current.y??0)-J/ge[2],me({x:X,y:J})&&L(x.current)}v.current=requestAnimationFrame(Y)},ne=X=>{var H;const{nodeInternals:J,multiSelectionActive:ge,nodesDraggable:me,unselectNodesAndEdges:$e,onNodeDragStart:Me,onSelectionDragStart:ue}=d.getState();A.current=!0;const I=l?Me:vm(ue);(!c||!u)&&!ge&&l&&((H=J.get(l))!=null&&H.selected||$e()),l&&u&&c&&Jm({id:l,store:d,nodeRef:e});const G=D(X);if(x.current=G,g.current=hk(J,me,G,l),I&&g.current){const[Z,N]=xm({nodeId:l,dragItems:g.current,nodeInternals:J});I(X.sourceEvent,Z,N)}};if(t)O.on(".drag",null);else{const X=Nb().on("start",J=>{const{domNode:ge,nodeDragThreshold:me}=d.getState();me===0&&ne(J);const $e=D(J);x.current=$e,b.current=(ge==null?void 0:ge.getBoundingClientRect())||null,j.current=Nl(J.sourceEvent,b.current)}).on("drag",J=>{var Me,ue;const ge=D(J),{autoPanOnNodeDrag:me,nodeDragThreshold:$e}=d.getState();if(!M.current&&A.current&&me&&(M.current=!0,Y()),!A.current){const I=ge.xSnapped-(((Me=x==null?void 0:x.current)==null?void 0:Me.x)??0),G=ge.ySnapped-(((ue=x==null?void 0:x.current)==null?void 0:ue.y)??0);Math.sqrt(I*I+G*G)>$e&&ne(J)}(x.current.x!==ge.xSnapped||x.current.y!==ge.ySnapped)&&g.current&&A.current&&(S.current=J.sourceEvent,j.current=Nl(J.sourceEvent,b.current),L(ge))}).on("end",J=>{if(A.current&&(_(!1),M.current=!1,A.current=!1,cancelAnimationFrame(v.current),g.current)){const{updateNodePositions:ge,nodeInternals:me,onNodeDragStop:$e,onSelectionDragStop:Me}=d.getState(),ue=l?$e:vm(Me);if(ge(g.current,!1,!1),ue){const[I,G]=xm({nodeId:l,dragItems:g.current,nodeInternals:me});ue(J.sourceEvent,I,G)}}}).filter(J=>{const ge=J.target;return!J.button&&(!r||!jg(ge,`.${r}`,e))&&(!o||jg(ge,o,e))});return O.call(X),()=>{O.on(".drag",null)}}}},[e,t,r,o,u,d,l,c,D]),h}function zy(){const e=Qr();return m.useCallback(r=>{const{nodeInternals:o,nodeExtent:l,updateNodePositions:u,getNodes:c,snapToGrid:d,snapGrid:h,onError:_,nodesDraggable:g}=e.getState(),x=c().filter(D=>D.selected&&(D.draggable||g&&typeof D.draggable>"u")),v=d?h[0]:5,b=d?h[1]:5,j=r.isShiftPressed?4:1,S=r.x*v*j,M=r.y*b*j,A=x.map(D=>{if(D.positionAbsolute){const O={x:D.positionAbsolute.x+S,y:D.positionAbsolute.y+M};d&&(O.x=h[0]*Math.round(O.x/h[0]),O.y=h[1]*Math.round(O.y/h[1]));const{positionAbsolute:L,position:Y}=My(D,O,o,l,void 0,_);D.position=Y,D.positionAbsolute=L}return D});u(A,!0,!1)},[])}const Zc={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Tu=e=>{const t=({id:r,type:o,data:l,xPos:u,yPos:c,xPosOrigin:d,yPosOrigin:h,selected:_,onClick:g,onMouseEnter:x,onMouseMove:v,onMouseLeave:b,onContextMenu:j,onDoubleClick:S,style:M,className:A,isDraggable:D,isSelectable:O,isConnectable:L,isFocusable:Y,selectNodesOnDrag:ne,sourcePosition:X,targetPosition:J,hidden:ge,resizeObserver:me,dragHandle:$e,zIndex:Me,isParent:ue,noDragClassName:I,noPanClassName:G,initialized:H,disableKeyboardA11y:Z,ariaLabel:N,rfId:z,hasHandleBounds:F})=>{const E=Qr(),U=m.useRef(null),te=m.useRef(X),re=m.useRef(J),he=m.useRef(o),Ne=O||D||g||x||v||b,ce=zy(),xe=$u(r,E.getState,x),Pe=$u(r,E.getState,v),oe=$u(r,E.getState,b),be=$u(r,E.getState,j),Se=$u(r,E.getState,S),Ue=ut=>{const{nodeDragThreshold:Ae}=E.getState();if(O&&(!ne||!D||Ae>0)&&Jm({id:r,store:E,nodeRef:U}),g){const Re=E.getState().nodeInternals.get(r);Re&&g(ut,{...Re})}},De=ut=>{if(!qm(ut))if(sy.includes(ut.key)&&O){const Ae=ut.key==="Escape";Jm({id:r,store:E,unselect:Ae,nodeRef:U})}else!Z&&D&&_&&Object.prototype.hasOwnProperty.call(Zc,ut.key)&&(E.setState({ariaLiveMessage:`Moved selected node ${ut.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~u}, y: ${~~c}`}),ce({x:Zc[ut.key].x,y:Zc[ut.key].y,isShiftPressed:ut.shiftKey}))};m.useEffect(()=>()=>{U.current&&(me==null||me.unobserve(U.current))},[]),m.useEffect(()=>{if(U.current&&!ge){const ut=U.current;(!H||!F)&&(me==null||me.unobserve(ut),me==null||me.observe(ut))}},[ge,H,F]),m.useEffect(()=>{const ut=he.current!==o,Ae=te.current!==X,Re=re.current!==J;U.current&&(ut||Ae||Re)&&(ut&&(he.current=o),Ae&&(te.current=X),Re&&(re.current=J),E.getState().updateNodeDimensions([{id:r,nodeElement:U.current,forceUpdate:!0}]))},[r,o,X,J]);const ct=Ay({nodeRef:U,disabled:ge||!D,noDragClassName:I,handleSelector:$e,nodeId:r,isSelectable:O,selectNodesOnDrag:ne});return ge?null:Ee.createElement("div",{className:ks(["react-flow__node",`react-flow__node-${o}`,{[G]:D},A,{selected:_,selectable:O,parent:ue,dragging:ct}]),ref:U,style:{zIndex:Me,transform:`translate(${d}px,${h}px)`,pointerEvents:Ne?"all":"none",visibility:H?"visible":"hidden",...M},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:xe,onMouseMove:Pe,onMouseLeave:oe,onContextMenu:be,onClick:Ue,onDoubleClick:Se,onKeyDown:Y?De:void 0,tabIndex:Y?0:void 0,role:Y?"button":void 0,"aria-describedby":Z?void 0:`${jy}-${z}`,"aria-label":N},Ee.createElement($j,{value:r},Ee.createElement(e,{id:r,data:l,type:o,xPos:u,yPos:c,selected:_,isConnectable:L,sourcePosition:X,targetPosition:J,dragging:ct,dragHandle:$e,zIndex:Me})))};return t.displayName="NodeWrapper",m.memo(t)};const _k=e=>{const t=e.getNodes().filter(r=>r.selected);return{...xf(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function yk({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:r}){const o=Qr(),{width:l,height:u,x:c,y:d,transformString:h,userSelectionActive:_}=rr(_k,us),g=zy(),x=m.useRef(null);if(m.useEffect(()=>{var j;r||(j=x.current)==null||j.focus({preventScroll:!0})},[r]),Ay({nodeRef:x}),_||!l||!u)return null;const v=e?j=>{const S=o.getState().getNodes().filter(M=>M.selected);e(j,S)}:void 0,b=j=>{Object.prototype.hasOwnProperty.call(Zc,j.key)&&g({x:Zc[j.key].x,y:Zc[j.key].y,isShiftPressed:j.shiftKey})};return Ee.createElement("div",{className:ks(["react-flow__nodesselection","react-flow__container",t]),style:{transform:h}},Ee.createElement("div",{ref:x,className:"react-flow__nodesselection-rect",onContextMenu:v,tabIndex:r?void 0:-1,onKeyDown:r?void 0:b,style:{width:l,height:u,top:d,left:c}}))}var xk=m.memo(yk);const vk=e=>e.nodesSelectionActive,Ry=({children:e,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:l,onPaneContextMenu:u,onPaneScroll:c,deleteKeyCode:d,onMove:h,onMoveStart:_,onMoveEnd:g,selectionKeyCode:x,selectionOnDrag:v,selectionMode:b,onSelectionStart:j,onSelectionEnd:S,multiSelectionKeyCode:M,panActivationKeyCode:A,zoomActivationKeyCode:D,elementsSelectable:O,zoomOnScroll:L,zoomOnPinch:Y,panOnScroll:ne,panOnScrollSpeed:X,panOnScrollMode:J,zoomOnDoubleClick:ge,panOnDrag:me,defaultViewport:$e,translateExtent:Me,minZoom:ue,maxZoom:I,preventScrolling:G,onSelectionContextMenu:H,noWheelClassName:Z,noPanClassName:N,disableKeyboardA11y:z})=>{const F=rr(vk),E=Yu(x),U=Yu(A),te=U||me,re=U||ne,he=E||v&&te!==!0;return sk({deleteKeyCode:d,multiSelectionKeyCode:M}),Ee.createElement(lk,{onMove:h,onMoveStart:_,onMoveEnd:g,onPaneContextMenu:u,elementsSelectable:O,zoomOnScroll:L,zoomOnPinch:Y,panOnScroll:re,panOnScrollSpeed:X,panOnScrollMode:J,zoomOnDoubleClick:ge,panOnDrag:!E&&te,defaultViewport:$e,translateExtent:Me,minZoom:ue,maxZoom:I,zoomActivationKeyCode:D,preventScrolling:G,noWheelClassName:Z,noPanClassName:N},Ee.createElement($y,{onSelectionStart:j,onSelectionEnd:S,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:l,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:te,isSelecting:!!he,selectionMode:b},e,F&&Ee.createElement(xk,{onSelectionContextMenu:H,noPanClassName:N,disableKeyboardA11y:z})))};Ry.displayName="FlowRenderer";var wk=m.memo(Ry);function bk(e){return rr(m.useCallback(r=>e?dy(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function Sk(e){const t={input:Tu(e.input||vy),default:Tu(e.default||Km),output:Tu(e.output||by),group:Tu(e.group||bh)},r={},o=Object.keys(e).filter(l=>!["input","default","output","group"].includes(l)).reduce((l,u)=>(l[u]=Tu(e[u]||Km),l),r);return{...t,...o}}const jk=({x:e,y:t,width:r,height:o,origin:l})=>!r||!o?{x:e,y:t}:l[0]<0||l[1]<0||l[0]>1||l[1]>1?{x:e,y:t}:{x:e-r*l[0],y:t-o*l[1]},kk=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Ly=e=>{const{nodesDraggable:t,nodesConnectable:r,nodesFocusable:o,elementsSelectable:l,updateNodeDimensions:u,onError:c}=rr(kk,us),d=bk(e.onlyRenderVisibleElements),h=m.useRef(),_=m.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const g=new ResizeObserver(x=>{const v=x.map(b=>({id:b.target.getAttribute("data-id"),nodeElement:b.target,forceUpdate:!0}));u(v)});return h.current=g,g},[]);return m.useEffect(()=>()=>{var g;(g=h==null?void 0:h.current)==null||g.disconnect()},[]),Ee.createElement("div",{className:"react-flow__nodes",style:jh},d.map(g=>{var Y,ne,X;let x=g.type||"default";e.nodeTypes[x]||(c==null||c("003",Oa.error003(x)),x="default");const v=e.nodeTypes[x]||e.nodeTypes.default,b=!!(g.draggable||t&&typeof g.draggable>"u"),j=!!(g.selectable||l&&typeof g.selectable>"u"),S=!!(g.connectable||r&&typeof g.connectable>"u"),M=!!(g.focusable||o&&typeof g.focusable>"u"),A=e.nodeExtent?gh(g.positionAbsolute,e.nodeExtent):g.positionAbsolute,D=(A==null?void 0:A.x)??0,O=(A==null?void 0:A.y)??0,L=jk({x:D,y:O,width:g.width??0,height:g.height??0,origin:e.nodeOrigin});return Ee.createElement(v,{key:g.id,id:g.id,className:g.className,style:g.style,type:x,data:g.data,sourcePosition:g.sourcePosition||Pt.Bottom,targetPosition:g.targetPosition||Pt.Top,hidden:g.hidden,xPos:D,yPos:O,xPosOrigin:L.x,yPosOrigin:L.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!g.selected,isDraggable:b,isSelectable:j,isConnectable:S,isFocusable:M,resizeObserver:_,dragHandle:g.dragHandle,zIndex:((Y=g[Hr])==null?void 0:Y.z)??0,isParent:!!((ne=g[Hr])!=null&&ne.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!g.width&&!!g.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:g.ariaLabel,hasHandleBounds:!!((X=g[Hr])!=null&&X.handleBounds)})}))};Ly.displayName="NodeRenderer";var Nk=m.memo(Ly);const Ck=(e,t,r)=>r===Pt.Left?e-t:r===Pt.Right?e+t:e,Ek=(e,t,r)=>r===Pt.Top?e-t:r===Pt.Bottom?e+t:e,Ng="react-flow__edgeupdater",Cg=({position:e,centerX:t,centerY:r,radius:o=10,onMouseDown:l,onMouseEnter:u,onMouseOut:c,type:d})=>Ee.createElement("circle",{onMouseDown:l,onMouseEnter:u,onMouseOut:c,className:ks([Ng,`${Ng}-${d}`]),cx:Ck(t,o,e),cy:Ek(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),$k=()=>!0;var Wc=e=>{const t=({id:r,className:o,type:l,data:u,onClick:c,onEdgeDoubleClick:d,selected:h,animated:_,label:g,labelStyle:x,labelShowBg:v,labelBgStyle:b,labelBgPadding:j,labelBgBorderRadius:S,style:M,source:A,target:D,sourceX:O,sourceY:L,targetX:Y,targetY:ne,sourcePosition:X,targetPosition:J,elementsSelectable:ge,hidden:me,sourceHandleId:$e,targetHandleId:Me,onContextMenu:ue,onMouseEnter:I,onMouseMove:G,onMouseLeave:H,edgeUpdaterRadius:Z,onEdgeUpdate:N,onEdgeUpdateStart:z,onEdgeUpdateEnd:F,markerEnd:E,markerStart:U,rfId:te,ariaLabel:re,isFocusable:he,isUpdatable:Ne,pathOptions:ce,interactionWidth:xe})=>{const Pe=m.useRef(null),[oe,be]=m.useState(!1),[Se,Ue]=m.useState(!1),De=Qr(),ct=m.useMemo(()=>`url('#${Ym(U,te)}')`,[U,te]),ut=m.useMemo(()=>`url('#${Ym(E,te)}')`,[E,te]);if(me)return null;const Ae=vt=>{var En;const{edges:on,addSelectedEdges:bn,unselectNodesAndEdges:un,multiSelectionActive:yn}=De.getState(),Pn=on.find(sr=>sr.id===r);Pn&&(ge&&(De.setState({nodesSelectionActive:!1}),Pn.selected&&yn?(un({nodes:[],edges:[Pn]}),(En=Pe.current)==null||En.blur()):bn([r])),c&&c(vt,Pn))},Re=Eu(r,De.getState,d),dt=Eu(r,De.getState,ue),jt=Eu(r,De.getState,I),Mt=Eu(r,De.getState,G),gt=Eu(r,De.getState,H),_e=(vt,on)=>{if(vt.button!==0)return;const{edges:bn,isValidConnection:un}=De.getState(),yn=on?D:A,Pn=(on?Me:$e)||null,En=on?"target":"source",sr=un||$k,It=on,kr=bn.find(ae=>ae.id===r);Ue(!0),z==null||z(vt,kr,En);const Nr=ae=>{Ue(!1),F==null||F(ae,kr,En)};gy({event:vt,handleId:Pn,nodeId:yn,onConnect:ae=>N==null?void 0:N(kr,ae),isTarget:It,getState:De.getState,setState:De.setState,isValidConnection:sr,edgeUpdaterType:En,onEdgeUpdateEnd:Nr})},Kt=vt=>_e(vt,!0),Te=vt=>_e(vt,!1),nt=()=>be(!0),se=()=>be(!1),Oe=!ge&&!c,Jt=vt=>{var on;if(sy.includes(vt.key)&&ge){const{unselectNodesAndEdges:bn,addSelectedEdges:un,edges:yn}=De.getState();vt.key==="Escape"?((on=Pe.current)==null||on.blur(),bn({edges:[yn.find(En=>En.id===r)]})):un([r])}};return Ee.createElement("g",{className:ks(["react-flow__edge",`react-flow__edge-${l}`,o,{selected:h,animated:_,inactive:Oe,updating:oe}]),onClick:Ae,onDoubleClick:Re,onContextMenu:dt,onMouseEnter:jt,onMouseMove:Mt,onMouseLeave:gt,onKeyDown:he?Jt:void 0,tabIndex:he?0:void 0,role:he?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":re===null?void 0:re||`Edge from ${A} to ${D}`,"aria-describedby":he?`${ky}-${te}`:void 0,ref:Pe},!Se&&Ee.createElement(e,{id:r,source:A,target:D,selected:h,animated:_,label:g,labelStyle:x,labelShowBg:v,labelBgStyle:b,labelBgPadding:j,labelBgBorderRadius:S,data:u,style:M,sourceX:O,sourceY:L,targetX:Y,targetY:ne,sourcePosition:X,targetPosition:J,sourceHandleId:$e,targetHandleId:Me,markerStart:ct,markerEnd:ut,pathOptions:ce,interactionWidth:xe}),Ne&&Ee.createElement(Ee.Fragment,null,(Ne==="source"||Ne===!0)&&Ee.createElement(Cg,{position:X,centerX:O,centerY:L,radius:Z,onMouseDown:Kt,onMouseEnter:nt,onMouseOut:se,type:"source"}),(Ne==="target"||Ne===!0)&&Ee.createElement(Cg,{position:J,centerX:Y,centerY:ne,radius:Z,onMouseDown:Te,onMouseEnter:nt,onMouseOut:se,type:"target"})))};return t.displayName="EdgeWrapper",m.memo(t)};function Tk(e){const t={default:Wc(e.default||lf),straight:Wc(e.bezier||xh),step:Wc(e.step||yh),smoothstep:Wc(e.step||yf),simplebezier:Wc(e.simplebezier||_h)},r={},o=Object.keys(e).filter(l=>!["default","bezier"].includes(l)).reduce((l,u)=>(l[u]=Wc(e[u]||lf),l),r);return{...t,...o}}function Eg(e,t,r=null){const o=((r==null?void 0:r.x)||0)+t.x,l=((r==null?void 0:r.y)||0)+t.y,u=(r==null?void 0:r.width)||t.width,c=(r==null?void 0:r.height)||t.height;switch(e){case Pt.Top:return{x:o+u/2,y:l};case Pt.Right:return{x:o+u,y:l+c/2};case Pt.Bottom:return{x:o+u/2,y:l+c};case Pt.Left:return{x:o,y:l+c/2}}}function $g(e,t){return e?e.length===1||!t?e[0]:t&&e.find(r=>r.id===t)||null:null}const Mk=(e,t,r,o,l,u)=>{const c=Eg(r,e,t),d=Eg(u,o,l);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y}};function Ak({sourcePos:e,targetPos:t,sourceWidth:r,sourceHeight:o,targetWidth:l,targetHeight:u,width:c,height:d,transform:h}){const _={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+r,t.x+l),y2:Math.max(e.y+o,t.y+u)};_.x===_.x2&&(_.x2+=1),_.y===_.y2&&(_.y2+=1);const g=Vu({x:(0-h[0])/h[2],y:(0-h[1])/h[2],width:c/h[2],height:d/h[2]}),x=Math.max(0,Math.min(g.x2,_.x2)-Math.max(g.x,_.x)),v=Math.max(0,Math.min(g.y2,_.y2)-Math.max(g.y,_.y));return Math.ceil(x*v)>0}function Tg(e){var o,l,u,c,d;const t=((o=e==null?void 0:e[Hr])==null?void 0:o.handleBounds)||null,r=t&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.x)<"u"&&typeof((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.y)<"u";return[{x:((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.x)||0,y:((d=e==null?void 0:e.positionAbsolute)==null?void 0:d.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},t,!!r]}const zk=[{level:0,isMaxLevel:!0,edges:[]}];function Rk(e,t,r=!1){let o=-1;const l=e.reduce((c,d)=>{var g,x;const h=lo(d.zIndex);let _=h?d.zIndex:0;if(r){const v=t.get(d.target),b=t.get(d.source),j=d.selected||(v==null?void 0:v.selected)||(b==null?void 0:b.selected),S=Math.max(((g=b==null?void 0:b[Hr])==null?void 0:g.z)||0,((x=v==null?void 0:v[Hr])==null?void 0:x.z)||0,1e3);_=(h?d.zIndex:0)+(j?S:0)}return c[_]?c[_].push(d):c[_]=[d],o=_>o?_:o,c},{}),u=Object.entries(l).map(([c,d])=>{const h=+c;return{edges:d,level:h,isMaxLevel:h===o}});return u.length===0?zk:u}function Lk(e,t,r){const o=rr(m.useCallback(l=>e?l.edges.filter(u=>{const c=t.get(u.source),d=t.get(u.target);return(c==null?void 0:c.width)&&(c==null?void 0:c.height)&&(d==null?void 0:d.width)&&(d==null?void 0:d.height)&&Ak({sourcePos:c.positionAbsolute||{x:0,y:0},targetPos:d.positionAbsolute||{x:0,y:0},sourceWidth:c.width,sourceHeight:c.height,targetWidth:d.width,targetHeight:d.height,width:l.width,height:l.height,transform:l.transform})}):l.edges,[e,t]));return Rk(o,t,r)}const Pk=({color:e="none",strokeWidth:t=1})=>Ee.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),Ik=({color:e="none",strokeWidth:t=1})=>Ee.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Mg={[Gu.Arrow]:Pk,[Gu.ArrowClosed]:Ik};function Ok(e){const t=Qr();return m.useMemo(()=>{var l,u;return Object.prototype.hasOwnProperty.call(Mg,e)?Mg[e]:((u=(l=t.getState()).onError)==null||u.call(l,"009",Oa.error009(e)),null)},[e])}const Fk=({id:e,type:t,color:r,width:o=12.5,height:l=12.5,markerUnits:u="strokeWidth",strokeWidth:c,orient:d="auto-start-reverse"})=>{const h=Ok(t);return h?Ee.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${l}`,viewBox:"-10 -10 20 20",markerUnits:u,orient:d,refX:"0",refY:"0"},Ee.createElement(h,{color:r,strokeWidth:c})):null},Dk=({defaultColor:e,rfId:t})=>r=>{const o=[];return r.edges.reduce((l,u)=>([u.markerStart,u.markerEnd].forEach(c=>{if(c&&typeof c=="object"){const d=Ym(c,t);o.includes(d)||(l.push({id:d,color:c.color||e,...c}),o.push(d))}}),l),[]).sort((l,u)=>l.id.localeCompare(u.id))},Py=({defaultColor:e,rfId:t})=>{const r=rr(m.useCallback(Dk({defaultColor:e,rfId:t}),[e,t]),(o,l)=>!(o.length!==l.length||o.some((u,c)=>u.id!==l[c].id)));return Ee.createElement("defs",null,r.map(o=>Ee.createElement(Fk,{id:o.id,key:o.id,type:o.type,color:o.color,width:o.width,height:o.height,markerUnits:o.markerUnits,strokeWidth:o.strokeWidth,orient:o.orient})))};Py.displayName="MarkerDefinitions";var Bk=m.memo(Py);const Uk=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),Iy=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:r,rfId:o,edgeTypes:l,noPanClassName:u,onEdgeUpdate:c,onEdgeContextMenu:d,onEdgeMouseEnter:h,onEdgeMouseMove:_,onEdgeMouseLeave:g,onEdgeClick:x,edgeUpdaterRadius:v,onEdgeDoubleClick:b,onEdgeUpdateStart:j,onEdgeUpdateEnd:S,children:M})=>{const{edgesFocusable:A,edgesUpdatable:D,elementsSelectable:O,width:L,height:Y,connectionMode:ne,nodeInternals:X,onError:J}=rr(Uk,us),ge=Lk(t,X,r);return L?Ee.createElement(Ee.Fragment,null,ge.map(({level:me,edges:$e,isMaxLevel:Me})=>Ee.createElement("svg",{key:me,style:{zIndex:me},width:L,height:Y,className:"react-flow__edges react-flow__container"},Me&&Ee.createElement(Bk,{defaultColor:e,rfId:o}),Ee.createElement("g",null,$e.map(ue=>{const[I,G,H]=Tg(X.get(ue.source)),[Z,N,z]=Tg(X.get(ue.target));if(!H||!z)return null;let F=ue.type||"default";l[F]||(J==null||J("011",Oa.error011(F)),F="default");const E=l[F]||l.default,U=ne===uc.Strict?N.target:(N.target??[]).concat(N.source??[]),te=$g(G.source,ue.sourceHandle),re=$g(U,ue.targetHandle),he=(te==null?void 0:te.position)||Pt.Bottom,Ne=(re==null?void 0:re.position)||Pt.Top,ce=!!(ue.focusable||A&&typeof ue.focusable>"u"),xe=typeof c<"u"&&(ue.updatable||D&&typeof ue.updatable>"u");if(!te||!re)return J==null||J("008",Oa.error008(te,ue)),null;const{sourceX:Pe,sourceY:oe,targetX:be,targetY:Se}=Mk(I,te,he,Z,re,Ne);return Ee.createElement(E,{key:ue.id,id:ue.id,className:ks([ue.className,u]),type:F,data:ue.data,selected:!!ue.selected,animated:!!ue.animated,hidden:!!ue.hidden,label:ue.label,labelStyle:ue.labelStyle,labelShowBg:ue.labelShowBg,labelBgStyle:ue.labelBgStyle,labelBgPadding:ue.labelBgPadding,labelBgBorderRadius:ue.labelBgBorderRadius,style:ue.style,source:ue.source,target:ue.target,sourceHandleId:ue.sourceHandle,targetHandleId:ue.targetHandle,markerEnd:ue.markerEnd,markerStart:ue.markerStart,sourceX:Pe,sourceY:oe,targetX:be,targetY:Se,sourcePosition:he,targetPosition:Ne,elementsSelectable:O,onEdgeUpdate:c,onContextMenu:d,onMouseEnter:h,onMouseMove:_,onMouseLeave:g,onClick:x,edgeUpdaterRadius:v,onEdgeDoubleClick:b,onEdgeUpdateStart:j,onEdgeUpdateEnd:S,rfId:o,ariaLabel:ue.ariaLabel,isFocusable:ce,isUpdatable:xe,pathOptions:"pathOptions"in ue?ue.pathOptions:void 0,interactionWidth:ue.interactionWidth})})))),M):null};Iy.displayName="EdgeRenderer";var Wk=m.memo(Iy);const Hk=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Vk({children:e}){const t=rr(Hk);return Ee.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function qk(e){const t=Sh(),r=m.useRef(!1);m.useEffect(()=>{!r.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),r.current=!0)},[e,t.viewportInitialized])}const Gk={[Pt.Left]:Pt.Right,[Pt.Right]:Pt.Left,[Pt.Top]:Pt.Bottom,[Pt.Bottom]:Pt.Top},Oy=({nodeId:e,handleType:t,style:r,type:o=kl.Bezier,CustomComponent:l,connectionStatus:u})=>{var ne,X,J;const{fromNode:c,handleId:d,toX:h,toY:_,connectionMode:g}=rr(m.useCallback(ge=>({fromNode:ge.nodeInternals.get(e),handleId:ge.connectionHandleId,toX:(ge.connectionPosition.x-ge.transform[0])/ge.transform[2],toY:(ge.connectionPosition.y-ge.transform[1])/ge.transform[2],connectionMode:ge.connectionMode}),[e]),us),x=(ne=c==null?void 0:c[Hr])==null?void 0:ne.handleBounds;let v=x==null?void 0:x[t];if(g===uc.Loose&&(v=v||(x==null?void 0:x[t==="source"?"target":"source"])),!c||!v)return null;const b=d?v.find(ge=>ge.id===d):v[0],j=b?b.x+b.width/2:(c.width??0)/2,S=b?b.y+b.height/2:c.height??0,M=(((X=c.positionAbsolute)==null?void 0:X.x)??0)+j,A=(((J=c.positionAbsolute)==null?void 0:J.y)??0)+S,D=b==null?void 0:b.position,O=D?Gk[D]:null;if(!D||!O)return null;if(l)return Ee.createElement(l,{connectionLineType:o,connectionLineStyle:r,fromNode:c,fromHandle:b,fromX:M,fromY:A,toX:h,toY:_,fromPosition:D,toPosition:O,connectionStatus:u});let L="";const Y={sourceX:M,sourceY:A,sourcePosition:D,targetX:h,targetY:_,targetPosition:O};return o===kl.Bezier?[L]=cy(Y):o===kl.Step?[L]=Gm({...Y,borderRadius:0}):o===kl.SmoothStep?[L]=Gm(Y):o===kl.SimpleBezier?[L]=ly(Y):L=`M${M},${A} ${h},${_}`,Ee.createElement("path",{d:L,fill:"none",className:"react-flow__connection-path",style:r})};Oy.displayName="ConnectionLine";const Yk=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Xk({containerStyle:e,style:t,type:r,component:o}){const{nodeId:l,handleType:u,nodesConnectable:c,width:d,height:h,connectionStatus:_}=rr(Yk,us);return!(l&&u&&d&&c)?null:Ee.createElement("svg",{style:e,width:d,height:h,className:"react-flow__edges react-flow__connectionline react-flow__container"},Ee.createElement("g",{className:ks(["react-flow__connection",_])},Ee.createElement(Oy,{nodeId:l,handleType:u,style:t,type:r,CustomComponent:o,connectionStatus:_})))}function Ag(e,t){return m.useRef(null),Qr(),m.useMemo(()=>t(e),[e])}const Fy=({nodeTypes:e,edgeTypes:t,onMove:r,onMoveStart:o,onMoveEnd:l,onInit:u,onNodeClick:c,onEdgeClick:d,onNodeDoubleClick:h,onEdgeDoubleClick:_,onNodeMouseEnter:g,onNodeMouseMove:x,onNodeMouseLeave:v,onNodeContextMenu:b,onSelectionContextMenu:j,onSelectionStart:S,onSelectionEnd:M,connectionLineType:A,connectionLineStyle:D,connectionLineComponent:O,connectionLineContainerStyle:L,selectionKeyCode:Y,selectionOnDrag:ne,selectionMode:X,multiSelectionKeyCode:J,panActivationKeyCode:ge,zoomActivationKeyCode:me,deleteKeyCode:$e,onlyRenderVisibleElements:Me,elementsSelectable:ue,selectNodesOnDrag:I,defaultViewport:G,translateExtent:H,minZoom:Z,maxZoom:N,preventScrolling:z,defaultMarkerColor:F,zoomOnScroll:E,zoomOnPinch:U,panOnScroll:te,panOnScrollSpeed:re,panOnScrollMode:he,zoomOnDoubleClick:Ne,panOnDrag:ce,onPaneClick:xe,onPaneMouseEnter:Pe,onPaneMouseMove:oe,onPaneMouseLeave:be,onPaneScroll:Se,onPaneContextMenu:Ue,onEdgeUpdate:De,onEdgeContextMenu:ct,onEdgeMouseEnter:ut,onEdgeMouseMove:Ae,onEdgeMouseLeave:Re,edgeUpdaterRadius:dt,onEdgeUpdateStart:jt,onEdgeUpdateEnd:Mt,noDragClassName:gt,noWheelClassName:_e,noPanClassName:Kt,elevateEdgesOnSelect:Te,disableKeyboardA11y:nt,nodeOrigin:se,nodeExtent:Oe,rfId:Jt})=>{const vt=Ag(e,Sk),on=Ag(t,Tk);return qk(u),Ee.createElement(wk,{onPaneClick:xe,onPaneMouseEnter:Pe,onPaneMouseMove:oe,onPaneMouseLeave:be,onPaneContextMenu:Ue,onPaneScroll:Se,deleteKeyCode:$e,selectionKeyCode:Y,selectionOnDrag:ne,selectionMode:X,onSelectionStart:S,onSelectionEnd:M,multiSelectionKeyCode:J,panActivationKeyCode:ge,zoomActivationKeyCode:me,elementsSelectable:ue,onMove:r,onMoveStart:o,onMoveEnd:l,zoomOnScroll:E,zoomOnPinch:U,zoomOnDoubleClick:Ne,panOnScroll:te,panOnScrollSpeed:re,panOnScrollMode:he,panOnDrag:ce,defaultViewport:G,translateExtent:H,minZoom:Z,maxZoom:N,onSelectionContextMenu:j,preventScrolling:z,noDragClassName:gt,noWheelClassName:_e,noPanClassName:Kt,disableKeyboardA11y:nt},Ee.createElement(Vk,null,Ee.createElement(Wk,{edgeTypes:on,onEdgeClick:d,onEdgeDoubleClick:_,onEdgeUpdate:De,onlyRenderVisibleElements:Me,onEdgeContextMenu:ct,onEdgeMouseEnter:ut,onEdgeMouseMove:Ae,onEdgeMouseLeave:Re,onEdgeUpdateStart:jt,onEdgeUpdateEnd:Mt,edgeUpdaterRadius:dt,defaultMarkerColor:F,noPanClassName:Kt,elevateEdgesOnSelect:!!Te,disableKeyboardA11y:nt,rfId:Jt},Ee.createElement(Xk,{style:D,type:A,component:O,containerStyle:L})),Ee.createElement("div",{className:"react-flow__edgelabel-renderer"}),Ee.createElement(Nk,{nodeTypes:vt,onNodeClick:c,onNodeDoubleClick:h,onNodeMouseEnter:g,onNodeMouseMove:x,onNodeMouseLeave:v,onNodeContextMenu:b,selectNodesOnDrag:I,onlyRenderVisibleElements:Me,noPanClassName:Kt,noDragClassName:gt,disableKeyboardA11y:nt,nodeOrigin:se,nodeExtent:Oe,rfId:Jt})))};Fy.displayName="GraphView";var Kk=m.memo(Fy);const Qm=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],xl={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Qm,nodeExtent:Qm,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:uc.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:Sj,isValidConnection:void 0},Jk=()=>Ow((e,t)=>({...xl,setNodes:r=>{const{nodeInternals:o,nodeOrigin:l,elevateNodesOnSelect:u}=t();e({nodeInternals:_m(r,o,l,u)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:o={}}=t();e({edges:r.map(l=>({...o,...l}))})},setDefaultNodesAndEdges:(r,o)=>{const l=typeof r<"u",u=typeof o<"u",c=l?_m(r,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:c,edges:u?o:[],hasDefaultNodes:l,hasDefaultEdges:u})},updateNodeDimensions:r=>{const{onNodesChange:o,nodeInternals:l,fitViewOnInit:u,fitViewOnInitDone:c,fitViewOnInitOptions:d,domNode:h,nodeOrigin:_}=t(),g=h==null?void 0:h.querySelector(".react-flow__viewport");if(!g)return;const x=window.getComputedStyle(g),{m22:v}=new window.DOMMatrixReadOnly(x.transform),b=r.reduce((S,M)=>{const A=l.get(M.id);if(A){const D=ph(M.nodeElement);!!(D.width&&D.height&&(A.width!==D.width||A.height!==D.height||M.forceUpdate))&&(l.set(A.id,{...A,[Hr]:{...A[Hr],handleBounds:{source:kg(".source",M.nodeElement,v,_),target:kg(".target",M.nodeElement,v,_)}},...D}),S.push({id:A.id,type:"dimensions",dimensions:D}))}return S},[]);Cy(l,_);const j=c||u&&!c&&Ey(t,{initial:!0,...d});e({nodeInternals:new Map(l),fitViewOnInitDone:j}),(b==null?void 0:b.length)>0&&(o==null||o(b))},updateNodePositions:(r,o=!0,l=!1)=>{const{triggerNodeChanges:u}=t(),c=r.map(d=>{const h={id:d.id,type:"position",dragging:l};return o&&(h.positionAbsolute=d.positionAbsolute,h.position=d.position),h});u(c)},triggerNodeChanges:r=>{const{onNodesChange:o,nodeInternals:l,hasDefaultNodes:u,nodeOrigin:c,getNodes:d,elevateNodesOnSelect:h}=t();if(r!=null&&r.length){if(u){const _=fk(r,d()),g=_m(_,l,c,h);e({nodeInternals:g})}o==null||o(r)}},addSelectedNodes:r=>{const{multiSelectionActive:o,edges:l,getNodes:u}=t();let c,d=null;o?c=r.map(h=>jl(h,!0)):(c=Xc(u(),r),d=Xc(l,[])),Fd({changedNodes:c,changedEdges:d,get:t,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:o,edges:l,getNodes:u}=t();let c,d=null;o?c=r.map(h=>jl(h,!0)):(c=Xc(l,r),d=Xc(u(),[])),Fd({changedNodes:d,changedEdges:c,get:t,set:e})},unselectNodesAndEdges:({nodes:r,edges:o}={})=>{const{edges:l,getNodes:u}=t(),c=r||u(),d=o||l,h=c.map(g=>(g.selected=!1,jl(g.id,!1))),_=d.map(g=>jl(g.id,!1));Fd({changedNodes:h,changedEdges:_,get:t,set:e})},setMinZoom:r=>{const{d3Zoom:o,maxZoom:l}=t();o==null||o.scaleExtent([r,l]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:o,minZoom:l}=t();o==null||o.scaleExtent([l,r]),e({maxZoom:r})},setTranslateExtent:r=>{var o;(o=t().d3Zoom)==null||o.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:o}=t(),u=o().filter(d=>d.selected).map(d=>jl(d.id,!1)),c=r.filter(d=>d.selected).map(d=>jl(d.id,!1));Fd({changedNodes:u,changedEdges:c,get:t,set:e})},setNodeExtent:r=>{const{nodeInternals:o}=t();o.forEach(l=>{l.positionAbsolute=gh(l.position,r)}),e({nodeExtent:r,nodeInternals:new Map(o)})},panBy:r=>{const{transform:o,width:l,height:u,d3Zoom:c,d3Selection:d,translateExtent:h}=t();if(!c||!d||!r.x&&!r.y)return!1;const _=Pa.translate(o[0]+r.x,o[1]+r.y).scale(o[2]),g=[[0,0],[l,u]],x=c==null?void 0:c.constrain()(_,g,h);return c.transform(d,x),o[0]!==x.x||o[1]!==x.y||o[2]!==x.k},cancelConnection:()=>e({connectionNodeId:xl.connectionNodeId,connectionHandleId:xl.connectionHandleId,connectionHandleType:xl.connectionHandleType,connectionStatus:xl.connectionStatus,connectionStartHandle:xl.connectionStartHandle,connectionEndHandle:xl.connectionEndHandle}),reset:()=>e({...xl})}),Object.is),kh=({children:e})=>{const t=m.useRef(null);return t.current||(t.current=Jk()),Ee.createElement(gj,{value:t.current},e)};kh.displayName="ReactFlowProvider";const Dy=({children:e})=>m.useContext(_f)?Ee.createElement(Ee.Fragment,null,e):Ee.createElement(kh,null,e);Dy.displayName="ReactFlowWrapper";const Qk={input:vy,default:Km,output:by,group:bh},Zk={default:lf,straight:xh,step:yh,smoothstep:yf,simplebezier:_h},eN=[0,0],tN=[15,15],nN={x:0,y:0,zoom:1},rN={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},By=m.forwardRef(({nodes:e,edges:t,defaultNodes:r,defaultEdges:o,className:l,nodeTypes:u=Qk,edgeTypes:c=Zk,onNodeClick:d,onEdgeClick:h,onInit:_,onMove:g,onMoveStart:x,onMoveEnd:v,onConnect:b,onConnectStart:j,onConnectEnd:S,onClickConnectStart:M,onClickConnectEnd:A,onNodeMouseEnter:D,onNodeMouseMove:O,onNodeMouseLeave:L,onNodeContextMenu:Y,onNodeDoubleClick:ne,onNodeDragStart:X,onNodeDrag:J,onNodeDragStop:ge,onNodesDelete:me,onEdgesDelete:$e,onSelectionChange:Me,onSelectionDragStart:ue,onSelectionDrag:I,onSelectionDragStop:G,onSelectionContextMenu:H,onSelectionStart:Z,onSelectionEnd:N,connectionMode:z=uc.Strict,connectionLineType:F=kl.Bezier,connectionLineStyle:E,connectionLineComponent:U,connectionLineContainerStyle:te,deleteKeyCode:re="Backspace",selectionKeyCode:he="Shift",selectionOnDrag:Ne=!1,selectionMode:ce=qu.Full,panActivationKeyCode:xe="Space",multiSelectionKeyCode:Pe=af()?"Meta":"Control",zoomActivationKeyCode:oe=af()?"Meta":"Control",snapToGrid:be=!1,snapGrid:Se=tN,onlyRenderVisibleElements:Ue=!1,selectNodesOnDrag:De=!0,nodesDraggable:ct,nodesConnectable:ut,nodesFocusable:Ae,nodeOrigin:Re=eN,edgesFocusable:dt,edgesUpdatable:jt,elementsSelectable:Mt,defaultViewport:gt=nN,minZoom:_e=.5,maxZoom:Kt=2,translateExtent:Te=Qm,preventScrolling:nt=!0,nodeExtent:se,defaultMarkerColor:Oe="#b1b1b7",zoomOnScroll:Jt=!0,zoomOnPinch:vt=!0,panOnScroll:on=!1,panOnScrollSpeed:bn=.5,panOnScrollMode:un=oc.Free,zoomOnDoubleClick:yn=!0,panOnDrag:Pn=!0,onPaneClick:En,onPaneMouseEnter:sr,onPaneMouseMove:It,onPaneMouseLeave:kr,onPaneScroll:Nr,onPaneContextMenu:Wn,children:ae,onEdgeUpdate:ke,onEdgeContextMenu:st,onEdgeDoubleClick:it,onEdgeMouseEnter:_t,onEdgeMouseMove:Tt,onEdgeMouseLeave:Ot,onEdgeUpdateStart:Wt,onEdgeUpdateEnd:nn,edgeUpdaterRadius:Ft=10,onNodesChange:dn,onEdgesChange:hn,noDragClassName:Qt="nodrag",noWheelClassName:rn="nowheel",noPanClassName:qt="nopan",fitView:et=!1,fitViewOptions:Sn,connectOnClick:Nn=!0,attributionPosition:In,proOptions:$n,defaultEdgeOptions:Cr,elevateNodesOnSelect:ir=!0,elevateEdgesOnSelect:lr=!1,disableKeyboardA11y:gr=!1,autoPanOnConnect:Ns=!0,autoPanOnNodeDrag:ds=!0,connectionRadius:Si=20,isValidConnection:Bo,onError:Ir,style:Tn,id:Ds,nodeDragThreshold:Ii,...fs},Kn)=>{const Ze=Ds||"1";return Ee.createElement("div",{...fs,style:{...Tn,...rN},ref:Kn,className:ks(["react-flow",l]),"data-testid":"rf__wrapper",id:Ds},Ee.createElement(Dy,null,Ee.createElement(Kk,{onInit:_,onMove:g,onMoveStart:x,onMoveEnd:v,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:D,onNodeMouseMove:O,onNodeMouseLeave:L,onNodeContextMenu:Y,onNodeDoubleClick:ne,nodeTypes:u,edgeTypes:c,connectionLineType:F,connectionLineStyle:E,connectionLineComponent:U,connectionLineContainerStyle:te,selectionKeyCode:he,selectionOnDrag:Ne,selectionMode:ce,deleteKeyCode:re,multiSelectionKeyCode:Pe,panActivationKeyCode:xe,zoomActivationKeyCode:oe,onlyRenderVisibleElements:Ue,selectNodesOnDrag:De,defaultViewport:gt,translateExtent:Te,minZoom:_e,maxZoom:Kt,preventScrolling:nt,zoomOnScroll:Jt,zoomOnPinch:vt,zoomOnDoubleClick:yn,panOnScroll:on,panOnScrollSpeed:bn,panOnScrollMode:un,panOnDrag:Pn,onPaneClick:En,onPaneMouseEnter:sr,onPaneMouseMove:It,onPaneMouseLeave:kr,onPaneScroll:Nr,onPaneContextMenu:Wn,onSelectionContextMenu:H,onSelectionStart:Z,onSelectionEnd:N,onEdgeUpdate:ke,onEdgeContextMenu:st,onEdgeDoubleClick:it,onEdgeMouseEnter:_t,onEdgeMouseMove:Tt,onEdgeMouseLeave:Ot,onEdgeUpdateStart:Wt,onEdgeUpdateEnd:nn,edgeUpdaterRadius:Ft,defaultMarkerColor:Oe,noDragClassName:Qt,noWheelClassName:rn,noPanClassName:qt,elevateEdgesOnSelect:lr,rfId:Ze,disableKeyboardA11y:gr,nodeOrigin:Re,nodeExtent:se}),Ee.createElement(qj,{nodes:e,edges:t,defaultNodes:r,defaultEdges:o,onConnect:b,onConnectStart:j,onConnectEnd:S,onClickConnectStart:M,onClickConnectEnd:A,nodesDraggable:ct,nodesConnectable:ut,nodesFocusable:Ae,edgesFocusable:dt,edgesUpdatable:jt,elementsSelectable:Mt,elevateNodesOnSelect:ir,minZoom:_e,maxZoom:Kt,nodeExtent:se,onNodesChange:dn,onEdgesChange:hn,snapToGrid:be,snapGrid:Se,connectionMode:z,translateExtent:Te,connectOnClick:Nn,defaultEdgeOptions:Cr,fitView:et,fitViewOptions:Sn,onNodesDelete:me,onEdgesDelete:$e,onNodeDragStart:X,onNodeDrag:J,onNodeDragStop:ge,onSelectionDrag:I,onSelectionDragStart:ue,onSelectionDragStop:G,noPanClassName:qt,nodeOrigin:Re,rfId:Ze,autoPanOnConnect:Ns,autoPanOnNodeDrag:ds,onError:Ir,connectionRadius:Si,isValidConnection:Bo,nodeDragThreshold:Ii}),Ee.createElement(Hj,{onSelectionChange:Me}),ae,Ee.createElement(yj,{proOptions:$n,position:In}),Ee.createElement(Jj,{rfId:Ze,disableKeyboardA11y:gr})))});By.displayName="ReactFlow";const Uy=({id:e,x:t,y:r,width:o,height:l,style:u,color:c,strokeColor:d,strokeWidth:h,className:_,borderRadius:g,shapeRendering:x,onClick:v,selected:b})=>{const{background:j,backgroundColor:S}=u||{},M=c||j||S;return Ee.createElement("rect",{className:ks(["react-flow__minimap-node",{selected:b},_]),x:t,y:r,rx:g,ry:g,width:o,height:l,fill:M,stroke:d,strokeWidth:h,shapeRendering:x,onClick:v?A=>v(A,e):void 0})};Uy.displayName="MiniMapNode";var sN=m.memo(Uy);const iN=e=>e.nodeOrigin,oN=e=>e.getNodes().filter(t=>!t.hidden&&t.width&&t.height),wm=e=>e instanceof Function?e:()=>e;function aN({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:l=2,nodeComponent:u=sN,onClick:c}){const d=rr(oN,us),h=rr(iN),_=wm(t),g=wm(e),x=wm(r),v=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return Ee.createElement(Ee.Fragment,null,d.map(b=>{const{x:j,y:S}=lc(b,h).positionAbsolute;return Ee.createElement(u,{key:b.id,x:j,y:S,width:b.width,height:b.height,style:b.style,selected:b.selected,className:x(b),color:_(b),borderRadius:o,strokeColor:g(b),strokeWidth:l,shapeRendering:v,onClick:c,id:b.id})}))}var lN=m.memo(aN);const cN=200,uN=150,dN=e=>{const t=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:t.length>0?wj(xf(t,e.nodeOrigin),r):r,rfId:e.rfId}},fN="react-flow__minimap-desc";function Wy({style:e,className:t,nodeStrokeColor:r="transparent",nodeColor:o="#e2e2e2",nodeClassName:l="",nodeBorderRadius:u=5,nodeStrokeWidth:c=2,nodeComponent:d,maskColor:h="rgb(240, 240, 240, 0.6)",maskStrokeColor:_="none",maskStrokeWidth:g=1,position:x="bottom-right",onClick:v,onNodeClick:b,pannable:j=!1,zoomable:S=!1,ariaLabel:M="React Flow mini map",inversePan:A=!1,zoomStep:D=10,offsetScale:O=5}){const L=Qr(),Y=m.useRef(null),{boundingRect:ne,viewBB:X,rfId:J}=rr(dN,us),ge=(e==null?void 0:e.width)??cN,me=(e==null?void 0:e.height)??uN,$e=ne.width/ge,Me=ne.height/me,ue=Math.max($e,Me),I=ue*ge,G=ue*me,H=O*ue,Z=ne.x-(I-ne.width)/2-H,N=ne.y-(G-ne.height)/2-H,z=I+H*2,F=G+H*2,E=`${fN}-${J}`,U=m.useRef(0);U.current=ue,m.useEffect(()=>{if(Y.current){const he=ao(Y.current),Ne=Pe=>{const{transform:oe,d3Selection:be,d3Zoom:Se}=L.getState();if(Pe.sourceEvent.type!=="wheel"||!be||!Se)return;const Ue=-Pe.sourceEvent.deltaY*(Pe.sourceEvent.deltaMode===1?.05:Pe.sourceEvent.deltaMode?1:.002)*D,De=oe[2]*Math.pow(2,Ue);Se.scaleTo(be,De)},ce=Pe=>{const{transform:oe,d3Selection:be,d3Zoom:Se,translateExtent:Ue,width:De,height:ct}=L.getState();if(Pe.sourceEvent.type!=="mousemove"||!be||!Se)return;const ut=U.current*Math.max(1,oe[2])*(A?-1:1),Ae={x:oe[0]-Pe.sourceEvent.movementX*ut,y:oe[1]-Pe.sourceEvent.movementY*ut},Re=[[0,0],[De,ct]],dt=Pa.translate(Ae.x,Ae.y).scale(oe[2]),jt=Se.constrain()(dt,Re,Ue);Se.transform(be,jt)},xe=Q_().on("zoom",j?ce:null).on("zoom.wheel",S?Ne:null);return he.call(xe),()=>{he.on("zoom",null)}}},[j,S,A,D]);const te=v?he=>{const Ne=Po(he);v(he,{x:Ne[0],y:Ne[1]})}:void 0,re=b?(he,Ne)=>{const ce=L.getState().nodeInternals.get(Ne);b(he,ce)}:void 0;return Ee.createElement(Hu,{position:x,style:e,className:ks(["react-flow__minimap",t]),"data-testid":"rf__minimap"},Ee.createElement("svg",{width:ge,height:me,viewBox:`${Z} ${N} ${z} ${F}`,role:"img","aria-labelledby":E,ref:Y,onClick:te},M&&Ee.createElement("title",{id:E},M),Ee.createElement(lN,{onClick:re,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:u,nodeClassName:l,nodeStrokeWidth:c,nodeComponent:d}),Ee.createElement("path",{className:"react-flow__minimap-mask",d:`M${Z-H},${N-H}h${z+H*2}v${F+H*2}h${-z-H*2}z
117
+ M${X.x},${X.y}h${X.width}v${X.height}h${-X.width}z`,fill:h,fillRule:"evenodd",stroke:_,strokeWidth:g,pointerEvents:"none"})))}Wy.displayName="MiniMap";var mN=m.memo(Wy);function hN(){return Ee.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},Ee.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function pN(){return Ee.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Ee.createElement("path",{d:"M0 0h32v4.2H0z"}))}function gN(){return Ee.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Ee.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function _N(){return Ee.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Ee.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function yN(){return Ee.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Ee.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const Kc=({children:e,className:t,...r})=>Ee.createElement("button",{type:"button",className:ks(["react-flow__controls-button",t]),...r},e);Kc.displayName="ControlButton";const xN=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),Hy=({style:e,showZoom:t=!0,showFitView:r=!0,showInteractive:o=!0,fitViewOptions:l,onZoomIn:u,onZoomOut:c,onFitView:d,onInteractiveChange:h,className:_,children:g,position:x="bottom-left"})=>{const v=Qr(),[b,j]=m.useState(!1),{isInteractive:S,minZoomReached:M,maxZoomReached:A}=rr(xN,us),{zoomIn:D,zoomOut:O,fitView:L}=Sh();if(m.useEffect(()=>{j(!0)},[]),!b)return null;const Y=()=>{D(),u==null||u()},ne=()=>{O(),c==null||c()},X=()=>{L(l),d==null||d()},J=()=>{v.setState({nodesDraggable:!S,nodesConnectable:!S,elementsSelectable:!S}),h==null||h(!S)};return Ee.createElement(Hu,{className:ks(["react-flow__controls",_]),position:x,style:e,"data-testid":"rf__controls"},t&&Ee.createElement(Ee.Fragment,null,Ee.createElement(Kc,{onClick:Y,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:A},Ee.createElement(hN,null)),Ee.createElement(Kc,{onClick:ne,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:M},Ee.createElement(pN,null))),r&&Ee.createElement(Kc,{className:"react-flow__controls-fitview",onClick:X,title:"fit view","aria-label":"fit view"},Ee.createElement(gN,null)),o&&Ee.createElement(Kc,{className:"react-flow__controls-interactive",onClick:J,title:"toggle interactivity","aria-label":"toggle interactivity"},S?Ee.createElement(yN,null):Ee.createElement(_N,null)),g)};Hy.displayName="Controls";var vN=m.memo(Hy),Oo;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Oo||(Oo={}));function wN({color:e,dimensions:t,lineWidth:r}){return Ee.createElement("path",{stroke:e,strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function bN({color:e,radius:t}){return Ee.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const SN={[Oo.Dots]:"#91919a",[Oo.Lines]:"#eee",[Oo.Cross]:"#e2e2e2"},jN={[Oo.Dots]:1,[Oo.Lines]:1,[Oo.Cross]:6},kN=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Vy({id:e,variant:t=Oo.Dots,gap:r=20,size:o,lineWidth:l=1,offset:u=2,color:c,style:d,className:h}){const _=m.useRef(null),{transform:g,patternId:x}=rr(kN,us),v=c||SN[t],b=o||jN[t],j=t===Oo.Dots,S=t===Oo.Cross,M=Array.isArray(r)?r:[r,r],A=[M[0]*g[2]||1,M[1]*g[2]||1],D=b*g[2],O=S?[D,D]:A,L=j?[D/u,D/u]:[O[0]/u,O[1]/u];return Ee.createElement("svg",{className:ks(["react-flow__background",h]),style:{...d,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:_,"data-testid":"rf__background"},Ee.createElement("pattern",{id:x+e,x:g[0]%A[0],y:g[1]%A[1],width:A[0],height:A[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${L[0]},-${L[1]})`},j?Ee.createElement(bN,{color:v,radius:D/u}):Ee.createElement(wN,{dimensions:O,color:v,lineWidth:l})),Ee.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${x+e})`}))}Vy.displayName="Background";var NN=m.memo(Vy);function qy(e,t={}){const r=e&&typeof e=="object"&&!Array.isArray(e)?e:null;if(!r)return null;const o=typeof r.x=="number"&&Number.isFinite(r.x)?r.x:null,l=typeof r.y=="number"&&Number.isFinite(r.y)?r.y:null,u=typeof r.zoom=="number"&&Number.isFinite(r.zoom)?r.zoom:null;if(o===null||l===null||u===null)return null;const c=typeof t.maxAbsTranslate=="number"&&Number.isFinite(t.maxAbsTranslate)?Math.abs(t.maxAbsTranslate):1e6;if(Math.abs(o)>c||Math.abs(l)>c)return null;const d=typeof t.minZoom=="number"&&Number.isFinite(t.minZoom)?t.minZoom:.025,h=typeof t.maxZoom=="number"&&Number.isFinite(t.maxZoom)?t.maxZoom:6,_=Math.min(d,h),g=Math.max(d,h);return{x:o,y:l,zoom:Math.min(g,Math.max(_,u))}}function uf(e){const t=String(e||"").trim();if(!t)return"";const r=t.indexOf(":");return r!==-1&&r<t.length-1?t.slice(r+1):t}function CN(e){const t=String(e||"").trim();if(!t)return"entity";const r=t.indexOf(":");if(r<=0||r>=t.length-1)return"entity";const o=t.slice(0,r).toLowerCase(),l=t.slice(r+1).toLowerCase();if(o==="ex"){const u=l.indexOf("-"),c=u>0?l.slice(0,u):l;return c==="person"?"person":c==="org"?"org":c==="concept"?"concept":c==="claim"?"claim":c==="event"?"event":c==="doc"?"doc":c==="thing"?"thing":"entity"}return o==="schema"||o==="skos"||o==="dcterms"||o==="rdf"||o==="cito"?"vocab":"entity"}function EN(e){const t=String(e||"").trim();if(!t)return"";const r=t.indexOf(":");if(r<=0||r>=t.length-1)return uf(t);const o=t.slice(0,r).toLowerCase(),l=t.slice(r+1);if(o==="ex"){const u=l.indexOf("-");if(u>0&&u<l.length-1)return l.slice(u+1)}return uf(t)}function Zm(e){const o=Math.max(1,Math.ceil(Math.sqrt(e.length))),l={};for(let u=0;u<e.length;u++){const c=Math.floor(u/o),d=u%o;l[e[u]]={x:d*240,y:c*120}}return l}function eh(e){const t=String(e??"");let r=2166136261;for(let o=0;o<t.length;o++)r^=t.charCodeAt(o),r=Math.imul(r,16777619);return r>>>0}function Gy(e){let t=e>>>0;return()=>{t+=1831565813;let r=Math.imul(t^t>>>15,1|t);return r^=r+Math.imul(r^r>>>7,61|r),((r^r>>>14)>>>0)/4294967296}}function $N(e,t){const r={},o=e.length;if(!o)return r;const l=Math.max(260,Math.sqrt(o)*150),u=t%360*Math.PI/180;for(let c=0;c<o;c++){const d=u+2*Math.PI*c/o;r[e[c]]={x:l*Math.cos(d),y:l*Math.sin(d)}}return r}function zg(e,t,r){var j;const o={};if(!e.length)return o;const l=new Map;for(const S of e)l.set(S,new Set);for(const S of t){const M=String((S==null?void 0:S.source)||"").trim(),A=String((S==null?void 0:S.target)||"").trim();if(!M||!A||M===A)continue;const D=l.get(M),O=l.get(A);D&&D.add(A),O&&O.add(M)}let u=e[0],c=-1;for(const S of e){const M=((j=l.get(S))==null?void 0:j.size)??0;(M>c||M===c&&S.localeCompare(u)<0)&&(u=S,c=M)}const d=new Map,h=[];for(d.set(u,0),h.push(u);h.length;){const S=h.shift(),M=d.get(S)??0,A=Array.from(l.get(S)??[]);A.sort((D,O)=>D.localeCompare(O));for(const D of A)d.has(D)||(d.set(D,M+1),h.push(D))}let _=0;for(const S of d.values())_=Math.max(_,S);for(const S of e)d.has(S)||d.set(S,_+1);const g=new Map;for(const S of e){const M=d.get(S)??0,A=g.get(M);A?A.push(S):g.set(M,[S])}const x=Array.from(g.keys()).sort((S,M)=>S-M),v=260,b=r%360*Math.PI/180;for(const S of x){const M=g.get(S)||[];if(M.sort((L,Y)=>L.localeCompare(Y)),S===0){if(M.length===1)o[M[0]]={x:0,y:0};else for(let Y=0;Y<M.length;Y++){const ne=b+2*Math.PI*Y/M.length;o[M[Y]]={x:80*Math.cos(ne),y:80*Math.sin(ne)}}continue}const A=v*S,D=M.length;if(D===1){o[M[0]]={x:A,y:0};continue}const O=b+S*.35;for(let L=0;L<D;L++){const Y=O+2*Math.PI*L/D;o[M[L]]={x:A*Math.cos(Y),y:A*Math.sin(Y)}}}return o}function Yc(e,t={}){const r=t.kind??"grid",o=typeof t.seed=="number"&&Number.isFinite(t.seed)?Math.trunc(t.seed):0,l=e.nodes.map(u=>u.id);if(r==="grid")return Zm(l);if(r==="circle")return $N(l,o);if(r==="radial")return zg(l,e.edges,o);if(r==="force"){const u=zg(l,e.edges,o),c=Gy(o||1),d=Math.max(10,Math.min(42,Math.sqrt(l.length)*2.75)),h={};for(const _ of l){const g=u[_]||{x:0,y:0};h[_]={x:g.x+(c()-.5)*d,y:g.y+(c()-.5)*d}}return h}return Zm(l)}function TN(e){return Array.isArray(e)?e.filter(t=>t&&typeof t=="object"&&typeof t.subject=="string"&&typeof t.predicate=="string"&&typeof t.object=="string"):[]}function MN(e,t={}){const r=!!(t.groupEdges??!0),o=Math.max(1,t.maxEdgeLabelPredicates??3),l=TN(e),u=new Set;for(const v of l){const b=String(v.subject||"").trim(),j=String(v.object||"").trim();b&&u.add(b),j&&u.add(j)}const c=Array.from(u);c.sort((v,b)=>v.localeCompare(b));const d=Zm(c),h=c.map(v=>({id:v,type:"default",data:{label:EN(v),kind:CN(v)},position:d[v]||{x:0,y:0}})),_=new Map,g=(v,b)=>{const j=String(v.subject||"").trim(),S=String(v.object||"").trim(),M=String(v.predicate||"").trim();return r?`edge:${j}:${S}`:`edge:${b}:${j}:${M}:${S}`};for(let v=0;v<l.length;v++){const b=l[v],j=g(b,v),S=_.get(j);S?S.push(b):_.set(j,[b])}const x=[];for(const[v,b]of _.entries()){const j=b[0],S=String(j.subject||"").trim(),M=String(j.object||"").trim();if(!S||!M)continue;const A=new Map;for(const X of b){const J=String(X.predicate||"").trim();J&&A.set(J,(A.get(J)||0)+1)}const D=Array.from(A.entries());D.sort((X,J)=>J[1]-X[1]||X[0].localeCompare(J[0]));const L=D.slice(0,o).map(([X,J])=>J>1?`${uf(X)}×${J}`:uf(X)).join(" | "),Y=D.length>o?` +${D.length-o}`:"",ne=`${L}${Y}`.trim();x.push({id:v,source:S,target:M,label:ne,animated:!1,data:{assertions:b,predicateSummary:ne}})}return{nodes:h,edges:x}}function AN(e,t,r,o={}){const l=o.directed!==!1,u=String(t||"").trim(),c=String(r||"").trim();if(!u||!c)return null;if(u===c)return{nodeIds:[u],edgeIds:[]};const d=new Map,h=(S,M,A)=>{const D=d.get(S);D?D.push({to:M,edgeId:A}):d.set(S,[{to:M,edgeId:A}])};for(const S of e.edges)h(S.source,S.target,S.id),l||h(S.target,S.source,S.id);const _=[u],g=new Map,x=new Map;for(g.set(u,null),x.set(u,null);_.length;){const S=_.shift(),M=d.get(S)||[];for(const A of M)if(!g.has(A.to)){if(g.set(A.to,S),x.set(A.to,A.edgeId),A.to===c){_.length=0;break}_.push(A.to)}}if(!g.has(c))return null;const v=[],b=[];let j=c;for(;j;){v.push(j);const S=x.get(j);S&&b.push(S),j=g.get(j)||null}return v.reverse(),b.reverse(),{nodeIds:v,edgeIds:b}}const Rg={seed:1,dt:1,springLength:240,springStrength:.03,repulsionStrength:9e3,centeringStrength:.003,damping:.85,maxSpeed:90,maxRepulsionNodes:320};function Bd(e,t={}){const r={...Rg,...t,seed:typeof t.seed=="number"&&Number.isFinite(t.seed)?Math.trunc(t.seed):Rg.seed},o=e.nodes.map(b=>b.id),l=o.length,u=new Float64Array(2*l),c=new Float64Array(2*l),d=new Float64Array(2*l),h=new Map;for(let b=0;b<l;b++)h.set(o[b],b);const _=t.positions??Yc(e,{kind:"force",seed:r.seed}),g=Gy(r.seed||1),x=Math.max(8,Math.min(38,Math.sqrt(l)*2.25));for(let b=0;b<l;b++){const j=o[b],S=_[j],M=typeof(S==null?void 0:S.x)=="number"&&Number.isFinite(S.x)?S.x:(g()-.5)*500,A=typeof(S==null?void 0:S.y)=="number"&&Number.isFinite(S.y)?S.y:(g()-.5)*500;u[2*b]=M+(g()-.5)*x,u[2*b+1]=A+(g()-.5)*x,c[2*b]=0,c[2*b+1]=0}const v=[];for(const b of e.edges){const j=h.get(String((b==null?void 0:b.source)||"").trim()),S=h.get(String((b==null?void 0:b.target)||"").trim());typeof j!="number"||typeof S!="number"||j===S||v.push(j,S)}return{nodeIds:o,pos:u,vel:c,acc:d,edges:new Uint32Array(v),options:r,tick:0}}function zN(e,t=1){const r=e.nodeIds.length;if(!r)return;const o=e.options,l=o.dt;for(let u=0;u<Math.max(1,Math.trunc(t));u++){if(e.acc.fill(0),r<=o.maxRepulsionNodes){const b=o.repulsionStrength;for(let j=0;j<r;j++){const S=e.pos[2*j],M=e.pos[2*j+1];for(let A=j+1;A<r;A++){const D=e.pos[2*A]-S,O=e.pos[2*A+1]-M,L=D*D+O*O+1e-6,Y=1/Math.sqrt(L),ne=b/L,X=ne*D*Y,J=ne*O*Y;e.acc[2*j]-=X,e.acc[2*j+1]-=J,e.acc[2*A]+=X,e.acc[2*A+1]+=J}}}const d=o.springLength,h=o.springStrength,_=e.edges;for(let b=0;b<_.length;b+=2){const j=_[b],S=_[b+1],M=e.pos[2*j],A=e.pos[2*j+1],D=e.pos[2*S],O=e.pos[2*S+1],L=D-M,Y=O-A,ne=L*L+Y*Y+1e-6,X=Math.sqrt(ne),J=h*(X-d),ge=J*L/X,me=J*Y/X;e.acc[2*j]+=ge,e.acc[2*j+1]+=me,e.acc[2*S]-=ge,e.acc[2*S+1]-=me}const g=o.centeringStrength;for(let b=0;b<r;b++)e.acc[2*b]+=-g*e.pos[2*b],e.acc[2*b+1]+=-g*e.pos[2*b+1];const x=o.damping,v=o.maxSpeed;for(let b=0;b<r;b++){let j=(e.vel[2*b]+e.acc[2*b]*l)*x,S=(e.vel[2*b+1]+e.acc[2*b+1]*l)*x;const M=Math.sqrt(j*j+S*S);if(M>v){const A=v/M;j*=A,S*=A}e.vel[2*b]=j,e.vel[2*b+1]=S,e.pos[2*b]+=j*l,e.pos[2*b+1]+=S*l}e.tick+=1}}function RN(e){const t=e.nodeIds.length;if(!t)return 0;let r=0;for(let o=0;o<t;o++){const l=e.vel[2*o],u=e.vel[2*o+1];r+=Math.sqrt(l*l+u*u)}return r/t}function LN(e){const t={},r=e.nodeIds.length;for(let o=0;o<r;o++)t[e.nodeIds[o]]={x:e.pos[2*o],y:e.pos[2*o+1]};return t}function Lg(e,t="session"){const r=String(e??"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function PN(){if(typeof window>"u"||typeof window.matchMedia!="function")return!1;try{return window.matchMedia("(pointer: coarse)").matches||window.matchMedia("(max-width: 720px)").matches}catch{return!1}}function IN(){return s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[s.jsx("rect",{x:"3",y:"3",width:"3",height:"3",rx:"1"}),s.jsx("rect",{x:"3",y:"7",width:"3",height:"3",rx:"1"}),s.jsx("rect",{x:"3",y:"11",width:"3",height:"3",rx:"1"}),s.jsx("rect",{x:"8",y:"3.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"}),s.jsx("rect",{x:"8",y:"7.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"}),s.jsx("rect",{x:"8",y:"11.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"})]})}function Yy(e,t,r,o){const l=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.min(r,Math.max(t,l))}function Mu(e){const t=Yy(e,.6,2.4,1),r=240*t,o=9e3*t*t;return{springLength:r,repulsionStrength:o}}const Xu="abstractuic_amx_saved_layouts_v1",th=.025,nh=6,Xy=1e6;function Nh(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function rh(e,t="grid"){const r=String(e??"").trim().toLowerCase();return r==="grid"||r==="circle"||r==="radial"||r==="force"?r:t}function ON(e){const t=e&&typeof e=="object"&&!Array.isArray(e)?e:null;if(!t)return null;const r=typeof t.x=="number"&&Number.isFinite(t.x)?t.x:null,o=typeof t.y=="number"&&Number.isFinite(t.y)?t.y:null;return r===null||o===null?null:{x:r,y:o}}function Pg(e){const t=Nh();if(!t)return null;const r=String(e??"").trim();if(!r)return null;try{const o=t.getItem(Xu);if(!o)return null;const l=JSON.parse(o),u=l&&typeof l=="object"&&!Array.isArray(l)?l:null;if(!u)return null;const c=u[r],d=c&&typeof c=="object"&&!Array.isArray(c)?c:null;if(!d)return null;const h=d.version===1?1:null;if(h===null)return null;const _=rh(d.kind,"grid"),g=typeof d.seed=="number"&&Number.isFinite(d.seed)?Math.trunc(d.seed):eh(r),x=d.positions&&typeof d.positions=="object"&&!Array.isArray(d.positions)?d.positions:null,v={};if(x)for(const[S,M]of Object.entries(x)){const A=ON(M);A&&(v[String(S)]=A)}const b=qy(d.viewport,{minZoom:th,maxZoom:nh,maxAbsTranslate:Xy})??void 0,j=typeof d.saved_at=="string"&&d.saved_at.trim()?d.saved_at.trim():"";return{version:h,kind:_,seed:g,positions:v,viewport:b,saved_at:j}}catch{return null}}function FN(e,t){const r=Nh();if(!r)return;const o=String(e??"").trim();if(o)try{const l=r.getItem(Xu),u=l?JSON.parse(l):null,c=u&&typeof u=="object"&&!Array.isArray(u)?{...u}:{};c[o]=t,r.setItem(Xu,JSON.stringify(c))}catch{}}function DN(e){const t=Nh();if(!t)return;const r=String(e??"").trim();if(r)try{const o=t.getItem(Xu);if(!o)return;const l=JSON.parse(o),u=l&&typeof l=="object"&&!Array.isArray(l)?{...l}:null;if(!u||!(r in u))return;delete u[r],t.setItem(Xu,JSON.stringify(u))}catch{}}function BN(e){const t=String(e??"").trim();if(!t)return;const r=Number(t);if(Number.isFinite(r))return r}function bm(e,t){const r=!!(t!=null&&t.allowZero),o=!!(t!=null&&t.allowNegativeOne),l=String(e??"").trim();if(!l)return;const u=Number(l);if(!Number.isFinite(u))return;const c=Math.trunc(u);if(o&&c===-1)return-1;if(!(!r&&c<=0)&&!(r&&c<0))return c}function UN(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const t=e,r=typeof t.recall_level=="string"?t.recall_level:"",o=t.applied&&typeof t.applied=="object"&&!Array.isArray(t.applied)?t.applied:null,l=[];return r&&l.push(`recall_level=${r}`),o&&(typeof o.limit=="number"&&l.push(`limit=${o.limit}`),typeof o.min_score=="number"&&l.push(`min_score=${o.min_score}`),typeof o.max_input_tokens=="number"&&l.push(`max_input_tokens=${o.max_input_tokens}`)),l.length?l.join(" · "):null}function WN(e){if(!e||typeof e!="object")return null;const t=[],r=typeof e.scope=="string"?e.scope.trim():"",o=typeof e.owner_id=="string"?e.owner_id.trim():"";r&&t.push(`scope=${r}`),o&&t.push(`owner_id=${o}`);const l=typeof e.confidence=="number"&&Number.isFinite(e.confidence)?e.confidence:null;l!==null&&t.push(`confidence=${l.toFixed(3)}`);const u=e.provenance&&typeof e.provenance=="object"&&!Array.isArray(e.provenance)?e.provenance:null;if(u){const _=typeof u.writer_run_id=="string"?u.writer_run_id.trim():"",g=typeof u.writer_workflow_id=="string"?u.writer_workflow_id.trim():"";_&&t.push(`writer_run_id=${_}`),g&&t.push(`writer_workflow_id=${g}`)}const c=e.attributes&&typeof e.attributes=="object"&&!Array.isArray(e.attributes)?e.attributes:null,d=c&&c._retrieval&&typeof c._retrieval=="object"&&!Array.isArray(c._retrieval)?c._retrieval:null,h=d&&typeof d.score=="number"&&Number.isFinite(d.score)?d.score:null;return h!==null&&t.push(`score=${h.toFixed(3)}`),t.length?t.join(" · "):null}function HN(e,t){const r=String(e??""),o=String(t??"").trim();if(!o)return r;const l=r.toLowerCase().indexOf(o.toLowerCase());if(l<0)return r;const u=r.slice(0,l),c=r.slice(l,l+o.length),d=r.slice(l+o.length);return s.jsxs(s.Fragment,{children:[u,s.jsx("span",{className:"amx-hl",children:c}),d]})}function Au(e){const t=String(e??"").trim().toLowerCase();return t==="person"?{stroke:"rgba(96, 165, 250, 0.82)",bg:"rgba(96, 165, 250, 0.10)",minimap:"rgba(96, 165, 250, 0.85)"}:t==="org"?{stroke:"rgba(34, 197, 94, 0.78)",bg:"rgba(34, 197, 94, 0.10)",minimap:"rgba(34, 197, 94, 0.82)"}:t==="concept"?{stroke:"rgba(168, 85, 247, 0.78)",bg:"rgba(168, 85, 247, 0.10)",minimap:"rgba(168, 85, 247, 0.82)"}:t==="claim"?{stroke:"rgba(251, 191, 36, 0.78)",bg:"rgba(251, 191, 36, 0.10)",minimap:"rgba(251, 191, 36, 0.82)"}:t==="event"?{stroke:"rgba(239, 68, 68, 0.74)",bg:"rgba(239, 68, 68, 0.10)",minimap:"rgba(239, 68, 68, 0.80)"}:t==="doc"?{stroke:"rgba(14, 165, 233, 0.74)",bg:"rgba(14, 165, 233, 0.10)",minimap:"rgba(14, 165, 233, 0.80)"}:t==="vocab"?{stroke:"rgba(148, 163, 184, 0.55)",bg:"rgba(148, 163, 184, 0.06)",minimap:"rgba(148, 163, 184, 0.70)"}:t==="thing"?{stroke:"rgba(255, 255, 255, 0.20)",bg:"rgba(255, 255, 255, 0.04)",minimap:"rgba(255, 255, 255, 0.30)"}:{stroke:"rgba(255, 255, 255, 0.14)",bg:"rgba(0, 0, 0, 0.18)",minimap:"rgba(255, 255, 255, 0.24)"}}function VN(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=t.replace(/(\.\d{3})\d+/,"$1"),o=Date.parse(r);return Number.isFinite(o)?o:null}function zu(e){const t=VN(e);if(t===null)return"";const r=new Date(t),o=r.getUTCFullYear(),l=String(r.getUTCMonth()+1).padStart(2,"0"),u=String(r.getUTCDate()).padStart(2,"0"),c=String(r.getUTCHours()).padStart(2,"0"),d=String(r.getUTCMinutes()).padStart(2,"0");return`${o}/${l}/${u} ${c}:${d}`}function Ky(e){const t=String(e??"").trim();if(!t)return"";const r=t.indexOf(":");return r!==-1&&r<t.length-1?t.slice(r+1):t}function Sm(e,t){const r=String(e??"").trim().toLowerCase();return!!(r&&t.has(r))}function qN(e,t={}){const r=Math.max(1,t.maxPredicates??3),o=new Map;for(const h of e){const _=String((h==null?void 0:h.predicate)||"").trim();_&&o.set(_,(o.get(_)||0)+1)}const l=Array.from(o.entries());l.sort((h,_)=>_[1]-h[1]||h[0].localeCompare(_[0]));const c=l.slice(0,r).map(([h,_])=>{const g=Ky(h);return _>1?`${g}×${_}`:g}).join(" | "),d=l.length>r?` +${l.length-r}`:"";return`${c}${d}`.trim()}function GN({resetKey:e,queryMode:t,items:r,activeMemoryText:o,packets:l,packetsVersion:u,packedCount:c,dropped:d,estimatedTokens:h,effort:_,warnings:g,onQuery:x,onItemsReplace:v,onOpenSpan:b,onOpenTranscript:j}){var ns;const S=m.useRef(null),M=m.useMemo(()=>{const R=r==null?void 0:r[0],ie=r==null?void 0:r[r.length-1],je=R?`${R.subject}|${R.predicate}|${R.object}`:"",ze=ie?`${ie.subject}|${ie.predicate}|${ie.object}`:"";return`${(r==null?void 0:r.length)||0}:${je}:${ze}`},[r]),A=String(e??M),D=t==="replace"?"replace":"override",[O,L]=m.useState(null),[Y,ne]=m.useState(null),[X,J]=m.useState(!1),[ge,me]=m.useState(""),[$e,Me]=m.useState(!1),[ue,I]=m.useState("");m.useEffect(()=>{L(null),ne(null),me(""),J(!1),I(""),Me(!1)},[A]);const[G,H]=m.useState(""),[Z,N]=m.useState(!0),[z,F]=m.useState(!1),[E,U]=m.useState(!0),[te]=m.useState(()=>({compact:PN(),show:!1})),re=te.compact,[he,Ne]=m.useState(te.show),[ce,xe]=m.useState(!1),Pe=A,oe=m.useMemo(()=>eh(Pe),[Pe]),[be,Se]=m.useState("grid"),[Ue,De]=m.useState(oe),[ct,ut]=m.useState(!1),[Ae,Re]=m.useState(1),dt=m.useRef(null),jt=m.useRef(null),Mt=m.useRef(!1),[gt,_e]=m.useState(0),Kt=m.useRef(null),Te=m.useRef(0),nt=m.useRef(0),se=m.useRef(0),Oe=m.useRef(0),[Jt,vt]=m.useState(!1),[on,bn]=m.useState(""),[un,yn]=m.useState({}),Pn=m.useRef({});m.useEffect(()=>{Pn.current=un},[un]);const[En,sr]=m.useState(""),[It,kr]=m.useState(""),Nr=m.useMemo(()=>{var ie;const R=(ie=r==null?void 0:r[0])==null?void 0:ie.scope;return Lg(R,"session")},[r]),[Wn,ae]=m.useState(Nr),[ke,st]=m.useState("standard"),[it,_t]=m.useState(""),[Tt,Ot]=m.useState(""),[Wt,nn]=m.useState(""),[Ft,dn]=m.useState(""),[hn,Qt]=m.useState(""),[rn,qt]=m.useState(""),[et,Sn]=m.useState(""),[Nn,In]=m.useState("qwen/qwen3-next-80b");m.useEffect(()=>{ae(Nr)},[A]);const $n=Array.isArray(r)?r:[],Cr=typeof o=="string"?o:"",ir=Array.isArray(l)?l:[],lr=typeof u=="number"?u:void 0,gr=typeof c=="number"?c:void 0,Ns=typeof d=="number"?d:void 0,ds=typeof h=="number"?h:void 0,Si=_,Bo=g,Ir=D==="override"&&(O!=null&&O.items)&&Array.isArray(O.items)?O.items:$n,Tn=typeof(O==null?void 0:O.active_memory_text)=="string"&&O.active_memory_text.trim()?O.active_memory_text:Cr,Ds=(O==null?void 0:O.effort)??Si,Ii=(O==null?void 0:O.warnings)??Bo,fs=m.useMemo(()=>new Set(["rdf:type","schema:name","skos:preflabel","skos:altlabel","dcterms:title","dcterms:identifier"]),[]),Kn=m.useMemo(()=>E?Ir:(Ir||[]).filter(R=>!Sm(R==null?void 0:R.predicate,fs)),[Ir,E,fs]),Ze=m.useMemo(()=>MN(Ir,{groupEdges:Z}),[Ir,Z]),bt=m.useMemo(()=>{if(E)return Ze;const R=[];for(const ie of Ze.edges){const ze=(ie&&ie.data&&Array.isArray(ie.data.assertions)?ie.data.assertions:[]).filter(rt=>!Sm(rt==null?void 0:rt.predicate,fs));if(!ze.length)continue;const Ie=qN(ze);R.push({...ie,label:Ie,data:{...ie.data,assertions:ze,predicateSummary:Ie}})}return{nodes:Ze.nodes,edges:R}},[Ze,E,fs]),fn=m.useMemo(()=>bt.nodes.map(R=>R.id),[bt.nodes]),fr=m.useMemo(()=>{const R=fn[0]||"",ie=fn[fn.length-1]||"";return`${fn.length}:${R}:${ie}`},[fn]),Vr=m.useMemo(()=>{var ie;const R=new Map;for(const je of bt.nodes)R.set(je.id,String(((ie=je.data)==null?void 0:ie.label)||je.id));return R},[bt.nodes]),Er=m.useMemo(()=>{var ie;const R=new Map;for(const je of bt.nodes)R.set(je.id,String(((ie=je.data)==null?void 0:ie.kind)||""));return R},[bt.nodes]),ms=G.trim().toLowerCase(),oi=m.useMemo(()=>{var ie;if(!ms)return new Set;const R=new Set;for(const je of bt.nodes){const ze=String(je.id||"").toLowerCase(),Ie=String(((ie=je.data)==null?void 0:ie.label)||"").toLowerCase();(ze.includes(ms)||Ie.includes(ms))&&R.add(je.id)}return R},[bt.nodes,ms]),ai=m.useCallback((R,ie)=>{const je={};for(const ze of fn){const Ie=R[ze]||ie[ze];je[ze]=Ie?{x:Ie.x,y:Ie.y}:{x:0,y:0}}return je},[fn]);m.useEffect(()=>{yn(R=>{const ie=Yc(bt,{kind:be,seed:Ue}),je={};for(const ze of fn){const Ie=R[ze]||ie[ze];je[ze]=Ie?{x:Ie.x,y:Ie.y}:{x:0,y:0}}return je})},[bt,be,Ue,fn,fr]),m.useEffect(()=>{if(!Mt.current)return;const R=S.current;if(!(!R||typeof R.fitView!="function")&&fn.length){Mt.current=!1;try{R.fitView({padding:.2,duration:0})}catch{try{R.fitView({padding:.2})}catch{}}}},[fn.length,fr,un]),m.useEffect(()=>{ut(!1),dt.current=null,jt.current=null,Mt.current=!1,Te.current=0,nt.current=0,se.current=0;const R=Pg(Pe);if(R&&Object.keys(R.positions||{}).length){if(Se(R.kind),De(R.seed),vt(!0),bn(R.saved_at||""),R.viewport){jt.current=R.viewport;const Ie=S.current;if(Ie&&typeof Ie.setViewport=="function"){try{Ie.setViewport(R.viewport,{duration:0})}catch{try{Ie.setViewport(R.viewport)}catch{}}jt.current=null}}else Mt.current=!0;const ze=Yc(bt,{kind:R.kind,seed:R.seed});yn(ai(R.positions,ze));return}vt(!1),bn("");const ie=eh(Pe);De(ie);const je=Yc(bt,{kind:be,seed:ie});yn(je),be==="force"&&bt.nodes.length>0&&bt.nodes.length<=320&&(dt.current=Bd(bt,{seed:ie,positions:je,...Mu(Ae)}),ut(!0))},[Pe]);const Fn=m.useMemo(()=>{const R=String(En||"").trim(),ie=String(It||"").trim();return!R||!ie?null:AN(bt,R,ie,{directed:z})},[bt,En,It,z]),qr=!!(Fn&&String(En||"").trim()&&String(It||"").trim()),or=m.useMemo(()=>{const R=String(En||"").trim(),ie=String(It||"").trim();if(!R||!ie)return null;const je=z,ze=new Map,Ie=(Nt,zt)=>{const Gt=ze.get(Nt);Gt?Gt.push(zt):ze.set(Nt,[zt])};for(const Nt of bt.edges)Ie(Nt.source,Nt.target),je||Ie(Nt.target,Nt.source);const rt=new Set,Et=[];for(rt.add(R),Et.push(R);Et.length;){const Nt=Et.shift(),zt=ze.get(Nt)||[];for(const Gt of zt)rt.has(Gt)||(rt.add(Gt),Et.push(Gt))}return{reachableFromStart:rt.size,endReachable:rt.has(ie),nodes:bt.nodes.length,edges:bt.edges.length,assertions:Kn.length}},[z,bt.edges,bt.nodes.length,It,En,Kn.length]),Ce=m.useMemo(()=>new Set((Fn==null?void 0:Fn.nodeIds)||[]),[Fn]),_r=m.useMemo(()=>new Set((Fn==null?void 0:Fn.edgeIds)||[]),[Fn]),[qe,Jn]=m.useState(""),[Cn,Cs]=m.useState(""),mr=!!(String(qe||"").trim()||String(Cn||"").trim()),Bs=m.useMemo(()=>{const R=new Set,ie=new Set,je=String(qe||"").trim(),ze=String(Cn||"").trim();if(je){R.add(je);for(const Ie of bt.edges)(Ie.source===je||Ie.target===je)&&(ie.add(Ie.id),R.add(Ie.source),R.add(Ie.target));return{nodes:R,edges:ie}}if(ze){const Ie=bt.edges.find(rt=>rt.id===ze);Ie&&(ie.add(Ie.id),R.add(Ie.source),R.add(Ie.target))}return{nodes:R,edges:ie}},[bt.edges,Cn,qe]);m.useEffect(()=>{Jn(""),Cs(""),sr(""),kr("")},[A]);const[hs,pn]=m.useState(!1);m.useEffect(()=>{pn(!1)},[A]),m.useEffect(()=>{ct||(dt.current=null)},[ct]),m.useEffect(()=>{if(be!=="force")return;const R=dt.current;if(!R)return;const ie=Mu(Ae);R.options.springLength=ie.springLength,R.options.repulsionStrength=ie.repulsionStrength},[be,Ae]),m.useEffect(()=>{be!=="force"&&ct&&ut(!1)},[be,ct]),m.useEffect(()=>{if(!ct||be!=="force"||bt.nodes.length===0||typeof window>"u"||typeof window.requestAnimationFrame!="function")return;dt.current||(dt.current=Bd(bt,{seed:Ue,positions:Pn.current,...Mu(Ae)}));let R=0,ie=0,je=0;const ze=bt.nodes.length<=140?2:1,Ie=1600,rt=.08,Et=Nt=>{if(R=window.requestAnimationFrame(Et),Nt-ie<33)return;ie=Nt;const zt=dt.current;if(!zt){ut(!1);return}zN(zt,ze),je+=ze,yn(LN(zt)),(RN(zt)<=rt||je>=Ie)&&ut(!1)};return R=window.requestAnimationFrame(Et),()=>{window.cancelAnimationFrame(R)}},[bt,be,ct,Ue]);const ar=m.useMemo(()=>bt.nodes.map(R=>{var ft;const ie=Ce.has(R.id),je=oi.has(R.id),ze=qe===R.id,Ie=mr&&Bs.nodes.has(R.id),rt=Au((ft=R.data)==null?void 0:ft.kind),Et="rgba(34, 211, 238, 0.88)",Nt=je?"0 0 0 1px rgba(34, 211, 238, 0.34), 0 0 16px rgba(34, 211, 238, 0.26), 0 0 44px rgba(34, 211, 238, 0.14)":"",zt=ie?"rgba(168, 85, 247, 0.9)":je?Et:rt.stroke,Gt=ze?"0 0 0 2px rgba(255,255,255,0.20), 0 18px 46px rgba(0,0,0,0.55)":Ie?"0 0 0 1px rgba(96, 165, 250, 0.28), 0 12px 34px rgba(0,0,0,0.45)":void 0,en=Nt&&Gt?`${Nt}, ${Gt}`:Gt||Nt||void 0,Zn=ie?"rgba(168, 85, 247, 0.10)":je?"rgba(34, 211, 238, 0.08)":rt.bg,an=qr?ie||ze?1:.16:mr?Ie||ze?1:.1:1;return{...R,position:un[R.id]?{x:un[R.id].x,y:un[R.id].y}:R.position,style:{...R.style||{},border:`1px solid ${zt}`,borderRadius:10,background:Zn,color:"rgba(255,255,255,0.92)",opacity:an,padding:8,fontSize:12,boxShadow:en,width:180,cursor:"pointer"}}}),[bt.nodes,qr,oi,un,qe,Ce,mr,Bs.nodes]),li=m.useMemo(()=>bt.edges.map(R=>{const ie=_r.has(R.id),je=Cn===R.id,ze=mr&&Bs.edges.has(R.id),Ie=ie?"rgba(168, 85, 247, 0.9)":mr?ze||je?"rgba(96, 165, 250, 0.55)":"rgba(255,255,255,0.14)":"rgba(255,255,255,0.18)",rt=ie?2.75:mr?ze||je?2.25:1.25:1.5,Et=je?"drop-shadow(0 0 10px rgba(168, 85, 247, 0.25))":void 0,Nt=ie?"rgba(168, 85, 247, 0.9)":qr?"rgba(255,255,255,0.10)":"rgba(255,255,255,0.28)",zt=qr?ie||je?1:.1:mr?ze||je?1:.08:1,Gt=qr?ie||je?1:0:mr?ze||je?1:0:1,en=qr?ie||je?String(R.label||""):"":String(R.label||"");return{...R,label:en,style:{...R.style||{},stroke:Ie,strokeWidth:rt,filter:Et,opacity:zt},animated:!1,markerEnd:{type:Gu.ArrowClosed,color:Nt,width:20,height:20},labelShowBg:!0,labelBgPadding:[6,3],labelBgBorderRadius:10,labelBgStyle:{fill:`rgba(0, 0, 0, ${.38*Gt})`,stroke:`rgba(255, 255, 255, ${.14*Gt})`,strokeWidth:1},labelStyle:{fill:`rgba(255, 255, 255, ${.92*Gt})`,fontSize:10,fontWeight:600,letterSpacing:.2,textTransform:"lowercase"}}}),[bt.edges,qr,Cn,_r,mr,Bs.edges]),Us=m.useMemo(()=>{if(!Cn)return[];const R=bt.edges.find(je=>je.id===Cn),ie=R&&R.data&&Array.isArray(R.data.assertions)?R.data.assertions:[];return Array.isArray(ie)?ie:[]},[bt.edges,Cn]),Qn=m.useMemo(()=>Cn&&bt.edges.find(R=>R.id===Cn)||null,[bt.edges,Cn]),cr=m.useMemo(()=>{const R=String(qe||"").trim();return R?Ir.filter(ie=>!ie||typeof ie!="object"||!(ie.subject===R||ie.object===R)?!1:E?!0:!Sm(ie.predicate,fs)):[]},[Ir,qe,E,fs]),ps=m.useMemo(()=>Cn?Us:cr,[Us,Cn,cr]),Zr=m.useMemo(()=>{const R=new Map;for(const ie of ps){if(!ie||typeof ie!="object")continue;const je=ie.provenance&&typeof ie.provenance=="object"&&!Array.isArray(ie.provenance)?ie.provenance:null,ze=je&&typeof je.span_id=="string"?je.span_id.trim():"",Ie=je&&typeof je.writer_run_id=="string"?je.writer_run_id.trim():"",rt=typeof ie.owner_id=="string"?ie.owner_id.trim():"",Et=Ie||rt;if(!Et||!ze)continue;const Nt=`${Et}|${ze}`,zt=R.get(Nt),Gt=typeof ie.observed_at=="string"?ie.observed_at.trim():"";zt?(zt.count+=1,Gt&&(!zt.last_observed_at||Gt>zt.last_observed_at)&&(zt.last_observed_at=Gt,zt.last_observed_at_fmt=zu(Gt),zt.assertion=ie)):R.set(Nt,{span_run_id:Et,span_id:ze,writer_run_id:Ie,count:1,last_observed_at:Gt,last_observed_at_fmt:zu(Gt),assertion:ie})}return Array.from(R.values()).sort((ie,je)=>String(je.last_observed_at||"").localeCompare(String(ie.last_observed_at||"")))},[ps]),Ws=m.useMemo(()=>{const R=new Map;for(const ie of ps){if(!ie||typeof ie!="object")continue;const je=ie.provenance&&typeof ie.provenance=="object"&&!Array.isArray(ie.provenance)?ie.provenance:null,ze=je&&typeof je.span_id=="string"?je.span_id.trim():"",Ie=je&&typeof je.writer_run_id=="string"?je.writer_run_id.trim():"";if(!Ie||ze)continue;const rt=R.get(Ie),Et=typeof ie.observed_at=="string"?ie.observed_at.trim():"";rt?(rt.count+=1,Et&&(!rt.last_observed_at||Et>rt.last_observed_at)&&(rt.last_observed_at=Et,rt.last_observed_at_fmt=zu(Et),rt.assertion=ie)):R.set(Ie,{run_id:Ie,count:1,last_observed_at:Et,last_observed_at_fmt:zu(Et),assertion:ie})}return Array.from(R.values()).sort((ie,je)=>String(je.last_observed_at||"").localeCompare(String(ie.last_observed_at||"")))},[ps]),$r=m.useCallback(R=>{const ie=String(R.run_id||"").trim(),je=typeof R.span_id=="string"?String(R.span_id).trim():"";if(ie){if(j){try{j({run_id:ie,span_id:je||void 0,assertion:R.assertion})}catch{}return}if(b&&je)try{b({run_id:ie,span_id:je,assertion:R.assertion})}catch{}}},[b,j]),Mn=m.useCallback(async R=>{const ie=String(R??"");if(ie)try{await navigator.clipboard.writeText(ie)}catch{}},[]),hr=m.useCallback(()=>{const R=S.current;if(!(!R||typeof R.fitView!="function")){if(qe&&typeof R.getNode=="function"){const ie=R.getNode(qe);if(ie){R.fitView({nodes:[ie],padding:.55,duration:350});return}}R.fitView({padding:.2,duration:350})}},[qe]),Es=m.useCallback(R=>{const ie=R.kind,je=Math.trunc(R.seed);ut(!1),dt.current=null,jt.current=null,Se(ie),De(je);const ze=Yc(bt,{kind:ie,seed:je});yn(ze),ie==="force"&&(R.autoPlay??!0)&&bt.nodes.length>0&&bt.nodes.length<=320&&(dt.current=Bd(bt,{seed:je,positions:ze,...Mu(Ae)}),ut(!0))},[bt,Ae]),Hs=m.useCallback(()=>{if(be==="force"){if(ct){ut(!1);return}dt.current=Bd(bt,{seed:Ue,positions:Pn.current,...Mu(Ae)}),ut(!0)}},[bt,be,ct,Ue,Ae]);m.useEffect(()=>()=>{typeof window>"u"||typeof window.cancelAnimationFrame=="function"&&Oe.current&&window.cancelAnimationFrame(Oe.current)},[]);const Or=m.useCallback(()=>{const R=S.current;if(!R||typeof R.getViewport!="function"||!fn.length)return null;const ie=Kt.current;if(!ie)return null;const je=ie.getBoundingClientRect();if(!Number.isFinite(je.width)||!Number.isFinite(je.height)||je.width<64||je.height<64)return null;const ze=R.getViewport(),Ie=typeof(ze==null?void 0:ze.zoom)=="number"&&Number.isFinite(ze.zoom)?ze.zoom:null,rt=typeof(ze==null?void 0:ze.x)=="number"&&Number.isFinite(ze.x)?ze.x:null,Et=typeof(ze==null?void 0:ze.y)=="number"&&Number.isFinite(ze.y)?ze.y:null;if(Ie===null||rt===null||Et===null||Ie<=0)return null;const Nt=140,zt=Math.min(fn.length,180),Gt=Pn.current;let en=0,Zn=0;for(const an of fn){const ft=Gt[an];if(!ft||!Number.isFinite(ft.x)||!Number.isFinite(ft.y))continue;Zn+=1;const jn=[{x:ft.x,y:ft.y},{x:ft.x+90,y:ft.y+24}];for(const An of jn){const yr=An.x*Ie+rt,_s=An.y*Ie+Et;if(yr>-Nt&&yr<je.width+Nt&&_s>-Nt&&_s<je.height+Nt)return!1}if(en++,en>=zt)break}return Zn?!0:null},[fn]),Gr=m.useCallback(R=>{typeof window>"u"||typeof window.requestAnimationFrame!="function"||Oe.current||(Oe.current=window.requestAnimationFrame(()=>{Oe.current=0;const ie=Or();if(ie===null){if(se.current>=12)return;se.current+=1,window.setTimeout(()=>Gr(`${R}:probe`),120);return}if(ie!==!0){se.current=0,nt.current=0;return}se.current=0;const je=S.current;if(je&&typeof je.fitView=="function")try{je.fitView({padding:.2,duration:0})}catch{try{je.fitView({padding:.2})}catch{}}if(nt.current+=1,nt.current>=4&&Te.current<1){nt.current=0,Te.current+=1,_e(ze=>ze+1);return}nt.current<8&&window.setTimeout(()=>Gr(`${R}:retry`),220)}))},[Or]);m.useEffect(()=>{nt.current=0,Te.current=0,se.current=0,Gr("mount")},[A,Gr]),m.useEffect(()=>{Gr("graph change")},[fr,Gr]),m.useEffect(()=>{const R=Kt.current;if(!R||typeof window>"u"||typeof ResizeObserver!="function")return;const ie=new ResizeObserver(()=>Gr("resize"));return ie.observe(R),()=>ie.disconnect()},[Gr]);const Vs=m.useCallback(()=>{const R=new Date().toISOString(),ie={};for(const Et of fn){const Nt=Pn.current[Et];Nt&&typeof Nt.x=="number"&&typeof Nt.y=="number"&&(ie[Et]={x:Nt.x,y:Nt.y})}const je=S.current,ze=je&&typeof je.toObject=="function"?je.toObject():null,Ie=ze&&ze.viewport?ze.viewport:je&&typeof je.getViewport=="function"?je.getViewport():null,rt=qy(Ie,{minZoom:th,maxZoom:nh,maxAbsTranslate:Xy})??void 0;FN(Pe,{version:1,kind:be,seed:Ue,positions:ie,viewport:rt,saved_at:R}),vt(!0),bn(R),ut(!1)},[Pe,be,Ue,fn]),$s=m.useCallback(()=>{const R=Pg(Pe);if(!R)return;ut(!1),dt.current=null,Se(R.kind),De(R.seed),vt(!0),bn(R.saved_at||""),jt.current=R.viewport||null,Mt.current=!R.viewport;const ie=Yc(bt,{kind:R.kind,seed:R.seed});if(yn(ai(R.positions,ie)),R.viewport){const je=S.current;if(je&&typeof je.setViewport=="function"){try{je.setViewport(R.viewport,{duration:0})}catch{try{je.setViewport(R.viewport)}catch{}}jt.current=null}}},[ai,bt,Pe]),ci=m.useCallback(()=>{DN(Pe),vt(!1),bn("")},[Pe]),Oi=m.useCallback(R=>{if(!Array.isArray(R)||R.length===0)return;let ie=!1;yn(je=>{let ze=je,Ie=!1;for(const rt of R){const Et=rt&&typeof rt=="object"&&"id"in rt&&typeof rt.id=="string"?String(rt.id):"",Nt=(rt==null?void 0:rt.type)==="position"?rt==null?void 0:rt.position:null;Et&&Nt&&typeof Nt.x=="number"&&typeof Nt.y=="number"&&(Ie||(ze={...je},Ie=!0),ze[Et]={x:Nt.x,y:Nt.y},rt!=null&&rt.dragging&&(ie=!0))}return Ie?ze:je}),ie&&ct&&ut(!1)},[ct]),es=m.useMemo(()=>{const R=new Map;for(const ie of bt.edges)R.set(ie.id,ie);return R},[bt.edges]),uo=m.useMemo(()=>{var ze;if(!Fn)return[];const R=Fn.nodeIds||[],ie=Fn.edgeIds||[],je=[];for(let Ie=0;Ie<Math.min(R.length-1,ie.length);Ie++){const rt=R[Ie],Et=R[Ie+1],Nt=ie[Ie],zt=es.get(Nt),Gt=String(((ze=zt==null?void 0:zt.data)==null?void 0:ze.predicateSummary)||(zt==null?void 0:zt.label)||"").trim(),en=zt&&zt.source===rt&&zt.target===Et?"forward":zt&&zt.source===Et&&zt.target===rt?"reverse":"unknown";je.push({from:rt,to:Et,edgeId:Nt,predicate:Gt,dir:en})}return je},[es,Fn]),Fi=m.useCallback(async()=>{if(x){me(""),I(""),J(!0);try{const R=BN(hn),ie=bm(rn,{allowZero:!0,allowNegativeOne:!0}),je=bm(et,{allowZero:!0}),ze=await x({scope:Wn,owner_id:void 0,recall_level:ke,query_text:it||void 0,subject:Tt||void 0,predicate:Wt||void 0,object:Ft||void 0,min_score:R,limit:ie,max_input_tokens:je,model:Nn||void 0});L(ze),ne("live query"),D==="replace"&&v&&ze&&Array.isArray(ze.items)&&v(ze.items,{kind:"live query",result:ze})}catch(R){const ie=R instanceof Error?R.message:String(R);me(ie||"Query failed")}finally{J(!1)}}},[rn,et,hn,Nn,Ft,v,x,Wt,D,it,ke,Wn,Tt]),gs=m.useCallback(async()=>{if(!x)return;const R=String(En||"").trim(),ie=String(It||"").trim();if(!R||!ie)return;const je=Math.max(200,bm(rn)??80),ze=60;I(""),me(""),Me(!0);try{const Ie=[],rt=new Set,Et=an=>{if(!an||typeof an!="object"||typeof an.subject!="string"||typeof an.predicate!="string"||typeof an.object!="string")return;const ft=`${an.subject}|${an.predicate}|${an.object}|${String(an.observed_at||"")}|${String(an.scope||"")}|${String(an.owner_id||"")}`;rt.has(ft)||(rt.add(ft),Ie.push(an))};for(const an of Ir)Et(an);const Nt=z,zt=new Set,Gt=[R],en=new Set([R]),Zn=async an=>{const ft=await x({scope:Wn,recall_level:ke,min_score:0,limit:je,subject:an,query_text:void 0,max_input_tokens:0,model:void 0});if(ft&&Array.isArray(ft.items)){for(const jn of ft.items)if(Et(jn),typeof jn.subject=="string"&&jn.subject.trim()===an&&typeof jn.object=="string"){const An=jn.object.trim();An&&!en.has(An)&&(en.add(An),Gt.push(An))}}if(!Nt){const jn=await x({scope:Wn,recall_level:ke,min_score:0,limit:je,object:an,query_text:void 0,max_input_tokens:0,model:void 0});if(jn&&Array.isArray(jn.items)){for(const An of jn.items)if(Et(An),typeof An.object=="string"&&An.object.trim()===an&&typeof An.subject=="string"){const yr=An.subject.trim();yr&&!en.has(yr)&&(en.add(yr),Gt.push(yr))}}}};for(;Gt.length&&zt.size<ze&&!en.has(ie);){const an=Gt.shift();!an||zt.has(an)||(zt.add(an),await Zn(an))}L({ok:!0,count:Ie.length,items:Ie,active_memory_text:Tn,raw:{expanded_for_path:!0,expanded_nodes:zt.size,discovered_nodes:en.size,merged:Ie.length,directed:Nt}}),ne("expanded neighborhood"),D==="replace"&&v&&v(Ie,{kind:"expanded neighborhood",result:{ok:!0,count:Ie.length,items:Ie,active_memory_text:Tn,raw:{expanded_for_path:!0,expanded_nodes:zt.size,discovered_nodes:en.size,merged:Ie.length,directed:Nt}}})}catch(Ie){const rt=Ie instanceof Error?Ie.message:String(Ie);I(rt||"Expand neighborhood failed")}finally{Me(!1)}},[z,Tn,Ir,rn,v,x,It,En,D,ke,Wn]),Ts=m.useCallback(()=>{L(null),ne(null),me(""),J(!1),I(""),Me(!1),sr(""),kr(""),Jn(""),Cs("")},[]),ts="Search KG",Ms=bt.nodes.length,fo=bt.edges.length,Di=Kn.length;return s.jsxs("div",{className:"amx-root",children:[s.jsxs("div",{className:"amx-left",children:[s.jsx("div",{className:"amx-graphbar",role:"toolbar","aria-label":"Graph layout controls",children:s.jsxs("div",{className:"amx-graphbar-row",children:[s.jsx("span",{className:"amx-graphbar-title",children:"layout"}),s.jsxs("select",{value:be,onChange:R=>Se(rh(R.target.value,be)),disabled:!fn.length,children:[s.jsx("option",{value:"grid",children:"grid (deterministic)"}),s.jsx("option",{value:"radial",children:"radial (bfs)"}),s.jsx("option",{value:"circle",children:"circle"}),s.jsx("option",{value:"force",children:"force (simulation)"})]}),be==="force"?s.jsxs("label",{className:"amx-graphbar-spread",children:[s.jsx("span",{className:"amx-graphbar-title",children:"spread"}),s.jsx("input",{type:"range",min:"0.7",max:"2.2",step:"0.1",value:Ae,onChange:R=>Re(Yy(Number(R.target.value),.7,2.2,1))}),s.jsxs("span",{className:"amx-small",children:[Ae.toFixed(1),"×"]})]}):null,s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>Es({kind:be,seed:Ue}),disabled:!fn.length,children:"Apply"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Hs,disabled:!fn.length||be!=="force",children:ct?"Pause simulation":"Play simulation"})]})}),s.jsxs("div",{className:"amx-graph","aria-label":"Knowledge graph",ref:Kt,children:[s.jsx(kh,{children:s.jsxs(By,{nodes:ar,edges:li,defaultViewport:{x:0,y:0,zoom:1},minZoom:th,maxZoom:nh,onInit:R=>{S.current=R;const ie=jt.current;if(ie&&typeof R.setViewport=="function")try{R.setViewport(ie,{duration:0})}catch{try{R.setViewport(ie)}catch{}}if(Mt.current&&typeof R.fitView=="function")try{R.fitView({padding:.2,duration:0})}catch{try{R.fitView({padding:.2})}catch{}}jt.current=null,Mt.current=!1,Gr("init")},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,onNodesChange:Oi,onNodeClick:(R,ie)=>{Cs(""),Jn(ie.id)},onEdgeClick:(R,ie)=>{Jn(""),Cs(ie.id)},onPaneClick:()=>{Jn(""),Cs("")},children:[s.jsx(vN,{className:"amx-flow-controls",children:s.jsx(Kc,{type:"button",className:`amx-control-legend ${ce?"amx-control-legend-active":""}`,onClick:()=>xe(R=>!R),title:ce?"Hide node color legend":"Show node color legend","aria-label":ce?"Hide node color legend":"Show node color legend",children:s.jsx(IN,{})})}),s.jsx(Hu,{position:"bottom-right",className:"amx-panel-bottom-right",children:s.jsx("div",{className:"amx-panel-toggles",children:s.jsx("button",{type:"button",className:"amx-minimap-toggle",onClick:()=>Ne(R=>!R),title:he?"Hide minimap preview":"Show minimap preview","aria-label":he?"Hide minimap preview":"Show minimap preview",children:he?"minimap on":"minimap off"})})}),he?s.jsx(mN,{position:"bottom-right",pannable:!0,zoomable:!0,maskColor:"rgba(0,0,0,0.45)",style:{background:"rgba(12, 18, 34, 0.88)",border:"1px solid rgba(255,255,255,0.12)",borderRadius:10,width:re?120:160,height:re?80:110,marginBottom:56},nodeColor:R=>{var ie;return Au((ie=R.data)==null?void 0:ie.kind).minimap}}):null,ce?s.jsxs(Hu,{position:"bottom-left",className:"amx-legend-panel",children:[s.jsx("div",{className:"amx-legend-title",children:"node colors"}),s.jsx("div",{className:"amx-legend",children:[{k:"person",label:"person"},{k:"org",label:"org"},{k:"concept",label:"concept"},{k:"claim",label:"claim"},{k:"event",label:"event"},{k:"doc",label:"doc"},{k:"vocab",label:"vocab"}].map(({k:R,label:ie})=>s.jsx("span",{className:"amx-legend-item",style:{borderColor:Au(R).stroke},children:ie},R))})]}):null,s.jsx(NN,{gap:20,size:1,color:"rgba(255,255,255,0.06)"})]})},gt),s.jsxs("details",{className:"amx-panel amx-controls",children:[s.jsxs("summary",{children:[s.jsx("span",{className:"amx-controls-title",children:ts}),s.jsxs("span",{className:"amx-small",children:[Di," assertions · ",Ms," nodes · ",fo," edges"]})]}),s.jsxs("div",{className:"amx-toolbar",style:{marginTop:10},children:[s.jsxs("div",{className:"amx-toolbar-grid",children:[s.jsxs("label",{children:["search / highlight",s.jsx("input",{value:G,onChange:R=>H(R.target.value),placeholder:"filter nodes by id/label"})]}),s.jsxs("label",{children:["group edges",s.jsxs("select",{value:String(Z),onChange:R=>N(R.target.value==="true"),children:[s.jsx("option",{value:"true",children:"group (subject→object)"}),s.jsx("option",{value:"false",children:"no grouping"})]})]}),s.jsxs("label",{children:["view",s.jsxs("select",{value:String(E),onChange:R=>U(R.target.value==="true"),children:[s.jsx("option",{value:"true",children:"all assertions"}),s.jsx("option",{value:"false",children:"hide rdf:type / labels"})]})]}),s.jsxs("label",{children:["path mode",s.jsxs("select",{value:String(z),onChange:R=>F(R.target.value==="true"),children:[s.jsx("option",{value:"false",children:"undirected"}),s.jsx("option",{value:"true",children:"directed"})]})]})]}),s.jsxs("details",{className:"amx-details",children:[s.jsx("summary",{children:"layout"}),s.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[s.jsxs("label",{children:["layout",s.jsxs("select",{value:be,onChange:R=>Se(rh(R.target.value,be)),children:[s.jsx("option",{value:"grid",children:"grid (deterministic)"}),s.jsx("option",{value:"radial",children:"radial (bfs)"}),s.jsx("option",{value:"circle",children:"circle"}),s.jsx("option",{value:"force",children:"force (simulation)"})]})]}),s.jsxs("label",{children:["seed",s.jsx("input",{type:"number",step:"1",value:Ue,onChange:R=>De(Math.trunc(Number(R.target.value||0)||0))})]})]}),s.jsxs("div",{className:"amx-actions",style:{marginTop:10},children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>Es({kind:be,seed:Ue}),disabled:!fn.length,children:"Apply layout"}),be==="force"?s.jsx("button",{type:"button",className:"amx-btn",onClick:Hs,disabled:!fn.length,children:ct?"Pause simulation":"Play simulation"}):null,s.jsx("button",{type:"button",className:"amx-btn",onClick:Vs,disabled:!fn.length,children:"Save layout"}),Jt?s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:$s,children:"Load saved"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:ci,children:"Clear saved"})]}):null]}),s.jsxs("div",{className:"amx-small",style:{marginTop:10,opacity:.9},children:["Drag nodes to adjust manually; use ",s.jsx("span",{className:"amx-mono",children:"Save layout"})," for a stable, replayable view.",Jt?s.jsxs("span",{children:[" ","(saved",on?`: ${on}`:"",")"]}):s.jsx("span",{children:" (no saved layout)"})]})]}),s.jsxs("details",{className:"amx-details",children:[s.jsx("summary",{children:"path"}),s.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[s.jsxs("label",{children:["path start",s.jsxs("select",{value:En,onChange:R=>sr(R.target.value),children:[s.jsx("option",{value:"",children:"(none)"}),fn.map(R=>s.jsx("option",{value:R,children:(()=>{const ie=Vr.get(R)||R;return ie===R?ie:`${ie} (${R})`})()},R))]})]}),s.jsxs("label",{children:["path end",s.jsxs("select",{value:It,onChange:R=>kr(R.target.value),children:[s.jsx("option",{value:"",children:"(none)"}),fn.map(R=>s.jsx("option",{value:R,children:(()=>{const ie=Vr.get(R)||R;return ie===R?ie:`${ie} (${R})`})()},R))]})]})]}),Fn?s.jsx("div",{className:"amx-small",style:{marginTop:10},children:uo.map((R,ie)=>{const je=Vr.get(R.from)||R.from,ze=Vr.get(R.to)||R.to,Ie=R.dir==="reverse"?" ← ":" → ",rt=R.predicate?` (${R.predicate})`:"";return s.jsxs("div",{children:[ie===0?s.jsx("span",{children:je}):null,Ie,s.jsxs("span",{children:[ze,rt]})]},`${R.edgeId}:${ie}`)})}):En&&It?s.jsxs("div",{className:"amx-small",style:{marginTop:10,opacity:.9},children:["No path found in the current subgraph (",(or==null?void 0:or.assertions)??Di," assertions · ",(or==null?void 0:or.nodes)??bt.nodes.length," nodes ·"," ",(or==null?void 0:or.edges)??bt.edges.length," edges). Start reaches ",(or==null?void 0:or.reachableFromStart)??0," nodes.",x?s.jsx("div",{style:{marginTop:10},children:s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void gs(),disabled:$e,children:$e?"Expanding…":"Expand neighborhood"})}):null]}):s.jsx("div",{className:"amx-small",style:{marginTop:10},children:"(no path)"})]}),s.jsxs("details",{className:"amx-details",children:[s.jsx("summary",{children:"query"}),s.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[s.jsxs("label",{children:["query_text (semantic)",s.jsx("input",{value:it,onChange:R=>_t(R.target.value),placeholder:"e.g. emotion chip"})]}),s.jsxs("label",{children:["subject (exact)",s.jsx("input",{value:Tt,onChange:R=>Ot(R.target.value),placeholder:"e.g. ex:person-data"})]}),s.jsxs("label",{children:["predicate (exact)",s.jsx("input",{value:Wt,onChange:R=>nn(R.target.value),placeholder:"e.g. schema:about"})]}),s.jsxs("label",{children:["object (exact)",s.jsx("input",{value:Ft,onChange:R=>dn(R.target.value),placeholder:"e.g. ex:concept-emotion-chip"})]}),s.jsxs("label",{children:["min_score",s.jsx("input",{type:"number",step:"any",value:hn,onChange:R=>Qt(R.target.value),placeholder:"(auto)"})]}),s.jsxs("label",{children:["limit",s.jsx("input",{type:"number",min:"-1",step:"1",value:rn,onChange:R=>qt(R.target.value),placeholder:"0/-1 = unlimited (if supported)"})]})]})]}),s.jsxs("details",{className:"amx-details",children:[s.jsx("summary",{children:"advanced"}),s.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[s.jsxs("label",{children:["scope",s.jsxs("select",{value:Wn,onChange:R=>ae(Lg(R.target.value,Wn)),children:[s.jsx("option",{value:"run",children:"run"}),s.jsx("option",{value:"session",children:"session"}),s.jsx("option",{value:"global",children:"global"}),s.jsx("option",{value:"all",children:"all"})]})]}),s.jsxs("label",{children:["recall level",s.jsxs("select",{value:ke,onChange:R=>st(R.target.value||"standard"),children:[s.jsx("option",{value:"urgent",children:"urgent"}),s.jsx("option",{value:"standard",children:"standard"}),s.jsx("option",{value:"deep",children:"deep"})]})]}),s.jsxs("label",{children:["max_input_tokens",s.jsx("input",{type:"number",min:"0",step:"1",value:et,onChange:R=>Sn(R.target.value),placeholder:"(auto)"})]}),s.jsxs("label",{children:["model (budgeting)",s.jsx("input",{value:Nn,onChange:R=>In(R.target.value),placeholder:"qwen/qwen3-next-80b"})]})]})]}),s.jsxs("div",{className:"amx-actions",children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Fi(),disabled:!x||X,children:X?"Querying…":"Query store"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Ts,disabled:!O&&!ge&&!X,children:"Reset to step output"}),O?s.jsxs("span",{className:"amx-small",children:["showing: ",Y||"live query"]}):s.jsx("span",{className:"amx-small",children:"showing: step output"}),ge?s.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:ge}):null,ue?s.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:ue}):null]})]})]})]})]}),s.jsxs("div",{className:"amx-right",children:[s.jsxs("div",{className:"amx-panel",children:[s.jsx("h3",{children:"Details"}),s.jsx("div",{className:"amx-small",style:{marginBottom:8},children:"Derived from `memory_kg_query` packetization (max_input_tokens); safe to inject into an LLM system prompt."}),(()=>{const R=UN(Ds);return R?s.jsx("div",{className:"amx-small",style:{marginBottom:8,opacity:.9},children:R}):null})(),(()=>{const R=Ii;if(!R)return null;const ie=typeof R=="string"?R:Array.isArray(R)?R.map(je=>String(je)).join(" · "):JSON.stringify(R);return!ie||!ie.trim()?null:s.jsx("div",{className:"amx-small",style:{marginBottom:8,color:"rgba(255, 180, 90, 0.95)"},children:ie})})(),s.jsx("div",{className:"amx-small",style:{marginBottom:8,opacity:.9},children:(()=>{const R=(O==null?void 0:O.packets_version)??lr,ie=(O==null?void 0:O.packed_count)??gr,je=(O==null?void 0:O.dropped)??Ns,ze=(O==null?void 0:O.estimated_tokens)??ds,Ie=[];return typeof R=="number"&&Ie.push(`packets_v${R}`),typeof ie=="number"&&Ie.push(`packed=${ie}`),typeof je=="number"&&Ie.push(`dropped=${je}`),typeof ze=="number"&&Ie.push(`est_tokens=${ze}`),Ie.length?Ie.join(" · "):"No packetization stats (set max_input_tokens > 0)."})()}),s.jsx("div",{className:"amx-active-memory",children:HN(Tn||"(empty)",G)}),(()=>{const R=O!=null&&O.packets&&Array.isArray(O.packets)?O.packets:ir;return!Array.isArray(R)||R.length===0?null:s.jsxs("div",{style:{marginTop:10},children:[s.jsxs("button",{type:"button",className:"amx-btn",onClick:()=>pn(ie=>!ie),children:[hs?"Hide":"Show"," packets (",R.length,")"]}),hs?s.jsx("div",{className:"amx-list",style:{marginTop:10},children:R.slice(0,120).map((ie,je)=>{const ze=ie&&typeof ie=="object"&&!Array.isArray(ie)?ie:null,Ie=ze&&typeof ze.statement=="string"?ze.statement:typeof ie=="string"?ie:"",rt=ze&&(typeof ze.retrieval_score=="number"||typeof ze.retrieval_score=="string")?ze.retrieval_score:null,Et=ze&&typeof ze.observed_at=="string"?ze.observed_at:null;return s.jsxs("div",{className:"amx-item",children:[s.jsx("div",{className:"amx-mono",children:Ie||"(packet)"}),Et||rt!==null?s.jsxs("div",{className:"amx-small",children:[Et?`[${Et}]`:null,Et&&rt!==null?" ":null,rt!==null?`score:${rt}`:null]}):null]},je)})}):null]})})(),s.jsx("div",{style:{marginTop:14,marginBottom:12,borderTop:"1px solid rgba(255,255,255,0.08)"}}),s.jsx("div",{className:"amx-small",style:{marginBottom:8,fontWeight:700,opacity:.9},children:"Inspect"}),s.jsx("div",{className:"amx-small",style:{marginBottom:8},children:"Click a node or edge to inspect its assertions."}),qe?s.jsxs("div",{className:"amx-item",style:{marginBottom:10,display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsx("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:Vr.get(qe)||qe}),s.jsxs("div",{className:"amx-small",children:["kind=",Er.get(qe)||"entity"," · id=",qe]})]}),s.jsxs("div",{className:"amx-actions",children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Mn(qe),children:"Copy id"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:hr,children:"Focus"})]})]}):Qn&&Qn.source&&Qn.target?s.jsxs("div",{className:"amx-item",style:{marginBottom:10,display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:[Qn.source," —",String(Qn.label||((ns=Qn.data)==null?void 0:ns.predicateSummary)||"").trim()||"?","→ ",Qn.target]}),s.jsxs("div",{className:"amx-small",children:["edge_id=",Qn.id]})]}),s.jsxs("div",{className:"amx-actions",children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Mn(Qn.id),children:"Copy id"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:hr,children:"Fit"})]})]}):s.jsx("div",{className:"amx-small",style:{marginBottom:10,opacity:.9},children:"(no selection)"}),s.jsx("div",{className:"amx-list",children:ps.slice(0,80).map((R,ie)=>{const je=String(R.subject||"").trim(),ze=String(R.predicate||"").trim(),Ie=String(R.object||"").trim(),rt=Vr.get(je)||je,Et=Vr.get(Ie)||Ie,Nt=Er.get(je)||"entity",zt=Er.get(Ie)||"entity",Gt=Au(Nt),en=Au(zt),Zn=zu(R.observed_at),an=WN(R),ft=R.provenance&&typeof R.provenance=="object"&&!Array.isArray(R.provenance)?R.provenance:null,jn=ft&&typeof ft.span_id=="string"?ft.span_id.trim():"",An=ft&&typeof ft.writer_run_id=="string"?ft.writer_run_id.trim():"",yr=typeof R.owner_id=="string"?R.owner_id.trim():"",_s=An||yr,qs=!!((j||b)&&jn&&_s),Bi=!!(j&&An&&!jn),fa=qs||Bi;return s.jsxs("div",{className:"amx-item amx-triple-card",children:[s.jsxs("div",{className:"amx-triple-row",children:[s.jsx("button",{type:"button",className:"amx-term",style:{borderColor:Gt.stroke,background:Gt.bg},title:je,onClick:()=>{je&&(Cs(""),Jn(je))},children:rt||je||"(subject)"}),s.jsx("span",{className:"amx-arrow",children:"—"}),s.jsx("span",{className:"amx-predicate",title:ze,children:Ky(ze)||"(predicate)"}),s.jsx("span",{className:"amx-arrow",children:"→"}),s.jsx("button",{type:"button",className:"amx-term",style:{borderColor:en.stroke,background:en.bg},title:Ie,onClick:()=>{Ie&&(Cs(""),Jn(Ie))},children:Et||Ie||"(object)"})]}),s.jsxs("div",{className:"amx-triple-meta",children:[Zn?s.jsxs("span",{className:"amx-small",title:String(R.observed_at||""),children:["[",Zn,"]"]}):null,an?s.jsx("span",{className:"amx-small",children:an}):null]}),jn||An?s.jsxs("div",{className:"amx-triple-actions",children:[jn?s.jsxs("span",{className:"amx-small",children:["span:",jn]}):null,An?s.jsxs("span",{className:"amx-small",children:["run:",An]}):null,fa?s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>{if(qs&&jn&&_s){$r({run_id:_s,span_id:jn,assertion:R});return}Bi&&An&&$r({run_id:An,assertion:R})},children:"Open transcript"}):null]}):null]},ie)})})]}),s.jsxs("div",{className:"amx-panel",children:[s.jsx("h3",{children:"Transcript"}),s.jsx("div",{className:"amx-small",style:{marginBottom:8},children:"Pivot from a triple to its provenance transcript (span/note artifact, or run input fallback)."}),Zr.length?s.jsxs("div",{style:{marginBottom:12},children:[s.jsx("div",{className:"amx-small",style:{marginBottom:6,opacity:.85},children:"spans"}),s.jsx("div",{className:"amx-list",style:{maxHeight:320},children:Zr.slice(0,60).map(R=>s.jsxs("div",{className:"amx-item",style:{display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:["span:",R.span_id]}),s.jsxs("div",{className:"amx-small",children:["run_id=",R.span_run_id," · assertions=",R.count,R.last_observed_at_fmt?` · last=[${R.last_observed_at_fmt}]`:""]})]}),b||j?s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>$r({run_id:R.span_run_id,span_id:R.span_id,assertion:R.assertion}),children:"Open transcript"}):null]},`${R.span_run_id}|${R.span_id}`))})]}):null,j&&Ws.length?s.jsxs("div",{style:{marginBottom:12},children:[s.jsx("div",{className:"amx-small",style:{marginBottom:6,opacity:.85},children:"runs (fallback)"}),s.jsx("div",{className:"amx-list",style:{maxHeight:240},children:Ws.slice(0,40).map(R=>s.jsxs("div",{className:"amx-item",style:{display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[s.jsxs("div",{style:{minWidth:0},children:[s.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:["run:",R.run_id]}),s.jsxs("div",{className:"amx-small",children:["assertions=",R.count,R.last_observed_at_fmt?` · last=[${R.last_observed_at_fmt}]`:""]})]}),s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>$r({run_id:R.run_id,assertion:R.assertion}),children:"Open transcript"})]},R.run_id))})]}):null,!Zr.length&&!(j&&Ws.length)?s.jsx("div",{className:"amx-small",children:"(no provenance)"}):null]})]})]})}function jm(e,t="session"){const r=String(e||"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function wl(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=t.replace(/(\.\d{3})\d+/,"$1"),o=Date.parse(r);return Number.isFinite(o)?o:null}function sc(e){if(typeof e!="number"||!Number.isFinite(e))return"—";const t=new Date(e),r=t.getUTCFullYear(),o=String(t.getUTCMonth()+1).padStart(2,"0"),l=String(t.getUTCDate()).padStart(2,"0"),u=String(t.getUTCHours()).padStart(2,"0"),c=String(t.getUTCMinutes()).padStart(2,"0");return`${r}/${o}/${l} ${u}:${c}`}function YN(e){const t=String(e??"").trim();if(!t)return"";if(/^\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}$/.test(t))return t;const r=wl(t);return r!==null?sc(r):t}function Ch(e){const t=typeof e=="string"?e:String(e??"");return t?!t.includes("\\n")&&!t.includes("\\r")&&!t.includes("\\t")?t:t.replace(/\\r\\n/g,`
118
+ `).replace(/\\n/g,`
119
+ `).replace(/\\t/g," "):""}function Jy(e){return String(e??"").replace(/[*_`~]/g,"")}function Ud(e,t){const r=!!(t!=null&&t.strip_punct),o=Ch(e);let l=Jy(o).replace(/\s+/g," ").trim().toLowerCase();return r&&(l=l.replace(/[^\p{L}\p{N}\s]+/gu,"").replace(/\s+/g," ").trim()),l}function Wd(e,t){const r=String(t??"").trim();if(!r)return!1;const o=Ud(r,{strip_punct:!1});if(!o)return!1;if(Ud(String(e??""),{strip_punct:!1}).includes(o))return!0;const u=Ud(r,{strip_punct:!0});return u?Ud(String(e??""),{strip_punct:!0}).includes(u):!1}function Ig(e){const t=Ch(e).trim();if(!t)return[];const r=[],o=c=>{const d=String(c??"").replace(/\s+/g," ").trim();d&&(d.length<6||r.includes(d)||r.push(d))},l=t.search(/[`*_~]/);if(l>0){const c=t.slice(0,l);c.replace(/\s+/g," ").trim().length>=10&&o(c)}const u=[/`([^`]+)`/g,/\*\*([^*]+)\*\*/g,/__([^_]+)__/g,/\*([^*]+)\*/g,/_([^_]+)_/g];for(const c of u){let d;for(;(d=c.exec(t))!==null;){const h=String(d[1]??"").trim();h&&o(h)}}return o(Jy(t)),r}function XN(e){const t=String(e??"").replace(/\r\n/g,`
120
+ `).replace(/\r/g,`
121
+ `);if(!t)return null;const r=t.split(`
122
+ `);let o;const l=[],u=[];let c=null,d=[],h=!1;const _=()=>{if(!c)return;const v=d.join(`
123
+ `).trim();v&&u.push({role:c,lines:[v]}),c=null,d=[]};for(const v of r){const b=o?null:v.match(/^\s*created_at\s*=\s*(.+)\s*$/i);if(b&&b[1]){o=b[1].trim();continue}const j=v.match(/^\s*(USER|ASSISTANT|SYSTEM)\s*:\s*(.*)$/i);if(j){h=!0,_();const S=String(j[1]||"").trim().toLowerCase();c=S==="user"?"user":S==="assistant"?"assistant":"system";const M=String(j[2]??"");d=M?[M]:[];continue}c?d.push(v):l.push(v)}if(_(),!h||!u.length)return null;const g=l.join(`
124
+ `).trim(),x={messages:[]};o&&(x.created_at=o),g&&x.messages.push({role:"system",content:g});for(const v of u)x.messages.push({role:v.role,content:v.lines.join(`
125
+ `)});return x.messages.length?x:null}function Og(e,t){const r=String(e||""),o=String(t||"");return o>r?o:r}function Fg(e){const t=String((e==null?void 0:e.subject)||"").trim(),r=String((e==null?void 0:e.predicate)||"").trim(),o=String((e==null?void 0:e.object)||"").trim(),l=String((e==null?void 0:e.observed_at)||"").trim(),u=String((e==null?void 0:e.scope)||"").trim(),c=String((e==null?void 0:e.owner_id)||"").trim();return`${t}|${r}|${o}|${l}|${u}|${c}`}function KN(e){const t=String((e==null?void 0:e.observed_at)||"").trim(),r=String((e==null?void 0:e.subject)||"").trim(),o=String((e==null?void 0:e.predicate)||"").trim(),l=String((e==null?void 0:e.object)||"").trim(),u=String((e==null?void 0:e.scope)||"").trim(),c=String((e==null?void 0:e.owner_id)||"").trim(),d=[];u&&d.push(`scope=${u}`),c&&d.push(`owner=${c}`);const h=d.length?` (${d.join(", ")})`:"";return`${t?`[${t}] `:""}${r} --${o}--> ${l}${h}`}function JN({gateway:e,selected_run_id:t,selected_session_id:r}){const[o,l]=m.useState(String(t||"").trim()),[u,c]=m.useState(String(r||"").trim()),[d,h]=m.useState("all"),_=d==="all",[g,x]=m.useState(!0),[v,b]=m.useState(750),[j,S]=m.useState(5e3),[M,A]=m.useState([]),[D,O]=m.useState(void 0),[L,Y]=m.useState(""),[ne,X]=m.useState(!1),[J,ge]=m.useState([]),[me,$e]=m.useState(!1),[Me,ue]=m.useState(!1),[I,G]=m.useState(""),[H,Z]=m.useState(""),[N,z]=m.useState(""),[F,E]=m.useState(""),[U,te]=m.useState("artifact"),[re,he]=m.useState(null),[Ne,ce]=m.useState(""),[xe,Pe]=m.useState(null),oe=m.useRef(!1),be=m.useMemo(()=>{const ae=xe,ke=ae!=null&&ae.attributes&&typeof ae.attributes=="object"&&!Array.isArray(ae.attributes)?ae.attributes:null;return(ke&&typeof ke.evidence_quote=="string"?String(ke.evidence_quote):"").trim()},[xe]),Se=m.useMemo(()=>{const ae=re,ke=ae&&typeof ae=="object"&&!Array.isArray(ae)?ae:null,st=ke&&typeof ke.note=="string"?String(ke.note):"";return Ch(st).trim()},[re]),Ue=m.useMemo(()=>{const ae=re&&typeof re=="object"&&!Array.isArray(re)?re:null,ke=ae&&Array.isArray(ae.messages)?ae.messages:null;return Array.isArray(ke)?ke:null},[re]),De=m.useMemo(()=>{const ae=Se,ke=be;return!ae||!ke?!1:Wd(ae,ke)},[be,Se]),ct=m.useMemo(()=>{const ae=Ue,ke=be;if(!ae||!ke)return[];const st=[];for(let it=0;it<Math.min(ae.length,500);it++){const _t=ae[it],Tt=(_t==null?void 0:_t.content)==null?"":String(_t.content);Wd(Tt,ke)&&st.push(it)}return st},[be,Ue]),ut=m.useMemo(()=>new Set(ct),[ct]),Ae=ct.length?ct[0]:null,Re=m.useCallback(ae=>{const ke=document.getElementById(`source_msg_${ae}`);ke&&typeof ke.scrollIntoView=="function"&&ke.scrollIntoView({block:"center",behavior:"smooth"})},[]),dt=m.useCallback(()=>{const ae=document.getElementById("source_note_hit_0")||document.getElementById("source_note_msg_hit_0");ae&&typeof ae.scrollIntoView=="function"&&ae.scrollIntoView({block:"center",behavior:"smooth"})},[]);m.useEffect(()=>{if(me&&!(Me||I)&&!oe.current){if(Ae!==null){oe.current=!0,window.setTimeout(()=>Re(Ae),0);return}if(De){oe.current=!0,window.setTimeout(()=>dt(),0);return}}},[Re,dt,I,Ae,Me,De,me]);const jt=m.useRef(new Set),Mt=m.useRef(""),gt=m.useRef(null),_e=m.useRef(null);m.useEffect(()=>{l(String(t||"").trim())},[t]),m.useEffect(()=>{c(String(r||"").trim())},[r]);const Kt=m.useMemo(()=>{const ae=String(o||"").trim(),ke=String(u||"").trim();return`mindmap:${d}:${ae}:${ke}`},[o,u,d]),Te=m.useMemo(()=>{let ae=null,ke=null;for(const st of M){const it=wl(st==null?void 0:st.observed_at);it!==null&&(ae=ae===null?it:Math.min(ae,it),ke=ke===null?it:Math.max(ke,it))}return{min_ms:ae,max_ms:ke}},[M]),nt=1e3,se=m.useMemo(()=>{const ae=Te.min_ms,ke=Te.max_ms;if(typeof ae!="number"||typeof ke!="number"||!Number.isFinite(ae)||!Number.isFinite(ke))return null;if(ke<=ae)return{min_ms:ae,max_ms:ae,real_max_ms:ke};const st=ae+Math.ceil((ke-ae)/nt)*nt;return{min_ms:ae,max_ms:st,real_max_ms:ke}},[Te.max_ms,Te.min_ms]),[Oe,Jt]=m.useState(!0),[vt,on]=m.useState(null);m.useEffect(()=>{Oe&&se&&on(se.max_ms)},[Oe,se]);const bn=m.useMemo(()=>{const ae=typeof vt=="number"?vt:null;return ae===null?M:M.filter(ke=>{const st=wl(ke==null?void 0:ke.observed_at);return st===null?!0:st<=ae})},[M,vt]),un=m.useCallback((ae,ke)=>{const st=Array.isArray(ae)?ae:[],it=String(Mt.current||"").trim(),_t=new Set,Tt=[];let Ot="";for(const Wt of st){if(!Wt||typeof Wt!="object"||typeof Wt.subject!="string"||typeof Wt.predicate!="string"||typeof Wt.object!="string")continue;const nn=Fg(Wt);if(_t.has(nn))continue;_t.add(nn),Tt.push(Wt);const Ft=String(Wt.observed_at||"").trim();Ft&&(Ot=Og(Ot,Ft))}A(Tt),O(ke==null?void 0:ke.warnings),jt.current=_t,Mt.current=Ot||it},[]),yn=m.useCallback(async ae=>{const ke=jm(ae.scope,"session"),st=String(ae.subject||"").trim(),it=String(ae.predicate||"").trim(),_t=String(ae.object||"").trim(),Tt=String(ae.since||"").trim(),Ot=String(ae.until||"").trim(),Wt=String(ae.active_at||"").trim(),nn=String(ae.query_text||"").trim(),Ft=typeof ae.min_score=="number"&&Number.isFinite(ae.min_score)?Number(ae.min_score):void 0,dn=ae.order==="asc"?"asc":"desc",hn=typeof ae.limit=="number"&&Number.isFinite(ae.limit)?Number(ae.limit):0,Qt=String(o||"").trim(),rn=String(u||"").trim(),qt={scope:ke,all_owners:_,limit:hn,order:dn};st&&(qt.subject=st),it&&(qt.predicate=it),_t&&(qt.object=_t),Tt&&(qt.since=Tt),Ot&&(qt.until=Ot),Wt&&(qt.active_at=Wt),nn&&(qt.query_text=nn),typeof Ft=="number"&&(qt.min_score=Ft),_||(ke==="run"?Qt&&(qt.run_id=Qt):ke==="session"?rn?qt.session_id=rn:Qt&&(qt.run_id=Qt):ke==="all"&&(Qt?qt.run_id=Qt:rn&&(qt.session_id=rn)));try{const et=await e.kg_query(qt),Sn=Array.isArray(et==null?void 0:et.items)?et.items:[],Nn=et==null?void 0:et.warnings;return{ok:(et==null?void 0:et.ok)!==!1,count:Number((et==null?void 0:et.count)||Sn.length),items:Sn,warnings:Nn,raw:et}}catch(et){const Sn=et instanceof Error?et.message:String(et);if(Sn.includes("Run '")&&Sn.includes("not found")&&!rn&&(ke==="session"||ke==="all")&&Qt){const In=await e.kg_query({...qt,run_id:void 0,session_id:Qt}),$n=Array.isArray(In==null?void 0:In.items)?In.items:[],Cr=In==null?void 0:In.warnings;return{ok:(In==null?void 0:In.ok)!==!1,count:Number((In==null?void 0:In.count)||$n.length),items:$n,warnings:Cr,raw:In}}throw new Error(Sn||"KG query failed")}},[_,e,o,u]),Pn=m.useCallback(async ae=>{var it;const ke=String(ae.run_id||"").trim(),st=String(ae.span_id||"").trim();if(!(!ke||!st)){$e(!0),ue(!0),G(""),z(ke),E(st),te("artifact"),Z(`source span:${st}`),he(null),ce(""),Pe(ae.assertion&&typeof ae.assertion=="object"?ae.assertion:null),oe.current=!1;try{const _t=[ke],Tt=typeof((it=ae.assertion)==null?void 0:it.owner_id)=="string"?String(ae.assertion.owner_id).trim():"";Tt&&Tt!==ke&&_t.push(Tt);let Ot=null,Wt=null;for(const nn of _t)try{Wt=await(await e.download_run_artifact_content(nn,st)).text(),nn!==ke&&z(nn);break}catch(Ft){Ot=Ft instanceof Error?Ft.message:String(Ft)}if(Wt==null)throw new Error(Ot||"Failed to load source span");ce(Wt);try{const nn=JSON.parse(Wt);he(nn)}catch{he(null)}}catch(_t){const Tt=_t instanceof Error?_t.message:String(_t);G(Tt||"Failed to load source span")}finally{ue(!1)}}},[e]),En=m.useCallback(async ae=>{const ke=String(ae.run_id||"").trim();if(!ke)return null;try{const st=await e.list_run_artifacts(ke,{limit:200}),_t=(Array.isArray(st==null?void 0:st.items)?st.items:[]).map(Ft=>{const dn=typeof(Ft==null?void 0:Ft.artifact_id)=="string"?String(Ft.artifact_id).trim():"",hn=Ft!=null&&Ft.tags&&typeof Ft.tags=="object"&&!Array.isArray(Ft.tags)?Ft.tags:null,Qt=hn&&typeof hn.kind=="string"?String(hn.kind).trim():"";return{artifact_id:dn,kind:Qt}}).filter(Ft=>!!(Ft.artifact_id&&(Ft.kind==="conversation_span"||Ft.kind==="memory_note")));if(!_t.length)return null;if(_t.length===1)return _t[0].artifact_id;const Tt=ae.assertion,Ot=Tt!=null&&Tt.attributes&&typeof Tt.attributes=="object"&&!Array.isArray(Tt.attributes)?Tt.attributes:null,nn=(Ot&&typeof Ot.evidence_quote=="string"?String(Ot.evidence_quote):"").trim();if(!nn)return null;for(const Ft of _t.slice(0,10))try{const hn=await(await e.download_run_artifact_content(ke,Ft.artifact_id)).text(),Qt=JSON.parse(hn);if(Qt&&typeof Qt=="object"){const rn=typeof Qt.note=="string"?String(Qt.note):"";if(rn&&rn.includes(nn))return Ft.artifact_id;const qt=Array.isArray(Qt.messages)?Qt.messages:null;if(qt){for(const et of qt.slice(0,200))if(((et==null?void 0:et.content)==null?"":String(et.content)).includes(nn))return Ft.artifact_id}}}catch{}}catch{}return null},[e]),sr=m.useCallback(async ae=>{const ke=String(ae.run_id||"").trim();if(ke){$e(!0),ue(!0),G(""),z(ke),E(""),te("run_input"),Z(`transcript run:${ke}`),he(null),ce(""),Pe(ae.assertion&&typeof ae.assertion=="object"?ae.assertion:null),oe.current=!1;try{const st=await En({run_id:ke,assertion:ae.assertion});if(st){await Pn({run_id:ke,span_id:st,assertion:ae.assertion});return}const it=await e.get_run_input_data(ke),_t=it&&typeof it=="object"&&!Array.isArray(it)?it.input_data:null,Tt={kind:"run_input_data",run_id:ke};if(it&&typeof(it==null?void 0:it.workflow_id)=="string"&&(Tt.workflow_id=String(it.workflow_id)),_t&&typeof _t=="object"&&!Array.isArray(_t)){const Ot=_t.context,nn=(Ot&&typeof Ot=="object"&&Array.isArray(Ot.messages)?Ot.messages:null)||(Array.isArray(_t.messages)?_t.messages:null);Array.isArray(nn)&&(Tt.messages=nn);const Ft=["text","prompt","task","message"];for(const dn of Ft){const hn=_t[dn];if(typeof hn=="string"&&hn.trim()){Tt.note=hn.trim();break}}Tt.input_data=_t}!Tt.messages&&!Tt.note&&(Tt.note=JSON.stringify(_t??it??{},null,2));try{const Ot=await e.get_run(ke),Wt=Ot&&typeof(Ot==null?void 0:Ot.created_at)=="string"?String(Ot.created_at):"";Wt&&(Tt.created_at=Wt)}catch{}he(Tt),ce(JSON.stringify(it,null,2))}catch(st){const it=st instanceof Error?st.message:String(st);G(it||"Failed to load run input transcript")}finally{ue(!1)}}},[e,Pn,En]),It=m.useCallback(async()=>{Y(""),X(!0);try{const ae=d==="all"?"all":d,ke=await yn({scope:ae,limit:0,order:"desc"});un(ke.items||[],{warnings:ke.warnings}),gt.current={scope:ae}}catch(ae){const ke=ae instanceof Error?ae.message:String(ae);Y(ke||"Load failed")}finally{X(!1)}},[yn,un,d]);m.useEffect(()=>{M.length||It()},[]);const kr=m.useCallback(async ae=>{const ke=jm(ae.scope,"session");return _e.current=ae,await yn({scope:ke,subject:ae.subject,predicate:ae.predicate,object:ae.object,query_text:ae.query_text,min_score:ae.min_score,since:ae.since,until:ae.until,active_at:ae.active_at,limit:typeof ae.limit=="number"?ae.limit:0,order:"desc"})},[yn]),Nr=m.useCallback((ae,ke)=>{var st;if((ke==null?void 0:ke.kind)==="live query"){const it=_e.current;it&&(gt.current={scope:jm(it.scope,"session"),subject:typeof it.subject=="string"?it.subject:void 0,predicate:typeof it.predicate=="string"?it.predicate:void 0,object:typeof it.object=="string"?it.object:void 0})}un(ae,{warnings:(st=ke==null?void 0:ke.result)==null?void 0:st.warnings})},[un]),Wn=m.useCallback(async()=>{const ae=gt.current;if(!ae)return;const ke=String(Mt.current||"").trim(),st=await yn({scope:ae.scope,subject:ae.subject,predicate:ae.predicate,object:ae.object,since:ke||void 0,order:"asc",limit:0}),it=Array.isArray(st.items)?st.items:[];if(!it.length)return;const Tt=Date.now()+Math.max(250,Math.min(2e4,j)),Ot=jt.current,Wt=[],nn=[];let Ft=String(Mt.current||"").trim();for(const dn of it){if(!dn||typeof dn!="object"||typeof dn.subject!="string"||typeof dn.predicate!="string"||typeof dn.object!="string")continue;const hn=Fg(dn);if(Ot.has(hn))continue;Ot.add(hn),Wt.push(dn),nn.push({id:hn,assertion:dn,expires_at_ms:Tt});const Qt=String(dn.observed_at||"").trim();Qt&&(Ft=Og(Ft,Qt))}Wt.length&&(Mt.current=Ft,A(dn=>{const hn=dn.concat(Wt);return hn.sort((Qt,rn)=>String((rn==null?void 0:rn.observed_at)||"").localeCompare(String((Qt==null?void 0:Qt.observed_at)||""))),hn}),ge(dn=>{const hn=dn.concat(nn);return hn.sort((Qt,rn)=>rn.expires_at_ms-Qt.expires_at_ms),hn.slice(0,30)}))},[j,yn]);return m.useEffect(()=>{if(!g)return;let ae=!1,ke=null;const st=async()=>{if(!ae){try{await Wn()}catch{}ae||(ke=window.setTimeout(()=>void st(),Math.max(250,Math.min(6e4,v))))}};return st(),()=>{ae=!0,ke!==null&&window.clearTimeout(ke)}},[g,v,Wn]),m.useEffect(()=>{if(!J.length)return;const ae=window.setInterval(()=>{const ke=Date.now();ge(st=>st.filter(it=>it.expires_at_ms>ke))},250);return()=>window.clearInterval(ae)},[J.length]),s.jsxs("div",{className:"mindmap_root",children:[s.jsxs("div",{className:"mindmap_bar",children:[s.jsx("button",{className:"btn",onClick:()=>void It(),disabled:ne,children:ne?"Loading…":"Load snapshot"}),s.jsxs("label",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",children:"source"}),s.jsxs("select",{value:d,onChange:ae=>{const ke=String(ae.target.value||"").trim();(ke==="all"||ke==="global"||ke==="session"||ke==="run")&&h(ke)},children:[s.jsx("option",{value:"all",children:"all memory"}),s.jsx("option",{value:"global",children:"global"}),s.jsx("option",{value:"session",children:"session"}),s.jsx("option",{value:"run",children:"run"})]})]}),s.jsxs("label",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",children:"live"}),s.jsx("input",{type:"checkbox",checked:g,onChange:ae=>x(!!ae.target.checked)})]}),d==="session"?s.jsxs("label",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",children:"session_id"}),s.jsx("input",{className:"mono",value:u,onChange:ae=>c(String(ae.target.value||"")),placeholder:"(required)"})]}):null,d==="run"?s.jsxs("label",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",children:"run_id"}),s.jsx("input",{className:"mono",value:o,onChange:ae=>l(String(ae.target.value||"")),placeholder:"(required)"})]}):null,s.jsxs("details",{className:"mindmap_details",children:[s.jsx("summary",{className:"mono muted",children:"advanced"}),s.jsx("div",{className:"mindmap_advanced",children:s.jsxs("div",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",style:{width:84},children:"poll_ms"}),s.jsx("input",{type:"number",min:250,max:6e4,step:50,value:v,onChange:ae=>b(Math.max(250,Number(ae.target.value||0)||750))}),s.jsx("span",{className:"mono muted",children:"highlight_ms"}),s.jsx("input",{type:"number",min:250,max:2e4,step:250,value:j,onChange:ae=>S(Math.max(250,Number(ae.target.value||0)||5e3))})]})})]})]}),L?s.jsx("div",{className:"mindmap_error mono",children:L}):null,s.jsxs("div",{className:"mindmap_explorer",children:[s.jsx(GN,{title:"mindmap",resetKey:Kt,queryMode:"replace",items:bn,warnings:D,onQuery:kr,onItemsReplace:Nr,onOpenSpan:({run_id:ae,span_id:ke,assertion:st})=>{Pn({run_id:ae,span_id:ke,assertion:st})},onOpenTranscript:({run_id:ae,span_id:ke,assertion:st})=>{const it=String(ae||"").trim(),_t=typeof ke=="string"?String(ke).trim():"";it&&(_t?Pn({run_id:it,span_id:_t,assertion:st}):sr({run_id:it,assertion:st}))}},Kt),J.length?s.jsxs("div",{className:"mindmap_recent mindmap_overlay mindmap_overlay_recent",children:[s.jsx("div",{className:"mindmap_recent_title mono muted",children:"new assertions"}),s.jsx("div",{className:"mindmap_recent_list",children:J.slice().sort((ae,ke)=>ke.expires_at_ms-ae.expires_at_ms).slice(0,12).map(ae=>s.jsx("div",{className:"mindmap_recent_item mono",children:KN(ae.assertion)},ae.id))})]}):null,se?s.jsx("div",{className:"mindmap_timeline mindmap_overlay mindmap_overlay_timeline",children:s.jsxs("div",{className:"mindmap_timeline_row",children:[s.jsx("div",{className:"mindmap_timeline_label mono muted",children:sc(Math.min(typeof vt=="number"?vt:se.max_ms,se.real_max_ms))}),s.jsx("input",{className:"mindmap_slider",type:"range",min:se.min_ms,max:se.max_ms,step:nt,value:typeof vt=="number"?vt:se.max_ms,onChange:ae=>{const ke=Number(ae.target.value||0);on(ke),Jt(ke>=se.max_ms)}}),s.jsxs("div",{className:"mindmap_timeline_counts mono muted",children:[bn.length.toLocaleString(),"/",M.length.toLocaleString()]})]})}):null]}),s.jsxs(Li,{open:me,title:H||"source",onClose:()=>{$e(!1)},children:[Me?s.jsx("div",{className:"mono muted",children:"Loading…"}):null,I?s.jsx("div",{className:"mindmap_error mono",children:I}):null,!Me&&!I?s.jsxs("div",{className:"source_span",children:[(()=>{const ae=xe;if(!ae)return null;const ke=String(ae.subject||"").trim(),st=String(ae.predicate||"").trim(),it=String(ae.object||"").trim(),_t=sc(wl(ae.observed_at)),Tt=ae.attributes&&typeof ae.attributes=="object"&&!Array.isArray(ae.attributes)?ae.attributes:null,Ot=Tt&&typeof Tt.evidence_quote=="string"?String(Tt.evidence_quote):"",Wt=Tt&&typeof Tt.original_context=="string"?String(Tt.original_context):"";return s.jsxs("div",{className:"source_header",children:[s.jsxs("div",{className:"mono source_triple",title:`${ke} --${st}--> ${it}`,children:[ke," ",s.jsxs("span",{className:"muted",children:["—",st,"→"]})," ",it," ",_t?s.jsxs("span",{className:"muted",children:["[",_t,"]"]}):null]}),Ot?s.jsxs("div",{className:"source_evidence",children:[s.jsx("div",{className:"mono muted",style:{fontSize:11,marginBottom:6},children:"evidence_quote"}),s.jsx("pre",{className:"mono source_evidence_quote",children:Ot}),Wt?s.jsxs("details",{className:"source_evidence_more",children:[s.jsx("summary",{className:"mono muted",children:"original_context"}),s.jsx("pre",{className:"mono source_evidence_quote",children:Wt})]}):null]}):null]})})(),s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["run_id=",N," · ",U==="artifact"?`span_id=${F}`:"source=input_data"]}),s.jsxs("div",{className:"source_actions",children:[Ae!==null?s.jsx("button",{className:"btn",onClick:()=>Re(Ae),children:"Jump to evidence"}):null,Ae===null&&De?s.jsx("button",{className:"btn",onClick:()=>dt(),children:"Jump to evidence"}):null]}),(()=>{const ae=re,ke=ae&&typeof ae=="object"&&!Array.isArray(ae)?ae:null,st=Ue,it=Se,_t=ke&&typeof ke.created_at=="string"?String(ke.created_at):"",Tt=_t?wl(_t):null,Ot=Tt!==null?sc(Tt):_t,Wt=ke&&ke.span&&typeof ke.span=="object"&&!Array.isArray(ke.span)?ke.span:null,nn=Wt&&typeof Wt.from_timestamp=="string"?String(Wt.from_timestamp):"",Ft=Wt&&typeof Wt.to_timestamp=="string"?String(Wt.to_timestamp):"",dn=nn?wl(nn):null,hn=Ft?wl(Ft):null,Qt=dn!==null&&hn!==null?`${sc(dn)} → ${sc(hn)}`:"";if(it){const rn=XN(it);if(rn){const qt=be,et=qt?rn.messages.findIndex($n=>Wd($n.content,qt)):-1,Sn=qt?Ig(qt):[],Nn=rn.created_at||_t,In=Nn?YN(Nn):_t?Ot:"";return s.jsx("div",{className:"source_chat",children:rn.messages.map(($n,Cr)=>{const ir=$n.role,lr=!!(qt&&Wd($n.content,qt)),gr=ir==="user"?"USER":ir==="assistant"?"ASSISTANT":"SYSTEM";return s.jsxs("div",{id:Cr===et?"source_note_msg_hit_0":void 0,className:`source_msg source_${ir} ${lr?"source_match":""}`,children:[s.jsxs("div",{className:"source_msg_meta mono muted",children:[s.jsxs("span",{children:["#",Cr+1," · ",gr,lr?s.jsx("span",{className:"source_match_badge",children:"evidence"}):null]}),In?s.jsx("span",{title:Nn||"",children:In}):null]}),s.jsx("div",{className:"source_msg_body",children:s.jsx(co,{text:$n.content,highlights:lr&&Sn.length?Sn:void 0,highlightClassName:"source_note_hit",highlightId:Cr===et?"source_note_hit_0":void 0})})]},`note_msg:${Cr}`)})})}return s.jsxs("div",{className:"source_note",children:[_t?s.jsx("div",{className:"mono muted",style:{marginBottom:10},children:s.jsxs("span",{title:_t,children:["created_at=",Ot]})}):null,s.jsx(co,{text:it,highlights:be?Ig(be):void 0,highlightClassName:"source_note_hit",highlightId:"source_note_hit_0"})]})}if(st){const rn=new Map;for(const et of st){const Sn=typeof(et==null?void 0:et.role)=="string"?String(et.role):"unknown";rn.set(Sn,(rn.get(Sn)||0)+1)}const qt=Array.from(rn.entries()).sort((et,Sn)=>Sn[1]-et[1]||et[0].localeCompare(Sn[0])).map(([et,Sn])=>`${et}×${Sn}`).join(" · ");return s.jsxs("div",{className:"source_chat",children:[_t?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:[s.jsxs("span",{title:_t,children:["created_at=",Ot]})," · messages=",st.length]}):null,Qt?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["span=",Qt]}):null,qt?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["participants: ",qt]}):null,st.slice(0,200).map((et,Sn)=>{var Ns,ds;const Nn=typeof(et==null?void 0:et.role)=="string"?String(et.role):"unknown",In=(et==null?void 0:et.content)==null?"":String(et.content),$n=typeof(et==null?void 0:et.timestamp)=="string"?String(et.timestamp):"",Cr=$n?wl($n):null,ir=Cr!==null?sc(Cr):$n,lr=typeof(et==null?void 0:et.message_id)=="string"?String(et.message_id):typeof((Ns=et==null?void 0:et.metadata)==null?void 0:Ns.message_id)=="string"?String(et.metadata.message_id):typeof((ds=et==null?void 0:et.metadata)==null?void 0:ds.id)=="string"?String(et.metadata.id):"",gr=ut.has(Sn);return s.jsxs("div",{id:`source_msg_${Sn}`,className:`source_msg source_${Nn} ${gr?"source_match":""}`,children:[s.jsxs("div",{className:"source_msg_meta mono muted",children:[s.jsxs("span",{children:["#",Sn+1," · ",Nn,gr?s.jsx("span",{className:"source_match_badge",children:"evidence"}):null,lr?s.jsx("span",{className:"source_msg_id",children:lr}):null]}),$n?s.jsx("span",{title:$n,children:ir}):null]}),s.jsx("div",{className:"source_msg_body",children:s.jsx(co,{text:In})})]},Sn)})]})}return s.jsx("pre",{className:"mono source_raw",style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:(typeof ae=="string"?ae:Ne)||"(empty)"})})()]}):null]})]})}function km(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function QN(e){const t=String(e||"").trim().toLowerCase();return t==="running"?{cls:"ok",label:"running"}:t==="stopped"?{cls:"muted",label:"stopped"}:t.includes("restart")?{cls:"warn",label:t}:t.includes("error")||t.includes("failed")?{cls:"danger",label:t||"error"}:{cls:"warn",label:t||"unknown"}}function ZN(e){const t=r=>{const o=String((r==null?void 0:r.id)||"").trim();return o==="gateway"?0:o==="build"?1:10};return[...e||[]].sort((r,o)=>{const l=t(r),u=t(o);if(l!==u)return l-u;const c=String((r==null?void 0:r.label)||(r==null?void 0:r.id)||"").toLowerCase(),d=String((o==null?void 0:o.label)||(o==null?void 0:o.id)||"").toLowerCase();return c<d?-1:c>d?1:0})}function e1(e){const t=String(e||"").trim().toLowerCase();return t==="override"?{cls:"ok",label:"override"}:t.startsWith("inherited")?{cls:"info",label:t}:t==="unset"?{cls:"warn",label:"unset"}:!t||t==="missing"?{cls:"muted",label:"missing"}:{cls:"muted",label:t}}function t1({gateway:e,gateway_connected:t}){const[r,o]=m.useState("processes"),[l,u]=m.useState(null),[c,d]=m.useState([]),[h,_]=m.useState(!1),[g,x]=m.useState(""),[v,b]=m.useState(!1),[j,S]=m.useState(null),[M,A]=m.useState([]),[D,O]=m.useState(!1),[L,Y]=m.useState(""),[ne,X]=m.useState({}),[J,ge]=m.useState(!1),[me,$e]=m.useState(null),[Me,ue]=m.useState(""),[I,G]=m.useState(""),[H,Z]=m.useState(!1),N=m.useRef(null),z=m.useMemo(()=>ZN(c),[c]),F=m.useCallback(async()=>{if(t){_(!0),x("");try{const oe=await e.list_processes();u(!!(oe!=null&&oe.enabled));const be=Array.isArray(oe==null?void 0:oe.processes)?oe.processes:[];d(be)}catch(oe){x(String((oe==null?void 0:oe.message)||oe||"Failed to list processes"))}finally{_(!1)}}},[e,t]),E=m.useCallback(async()=>{if(t){O(!0),Y("");try{const oe=await e.list_process_env_vars();S(!!(oe!=null&&oe.enabled));const be=Array.isArray(oe==null?void 0:oe.vars)?oe.vars:[];A(be);const Se=String((oe==null?void 0:oe.error)||"").trim();Se&&Y(Se)}catch(oe){Y(String((oe==null?void 0:oe.message)||oe||"Failed to list env vars"))}finally{O(!1)}}},[e,t]),U=m.useCallback(async()=>{if(!t)return;const oe=me;if(oe){Z(!0);try{const be=await e.process_log_tail(String(oe.id||""),{max_bytes:16e4}),Se=String((be==null?void 0:be.content)||""),Ue=typeof(be==null?void 0:be.bytes)=="number"?Number(be.bytes):0,De=!!(be!=null&&be.truncated),ct=String((be==null?void 0:be.log_relpath)||"");ue(Se),G(`${Ue.toLocaleString()} bytes${De?" (tail)":""}${ct?` • ${ct}`:""}`)}catch(be){ue(""),G(""),x(String((be==null?void 0:be.message)||be||"Failed to read logs"))}finally{Z(!1)}}},[e,t,me]),te=m.useCallback(async oe=>{$e(oe),ge(!0)},[]),re=m.useCallback(()=>{ge(!1),$e(null),ue(""),G("")},[]);m.useEffect(()=>{t&&F()},[t,F]),m.useEffect(()=>{if(!t||r!=="processes"||!v)return;const oe=window.setInterval(()=>void F(),2e3);return()=>window.clearInterval(oe)},[t,r,v,F]),m.useEffect(()=>{t&&r==="env_vars"&&E()},[t,r,E]),m.useEffect(()=>{if(t&&J)return U(),N.current&&window.clearInterval(N.current),N.current=window.setInterval(()=>void U(),1500),()=>{N.current&&window.clearInterval(N.current),N.current=null}},[t,J,U]);async function he(oe,be){x("");try{be==="start"?await e.start_process(oe.id):be==="stop"?await e.stop_process(oe.id):be==="restart"?await e.restart_process(oe.id):be==="redeploy"&&await e.redeploy_process(oe.id),await F()}catch(Se){x(String((Se==null?void 0:Se.message)||Se||`Failed to ${be}`))}}async function Ne(oe){const be=String(oe||"").trim();if(be){Y("");try{const Se=String((ne==null?void 0:ne[be])??""),Ue=await e.update_process_env_vars({set:{[be]:Se}});S(!!(Ue!=null&&Ue.enabled)),A(Array.isArray(Ue==null?void 0:Ue.vars)?Ue.vars:[]),X(ct=>({...ct||{},[be]:""}));const De=String((Ue==null?void 0:Ue.error)||"").trim();De&&Y(De)}catch(Se){Y(String((Se==null?void 0:Se.message)||Se||"Failed to set env var"))}}}async function ce(oe){const be=String(oe||"").trim();if(be){Y("");try{const Se=await e.update_process_env_vars({unset:[be]});S(!!(Se!=null&&Se.enabled)),A(Array.isArray(Se==null?void 0:Se.vars)?Se.vars:[]),X(De=>({...De||{},[be]:""}));const Ue=String((Se==null?void 0:Se.error)||"").trim();Ue&&Y(Ue)}catch(Se){Y(String((Se==null?void 0:Se.message)||Se||"Failed to unset env var"))}}}const xe=l===null?"…":l?"enabled":"disabled",Pe=j===null?"…":j?"enabled":"disabled";return s.jsx("div",{className:"page page_scroll",children:s.jsxs("div",{className:"page_inner constrained",children:[s.jsxs("div",{className:"card",children:[s.jsxs("div",{className:"title",children:[s.jsx("h1",{children:"Process manager"}),s.jsxs("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap",marginTop:"10px"},children:[s.jsx("button",{className:`nav_tab ${r==="processes"?"active":""}`,onClick:()=>o("processes"),children:"Processes"}),s.jsx("button",{className:`nav_tab ${r==="env_vars"?"active":""}`,onClick:()=>o("env_vars"),children:"Env vars"})]})]}),t?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mono muted",style:{marginTop:"6px"},children:["Process manager: ",xe]}),l===!1?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"hint"}),s.jsx("span",{className:"mono",children:"server"})]}),s.jsxs("div",{className:"body mono",children:["Set ",s.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_ENABLE_PROCESS_MANAGER=1"})," and"," ",s.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_TRIAGE_REPO_ROOT"})," on the gateway host."]})]}):null,r==="processes"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[s.jsxs("button",{className:`btn btn_icon ${h?"is_loading":""}`,onClick:()=>void F(),disabled:!t||h,children:[s.jsx(Gn,{name:"refresh",size:16}),h?"Refreshing…":"Refresh"]}),s.jsxs("label",{className:"btn",style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[s.jsx("input",{type:"checkbox",checked:v,onChange:oe=>b(!!oe.target.checked)}),"auto"]})]}),g?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:"processes"})]}),s.jsx("div",{className:"body mono",children:g})]}):null,s.jsx("div",{style:{marginTop:"12px"},children:z.map(oe=>{const be=String(oe.id||"").trim(),Se=String(oe.label||be).trim()||be,Ue=QN(String(oe.status||"")),De=Array.isArray(oe==null?void 0:oe.actions)?oe.actions.map(se=>String(se||"").trim()):[],ct=De.includes("start"),ut=De.includes("stop"),Ae=De.includes("restart"),Re=De.includes("redeploy"),dt=De.includes("logs"),jt=typeof(oe==null?void 0:oe.pid)=="number"?Number(oe.pid):null,Mt=String((oe==null?void 0:oe.url)||"").trim(),gt=String((oe==null?void 0:oe.description)||"").trim(),_e=String((oe==null?void 0:oe.last_error)||"").trim(),Kt=typeof(oe==null?void 0:oe.exit_code)=="number"?Number(oe.exit_code):null,Te=[];jt&&Te.push(`pid ${jt}`),Kt!==null&&Te.push(`exit ${Kt}`),Mt&&Te.push(Mt);const nt=Te.join(" • ");return s.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:be}),s.jsx("span",{className:`tag ${Ue.cls}`,children:Ue.label})]}),s.jsxs("div",{className:"body",children:[s.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:"10px",flexWrap:"wrap"},children:s.jsxs("div",{children:[s.jsx("div",{style:{fontWeight:700},children:Se}),gt?s.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:km(gt,220)}):null,nt?s.jsx("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:nt}):null]})}),_e?s.jsx("div",{className:"mono",style:{marginTop:"8px",color:"var(--error)"},children:km(_e,360)}):null,s.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[ct?s.jsx("button",{className:"btn primary",onClick:()=>void he(oe,"start"),disabled:h,children:"Start"}):null,ut?s.jsx("button",{className:"btn danger",onClick:()=>void he(oe,"stop"),disabled:h,children:"Stop"}):null,Ae?s.jsx("button",{className:"btn",onClick:()=>void he(oe,"restart"),disabled:h,children:"Restart"}):null,Re?s.jsx("button",{className:"btn",onClick:()=>void he(oe,"redeploy"),disabled:h,children:"Redeploy"}):null,dt?s.jsx("button",{className:"btn",onClick:()=>void te(oe),disabled:h,children:"Logs"}):null]})]})]},be)})})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Write-only: the gateway will never return env var values to the browser. Use this for integration config (email, notifications, …)."}),s.jsxs("div",{className:"mono muted",style:{marginTop:"6px"},children:["Env vars: ",Pe]}),s.jsx("div",{className:"actions",style:{marginTop:"10px"},children:s.jsxs("button",{className:`btn btn_icon ${D?"is_loading":""}`,onClick:()=>void E(),disabled:!t||D,children:[s.jsx(Gn,{name:"refresh",size:16}),D?"Refreshing…":"Refresh"]})}),L?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:"env"})]}),s.jsx("div",{className:"body mono",children:L})]}):null,s.jsxs("div",{style:{marginTop:"12px"},children:[M.map(oe=>{const be=String((oe==null?void 0:oe.key)||"").trim();if(!be)return null;const Se=String((oe==null?void 0:oe.label)||be).trim()||be,Ue=String((oe==null?void 0:oe.description)||"").trim(),De=String((oe==null?void 0:oe.source)||"").trim(),ct=!!(oe!=null&&oe.secret),ut=String((oe==null?void 0:oe.updated_at)||"").trim(),Ae=e1(De),Re=String((ne==null?void 0:ne[be])??"");return s.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:be}),s.jsx("span",{className:`chip mono ${Ae.cls}`,children:Ae.label})]}),s.jsxs("div",{className:"body",children:[s.jsx("div",{style:{fontWeight:700},children:Se}),Ue?s.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:km(Ue,280)}):null,ut?s.jsxs("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:["updated ",ut]}):null,s.jsxs("div",{className:"actions",style:{marginTop:"10px",alignItems:"center"},children:[s.jsx("input",{className:"input",value:Re,onChange:dt=>X(jt=>({...jt||{},[be]:String(dt.target.value||"")})),placeholder:ct?"••••••••":"value",type:ct?"password":"text",style:{flex:"1 1 320px",minWidth:"220px"},autoComplete:"off",spellCheck:!1}),s.jsx("button",{className:"btn primary",onClick:()=>void Ne(be),disabled:D,children:"Set"}),s.jsx("button",{className:"btn",onClick:()=>void ce(be),disabled:D,children:"Unset"})]})]})]},`env:${be}`)}),M.length?null:s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No env vars available (process manager must be enabled)."})]})]})]}):s.jsxs("div",{className:"mono muted",children:["Not connected. Open"," ",s.jsx("span",{className:"mono",style:{opacity:.9},children:"Settings"})," ","to connect to a gateway."]})]}),J&&me?s.jsxs(Li,{open:J,title:`${String(me.label||me.id||"logs").trim()||"Logs"}`,onClose:re,children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:I}),s.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[s.jsxs("button",{className:`btn btn_icon ${H?"is_loading":""}`,onClick:()=>void U(),disabled:H,children:[s.jsx(Gn,{name:"refresh",size:16}),H?"Refreshing…":"Refresh"]}),s.jsxs("button",{className:"btn btn_icon",onClick:()=>{try{navigator.clipboard.writeText(Me||"")}catch{}},disabled:!Me,children:[s.jsx(Gn,{name:"copy",size:16}),"Copy"]})]}),s.jsx("pre",{className:"mono",style:{marginTop:"10px",padding:"10px",borderRadius:"10px",border:"1px solid rgba(255,255,255,0.12)",background:"rgba(0,0,0,0.22)",overflowX:"auto",maxHeight:"55vh",whiteSpace:"pre-wrap"},children:Me||"(no logs yet)"})]}):null]})})}function Dg(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function Ru(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function Nm(e){const t=String(e||"").split(/[,\n]/g).map(r=>r.trim()).filter(Boolean);return t.length<=1?t[0]||"":t}function n1(e){const t=e.gateway,[r,o]=m.useState([]),[l,u]=m.useState(""),[c,d]=m.useState(""),[h,_]=m.useState(""),[g,x]=m.useState("7d"),[v,b]=m.useState("unread"),[j,S]=m.useState(25),[M,A]=m.useState(!1),[D,O]=m.useState(!1),[L,Y]=m.useState(!1),[ne,X]=m.useState(!1),[J,ge]=m.useState(""),[me,$e]=m.useState(""),[Me,ue]=m.useState(""),[I,G]=m.useState([]),[H,Z]=m.useState(""),[N,z]=m.useState(null),[F,E]=m.useState(!1),[U,te]=m.useState(""),[re,he]=m.useState(""),[Ne,ce]=m.useState(""),[xe,Pe]=m.useState(""),[oe,be]=m.useState(""),Se=e.enabled,Ue=m.useMemo(()=>(Array.isArray(r)?r:[]).map(Oe=>({account:String((Oe==null?void 0:Oe.account)||"").trim(),can_read:(Oe==null?void 0:Oe.can_read)!==!1,can_send:(Oe==null?void 0:Oe.can_send)!==!1,label:""})).filter(Oe=>!!Oe.account),[r]),De=m.useMemo(()=>{const se=String(c||"").trim();return se&&Ue.find(Oe=>Oe.account===se)||null},[Ue,c]),ct=!!(De!=null&&De.can_read),ut=!!(De!=null&&De.can_send),Ae=m.useMemo(()=>Ue.map(se=>{const Oe=se.can_read?se.can_send?"":" (read-only)":" (send-only)";return{...se,label:`${se.account}${Oe}`}}),[Ue]);async function Re(){if(Se){ge(""),A(!0);try{const se=await t.email_list_accounts();o(Array.isArray(se==null?void 0:se.accounts)?se.accounts:[]),u(String((se==null?void 0:se.default_account)||"").trim())}catch(se){ge(String((se==null?void 0:se.message)||se||"Failed to list email accounts")),o([]),u("")}finally{A(!1)}}}m.useEffect(()=>{Re()},[Se]),m.useEffect(()=>{if(!Se)return;const se=String(c||"").trim();if(se&&Ue.some(Jt=>Jt.account===se))return;const Oe=String(localStorage.getItem("abstractobserver_email_account")||"").trim();if(Oe&&Ue.some(Jt=>Jt.account===Oe)){d(Oe);return}if(l&&Ue.some(Jt=>Jt.account===l)){d(l);return}Ue.length&&d(Ue[0].account)},[Se,c,l,Ue]),m.useEffect(()=>{const se=String(c||"").trim();se&&localStorage.setItem("abstractobserver_email_account",se)},[c]);async function dt(){if(!Se)return;const se=String(c||"").trim();if(se){if(!ct){ge("Selected account is not allowed to read email."),G([]),Z(""),z(null);return}ge(""),O(!0);try{const Oe=await t.email_list_messages({account:se,mailbox:String(h||"").trim()||void 0,since:String(g||"").trim()||void 0,status:v,limit:j});G(Array.isArray(Oe==null?void 0:Oe.messages)?Oe.messages:[]),String(H||"").trim()&&!Array.isArray(Oe==null?void 0:Oe.messages)&&(Z(""),z(null))}catch(Oe){ge(String((Oe==null?void 0:Oe.message)||Oe||"Failed to list emails")),G([]),Z(""),z(null)}finally{O(!1)}}}m.useEffect(()=>{Se&&String(c||"").trim()&&dt()},[Se,c]);async function jt(se){if(!Se)return;const Oe=String(c||"").trim(),Jt=String(se||"").trim();if(!(!Oe||!Jt)&&ct){Z(Jt),z(null),$e(""),Y(!0);try{const vt=await t.email_read_message(Jt,{account:Oe,mailbox:String(h||"").trim()||void 0,max_body_chars:2e4});z(vt)}catch(vt){$e(String((vt==null?void 0:vt.message)||vt||"Failed to read email"))}finally{Y(!1)}}}function Mt(se){ue(""),te(String((se==null?void 0:se.to)||"").trim()),he(""),ce(""),Pe(String((se==null?void 0:se.subject)||"").trim()),be(String((se==null?void 0:se.body)||"")),E(!0)}function gt(){if(!N)return;const se=String((N==null?void 0:N.from)||"").trim(),Oe=String((N==null?void 0:N.subject)||"").trim(),Jt=Oe.toLowerCase().startsWith("re:")?Oe:`Re: ${Oe||"(no subject)"}`,vt=String((N==null?void 0:N.body_text)||"").trim(),on=`
126
+
127
+ ---
128
+ On ${Dg((N==null?void 0:N.date)||"")}, ${se} wrote:
129
+
130
+ ${vt}`;Mt({to:se,subject:Jt,body:on})}async function _e(){if(!Se||ne)return;const se=String(c||"").trim();if(se){if(!ut){ue("Selected account is not allowed to send email.");return}ue(""),X(!0);try{const Oe=Nm(U);if(!Oe)throw new Error("to is required");const Jt=String(xe||"").trim();if(!Jt)throw new Error("subject is required");const vt=String(oe||"").trim();if(!vt)throw new Error("body is required");await t.email_send({account:se,to:Oe,subject:Jt,body_text:vt,cc:Nm(re),bcc:Nm(Ne)}),E(!1),te(""),he(""),ce(""),Pe(""),be(""),await dt()}catch(Oe){ue(String((Oe==null?void 0:Oe.message)||Oe||"Failed to send email"))}finally{X(!1)}}}const Kt=m.useMemo(()=>{const se=String(H||"").trim();return se&&I.find(Oe=>String((Oe==null?void 0:Oe.uid)||"").trim()===se)||null},[I,H]),Te=String((N==null?void 0:N.body_text)||"").trim()||String((N==null?void 0:N.body_html)||"").trim(),nt=String((N==null?void 0:N.body_text)||"").trim()?"Body (text)":String((N==null?void 0:N.body_html)||"").trim()?"Body (html, raw)":"Body";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"inbox_layout",children:[s.jsxs("div",{className:"card inbox_sidebar",children:[s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between"},children:[s.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center"},children:[s.jsx("select",{value:c,onChange:se=>d(String(se.target.value||"")),disabled:!Se||M,children:Ae.length?Ae.map(se=>s.jsx("option",{value:se.account,children:se.label},se.account)):s.jsx("option",{value:"",children:"(no accounts)"})}),s.jsx("button",{className:"btn",onClick:()=>void Re(),disabled:!Se||M,children:M?"Loading…":"Accounts"})]}),s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[s.jsx("button",{className:"btn",onClick:()=>void dt(),disabled:!Se||D||!String(c||"").trim()||!ct,children:D?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn primary",onClick:()=>Mt(),disabled:!Se||!String(c||"").trim()||!ut,children:"Compose"})]})]}),s.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[s.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"1 1 120px"},children:[s.jsx("label",{children:"Since"}),s.jsx("input",{value:g,onChange:se=>x(String(se.target.value||"")),placeholder:"7d"})]}),s.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"0 0 120px"},children:[s.jsx("label",{children:"Status"}),s.jsxs("select",{value:v,onChange:se=>b(String(se.target.value||"all")),children:[s.jsx("option",{value:"all",children:"all"}),s.jsx("option",{value:"unread",children:"unread"}),s.jsx("option",{value:"read",children:"read"})]})]}),s.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"0 0 120px"},children:[s.jsx("label",{children:"Limit"}),s.jsx("input",{value:String(j),onChange:se=>S(Number(se.target.value||"0")||25),inputMode:"numeric",placeholder:"25"})]}),s.jsxs("div",{className:"field",style:{margin:0,minWidth:160,flex:"1 1 160px"},children:[s.jsx("label",{children:"Mailbox"}),s.jsx("input",{value:h,onChange:se=>_(String(se.target.value||"")),placeholder:"INBOX"})]}),s.jsx("div",{className:"row",style:{gap:"8px",alignItems:"center",marginTop:"18px"},children:s.jsx("button",{className:"btn",onClick:()=>void dt(),disabled:!Se||D||!String(c||"").trim()||!ct,children:"Apply"})})]}),J?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:J}):null,s.jsx("div",{className:"inbox_list",children:I.length?I.map(se=>{const Oe=String((se==null?void 0:se.uid)||"").trim(),Jt=!!Oe&&Oe===String(H||"").trim(),vt=String((se==null?void 0:se.subject)||"").trim()||"(no subject)",on=String((se==null?void 0:se.from)||"").trim(),bn=String((se==null?void 0:se.date)||"").trim(),un=!!(se!=null&&se.seen);return s.jsxs("button",{className:`inbox_item ${Jt?"active":""}`,onClick:()=>void jt(Oe),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`pill ${un?"approved":"pending"}`,children:un?"read":"unread"}),s.jsx("span",{className:"item_title_text",children:Ru(vt,52)})]}),s.jsx("div",{className:"inbox_item_meta mono muted",children:Ru(on,60)||"(from?)"}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[Ru(bn,36)||"(date?)"," • uid ",Ru(Oe,10)]})]},Oe||Math.random())}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages."})})]}),s.jsx("div",{className:"card inbox_viewer",children:H?L?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading email…"}):me?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:me}):N?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",gap:"8px",flexWrap:"wrap"},children:[s.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[s.jsx("div",{className:"mono",style:{fontWeight:700},children:String((N==null?void 0:N.subject)||"").trim()||"(no subject)"}),s.jsx("span",{className:"pill muted",children:String((N==null?void 0:N.account)||"").trim()||c}),s.jsx("span",{className:"pill muted",children:String((N==null?void 0:N.mailbox)||"").trim()||"(mailbox?)"}),s.jsxs("span",{className:"pill muted",children:["uid ",Ru(String((N==null?void 0:N.uid)||H),12)]})]}),s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[s.jsx("button",{className:"btn",onClick:()=>js(String((N==null?void 0:N.message_id)||"")),disabled:!String((N==null?void 0:N.message_id)||"").trim(),title:"Copy Message-ID",children:"Copy msg-id"}),s.jsx("button",{className:"btn",onClick:()=>js(String(H||"")),disabled:!String(H||"").trim(),title:"Copy UID",children:"Copy uid"}),s.jsx("button",{className:"btn primary",onClick:()=>gt(),disabled:!ut||!String((N==null?void 0:N.from)||"").trim(),children:"Reply"})]})]}),s.jsx("div",{className:"section_divider"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"From"}),s.jsx("div",{className:"mono",children:String((N==null?void 0:N.from)||"").trim()||"(from?)"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"To"}),s.jsx("div",{className:"mono",children:String((N==null?void 0:N.to)||"").trim()||"(to?)"})]}),String((N==null?void 0:N.cc)||"").trim()?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Cc"}),s.jsx("div",{className:"mono",children:String((N==null?void 0:N.cc)||"").trim()})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Date"}),s.jsx("div",{className:"mono",children:Dg(String((N==null?void 0:N.date)||(Kt==null?void 0:Kt.date)||"").trim())||String((N==null?void 0:N.date)||(Kt==null?void 0:Kt.date)||"").trim()||"(date?)"})]}),Array.isArray(N==null?void 0:N.attachments)&&N.attachments.length?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Attachments"}),s.jsx("div",{className:"mono",children:N.attachments.map((se,Oe)=>s.jsxs("div",{children:[String((se==null?void 0:se.filename)||"").trim()||"(file?)"," ",s.jsx("span",{className:"muted",children:String((se==null?void 0:se.content_type)||"").trim()?`(${String((se==null?void 0:se.content_type)||"").trim()})`:""})]},`${(se==null?void 0:se.filename)||""}:${Oe}`))})]}):null,s.jsx("div",{className:"section_divider"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:nt}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",wordBreak:"break-word",padding:"10px",borderRadius:"10px",border:"1px solid rgba(255, 255, 255, 0.10)",background:"rgba(0, 0, 0, 0.12)",maxHeight:"60vh",overflow:"auto"},children:Te||"(empty)"})]})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an email to read."}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an email to read."})})]}),s.jsxs(Li,{open:F,title:`Compose (${String(c||"").trim()||"account"})`,onClose:()=>{ne||E(!1)},actions:s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[Me?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginRight:"auto"},children:Me}):null,s.jsx("button",{className:"btn",onClick:()=>E(!1),disabled:ne,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void _e(),disabled:ne,children:ne?"Sending…":"Send"})]}),children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"To"}),s.jsx("input",{value:U,onChange:se=>te(String(se.target.value||"")),placeholder:"you@example.com"})]}),s.jsxs("div",{className:"row",style:{gap:"10px",flexWrap:"wrap"},children:[s.jsxs("div",{className:"field",style:{flex:"1 1 220px"},children:[s.jsx("label",{children:"Cc"}),s.jsx("input",{value:re,onChange:se=>he(String(se.target.value||"")),placeholder:"(optional)"})]}),s.jsxs("div",{className:"field",style:{flex:"1 1 220px"},children:[s.jsx("label",{children:"Bcc"}),s.jsx("input",{value:Ne,onChange:se=>ce(String(se.target.value||"")),placeholder:"(optional)"})]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Subject"}),s.jsx("input",{value:xe,onChange:se=>Pe(String(se.target.value||"")),placeholder:"Subject"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Body (text)"}),s.jsx("textarea",{value:oe,onChange:se=>be(String(se.target.value||"")),placeholder:"Write your message…"})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:"Tip: separate multiple recipients with commas or newlines."})]})]})}function Bg(e){const t=String(e||"").trim();if(!t)return"";const r=t.split("/").filter(Boolean);return r.length?r[r.length-1]:""}function Hd(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function Hc(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function r1(e){const t=e.gateway,[r,o]=m.useState("messages"),[l,u]=m.useState([]),[c,d]=m.useState([]),[h,_]=m.useState([]),[g,x]=m.useState(!1),[v,b]=m.useState(""),[j,S]=m.useState(null),[M,A]=m.useState(""),[D,O]=m.useState(!1),[L,Y]=m.useState(""),[ne,X]=m.useState("pending"),[J,ge]=m.useState(null),[me,$e]=m.useState(""),[Me,ue]=m.useState(null),[I,G]=m.useState(""),[H,Z]=m.useState(!1),[N,z]=m.useState(!1),[F,E]=m.useState(""),[U,te]=m.useState(""),re=!!U,[he,Ne]=m.useState(""),[ce,xe]=m.useState(""),[Pe,oe]=m.useState(""),[be,Se]=m.useState(!1),Ue=e.gateway_connected,De=m.useMemo(()=>r==="bugs"?l:r==="features"?c:[],[r,l,c]);m.useEffect(()=>{r==="email"&&(b(""),x(!1))},[r]);async function ct(){const Te=await t.list_bug_reports();u(Array.isArray(Te==null?void 0:Te.items)?Te.items:[])}async function ut(){const Te=await t.list_feature_requests();d(Array.isArray(Te==null?void 0:Te.items)?Te.items:[])}async function Ae(){const Te=await t.list_triage_decisions({status:ne||void 0,limit:500}),nt=Array.isArray(Te==null?void 0:Te.decisions)?Te.decisions:[];_(nt),J&&!nt.some(se=>se.decision_id===J.decision_id)&&(ge(null),$e(""),ue(null),G(""))}async function Re(){if(Ue&&r!=="email"){b(""),x(!0);try{r==="bugs"?await ct():r==="features"?await ut():await Ae()}catch(Te){b(String((Te==null?void 0:Te.message)||Te||"Refresh failed"))}finally{x(!1)}}}m.useEffect(()=>{Re()},[r,Ue,ne]);async function dt(Te){S(Te),A(""),Y(""),O(!0);try{if(Te.report_type==="bug"){const nt=await t.get_bug_report_content(Te.filename);A(String((nt==null?void 0:nt.content)||""))}else{const nt=await t.get_feature_request_content(Te.filename);A(String((nt==null?void 0:nt.content)||""))}}catch(nt){Y(String((nt==null?void 0:nt.message)||nt||"Failed to load report"))}finally{O(!1)}}async function jt(Te){ge(Te),$e(""),ue(null),G("");const nt=Bg(Te.report_relpath);if(nt)try{if(Te.report_type==="bug"){const se=await t.get_bug_report_content(nt);$e(String((se==null?void 0:se.content)||""))}else if(Te.report_type==="feature"){const se=await t.get_feature_request_content(nt);$e(String((se==null?void 0:se.content)||""))}}catch(se){G(String((se==null?void 0:se.message)||se||"Failed to load report"))}}async function Mt(Te){G(""),ue(null);const nt=String(Te.draft_relpath||"").trim();if(!nt)return;const se=Bg(nt);if(se)try{const Oe=await t.backlog_content("proposed",se);ue(Oe)}catch(Oe){G(String((Oe==null?void 0:Oe.message)||Oe||"Failed to load draft (is repo root configured on gateway?)"))}}async function gt(Te,nt){if(J&&!H){G(""),Z(!0);try{const se=await t.apply_triage_decision(J.decision_id,{action:Te,defer_days:nt??null});await Ae();const Oe=String(ne||"").trim().toLowerCase(),Jt=String((se==null?void 0:se.status)||"").trim().toLowerCase();if(!(!Oe||Oe===Jt))ge(null),$e(""),ue(null);else if(ge(se),String(se.draft_relpath||"").trim())try{await Mt(se)}catch{}}catch(se){G(String((se==null?void 0:se.message)||se||"Decision action failed"))}finally{Z(!1)}}}async function _e(){if(!N){b(""),z(!0);try{const Te=await t.triage_run({write_drafts:!1,enable_llm:!1});E(`Scanned ${(Te==null?void 0:Te.reports)??0} report(s); updated ${(Te==null?void 0:Te.updated_decisions)??0} decision(s).`),await Ae()}catch(Te){b(String((Te==null?void 0:Te.message)||Te||"Triage failed"))}finally{z(!1)}}}m.useEffect(()=>{re&&(oe(""),xe(""),Se(!1),Ne(String(e.default_session_id||"").trim()))},[re,e.default_session_id]);async function Kt(){var Te,nt;if(U&&!be){oe(""),Se(!0);try{const se=String(he||"").trim();if(!se)throw new Error("session_id is required");const Oe=String(ce||"").trim();if(!Oe)throw new Error("description is required");const Jt={session_id:se,description:Oe,active_run_id:String(e.default_active_run_id||"").trim()||void 0,workflow_id:String(e.default_workflow_id||"").trim()||void 0,client:"abstractobserver/web",client_version:"",user_agent:String(((Te=globalThis==null?void 0:globalThis.navigator)==null?void 0:Te.userAgent)||""),url:String(((nt=globalThis==null?void 0:globalThis.location)==null?void 0:nt.href)||"")};if(U==="bug"){const vt=await t.bug_report_create(Jt),on=String((vt==null?void 0:vt.filename)||"").trim();te(""),o("bugs");const bn=await t.list_bug_reports(),un=Array.isArray(bn==null?void 0:bn.items)?bn.items:[];u(un);const yn=un.find(Pn=>Pn.filename===on)||null;yn&&await dt(yn)}else{const vt=await t.feature_report_create(Jt),on=String((vt==null?void 0:vt.filename)||"").trim();te(""),o("features");const bn=await t.list_feature_requests(),un=Array.isArray(bn==null?void 0:bn.items)?bn.items:[];d(un);const yn=un.find(Pn=>Pn.filename===on)||null;yn&&await dt(yn)}}catch(se){oe(String((se==null?void 0:se.message)||se||"Failed to create report"))}finally{Se(!1)}}}return s.jsxs("div",{className:"page",children:[s.jsxs("div",{className:"page_inner",children:[s.jsxs("div",{className:"card",children:[s.jsx("div",{className:"title",children:s.jsx("h1",{children:"Inbox"})}),s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between"},children:[s.jsxs("div",{className:"tab_bar",style:{paddingBottom:0,borderBottom:"none"},children:[s.jsx("button",{className:`tab ${r==="messages"?"active":""}`,onClick:()=>o("messages"),children:"Messages"}),s.jsx("button",{className:`tab ${r==="email"?"active":""}`,onClick:()=>o("email"),children:"Email"}),s.jsx("button",{className:`tab ${r==="bugs"?"active":""}`,onClick:()=>o("bugs"),children:"Bugs"}),s.jsx("button",{className:`tab ${r==="features"?"active":""}`,onClick:()=>o("features"),children:"Features"})]}),s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[r==="messages"?s.jsxs(s.Fragment,{children:[s.jsxs("select",{value:ne,onChange:Te=>X(String(Te.target.value)),title:"Filter triage decisions by status",children:[s.jsx("option",{value:"pending",children:"pending"}),s.jsx("option",{value:"approved",children:"approved"}),s.jsx("option",{value:"deferred",children:"deferred"}),s.jsx("option",{value:"rejected",children:"rejected"}),s.jsx("option",{value:"",children:"all"})]}),s.jsx("button",{className:"btn",onClick:()=>void Re(),disabled:!Ue||g,children:g?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn primary",onClick:()=>void _e(),disabled:!Ue||N,children:N?"Running…":"Run triage"})]}):r==="email"?null:s.jsx("button",{className:"btn",onClick:()=>void Re(),disabled:!Ue||g,children:g?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn",onClick:()=>te("bug"),disabled:!Ue,children:"File bug"}),s.jsx("button",{className:"btn",onClick:()=>te("feature"),disabled:!Ue,children:"File feature"})]})]}),r!=="email"&&F?s.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:F}):null,r!=="email"&&v?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:v}):null]}),r==="email"?s.jsx(n1,{gateway:t,enabled:Ue}):s.jsxs("div",{className:"inbox_layout",children:[s.jsx("div",{className:"card inbox_sidebar",children:r==="messages"?s.jsx("div",{className:"inbox_list",children:h.length?h.map(Te=>{const nt=(J==null?void 0:J.decision_id)===Te.decision_id,se=Array.isArray(Te.missing_fields)?Te.missing_fields.length:0;return s.jsxs("button",{className:`inbox_item ${nt?"active":""}`,onClick:()=>void jt(Te),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`pill ${String(Te.status||"").toLowerCase()}`,children:String(Te.status||"pending")}),s.jsx("span",{className:"mono",children:Te.report_type}),s.jsx("span",{className:"mono muted",children:Hc(Te.decision_id,10)})]}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[se?`${se} missing`:"complete"," • ",Hd(Te.updated_at||Te.created_at)||"(time?)"]}),s.jsx("div",{className:"inbox_item_meta mono",children:Hc(Te.report_relpath||"",46)})]},Te.decision_id)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No decisions."})}):s.jsx("div",{className:"inbox_list",children:De.length?De.map(Te=>{const nt=(j==null?void 0:j.filename)===Te.filename&&(j==null?void 0:j.report_type)===Te.report_type,se=String(Te.triage_status||"").trim().toLowerCase();return s.jsxs("button",{className:`inbox_item ${nt?"active":""}`,onClick:()=>void dt(Te),children:[s.jsxs("div",{className:"inbox_item_title",children:[se?s.jsx("span",{className:`pill ${se}`,children:se}):null,s.jsx("span",{className:"mono",children:Hc(Te.title||Te.filename,46)})]}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[Hd(Te.created_at)||"(time?)"," • ",Te.session_id?Hc(Te.session_id,12):"session?"]}),s.jsx("div",{className:"inbox_item_meta mono",children:Te.filename})]},Te.relpath)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No reports."})})}),s.jsx("div",{className:"card inbox_viewer",children:r==="messages"?J?s.jsxs("div",{className:"inbox_detail",children:[s.jsxs("div",{className:"inbox_detail_header",children:[s.jsxs("div",{className:"inbox_detail_title",children:[s.jsx("span",{className:"mono",style:{fontWeight:700},children:"Triage decision"}),s.jsx("span",{className:"chip mono muted",children:J.report_type}),s.jsx("span",{className:"chip mono muted",children:J.status}),s.jsx("span",{className:"chip mono muted",children:Hc(J.decision_id,16)})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[s.jsx("button",{className:"btn",onClick:()=>{js(J.report_relpath||"")},children:"Copy report path"}),J.draft_relpath?s.jsx("button",{className:"btn",onClick:()=>void Mt(J),children:"Load draft"}):null,s.jsx("button",{className:"btn primary",onClick:()=>void gt("approve"),disabled:H,children:"Approve"}),s.jsx("button",{className:"btn",onClick:()=>void gt("defer",1),disabled:H,children:"Defer 1d"}),s.jsx("button",{className:"btn",onClick:()=>void gt("defer",7),disabled:H,children:"Defer 7d"}),s.jsx("button",{className:"btn",onClick:()=>void gt("reject"),disabled:H,children:"Reject"})]})]}),s.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[J.updated_at?`updated ${Hd(J.updated_at)}`:null,J.created_at?`${J.updated_at?" • ":""}created ${Hd(J.created_at)}`:null,J.defer_until?` • defer until ${J.defer_until}`:null]}),I?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:I}):null,s.jsxs("div",{className:"row",style:{gap:"12px"},children:[s.jsxs("div",{className:"col",style:{minWidth:240},children:[s.jsx("div",{className:"section_title",children:"Missing fields"}),J.missing_fields&&J.missing_fields.length?s.jsx("ul",{className:"inbox_list_ul mono",children:J.missing_fields.map(Te=>s.jsx("li",{children:Te},Te))}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"None."}),s.jsx("div",{className:"section_title",style:{marginTop:"10px"},children:"Possible duplicates"}),J.duplicates&&J.duplicates.length?s.jsx("ul",{className:"inbox_list_ul mono",children:J.duplicates.slice(0,20).map((Te,nt)=>{const se=String((Te==null?void 0:Te.title)||(Te==null?void 0:Te.ref)||(Te==null?void 0:Te.kind)||"duplicate").trim(),Oe=typeof(Te==null?void 0:Te.score)=="number"&&Number.isFinite(Te.score)?` (score ${Te.score.toFixed(2)})`:"";return s.jsxs("li",{children:[se,Oe]},`${se}_${nt}`)})}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"None."})]}),s.jsxs("div",{className:"col",style:{minWidth:240},children:[s.jsx("div",{className:"section_title",children:"Draft"}),J.draft_relpath?s.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[s.jsx("div",{className:"mono muted",children:"path"}),s.jsx("div",{className:"mono",children:J.draft_relpath})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No draft yet. Approve to generate one (requires repo mounted on gateway host)."})]})]}),Me?s.jsxs("div",{className:"inbox_markdown",children:[s.jsx("div",{className:"section_title",children:"Draft content"}),s.jsx(co,{text:String(Me.content||"")})]}):null,s.jsxs("div",{className:"inbox_markdown",children:[s.jsx("div",{className:"section_title",children:"Source report"}),me?s.jsx(co,{text:me}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No report preview loaded."})]})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a decision."}):j?s.jsxs("div",{className:"inbox_detail",children:[s.jsxs("div",{className:"inbox_detail_header",children:[s.jsxs("div",{className:"inbox_detail_title",children:[s.jsx("span",{className:"mono",style:{fontWeight:700},children:j.report_type==="bug"?"Bug report":"Feature request"}),j.triage_status?s.jsx("span",{className:`pill ${j.triage_status}`,children:j.triage_status}):null,s.jsx("span",{className:"chip mono muted",children:j.filename}),j.session_id?s.jsx("span",{className:"chip mono muted",children:Hc(j.session_id,16)}):null]}),s.jsx("div",{className:"inbox_detail_actions",children:s.jsx("button",{className:"btn",onClick:()=>{js(j.relpath||"")},children:"Copy path"})})]}),L?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:L}):null,D?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):M?s.jsx(co,{text:M}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No content loaded."})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a report."})})]})]}),s.jsxs(Li,{open:re,title:U==="bug"?"File bug report":"File feature request",onClose:()=>te(""),actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>te(""),disabled:be,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Kt(),disabled:be,children:be?"Submitting…":"Submit"})]}),children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Session ID"}),s.jsx("input",{value:he,onChange:Te=>Ne(Te.target.value),placeholder:"session id (required)"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"This correlates runs + attachments (via the session memory run)."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:U==="bug"?"Bug description":"Feature description"}),s.jsx("textarea",{value:ce,onChange:Te=>xe(Te.target.value),placeholder:U==="bug"?"What is broken? What did you expect?":"What do you want to be able to do?",rows:6})]}),Pe?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Pe}):null]})]})}function s1(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=Date.parse(t);return Number.isFinite(r)?r:null}function i1(e){const t=Date.now(),r=e.getTime(),o=t-r,l=Math.floor(o/1e3),u=Math.floor(l/60),c=Math.floor(u/60),d=Math.floor(c/24);return l<60?"Just now":u<60?`${u}m ago`:c<24?`${c}h ago`:d<=3?`${d}d ago`:e.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function Qy(e){const t=s1(e);return t===null?"—":i1(new Date(t))}function o1(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function Zy(e){const t=typeof e.workflow_id=="string"?String(e.workflow_id).trim():"",r=String(e.status||"").trim().toLowerCase(),o=String(e.waiting_reason||"").trim().toLowerCase(),l=!!e.is_scheduled||t&&t.startsWith("scheduled:"),u=!!e.paused,c={completed:{label:"Completed",cls:"success"},failed:{label:"Failed",cls:"error"},cancelled:{label:"Cancelled",cls:"muted"},waiting:{label:"Waiting",cls:"warning"},running:{label:"Running",cls:"info"}};return l&&u?{label:"Suspended",cls:"scheduled"}:r==="waiting"&&l?{label:"Scheduled",cls:"scheduled"}:r==="running"&&l&&o==="until"?{label:"Scheduled",cls:"scheduled"}:c[r]||{label:e.status||"Unknown",cls:"muted"}}function ex(e,t){const r=String(e||"").trim();if(r){const o=t[r];if(o){const u=o.split(/[·:]/);return u.length>1?u[u.length-1].trim():o.trim()}const l=r.indexOf(":");if(l>0)return r.slice(l+1).trim()||r.slice(0,l).trim();if(/[a-z]/i.test(r))return r}return"(unknown workflow)"}function a1({run:e,workflow_label_by_id:t,selected:r,onClick:o}){const l=typeof e.workflow_id=="string"?String(e.workflow_id):"",u=typeof e.schedule_target_workflow_id=="string"?String(e.schedule_target_workflow_id):"",c=u.trim()?u:l,d=ex(c,t),h=Zy(e),_=Qy(e.updated_at||e.created_at),g=typeof e.ledger_len=="number"&&e.ledger_len>0?e.ledger_len:null,x=!!e.is_scheduled||l&&l.startsWith("scheduled:"),v=String(e.schedule_interval||"").trim(),b=[];x&&b.push(v?`every ${v}`:"scheduled"),g!==null&&b.push(`${g} steps`);const j=b.join(" • ");return s.jsxs("button",{className:`run_card ${r?"selected":""}`,onClick:o,type:"button",children:[s.jsxs("div",{className:"run_card_header",children:[s.jsx("span",{className:"run_card_name",children:d}),s.jsx("span",{className:`run_card_status ${h.cls}`,children:h.label})]}),s.jsxs("div",{className:"run_card_time",children:[s.jsx("span",{children:_}),s.jsx("span",{className:"run_card_sep",children:"•"}),s.jsx("span",{className:"mono",children:o1(e.run_id,8)})]}),j?s.jsx("div",{className:"run_card_meta",children:j}):null]})}function l1({run:e,workflow_label_by_id:t}){const r=typeof e.workflow_id=="string"?String(e.workflow_id):"",o=typeof e.schedule_target_workflow_id=="string"?String(e.schedule_target_workflow_id):"",l=o.trim()?o:r,u=ex(l,t),c=Zy(e),d=Qy(e.updated_at||e.created_at);return s.jsxs("div",{className:"run_selected_badge",children:[s.jsx("span",{className:"run_selected_name",children:u}),s.jsx("span",{className:`run_selected_status ${c.cls}`,children:c.label}),s.jsx("span",{className:"run_selected_time",children:d})]})}function c1({runs:e,selected_run_id:t,workflow_label_by_id:r,disabled:o,loading:l,onSelect:u}){const[c,d]=m.useState(!1),[h,_]=m.useState(""),[g,x]=m.useState(null),v=m.useRef(null),b=m.useRef(null);m.useEffect(()=>{if(!c)return;const M=A=>{v.current&&(v.current.contains(A.target)||d(!1))};return window.addEventListener("mousedown",M),()=>window.removeEventListener("mousedown",M)},[c]),m.useEffect(()=>{if(!c)return;const M=()=>{if(!b.current)return;const A=b.current.getBoundingClientRect(),D=12,O=Math.min(720,window.innerWidth-D*2);let L=A.left,Y=Math.max(A.width,O);Y>window.innerWidth-D*2&&(Y=window.innerWidth-D*2),L+Y>window.innerWidth-D&&(L=Math.max(D,window.innerWidth-D-Y)),L<D&&(L=D);const ne=320,X=520,J=window.innerHeight-A.bottom-D,ge=A.top-D,me=J<ne&&ge>J;let $e=Math.max(ne,me?ge:J);$e=Math.min($e,X,window.innerHeight-D*2);let Me=me?A.top-8-$e:A.bottom+8;Me=Math.min(Me,window.innerHeight-D-$e),Me=Math.max(D,Me),x({left:L,width:Y,height:$e,top:Me})};return M(),window.addEventListener("resize",M),window.addEventListener("scroll",M,!0),()=>{window.removeEventListener("resize",M),window.removeEventListener("scroll",M,!0)}},[c]);const j=m.useMemo(()=>{const M=String(t||"").trim();return M?e.find(A=>String(A.run_id||"").trim()===M)||{run_id:M}:null},[e,t]),S=m.useMemo(()=>{const M=String(h||"").trim().toLowerCase();return M?e.filter(A=>{const D=String(A.run_id||"").toLowerCase(),O=typeof A.workflow_id=="string"?String(A.workflow_id).toLowerCase():"",L=typeof A.schedule_target_workflow_id=="string"?String(A.schedule_target_workflow_id).toLowerCase():"",Y=O?String(r[String(A.workflow_id)]||"").toLowerCase():"",ne=L?String(r[String(A.schedule_target_workflow_id)]||"").toLowerCase():"",X=typeof A.status=="string"?String(A.status).toLowerCase():"";return D.includes(M)||O.includes(M)||Y.includes(M)||L.includes(M)||ne.includes(M)||X.includes(M)}):e},[e,h,r]);return s.jsxs("div",{className:"run_picker",ref:v,children:[s.jsxs("button",{className:"run_picker_btn",ref:b,onClick:()=>{o||d(M=>!M)},disabled:o,type:"button",children:[l?s.jsx("span",{className:"muted",children:"Loading runs…"}):j?s.jsx(l1,{run:j,workflow_label_by_id:r}):s.jsx("span",{className:"run_picker_placeholder",children:"Select a run to observe"}),s.jsx("span",{className:"run_picker_chevron",children:c?"▲":"▼"})]}),c?s.jsxs("div",{className:"run_picker_panel",style:g?{left:`${g.left}px`,width:`${g.width}px`,height:`${g.height}px`,top:`${g.top}px`}:void 0,children:[s.jsx("div",{className:"run_picker_header",children:s.jsx("input",{className:"run_picker_filter",value:h,onChange:M=>_(M.target.value),placeholder:"Search runs by name, status..."})}),s.jsx("div",{className:"run_picker_grid",children:S.length?S.map(M=>{const A=String(M.run_id||"").trim();if(!A)return null;const D=String(t||"").trim()===A;return s.jsx(a1,{run:M,workflow_label_by_id:r,selected:D,onClick:()=>{d(!1),u(A)}},A)}):s.jsxs("div",{className:"run_picker_empty",children:[s.jsx("span",{className:"run_picker_empty_icon",children:"◇"}),s.jsx("span",{children:"No runs found"})]})})]}):null]})}function tn(){return new Date().toISOString()}function Vd(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function ca(e,t){try{const r=JSON.stringify(e);return typeof r!="string"?String(e):r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}catch{const r=String(e);return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}}function Cm(e){const t=String(e||"").trim(),r=t.indexOf(":");return r<=0||r>=t.length-1?null:{bundle_id:t.slice(0,r),flow_id:t.slice(r+1)}}function Lu(e){const t=String(e||"").trim();return t.startsWith("abstractcode.")?`abstract.${t.slice(13)}`:t}function Em(e){const t=String(e||"").trim();return t.startsWith("abstract.")||t.startsWith("abstractcode.")}function u1(e){const t=String(e||"").trim();if(t.startsWith("evt:")){const r=t.split(":",4);if(r.length===4&&r[3])return String(r[3]).trim()}return t}function d1(e){if(!e||typeof e!="object")return[];const t=Array.isArray(e.nodes)?e.nodes:[];if(!t.length)return[];let r=null;for(const d of t){if(!d||typeof d!="object")continue;const h=d.data&&typeof d.data=="object"?d.data:{};if(String(h.nodeType||d.type||"").trim()==="on_flow_start"){r=d;break}}if(!r)return[];const o=r.data&&typeof r.data=="object"?r.data:{},l=Array.isArray(o.outputs)?o.outputs:[],u=o.pinDefaults&&typeof o.pinDefaults=="object"?o.pinDefaults:{},c=[];for(const d of l){if(!d||typeof d!="object")continue;const h=String(d.id||"").trim();if(!h)continue;const _=String(d.type||"").trim();if(_==="execution"||h==="exec-out"||h==="exec")continue;const g=String(d.label||h).trim()||h,x={id:h,label:g,type:_||"unknown"};u&&Object.prototype.hasOwnProperty.call(u,h)&&(x.default=u[h]),c.push(x)}return c}function cn(e,t){const r=typeof(t==null?void 0:t.max_chars)=="number"?t.max_chars:360,o=typeof(t==null?void 0:t.max_lines)=="number"?t.max_lines:2,u=String(e||"").replace(/\r\n/g,`
131
+ `).replace(/\r/g,`
132
+ `).split(`
133
+ `),c=u.slice(0,Math.max(1,o)).join(`
134
+ `),d=u.length>o,h=c.length>r?`${c.slice(0,Math.max(0,r-1))}…`:c;return d&&h===c?`${c}…`:h}function Ra(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}const f1=/^[a-zA-Z0-9_-]+$/;function Ug(e){return f1.test(String(e||"").trim())}async function m1(e){const t=String(e||""),r=new TextEncoder().encode(t),o=globalThis.crypto;if(!o||!o.subtle||typeof o.subtle.digest!="function")throw new Error("crypto.subtle.digest not available");const l=await o.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(l)).map(u=>u.toString(16).padStart(2,"0")).join("")}async function Wg(e){const t=String(e||"").trim();if(!t)throw new Error("session_id is required");if(Ug(t)){const o=`session_memory_${t}`;if(Ug(o))return o}return`session_memory_sha_${(await m1(t)).slice(0,32)}`}function Hg(e){const t=String(e||"").trim();return t&&t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")||"untitled"}function Vc(e){if(typeof e=="string")return{text:e,duration:-1};if(e&&typeof e=="object"){const t=typeof e.text=="string"?String(e.text):typeof e.value=="string"?String(e.value):typeof e.message=="string"?String(e.message):ca(e,320),r=typeof e.duration=="number"?Number(e.duration):-1;return{text:t,duration:r}}return{text:ca(e,320),duration:-1}}function tx(e){var c,d,h,_,g,x,v,b,j;if(!e||typeof e!="object")return"";const t=String(((c=e==null?void 0:e.effect)==null?void 0:c.type)||"").trim(),r=e==null?void 0:e.result,o=S=>typeof S=="string"?S.trim():S==null?"":typeof S=="number"||typeof S=="boolean"?String(S):"",l=S=>{if(!S||typeof S!="object")return"";const M=S,A=[M.response,M.answer,M.message,M.text,M.content];for(const D of A){const O=o(D);if(O)return O}return""};if(t==="answer_user"){const S=o(r==null?void 0:r.message)||o((d=r==null?void 0:r.output)==null?void 0:d.message)||o((h=r==null?void 0:r.output)==null?void 0:h.response)||o((g=(_=e==null?void 0:e.effect)==null?void 0:_.payload)==null?void 0:g.message)||o((v=(x=e==null?void 0:e.effect)==null?void 0:x.payload)==null?void 0:v.text)||o((j=(b=e==null?void 0:e.effect)==null?void 0:b.payload)==null?void 0:j.content);if(S)return S}if(t==="llm_call"){const S=l(r)||o(r==null?void 0:r.output)||l(r==null?void 0:r.output)||o(r==null?void 0:r.response);if(S)return S}return o(r==null?void 0:r.output)||l(r==null?void 0:r.output)||l(r)||o(r==null?void 0:r.response)}const Vg=new Set(["abstract.status","abstract.summary","abstract.chat"]);function h1(e){if(!e)return!1;if(e.kind==="error")return!0;if(e.kind==="info")return!1;const t=String(e.emit_name||"").trim();if((e.kind==="event"||e.kind==="message")&&t)return!Vg.has(t);const r=String(e.effect_type||"").trim();if(r){if(r==="tool_calls"||r==="llm_call"||r==="ask_user"||r==="answer_user"||r==="memory_compact"||r==="start_subworkflow")return!0;if(r==="emit_event")return!(t&&Vg.has(t))}if(String(e.status||"").trim()==="waiting"){const u=vl(e.data),c=String((u==null?void 0:u.reason)||"").trim();return!!(c==="user"||c==="event"||m_(u).length)}return!!tx(e.data)}function p1(){try{const e=localStorage.getItem("abstractobserver_settings");if(!e)throw new Error("missing");const t=JSON.parse(e);return{gateway_url:String((t==null?void 0:t.gateway_url)||""),auth_token:String((t==null?void 0:t.auth_token)||""),worker_url:String((t==null?void 0:t.worker_url)||""),worker_token:String((t==null?void 0:t.worker_token)||""),theme:String((t==null?void 0:t.theme)||"dark"),font_scale:String((t==null?void 0:t.font_scale)||(t==null?void 0:t.fontScale)||"md").trim()||"md",header_density:String((t==null?void 0:t.header_density)||(t==null?void 0:t.headerDensity)||"standard").trim()||"standard",auto_connect_gateway:(t==null?void 0:t.auto_connect_gateway)!==!1,maintenance_ai_provider:String((t==null?void 0:t.maintenance_ai_provider)||""),maintenance_ai_model:String((t==null?void 0:t.maintenance_ai_model)||""),backlog_advisor_agent:String((t==null?void 0:t.backlog_advisor_agent)||(t==null?void 0:t.backlogAdvisorAgent)||"")}}catch{return{gateway_url:"",auth_token:"",worker_url:"",worker_token:"",theme:"dark",font_scale:"md",header_density:"standard",auto_connect_gateway:!0,maintenance_ai_provider:"",maintenance_ai_model:"",backlog_advisor_agent:""}}}function g1(e){localStorage.setItem("abstractobserver_settings",JSON.stringify(e))}function $m(e){var l;const t=String((e==null?void 0:e.node_id)||""),r=String((e==null?void 0:e.status)||""),o=String(((l=e==null?void 0:e.effect)==null?void 0:l.type)||"");return`${t||"(node?)"} • ${r||"(status?)"} • ${o||"(effect?)"}`}function _1(e){return!!(e&&String(e.status||"")==="waiting")}function bl(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=t.replace(/(\.\d{3})\d+/,"$1"),o=Date.parse(r);return Number.isFinite(o)?o:null}function y1(e){const t=Date.now()-e,r=Math.floor(t/1e3),o=Math.floor(r/60),l=Math.floor(o/60),u=Math.floor(l/24);return r<60?"just now":o<60?`${o}m ago`:l<24?`${l}h ago`:u<=3?`${u}d ago`:new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}function sh(e){const t=bl(e);return t===null?"—":y1(t)}function qg(e){if(!Number.isFinite(e))return"";const t=Math.floor(e/1e3);if(t<=0)return"now";const r=Math.floor(t/60),o=Math.floor(r/60),l=Math.floor(o/24),u=t%60,c=r%60,d=o%24;return l>0?`${l}d ${d}h`:o>0?`${o}h ${c}m`:r>0?`${r}m ${u}s`:`${t}s`}function x1(e){const t=String(e||"").trim();return t?t.length<=8?t:`${t.slice(0,7)}…`:""}function Gg(e,t){const r=typeof e=="string"?String(e).trim():"";if(!r)return"Unknown workflow";const o=t[r];if(o){const u=o.split(/[·:]/);return u.length>1?u[u.length-1].trim():o.trim()}const l=r.indexOf(":");return l>0?r.slice(l+1).trim()||r.slice(0,l).trim():/[a-z]/i.test(r)?r:"Unknown workflow"}function Yg(e){const t=String(e||"").trim();return t?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t):!1}function v1(){try{const t=String(window.location.hash||"").replace(/^#/,"").split("/").filter(Boolean),r=t.length?String(t[t.length-1]||"").trim():"";if(Yg(r))return r;const l=String(window.location.pathname||"").split("/").filter(Boolean),u=l.length?String(l[l.length-1]||"").trim():"";if(Yg(u))return u}catch{}return""}function w1(){try{const e="abstractobserver_session_id_v1",t=window.sessionStorage.getItem(e);if(t&&t.trim())return t.trim();const r=globalThis.crypto,l=`obs_${r&&typeof r.randomUUID=="function"?r.randomUUID():`${Math.random().toString(16).slice(2)}_${Date.now().toString(16)}`}`;return window.sessionStorage.setItem(e,l),l}catch{return""}}function b1(){var Mo,Cc,cu,to,Ao,Vl,uu,ql,du,sl,Ti,il,ol,ra,Ec,Ca,fu,$c,tr,Gl,Tc,Mc,Yl,Ac,sa,nr,br,Rr,Xl,al,ll,nd;const[e,t]=m.useState("observe"),[r,o]=m.useState(()=>p1()),l=typeof window<"u"&&((Mo=window.__ABSTRACT_UI_CONFIG__)==null?void 0:Mo.monitor_gpu)===!0,u=m.useRef(null),[c,d]=m.useState(""),[h,_]=m.useState(""),[g,x]=m.useState(()=>v1()),[v,b]=m.useState(""),[j,S]=m.useState(""),[M,A]=m.useState("{}"),[D,O]=m.useState(()=>w1()),[L,Y]=m.useState(null),[ne,X]=m.useState(!1),[J,ge]=m.useState(""),[me,$e]=m.useState(!1),[Me,ue]=m.useState(""),[I,G]=m.useState(!1),[H,Z]=m.useState([]),[N,z]=m.useState([]),[F,E]=m.useState(!1),[U,te]=m.useState(!1),[re,he]=m.useState([]),[Ne,ce]=m.useState([]),[xe,Pe]=m.useState({}),[oe,be]=m.useState(!1),[Se,Ue]=m.useState(!1),[De,ct]=m.useState(!1),[ut,Ae]=m.useState(0),[Re,dt]=m.useState([]),[jt,Mt]=m.useState([]),gt=m.useRef(0),[_e,Kt]=m.useState(null),[Te,nt]=m.useState(""),[se,Oe]=m.useState(""),[Jt,vt]=m.useState(!1),[on,bn]=m.useState(!1),un=m.useRef(null),[yn,Pn]=m.useState({}),[En,sr]=m.useState({}),[It,kr]=m.useState("now"),[Nr,Wn]=m.useState(""),[ae,ke]=m.useState("once"),[st,it]=m.useState(1),[_t,Tt]=m.useState("days"),[Ot,Wt]=m.useState(2),[nn,Ft]=m.useState(""),[dn,hn]=m.useState("23:59"),[Qt,rn]=m.useState(!0),[qt,et]=m.useState(!1),[Sn,Nn]=m.useState(""),[In,$n]=m.useState(!0),[Cr,ir]=m.useState(""),[lr,gr]=m.useState(!1),[Ns,ds]=m.useState(!1),[Si,Bo]=m.useState(6),[Ir,Tn]=m.useState("standard"),[Ds,Ii]=m.useState(""),[fs,Kn]=m.useState(""),[Ze,bt]=m.useState(!1),[fn,fr]=m.useState(!1),[Vr,Er]=m.useState("pause"),[ms,oi]=m.useState(""),[ai,Fn]=m.useState(""),[qr,or]=m.useState(""),Ce=m.useRef(null),_r=m.useRef(null),[qe,Jn]=m.useState(!1),Cn=m.useRef(null),[Cs,mr]=m.useState(""),[Bs,hs]=m.useState(""),[pn,ar]=m.useState(""),[li,Us]=m.useState(""),[Qn,cr]=m.useState(""),[ps,Zr]=m.useState(!1),[Ws,$r]=m.useState("idle"),[Mn,hr]=m.useState([]),Es=m.useRef(null),[Hs,Or]=m.useState(!1),[Gr,Vs]=m.useState(""),[$s,ci]=m.useState(""),[Oi,es]=m.useState(""),[uo,Fi]=m.useState([]),[gs,Ts]=m.useState(!1),[ts,Ms]=m.useState(""),[fo,Di]=m.useState(""),[ns,R]=m.useState(!1),[ie,je]=m.useState(""),ze=m.useMemo(()=>{if(!Mn.length)return"";try{return JSON.stringify(Mn.map(w=>({role:w.role,content:w.content,ts:w.ts})))}catch{return"1"}},[Mn]),Ie=m.useMemo(()=>Mn.length?Oi?ze!==Oi:!0:!1,[ze,Mn.length,Oi]),rt=m.useMemo(()=>uo.map(w=>{const k=String(w.title||"").trim()||`Chat ${String(w.thread_id||"").slice(0,8)}`,P=String(w.created_at||"").trim(),C=P?P.replace("T"," ").slice(0,19):"",W=String(w.run_id||"").trim()?String(w.run_id).slice(0,8):"",K=[k,C&&`(${C})`,W&&`run ${W}`].filter(Boolean).join(" • ");return{value:String(w.thread_id||""),label:K}}),[uo]);m.useEffect(()=>{l&&Yv()},[l]),m.useEffect(()=>{if(!l)return;const w=u.current;w&&(w.token=r.auth_token||"")},[l,r.auth_token]);const[Et,Nt]=m.useState([]),[zt,Gt]=m.useState({}),[en,Zn]=m.useState({}),[an,ft]=m.useState(""),[jn,An]=m.useState("ledger"),[yr,_s]=m.useState(!0),[qs,Bi]=m.useState("steps"),[fa,El]=m.useState(""),[ui,Uo]=m.useState(""),[mo,ma]=m.useState([]),[Gs,$l]=m.useState(!1),[ho,Wo]=m.useState(""),[Ho,po]=m.useState(!1),[dc,go]=m.useState(""),[ji,Ui]=m.useState(""),[Tl,ha]=m.useState(""),[Ml,pa]=m.useState(!1),[ki,Vo]=m.useState(""),[_o,qo]=m.useState(null),[ga,Fa]=m.useState({}),[_a,di]=m.useState(!1),[Al,yo]=m.useState(""),[xo,zl]=m.useState(!1),[ya,Rl]=m.useState(!1),[vo,xa]=m.useState(()=>Date.now()),[Ys,Wi]=m.useState(""),[Ll,wo]=m.useState({}),[Go,Ni]=m.useState({}),Yo=m.useRef([]),Tr=m.useRef(null),Ci=m.useRef(""),bo=m.useRef({}),Xs=m.useRef({}),Hi=m.useRef({}),kn=m.useRef(new Set),[Mr,Yr]=m.useState([]),ys=m.useRef(""),Xo=m.useRef({}),As=m.useRef(null),Ar=m.useRef(null),rs=m.useRef(0),xr=m.useRef({}),Ks=m.useRef(!1),Js=m.useRef(new Set),[pr,Vi]=m.useState(""),[Fr,Ei]=m.useState(""),xs=m.useRef(""),[So,qi]=m.useState(!1),[Da,Gi]=m.useState(""),Ct=m.useMemo(()=>new Kv({base_url:r.gateway_url,auth_token:r.auth_token}),[r]),Ba=m.useMemo(()=>r.worker_url.trim()?new Qv({url:r.worker_url.trim(),auth_token:r.worker_token}):null,[r.worker_url,r.worker_token]),vr=Re.length?Re[Re.length-1].record:null,mn=m.useMemo(()=>vl(vr),[vr]),Dn=m.useMemo(()=>{const w=j.trim();if(!L||!w||String(L.bundle_id||"").trim()&&String(L.bundle_id||"").trim()!==w)return null;const k=Array.isArray(L.entrypoints)?L.entrypoints:[];if(!k.length)return null;const P=v.trim();if(P)return k.find(W=>String(W.flow_id||"").trim()===P)||null;if(k.length===1)return k[0];const C=String(L.default_entrypoint||"").trim();return C&&k.find(W=>String(W.flow_id||"").trim()===C)||null},[L,j,v]),Ua=m.useMemo(()=>{const w=Dn==null?void 0:Dn.inputs;return Array.isArray(w)?w:[]},[Dn]),va=m.useMemo(()=>d1(_o),[_o]),Yi=m.useMemo(()=>Ua.length?Ua:va,[Ua,va]),Wa=m.useMemo(()=>{const w=typeof(_e==null?void 0:_e.workflow_id)=="string"?String(_e.workflow_id):"",k=Cm(w);if(k&&L&&String(L.bundle_id||"").trim()===k.bundle_id){const W=(Array.isArray(L.entrypoints)?L.entrypoints:[]).find(K=>String((K==null?void 0:K.flow_id)||"").trim()===k.flow_id);if(W&&W.node_index&&typeof W.node_index=="object")return W.node_index}const P=Dn==null?void 0:Dn.node_index;return P&&typeof P=="object"?P:{}},[_e,L,Dn]);m.useEffect(()=>{g1(r)},[r]),m.useEffect(()=>{Sv(r.theme)},[r.theme]),m.useEffect(()=>{Nv({font_scale:r.font_scale,header_density:r.header_density})},[r.font_scale,r.header_density]),m.useEffect(()=>()=>{As.current&&As.current.abort(),Ar.current&&Ar.current.abort(),Ce.current&&window.clearTimeout(Ce.current),_r.current&&window.clearTimeout(_r.current),Tr.current&&window.clearTimeout(Tr.current),Cn.current&&window.clearTimeout(Cn.current)},[]),m.useEffect(()=>{var w;r.auto_connect_gateway&&(!r.gateway_url.trim()&&typeof window<"u"&&!((w=window.location)!=null&&w.origin)||Ji())},[r.auto_connect_gateway]);const ln=m.useMemo(()=>{const w=M.trim();if(!w)return{};try{const k=JSON.parse(w);return typeof k!="object"||k===null||Array.isArray(k)?null:k}catch{return null}},[M]),Pl=typeof(ln==null?void 0:ln.prompt)=="string"?String(ln.prompt):"",Ha=typeof(ln==null?void 0:ln.provider)=="string"?String(ln.provider):"",fc=typeof(ln==null?void 0:ln.model)=="string"?String(ln.model):"",Xi=typeof(ln==null?void 0:ln.workspace_root)=="string"?String(ln.workspace_root):"",Il=typeof(ln==null?void 0:ln.workspace_access_mode)=="string"?String(ln.workspace_access_mode):"",Ol=m.useMemo(()=>{const w=ln==null?void 0:ln.workspace_ignored_paths;return Array.isArray(w)?w.map(k=>String(k||"").trim()).filter(Boolean).join(`
135
+ `):typeof w=="string"?String(w):""},[ln]),su=Yi.length>0&&!!j.trim(),mc=w=>{const k=String(w||"").trim().toLowerCase();return k==="object"||k==="memory"||k==="assertion"||k==="assertions"||k==="any"};m.useEffect(()=>{sr({})},[j,v]),m.useEffect(()=>{ln!==null&&Pn(w=>{const k={};for(const P of Yi){if(!P||typeof P!="object")continue;const C=String(P.id||"").trim();if(!C)continue;const W=String(P.type||"").trim();if(!mc(W))continue;if(String(En[C]||"").trim()){k[C]=typeof w[C]=="string"?w[C]:"";continue}const Q=ln==null?void 0:ln[C];Q===void 0?k[C]="":k[C]=Vd(Q)}return k})},[Yi,ln,En]);const wa=j.trim()&&v.trim()?`${j.trim()}:${v.trim()}`:"",Va=m.useMemo(()=>{const w={};for(const k of H){const P=String(k.workflow_id||"").trim(),C=String(k.label||"").trim();P&&C&&(w[P]=C)}return w},[H]),qa=m.useMemo(()=>{const w=new Set;for(const k of Array.isArray(Ne)?Ne:[]){const P=String((k==null?void 0:k.name)||"").trim();P&&w.add(P)}return Array.from(w).sort()},[Ne]),Ga=m.useMemo(()=>{const w=[];for(const k of Array.isArray(Ne)?Ne:[]){const P=String((k==null?void 0:k.name)||"").trim();if(!P)continue;const C=String((k==null?void 0:k.display_name)||"").trim();w.push({name:P,display_name:C||void 0})}return w},[Ne]),Bn=m.useMemo(()=>{const w=new Set;for(const k of re||[]){if(!k||typeof k!="object")continue;const P=String(k.name||"").trim();P&&w.add(P)}return Array.from(w).sort()},[re]),Ya=m.useMemo(()=>{const w=r.maintenance_ai_provider.trim();if(!w)return{models:[],error:""};const k=xe[w];return k?{models:(Array.isArray(k.models)?k.models:[]).map(C=>String(C||"").trim()).filter(Boolean),error:String(k.error||"")}:{models:[],error:""}},[xe,r.maintenance_ai_provider]),Ko=r.maintenance_ai_provider.trim(),ba=!!(Ko&&I&&!Object.prototype.hasOwnProperty.call(xe,Ko));m.useEffect(()=>{const w=Ha.trim();if(!w||xe[w]||Xo.current[w])return;Xo.current[w]=!0;let k=!1;return(async()=>{try{const C=await Ct.discovery_provider_models(w);if(k)return;const W=Array.isArray(C==null?void 0:C.models)?C.models:[],K=typeof(C==null?void 0:C.error)=="string"?String(C.error):"";Pe(Q=>({...Q,[w]:{models:W,error:K||void 0}}))}catch(C){if(k)return;Pe(W=>({...W,[w]:{models:[],error:String((C==null?void 0:C.message)||C||"Failed to load models")}}))}finally{delete Xo.current[w]}})(),()=>{k=!0}},[Ha,xe,Ct]),m.useEffect(()=>{const w=r.maintenance_ai_provider.trim();if(!w||!I||xe[w]||Xo.current[w])return;Xo.current[w]=!0;let k=!1;return(async()=>{try{const C=await Ct.discovery_provider_models(w);if(k)return;const W=Array.isArray(C==null?void 0:C.models)?C.models:[],K=typeof(C==null?void 0:C.error)=="string"?String(C.error):"";Pe(Q=>({...Q,[w]:{models:W,error:K||void 0}}))}catch(C){if(k)return;Pe(W=>({...W,[w]:{models:[],error:String((C==null?void 0:C.message)||C||"Failed to load models")}}))}finally{delete Xo.current[w]}})(),()=>{k=!0}},[r.maintenance_ai_provider,xe,Ct,I]);function ur(w,k){const P=String(w||"").trim();if(!P)return;let C={};try{const W=JSON.parse(M||"{}");typeof W=="object"&&W!==null&&!Array.isArray(W)&&(C=W)}catch{C={}}if(k==null){delete C[P],A(JSON.stringify(C,null,2));return}if(typeof k=="string"){const W=String(k||"").trim();W?C[P]=W:delete C[P]}else if(Array.isArray(k)){const W=k.map(K=>K).filter(K=>K!=null);W.length?C[P]=W:delete C[P]}else C[P]=k;A(JSON.stringify(C,null,2))}async function Xa(w){const k=String(w||"").trim();if(!k)return ge("Missing bundle_id"),null;ge(""),X(!0);try{const P=await Ct.get_bundle(k);return Y(P),Dt({ts:tn(),kind:"info",title:`Loaded bundle ${k}`}),P}catch(P){return Y(null),ge(String((P==null?void 0:P.message)||P||"Failed to load bundle")),null}finally{X(!1)}}function jo(w){const k=[],P=Array.isArray(w==null?void 0:w.items)?w.items:[];for(const C of P){const W=String((C==null?void 0:C.bundle_id)||"").trim();if(!W)continue;const K=Array.isArray(C==null?void 0:C.entrypoints)?C.entrypoints:[];if(K.length)for(const Q of K){const de=String((Q==null?void 0:Q.flow_id)||"").trim();if(!de)continue;const Fe=`${W}:${de}`,Le=String((Q==null?void 0:Q.name)||"").trim(),Ke=Le?`${W} · ${Le}`:`${W} · ${de}`,At=String((Q==null?void 0:Q.description)||"").trim();k.push({workflow_id:Fe,bundle_id:W,flow_id:de,label:Ke,description:At||void 0})}}return k.sort((C,W)=>C.label.localeCompare(W.label)),k}async function Ki(){if(!F){E(!0);try{const w=await Ct.list_runs({limit:200,root_only:!0}),P=(Array.isArray(w==null?void 0:w.items)?w.items:[]).map(C=>{var W,K,Q,de,Fe,Le;return{run_id:String((C==null?void 0:C.run_id)||"").trim(),workflow_id:typeof(C==null?void 0:C.workflow_id)=="string"?String(C.workflow_id):(C==null?void 0:C.workflow_id)??null,status:typeof(C==null?void 0:C.status)=="string"?String(C.status):"",created_at:typeof(C==null?void 0:C.created_at)=="string"?String(C.created_at):(C==null?void 0:C.created_at)??null,updated_at:typeof(C==null?void 0:C.updated_at)=="string"?String(C.updated_at):(C==null?void 0:C.updated_at)??null,ledger_len:typeof(C==null?void 0:C.ledger_len)=="number"?Number(C.ledger_len):(C==null?void 0:C.ledger_len)??null,parent_run_id:typeof(C==null?void 0:C.parent_run_id)=="string"?String(C.parent_run_id):(C==null?void 0:C.parent_run_id)??null,session_id:typeof(C==null?void 0:C.session_id)=="string"?String(C.session_id):(C==null?void 0:C.session_id)??null,is_scheduled:typeof(C==null?void 0:C.is_scheduled)=="boolean"?!!C.is_scheduled:(C==null?void 0:C.is_scheduled)??null,paused:typeof(C==null?void 0:C.paused)=="boolean"?!!C.paused:(C==null?void 0:C.paused)??null,waiting_reason:typeof((W=C==null?void 0:C.waiting)==null?void 0:W.reason)=="string"?String(C.waiting.reason):((K=C==null?void 0:C.waiting)==null?void 0:K.reason)??null,schedule_interval:typeof((Q=C==null?void 0:C.schedule)==null?void 0:Q.interval)=="string"?String(C.schedule.interval).trim():((de=C==null?void 0:C.schedule)==null?void 0:de.interval)??null,schedule_target_workflow_id:typeof((Fe=C==null?void 0:C.schedule)==null?void 0:Fe.target_workflow_id)=="string"?String(C.schedule.target_workflow_id).trim():((Le=C==null?void 0:C.schedule)==null?void 0:Le.target_workflow_id)??null}}).filter(C=>!!C.run_id).filter(C=>!String(C.parent_run_id||"").trim());z(P)}catch(w){Dt({ts:tn(),kind:"error",title:"Refresh runs failed",preview:cn(String((w==null?void 0:w.message)||w||""))})}finally{E(!1)}}}async function Ji(){var w,k,P,C;ue(""),G(!1),$e(!0);try{const W=String(r.gateway_url||"").trim();if(W){const Le=W.toLowerCase();if(!Le.startsWith("http://")&&!Le.startsWith("https://"))throw new Error("Gateway URL must start with http:// or https:// (or leave it blank to use same origin / dev proxy).");try{if(String(((w=window==null?void 0:window.location)==null?void 0:w.protocol)||"")==="https:"&&Le.startsWith("http://"))throw new Error("Gateway URL is http:// but this page is https:// (mixed content is blocked). Use https:// or leave Gateway URL blank to use same origin /api proxy.");const At=new URL(W),Je=String(((k=window==null?void 0:window.location)==null?void 0:k.hostname)||"").trim().toLowerCase(),Qe=String(At.hostname||"").trim().toLowerCase(),Rt=lt=>lt==="localhost"||lt==="127.0.0.1"||lt==="::1";if(Rt(Qe)&&Je&&!Rt(Je))throw new Error("Gateway URL points to localhost, which from this device is not your machine. Use the gateway's public URL (e.g. an ngrok https URL) or leave Gateway URL blank to use same origin /api proxy.")}catch(Ke){throw new Error(String((Ke==null?void 0:Ke.message)||Ke||"Invalid Gateway URL"))}}const K=await Ct.list_bundles(),Q=jo(K);Z(Q);try{await Ki()}catch(Le){z([]),Dt({ts:tn(),kind:"error",title:"Discovery runs failed",preview:cn(String((Le==null?void 0:Le.message)||Le||""))})}const[de,Fe]=await Promise.allSettled([Ct.discovery_tools(),Ct.discovery_providers({include_models:!1})]);if(de.status==="fulfilled"){const Le=Array.isArray((P=de.value)==null?void 0:P.items)?de.value.items:[];he(Le)}else he([]),Dt({ts:tn(),kind:"error",title:"Discovery tools failed",preview:cn(String(de.reason||""))});if(Fe.status==="fulfilled"){const Le=Array.isArray((C=Fe.value)==null?void 0:C.items)?Fe.value.items:[];ce(Le)}else ce([]),Dt({ts:tn(),kind:"error",title:"Discovery providers failed",preview:cn(String(Fe.reason||""))});Pe({}),G(!0),Dt({ts:tn(),kind:"info",title:"Gateway discovery loaded",preview:cn(`workflows: ${Q.length}`)})}catch(W){ue(String((W==null?void 0:W.message)||W||"Discovery failed"))}finally{$e(!1)}}async function Fl(){if(!(U||me)){te(!0);try{await Ct.reload_bundles();const w=await Ct.list_bundles(),k=jo(w);Z(k),Dt({ts:tn(),kind:"info",title:"Bundles reloaded",preview:cn(`workflows: ${k.length}`)})}catch(w){const k=String((w==null?void 0:w.message)||w||"Bundle reload failed");Dt({ts:tn(),kind:"error",title:"Bundle reload failed",preview:cn(k),data:{error:k}})}finally{te(!1)}}}async function $(w){if(on||me||!I)return;const k=w;if(k){bn(!0),ft("");try{const P=await Ct.upload_bundle(k,{overwrite:!1,reload:!0});Dt({ts:tn(),kind:"info",title:"Bundle uploaded",preview:cn(String((P==null?void 0:P.bundle_ref)||""))});const C=await Ct.list_bundles(),W=jo(C);Z(W)}catch(P){const C=String((P==null?void 0:P.message)||P||"Upload failed");ft(C),Dt({ts:tn(),kind:"error",title:"Upload .flow failed",preview:cn(C),data:{error:C}})}finally{bn(!1);try{un.current&&(un.current.value="")}catch{}}}}function V(){Ja(),S(""),b(""),Vo(""),Y(null),ge(""),X(!1),Z([]),z([]),he([]),ce([]),Pe({}),ue(""),G(!1),Dt({ts:tn(),kind:"info",title:"Gateway disconnected"})}async function B(w){const k=String(w??"");if(k){try{await navigator.clipboard.writeText(k),_n("Copied to clipboard",2);return}catch{}try{const P=document.createElement("textarea");P.value=k,P.style.position="fixed",P.style.left="-9999px",P.style.top="0",P.style.opacity="0",document.body.appendChild(P),P.focus(),P.select(),document.execCommand("copy"),document.body.removeChild(P),_n("Copied to clipboard",2)}catch{_n("Copy failed",2)}}}m.useEffect(()=>{const w=c.trim();if(!oe||!w)return;let k=!1;const P=async()=>{try{const W=await Ct.get_run(w);k||Kt(W)}catch{}};P();const C=window.setInterval(P,2e3);return()=>{k=!0,window.clearInterval(C)}},[oe,c,Ct]);const fe=m.useMemo(()=>{const w=_e==null?void 0:_e.session_id;return typeof w=="string"?w.trim():w==null?"":String(w||"").trim()},[_e]),ve=m.useMemo(()=>{const w=String(fe||"").trim();return w||String(D||"").trim()},[fe,D]);m.useEffect(()=>{if(!I||!ve){cr(""),Us("");return}(async()=>{try{const w=await Wg(ve);cr(w)}catch{cr("")}})()},[I,ve]);const Be=x_({gateway:I?Ct:null,session_id:ve,run_id:Qn,on_error:Us,on_transcript:w=>{const k=String(w||"").trim();k&&(hs(P=>{const C=String(P||"");return C.trim()?`${C.trimEnd()}
136
+ ${k}`:k}),window.setTimeout(()=>{var P;return(P=Es.current)==null?void 0:P.focus()},0))}});function Ge(w,k){try{const P=URL.createObjectURL(w),C=document.createElement("a");C.href=P,C.download=k||"download",C.rel="noreferrer",document.body.appendChild(C),C.click(),document.body.removeChild(C),window.setTimeout(()=>URL.revokeObjectURL(P),5e3)}catch{}}async function Ye(){if(!Gs){if(!I||!fe){Uo(""),ma([]),Wo("");return}$l(!0),Wo("");try{const w=await Wg(fe);Uo(w);const k=await Ct.list_run_artifacts(w,{limit:800}),C=(Array.isArray(k==null?void 0:k.items)?k.items:[]).filter(W=>{const K=W==null?void 0:W.tags;return K&&typeof K=="object"&&String(K.kind||"").trim()==="attachment"});ma(C)}catch(w){const k=String((w==null?void 0:w.message)||w||"Failed to load session attachments"),P=k.toLowerCase();k.includes("404")||P.includes("session_memory_")&&P.includes("not found")||P.includes('"detail"')&&P.includes("not found")&&P.includes("session_memory_")?(ma([]),Wo("")):(ma([]),Wo(k)),Uo("")}finally{$l(!1)}}}async function at(w){const k=String(ui||"").trim();if(!k){_n("No session attachment store yet",2);return}const P=String((w==null?void 0:w.artifact_id)||"").trim();if(!P)return;const C=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},W=String(C.filename||"").trim(),K=String(C.path||"").trim(),Q=W||(K?K.split("/").pop():"")||P,de=Hg(Q);try{const Fe=await Ct.download_run_artifact_content(k,P);Ge(Fe,de),_n("Downloaded attachment",2)}catch(Fe){_n(String((Fe==null?void 0:Fe.message)||Fe||"Download failed"),3)}}async function gn(w){const k=String(ui||"").trim(),P=String((w==null?void 0:w.artifact_id)||"").trim();if(!k||!P)return;const C=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},W=String(C.filename||"").trim(),K=String(C.path||"").trim(),Q=K?`@${K}`:W||P,de=typeof(w==null?void 0:w.size_bytes)=="number"?Number(w.size_bytes):null,Fe=String((w==null?void 0:w.content_type)||C.content_type||"").trim().toLowerCase();if(go(Q),Ui(""),ha(""),po(!0),typeof de=="number"&&de>1e6){Ui(`(Attachment is ${de.toLocaleString()} bytes; download to view.)`);return}if(!(!Fe||Fe.startsWith("text/")||Fe.includes("json")||Fe.includes("yaml")||Fe.includes("toml")||Fe.includes("xml"))){Ui(`(Binary attachment: ${Fe||"unknown"}; download to view.)`);return}pa(!0);try{const At=await(await Ct.download_run_artifact_content(k,P)).text(),Je=14e3,Qe=At.length>Je?`${At.slice(0,Math.max(0,Je-1))}…`:At;Ui(Qe)}catch(Ke){ha(String((Ke==null?void 0:Ke.message)||Ke||"Preview failed"))}finally{pa(!1)}}m.useEffect(()=>{Ye()},[Ct,I,fe]);function Dt(w){const k=String(w.id||"").trim()||Wr();Nt(P=>[{...w,id:k},...P].slice(0,800))}function _n(w,k){or(w),_r.current&&window.clearTimeout(_r.current),Jn(!1),window.requestAnimationFrame(()=>Jn(!0)),_r.current=window.setTimeout(()=>{Jn(!1),_r.current=null},1500),Ce.current&&(window.clearTimeout(Ce.current),Ce.current=null),k>0&&(Ce.current=window.setTimeout(()=>{or(""),Ce.current=null},Math.max(1,k)*1e3))}function sn(w,k){const P=String(w||"").trim(),C=String(k||"").trim();if(!C)return"";const W=P?String(bo.current[P]||"").trim():"";return W?`${W}::${C}`:C}function zs(w,k,P){const C=String(w||"").trim(),W=String(k||"").trim(),K=String(P||"").trim();if(!C||!W||!K)return;const Q=sn(C,W);Q&&(bo.current[K]=Q,Xs.current[K]=C,Hi.current[K]={parent_run_id:C,parent_node_id:W},kn.current.has(K)||(kn.current.add(K),Yr(de=>de.includes(K)?de:[...de,K])))}function Dr(w){const k=String(w||"").trim();if(!k)return;const P=Date.now(),C=Ci.current;Ci.current=k,xa(P),wo(W=>{const K={};for(const[Le,Ke]of Object.entries(W))typeof Ke=="number"&&Ke>P&&(K[Le]=Ke);K[k]=Math.max(K[k]||0,P+2e3),C&&C!==k&&(K[C]=Math.max(K[C]||0,P+2e3));const Q=Object.keys(K);if(Q.length<=200)return K;const de=Q.sort((Le,Ke)=>(K[Ke]||0)-(K[Le]||0)).slice(0,200),Fe={};for(const Le of de)Fe[Le]=K[Le]||0;return Fe}),Ni(W=>{if(typeof W[k]=="number")return W;const K={...W,[k]:P};if(Yo.current.push(k),Yo.current.length>8e3){const Q=Yo.current.splice(0,1500);for(const de of Q)delete K[de]}return K}),Tr.current&&window.clearTimeout(Tr.current),Tr.current=window.setTimeout(()=>{const W=Date.now();wo(K=>{const Q={};for(const[de,Fe]of Object.entries(K))typeof Fe=="number"&&Fe>W&&(Q[de]=Fe);return Q}),xa(W),Tr.current=null},2200)}function $i(w){var Qe,Rt;gt.current=w.cursor,Ae(w.cursor),dt(lt=>[...lt,{cursor:w.cursor,record:w.record}]),c.trim()&&Js.current.add(`${c.trim()}:${w.cursor}`);const k=Td(w.record),P=k&&k.name?Lu(k.name):"",C=w.record,W=typeof(C==null?void 0:C.node_id)=="string"?C.node_id:"",K=typeof(C==null?void 0:C.status)=="string"?C.status:"",Q=typeof((Qe=C==null?void 0:C.effect)==null?void 0:Qe.type)=="string"?C.effect.type:"",de=typeof(C==null?void 0:C.run_id)=="string"?C.run_id:"",Fe=de||c.trim();if(P==="abstract.status"&&Fe===c.trim()){const{text:lt,duration:yt}=Vc(k==null?void 0:k.payload);_n(lt,yt)}const Le=W?sn(Fe,W):"";if(K==="waiting"){const lt=vl(C);if(String((lt==null?void 0:lt.reason)||"").trim()==="subworkflow"){const Ht=typeof((Rt=lt==null?void 0:lt.details)==null?void 0:Rt.sub_run_id)=="string"?String(lt.details.sub_run_id):"";Ht&&W&&zs(Fe,W,Ht)}}if(W&&(Dr(sn(Fe,W)),K==="waiting"||K==="running")){const lt=sn(Fe,W);lt&&(Ci.current=lt,Wi(lt))}let Ke="step",At=Le||W||"(node?)",Je="";if(k&&k.name&&Em(k.name))Ke=P==="abstract.message"?"message":"event",At=P||k.name,Je=cn(Vc(k==null?void 0:k.payload).text);else if(C!=null&&C.error)Ke="error",At="error",Je=cn(ca(C.error,360));else if(K==="waiting"){const lt=vl(C),yt=String((lt==null?void 0:lt.reason)||"").trim();Je=cn(yt?`waiting • ${yt}`:"waiting")}else C!=null&&C.result?Je=cn(ca(C.result,360)):Q?Je=cn(Q):Je=cn($m(C));Dt({id:`step:${de||c.trim()||"?"}:${w.cursor}`,ts:String((C==null?void 0:C.ended_at)||(C==null?void 0:C.started_at)||tn()),kind:Ke,title:At,preview:Je,data:C,cursor:w.cursor,run_id:de||c.trim()||void 0,node_id:Le||W,status:K,effect_type:Q,emit_name:P||(k==null?void 0:k.name)||void 0})}function Qs(w,k){var Rt,lt;rs.current=Math.max(rs.current,k.cursor);const P=`${w}:${k.cursor}`;if(!!Js.current.has(P))return;Js.current.add(P),Mt(yt=>[...yt,{run_id:w,cursor:k.cursor,record:k.record}]);const W=Td(k.record),K=W&&W.name?Lu(W.name):"",Q=k.record,de=typeof(Q==null?void 0:Q.node_id)=="string"?Q.node_id:"",Fe=de?sn(w,de):"",Le=typeof(Q==null?void 0:Q.status)=="string"?Q.status:"",Ke=typeof((Rt=Q==null?void 0:Q.effect)==null?void 0:Rt.type)=="string"?Q.effect.type:"";if(Le==="waiting"){const yt=vl(Q);if(String((yt==null?void 0:yt.reason)||"").trim()==="subworkflow"){const Un=typeof((lt=yt==null?void 0:yt.details)==null?void 0:lt.sub_run_id)=="string"?String(yt.details.sub_run_id):"";Un&&de&&zs(w,de,Un),Un&&xs.current.trim()===String(w||"").trim()&&(xs.current=Un,Ei(Un))}}if(de&&(Dr(sn(w,de)),Le==="waiting"||Le==="running")){const yt=sn(w,de);yt&&(Ci.current=yt,Wi(yt))}if((Le==="completed"||Le==="failed")&&xs.current.trim()===String(w||"").trim()){const yt=String(Xs.current[String(w||"").trim()]||"").trim();yt&&yt!==c.trim()?(xs.current=yt,Ei(yt)):(xs.current="",Ei(""))}if(K==="abstract.status"&&w===c.trim()){const{text:yt,duration:Ht}=Vc(W==null?void 0:W.payload);_n(yt,Ht)}let At="step",Je=Fe||de||"(node?)",Qe="";if(W&&W.name&&Em(W.name))At=K==="abstract.message"?"message":"event",Je=`subrun • ${K||W.name}`,Qe=cn(Vc(W==null?void 0:W.payload).text);else if(Q!=null&&Q.error)At="error",Je="error",Qe=cn(ca(Q.error,360));else if(Le==="waiting"){const yt=vl(Q),Ht=String((yt==null?void 0:yt.reason)||"").trim();Qe=cn(Ht?`waiting • ${Ht}`:"waiting")}else Q!=null&&Q.result?Qe=cn(ca(Q.result,360)):Ke?Qe=cn(Ke):Qe=cn($m(Q));Dt({id:`step:${w}:${k.cursor}`,ts:String((Q==null?void 0:Q.ended_at)||(Q==null?void 0:Q.started_at)||tn()),kind:At,title:Je,preview:Qe,data:Q,cursor:k.cursor,run_id:w,node_id:Fe||de,status:Le,effect_type:Ke,emit_name:K||(W==null?void 0:W.name)||""})}function vs(w,k){var lt,yt;const P=String(w||"").trim();if(!P)return;const C=`${P}:${k.cursor}`;if(!!Js.current.has(C))return;Js.current.add(C),Mt(Ht=>[...Ht,{run_id:P,cursor:k.cursor,record:k.record}]);const K=Td(k.record),Q=K&&K.name?Lu(K.name):"",de=k.record,Fe=typeof(de==null?void 0:de.node_id)=="string"?de.node_id:"",Le=Fe?sn(P,Fe):"",Ke=typeof(de==null?void 0:de.status)=="string"?de.status:"",At=typeof((lt=de==null?void 0:de.effect)==null?void 0:lt.type)=="string"?de.effect.type:"";if(Ke==="waiting"){const Ht=vl(de);if(String((Ht==null?void 0:Ht.reason)||"").trim()==="subworkflow"){const tt=typeof((yt=Ht==null?void 0:Ht.details)==null?void 0:yt.sub_run_id)=="string"?String(Ht.details.sub_run_id):"";tt&&Fe&&zs(P,Fe,tt)}}if(Fe&&(Dr(sn(P,Fe)),Ke==="waiting"||Ke==="running")){const Ht=sn(P,Fe);Ht&&(Ci.current=Ht,Wi(Ht))}if(Q==="abstract.status"&&P===c.trim()){const{text:Ht,duration:Un}=Vc(K==null?void 0:K.payload);_n(Ht,Un)}let Je="step",Qe=Le||Fe||"(node?)",Rt="";if(K&&K.name&&Em(K.name))Je=Q==="abstract.message"?"message":"event",Qe=`subrun • ${Q||K.name}`,Rt=cn(Vc(K==null?void 0:K.payload).text);else if(de!=null&&de.error)Je="error",Qe="error",Rt=cn(ca(de.error,360));else if(Ke==="waiting"){const Ht=vl(de),Un=String((Ht==null?void 0:Ht.reason)||"").trim();Rt=cn(Un?`waiting • ${Un}`:"waiting")}else de!=null&&de.result?Rt=cn(ca(de.result,360)):At?Rt=cn(At):Rt=cn($m(de));Dt({id:`step:${P}:${k.cursor}`,ts:String((de==null?void 0:de.ended_at)||(de==null?void 0:de.started_at)||tn()),kind:Je,title:Qe,preview:Rt,data:de,cursor:k.cursor,run_id:P,node_id:Le||Fe,status:Ke,effect_type:At,emit_name:Q||(K==null?void 0:K.name)||""})}async function fi(w,k){let P=k.after;for(;;){const C=await Ct.get_ledger(w,{after:P,limit:200}),W=Array.isArray(C.items)?C.items:[];if(!W.length)return Ae(P),gt.current=P,P;const K=P;for(let Q=0;Q<W.length;Q++){const de=W[Q];$i({cursor:K+Q+1,record:de})}P=typeof C.next_after=="number"?C.next_after:P}}async function Yn(w){const k=String(w||"").trim();ft(""),Ue(!0),be(!1),dt([]),Ae(0),gt.current=0,Mt([]),Js.current=new Set,Nt([]),Gt({}),Zn({}),Bi("steps"),El(""),or(""),Kt(null),mr(""),Wi(""),Ci.current="",wo({}),Ni({}),Yo.current=[],xa(Date.now()),bo.current=k?{[k]:""}:{},Xs.current={},Hi.current={},kn.current=new Set,Yr([]),ys.current="",xs.current="",Ei(""),xr.current={},Tr.current&&window.clearTimeout(Tr.current),Tr.current=null,Cn.current&&window.clearTimeout(Cn.current),Cn.current=null,As.current&&As.current.abort(),Ar.current&&Ar.current.abort(),Ar.current=null,rs.current=0,Vi("");const P=new AbortController;As.current=P;let C=!1;try{let K="",Q="";try{const de=await Ct.get_run(k);Kt(de);const Fe=typeof(de==null?void 0:de.workflow_id)=="string"?String(de.workflow_id):"",Le=Cm(Fe);Le&&(K=Le.bundle_id,Q=Le.flow_id)}catch{}try{const de=await Ct.get_run_input_data(k);typeof(de==null?void 0:de.bundle_id)=="string"&&(K=String(de.bundle_id||"").trim()||K),typeof(de==null?void 0:de.flow_id)=="string"&&(Q=String(de.flow_id||"").trim()||Q);const Fe=de&&typeof de.input_data=="object"&&de.input_data&&!Array.isArray(de.input_data)?de.input_data:null;Fe&&A(JSON.stringify(Fe,null,2))}catch{}K&&Q&&(S(K),b(Q),Vo(Q),await Xa(K)),await fi(k,{after:0}),be(!0),Dt({ts:tn(),kind:"info",title:`Attached to run ${k}`,data:{run_id:k}}),C=!0}catch(K){const Q=String((K==null?void 0:K.message)||K||"unknown error");ft(Q),Dt({ts:tn(),kind:"error",title:"Connection error",preview:cn(Q),data:{error:Q}}),be(!1)}finally{Ue(!1)}if(!C||P.signal.aborted)return;(async()=>{let K=250;for(;!P.signal.aborted;){try{const Q=await fi(k,{after:gt.current});await Ct.stream_ledger(k,{after:Q,on_step:$i,signal:P.signal})}catch(Q){if(P.signal.aborted)break;const de=String((Q==null?void 0:Q.message)||Q||"stream error");Dt({ts:tn(),kind:"error",title:"Ledger stream error (will retry)",preview:cn(de),data:{error:de}})}if(P.signal.aborted)break;await new Promise(Q=>setTimeout(Q,K)),K=Math.min(5e3,Math.floor(K*1.6))}})()}async function Hn(){const w=v.trim(),k=j.trim();if(!w||!k){const P="Select a workflow first (Start Workflow → pick a workflow).";return ft(P),P}ft(""),Ue(!0);try{let P={};const C=M.trim();if(C)try{if(P=JSON.parse(C),typeof P!="object"||P===null||Array.isArray(P))throw new Error("input_data must be a JSON object")}catch(Le){const Ke=`Invalid input_data JSON: ${String((Le==null?void 0:Le.message)||Le)}`;return ft(Ke),Ke}const W=(Yi||[]).find(Le=>Le&&typeof Le=="object"&&Le.id==="prompt"),K=W&&typeof W=="object"&&Object.prototype.hasOwnProperty.call(W,"default"),Q=P==null?void 0:P.prompt,de=typeof Q=="string"?Q.trim():"";if(W&&!K&&!de){const Le="Missing required input_data.prompt";return ft(Le),Le}const Fe=await Ct.start_run(w,P,{bundle_id:k,session_id:String(D||"").trim()||null});return _(Fe),d(Fe),nt(""),await Yn(Fe),Ki(),null}catch(P){const C=String((P==null?void 0:P.message)||P||"start failed");return ft(C),C}finally{Ue(!1)}}async function Dl(w){const k=v.trim(),P=j.trim();if(!k||!P){const C="Select a workflow first (Start Workflow → pick a workflow).";return ft(C),C}if(Jt)return"Schedule already in progress";Oe(""),ft(""),vt(!0),Ue(!0);try{let C={};const W=M.trim();if(W)try{if(C=JSON.parse(W),typeof C!="object"||C===null||Array.isArray(C))throw new Error("input_data must be a JSON object")}catch(ot){const Zt=`Invalid input_data JSON: ${String((ot==null?void 0:ot.message)||ot)}`;return Oe(Zt),Zt}const K=(Yi||[]).find(ot=>ot&&typeof ot=="object"&&ot.id==="prompt"),Q=K&&typeof K=="object"&&Object.prototype.hasOwnProperty.call(K,"default"),de=C==null?void 0:C.prompt,Fe=typeof de=="string"?de.trim():"";if(K&&!Q&&!Fe){const ot="Missing required input_data.prompt";return Oe(ot),ot}let Le=null,Ke=null;if(w.start_mode==="now")Le="now",Ke=new Date;else{const ot=String(w.start_at_local||"").trim();if(!ot){const zn="Pick a start date/time (or choose 'now').";return Oe(zn),zn}const Zt=new Date(ot);if(!Number.isFinite(Zt.getTime())){const zn="Invalid start date/time";return Oe(zn),zn}Le=Zt.toISOString(),Ke=new Date(Le)}const At=Number.isFinite(w.every_n)?w.every_n:1,Je=Math.max(1,Math.min(1e4,Math.floor(At))),Qe=String(w.every_unit||"").trim();let Rt="1d";Qe==="minutes"?Rt=`${Je}m`:Qe==="hours"?Rt=`${Je}h`:Qe==="days"?Rt=`${Je}d`:Qe==="weeks"?Rt=`${Je*7}d`:Qe==="months"&&(Rt=`${Je*30}d`);const lt=w.repeat_mode,yt=lt==="once"?null:Rt,Ht=lt==="count"?Math.max(1,Math.floor(Number.isFinite(w.repeat_count)?w.repeat_count:1)):null;let Un=null;if(lt==="until"){const ot=String(w.repeat_until_date_local||"").trim(),Zt=String(w.repeat_until_time_local||"").trim()||"23:59";if(!ot){const Yt="Pick an end date (Until).";return Oe(Yt),Yt}const zn=new Date(`${ot}T${Zt}`);if(!Number.isFinite(zn.getTime())){const Yt="Invalid end date/time";return Oe(Yt),Yt}if(Un=zn.toISOString(),Ke&&Number.isFinite(Ke.getTime())&&zn.getTime()<Ke.getTime()){const Yt="End date must be after the start date.";return Oe(Yt),Yt}}const tt=await Ct.schedule_run({bundle_id:P,flow_id:k,input_data:C,start_at:Le,interval:yt,repeat_count:Ht,repeat_until:Un,share_context:!!w.share_context,session_id:String(D||"").trim()||null});return _(tt),d(tt),Oe(""),await Yn(tt),Ki(),null}catch(C){const W=String((C==null?void 0:C.message)||C||"schedule failed");return Oe(W),ft(W),W}finally{Ue(!1),vt(!1)}}async function Ka(){nt(""),Oe("");const k=It!=="now"||ae!=="once"?await Dl({start_mode:It,start_at_local:Nr,repeat_mode:ae,every_n:st,every_unit:_t,repeat_count:Ot,repeat_until_date_local:nn,repeat_until_time_local:dn,share_context:Qt}):await Hn();k&&nt(k)}async function mi(w){const k=String(w||"").trim();k&&(ft(""),_(k),d(k),await Yn(k))}m.useEffect(()=>{const w=String(g||"").trim();if(!w)return;let k=!1;return(async()=>{try{if(I||await Ji(),k)return;await mi(w)}catch(P){k||ft(String((P==null?void 0:P.message)||P||"Failed to attach run from URL"))}finally{k||x("")}})(),()=>{k=!0}},[g]);function Ja(){As.current&&As.current.abort(),As.current=null,Ar.current&&Ar.current.abort(),Ar.current=null,rs.current=0,Vi(""),d(""),_(""),bo.current={},Xs.current={},Hi.current={},kn.current=new Set,Yr([]),ys.current="",xs.current="",Ei(""),xr.current={},mr(""),Tr.current&&window.clearTimeout(Tr.current),Tr.current=null,Cn.current&&window.clearTimeout(Cn.current),Cn.current=null,be(!1),Ue(!1),ct(!1),gt.current=0,Ae(0),dt([]),Mt([]),Js.current=new Set,Kt(null),Nt([]),Gt({}),Wi(""),Ci.current="",wo({}),Ni({}),Yo.current=[],xa(Date.now()),_n("",-1),ft(""),qi(!1),Gi(""),hr([]),hs(""),ar(""),Zr(!1),Or(!1),Vs(""),ci(""),es(""),Fi([]),Ts(!1),Ms(""),Di(""),R(!1),je("")}m.useEffect(()=>{hr([]),hs(""),ar(""),Zr(!1),Or(!1),Vs(""),ci(""),es(""),Fi([]),Ts(!1),Ms(""),Di(""),R(!1),je("")},[c]),m.useEffect(()=>{jn==="chat"&&c.trim()&&I&&ss()},[jn,c,I,_e==null?void 0:_e.workflow_id]);async function Sa(w,k){const P=c.trim();if(!P)return ft("Missing run_id"),"Missing run_id";ft("");try{const C={},W=String((k==null?void 0:k.reason)||"").trim();W&&(C.reason=W),await Ct.submit_command({command_id:Wr(),run_id:P,type:w,payload:C,client_id:"web_pwa"}),Dt({ts:tn(),kind:"info",title:`${w} submitted`,preview:W?`reason: ${W}`:"",data:{type:w,reason:W}});try{const K=await Ct.get_run(P);Kt(K)}catch{}return null}catch(C){const W=String((C==null?void 0:C.message)||C||`${w} failed`);return ft(W),W}}async function hc(){var P;const w=c.trim();if(!w){ft("Select a run first.");return}if(!I){ft("Connect to the gateway first.");return}if(De)return;const k=String(((P=_e==null?void 0:_e.waiting)==null?void 0:P.reason)||"").trim().toLowerCase()||String(wr||"").trim().toLowerCase();if(!os||zr||gi||Qi.toLowerCase()!=="waiting"||k!=="until"){ft("This run is not a scheduled wait that can be triggered now.");return}ft(""),ct(!0);try{const C={payload:{mode:"run_now",requested_at:tn()}},W=String(ko||"").trim();W&&(C.wait_key=W),await Ct.submit_command({command_id:Wr(),run_id:w,type:"resume",payload:C,client_id:"web_pwa"}),Dt({ts:tn(),kind:"info",title:"Scheduled run triggered",preview:cn(`run ${w}`),data:{run_id:w,until:hi||null}});try{const K=await Ct.get_run(w);Kt(K)}catch{}}catch(C){ft(String((C==null?void 0:C.message)||C||"Failed to trigger scheduled run"))}finally{ct(!1)}}async function iu(w){const k=c.trim();if(!k)return ft("Missing run_id"),"Missing run_id";if(lr)return"Schedule update already in progress";const P=String(w.interval||"").trim();if(!/^\s*(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)\s*$/i.test(P)){const W="Invalid interval (expected like '20m', '1h', '0.5s', '250ms')";return ir(W),W}ir(""),ft(""),gr(!0),Ue(!0);try{await Ct.submit_command({command_id:Wr(),run_id:k,type:"update_schedule",payload:{interval:P,apply_immediately:w.apply_immediately!==!1},client_id:"web_pwa"}),Dt({ts:tn(),kind:"info",title:"Schedule updated",preview:cn(`interval: ${P}`),data:{interval:P},run_id:k});try{const W=await Ct.get_run(k);Kt(W)}catch{}return null}catch(W){const K=String((W==null?void 0:W.message)||W||"update_schedule failed");return ir(K),ft(K),K}finally{Ue(!1),gr(!1)}}async function Qa(w){const k=c.trim();if(!k)return ft("Missing run_id"),"Missing run_id";if(Ze)return"Compaction already in progress";const P=typeof(w==null?void 0:w.preserve_recent)=="number"?w.preserve_recent:Si,C=Math.max(0,Math.min(500,Math.floor(Number.isFinite(P)?P:6))),W=(w==null?void 0:w.compression_mode)||Ir,K=String((w==null?void 0:w.focus)??Ds??"").trim();Kn(""),ft(""),bt(!0),Ue(!0);try{const Q={preserve_recent:C,compression_mode:W};return K&&(Q.focus=K),await Ct.submit_command({command_id:Wr(),run_id:k,type:"compact_memory",payload:Q,client_id:"web_pwa"}),Dt({ts:tn(),kind:"info",title:"Compaction requested",preview:cn(`mode: ${W} • preserve_recent: ${C}`),data:Q,run_id:k}),null}catch(Q){const de=String((Q==null?void 0:Q.message)||Q||"compact_memory failed");return Kn(de),ft(de),de}finally{Ue(!1),bt(!1)}}async function Jo(){const w=c.trim();if(!w){Gi("Missing run_id");return}if(!So){Gi(""),qi(!0);try{const k=r.maintenance_ai_provider.trim(),P=r.maintenance_ai_model.trim();await Ct.generate_run_summary(w,{provider:k||void 0,model:P||void 0,include_subruns:!0}),Dt({ts:tn(),kind:"info",title:"Summary generation requested",preview:cn(`run ${w}`)})}catch(k){Gi(String((k==null?void 0:k.message)||k||"Failed to generate summary"))}finally{qi(!1)}}}async function Xn(){const w=c.trim();if(!w){ar("Select a run first.");return}if(!I){ar("Connect to the gateway first.");return}const k=Bs.trim();if(!k||ps)return;if(Be.voice_ptt_busy){Us("Wait for transcription to finish.");return}ar(""),Us(""),Zr(!0);const C={id:`local:${Wr()}`,role:"user",content:k,ts:tn()};hr(W=>[...W,C]),hs("");try{const W=[...Mn,C].slice(-20).map(Ke=>({role:Ke.role,content:Ke.content})),K=r.maintenance_ai_provider.trim(),Q=r.maintenance_ai_model.trim(),de=await Ct.run_chat(w,{provider:K||void 0,model:Q||void 0,include_subruns:!0,messages:W}),Fe=String((de==null?void 0:de.answer)||"").trim()||"(empty response)",Le=String((de==null?void 0:de.generated_at)||"").trim()||tn();hr(Ke=>[...Ke,{id:`local:${Wr()}`,role:"assistant",content:Fe,ts:Le}])}catch(W){ar(String((W==null?void 0:W.message)||W||"Chat failed")),hr(K=>[...K,{id:`local:${Wr()}`,role:"assistant",content:"(error: failed to generate answer)",ts:tn()}])}finally{Zr(!1)}}function Vn(w){const k=String(w.id||w.ts||"").trim(),P=String(w.content||"").trim();!k||!P||(Us(""),Be.toggle_tts(k,P))}function Qo(w){const k=String(w.id||w.ts||"").trim(),P=Be.tts_playback;return!k||!P.key||P.key!==k?"idle":P.status}function Xr(w){if(!Mn.length)return;const k=c.trim(),P=k?`Run ${k}`:"Chat",C=xv(Mn.map(W=>({role:W.role,content:W.content,ts:W.ts})),{heading:P});if(w==="download"){const W=new Date().toISOString().slice(0,19).replace(/[:T]/g,"-"),K=`abstractobserver-chat-${Hg(k||"run")}-${W}.md`;vv({filename:K,text:C,mime:"text/markdown;charset=utf-8"});return}(async()=>{const W=await js(C);$r(W?"copied":"failed"),window.setTimeout(()=>$r("idle"),900)})()}async function ss(){const w=typeof(_e==null?void 0:_e.workflow_id)=="string"?String(_e.workflow_id).trim():"";if(!w){Fi([]);return}if(I&&!gs){Ms(""),Ts(!0);try{const k=await Ct.list_runs({limit:200,workflow_id:w,root_only:!0}),P=Array.isArray(k==null?void 0:k.items)?k.items:[],C=[];for(const Le of P){const Ke=typeof(Le==null?void 0:Le.run_id)=="string"?String(Le.run_id).trim():"";if(!Ke)continue;const At=typeof(Le==null?void 0:Le.ledger_len)=="number"?Number(Le.ledger_len):0;C.push({run_id:Ke,ledger_len:Number.isFinite(At)?At:0})}if(!C.length){Fi([]);return}const W=400,K=C.map(Le=>({run_id:Le.run_id,after:Math.max(0,(Le.ledger_len||0)-W)})),Q=await Ct.get_ledger_batch({runs:K,limit:W}),de=[],Fe=new Set;for(const Le of C){const Ke=Q!=null&&Q.runs&&typeof Q.runs=="object"?Q.runs[Le.run_id]:null,At=Array.isArray(Ke==null?void 0:Ke.items)?Ke.items:[];for(const Je of At){const Qe=Je==null?void 0:Je.effect;if(!Qe||typeof Qe!="object"||String(Qe.type||"")!=="emit_event")continue;const Rt=Qe.payload;if(!Rt||typeof Rt!="object"||String(Rt.name||"")!=="abstract.chat.thread")continue;const lt=Rt.payload;if(!lt||typeof lt!="object")continue;const yt=typeof lt.thread_id=="string"?String(lt.thread_id).trim():"";if(!yt||Fe.has(yt))continue;Fe.add(yt);const Ht=typeof lt.created_at=="string"?String(lt.created_at):"",Un=typeof lt.title=="string"?String(lt.title):"",tt=typeof lt.workflow_id=="string"?String(lt.workflow_id):w,ot=typeof lt.run_id=="string"?String(lt.run_id):Le.run_id,Zt=typeof lt.provider=="string"?String(lt.provider):"",zn=typeof lt.model=="string"?String(lt.model):"",Yt=typeof lt.message_count=="number"?Number(lt.message_count):null,Br=lt.chat_artifact,Mi=Br&&typeof Br=="object"&&typeof Br.$artifact=="string"?String(Br.$artifact):"";Mi&&de.push({thread_id:yt,created_at:Ht,title:Un||`Chat ${yt.slice(0,8)}`,run_id:ot,workflow_id:tt,message_count:Yt,provider:Zt,model:zn,artifact_id:Mi})}}de.sort((Le,Ke)=>String(Ke.created_at||"").localeCompare(String(Le.created_at||""))),Fi(de)}catch(k){Ms(String((k==null?void 0:k.message)||k||"Failed to load saved discussions"))}finally{Ts(!1)}}}async function ja(){const w=c.trim();if(!w){Vs("Select a run first.");return}if(!I){Vs("Connect to the gateway first.");return}if(Mn.length&&!Hs){Vs(""),Or(!0);try{const k=r.maintenance_ai_provider.trim(),P=r.maintenance_ai_model.trim(),C=await Ct.save_chat_thread(w,{provider:k||void 0,model:P||void 0,include_subruns:!0,messages:Mn.map(Q=>({role:Q.role,content:Q.content,ts:Q.ts}))}),W=typeof(C==null?void 0:C.created_at)=="string"?String(C.created_at):tn();ci(W);try{const Q=JSON.stringify(Mn.map(de=>({role:de.role,content:de.content,ts:de.ts})));es(Q)}catch{es("1")}typeof(C==null?void 0:C.thread_id)=="string"&&String(C.thread_id).trim()&&Di(String(C.thread_id).trim());const K=!!(C!=null&&C.duplicate);_n(K?"Already saved":"Saved discussion",2),await ss()}catch(k){Vs(String((k==null?void 0:k.message)||k||"Failed to save discussion"))}finally{Or(!1)}}}async function Za(){const w=String(fo||"").trim();if(!w)return;const k=uo.find(W=>String(W.thread_id||"").trim()===w)||null;if(!k){je("Saved discussion not found (refresh list).");return}if(!I){je("Connect to the gateway first.");return}if(ns)return;const P=Mn.length>0,C=(()=>{if(!P)return!1;if(!Oi)return!0;try{return JSON.stringify(Mn.map(K=>({role:K.role,content:K.content,ts:K.ts})))!==Oi}catch{return!0}})();if(!(P&&C&&!window.confirm("Replace the current chat with the selected saved discussion? Unsaved changes will be lost."))){je(""),R(!0);try{const K=await(await Ct.download_run_artifact_content(k.run_id,k.artifact_id)).text(),Q=JSON.parse(K),de=Array.isArray(Q==null?void 0:Q.messages)?Q.messages:[],Fe=typeof(Q==null?void 0:Q.created_at)=="string"?String(Q.created_at):String(k.created_at||""),Le=[];for(let Ke=0;Ke<de.length;Ke++){const At=de[Ke];if(!At||typeof At!="object")continue;const Je=String(At.role||"").trim()==="assistant"?"assistant":"user",Qe=typeof At.content=="string"?String(At.content):"";if(!Qe.trim())continue;const Rt=typeof At.ts=="string"?String(At.ts):Fe||tn();Le.push({id:`thread:${w}:${Ke}`,role:Je,content:Qe.trim(),ts:Rt})}hr(Le),hs(""),ar(""),Vs(""),ci(Fe||"");try{const Ke=JSON.stringify(Le.map(At=>({role:At.role,content:At.content,ts:At.ts})));es(Ke)}catch{es("1")}_n("Loaded discussion",2)}catch(W){je(String((W==null?void 0:W.message)||W||"Failed to load saved discussion"))}finally{R(!1)}}}async function is(w){const k=c.trim(),P=String((mn==null?void 0:mn.wait_key)||"").trim();if(!k||!P){ft("No active wait to resume");return}if(String((mn==null?void 0:mn.reason)||"").trim()==="subworkflow"){ft("This run is waiting on a subworkflow; attach to the child run instead of resuming manually.");return}ft(""),ct(!0);try{await Ct.submit_command({command_id:Wr(),run_id:k,type:"resume",payload:{wait_key:P,payload:w||{}},client_id:"web_pwa"}),Dt({ts:tn(),kind:"info",title:"Resume submitted",preview:cn(`wait_key: ${P}`),data:{wait_key:P,payload:w||{}}}),mr(P),Cn.current&&window.clearTimeout(Cn.current),Cn.current=window.setTimeout(()=>{mr(C=>C===P?"":C)},2e3)}catch(C){ft(String((C==null?void 0:C.message)||C||"resume failed"))}finally{ct(!1)}}async function pc(w){if(!Ba){ft("No worker configured");return}if(!De){ft(""),ct(!0);try{const k=[];for(const P of w){const C=await Ba.call_tool(P);k.push(C)}await is({mode:"executed",results:k})}finally{ct(!1)}}}const Bl=m.useMemo(()=>m_(mn),[mn]),ko=String((mn==null?void 0:mn.wait_key)||"").trim(),wr=String((mn==null?void 0:mn.reason)||"").trim(),hi=typeof(mn==null?void 0:mn.until)=="string"?String(mn.until):"",No=wr==="until"&&!!hi,Ul=_1(vr)&&(!!ko||No),ou=wr==="user",gc=wr==="event"?Lu(u1(ko)):"",vf=wr==="event"&&gc==="abstract.ask",Zo=Bl.length>0,el=Ul&&ko&&(ou||vf||Zo)&&Cs!==ko,pi=typeof((Cc=mn==null?void 0:mn.details)==null?void 0:Cc.sub_run_id)=="string"?String(mn.details.sub_run_id):"",Qi=typeof(_e==null?void 0:_e.status)=="string"?String(_e.status):"",gi=!!(_e!=null&&_e.paused),zr=Qi==="completed"||Qi==="failed"||Qi==="cancelled",er=_e!=null&&_e.schedule&&typeof _e.schedule=="object"?_e.schedule:null,Rs=typeof(er==null?void 0:er.interval)=="string"?String(er.interval).trim():"",Co=typeof(er==null?void 0:er.share_context)=="boolean"?!!er.share_context:null,Zi=typeof(er==null?void 0:er.repeat_count)=="number"?Number(er.repeat_count):null,os=!!(_e!=null&&_e.is_scheduled)||!!er||typeof(_e==null?void 0:_e.workflow_id)=="string"&&String(_e.workflow_id).startsWith("scheduled:"),tl=os&&!!Rs,_c=os?gi?"Resume schedule":"Suspend schedule":Qi==="running"&&!gi?"Pause":"Resume",yc=os?gi?"resume":"pause":_c==="Pause"?"pause":"resume",Zs=os?!c.trim()||Se||De||zr:!c.trim()||Se||De||zr||yc==="resume"&&!gi,ei=os&&!gi&&!zr&&!Se&&!De&&Qi.toLowerCase()==="waiting"&&(String(((cu=_e==null?void 0:_e.waiting)==null?void 0:cu.reason)||"").trim().toLowerCase()==="until"||wr==="until")&&!!String(hi||"").trim(),xn=(to=_e==null?void 0:_e.limits)==null?void 0:to.tokens,ws=typeof(xn==null?void 0:xn.pct)=="number"?Number(xn.pct):null,au=xn==null?void 0:xn.estimated_used,lu=(xn==null?void 0:xn.max_input_tokens)??(xn==null?void 0:xn.max_tokens),Vt=m.useMemo(()=>{var Un;const w={};for(const tt of re||[]){if(!tt||typeof tt!="object")continue;const ot=String(tt.name||"").trim();ot&&(w[ot]=tt)}const k=tt=>{const ot=w[String(tt||"").trim()],Zt=ot&&typeof ot=="object"?ot.toolset:"";return typeof Zt=="string"?Zt.trim():""},P=tt=>tt==null?"":typeof tt=="boolean"?tt?"true":"false":typeof tt=="number"?String(tt):typeof tt=="string"?cn(tt,{max_chars:160,max_lines:2}):cn(ca(tt,160),{max_chars:160,max_lines:2}),C=(tt,ot)=>{const Zt=String(tt||"").trim(),zn=ot&&typeof ot=="object"?ot:{},Yt=w[Zt],Br=Yt&&typeof Yt=="object"?Yt.parameters:null,Mi=Object.keys(Br&&typeof Br=="object"?Br:zn),no=[],ti=new Set;for(const Sr of Mi)typeof Sr!="string"||!Sr.trim()||ti.has(Sr)||(ti.add(Sr),Object.prototype.hasOwnProperty.call(zn,Sr)&&no.push([Sr,zn[Sr]]));for(const Sr of Object.keys(zn))ti.has(Sr)||no.push([Sr,zn[Sr]]);return no},W=(tt,ot)=>{const Zt=C(tt,ot);return Zt.length?P(Zt[0][1]):""},K=(tt,ot)=>{const Zt=String(tt||"").trim()||"tool",Yt=C(Zt,ot).slice(0,2);if(!Yt.length)return`${Zt}()`;if(Yt.length===1)return`${Zt}(${P(Yt[0][1])})`;const Br=Yt.map(([Mi,no])=>`${Mi}=${P(no)}`).join(", ");return`${Zt}(${Br})`},Q=tt=>{var id,mu,od;const ot={steps:tt.length,tool_calls_effects:0,tool_calls:0,unique_tools:0,llm_calls:0,llm_missing_responses:0,prompt_tokens:0,completion_tokens:0,total_tokens:0,started_at:"",ended_at:"",duration_s:0,errors:0},Zt=[],zn=[],Yt=[],Br=new Set,Mi=[],no=[];let ti=null,Sr=null;const rd=xt=>{if(!xt||typeof xt!="object")return"";const ro=xt.prompt;if(typeof ro=="string"&&ro.trim())return ro.trim();const Ea=xt.messages;if(Array.isArray(Ea))for(let Ai=Ea.length-1;Ai>=0;Ai--){const ni=Ea[Ai];if(!ni||typeof ni!="object"||String(ni.role||"")!=="user")continue;const cl=ni.content;if(typeof cl=="string"&&cl.trim())return cl.trim()}return""},sd=xt=>xt==null?"":typeof xt=="string"?cn(xt,{max_chars:2400,max_lines:32}):cn(Vd(xt),{max_chars:2400,max_lines:32});for(const xt of tt){const ro=typeof(xt==null?void 0:xt.run_id)=="string"?String(xt.run_id):"",Ea=typeof(xt==null?void 0:xt.node_id)=="string"?String(xt.node_id):"",Ai=String((xt==null?void 0:xt.ended_at)||(xt==null?void 0:xt.started_at)||"").trim(),ni=bl(Ai);ni!==null&&((ti===null||ni<ti)&&(ti=ni),(Sr===null||ni>Sr)&&(Sr=ni)),xt!=null&&xt.error&&(ot.errors+=1);const cl=typeof((id=xt==null?void 0:xt.effect)==null?void 0:id.type)=="string"?String(xt.effect.type):"";if(cl==="llm_call"){ot.llm_calls+=1;const dr=(mu=xt==null?void 0:xt.effect)==null?void 0:mu.payload,Lr=xt!=null&&xt.result&&typeof xt.result=="object"?xt.result.usage||xt.result.token_usage:null;let Kr=0,Ps=0,zi=0;Lr&&typeof Lr=="object"&&(Kr=Number(Lr.prompt_tokens??Lr.input_tokens??0),Ps=Number(Lr.completion_tokens??Lr.output_tokens??0),zi=Number(Lr.total_tokens??Kr+Ps),Number.isFinite(Kr)&&(ot.prompt_tokens+=Kr),Number.isFinite(Ps)&&(ot.completion_tokens+=Ps),Number.isFinite(zi)&&(ot.total_tokens+=zi));const Is=dr&&typeof dr=="object"&&typeof dr.provider=="string"?String(dr.provider):"",pu=dr&&typeof dr=="object"&&typeof dr.model=="string"?String(dr.model):"",Rc=rd(dr),ia=xt!=null&&xt.result&&typeof xt.result=="object"&&typeof xt.result.content=="string"?String(xt.result.content):xt!=null&&xt.result&&typeof xt.result=="object"&&typeof xt.result.response=="string"?String(xt.result.response):typeof(xt==null?void 0:xt.result)=="string"?String(xt.result):"",$a=!String(ia||"").trim();$a&&(ot.llm_missing_responses+=1),no.length<80&&no.push({ts:Ai,run_id:ro,node_id:Ea,provider:Is,model:pu,prompt_preview:cn(Rc,{max_chars:1800,max_lines:24}),response_preview:cn(String(ia||""),{max_chars:1800,max_lines:24}),missing_response:$a,tokens:{prompt:Number.isFinite(Kr)?Kr:0,completion:Number.isFinite(Ps)?Ps:0,total:Number.isFinite(zi)?zi:0}})}if(cl!=="tool_calls")continue;ot.tool_calls_effects+=1;const hu=(od=xt==null?void 0:xt.effect)==null?void 0:od.payload,ad=hu&&typeof hu=="object"?hu.tool_calls:null,Ls=Array.isArray(ad)?ad:[];if(!Ls.length)continue;ot.tool_calls+=Ls.length;const zc=xt!=null&&xt.result&&typeof xt.result=="object"?xt.result.results:null,ul=Array.isArray(zc)?zc:[],Kl=new Map;for(const dr of ul){if(!dr||typeof dr!="object")continue;const Lr=String(dr.call_id||dr.id||"").trim();Lr&&!Kl.has(Lr)&&Kl.set(Lr,dr)}for(let dr=0;dr<Ls.length;dr++){const Lr=Ls[dr];if(!Lr||typeof Lr!="object")continue;const Kr=String(Lr.name||"").trim();if(!Kr)continue;Br.add(Kr);const Ps=Lr.arguments,zi=String(Lr.call_id||Lr.id||"").trim(),Is=zi&&Kl.has(zi)?Kl.get(zi):dr<ul.length?ul[dr]:null,pu=Is&&typeof Is=="object"&&typeof Is.success=="boolean"?!!Is.success:null,Rc=Is&&typeof Is=="object"?Is.output:null,ia=Is&&typeof Is=="object"?Is.error:null;Mi.length<240&&Mi.push({ts:Ai,run_id:ro,node_id:Ea,name:Kr,signature:K(Kr,Ps),success:pu,output_preview:sd(Rc),error:typeof ia=="string"||ia?String(ia):""});const $a=k(Kr),Ta=W(Kr,Ps);$a==="files"&&Ta?Zt.push({tool:Kr,file_path:Ta,run_id:ro,ts:Ai}):$a==="system"&&Ta?zn.push({command:Ta,run_id:ro,ts:Ai}):$a==="web"&&Ta&&Yt.push({tool:Kr,value:Ta,run_id:ro,ts:Ai})}}return ot.unique_tools=Br.size,ti!==null&&(ot.started_at=new Date(ti).toISOString()),Sr!==null&&(ot.ended_at=new Date(Sr).toISOString()),ti!==null&&Sr!==null&&(ot.duration_s=Math.max(0,Math.round((Sr-ti)/1e3))),{stats:ot,files:Zt,commands:zn,web:Yt,tools_used:Array.from(Br).sort(),tool_calls_detail:Mi,llm_calls_detail:no}},de=[],Fe={},Le=c.trim(),Ke=tt=>{if(!tt)return;de.push(tt);const Zt=(typeof(tt==null?void 0:tt.run_id)=="string"?String(tt.run_id||"").trim():"")||Le||"unknown";Fe[Zt]||(Fe[Zt]=[]),Fe[Zt].push(tt)};for(const tt of Re)tt&&tt.record&&Ke(tt.record);for(const tt of jt)tt&&tt.record&&Ke(tt.record);const At=Q(de),Je={};for(const[tt,ot]of Object.entries(Fe))Je[tt]=Q(ot);const Qe=Mr.map(tt=>{const ot=String(tt||"").trim();if(!ot)return null;const Zt=String(Xs.current[ot]||"").trim(),zn=Hi.current[ot],Yt=zn?String(zn.parent_node_id||"").trim():"";return{run_id:ot,parent_run_id:Zt,parent_node_id:Yt,digest:Je[ot]||null}}).filter(Boolean);Qe.sort((tt,ot)=>tt.run_id<ot.run_id?-1:tt.run_id>ot.run_id?1:0);let Rt=null;for(const tt of Re){const ot=tt.record,Zt=Td(ot);if((Zt&&Zt.name?Lu(Zt.name):"")!=="abstract.summary")continue;const Yt=Zt!=null&&Zt.payload&&typeof Zt.payload=="object"?Zt.payload:{},Br=typeof(Yt==null?void 0:Yt.text)=="string"?String(Yt.text):"";Br.trim()&&(Rt={cursor:tt.cursor,ts:String((ot==null?void 0:ot.ended_at)||(ot==null?void 0:ot.started_at)||""),text:Br,provider:typeof(Yt==null?void 0:Yt.provider)=="string"?String(Yt.provider):void 0,model:typeof(Yt==null?void 0:Yt.model)=="string"?String(Yt.model):void 0,generated_at:typeof(Yt==null?void 0:Yt.generated_at)=="string"?String(Yt.generated_at):void 0,source:Yt==null?void 0:Yt.source})}const lt=Rt?bl(Rt.generated_at||Rt.ts):null;let yt=null;for(const tt of de){if((typeof((Un=tt==null?void 0:tt.effect)==null?void 0:Un.type)=="string"?String(tt.effect.type):"")==="emit_event")continue;const Zt=String((tt==null?void 0:tt.ended_at)||(tt==null?void 0:tt.started_at)||"").trim(),zn=bl(Zt);zn!==null&&(yt===null||zn>yt)&&(yt=zn)}const Ht=lt!==null&&yt!==null?yt>lt:!1;return{overall:At,per_run:Je,subruns:Qe,latest_summary:Rt,summary_outdated:Ht}},[Re,jt,c,Mr,re]);m.useEffect(()=>{xs.current=Fr.trim()},[Fr]),m.useEffect(()=>{const w=c.trim(),k=pi.trim();if(!(oe&&wr==="subworkflow"&&!!k&&k!==w)){ys.current="",Fr.trim()&&Ei("");return}ys.current!==k&&(ys.current=k,xs.current=k,Ei(k))},[oe,c,wr,pi,Fr]),m.useEffect(()=>{Fa({})},[j]);const xc=m.useMemo(()=>((Array.isArray(L==null?void 0:L.entrypoints)?L==null?void 0:L.entrypoints:[])||[]).map(k=>String((k==null?void 0:k.flow_id)||"").trim()).filter(Boolean),[L]),_i=m.useMemo(()=>{const w=String((_e==null?void 0:_e.workflow_id)||"").trim();return oe&&w.startsWith("scheduled:")?w:""},[oe,_e==null?void 0:_e.workflow_id]),vc=m.useMemo(()=>{var Q;if(!oe||!c.trim()||!_i.trim())return Ys;const w=String((_e==null?void 0:_e.status)||"").trim().toLowerCase(),k=String((_e==null?void 0:_e.current_node)||"").trim();if(w!=="waiting"&&w!=="running"||!k)return Ys;const P=sn(c.trim(),k);if(!P)return Ys;const C=String(wr||((Q=_e==null?void 0:_e.waiting)==null?void 0:Q.reason)||"").trim().toLowerCase(),W=typeof(vr==null?void 0:vr.node_id)=="string"?String(vr.node_id).trim():"",K=typeof(vr==null?void 0:vr.status)=="string"?String(vr.status).trim().toLowerCase():"";return w==="waiting"&&C==="until"||!Ys.trim()||(K==="waiting"||K==="running")&&!W?P:Ys},[oe,c,_i,_e==null?void 0:_e.status,_e==null?void 0:_e.current_node,(Ao=_e==null?void 0:_e.waiting)==null?void 0:Ao.reason,wr,Ys,vr]),ed=m.useMemo(()=>{const w={},k=c.trim(),P=(C,W)=>{if(!W)return;const K=typeof(W==null?void 0:W.node_id)=="string"?String(W.node_id).trim():"";if(!K)return;const Q=sn(C,K);if(!Q)return;const de=String((W==null?void 0:W.ended_at)||(W==null?void 0:W.started_at)||"").trim(),Fe=bl(de);Fe!==null&&(w[Q]=Math.max(w[Q]||0,Fe))};for(const C of Re)C&&C.record&&P(k,C.record);for(const C of jt)C&&C.record&&P(String(C.run_id||"").trim(),C.record);return w},[Re,jt,c,Mr]);m.useEffect(()=>{var P;if(!oe||!c.trim()||!_i.trim())return;const w=String((_e==null?void 0:_e.current_node)||"").trim();!w||String(((P=_e==null?void 0:_e.waiting)==null?void 0:P.reason)||"").trim()==="subworkflow"||Dr(sn(c.trim(),w))},[oe,c,_i,_e==null?void 0:_e.current_node,(Vl=_e==null?void 0:_e.waiting)==null?void 0:Vl.reason]),m.useEffect(()=>{const w=String((Dn==null?void 0:Dn.flow_id)||"").trim();w&&(ki.trim()||Vo(w))},[Dn,ki]),m.useEffect(()=>{const w=_i.trim(),k=j.trim(),P=ki.trim();if(w){let W=!1;return di(!0),yo(""),Ct.get_workflow_flow(w).then(K=>{if(W)return;const Q=K==null?void 0:K.flow;qo(Q&&typeof Q=="object"?Q:null)}).catch(K=>{W||(qo(null),yo(String((K==null?void 0:K.message)||K||"Failed to load workflow flow")))}).finally(()=>{W||di(!1)}),()=>{W=!0}}if(!k||!P){qo(null),yo(""),di(!1);return}let C=!1;return di(!0),yo(""),Ct.get_bundle_flow(k,P).then(W=>{if(C)return;const K=W==null?void 0:W.flow,Q=K&&typeof K=="object"?K:null;qo(Q),Q&&Fa(de=>({...de,[P]:Q}))}).catch(W=>{C||(qo(null),yo(String((W==null?void 0:W.message)||W||"Failed to load flow")))}).finally(()=>{C||di(!1)}),()=>{C=!0}},[_i,j,ki,Ct]),m.useEffect(()=>{const w=j.trim();if(!xo||!w||!_o)return;let k=!1;const P=3,C=Le=>{const Ke=Array.isArray(Le==null?void 0:Le.nodes)?Le.nodes:[],At=[];for(const Je of Ke){const Qe=Je!=null&&Je.data&&typeof Je.data=="object"?Je.data:{};if(String((Qe==null?void 0:Qe.nodeType)||(Je==null?void 0:Je.type)||"").trim()!=="subflow")continue;const lt=(Qe==null?void 0:Qe.subflowId)||(Qe==null?void 0:Qe.flowId),yt=typeof lt=="string"?lt.trim():"";yt&&At.push(yt.includes(":")?yt.split(":",2)[1]:yt)}return At},W=new Set,K=new Set,Q=(Le,Ke)=>{if(!(!Le||Ke>=P))for(const At of C(Le)){const Je=String(At||"").trim();if(!Je||W.has(Je))continue;W.add(Je),K.add(Je);const Qe=ga[Je];Qe&&Q(Qe,Ke+1)}};Q(_o,0);const de=Array.from(K).filter(Le=>!ga[Le]).slice(0,20);return de.length?((async()=>{for(const Le of de){if(k)return;try{const Ke=await Ct.get_bundle_flow(w,Le),At=Ke==null?void 0:Ke.flow,Je=At&&typeof At=="object"?At:null;if(!Je)continue;Fa(Qe=>Qe[Le]?Qe:{...Qe,[Le]:Je})}catch{}}})(),()=>{k=!0}):void 0},[xo,j,_o,ga,Ct]);const ka=m.useMemo(()=>{const k=(Array.isArray(L==null?void 0:L.flows)?L==null?void 0:L.flows:[]).map(P=>String(P||"").trim()).filter(Boolean);return k.length?Array.from(new Set(k)).sort():Array.from(new Set(xc)).sort()},[L,xc]);m.useEffect(()=>{zr&&Ys.trim()&&(Wi(""),Ci.current="")},[zr,c,Ys]),m.useEffect(()=>{const w=Fr.trim(),k=c.trim();if(!(oe&&!!w&&w!==k)){Ar.current&&Ar.current.abort(),Ar.current=null,rs.current=0,pr&&Vi("");return}if(pr===w)return;Ar.current&&Ar.current.abort();const C=new AbortController;Ar.current=C,rs.current=0,Vi(w),Dt({ts:tn(),kind:"info",title:`Following run ${w} (status/events)`});let W=250;return(async()=>{for(;!C.signal.aborted;){try{await Ct.stream_ledger(w,{after:rs.current,on_step:Q=>Qs(w,Q),signal:C.signal});return}catch(Q){if(C.signal.aborted)break;const de=String((Q==null?void 0:Q.message)||Q||"stream error");Dt({ts:tn(),kind:"error",title:"Child ledger stream error (will retry)",preview:cn(de),data:{child_run_id:w,error:de}})}if(C.signal.aborted)break;await new Promise(Q=>setTimeout(Q,W)),W=Math.min(5e3,Math.floor(W*1.6))}})(),()=>{C.abort()}},[oe,Fr,c,Ct,pr]),m.useEffect(()=>{if(!oe||!c.trim())return;let w=!1;const k=async()=>{if(!w&&!Ks.current&&Mr.length){Ks.current=!0;try{const C=Mr.map(de=>String(de||"").trim()).filter(Boolean);if(!C.length)return;const W=C.map(de=>({run_id:de,after:Number(xr.current[de]||0)})),K=await Ct.get_ledger_batch({runs:W,limit:200}),Q=K&&typeof K=="object"?K.runs:{};for(const de of C){if(w)return;const Fe=Q&&typeof Q=="object"?Q[de]:null,Le=Array.isArray(Fe==null?void 0:Fe.items)?Fe.items:[],Ke=typeof(Fe==null?void 0:Fe.next_after)=="number"?Fe.next_after:Number(xr.current[de]||0),At=Number(xr.current[de]||0);for(let Je=0;Je<Le.length;Je++){const Qe=Le[Je];vs(de,{cursor:At+Je+1,record:Qe})}xr.current[de]=Ke}}catch(C){if(w)return;Dt({ts:tn(),kind:"error",title:"Subrun digest poll failed",preview:cn(String((C==null?void 0:C.message)||C||""))})}finally{Ks.current=!1}}};k();const P=window.setInterval(()=>void k(),2e3);return()=>{w=!0,window.clearInterval(P),Ks.current=!1}},[oe,c,Mr,Ct]);const wc=m.useMemo(()=>yr?Et.filter(h1):Et,[yr,Et]),nl=m.useMemo(()=>{const w=c.trim(),k=[];for(const P of Re)!P||!P.record||k.push({run_id:w,cursor:P.cursor,record:P.record});for(const P of jt)!P||!P.record||k.push({run_id:String(P.run_id||"").trim(),cursor:P.cursor,record:P.record});return k},[Re,jt,c]),ea=m.useMemo(()=>{var k,P,C;const w={};for(const W of nl){const K=String(W.run_id||((k=W.record)==null?void 0:k.run_id)||"").trim();!K||String(((C=(P=W.record)==null?void 0:P.effect)==null?void 0:C.type)||"").trim()!=="llm_call"||(w[K]=(w[K]||0)+1)}return w},[nl]),bc=m.useMemo(()=>{const w=Fr.trim();if(w)return w;let k="",P=-1;for(const[C,W]of Object.entries(ea))W>P&&(k=C,P=W);return k||c.trim()},[ea,Fr,c]),Eo=(fa.trim()||bc).trim(),Sc=m.useMemo(()=>{var W;const w=new Set,k=c.trim(),P=Fr.trim();k&&w.add(k),P&&w.add(P);for(const K of Mr){const Q=String(K||"").trim();Q&&w.add(Q)}for(const K of nl){const Q=String(K.run_id||((W=K.record)==null?void 0:W.run_id)||"").trim();Q&&w.add(Q)}const C=Array.from(w);return C.sort((K,Q)=>k&&K===k&&Q!==k?-1:k&&Q===k&&K!==k?1:P&&K===P&&Q!==P?-1:P&&Q===P&&K!==P?1:K<Q?-1:K>Q?1:0),C},[c,Fr,Mr,nl]),ta=m.useMemo(()=>av(nl,{run_id:Eo}),[nl,Eo]),qn=m.useMemo(()=>{const w=c.trim();return w&&N.find(k=>String(k.run_id||"").trim()===w)||null},[N,c]),jc=m.useMemo(()=>{var k;const w=typeof((k=_e==null?void 0:_e.schedule)==null?void 0:k.target_workflow_id)=="string"?String(_e.schedule.target_workflow_id).trim():"";return Gg(w||(qn==null?void 0:qn.workflow_id),Va)},[_e,qn,Va]),eo=String((_e==null?void 0:_e.status)||(qn==null?void 0:qn.status)||"").trim(),rl=String(wr||((uu=_e==null?void 0:_e.waiting)==null?void 0:uu.reason)||(qn==null?void 0:qn.waiting_reason)||"").trim().toLowerCase(),Wl=!!(_e!=null&&_e.is_scheduled||qn!=null&&qn.is_scheduled),kc=!!(_e!=null&&_e.paused||qn!=null&&qn.paused),Hl=Wl&&eo.toLowerCase()==="waiting",Na=Hl&&rl==="until",$o=bl(hi),as=Na&&$o!==null?qg($o-Date.now()):"",na=Na&&$o!==null?new Date($o).toLocaleString():Na?String(hi||"").trim():"",Nc=Wl&&kc?"Suspended":Hl?"Scheduled":eo,td=Wl&&(kc||Hl)?"scheduled":eo.toLowerCase()==="completed"?"ok":eo.toLowerCase()==="failed"?"danger":eo.toLowerCase()==="waiting"||eo.toLowerCase()==="running"?"warn":"muted",To=sh((qn==null?void 0:qn.updated_at)||(qn==null?void 0:qn.created_at));return s.jsxs("div",{className:"app-shell",children:[s.jsxs("div",{className:"app-header",children:[s.jsxs("div",{className:"logo",title:"AbstractObserver (Web/PWA)",children:[s.jsx("span",{className:"logo-icon","aria-hidden":"true",children:s.jsxs("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[s.jsx("ellipse",{cx:"12",cy:"12",rx:"9",ry:"4.2",transform:"rotate(-18 12 12)",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",opacity:"0.75"}),s.jsx("circle",{cx:"12",cy:"12",r:"4.7",fill:"currentColor",opacity:"0.95"}),s.jsx("circle",{cx:"10.3",cy:"10.7",r:"1.6",fill:"#ffffff",opacity:"0.18"}),s.jsx("circle",{cx:"19",cy:"13.6",r:"1.2",fill:"currentColor"})]})}),s.jsx("span",{className:"logo_name",children:"AbstractObserver"}),s.jsx("span",{className:`gateway_led ${I?"ok":me?"warn":"err"}`,title:`Gateway: ${I?"connected":me?"connecting":"disconnected"}`,"aria-hidden":"true"})]}),s.jsxs("div",{className:"app_nav",children:[s.jsx("button",{className:`nav_tab ${e==="observe"?"active":""}`,onClick:()=>t("observe"),children:"Observe"}),s.jsx("button",{className:`nav_tab ${e==="launch"?"active":""}`,onClick:()=>t("launch"),children:"Launch"}),s.jsx("button",{className:`nav_tab ${e==="mindmap"?"active":""}`,onClick:()=>t("mindmap"),children:"Mindmap"}),s.jsx("button",{className:`nav_tab ${e==="backlog"?"active":""}`,onClick:()=>t("backlog"),children:"Backlog"}),s.jsx("button",{className:`nav_tab ${e==="inbox"?"active":""}`,onClick:()=>t("inbox"),children:"Inbox"})]}),s.jsxs("div",{className:"status_pills",children:[e==="observe"?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:`status_pill ${oe?"ok":Se?"warn":"muted"}`,children:["run ",oe?"ok":Se?"…":"off"]}),s.jsxs("span",{className:"status_pill muted status_pill_cursor",children:["cursor ",ut]})]}):null,l?s.jsx("monitor-gpu",{ref:u,mode:"icon","history-size":"5","tick-ms":"1500","base-url":r.gateway_url,title:"GPU usage (host)",style:{"--monitor-gpu-width":"34px","--monitor-gpu-bars-height":"22px","--monitor-gpu-padding":"2px 4px","--monitor-gpu-radius":"999px","--monitor-gpu-bg":"rgba(0,0,0,0.22)","--monitor-gpu-border":"rgba(255,255,255,0.16)",flexShrink:0}}):null,s.jsx("button",{className:`header_icon_btn ${e==="processes"?"active":""}`,title:"Processes","aria-label":"Processes",type:"button",onClick:()=>t("processes"),children:s.jsx(Gn,{name:"terminal",size:16})}),s.jsx("button",{className:`header_icon_btn ${e==="settings"?"active":""}`,title:"Settings","aria-label":"Settings",type:"button",onClick:()=>t("settings"),children:s.jsx(Gn,{name:"settings",size:16})})]})]}),s.jsxs("div",{className:"app-body",children:[e==="settings"?s.jsx("div",{className:"page page_scroll",children:s.jsx("div",{className:"page_inner constrained",children:s.jsxs("div",{className:"card",children:[s.jsx("div",{className:"title",children:s.jsx("h1",{children:"Settings"})}),s.jsx("div",{className:"section_title",children:"Appearance"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Theme"}),s.jsx(Av,{value:r.theme,onChange:w=>o(k=>({...k,theme:w}))}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Stored locally in this browser (no server round-trip)."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Font size"}),s.jsx(zv,{value:r.font_scale,onChange:w=>o(k=>({...k,font_scale:w}))})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Header size"}),s.jsx(Rv,{value:r.header_density,onChange:w=>o(k=>({...k,header_density:w}))})]}),s.jsx("div",{className:"section_title",children:"Gateway"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Gateway URL (blank = same origin / dev proxy)"}),s.jsxs("div",{className:"field_inline",children:[s.jsx("input",{value:r.gateway_url,onChange:w=>o(k=>({...k,gateway_url:w.target.value})),placeholder:"https://your-gateway-host"}),s.jsx("button",{className:"btn",onClick:I?V:Ji,disabled:me,children:me?"Connecting…":I?"Disconnect":"Connect"})]}),Me?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Me}):null]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Auto-connect to gateway on load"}),s.jsxs("select",{value:r.auto_connect_gateway?"on":"off",onChange:w=>o(k=>({...k,auto_connect_gateway:w.target.value==="on"})),children:[s.jsx("option",{value:"on",children:"On"}),s.jsx("option",{value:"off",children:"Off"})]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Gateway token (Authorization: Bearer …)"}),s.jsx("input",{type:"password",value:r.auth_token,onChange:w=>o(k=>({...k,auth_token:w.target.value})),placeholder:"(optional for localhost dev)"})]}),s.jsx("div",{className:"section_title",children:"Maintenance AI"}),s.jsx(Tv,{className:"field",providerLabel:"Provider (blank = gateway default)",modelLabel:"Model (blank = gateway default)",providerPlaceholder:"lmstudio",modelPlaceholder:"qwen/qwen3-next-80b",provider:r.maintenance_ai_provider,model:r.maintenance_ai_model,providers:Ga,models:Ya.models,loadingProviders:me,loadingModels:ba,modelError:Ko?Ya.error:"",allowCustomProvider:!0,allowCustomModel:!0,allowGatewayDefault:!0,gatewayDefaultLabel:"(gateway default)",selectClassName:"mono",onChange:w=>o(k=>({...k,maintenance_ai_provider:w.provider,maintenance_ai_model:w.model}))}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Used for backlog AI assist and in-editor maintenance chat. Defaults follow `ABSTRACTGATEWAY_PROVIDER` / `ABSTRACTGATEWAY_MODEL`."}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Backlog advisor agent (bundle id; blank = basic-agent)"}),s.jsx("input",{className:"mono",value:r.backlog_advisor_agent,onChange:w=>o(k=>({...k,backlog_advisor_agent:String(w.target.value||"")})),placeholder:"basic-agent"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Used by Backlog → Advisor drawer. Must be a bundle available on the gateway (e.g. `basic-agent`, `advanced-agent`)."})]}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Remote Tool Worker (MCP)"}),s.jsxs("details",{children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Advanced"}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Tool worker endpoint (MCP HTTP)"}),s.jsx("input",{className:"mono",value:r.worker_url,onChange:w=>o(k=>({...k,worker_url:w.target.value})),placeholder:"https://your-mcp-worker-endpoint"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Tool worker token (Authorization: Bearer …)"}),s.jsx("input",{className:"mono",type:"password",value:r.worker_token,onChange:w=>o(k=>({...k,worker_token:w.target.value})),placeholder:"(optional)"})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Used to execute tool waits from the UI (advanced / potentially dangerous)."})]})]})})}):null,e==="launch"?s.jsx("div",{className:"page page_scroll",children:s.jsx("div",{className:"page_inner constrained",children:s.jsxs("div",{className:"card",children:[s.jsx("div",{className:"title",children:s.jsx("h1",{children:"Launch"})}),I?null:s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(245, 158, 11, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"gateway"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsxs("div",{className:"body mono",children:["Not connected. Open"," ",s.jsx("button",{className:"btn",onClick:()=>t("settings"),children:"Settings"})," ","to connect to a gateway."]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Workflow (discovered)"}),s.jsxs("select",{value:wa,onChange:async w=>{const k=String(w.target.value||"").trim();if(!k)return;const P=Cm(k);P&&(S(P.bundle_id),b(P.flow_id),Vo(P.flow_id),await Xa(P.bundle_id))},disabled:me||!H.length,children:[s.jsx("option",{value:"",children:H.length?"(select)":"(empty — connect in Settings)"}),H.map(w=>s.jsx("option",{value:w.workflow_id,children:w.label},w.workflow_id))]}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-start",gap:"8px",flexWrap:"wrap",marginTop:"8px"},children:[s.jsx("input",{ref:un,type:"file",accept:".flow",style:{display:"none"},onChange:w=>{const k=w.target.files&&w.target.files.length?w.target.files[0]:null;k&&$(k)}}),s.jsx("button",{type:"button",className:"btn",onClick:()=>{var w;return(w=un.current)==null?void 0:w.click()},disabled:!I||me||on||Se||De,children:on?"Uploading…":"Upload .flow"}),s.jsx("button",{type:"button",className:"btn",onClick:()=>void Fl(),disabled:!I||me||U||Se||De,children:U?"Reloading…":"Reload bundles"}),s.jsx("button",{type:"button",className:"btn",onClick:()=>void Ki(),disabled:!I||F||me,children:F?"Refreshing…":"Refresh runs"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Use Upload for remote installs. Reload picks up server-side edits (dev)."})]}),Dn!=null&&Dn.description?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:String(Dn.description)}):null,ne?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading workflow…"}):null,J?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:J}):null]}),L&&Dn?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"workflow"}),s.jsx("span",{className:"mono",children:String(L.bundle_ref||`${j.trim()}:${v.trim()}`)})]}),s.jsxs("div",{className:"body",children:[Dn.name?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"name"}),": ",String(Dn.name)]}):null,Dn.interfaces&&Dn.interfaces.length?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"interfaces"}),": ",Dn.interfaces.join(", ")]}):null,s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"inputs"}),": ",Yi.length]}),L.created_at?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"created"}),": ",String(L.created_at)]}):null]})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"session_id (scope=session)"}),s.jsx("input",{className:"mono",value:D,onChange:w=>O(w.target.value),placeholder:"(optional; empty ⇒ scope=session behaves like per-run)",disabled:Se||De}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Shared across runs when the same session_id is sent to the gateway."})]}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-start",flexWrap:"wrap",gap:"10px"},children:[s.jsx("button",{className:"btn primary",onClick:()=>void Ka(),disabled:Se||De||me||ne||Jt||!I||!j.trim()||!v.trim()||ln===null,children:It!=="now"||ae!=="once"?"Launch (scheduled)":"Launch now"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",alignSelf:"center"},children:It!=="now"||ae!=="once"?"Uses the schedule settings below.":"Starts immediately (no schedule)."})]}),Te?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:Te})]}):null,s.jsxs("details",{style:{marginTop:"10px"},open:!0,children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Inputs"}),!j.trim()||!v.trim()?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Select a workflow above to configure inputs."}):ln===null?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"input error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:"Invalid input JSON. Fix it in Advanced JSON."})]}):su?s.jsxs("div",{style:{marginTop:"10px"},children:[Yi.map(w=>{if(!w||typeof w!="object")return null;const k=String(w.id||"").trim();if(!k)return null;const P=String(w.label||k).trim()||k,C=String(w.type||"").trim().toLowerCase(),W=Object.prototype.hasOwnProperty.call(w,"default"),K=W?ca(w.default,160):"",Q=Se||De,de=ln==null?void 0:ln[k],Fe=C&&C!=="unknown"?`${P} (${C})`:P,Le=K?`default: ${K}`:"";if(C==="tools"){const Je=Array.isArray(de)?de.map(Qe=>String(Qe||"").trim()).filter(Boolean):[];return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsx(w_,{options:Bn,value:Je,disabled:Q,placeholder:"(no tools selected)",onChange:Qe=>ur(k,Qe)}),Le?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:Le}):null]},k)}if(C==="provider"){const Je=typeof de=="string"?String(de):"";return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsxs("select",{value:Je,onChange:Qe=>ur(k,Qe.target.value),disabled:Q,children:[s.jsx("option",{value:"",children:W?`(default: ${K||"…"})`:"(unset)"}),qa.map(Qe=>s.jsx("option",{value:Qe,children:Qe},Qe))]})]},k)}if(C==="model"){const Je=typeof de=="string"?String(de):"",Qe=String((ln==null?void 0:ln.provider)||"").trim(),Rt=Qe?xe[Qe]:void 0,lt=Rt&&Array.isArray(Rt.models)?Rt.models.map(yt=>String(yt||"").trim()).filter(Boolean):[];return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),lt.length?s.jsxs("select",{value:Je,onChange:yt=>ur(k,yt.target.value),disabled:Q,children:[s.jsx("option",{value:"",children:W?`(default: ${K||"…"})`:"(unset)"}),lt.map(yt=>s.jsx("option",{value:yt,children:yt},yt))]}):s.jsx("input",{className:"mono",value:Je,onChange:yt=>ur(k,yt.target.value),placeholder:W?`(default: ${K||"…"})`:"model id",disabled:Q})]},k)}if(C==="boolean"){const Je=typeof de=="boolean"?de?"true":"false":"";return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsxs("select",{value:Je,onChange:Qe=>{const Rt=String(Qe.target.value||"").trim();Rt?ur(k,Rt==="true"):ur(k,void 0)},disabled:Q,children:[s.jsx("option",{value:"",children:W?`(default: ${K||"…"})`:"(unset)"}),s.jsx("option",{value:"true",children:"true"}),s.jsx("option",{value:"false",children:"false"})]})]},k)}if(C==="number"){const Je=typeof de=="number"&&Number.isFinite(de)?String(de):"";return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsx("input",{type:"number",value:Je,onChange:Qe=>{const Rt=String(Qe.target.value||"").trim();if(!Rt){ur(k,void 0);return}const lt=Number(Rt);Number.isFinite(lt)&&ur(k,lt)},placeholder:W?`(default: ${K||"…"})`:"",disabled:Q})]},k)}if(C==="array"){const Je=Array.isArray(de)?de.map(Qe=>String(Qe||"").trim()).filter(Boolean).join(`
137
+ `):"";return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsx("textarea",{className:"mono",value:Je,onChange:Qe=>{const Rt=String(Qe.target.value||"").split(/\r?\n/g).map(lt=>String(lt||"").trim()).filter(Boolean);ur(k,Rt.length?Rt:void 0)},placeholder:W?`(default: ${K||"…"})`:"(one item per line)",rows:3,disabled:Q})]},k)}if(mc(C)){const Je=typeof yn[k]=="string"?yn[k]:"",Qe=String(En[k]||"").trim();return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),s.jsx("textarea",{className:"mono",value:Je,onChange:Rt=>{const lt=String(Rt.target.value??"");Pn(Ht=>({...Ht,[k]:lt}));const yt=lt.trim();if(!yt){sr(Ht=>{const Un={...Ht};return delete Un[k],Un}),ur(k,void 0);return}try{const Ht=JSON.parse(yt);sr(Un=>{const tt={...Un};return delete tt[k],tt}),ur(k,Ht)}catch(Ht){sr(Un=>({...Un,[k]:String((Ht==null?void 0:Ht.message)||Ht||"Invalid JSON")}))}},placeholder:W?`(default: ${K||"…"})`:"{...}",rows:5,disabled:Q}),Qe?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Qe}):Le?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:Le}):null]},k)}const Ke=typeof de=="string"?String(de):"",At=k==="prompt";return s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:Fe}),At?s.jsx("textarea",{className:"mono",value:Ke,onChange:Je=>ur(k,Je.target.value),placeholder:W?`(default: ${K||"…"})`:"prompt",rows:3,disabled:Q}):s.jsx("input",{className:"mono",value:Ke,onChange:Je=>ur(k,Je.target.value),placeholder:W?`(default: ${K||"…"})`:"",disabled:Q}),Le?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:Le}):null]},k)}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Advanced JSON below is the source of truth for full `input_data`."})]}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Prompt (common)"}),s.jsx("textarea",{className:"mono",value:Pl,onChange:w=>ur("prompt",w.target.value),placeholder:"What do you want the workflow/agent to do?",rows:3,disabled:Se||De})]}),s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Provider (common)"}),s.jsx("input",{className:"mono",value:Ha,onChange:w=>ur("provider",w.target.value),placeholder:"lmstudio / ollama / openai / ...",disabled:Se||De})]})}),s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Model (common)"}),s.jsx("input",{className:"mono",value:fc,onChange:w=>ur("model",w.target.value),placeholder:"qwen/qwen3-next-80b / gpt-4.1 / ...",disabled:Se||De})]})})]})]}),s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Advanced: input_data JSON"}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Input data (JSON)"}),s.jsx("textarea",{className:"mono",value:M,onChange:w=>A(w.target.value),placeholder:'{"prompt":"...","provider":"lmstudio","model":"qwen/qwen3-next-80b"}',rows:10,disabled:Se||De})]})]}),s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Workspace policy (filesystem)"}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Workspace root (workspace_root)"}),s.jsx("input",{className:"mono",value:Xi,onChange:w=>ur("workspace_root",w.target.value),placeholder:"(leave blank to auto-generate a per-run workspace on the gateway)",disabled:Se||De}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Relative tool paths resolve under this directory."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Filesystem access mode (workspace_access_mode)"}),s.jsxs("select",{className:"mono",value:(Il||"workspace_only").trim()||"workspace_only",onChange:w=>ur("workspace_access_mode",w.target.value),disabled:Se||De,children:[s.jsx("option",{value:"workspace_only",children:"workspace_only (restrict absolute paths to workspace_root)"}),s.jsx("option",{value:"all_except_ignored",children:"all_except_ignored (allow absolute paths outside workspace_root)"})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"This only affects absolute paths; relative paths still stay under workspace_root."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Ignored folders (workspace_ignored_paths)"}),s.jsx("textarea",{className:"mono",value:Ol,onChange:w=>ur("workspace_ignored_paths",w.target.value),placeholder:`.git
138
+ node_modules
139
+ .venv
140
+ ~/Library
141
+ /Users/albou/.ssh`,rows:5,disabled:Se||De}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"One path per line. Relative entries are resolved under workspace_root."})]})]})]}),s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Schedule"}),(()=>{const w=_t==="weeks"?"week":_t==="months"?"month":_t.slice(0,-1),k=Math.max(1,Math.floor(st||1)),P=`${k} ${w}${k===1?"":"s"}`,C=It==="now"?"now":Nr?(()=>{const de=new Date(Nr);return Number.isFinite(de.getTime())?de.toLocaleString():"at …"})():"at …",W=ae==="until"&&nn?(()=>{const de=dn||"23:59",Fe=new Date(`${nn}T${de}`);return Number.isFinite(Fe.getTime())?Fe.toLocaleString():"…"})():"",K=ae==="once"?"":ae==="forever"?"forever":ae==="count"?`${Math.max(1,Math.floor(Ot||1))} runs`:W?`until ${W}`:"until …",Q=ae==="once"?`Runs once • starts ${C}`:`Repeats every ${P} • starts ${C} • ${K}`;return s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"schedule"}),s.jsx("span",{className:"mono",children:ae})]}),s.jsx("div",{className:"body",children:Q})]})})(),se?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:se})]}):null,s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Start"}),s.jsxs("div",{style:{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"center"},children:[s.jsxs("label",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[s.jsx("input",{type:"radio",name:"schedule_start",checked:It==="now",onChange:()=>kr("now")}),"now"]}),s.jsxs("label",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[s.jsx("input",{type:"radio",name:"schedule_start",checked:It==="at",onChange:()=>kr("at")}),"at"]}),It==="at"?s.jsx("input",{type:"datetime-local",value:Nr,onChange:w=>Wn(w.target.value)}):null]}),It==="at"?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Uses your device time; the gateway stores UTC."}):null]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Cadence"}),s.jsxs("select",{value:ae,onChange:w=>ke(w.target.value),children:[s.jsx("option",{value:"once",children:"Once"}),s.jsx("option",{value:"forever",children:"Repeat"}),s.jsx("option",{value:"count",children:"Repeat • N times"}),s.jsx("option",{value:"until",children:"Repeat • until date"})]})]}),ae!=="once"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Every"}),s.jsx("input",{type:"number",min:1,value:String(st),onChange:w=>it(Math.max(1,parseInt(w.target.value||"1",10)||1))})]})}),s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Unit"}),s.jsxs("select",{value:_t,onChange:w=>Tt(w.target.value),children:[s.jsx("option",{value:"minutes",children:"minutes"}),s.jsx("option",{value:"hours",children:"hours"}),s.jsx("option",{value:"days",children:"days"}),s.jsx("option",{value:"weeks",children:"weeks (≈7d)"}),s.jsx("option",{value:"months",children:"months (≈30d)"})]})]})})]}),_t==="months"||_t==="weeks"?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Note: weeks/months are implemented as fixed day intervals (calendar-aware scheduling is planned)."}):null]}):null,ae==="count"?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Runs"}),s.jsx("input",{type:"number",min:1,value:String(Ot),onChange:w=>Wt(Math.max(1,parseInt(w.target.value||"1",10)||1))})]}):null,ae==="until"?s.jsxs("div",{className:"row",children:[s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Until (date)"}),s.jsx("input",{type:"date",value:nn,onChange:w=>Ft(w.target.value)})]})}),s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Until (time)"}),s.jsx("input",{type:"time",value:dn,onChange:w=>hn(w.target.value)})]})})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Context"}),s.jsxs("label",{style:{display:"flex",gap:"10px",alignItems:"center"},children:[s.jsx("input",{type:"checkbox",checked:Qt,onChange:w=>rn(!!w.target.checked)}),"Share context over time/calls"]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"When disabled, each execution runs in its own session (isolated memory)."})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Tip: set cadence to Once + now for an immediate launch."})]})]})})}):null,e==="backlog"?s.jsx(Nw,{gateway:Ct,gateway_connected:I,maintenance_ai_provider:r.maintenance_ai_provider,maintenance_ai_model:r.maintenance_ai_model,backlog_advisor_agent:r.backlog_advisor_agent,voice_session_id:D}):null,e==="inbox"?s.jsx(r1,{gateway:Ct,gateway_connected:I,default_session_id:fe||c||D,default_active_run_id:c,default_workflow_id:(_e==null?void 0:_e.workflow_id)??(qn==null?void 0:qn.workflow_id)??null}):null,e==="processes"?s.jsx(t1,{gateway:Ct,gateway_connected:I}):null,e==="mindmap"?s.jsx("div",{className:"page mindmap_page",children:I?s.jsx("div",{className:"mindmap_full",children:s.jsx(JN,{gateway:Ct,selected_run_id:c,selected_session_id:fe||D})}):s.jsx("div",{className:"page_inner constrained",children:s.jsxs("div",{className:"card",children:[s.jsx("div",{className:"title",children:s.jsx("h1",{children:"Mindmap"})}),s.jsxs("div",{className:"mono muted",children:["Not connected. Open"," ",s.jsx("button",{className:"btn",onClick:()=>t("settings"),children:"Settings"})," ","to connect to a gateway."]})]})})}):null,e==="observe"?s.jsx("div",{className:"page observe_page",children:s.jsxs("div",{className:"observe_layout",children:[s.jsxs("div",{className:"card panel_card scroll_y observe_sidebar",children:[s.jsx("div",{className:"section_title",children:"Runs"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Runs (parent — select to observe)"}),s.jsxs("div",{className:"field_inline",children:[s.jsx(c1,{runs:N,selected_run_id:c,workflow_label_by_id:Va,disabled:!I||F||me||Se||De,loading:F,onSelect:w=>void mi(w)}),s.jsx("button",{className:"btn",onClick:Ki,disabled:!I||F||me,children:F?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn",onClick:Ja,disabled:!c.trim()&&!oe,children:"Disconnect"})]})]}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-start"},children:[s.jsx("button",{className:"btn",onClick:()=>{if(yc==="pause"){Er("pause"),oi(""),Fn(""),fr(!0);return}Sa("resume")},disabled:Zs,children:_c}),ei?s.jsx("button",{className:"btn primary",onClick:()=>void hc(),disabled:!c.trim()||Se||De||zr||gi,children:"Run now"}):null,s.jsx("button",{className:"btn danger",onClick:()=>{Er("cancel"),oi(""),Fn(""),fr(!0)},disabled:!c.trim()||Se||De||zr,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:()=>t("launch"),disabled:!I||me,children:"Launch…"})]}),Ul?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(96, 165, 250, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:os?gi?"suspended":"scheduled":"waiting"}),s.jsx("span",{className:"mono",children:wr||"unknown"})]}),s.jsxs("div",{className:"body",children:[ko?s.jsxs("div",{className:"mono",title:ko,children:[s.jsx("span",{className:"muted",children:"wait_key"}),": ",Ra(ko,46)]}):null,wr==="event"&&gc?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"event"}),": ",gc]}):null,wr==="subworkflow"&&pi?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"child run"}),": ",Ra(pi,18)]}):null,wr==="until"&&hi?s.jsxs("div",{className:"mono",title:hi,children:[s.jsx("span",{className:"muted",children:"until"}),": ",Ra(hi,46)]}):null]}),wr==="until"&&hi?s.jsx("div",{className:"mono muted",style:{marginTop:"10px",fontSize:"var(--font-size-sm)"},children:(()=>{const w=bl(hi),k=w!==null?new Date(w).toLocaleString():hi,P=w!==null?qg(w-Date.now()):"";return`Next execution at ${k}${P?` (in ${P})`:""}`})()}):null,wr==="subworkflow"&&pi?s.jsxs("div",{className:"actions",children:[s.jsx("button",{className:"btn primary",onClick:async()=>{d(pi),await Yn(pi)},disabled:Se,children:"Attach to child run"}),h.trim()&&h.trim()!==c.trim()?s.jsx("button",{className:"btn",onClick:async()=>{d(h.trim()),await Yn(h.trim())},disabled:Se,children:"Back to root"}):null]}):null]}):null,os?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"schedule"}),s.jsx("span",{className:"mono",children:tl?`every ${Rs}`:"once"})]}),s.jsxs("div",{className:"body",children:[Rs?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"interval"}),": ",Rs]}):null,s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"share context"}),": ",Co?"true":"false"]}),typeof Zi=="number"?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"repeat count"}),": ",Zi]}):null]}),ws!==null?s.jsxs("div",{className:"body",style:{marginTop:"10px"},children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:"Context budget"}),s.jsxs("div",{className:"mono",style:{marginBottom:"6px"},children:[typeof au=="number"&&typeof lu=="number"?`${au.toLocaleString()} / ${lu.toLocaleString()}`:"",` • ${Math.round(Math.max(0,Math.min(1,ws))*100)}%`]}),s.jsx("div",{style:{height:"6px",borderRadius:"999px",background:"rgba(148, 163, 184, 0.25)",overflow:"hidden"},children:s.jsx("div",{style:{height:"100%",width:`${Math.round(Math.max(0,Math.min(1,ws))*100)}%`,background:ws>=.9?"rgba(239, 68, 68, 0.9)":ws>=.75?"rgba(245, 158, 11, 0.9)":"rgba(34, 197, 94, 0.9)"}})}),tl?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Auto-compaction triggers at ~90% for recurrent schedules."}):null]}):null,s.jsxs("div",{className:"actions",children:[tl?s.jsx("button",{className:"btn",onClick:()=>{Nn(Rs||""),$n(!0),ir(""),et(!0)},disabled:Se||lr,children:"Edit schedule"}):null,tl?s.jsx("button",{className:"btn primary",onClick:()=>{Kn(""),ds(!0)},disabled:Se||Ze,children:"Compact context"}):null]})]}):null,_e?s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsxs("summary",{className:"mono",style:{color:"var(--muted)",cursor:"pointer"},children:["Run state • ",Qi||"unknown",gi?" • paused":""]}),s.jsx("div",{className:"log_item",style:{marginTop:"10px"},children:s.jsx("div",{className:"body mono",children:Vd({status:_e==null?void 0:_e.status,paused:_e==null?void 0:_e.paused,current_node:_e==null?void 0:_e.current_node,waiting:_e!=null&&_e.waiting?{reason:_e.waiting.reason,wait_key:_e.waiting.wait_key,prompt:_e.waiting.prompt,details:_e.waiting.details}:null,error:_e==null?void 0:_e.error})})})]}):null,an?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:an})]}):null]}),s.jsxs("div",{className:"card panel_card card_scroll observe_viewer",children:[s.jsxs("div",{className:"tab_bar",children:[s.jsx("button",{className:`tab mono ${jn==="ledger"?"active":""}`,onClick:()=>An("ledger"),children:"Ledger"}),s.jsx("button",{className:`tab mono ${jn==="graph"?"active":""}`,onClick:()=>An("graph"),children:"Graph"}),s.jsx("button",{className:`tab mono ${jn==="digest"?"active":""}`,onClick:()=>An("digest"),children:"Digest"}),s.jsx("button",{className:`tab mono ${jn==="attachments"?"active":""}`,onClick:()=>An("attachments"),children:"Attachments"}),s.jsx("button",{className:`tab mono ${jn==="chat"?"active":""}`,onClick:()=>An("chat"),children:"Chat"})]}),s.jsxs("div",{className:"viewer_header",children:[s.jsxs("div",{className:"viewer_header_left",children:[s.jsx("div",{className:"viewer_run_title",children:c.trim()?jc:"No run selected"}),s.jsx("span",{className:`chip mono ${td}`,children:Nc||"—"}),Na&&as?s.jsxs("span",{className:"chip mono scheduled",title:na?`Next at ${na}`:void 0,children:["next in ",as]}):null,tl&&Rs?s.jsxs("span",{className:"chip mono muted",children:["every ",Rs]}):null]}),s.jsxs("div",{className:"viewer_header_right",children:[c.trim()?s.jsx("span",{className:"mono muted",children:x1(c.trim())}):null,c.trim()?s.jsx("span",{className:"muted",children:To}):null]})]}),jn==="ledger"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"log_actions",style:{marginTop:"6px",flexWrap:"wrap"},children:[s.jsx("button",{className:`btn ${qs==="steps"?"primary":""}`,onClick:()=>Bi("steps"),children:"Steps"}),s.jsx("button",{className:`btn ${qs==="cycles"?"primary":""}`,onClick:()=>Bi("cycles"),children:"Cycles"}),qs==="steps"?s.jsx("button",{className:`btn ${yr?"primary":""}`,onClick:()=>_s(w=>!w),children:yr?"Condensed":"All"}):s.jsxs("div",{className:"field_inline",style:{alignItems:"center",flexWrap:"wrap"},children:[s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Run"}),s.jsxs("select",{className:"mono",value:Eo,onChange:w=>El(String(w.target.value||"")),disabled:!Sc.length,children:[Sc.length?null:s.jsx("option",{value:"",children:"(no runs)"}),Sc.map(w=>{const k=typeof ea[w]=="number"?Number(ea[w]):0,P=`${Ra(w,18)}${k?` • ${k} llm`:""}`;return s.jsx("option",{value:w,children:P},w)})]})]}),s.jsx("button",{className:"btn",disabled:!Re.length&&!jt.length,onClick:()=>{const P=[...Re.map(K=>({run_id:c.trim()||K.record.run_id||"",cursor:K.cursor,record:K.record})),...jt.map(K=>({run_id:K.run_id,cursor:K.cursor,record:K.record}))].map(K=>{var Fe,Le;const Q=String(((Fe=K.record)==null?void 0:Fe.ended_at)||((Le=K.record)==null?void 0:Le.started_at)||"").trim(),de=bl(Q);return{...K,_ms:de??0}});P.sort((K,Q)=>(K._ms||0)-(Q._ms||0));const W=(P.length>5e3?P.slice(P.length-5e3):P).map(({_ms:K,...Q})=>JSON.stringify(Q)).join(`
142
+ `);B(W)},children:"Copy ledger (JSONL)"})]}),qs==="steps"?s.jsxs("div",{className:"log log_scroll",children:[wc.map(w=>s.jsx(j1,{item:w,open:zt[w.id]===!0,on_toggle:()=>Gt(k=>({...k,[w.id]:!k[w.id]})),response_open:en[w.id]===!0,on_toggle_response:()=>Zn(k=>({...k,[w.id]:!k[w.id]})),node_index:Wa,on_copy:k=>void B(k)},w.id)),wc.length?null:s.jsx("div",{className:"mono muted",style:{padding:"10px 12px"},children:"(no ledger items)"})]}):s.jsx("div",{className:"log log_scroll",children:s.jsx(tv,{items:ta.items,title:"Agent",subtitle:ta.node_id?`node_id: ${ta.node_id}`:"Live per-effect trace (LLM/tool calls).",subRunId:Eo,onOpenSubRun:Eo&&Eo!==c.trim()?()=>{d(Eo),Yn(Eo)}:void 0})})]}):null,jn==="graph"?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"log_actions",style:{marginTop:"6px",flexWrap:"wrap"},children:[s.jsx("button",{className:`btn ${xo?"primary":""}`,onClick:()=>zl(w=>!w),children:xo?"Subflows: on":"Subflows: off"}),s.jsx("button",{className:`btn ${ya?"primary":""}`,onClick:()=>Rl(w=>!w),children:ya?"Path: on":"Path: off"}),ka.length?s.jsx("select",{className:"mono",value:ki,onChange:w=>Vo(String(w.target.value||"")),disabled:!!_i.trim()||!j.trim()||_a,children:ka.map(w=>s.jsx("option",{value:w,children:w},w))}):null,s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:_i.trim()?_i.trim():ki?`flow ${ki}`:""})]}),Al?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"graph error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:Al})]}):null,_a?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(96, 165, 250, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"loading"}),s.jsx("span",{className:"mono",children:_i.trim()?_i.trim():ki})]}),s.jsx("div",{className:"body mono",children:"Loading graph…"})]}):null,s.jsx("div",{className:"graph_panel",children:s.jsx(ow,{flow:_o,flow_by_id:ga,expand_subflows:xo,simplify:!0,prefer_vertical:!0,vertical_compact:.78,schedule_next_in:as,schedule_interval:Rs,node_last_ms:ed,active_node_id:vc,recent_nodes:Ll,visited_nodes:Go,highlight_path:ya,now_ms:vo})})]}):null,jn==="digest"?s.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[s.jsx("div",{className:"log_actions",style:{marginTop:"6px",flexWrap:"wrap"},children:s.jsx("button",{className:"btn",onClick:()=>{B(JSON.stringify(Vt,null,2))},disabled:!((du=(ql=Vt==null?void 0:Vt.overall)==null?void 0:ql.stats)!=null&&du.steps),children:"Copy JSON"})}),s.jsxs("div",{className:"log_item",style:{borderColor:Vt!=null&&Vt.latest_summary?Vt!=null&&Vt.summary_outdated?"rgba(239, 68, 68, 0.45)":"rgba(34, 197, 94, 0.35)":"rgba(96, 165, 250, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"summary"}),s.jsx("span",{className:"mono",children:Vt!=null&&Vt.latest_summary?Vt!=null&&Vt.summary_outdated?"outdated":"current":"(none)"})]}),s.jsx("div",{className:"body",style:{whiteSpace:"pre-wrap"},children:Vt!=null&&Vt.latest_summary?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:[Vt.latest_summary.generated_at||Vt.latest_summary.ts||""," •"," ",Vt.latest_summary.provider||"provider?"," • ",Vt.latest_summary.model||"model?"]}),s.jsx(co,{text:Vt.latest_summary.text})]}):s.jsx("div",{className:"mono muted",children:"No summary yet."})}),s.jsx("div",{className:"actions",children:s.jsx("button",{className:"btn primary",onClick:()=>void Jo(),disabled:!c.trim()||So,children:So?"Generating…":Vt!=null&&Vt.latest_summary?"Regenerate":"Generate"})}),Da?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Da}):null]}),Vt?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"overall"}),s.jsxs("span",{className:"mono",children:[((Ti=(sl=Vt.overall)==null?void 0:sl.stats)==null?void 0:Ti.steps)??0," steps"]})]}),s.jsxs("div",{className:"body mono",children:[s.jsxs("div",{children:["tools: ",((ol=(il=Vt.overall)==null?void 0:il.stats)==null?void 0:ol.tool_calls)??0," calls • ",((Ec=(ra=Vt.overall)==null?void 0:ra.stats)==null?void 0:Ec.unique_tools)??0," unique"]}),s.jsxs("div",{children:["llm: ",((fu=(Ca=Vt.overall)==null?void 0:Ca.stats)==null?void 0:fu.llm_calls)??0," calls • missing ",((tr=($c=Vt.overall)==null?void 0:$c.stats)==null?void 0:tr.llm_missing_responses)??0]}),s.jsxs("div",{children:["tokens: ",((Tc=(Gl=Vt.overall)==null?void 0:Gl.stats)==null?void 0:Tc.prompt_tokens)??0," / ",((Yl=(Mc=Vt.overall)==null?void 0:Mc.stats)==null?void 0:Yl.completion_tokens)??0," • total"," ",((sa=(Ac=Vt.overall)==null?void 0:Ac.stats)==null?void 0:sa.total_tokens)??0]}),s.jsxs("div",{children:["duration:"," ",typeof((br=(nr=Vt.overall)==null?void 0:nr.stats)==null?void 0:br.duration_s)=="number"?`${Math.round(Vt.overall.stats.duration_s)}s`:((Xl=(Rr=Vt.overall)==null?void 0:Rr.stats)==null?void 0:Xl.duration_s)??0," • ","errors: ",((ll=(al=Vt.overall)==null?void 0:al.stats)==null?void 0:ll.errors)??0]})]})]}),Array.isArray((nd=Vt.overall)==null?void 0:nd.tools_used)&&Vt.overall.tools_used.length?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"tools used"}),s.jsx("span",{className:"mono",children:Vt.overall.tools_used.length})]}),s.jsx("div",{className:"body mono",children:Vt.overall.tools_used.join(", ")})]}):null,s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Advanced: digest JSON"}),s.jsx("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:s.jsx("div",{className:"body mono",children:s.jsx(y_,{value:Vt,max_string_len:240})})})]})]}):s.jsx("div",{className:"mono muted",style:{padding:"10px 12px"},children:"(no digest)"})]}):null,jn==="attachments"?s.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[s.jsxs("div",{className:"log_actions",style:{marginTop:"6px",flexWrap:"wrap"},children:[s.jsx("button",{className:"btn",onClick:()=>void Ye(),disabled:!I||Gs||!fe,children:Gs?"Refreshing…":"Refresh"}),fe?s.jsxs("span",{className:"chip mono muted",title:fe,children:["session ",Ra(fe,18)]}):s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No session id (pick a run)"}),ui.trim()?s.jsxs("span",{className:"chip mono muted",title:ui,children:["store ",Ra(ui,18)]}):null]}),ho?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:ho})]}):null,s.jsxs("div",{className:"log",style:{marginTop:"10px"},children:[!Gs&&!ho&&!mo.length?s.jsx("div",{className:"chat_empty_hint",children:"No session attachments."}):null,mo.map(w=>{const k=String((w==null?void 0:w.artifact_id)||"").trim();if(!k)return null;const P=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},C=String((P==null?void 0:P.filename)||"").trim(),W=String((P==null?void 0:P.path)||"").trim(),K=String((P==null?void 0:P.sha256)||"").trim(),Q=String((w==null?void 0:w.content_type)||"").trim(),de=typeof(w==null?void 0:w.size_bytes)=="number"?Number(w.size_bytes):null,Fe=W?`@${W}`:C||k;return s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:Fe}),s.jsx("span",{className:"mono",children:Ra(k,18)})]}),s.jsxs("div",{className:"body",children:[K?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"sha256"}),": ",Ra(K,18)]}):null,Q?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"type"}),": ",Q]}):null,typeof de=="number"?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"size"}),": ",de.toLocaleString()," bytes"]}):null]}),s.jsxs("div",{className:"actions",children:[s.jsx("button",{className:"btn",onClick:()=>void B(k),children:"Copy id"}),s.jsx("button",{className:"btn",onClick:()=>void gn(w),disabled:!ui.trim(),children:"Preview"}),s.jsx("button",{className:"btn",onClick:()=>void at(w),disabled:!ui.trim(),children:"Download"})]})]},k)}),s.jsxs(Li,{open:Ho,title:dc||"Attachment",onClose:()=>{po(!1),Ui(""),ha(""),pa(!1)},actions:s.jsx(s.Fragment,{children:s.jsx("button",{className:"btn",onClick:()=>{po(!1),Ui(""),ha(""),pa(!1)},children:"Close"})}),children:[Ml?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:"Loading…"}):null,Tl?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:Tl}):null,s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",maxHeight:"62vh",overflow:"auto",margin:0},children:ji||"(empty)"})]})]})]}):null,jn==="chat"?s.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:["Using Maintenance AI from Settings: ",r.maintenance_ai_provider.trim()||"(gateway default)"," /"," ",r.maintenance_ai_model.trim()||"(gateway default)"]}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Saved discussions"}),s.jsxs("div",{className:"actions",style:{justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap",marginTop:0},children:[s.jsx("div",{style:{flex:1,minWidth:260},children:s.jsx(eu,{value:fo,options:rt,placeholder:gs?"Loading…":rt.length?"Select a saved discussion…":"(none saved)",disabled:!c.trim()||!I||!rt.length,loading:gs,searchable:!0,clearable:!0,onChange:w=>{Di(w),je("")}})}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:0},children:[s.jsx("button",{className:"btn",type:"button",disabled:!fo.trim()||!I||ns,onClick:()=>void Za(),children:ns?"Loading…":"Load"}),s.jsx("button",{className:"btn",type:"button",disabled:!Mn.length||ps||Hs||ns,onClick:()=>{hr([]),hs(""),ar(""),Vs(""),ci(""),es("")},children:"Clear"}),s.jsx("button",{className:"btn",type:"button",onClick:()=>void ss(),disabled:!c.trim()||!I||gs,children:gs?"Refreshing…":"Refresh"})]})]}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:"8px",flexWrap:"wrap"},children:[s.jsx("button",{className:"btn",type:"button",disabled:!Mn.length||!c.trim()||!I||Hs||!Ie,onClick:()=>void ja(),title:Ie?"":"No changes since last save",children:Hs?"Saving…":!Ie&&$s?"Saved":"Save discussion"}),s.jsx("button",{className:"btn",type:"button",disabled:!Mn.length,onClick:()=>Xr("download"),children:"Export Markdown"}),s.jsx("button",{className:"btn",type:"button",disabled:!Mn.length,onClick:()=>Xr("copy"),children:Ws==="copied"?"Copied":Ws==="failed"?"Copy failed":"Copy Markdown"})]}),s.jsx("div",{className:"chat_hint",children:"Read-only. No tools. Grounded in the parent run + subflows ledger."}),$s?s.jsxs("div",{className:"chat_hint",children:["Last saved: ",sh($s)]}):null,Gr?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:Gr}):null,ie?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:ie}):null,ts?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:ts}):null]}),pn?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:pn})]}):null,li?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"voice"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:li})]}):null,s.jsx("div",{className:"chat_messages",style:{marginTop:"10px"},children:s.jsx(Gd,{messages:Mn,className:"log_scroll",messageProps:Be.tts_supported&&I&&Qn.trim()?{onSpeakToggle:Vn,getSpeakState:Qo,jsonCollapseAfterDepth:4}:{jsonCollapseAfterDepth:4},empty:s.jsx("div",{className:"chat_empty_hint",children:"Ask about this run (why failed, which tools, what happened in subflows)."})})}),s.jsx("div",{className:"chat_composer",style:{marginTop:"10px"},children:s.jsx(qd,{ref:Es,value:Bs,onChange:hs,onSubmit:()=>void Xn(),placeholder:"Ask about this run…",disabled:!c.trim()||!I||ps,busy:ps||Be.voice_ptt_busy,busyLabel:Be.voice_ptt_busy?"Transcribing…":"Thinking…",rows:3,sendButtonClassName:"btn primary",actions:s.jsxs("button",{className:`btn btn_icon voice_btn${Be.voice_ptt_recording?" danger":""}`,type:"button",disabled:!I||!ve.trim()||!Qn.trim()||ps||Be.voice_ptt_busy||!Be.voice_ptt_supported,title:Be.voice_ptt_supported?Be.voice_ptt_busy?"Transcribing…":Be.voice_ptt_recording?"Recording… release to transcribe":"Hold to talk (record + transcribe)":"Voice recording is not supported in this browser","aria-label":"Voice input",onPointerDown:w=>{var k,P;if(!(!I||!ve.trim()||!Qn.trim()||ps||Be.voice_ptt_busy||!Be.voice_ptt_supported)){w.preventDefault();try{(P=(k=w.currentTarget)==null?void 0:k.setPointerCapture)==null||P.call(k,w.pointerId)}catch{}Be.start_voice_ptt_recording()}},onPointerUp:w=>{w.preventDefault(),Be.stop_voice_ptt_recording()},onPointerCancel:w=>{w.preventDefault(),Be.stop_voice_ptt_recording()},children:[s.jsx(Gn,{name:Be.voice_ptt_recording?"x":"mic",size:16}),Be.voice_ptt_busy?"Transcribing…":Be.voice_ptt_recording?"Recording…":"Voice"]})})})]}):null,s.jsxs("div",{className:`status_bar ${qe?"pulse":""}`,children:[s.jsx("strong",{children:"Run"}),":"," ",c.trim()?s.jsx("span",{className:"mono",children:Nc||eo||"unknown"}):s.jsx("span",{className:"mono",children:"(none)"}),c.trim()&&Na&&as?s.jsxs("span",{className:"mono muted",children:[" • next in ",as]}):null,qr?s.jsxs("span",{className:"mono muted",children:[" • ",qr]}):null]})]})]})}):null,qt?s.jsxs(Li,{open:qt,title:"Edit schedule",onClose:()=>{et(!1),Nn(""),$n(!0),ir(""),gr(!1)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{et(!1),Nn(""),$n(!0),ir(""),gr(!1)},disabled:Se||lr,children:"Back"}),s.jsx("button",{className:"btn primary",onClick:async()=>{await iu({interval:Sn,apply_immediately:In})||(et(!1),ir(""),gr(!1))},disabled:Se||lr||!Sn.trim(),children:"Save"})]}),children:[Cr?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:Cr})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Interval"}),s.jsx("input",{className:"mono",value:Sn,onChange:w=>Nn(String(w.target.value||"")),placeholder:"20m / 1h / 0.5s / 250ms",disabled:Se||lr}),s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:["Accepted units: ",s.jsx("span",{className:"mono",children:"ms"}),", ",s.jsx("span",{className:"mono",children:"s"}),", ",s.jsx("span",{className:"mono",children:"m"}),","," ",s.jsx("span",{className:"mono",children:"h"}),", ",s.jsx("span",{className:"mono",children:"d"}),". This updates the existing scheduled run in place (no context loss)."]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Quick picks"}),s.jsx("div",{className:"actions",style:{gap:"8px",flexWrap:"wrap"},children:["15m","30m","1h","2h","6h","1d"].map(w=>s.jsx("button",{className:"btn",onClick:()=>Nn(w),disabled:Se||lr,children:w},w))})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Apply"}),s.jsxs("label",{style:{display:"flex",gap:"10px",alignItems:"center"},children:[s.jsx("input",{type:"checkbox",checked:In,onChange:w=>$n(!!w.target.checked),disabled:Se||lr}),"Apply immediately (recompute next run from now if waiting)"]})]})]}):null,Ns?s.jsxs(Li,{open:Ns,title:"Compact scheduled context",onClose:()=>{ds(!1),Kn(""),bt(!1)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{ds(!1),Kn(""),bt(!1)},disabled:Se||Ze,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:async()=>{await Qa({preserve_recent:Si,compression_mode:Ir,focus:Ds})||(ds(!1),Kn(""),bt(!1))},disabled:Se||Ze,children:Ze?"Compacting…":"Compact"})]}),children:[fs?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:fs})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Preserve recent turns"}),s.jsx("input",{type:"number",min:1,value:String(Si),onChange:w=>Bo(Math.max(1,parseInt(w.target.value||"6",10)||6)),disabled:Se||Ze})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Mode"}),s.jsxs("select",{value:Ir,onChange:w=>Tn(w.target.value),disabled:Se||Ze,children:[s.jsx("option",{value:"light",children:"light"}),s.jsx("option",{value:"standard",children:"standard"}),s.jsx("option",{value:"heavy",children:"heavy"})]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Focus (optional)"}),s.jsx("input",{className:"mono",value:Ds,onChange:w=>Ii(String(w.target.value||"")),placeholder:"e.g. important decisions, next steps…",disabled:Se||Ze})]})]}):null,fn?s.jsxs(Li,{open:fn,title:Vr==="cancel"?"Cancel run":os?"Suspend schedule":"Pause run",onClose:()=>{fr(!1),oi(""),Fn("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{fr(!1),oi(""),Fn("")},disabled:Se||De,children:"Back"}),s.jsx("button",{className:`btn ${Vr==="cancel"?"danger":"primary"}`,onClick:async()=>{Fn("");const w=await Sa(Vr,{reason:ms});if(w){Fn(w);return}fr(!1),oi(""),Fn("")},disabled:Se||De,children:Vr==="pause"?os?"Suspend":"Pause":"Cancel"})]}),children:[ai?s.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:"error"}),s.jsx("span",{className:"mono",children:tn()})]}),s.jsx("div",{className:"body mono",children:ai})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Reason (optional)"}),s.jsx("input",{className:"mono",value:ms,onChange:w=>oi(w.target.value),placeholder:"reason…"})]})]}):null,el?s.jsx("div",{className:"overlay",children:s.jsxs("div",{className:"modal",children:[s.jsxs("h2",{className:"mono",children:["Run is waiting (",String((mn==null?void 0:mn.reason)||"unknown"),")"]}),s.jsxs("p",{className:"mono",children:["wait_key: ",String((mn==null?void 0:mn.wait_key)||"")]}),Bl.length?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Tool calls (from wait.details.tool_calls)"}),s.jsx("textarea",{className:"mono",readOnly:!0,value:Vd(Bl)})]}),s.jsxs("div",{className:"actions",children:[s.jsx("button",{className:"btn primary",disabled:!Ba||De,onClick:()=>pc(Bl),children:"Execute via tool worker + resume"}),s.jsx("button",{className:"btn",disabled:De,onClick:()=>is({approved:!0}),children:"Resume (manual / advanced)"})]})]}):s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Prompt"}),s.jsx("textarea",{className:"mono",readOnly:!0,value:String((mn==null?void 0:mn.prompt)||"")||"(no prompt provided)"})]}),s.jsx(S1,{wait:mn,disabled:De,on_submit:w=>is({response:w})})]})]})}):null]})]})}function S1(e){const[t,r]=m.useState(""),o=Array.isArray(e.wait.choices)?e.wait.choices:[],l=e.wait.allow_free_text!==!1,u=e.disabled===!0;return s.jsxs(s.Fragment,{children:[o.length?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Choices"}),s.jsxs("select",{className:"mono",value:t,onChange:c=>r(c.target.value),children:[s.jsx("option",{value:"",children:"(select)"}),o.map((c,d)=>s.jsx("option",{value:String(c),children:String(c)},d))]})]}):null,l?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Response"}),s.jsx("input",{className:"mono",value:t,onChange:c=>r(c.target.value),placeholder:"Type response…"})]}):null,s.jsx("div",{className:"actions",children:s.jsx("button",{className:"btn primary",disabled:u||!t.trim(),onClick:()=>e.on_submit(t.trim()),children:"Submit response"})})]})}function j1(e){const t=e.item,r=String(t.node_id||"").trim(),o=r&&e.node_index&&typeof e.node_index=="object"?e.node_index[r]:null,l=typeof(o==null?void 0:o.label)=="string"&&o.label.trim()?o.label.trim():r||t.title,u=typeof(o==null?void 0:o.type)=="string"&&o.type.trim()?o.type.trim():"",c=typeof(o==null?void 0:o.headerColor)=="string"&&o.headerColor.trim()?o.headerColor.trim():"",d=t.kind==="step"?l:t.title,h=c||(t.kind==="error"?"rgba(239, 68, 68, 0.85)":t.kind==="message"?"rgba(167, 139, 250, 0.85)":t.kind==="event"?"rgba(96, 165, 250, 0.85)":t.status==="waiting"?"rgba(96, 165, 250, 0.65)":t.status==="completed"?"rgba(34, 197, 94, 0.65)":"rgba(255, 255, 255, 0.14)"),_=String(t.status||"").trim(),g=_.toLowerCase(),x=g==="completed"?"chip ok":g==="failed"?"chip danger":g==="waiting"?"chip warn":g==="running"?"chip info":"chip muted",v=tx(t.data),b=!!(v&&v.trim()),j=sh(t.ts);return s.jsxs("div",{className:"log_item card",style:{"--card-accent":h},children:[s.jsxs("div",{className:"meta",children:[s.jsxs("span",{className:"mono",children:[t.kind," • ",d]}),s.jsx("span",{className:"mono muted",title:t.ts,children:j})]}),s.jsxs("div",{className:"meta2",children:[_?s.jsx("span",{className:`mono ${x}`,children:_}):null,u?s.jsx("span",{className:"chip mono muted",children:u}):null,t.effect_type?s.jsx("span",{className:"chip mono muted",children:String(t.effect_type)}):null,t.cursor?s.jsxs("span",{className:"chip mono muted",children:["#",t.cursor]}):null,t.run_id?s.jsx("span",{className:"chip mono muted",children:Ra(String(t.run_id),10)}):null,t.kind!=="step"&&r?s.jsx("span",{className:"chip mono muted",children:r}):null]}),t.preview?s.jsx("div",{className:"log_preview mono",children:t.preview}):null,t.data?s.jsxs("div",{className:"log_actions",children:[b?s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:e.on_toggle_response,children:e.response_open?"Fold Response":"Unfold Response"}),s.jsx("button",{className:"btn",onClick:()=>e.on_copy(String(v||"")),children:"Copy Response"})]}):null,s.jsx("button",{className:"btn",onClick:e.on_toggle,children:e.open?"Fold JSON":"Unfold JSON"}),s.jsx("button",{className:"btn",onClick:()=>{try{e.on_copy(JSON.stringify(t.data,null,2))}catch{e.on_copy(String(t.data))}},children:"Copy JSON"})]}):null,e.response_open&&b?s.jsx("div",{className:"body",children:s.jsx(co,{text:String(v||"")})}):null,e.open&&t.data?s.jsx("div",{className:"body mono",children:s.jsx(y_,{value:t.data,max_string_len:220})}):null]})}if("serviceWorker"in navigator){window.addEventListener("load",()=>{navigator.serviceWorker.register("/sw.js").then(t=>t.update()).catch(()=>{})});let e=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{e||(e=!0,window.location.reload())})}Ix.createRoot(document.getElementById("root")).render(s.jsx(Ee.StrictMode,{children:s.jsx(b1,{})}));
143
+ //# sourceMappingURL=index-C9wHvC2x.js.map