@abstractframework/observer 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,143 +0,0 @@
1
- var Ax=Object.defineProperty;var Tx=(e,t,r)=>t in e?Ax(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Su=(e,t,r)=>Tx(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 nh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qf={exports:{}},ju={},Gf={exports:{}},bn={};/**
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 Mx(){if(pp)return bn;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(C){return C===null||typeof C!="object"?null:(C=x&&C[x]||C["@@iterator"],typeof C=="function"?C:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,S={};function A(C,U,te){this.props=C,this.context=U,this.refs=S,this.updater=te||b}A.prototype.isReactComponent={},A.prototype.setState=function(C,U){if(typeof C!="object"&&typeof C!="function"&&C!=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,C,U,"setState")},A.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function T(){}T.prototype=A.prototype;function B(C,U,te){this.props=C,this.context=U,this.refs=S,this.updater=te||b}var P=B.prototype=new T;P.constructor=B,j(P,A.prototype),P.isPureReactComponent=!0;var F=Array.isArray,G=Object.prototype.hasOwnProperty,se={current:null},Y={key:!0,ref:!0,__self:!0,__source:!0};function le(C,U,te){var ne,me={},Me=null,Ne=null;if(U!=null)for(ne in U.ref!==void 0&&(Ne=U.ref),U.key!==void 0&&(Me=""+U.key),U)G.call(U,ne)&&!Y.hasOwnProperty(ne)&&(me[ne]=U[ne]);var Fe=arguments.length-2;if(Fe===1)me.children=te;else if(1<Fe){for(var Be=Array(Fe),_e=0;_e<Fe;_e++)Be[_e]=arguments[_e+2];me.children=Be}if(C&&C.defaultProps)for(ne in Fe=C.defaultProps,Fe)me[ne]===void 0&&(me[ne]=Fe[ne]);return{$$typeof:e,type:C,key:Me,ref:Ne,props:me,_owner:se.current}}function oe(C,U){return{$$typeof:e,type:C.type,key:U,ref:C.ref,props:C.props,_owner:C._owner}}function ge(C){return typeof C=="object"&&C!==null&&C.$$typeof===e}function Re(C){var U={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(te){return U[te]})}var Te=/\/+/g;function K(C,U){return typeof C=="object"&&C!==null&&C.key!=null?Re(""+C.key):U.toString(36)}function W(C,U,te,ne,me){var Me=typeof C;(Me==="undefined"||Me==="boolean")&&(C=null);var Ne=!1;if(C===null)Ne=!0;else switch(Me){case"string":case"number":Ne=!0;break;case"object":switch(C.$$typeof){case e:case t:Ne=!0}}if(Ne)return Ne=C,me=me(Ne),C=ne===""?"."+K(Ne,0):ne,F(me)?(te="",C!=null&&(te=C.replace(Te,"$&/")+"/"),W(me,U,te,"",function(_e){return _e})):me!=null&&(ge(me)&&(me=oe(me,te+(!me.key||Ne&&Ne.key===me.key?"":(""+me.key).replace(Te,"$&/")+"/")+C)),U.push(me)),1;if(Ne=0,ne=ne===""?".":ne+":",F(C))for(var Fe=0;Fe<C.length;Fe++){Me=C[Fe];var Be=ne+K(Me,Fe);Ne+=W(Me,U,te,Be,me)}else if(Be=v(C),typeof Be=="function")for(C=Be.call(C),Fe=0;!(Me=C.next()).done;)Me=Me.value,Be=ne+K(Me,Fe++),Ne+=W(Me,U,te,Be,me);else if(Me==="object")throw U=String(C),Error("Objects are not valid as a React child (found: "+(U==="[object Object]"?"object with keys {"+Object.keys(C).join(", ")+"}":U)+"). If you meant to render a collection of children, use an array instead.");return Ne}function X(C,U,te){if(C==null)return C;var ne=[],me=0;return W(C,ne,"","",function(Me){return U.call(te,Me,me++)}),ne}function V(C){if(C._status===-1){var U=C._result;U=U(),U.then(function(te){(C._status===0||C._status===-1)&&(C._status=1,C._result=te)},function(te){(C._status===0||C._status===-1)&&(C._status=2,C._result=te)}),C._status===-1&&(C._status=0,C._result=U)}if(C._status===1)return C._result.default;throw C._result}var Q={current:null},k={transition:null},M={ReactCurrentDispatcher:Q,ReactCurrentBatchConfig:k,ReactCurrentOwner:se};function D(){throw Error("act(...) is not supported in production builds of React.")}return bn.Children={map:X,forEach:function(C,U,te){X(C,function(){U.apply(this,arguments)},te)},count:function(C){var U=0;return X(C,function(){U++}),U},toArray:function(C){return X(C,function(U){return U})||[]},only:function(C){if(!ge(C))throw Error("React.Children.only expected to receive a single React element child.");return C}},bn.Component=A,bn.Fragment=r,bn.Profiler=l,bn.PureComponent=B,bn.StrictMode=o,bn.Suspense=h,bn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=M,bn.act=D,bn.cloneElement=function(C,U,te){if(C==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+C+".");var ne=j({},C.props),me=C.key,Me=C.ref,Ne=C._owner;if(U!=null){if(U.ref!==void 0&&(Me=U.ref,Ne=se.current),U.key!==void 0&&(me=""+U.key),C.type&&C.type.defaultProps)var Fe=C.type.defaultProps;for(Be in U)G.call(U,Be)&&!Y.hasOwnProperty(Be)&&(ne[Be]=U[Be]===void 0&&Fe!==void 0?Fe[Be]:U[Be])}var Be=arguments.length-2;if(Be===1)ne.children=te;else if(1<Be){Fe=Array(Be);for(var _e=0;_e<Be;_e++)Fe[_e]=arguments[_e+2];ne.children=Fe}return{$$typeof:e,type:C.type,key:me,ref:Me,props:ne,_owner:Ne}},bn.createContext=function(C){return C={$$typeof:c,_currentValue:C,_currentValue2:C,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},C.Provider={$$typeof:u,_context:C},C.Consumer=C},bn.createElement=le,bn.createFactory=function(C){var U=le.bind(null,C);return U.type=C,U},bn.createRef=function(){return{current:null}},bn.forwardRef=function(C){return{$$typeof:d,render:C}},bn.isValidElement=ge,bn.lazy=function(C){return{$$typeof:g,_payload:{_status:-1,_result:C},_init:V}},bn.memo=function(C,U){return{$$typeof:_,type:C,compare:U===void 0?null:U}},bn.startTransition=function(C){var U=k.transition;k.transition={};try{C()}finally{k.transition=U}},bn.unstable_act=D,bn.useCallback=function(C,U){return Q.current.useCallback(C,U)},bn.useContext=function(C){return Q.current.useContext(C)},bn.useDebugValue=function(){},bn.useDeferredValue=function(C){return Q.current.useDeferredValue(C)},bn.useEffect=function(C,U){return Q.current.useEffect(C,U)},bn.useId=function(){return Q.current.useId()},bn.useImperativeHandle=function(C,U,te){return Q.current.useImperativeHandle(C,U,te)},bn.useInsertionEffect=function(C,U){return Q.current.useInsertionEffect(C,U)},bn.useLayoutEffect=function(C,U){return Q.current.useLayoutEffect(C,U)},bn.useMemo=function(C,U){return Q.current.useMemo(C,U)},bn.useReducer=function(C,U,te){return Q.current.useReducer(C,U,te)},bn.useRef=function(C){return Q.current.useRef(C)},bn.useState=function(C){return Q.current.useState(C)},bn.useSyncExternalStore=function(C,U,te){return Q.current.useSyncExternalStore(C,U,te)},bn.useTransition=function(){return Q.current.useTransition()},bn.version="18.3.1",bn}var gp;function Ju(){return gp||(gp=1,Gf.exports=Mx()),Gf.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 zx(){if(_p)return ju;_p=1;var e=Ju(),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 ju.Fragment=r,ju.jsx=c,ju.jsxs=c,ju}var yp;function Rx(){return yp||(yp=1,qf.exports=zx()),qf.exports}var s=Rx(),m=Ju();const $e=nh(m);var Nd={},Yf={exports:{}},hi={},Xf={exports:{}},Kf={};/**
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 Lx(){return xp||(xp=1,(function(e){function t(k,M){var D=k.length;k.push(M);e:for(;0<D;){var C=D-1>>>1,U=k[C];if(0<l(U,M))k[C]=M,k[D]=U,D=C;else break e}}function r(k){return k.length===0?null:k[0]}function o(k){if(k.length===0)return null;var M=k[0],D=k.pop();if(D!==M){k[0]=D;e:for(var C=0,U=k.length,te=U>>>1;C<te;){var ne=2*(C+1)-1,me=k[ne],Me=ne+1,Ne=k[Me];if(0>l(me,D))Me<U&&0>l(Ne,me)?(k[C]=Ne,k[Me]=D,C=Me):(k[C]=me,k[ne]=D,C=ne);else if(Me<U&&0>l(Ne,D))k[C]=Ne,k[Me]=D,C=Me;else break e}}return M}function l(k,M){var D=k.sortIndex-M.sortIndex;return D!==0?D:k.id-M.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,A=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,B=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(k){for(var M=r(_);M!==null;){if(M.callback===null)o(_);else if(M.startTime<=k)o(_),M.sortIndex=M.expirationTime,t(h,M);else break;M=r(_)}}function F(k){if(S=!1,P(k),!j)if(r(h)!==null)j=!0,V(G);else{var M=r(_);M!==null&&Q(F,M.startTime-k)}}function G(k,M){j=!1,S&&(S=!1,T(le),le=-1),b=!0;var D=v;try{for(P(M),x=r(h);x!==null&&(!(x.expirationTime>M)||k&&!Re());){var C=x.callback;if(typeof C=="function"){x.callback=null,v=x.priorityLevel;var U=C(x.expirationTime<=M);M=e.unstable_now(),typeof U=="function"?x.callback=U:x===r(h)&&o(h),P(M)}else o(h);x=r(h)}if(x!==null)var te=!0;else{var ne=r(_);ne!==null&&Q(F,ne.startTime-M),te=!1}return te}finally{x=null,v=D,b=!1}}var se=!1,Y=null,le=-1,oe=5,ge=-1;function Re(){return!(e.unstable_now()-ge<oe)}function Te(){if(Y!==null){var k=e.unstable_now();ge=k;var M=!0;try{M=Y(!0,k)}finally{M?K():(se=!1,Y=null)}}else se=!1}var K;if(typeof B=="function")K=function(){B(Te)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,X=W.port2;W.port1.onmessage=Te,K=function(){X.postMessage(null)}}else K=function(){A(Te,0)};function V(k){Y=k,se||(se=!0,K())}function Q(k,M){le=A(function(){k(e.unstable_now())},M)}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(k){k.callback=null},e.unstable_continueExecution=function(){j||b||(j=!0,V(G))},e.unstable_forceFrameRate=function(k){0>k||125<k?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):oe=0<k?Math.floor(1e3/k):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return r(h)},e.unstable_next=function(k){switch(v){case 1:case 2:case 3:var M=3;break;default:M=v}var D=v;v=M;try{return k()}finally{v=D}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(k,M){switch(k){case 1:case 2:case 3:case 4:case 5:break;default:k=3}var D=v;v=k;try{return M()}finally{v=D}},e.unstable_scheduleCallback=function(k,M,D){var C=e.unstable_now();switch(typeof D=="object"&&D!==null?(D=D.delay,D=typeof D=="number"&&0<D?C+D:C):D=C,k){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=D+U,k={id:g++,callback:M,priorityLevel:k,startTime:D,expirationTime:U,sortIndex:-1},D>C?(k.sortIndex=D,t(_,k),r(h)===null&&k===r(_)&&(S?(T(le),le=-1):S=!0,Q(F,D-C))):(k.sortIndex=U,t(h,k),j||b||(j=!0,V(G))),k},e.unstable_shouldYield=Re,e.unstable_wrapCallback=function(k){var M=v;return function(){var D=v;v=M;try{return k.apply(this,arguments)}finally{v=D}}}})(Kf)),Kf}var vp;function Px(){return vp||(vp=1,Xf.exports=Lx()),Xf.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 Ix(){if(wp)return hi;wp=1;var e=Ju(),t=Px();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,$){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=$}var A={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(n){A[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];A[i]=new S(i,1,!1,n[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(n){A[n]=new S(n,2,!1,n.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(n){A[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){A[n]=new S(n,3,!1,n.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(n){A[n]=new S(n,3,!0,n,null,!1,!1)}),["capture","download"].forEach(function(n){A[n]=new S(n,4,!1,n,null,!1,!1)}),["cols","rows","size","span"].forEach(function(n){A[n]=new S(n,6,!1,n,null,!1,!1)}),["rowSpan","start"].forEach(function(n){A[n]=new S(n,5,!1,n.toLowerCase(),null,!1,!1)});var T=/[\-:]([a-z])/g;function B(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(T,B);A[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(T,B);A[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(T,B);A[i]=new S(i,1,!1,n,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(n){A[n]=new S(n,1,!1,n.toLowerCase(),null,!1,!1)}),A.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(n){A[n]=new S(n,1,!1,n.toLowerCase(),null,!0,!0)});function P(n,i,a,f){var p=A.hasOwnProperty(i)?A[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 F=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,G=Symbol.for("react.element"),se=Symbol.for("react.portal"),Y=Symbol.for("react.fragment"),le=Symbol.for("react.strict_mode"),oe=Symbol.for("react.profiler"),ge=Symbol.for("react.provider"),Re=Symbol.for("react.context"),Te=Symbol.for("react.forward_ref"),K=Symbol.for("react.suspense"),W=Symbol.for("react.suspense_list"),X=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),Q=Symbol.for("react.offscreen"),k=Symbol.iterator;function M(n){return n===null||typeof n!="object"?null:(n=k&&n[k]||n["@@iterator"],typeof n=="function"?n:null)}var D=Object.assign,C;function U(n){if(C===void 0)try{throw Error()}catch(a){var i=a.stack.trim().match(/\n( *(at )?)/);C=i&&i[1]||""}return`
34
- `+C+n}var te=!1;function ne(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(be){var f=be}Reflect.construct(n,[],i)}else{try{i.call()}catch(be){f=be}n.call(i.prototype)}else{try{throw Error()}catch(be){f=be}n()}}catch(be){if(be&&f&&typeof be.stack=="string"){for(var p=be.stack.split(`
35
- `),y=f.stack.split(`
36
- `),$=p.length-1,q=y.length-1;1<=$&&0<=q&&p[$]!==y[q];)q--;for(;1<=$&&0<=q;$--,q--)if(p[$]!==y[q]){if($!==1||q!==1)do if($--,q--,0>q||p[$]!==y[q]){var ee=`
37
- `+p[$].replace(" at new "," at ");return n.displayName&&ee.includes("<anonymous>")&&(ee=ee.replace("<anonymous>",n.displayName)),ee}while(1<=$&&0<=q);break}}}finally{te=!1,Error.prepareStackTrace=a}return(n=n?n.displayName||n.name:"")?U(n):""}function me(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=ne(n.type,!1),n;case 11:return n=ne(n.type.render,!1),n;case 1:return n=ne(n.type,!0),n;default:return""}}function Me(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 Y:return"Fragment";case se:return"Portal";case oe:return"Profiler";case le:return"StrictMode";case K:return"Suspense";case W:return"SuspenseList"}if(typeof n=="object")switch(n.$$typeof){case Re:return(n.displayName||"Context")+".Consumer";case ge:return(n._context.displayName||"Context")+".Provider";case Te:var i=n.render;return n=n.displayName,n||(n=i.displayName||i.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case X:return i=n.displayName||null,i!==null?i:Me(n.type)||"Memo";case V:i=n._payload,n=n._init;try{return Me(n(i))}catch{}}return null}function Ne(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 Me(i);case 8:return i===le?"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 Fe(n){switch(typeof n){case"boolean":case"number":case"string":case"undefined":return n;case"object":return n;default:return""}}function Be(n){var i=n.type;return(n=n.nodeName)&&n.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function _e(n){var i=Be(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($){f=""+$,y.call(this,$)}}),Object.defineProperty(n,i,{enumerable:a.enumerable}),{getValue:function(){return f},setValue:function($){f=""+$},stopTracking:function(){n._valueTracker=null,delete n[i]}}}}function ve(n){n._valueTracker||(n._valueTracker=_e(n))}function ae(n){if(!n)return!1;var i=n._valueTracker;if(!i)return!0;var a=i.getValue(),f="";return n&&(f=Be(n)?n.checked?"true":"false":n.value),n=f,n!==a?(i.setValue(n),!0):!1}function we(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 Pe(n,i){var a=i.checked;return D({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??n._wrapperState.initialChecked})}function Ke(n,i){var a=i.defaultValue==null?"":i.defaultValue,f=i.checked!=null?i.checked:i.defaultChecked;a=Fe(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 et(n,i){i=i.checked,i!=null&&P(n,"checked",i,!1)}function Ae(n,i){et(n,i);var a=Fe(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")?lt(n,i.type,a):i.hasOwnProperty("defaultValue")&&lt(n,i.type,Fe(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(n.defaultChecked=!!i.defaultChecked)}function Oe(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 lt(n,i,a){(i!=="number"||we(n.ownerDocument)!==n)&&(a==null?n.defaultValue=""+n._wrapperState.initialValue:n.defaultValue!==""+a&&(n.defaultValue=""+a))}var xe=Array.isArray;function $t(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=""+Fe(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 xt(n,i){if(i.dangerouslySetInnerHTML!=null)throw Error(r(91));return D({},i,{value:void 0,defaultValue:void 0,children:""+n._wrapperState.initialValue})}function on(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(xe(a)){if(1<a.length)throw Error(r(93));a=a[0]}i=a}i==null&&(i=""),a=i}n._wrapperState={initialValue:Fe(a)}}function cn(n,i){var a=Fe(i.value),f=Fe(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 Xt(n){var i=n.textContent;i===n._wrapperState.initialValue&&i!==""&&i!==null&&(n.value=i)}function Se(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 ue(n,i){return n==null||n==="http://www.w3.org/1999/xhtml"?Se(i):n==="http://www.w3.org/2000/svg"&&i==="foreignObject"?"http://www.w3.org/1999/xhtml":n}var ke,At=(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(ke=ke||document.createElement("div"),ke.innerHTML="<svg>"+i.valueOf().toString()+"</svg>",i=ke.firstChild;n.firstChild;)n.removeChild(n.firstChild);for(;i.firstChild;)n.appendChild(i.firstChild)}});function gt(n,i){if(i){var a=n.firstChild;if(a&&a===n.lastChild&&a.nodeType===3){a.nodeValue=i;return}}n.textContent=i}var qt={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},On=["Webkit","ms","Moz","O"];Object.keys(qt).forEach(function(n){On.forEach(function(i){i=i+n.charAt(0).toUpperCase()+n.substring(1),qt[i]=qt[n]})});function rn(n,i,a){return i==null||typeof i=="boolean"||i===""?"":a||typeof i!="number"||i===0||qt.hasOwnProperty(n)&&qt[n]?(""+i).trim():i+"px"}function un(n,i){n=n.style;for(var a in i)if(i.hasOwnProperty(a)){var f=a.indexOf("--")===0,p=rn(a,i[a],f);a==="float"&&(a="cssFloat"),f?n.setProperty(a,p):n[a]=p}}var vn=D({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 jn(n,i){if(i){if(vn[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 ur(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 Zt=null;function Qn(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&&(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var as=null,Un=null,de=null;function je(n){if(n=Ua(n)){if(typeof as!="function")throw Error(r(280));var i=n.stateNode;i&&(i=lc(i),as(n.stateNode,n.type,i))}}function ut(n){Un?de?de.push(n):de=[n]:Un=n}function it(){if(Un){var n=Un,i=de;if(de=Un=null,je(n),i)for(n=0;n<i.length;n++)je(i[n])}}function St(n,i){return n(i)}function Rt(){}var Wt=!1;function Dt(n,i,a){if(Wt)return n(i,a);Wt=!0;try{return St(n,i,a)}finally{Wt=!1,(Un!==null||de!==null)&&(Rt(),it())}}function gn(n,i){var a=n.stateNode;if(a===null)return null;var f=lc(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 yn={};Object.defineProperty(yn,"passive",{get:function(){Ft=!0}}),window.addEventListener("test",yn,yn),window.removeEventListener("test",yn,yn)}catch{Ft=!1}function dn(n,i,a,f,p,y,$,q,ee){var be=Array.prototype.slice.call(arguments,3);try{i.apply(a,be)}catch(He){this.onError(He)}}var Gt=!1,en=null,Vt=!1,rt=null,kn={onError:function(n){Gt=!0,en=n}};function Rn(n,i,a,f,p,y,$,q,ee){Gt=!1,en=null,dn.apply(kn,arguments)}function Nn(n,i,a,f,p,y,$,q,ee){if(Rn.apply(this,arguments),Gt){if(Gt){var be=en;Gt=!1,en=null}else throw Error(r(198));Vt||(Vt=!0,rt=be)}}function Cn(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 lr(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 Fr(n){if(Cn(n)!==n)throw Error(r(188))}function jr(n){var i=n.alternate;if(!i){if(i=Cn(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 Fr(p),n;if(y===f)return Fr(p),i;y=y.sibling}throw Error(r(188))}if(a.return!==f.return)a=p,f=y;else{for(var $=!1,q=p.child;q;){if(q===a){$=!0,a=p,f=y;break}if(q===f){$=!0,f=p,a=y;break}q=q.sibling}if(!$){for(q=y.child;q;){if(q===a){$=!0,a=y,f=p;break}if(q===f){$=!0,f=y,a=p;break}q=q.sibling}if(!$)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 Or(n){return n=jr(n),n!==null?Hs(n):null}function Hs(n){if(n.tag===5||n.tag===6)return n;for(n=n.child;n!==null;){var i=Hs(n);if(i!==null)return i;n=n.sibling}return null}var $s=t.unstable_scheduleCallback,ao=t.unstable_cancelCallback,Mi=t.unstable_shouldYield,ls=t.unstable_requestPaint,$n=t.unstable_now,cs=t.unstable_getCurrentPriorityLevel,Qr=t.unstable_ImmediatePriority,Dr=t.unstable_UserBlockingPriority,pr=t.unstable_NormalPriority,st=t.unstable_LowPriority,jt=t.unstable_IdlePriority,fn=null,Br=null;function kr(n){if(Br&&typeof Br.onCommitFiberRoot=="function")try{Br.onCommitFiberRoot(fn,n,void 0,(n.current.flags&128)===128)}catch{}}var Nr=Math.clz32?Math.clz32:Vs,gr=Math.log,Lo=Math.LN2;function Vs(n){return n>>>=0,n===0?32:31-(gr(n)/Lo|0)|0}var Dn=64,dr=4194304;function fr(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 ze(n,i){var a=n.pendingLanes;if(a===0)return 0;var f=0,p=n.suspendedLanes,y=n.pingedLanes,$=a&268435455;if($!==0){var q=$&~p;q!==0?f=fr(q):(y&=$,y!==0&&(f=fr(y)))}else $=a&~p,$!==0?f=fr($):y!==0&&(f=fr(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-Nr(i),p=1<<a,f|=n[a],i&=~p;return f}function qn(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 Ye(n,i){for(var a=n.suspendedLanes,f=n.pingedLanes,p=n.expirationTimes,y=n.pendingLanes;0<y;){var $=31-Nr(y),q=1<<$,ee=p[$];ee===-1?((q&a)===0||(q&f)!==0)&&(p[$]=qn(q,i)):ee<=i&&(n.expiredLanes|=q),y&=~q}}function Gn(n){return n=n.pendingLanes&-1073741825,n!==0?n:n&1073741824?1073741824:0}function Zn(){var n=Dn;return Dn<<=1,(Dn&4194240)===0&&(Dn=64),n}function _r(n){for(var i=[],a=0;31>a;a++)i.push(n);return i}function Cr(n,i,a){n.pendingLanes|=i,i!==536870912&&(n.suspendedLanes=0,n.pingedLanes=0),n=n.eventTimes,i=31-Nr(i),n[i]=a}function Er(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-Nr(a),y=1<<p;i[p]=0,f[p]=-1,n[p]=-1,a&=~y}}function zi(n,i){var a=n.entangledLanes|=i;for(n=n.entanglements;a;){var f=31-Nr(a),p=1<<f;p&i|n[f]&i&&(n[f]|=i),a&=~p}}var sn=0;function $r(n){return n&=-n,1<n?4<n?(n&268435455)!==0?16:536870912:4:1}var qs,As,er,mr,gi,Ln=!1,Ur=[],Ar=null,Zr=null,Wr=null,Ts=new Map,es=new Map,ts=[],yr="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 Ri(n,i){switch(n){case"focusin":case"focusout":Ar=null;break;case"dragenter":case"dragleave":Zr=null;break;case"mouseover":case"mouseout":Wr=null;break;case"pointerover":case"pointerout":Ts.delete(i.pointerId);break;case"gotpointercapture":case"lostpointercapture":es.delete(i.pointerId)}}function Hr(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=Ua(i),i!==null&&As(i)),n):(n.eventSystemFlags|=f,i=n.targetContainers,p!==null&&i.indexOf(p)===-1&&i.push(p),n)}function Li(n,i,a,f,p){switch(i){case"focusin":return Ar=Hr(Ar,n,i,a,f,p),!0;case"dragenter":return Zr=Hr(Zr,n,i,a,f,p),!0;case"mouseover":return Wr=Hr(Wr,n,i,a,f,p),!0;case"pointerover":var y=p.pointerId;return Ts.set(y,Hr(Ts.get(y)||null,n,i,a,f,p)),!0;case"gotpointercapture":return y=p.pointerId,es.set(y,Hr(es.get(y)||null,n,i,a,f,p)),!0}return!1}function Pi(n){var i=ai(n.target);if(i!==null){var a=Cn(i);if(a!==null){if(i=a.tag,i===13){if(i=lr(a),i!==null){n.blockedOn=i,gi(n.priority,function(){er(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 Ms(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);Zt=f,a.target.dispatchEvent(f),Zt=null}else return i=Ua(a),i!==null&&As(i),n.blockedOn=a,!1;i.shift()}return!0}function Ii(n,i,a){Ms(n)&&a.delete(i)}function ca(){Ln=!1,Ar!==null&&Ms(Ar)&&(Ar=null),Zr!==null&&Ms(Zr)&&(Zr=null),Wr!==null&&Ms(Wr)&&(Wr=null),Ts.forEach(Ii),es.forEach(Ii)}function zs(n,i){n.blockedOn===i&&(n.blockedOn=null,Ln||(Ln=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,ca)))}function Gs(n){function i(p){return zs(p,n)}if(0<Ur.length){zs(Ur[0],n);for(var a=1;a<Ur.length;a++){var f=Ur[a];f.blockedOn===n&&(f.blockedOn=null)}}for(Ar!==null&&zs(Ar,n),Zr!==null&&zs(Zr,n),Wr!==null&&zs(Wr,n),Ts.forEach(i),es.forEach(i),a=0;a<ts.length;a++)f=ts[a],f.blockedOn===n&&(f.blockedOn=null);for(;0<ts.length&&(a=ts[0],a.blockedOn===null);)Pi(a),a.blockedOn===null&&ts.shift()}var Vr=F.ReactCurrentBatchConfig,Rs=!0;function Fi(n,i,a,f){var p=sn,y=Vr.transition;Vr.transition=null;try{sn=1,Tr(n,i,a,f)}finally{sn=p,Vr.transition=y}}function Po(n,i,a,f){var p=sn,y=Vr.transition;Vr.transition=null;try{sn=4,Tr(n,i,a,f)}finally{sn=p,Vr.transition=y}}function Tr(n,i,a,f){if(Rs){var p=ie(n,i,a,f);if(p===null)Vo(n,i,f,R,a),Ri(n,f);else if(Li(p,n,i,a,f))f.stopPropagation();else if(Ri(n,f),i&4&&-1<yr.indexOf(n)){for(;p!==null;){var y=Ua(p);if(y!==null&&qs(y),y=ie(n,i,a,f),y===null&&Vo(n,i,f,R,a),y===p)break;p=y}p!==null&&f.stopPropagation()}else Vo(n,i,f,null,a)}}var R=null;function ie(n,i,a,f){if(R=null,n=Qn(f),n=ai(n),n!==null)if(i=Cn(n),i===null)n=null;else if(a=i.tag,a===13){if(n=lr(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 Ee(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(cs()){case Qr:return 1;case Dr:return 4;case pr:case st:return 16;case jt:return 536870912;default:return 16}default:return 16}}var Ie=null,De=null,ot=null;function Tt(){if(ot)return ot;var n,i=De,a=i.length,f,p="value"in Ie?Ie.value:Ie.textContent,y=p.length;for(n=0;n<a&&i[n]===p[n];n++);var $=a-n;for(f=1;f<=$&&i[a-f]===p[y-f];f++);return ot=p.slice(n,1<f?1-f:void 0)}function Lt(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 Pt(){return!0}function Kt(){return!1}function nt(n){function i(a,f,p,y,$){this._reactName=a,this._targetInst=p,this.type=f,this.nativeEvent=y,this.target=$,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)?Pt:Kt,this.isPropagationStopped=Kt,this}return D(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=Pt)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Pt)},persist:function(){},isPersistent:Pt}),i}var xn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},tn=nt(xn),mn=D({},xn,{view:0,detail:0}),or=nt(mn),An,Mr,bs,_i=D({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ps,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!==bs&&(bs&&n.type==="mousemove"?(An=n.screenX-bs.screenX,Mr=n.screenY-bs.screenY):Mr=An=0,bs=n),An)},movementY:function(n){return"movementY"in n?n.movementY:Mr}}),Ls=nt(_i),lo=D({},_i,{dataTransfer:0}),gl=nt(lo),co=D({},mn,{relatedTarget:0}),uo=nt(co),fo=D({},xn,{animationName:0,elapsedTime:0,pseudoElement:0}),Ia=nt(fo),Ys=D({},xn,{clipboardData:function(n){return"clipboardData"in n?n.clipboardData:window.clipboardData}}),tc=nt(Ys),mo=D({},xn,{data:0}),_l=nt(mo),Io={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},ua={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"},ho={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Oi(n){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(n):(n=ho[n])?!!i[n]:!1}function Ps(){return Oi}var yl=D({},mn,{key:function(n){if(n.key){var i=Io[n.key]||n.key;if(i!=="Unidentified")return i}return n.type==="keypress"?(n=Lt(n),n===13?"Enter":String.fromCharCode(n)):n.type==="keydown"||n.type==="keyup"?ua[n.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ps,charCode:function(n){return n.type==="keypress"?Lt(n):0},keyCode:function(n){return n.type==="keydown"||n.type==="keyup"?n.keyCode:0},which:function(n){return n.type==="keypress"?Lt(n):n.type==="keydown"||n.type==="keyup"?n.keyCode:0}}),da=nt(yl),po=D({},_i,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),go=nt(po),_o=D({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ps}),Fo=nt(_o),fa=D({},xn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Fa=nt(fa),xl=D({},_i,{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}),Oo=nt(xl),vl=[9,13,27,32],Di=d&&"CompositionEvent"in window,yi=null;d&&"documentMode"in document&&(yi=document.documentMode);var nc=d&&"TextEvent"in window&&!yi,Oa=d&&(!Di||yi&&8<yi&&11>=yi),wl=" ",bl=!1;function Do(n,i){switch(n){case"keyup":return vl.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xs(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var Is=!1;function rc(n,i){switch(n){case"compositionend":return Xs(i);case"keypress":return i.which!==32?null:(bl=!0,wl);case"textInput":return n=i.data,n===wl&&bl?null:n;default:return null}}function Bo(n,i){if(Is)return n==="compositionend"||!Di&&Do(n,i)?(n=Tt(),ot=De=Ie=null,Is=!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 Oa&&i.locale!=="ko"?null:i.data;default:return null}}var Sl={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 ma(n){var i=n&&n.nodeName&&n.nodeName.toLowerCase();return i==="input"?!!Sl[n.type]:i==="textarea"}function Bi(n,i,a,f){ut(f),i=qo(i,"onChange"),0<i.length&&(a=new tn("onChange","change",null,a,f),n.push({event:a,listeners:i}))}var zr=null,us=null;function ha(n){va(n,0)}function si(n){var i=Wa(n);if(ae(i))return n}function pa(n,i){if(n==="change")return i}var Ui=!1;if(d){var ds;if(d){var Wi="oninput"in document;if(!Wi){var En=document.createElement("div");En.setAttribute("oninput","return;"),Wi=typeof En.oninput=="function"}ds=Wi}else ds=!1;Ui=ds&&(!document.documentMode||9<document.documentMode)}function ns(){zr&&(zr.detachEvent("onpropertychange",cr),us=zr=null)}function cr(n){if(n.propertyName==="value"&&si(us)){var i=[];Bi(i,us,n,Qn(n)),Dt(ha,i)}}function tr(n,i,a){n==="focusin"?(ns(),zr=i,us=a,zr.attachEvent("onpropertychange",cr)):n==="focusout"&&ns()}function yo(n){if(n==="selectionchange"||n==="keyup"||n==="keydown")return si(us)}function ii(n,i){if(n==="click")return si(i)}function xo(n,i){if(n==="input"||n==="change")return si(i)}function fs(n,i){return n===i&&(n!==0||1/n===1/i)||n!==n&&i!==i}var rs=typeof Object.is=="function"?Object.is:fs;function Ks(n,i){if(rs(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)||!rs(n[p],i[p]))return!1}return!0}function ms(n){for(;n&&n.firstChild;)n=n.firstChild;return n}function Wn(n,i){var a=ms(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=ms(a)}}function hs(n,i){return n&&i?n===i?!0:n&&n.nodeType===3?!1:i&&i.nodeType===3?hs(n,i.parentNode):"contains"in n?n.contains(i):n.compareDocumentPosition?!!(n.compareDocumentPosition(i)&16):!1:!1}function xi(){for(var n=window,i=we();i instanceof n.HTMLIFrameElement;){try{var a=typeof i.contentWindow.location.href=="string"}catch{a=!1}if(a)n=i.contentWindow;else break;i=we(n.document)}return i}function ga(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 Uo(n){var i=xi(),a=n.focusedElem,f=n.selectionRange;if(i!==a&&a&&a.ownerDocument&&hs(a.ownerDocument.documentElement,a)){if(f!==null&&ga(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=Wn(a,y);var $=Wn(a,f);p&&$&&(n.rangeCount!==1||n.anchorNode!==p.node||n.anchorOffset!==p.offset||n.focusNode!==$.node||n.focusOffset!==$.offset)&&(i=i.createRange(),i.setStart(p.node,p.offset),n.removeAllRanges(),y>f?(n.addRange(i),n.extend($.node,$.offset)):(i.setEnd($.node,$.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 Hi=d&&"documentMode"in document&&11>=document.documentMode,Ct=null,_a=null,qr=null,_n=!1;function Rr(n,i,a){var f=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;_n||Ct==null||Ct!==we(f)||(f=Ct,"selectionStart"in f&&ga(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}),qr&&Ks(qr,f)||(qr=f,f=qo(_a,"onSelect"),0<f.length&&(i=new tn("onSelect","select",null,i,a),n.push({event:i,listeners:f}),i.target=Ct)))}function vi(n,i){var a={};return a[n.toLowerCase()]=i.toLowerCase(),a["Webkit"+n]="webkit"+i,a["Moz"+n]="moz"+i,a}var vo={animationend:vi("Animation","AnimationEnd"),animationiteration:vi("Animation","AnimationIteration"),animationstart:vi("Animation","AnimationStart"),transitionend:vi("Transition","TransitionEnd")},oi={},sc={};d&&(sc=document.createElement("div").style,"AnimationEvent"in window||(delete vo.animationend.animation,delete vo.animationiteration.animation,delete vo.animationstart.animation),"TransitionEvent"in window||delete vo.transitionend.transition);function Yt(n){if(oi[n])return oi[n];if(!vo[n])return n;var i=vo[n],a;for(a in i)if(i.hasOwnProperty(a)&&a in sc)return oi[n]=i[a];return n}var ic=Yt("animationend"),Wo=Yt("animationiteration"),oc=Yt("animationstart"),jl=Yt("transitionend"),kl=new Map,ac="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 Vi(n,i){kl.set(n,i),u(i,[n])}for(var Nl=0;Nl<ac.length;Nl++){var ya=ac[Nl],Zc=ya.toLowerCase(),eu=ya[0].toUpperCase()+ya.slice(1);Vi(Zc,"on"+eu)}Vi(ic,"onAnimationEnd"),Vi(Wo,"onAnimationIteration"),Vi(oc,"onAnimationStart"),Vi("dblclick","onDoubleClick"),Vi("focusin","onFocus"),Vi("focusout","onBlur"),Vi(jl,"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 xa="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(" "),tu=new Set("cancel close invalid load scroll toggle".split(" ").concat(xa));function Da(n,i,a){var f=n.type||"unknown-event";n.currentTarget=a,Nn(f,i,void 0,n),n.currentTarget=null}function va(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 $=f.length-1;0<=$;$--){var q=f[$],ee=q.instance,be=q.currentTarget;if(q=q.listener,ee!==y&&p.isPropagationStopped())break e;Da(p,q,be),y=ee}else for($=0;$<f.length;$++){if(q=f[$],ee=q.instance,be=q.currentTarget,q=q.listener,ee!==y&&p.isPropagationStopped())break e;Da(p,q,be),y=ee}}}if(Vt)throw n=rt,Vt=!1,rt=null,n}function In(n,i){var a=i[Hn];a===void 0&&(a=i[Hn]=new Set);var f=n+"__bubble";a.has(f)||(Ba(i,n,2,!1),a.add(f))}function Cl(n,i,a){var f=0;i&&(f|=4),Ba(a,n,f,i)}var Yn="_reactListening"+Math.random().toString(36).slice(2);function Ho(n){if(!n[Yn]){n[Yn]=!0,o.forEach(function(a){a!=="selectionchange"&&(tu.has(a)||Cl(a,!1,n),Cl(a,!0,n))});var i=n.nodeType===9?n:n.ownerDocument;i===null||i[Yn]||(i[Yn]=!0,Cl("selectionchange",!1,i))}}function Ba(n,i,a,f){switch(Ee(i)){case 1:var p=Fi;break;case 4:p=Po;break;default:p=Tr}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 Vo(n,i,a,f,p){var y=f;if((i&1)===0&&(i&2)===0&&f!==null)e:for(;;){if(f===null)return;var $=f.tag;if($===3||$===4){var q=f.stateNode.containerInfo;if(q===p||q.nodeType===8&&q.parentNode===p)break;if($===4)for($=f.return;$!==null;){var ee=$.tag;if((ee===3||ee===4)&&(ee=$.stateNode.containerInfo,ee===p||ee.nodeType===8&&ee.parentNode===p))return;$=$.return}for(;q!==null;){if($=ai(q),$===null)return;if(ee=$.tag,ee===5||ee===6){f=y=$;continue e}q=q.parentNode}}f=f.return}Dt(function(){var be=y,He=Qn(a),Ge=[];e:{var We=kl.get(n);if(We!==void 0){var pt=tn,bt=n;switch(n){case"keypress":if(Lt(a)===0)break e;case"keydown":case"keyup":pt=da;break;case"focusin":bt="focus",pt=uo;break;case"focusout":bt="blur",pt=uo;break;case"beforeblur":case"afterblur":pt=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":pt=Ls;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":pt=gl;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":pt=Fo;break;case ic:case Wo:case oc:pt=Ia;break;case jl:pt=Fa;break;case"scroll":pt=or;break;case"wheel":pt=Oo;break;case"copy":case"cut":case"paste":pt=tc;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":pt=go}var Nt=(i&4)!==0,Ir=!Nt&&n==="scroll",he=Nt?We!==null?We+"Capture":null:We;Nt=[];for(var ce=be,ye;ce!==null;){ye=ce;var Je=ye.stateNode;if(ye.tag===5&&Je!==null&&(ye=Je,he!==null&&(Je=gn(ce,he),Je!=null&&Nt.push(wa(ce,Je,ye)))),Ir)break;ce=ce.return}0<Nt.length&&(We=new pt(We,bt,null,a,He),Ge.push({event:We,listeners:Nt}))}}if((i&7)===0){e:{if(We=n==="mouseover"||n==="pointerover",pt=n==="mouseout"||n==="pointerout",We&&a!==Zt&&(bt=a.relatedTarget||a.fromElement)&&(ai(bt)||bt[xr]))break e;if((pt||We)&&(We=He.window===He?He:(We=He.ownerDocument)?We.defaultView||We.parentWindow:window,pt?(bt=a.relatedTarget||a.toElement,pt=be,bt=bt?ai(bt):null,bt!==null&&(Ir=Cn(bt),bt!==Ir||bt.tag!==5&&bt.tag!==6)&&(bt=null)):(pt=null,bt=be),pt!==bt)){if(Nt=Ls,Je="onMouseLeave",he="onMouseEnter",ce="mouse",(n==="pointerout"||n==="pointerover")&&(Nt=go,Je="onPointerLeave",he="onPointerEnter",ce="pointer"),Ir=pt==null?We:Wa(pt),ye=bt==null?We:Wa(bt),We=new Nt(Je,ce+"leave",pt,a,He),We.target=Ir,We.relatedTarget=ye,Je=null,ai(He)===be&&(Nt=new Nt(he,ce+"enter",bt,a,He),Nt.target=ye,Nt.relatedTarget=Ir,Je=Nt),Ir=Je,pt&&bt)t:{for(Nt=pt,he=bt,ce=0,ye=Nt;ye;ye=Go(ye))ce++;for(ye=0,Je=he;Je;Je=Go(Je))ye++;for(;0<ce-ye;)Nt=Go(Nt),ce--;for(;0<ye-ce;)he=Go(he),ye--;for(;ce--;){if(Nt===he||he!==null&&Nt===he.alternate)break t;Nt=Go(Nt),he=Go(he)}Nt=null}else Nt=null;pt!==null&&El(Ge,We,pt,Nt,!1),bt!==null&&Ir!==null&&El(Ge,Ir,bt,Nt,!0)}}e:{if(We=be?Wa(be):window,pt=We.nodeName&&We.nodeName.toLowerCase(),pt==="select"||pt==="input"&&We.type==="file")var zt=pa;else if(ma(We))if(Ui)zt=xo;else{zt=yo;var Bt=tr}else(pt=We.nodeName)&&pt.toLowerCase()==="input"&&(We.type==="checkbox"||We.type==="radio")&&(zt=ii);if(zt&&(zt=zt(n,be))){Bi(Ge,zt,a,He);break e}Bt&&Bt(n,We,be),n==="focusout"&&(Bt=We._wrapperState)&&Bt.controlled&&We.type==="number"&&lt(We,"number",We.value)}switch(Bt=be?Wa(be):window,n){case"focusin":(ma(Bt)||Bt.contentEditable==="true")&&(Ct=Bt,_a=be,qr=null);break;case"focusout":qr=_a=Ct=null;break;case"mousedown":_n=!0;break;case"contextmenu":case"mouseup":case"dragend":_n=!1,Rr(Ge,a,He);break;case"selectionchange":if(Hi)break;case"keydown":case"keyup":Rr(Ge,a,He)}var Ut;if(Di)e:{switch(n){case"compositionstart":var Qt="onCompositionStart";break e;case"compositionend":Qt="onCompositionEnd";break e;case"compositionupdate":Qt="onCompositionUpdate";break e}Qt=void 0}else Is?Do(n,a)&&(Qt="onCompositionEnd"):n==="keydown"&&a.keyCode===229&&(Qt="onCompositionStart");Qt&&(Oa&&a.locale!=="ko"&&(Is||Qt!=="onCompositionStart"?Qt==="onCompositionEnd"&&Is&&(Ut=Tt()):(Ie=He,De="value"in Ie?Ie.value:Ie.textContent,Is=!0)),Bt=qo(be,Qt),0<Bt.length&&(Qt=new _l(Qt,n,null,a,He),Ge.push({event:Qt,listeners:Bt}),Ut?Qt.data=Ut:(Ut=Xs(a),Ut!==null&&(Qt.data=Ut)))),(Ut=nc?rc(n,a):Bo(n,a))&&(be=qo(be,"onBeforeInput"),0<be.length&&(He=new _l("onBeforeInput","beforeinput",null,a,He),Ge.push({event:He,listeners:be}),He.data=Ut))}va(Ge,i)})}function wa(n,i,a){return{instance:n,listener:i,currentTarget:a}}function qo(n,i){for(var a=i+"Capture",f=[];n!==null;){var p=n,y=p.stateNode;p.tag===5&&y!==null&&(p=y,y=gn(n,a),y!=null&&f.unshift(wa(n,y,p)),y=gn(n,i),y!=null&&f.push(wa(n,y,p))),n=n.return}return f}function Go(n){if(n===null)return null;do n=n.return;while(n&&n.tag!==5);return n||null}function El(n,i,a,f,p){for(var y=i._reactName,$=[];a!==null&&a!==f;){var q=a,ee=q.alternate,be=q.stateNode;if(ee!==null&&ee===f)break;q.tag===5&&be!==null&&(q=be,p?(ee=gn(a,y),ee!=null&&$.unshift(wa(a,ee,q))):p||(ee=gn(a,y),ee!=null&&$.push(wa(a,ee,q)))),a=a.return}$.length!==0&&n.push({event:i,listeners:$})}var E=/\r\n?/g,H=/\u0000|\uFFFD/g;function O(n){return(typeof n=="string"?n:""+n).replace(E,`
38
- `).replace(H,"")}function fe(n,i,a){if(i=O(i),O(n)!==i&&a)throw Error(r(425))}function pe(){}var Ze=null,Ve=null;function Qe(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 dt=typeof setTimeout=="function"?setTimeout:void 0,vt=typeof clearTimeout=="function"?clearTimeout:void 0,wn=typeof Promise=="function"?Promise:void 0,hn=typeof queueMicrotask=="function"?queueMicrotask:typeof wn<"u"?function(n){return wn.resolve(null).then(n).catch(Tn)}:dt;function Tn(n){setTimeout(function(){throw n})}function Ss(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),Gs(i);return}f--}else a!=="$"&&a!=="$?"&&a!=="$!"||f++;a=p}while(a);Gs(i)}function ps(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 qi(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 Js=Math.random().toString(36).slice(2),gs="__reactFiber$"+Js,_s="__reactProps$"+Js,xr="__reactContainer$"+Js,Hn="__reactEvents$"+Js,$l="__reactListeners$"+Js,ba="__reactHandles$"+Js;function ai(n){var i=n[gs];if(i)return i;for(var a=n.parentNode;a;){if(i=a[xr]||a[gs]){if(a=i.alternate,i.child!==null||a!==null&&a.child!==null)for(n=qi(n);n!==null;){if(a=n[gs])return a;n=qi(n)}return i}n=a,a=n.parentNode}return null}function Ua(n){return n=n[gs]||n[xr],!n||n.tag!==5&&n.tag!==6&&n.tag!==13&&n.tag!==3?null:n}function Wa(n){if(n.tag===5||n.tag===6)return n.stateNode;throw Error(r(33))}function lc(n){return n[_s]||null}var nu=[],Ha=-1;function Yo(n){return{current:n}}function Xn(n){0>Ha||(n.current=nu[Ha],nu[Ha]=null,Ha--)}function Vn(n,i){Ha++,nu[Ha]=n.current,n.current=i}var wo={},Gr=Yo(wo),Fs=Yo(!1),Sa=wo;function Xo(n,i){var a=n.type.contextTypes;if(!a)return wo;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 Os(n){return n=n.childContextTypes,n!=null}function ja(){Xn(Fs),Xn(Gr)}function bo(n,i,a){if(Gr.current!==wo)throw Error(r(168));Vn(Gr,i),Vn(Fs,a)}function Yr(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,Ne(n)||"Unknown",p));return D({},a,f)}function Qs(n){return n=(n=n.stateNode)&&n.__reactInternalMemoizedMergedChildContext||wo,Sa=Gr.current,Vn(Gr,n),Vn(Fs,Fs.current),!0}function td(n,i,a){var f=n.stateNode;if(!f)throw Error(r(169));a?(n=Yr(n,i,Sa),f.__reactInternalMemoizedMergedChildContext=n,Xn(Fs),Xn(Gr),Vn(Gr,n)):Xn(Fs),Vn(Fs,a)}var wi=null,cc=!1,Al=!1;function nd(n){wi===null?wi=[n]:wi.push(n)}function _f(n){cc=!0,nd(n)}function Ko(){if(!Al&&wi!==null){Al=!0;var n=0,i=sn;try{var a=wi;for(sn=1;n<a.length;n++){var f=a[n];do f=f(!0);while(f!==null)}wi=null,cc=!1}catch(p){throw wi!==null&&(wi=wi.slice(n+1)),$s(Qr,Ko),p}finally{sn=i,Al=!1}}return null}var li=[],bi=0,Si=null,ji=0,nr=[],ss=0,ka=null,Gi=1,Lr="";function So(n,i){li[bi++]=ji,li[bi++]=Si,Si=n,ji=i}function ru(n,i,a){nr[ss++]=Gi,nr[ss++]=Lr,nr[ss++]=ka,ka=n;var f=Gi;n=Lr;var p=32-Nr(f)-1;f&=~(1<<p),a+=1;var y=32-Nr(i)+p;if(30<y){var $=p-p%5;y=(f&(1<<$)-1).toString(32),f>>=$,p-=$,Gi=1<<32-Nr(i)+p|a<<p|f,Lr=y+n}else Gi=1<<y|a<<p|f,Lr=n}function uc(n){n.return!==null&&(So(n,1),ru(n,1,0))}function su(n){for(;n===Si;)Si=li[--bi],li[bi]=null,ji=li[--bi],li[bi]=null;for(;n===ka;)ka=nr[--ss],nr[ss]=null,Lr=nr[--ss],nr[ss]=null,Gi=nr[--ss],nr[ss]=null}var Zs=null,Kn=null,Bn=!1,ci=null;function iu(n,i){var a=no(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 Ht(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,Kn=ps(i.firstChild),!0):!1;case 6:return i=n.pendingProps===""||i.nodeType!==3?null:i,i!==null?(n.stateNode=i,Zs=n,Kn=null,!0):!1;case 13:return i=i.nodeType!==8?null:i,i!==null?(a=ka!==null?{id:Gi,overflow:Lr}:null,n.memoizedState={dehydrated:i,treeContext:a,retryLane:1073741824},a=no(18,null,null,0),a.stateNode=i,a.return=n,n.child=a,Zs=n,Kn=null,!0):!1;default:return!1}}function dc(n){return(n.mode&1)!==0&&(n.flags&128)===0}function ki(n){if(Bn){var i=Kn;if(i){var a=i;if(!Ht(n,i)){if(dc(n))throw Error(r(418));i=ps(a.nextSibling);var f=Zs;i&&Ht(n,i)?iu(f,a):(n.flags=n.flags&-4097|2,Bn=!1,Zs=n)}}else{if(dc(n))throw Error(r(418));n.flags=n.flags&-4097|2,Bn=!1,Zs=n}}}function rd(n){for(n=n.return;n!==null&&n.tag!==5&&n.tag!==3&&n.tag!==13;)n=n.return;Zs=n}function fc(n){if(n!==Zs)return!1;if(!Bn)return rd(n),Bn=!0,!1;var i;if((i=n.tag!==3)&&!(i=n.tag!==5)&&(i=n.type,i=i!=="head"&&i!=="body"&&!Qe(n.type,n.memoizedProps)),i&&(i=Kn)){if(dc(n))throw ou(),Error(r(418));for(;i;)iu(n,i),i=ps(i.nextSibling)}if(rd(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){Kn=ps(n.nextSibling);break e}i--}else a!=="$"&&a!=="$!"&&a!=="$?"||i++}n=n.nextSibling}Kn=null}}else Kn=Zs?ps(n.stateNode.nextSibling):null;return!0}function ou(){for(var n=Kn;n;)n=ps(n.nextSibling)}function Jo(){Kn=Zs=null,Bn=!1}function Qo(n){ci===null?ci=[n]:ci.push(n)}var mc=F.ReactCurrentBatchConfig;function Tl(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($){var q=p.refs;$===null?delete q[y]:q[y]=$},i._stringRef=y,i)}if(typeof n!="string")throw Error(r(284));if(!a._owner)throw Error(r(290,n))}return n}function Ni(n,i){throw n=Object.prototype.toString.call(i),Error(r(31,n==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":n))}function hc(n){var i=n._init;return i(n._payload)}function pc(n){function i(he,ce){if(n){var ye=he.deletions;ye===null?(he.deletions=[ce],he.flags|=16):ye.push(ce)}}function a(he,ce){if(!n)return null;for(;ce!==null;)i(he,ce),ce=ce.sibling;return null}function f(he,ce){for(he=new Map;ce!==null;)ce.key!==null?he.set(ce.key,ce):he.set(ce.index,ce),ce=ce.sibling;return he}function p(he,ce){return he=rl(he,ce),he.index=0,he.sibling=null,he}function y(he,ce,ye){return he.index=ye,n?(ye=he.alternate,ye!==null?(ye=ye.index,ye<ce?(he.flags|=2,ce):ye):(he.flags|=2,ce)):(he.flags|=1048576,ce)}function $(he){return n&&he.alternate===null&&(he.flags|=2),he}function q(he,ce,ye,Je){return ce===null||ce.tag!==6?(ce=Df(ye,he.mode,Je),ce.return=he,ce):(ce=p(ce,ye),ce.return=he,ce)}function ee(he,ce,ye,Je){var zt=ye.type;return zt===Y?He(he,ce,ye.props.children,Je,ye.key):ce!==null&&(ce.elementType===zt||typeof zt=="object"&&zt!==null&&zt.$$typeof===V&&hc(zt)===ce.type)?(Je=p(ce,ye.props),Je.ref=Tl(he,ce,ye),Je.return=he,Je):(Je=yd(ye.type,ye.key,ye.props,null,he.mode,Je),Je.ref=Tl(he,ce,ye),Je.return=he,Je)}function be(he,ce,ye,Je){return ce===null||ce.tag!==4||ce.stateNode.containerInfo!==ye.containerInfo||ce.stateNode.implementation!==ye.implementation?(ce=Bf(ye,he.mode,Je),ce.return=he,ce):(ce=p(ce,ye.children||[]),ce.return=he,ce)}function He(he,ce,ye,Je,zt){return ce===null||ce.tag!==7?(ce=Vl(ye,he.mode,Je,zt),ce.return=he,ce):(ce=p(ce,ye),ce.return=he,ce)}function Ge(he,ce,ye){if(typeof ce=="string"&&ce!==""||typeof ce=="number")return ce=Df(""+ce,he.mode,ye),ce.return=he,ce;if(typeof ce=="object"&&ce!==null){switch(ce.$$typeof){case G:return ye=yd(ce.type,ce.key,ce.props,null,he.mode,ye),ye.ref=Tl(he,null,ce),ye.return=he,ye;case se:return ce=Bf(ce,he.mode,ye),ce.return=he,ce;case V:var Je=ce._init;return Ge(he,Je(ce._payload),ye)}if(xe(ce)||M(ce))return ce=Vl(ce,he.mode,ye,null),ce.return=he,ce;Ni(he,ce)}return null}function We(he,ce,ye,Je){var zt=ce!==null?ce.key:null;if(typeof ye=="string"&&ye!==""||typeof ye=="number")return zt!==null?null:q(he,ce,""+ye,Je);if(typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case G:return ye.key===zt?ee(he,ce,ye,Je):null;case se:return ye.key===zt?be(he,ce,ye,Je):null;case V:return zt=ye._init,We(he,ce,zt(ye._payload),Je)}if(xe(ye)||M(ye))return zt!==null?null:He(he,ce,ye,Je,null);Ni(he,ye)}return null}function pt(he,ce,ye,Je,zt){if(typeof Je=="string"&&Je!==""||typeof Je=="number")return he=he.get(ye)||null,q(ce,he,""+Je,zt);if(typeof Je=="object"&&Je!==null){switch(Je.$$typeof){case G:return he=he.get(Je.key===null?ye:Je.key)||null,ee(ce,he,Je,zt);case se:return he=he.get(Je.key===null?ye:Je.key)||null,be(ce,he,Je,zt);case V:var Bt=Je._init;return pt(he,ce,ye,Bt(Je._payload),zt)}if(xe(Je)||M(Je))return he=he.get(ye)||null,He(ce,he,Je,zt,null);Ni(ce,Je)}return null}function bt(he,ce,ye,Je){for(var zt=null,Bt=null,Ut=ce,Qt=ce=0,vs=null;Ut!==null&&Qt<ye.length;Qt++){Ut.index>Qt?(vs=Ut,Ut=null):vs=Ut.sibling;var Pn=We(he,Ut,ye[Qt],Je);if(Pn===null){Ut===null&&(Ut=vs);break}n&&Ut&&Pn.alternate===null&&i(he,Ut),ce=y(Pn,ce,Qt),Bt===null?zt=Pn:Bt.sibling=Pn,Bt=Pn,Ut=vs}if(Qt===ye.length)return a(he,Ut),Bn&&So(he,Qt),zt;if(Ut===null){for(;Qt<ye.length;Qt++)Ut=Ge(he,ye[Qt],Je),Ut!==null&&(ce=y(Ut,ce,Qt),Bt===null?zt=Ut:Bt.sibling=Ut,Bt=Ut);return Bn&&So(he,Qt),zt}for(Ut=f(he,Ut);Qt<ye.length;Qt++)vs=pt(Ut,he,Qt,ye[Qt],Je),vs!==null&&(n&&vs.alternate!==null&&Ut.delete(vs.key===null?Qt:vs.key),ce=y(vs,ce,Qt),Bt===null?zt=vs:Bt.sibling=vs,Bt=vs);return n&&Ut.forEach(function(sl){return i(he,sl)}),Bn&&So(he,Qt),zt}function Nt(he,ce,ye,Je){var zt=M(ye);if(typeof zt!="function")throw Error(r(150));if(ye=zt.call(ye),ye==null)throw Error(r(151));for(var Bt=zt=null,Ut=ce,Qt=ce=0,vs=null,Pn=ye.next();Ut!==null&&!Pn.done;Qt++,Pn=ye.next()){Ut.index>Qt?(vs=Ut,Ut=null):vs=Ut.sibling;var sl=We(he,Ut,Pn.value,Je);if(sl===null){Ut===null&&(Ut=vs);break}n&&Ut&&sl.alternate===null&&i(he,Ut),ce=y(sl,ce,Qt),Bt===null?zt=sl:Bt.sibling=sl,Bt=sl,Ut=vs}if(Pn.done)return a(he,Ut),Bn&&So(he,Qt),zt;if(Ut===null){for(;!Pn.done;Qt++,Pn=ye.next())Pn=Ge(he,Pn.value,Je),Pn!==null&&(ce=y(Pn,ce,Qt),Bt===null?zt=Pn:Bt.sibling=Pn,Bt=Pn);return Bn&&So(he,Qt),zt}for(Ut=f(he,Ut);!Pn.done;Qt++,Pn=ye.next())Pn=pt(Ut,he,Qt,Pn.value,Je),Pn!==null&&(n&&Pn.alternate!==null&&Ut.delete(Pn.key===null?Qt:Pn.key),ce=y(Pn,ce,Qt),Bt===null?zt=Pn:Bt.sibling=Pn,Bt=Pn);return n&&Ut.forEach(function($x){return i(he,$x)}),Bn&&So(he,Qt),zt}function Ir(he,ce,ye,Je){if(typeof ye=="object"&&ye!==null&&ye.type===Y&&ye.key===null&&(ye=ye.props.children),typeof ye=="object"&&ye!==null){switch(ye.$$typeof){case G:e:{for(var zt=ye.key,Bt=ce;Bt!==null;){if(Bt.key===zt){if(zt=ye.type,zt===Y){if(Bt.tag===7){a(he,Bt.sibling),ce=p(Bt,ye.props.children),ce.return=he,he=ce;break e}}else if(Bt.elementType===zt||typeof zt=="object"&&zt!==null&&zt.$$typeof===V&&hc(zt)===Bt.type){a(he,Bt.sibling),ce=p(Bt,ye.props),ce.ref=Tl(he,Bt,ye),ce.return=he,he=ce;break e}a(he,Bt);break}else i(he,Bt);Bt=Bt.sibling}ye.type===Y?(ce=Vl(ye.props.children,he.mode,Je,ye.key),ce.return=he,he=ce):(Je=yd(ye.type,ye.key,ye.props,null,he.mode,Je),Je.ref=Tl(he,ce,ye),Je.return=he,he=Je)}return $(he);case se:e:{for(Bt=ye.key;ce!==null;){if(ce.key===Bt)if(ce.tag===4&&ce.stateNode.containerInfo===ye.containerInfo&&ce.stateNode.implementation===ye.implementation){a(he,ce.sibling),ce=p(ce,ye.children||[]),ce.return=he,he=ce;break e}else{a(he,ce);break}else i(he,ce);ce=ce.sibling}ce=Bf(ye,he.mode,Je),ce.return=he,he=ce}return $(he);case V:return Bt=ye._init,Ir(he,ce,Bt(ye._payload),Je)}if(xe(ye))return bt(he,ce,ye,Je);if(M(ye))return Nt(he,ce,ye,Je);Ni(he,ye)}return typeof ye=="string"&&ye!==""||typeof ye=="number"?(ye=""+ye,ce!==null&&ce.tag===6?(a(he,ce.sibling),ce=p(ce,ye),ce.return=he,he=ce):(a(he,ce),ce=Df(ye,he.mode,Je),ce.return=he,he=ce),$(he)):a(he,ce)}return Ir}var vr=pc(!0),gc=pc(!1),_c=Yo(null),Ml=null,Va=null,yc=null;function xc(){yc=Va=Ml=null}function vc(n){var i=_c.current;Xn(_c),n._currentValue=i}function zl(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 qa(n,i){Ml=n,yc=Va=null,n=n.dependencies,n!==null&&n.firstContext!==null&&((n.lanes&i)!==0&&(di=!0),n.firstContext=null)}function ei(n){var i=n._currentValue;if(yc!==n)if(n={context:n,memoizedValue:i,next:null},Va===null){if(Ml===null)throw Error(r(308));Va=n,Ml.dependencies={lanes:0,firstContext:n}}else Va=Va.next=n;return i}var Zo=null;function wc(n){Zo===null?Zo=[n]:Zo.push(n)}function au(n,i,a,f){var p=i.interleaved;return p===null?(a.next=a,wc(i)):(a.next=p.next,p.next=a),i.interleaved=a,Yi(n,f)}function Yi(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 jo=!1;function bc(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lu(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 Xi(n,i){return{eventTime:n,lane:i,tag:0,payload:null,callback:null,next:null}}function ko(n,i,a){var f=n.updateQueue;if(f===null)return null;if(f=f.shared,(Mn&2)!==0){var p=f.pending;return p===null?i.next=i:(i.next=p.next,p.next=i),f.pending=i,Yi(n,a)}return p=f.interleaved,p===null?(i.next=i,wc(f)):(i.next=p.next,p.next=i),f.interleaved=i,Yi(n,a)}function Rl(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,zi(n,a)}}function cu(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 $={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};y===null?p=y=$:y=y.next=$,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 Ll(n,i,a,f){var p=n.updateQueue;jo=!1;var y=p.firstBaseUpdate,$=p.lastBaseUpdate,q=p.shared.pending;if(q!==null){p.shared.pending=null;var ee=q,be=ee.next;ee.next=null,$===null?y=be:$.next=be,$=ee;var He=n.alternate;He!==null&&(He=He.updateQueue,q=He.lastBaseUpdate,q!==$&&(q===null?He.firstBaseUpdate=be:q.next=be,He.lastBaseUpdate=ee))}if(y!==null){var Ge=p.baseState;$=0,He=be=ee=null,q=y;do{var We=q.lane,pt=q.eventTime;if((f&We)===We){He!==null&&(He=He.next={eventTime:pt,lane:0,tag:q.tag,payload:q.payload,callback:q.callback,next:null});e:{var bt=n,Nt=q;switch(We=i,pt=a,Nt.tag){case 1:if(bt=Nt.payload,typeof bt=="function"){Ge=bt.call(pt,Ge,We);break e}Ge=bt;break e;case 3:bt.flags=bt.flags&-65537|128;case 0:if(bt=Nt.payload,We=typeof bt=="function"?bt.call(pt,Ge,We):bt,We==null)break e;Ge=D({},Ge,We);break e;case 2:jo=!0}}q.callback!==null&&q.lane!==0&&(n.flags|=64,We=p.effects,We===null?p.effects=[q]:We.push(q))}else pt={eventTime:pt,lane:We,tag:q.tag,payload:q.payload,callback:q.callback,next:null},He===null?(be=He=pt,ee=Ge):He=He.next=pt,$|=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=Ge),p.baseState=ee,p.firstBaseUpdate=be,p.lastBaseUpdate=He,i=p.shared.interleaved,i!==null){p=i;do $|=p.lane,p=p.next;while(p!==i)}else y===null&&(p.shared.lanes=0);Bl|=$,n.lanes=$,n.memoizedState=Ge}}function uu(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 Ga={},Ci=Yo(Ga),Ya=Yo(Ga),Xa=Yo(Ga);function ea(n){if(n===Ga)throw Error(r(174));return n}function Sc(n,i){switch(Vn(Xa,i),Vn(Ya,n),Vn(Ci,Ga),n=i.nodeType,n){case 9:case 11:i=(i=i.documentElement)?i.namespaceURI:ue(null,"");break;default:n=n===8?i.parentNode:i,i=n.namespaceURI||null,n=n.tagName,i=ue(i,n)}Xn(Ci),Vn(Ci,i)}function Na(){Xn(Ci),Xn(Ya),Xn(Xa)}function du(n){ea(Xa.current);var i=ea(Ci.current),a=ue(i,n.type);i!==a&&(Vn(Ya,n),Vn(Ci,a))}function jc(n){Ya.current===n&&(Xn(Ci),Xn(Ya))}var rr=Yo(0);function Pl(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 kc=[];function Nc(){for(var n=0;n<kc.length;n++)kc[n]._workInProgressVersionPrimary=null;kc.length=0}var Il=F.ReactCurrentDispatcher,Cc=F.ReactCurrentBatchConfig,ta=0,sr=null,wr=null,Pr=null,Fl=!1,w=!1,N=0,I=0;function L(){throw Error(r(321))}function z(n,i){if(i===null)return!1;for(var a=0;a<i.length&&a<n.length;a++)if(!rs(n[a],i[a]))return!1;return!0}function J(n,i,a,f,p,y){if(ta=y,sr=i,i.memoizedState=null,i.updateQueue=null,i.lanes=0,Il.current=n===null||n.memoizedState===null?$c:id,n=a(f,p),w){y=0;do{if(w=!1,N=0,25<=y)throw Error(r(301));y+=1,Pr=wr=null,i.updateQueue=null,Il.current=gu,n=a(f,p)}while(w)}if(Il.current=Ol,i=wr!==null&&wr.next!==null,ta=0,Pr=wr=sr=null,Fl=!1,i)throw Error(r(300));return n}function Z(){var n=N!==0;return N=0,n}function re(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Pr===null?sr.memoizedState=Pr=n:Pr=Pr.next=n,Pr}function Le(){if(wr===null){var n=sr.alternate;n=n!==null?n.memoizedState:null}else n=wr.next;var i=Pr===null?sr.memoizedState:Pr.next;if(i!==null)Pr=i,wr=n;else{if(n===null)throw Error(r(310));wr=n,n={memoizedState:wr.memoizedState,baseState:wr.baseState,baseQueue:wr.baseQueue,queue:wr.queue,next:null},Pr===null?sr.memoizedState=Pr=n:Pr=Pr.next=n}return Pr}function Ce(n,i){return typeof i=="function"?i(n):i}function Ue(n){var i=Le(),a=i.queue;if(a===null)throw Error(r(311));a.lastRenderedReducer=n;var f=wr,p=f.baseQueue,y=a.pending;if(y!==null){if(p!==null){var $=p.next;p.next=y.next,y.next=$}f.baseQueue=p=y,a.pending=null}if(p!==null){y=p.next,f=f.baseState;var q=$=null,ee=null,be=y;do{var He=be.lane;if((ta&He)===He)ee!==null&&(ee=ee.next={lane:0,action:be.action,hasEagerState:be.hasEagerState,eagerState:be.eagerState,next:null}),f=be.hasEagerState?be.eagerState:n(f,be.action);else{var Ge={lane:He,action:be.action,hasEagerState:be.hasEagerState,eagerState:be.eagerState,next:null};ee===null?(q=ee=Ge,$=f):ee=ee.next=Ge,sr.lanes|=He,Bl|=He}be=be.next}while(be!==null&&be!==y);ee===null?$=f:ee.next=q,rs(f,i.memoizedState)||(di=!0),i.memoizedState=f,i.baseState=$,i.baseQueue=ee,a.lastRenderedState=f}if(n=a.interleaved,n!==null){p=n;do y=p.lane,sr.lanes|=y,Bl|=y,p=p.next;while(p!==n)}else p===null&&(a.lanes=0);return[i.memoizedState,a.dispatch]}function tt(n){var i=Le(),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 $=p=p.next;do y=n(y,$.action),$=$.next;while($!==p);rs(y,i.memoizedState)||(di=!0),i.memoizedState=y,i.baseQueue===null&&(i.baseState=y),a.lastRenderedState=y}return[y,f]}function at(){}function ht(n,i){var a=sr,f=Le(),p=i(),y=!rs(f.memoizedState,p);if(y&&(f.memoizedState=p,di=!0),f=f.queue,js(wt.bind(null,a,f,n),[n]),f.getSnapshot!==i||y||Pr!==null&&Pr.memoizedState.tag&1){if(a.flags|=2048,Xe(9,ct.bind(null,a,f,p,i),void 0,null),xs===null)throw Error(r(349));(ta&30)!==0||Et(a,i,p)}return p}function Et(n,i,a){n.flags|=16384,n={getSnapshot:i,value:a},i=sr.updateQueue,i===null?(i={lastEffect:null,stores:null},sr.updateQueue=i,i.stores=[n]):(a=i.stores,a===null?i.stores=[n]:a.push(n))}function ct(n,i,a,f){i.value=a,i.getSnapshot=f,nn(i)&&an(n)}function wt(n,i,a){return a(function(){nn(i)&&an(n)})}function nn(n){var i=n.getSnapshot;n=n.value;try{var a=i();return!rs(n,a)}catch{return!0}}function an(n){var i=Yi(n,1);i!==null&&$o(i,n,1,-1)}function qe(n){var i=re();return typeof n=="function"&&(n=n()),i.memoizedState=i.baseState=n,n={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ce,lastRenderedState:n},i.queue=n,n=n.dispatch=Qi.bind(null,sr,n),[i.memoizedState,n]}function Xe(n,i,a,f){return n={tag:n,create:i,destroy:a,deps:f,next:null},i=sr.updateQueue,i===null?(i={lastEffect:null,stores:null},sr.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 kt(){return Le().memoizedState}function Jt(n,i,a,f){var p=re();sr.flags|=n,p.memoizedState=Xe(1|i,a,void 0,f===void 0?null:f)}function Mt(n,i,a,f){var p=Le();f=f===void 0?null:f;var y=void 0;if(wr!==null){var $=wr.memoizedState;if(y=$.destroy,f!==null&&z(f,$.deps)){p.memoizedState=Xe(i,a,y,f);return}}sr.flags|=n,p.memoizedState=Xe(1|i,a,y,f)}function Jn(n,i){return Jt(8390656,8,n,i)}function js(n,i){return Mt(2048,8,n,i)}function Ki(n,i){return Mt(4,2,n,i)}function ui(n,i){return Mt(4,4,n,i)}function br(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 sd(n,i,a){return a=a!=null?a.concat([n]):null,Mt(4,4,br.bind(null,i,n),a)}function fu(){}function mu(n,i){var a=Le();i=i===void 0?null:i;var f=a.memoizedState;return f!==null&&i!==null&&z(i,f[1])?f[0]:(a.memoizedState=[n,i],n)}function hu(n,i){var a=Le();i=i===void 0?null:i;var f=a.memoizedState;return f!==null&&i!==null&&z(i,f[1])?f[0]:(n=n(),a.memoizedState=[n,i],n)}function pu(n,i,a){return(ta&21)===0?(n.baseState&&(n.baseState=!1,di=!0),n.memoizedState=a):(rs(a,i)||(a=Zn(),sr.lanes|=a,Bl|=a,n.baseState=!0),i)}function _t(n,i){var a=sn;sn=a!==0&&4>a?a:4,n(!0);var f=Cc.transition;Cc.transition={};try{n(!1),i()}finally{sn=a,Cc.transition=f}}function Ji(){return Le().memoizedState}function Ka(n,i,a){var f=tl(n);if(a={lane:f,action:a,hasEagerState:!1,eagerState:null,next:null},Ei(n))Ca(i,a);else if(a=au(n,i,a,f),a!==null){var p=ni();$o(a,n,f,p),Ec(a,i,f)}}function Qi(n,i,a){var f=tl(n),p={lane:f,action:a,hasEagerState:!1,eagerState:null,next:null};if(Ei(n))Ca(i,p);else{var y=n.alternate;if(n.lanes===0&&(y===null||y.lanes===0)&&(y=i.lastRenderedReducer,y!==null))try{var $=i.lastRenderedState,q=y($,a);if(p.hasEagerState=!0,p.eagerState=q,rs(q,$)){var ee=i.interleaved;ee===null?(p.next=p,wc(i)):(p.next=ee.next,ee.next=p),i.interleaved=p;return}}catch{}finally{}a=au(n,i,p,f),a!==null&&(p=ni(),$o(a,n,f,p),Ec(a,i,f))}}function Ei(n){var i=n.alternate;return n===sr||i!==null&&i===sr}function Ca(n,i){w=Fl=!0;var a=n.pending;a===null?i.next=i:(i.next=a.next,a.next=i),n.pending=i}function Ec(n,i,a){if((a&4194240)!==0){var f=i.lanes;f&=n.pendingLanes,a|=f,i.lanes=a,zi(n,a)}}var Ol={readContext:ei,useCallback:L,useContext:L,useEffect:L,useImperativeHandle:L,useInsertionEffect:L,useLayoutEffect:L,useMemo:L,useReducer:L,useRef:L,useState:L,useDebugValue:L,useDeferredValue:L,useTransition:L,useMutableSource:L,useSyncExternalStore:L,useId:L,unstable_isNewReconciler:!1},$c={readContext:ei,useCallback:function(n,i){return re().memoizedState=[n,i===void 0?null:i],n},useContext:ei,useEffect:Jn,useImperativeHandle:function(n,i,a){return a=a!=null?a.concat([n]):null,Jt(4194308,4,br.bind(null,i,n),a)},useLayoutEffect:function(n,i){return Jt(4194308,4,n,i)},useInsertionEffect:function(n,i){return Jt(4,2,n,i)},useMemo:function(n,i){var a=re();return i=i===void 0?null:i,n=n(),a.memoizedState=[n,i],n},useReducer:function(n,i,a){var f=re();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=Ka.bind(null,sr,n),[f.memoizedState,n]},useRef:function(n){var i=re();return n={current:n},i.memoizedState=n},useState:qe,useDebugValue:fu,useDeferredValue:function(n){return re().memoizedState=n},useTransition:function(){var n=qe(!1),i=n[0];return n=_t.bind(null,n[1]),re().memoizedState=n,[i,n]},useMutableSource:function(){},useSyncExternalStore:function(n,i,a){var f=sr,p=re();if(Bn){if(a===void 0)throw Error(r(407));a=a()}else{if(a=i(),xs===null)throw Error(r(349));(ta&30)!==0||Et(f,i,a)}p.memoizedState=a;var y={value:a,getSnapshot:i};return p.queue=y,Jn(wt.bind(null,f,y,n),[n]),f.flags|=2048,Xe(9,ct.bind(null,f,y,a,i),void 0,null),a},useId:function(){var n=re(),i=xs.identifierPrefix;if(Bn){var a=Lr,f=Gi;a=(f&~(1<<32-Nr(f)-1)).toString(32)+a,i=":"+i+"R"+a,a=N++,0<a&&(i+="H"+a.toString(32)),i+=":"}else a=I++,i=":"+i+"r"+a.toString(32)+":";return n.memoizedState=i},unstable_isNewReconciler:!1},id={readContext:ei,useCallback:mu,useContext:ei,useEffect:js,useImperativeHandle:sd,useInsertionEffect:Ki,useLayoutEffect:ui,useMemo:hu,useReducer:Ue,useRef:kt,useState:function(){return Ue(Ce)},useDebugValue:fu,useDeferredValue:function(n){var i=Le();return pu(i,wr.memoizedState,n)},useTransition:function(){var n=Ue(Ce)[0],i=Le().memoizedState;return[n,i]},useMutableSource:at,useSyncExternalStore:ht,useId:Ji,unstable_isNewReconciler:!1},gu={readContext:ei,useCallback:mu,useContext:ei,useEffect:js,useImperativeHandle:sd,useInsertionEffect:Ki,useLayoutEffect:ui,useMemo:hu,useReducer:tt,useRef:kt,useState:function(){return tt(Ce)},useDebugValue:fu,useDeferredValue:function(n){var i=Le();return wr===null?i.memoizedState=n:pu(i,wr.memoizedState,n)},useTransition:function(){var n=tt(Ce)[0],i=Le().memoizedState;return[n,i]},useMutableSource:at,useSyncExternalStore:ht,useId:Ji,unstable_isNewReconciler:!1};function Ds(n,i){if(n&&n.defaultProps){i=D({},i),n=n.defaultProps;for(var a in n)i[a]===void 0&&(i[a]=n[a]);return i}return i}function ar(n,i,a,f){i=n.memoizedState,a=a(f,i),a=a==null?i:D({},i,a),n.memoizedState=a,n.lanes===0&&(n.updateQueue.baseState=a)}var hr={isMounted:function(n){return(n=n._reactInternals)?Cn(n)===n:!1},enqueueSetState:function(n,i,a){n=n._reactInternals;var f=ni(),p=tl(n),y=Xi(f,p);y.payload=i,a!=null&&(y.callback=a),i=ko(n,y,p),i!==null&&($o(i,n,p,f),Rl(i,n,p))},enqueueReplaceState:function(n,i,a){n=n._reactInternals;var f=ni(),p=tl(n),y=Xi(f,p);y.tag=1,y.payload=i,a!=null&&(y.callback=a),i=ko(n,y,p),i!==null&&($o(i,n,p,f),Rl(i,n,p))},enqueueForceUpdate:function(n,i){n=n._reactInternals;var a=ni(),f=tl(n),p=Xi(a,f);p.tag=2,i!=null&&(p.callback=i),i=ko(n,p,f),i!==null&&($o(i,n,f,a),Rl(i,n,f))}};function ys(n,i,a,f,p,y,$){return n=n.stateNode,typeof n.shouldComponentUpdate=="function"?n.shouldComponentUpdate(f,y,$):i.prototype&&i.prototype.isPureReactComponent?!Ks(a,f)||!Ks(p,y):!0}function Zi(n,i,a){var f=!1,p=wo,y=i.contextType;return typeof y=="object"&&y!==null?y=ei(y):(p=Os(i)?Sa:Gr.current,f=i.contextTypes,y=(f=f!=null)?Xo(n,p):wo),i=new i(a,y),n.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=hr,n.stateNode=i,i._reactInternals=n,f&&(n=n.stateNode,n.__reactInternalMemoizedUnmaskedChildContext=p,n.__reactInternalMemoizedMaskedChildContext=y),i}function eo(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&&hr.enqueueReplaceState(i,i.state,null)}function Bs(n,i,a,f){var p=n.stateNode;p.props=a,p.state=n.memoizedState,p.refs={},bc(n);var y=i.contextType;typeof y=="object"&&y!==null?p.context=ei(y):(y=Os(i)?Sa:Gr.current,p.context=Xo(n,y)),p.state=n.memoizedState,y=i.getDerivedStateFromProps,typeof y=="function"&&(ar(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&&hr.enqueueReplaceState(p,p.state,null),Ll(n,a,p,f),p.state=n.memoizedState),typeof p.componentDidMount=="function"&&(n.flags|=4194308)}function na(n,i){try{var a="",f=i;do a+=me(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 Dl(n,i,a){return{value:n,source:null,stack:a??null,digest:i??null}}function No(n,i){try{console.error(i.value)}catch(a){setTimeout(function(){throw a})}}var Ja=typeof WeakMap=="function"?WeakMap:Map;function Ea(n,i,a){a=Xi(-1,a),a.tag=3,a.payload={element:null};var f=i.value;return a.callback=function(){fd||(fd=!0,Mf=f),No(n,i)},a}function kh(n,i,a){a=Xi(-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(){No(n,i)}}var y=n.stateNode;return y!==null&&typeof y.componentDidCatch=="function"&&(a.callback=function(){No(n,i),typeof f!="function"&&(Za===null?Za=new Set([this]):Za.add(this));var $=i.stack;this.componentDidCatch(i.value,{componentStack:$!==null?$:""})}),a}function Nh(n,i,a){var f=n.pingCache;if(f===null){f=n.pingCache=new Ja;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=yx.bind(null,n,i,a),i.then(n,n))}function Ch(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=Xi(-1,1),i.tag=2,ko(a,i,1))),a.lanes|=1),n):(n.flags|=65536,n.lanes=p,n)}var ix=F.ReactCurrentOwner,di=!1;function ti(n,i,a,f){i.child=n===null?gc(i,null,a,f):vr(i,n.child,a,f)}function $h(n,i,a,f,p){a=a.render;var y=i.ref;return qa(i,p),f=J(n,i,a,f,y,p),a=Z(),n!==null&&!di?(i.updateQueue=n.updateQueue,i.flags&=-2053,n.lanes&=~p,$a(n,i,p)):(Bn&&a&&uc(i),i.flags|=1,ti(n,i,f,p),i.child)}function Ah(n,i,a,f,p){if(n===null){var y=a.type;return typeof y=="function"&&!Of(y)&&y.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(i.tag=15,i.type=y,Th(n,i,y,f,p)):(n=yd(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 $=y.memoizedProps;if(a=a.compare,a=a!==null?a:Ks,a($,f)&&n.ref===i.ref)return $a(n,i,p)}return i.flags|=1,n=rl(y,f),n.ref=i.ref,n.return=i,i.child=n}function Th(n,i,a,f,p){if(n!==null){var y=n.memoizedProps;if(Ks(y,f)&&n.ref===i.ref)if(di=!1,i.pendingProps=f=y,(n.lanes&p)!==0)(n.flags&131072)!==0&&(di=!0);else return i.lanes=n.lanes,$a(n,i,p)}return yf(n,i,a,f,p)}function Mh(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(Tc,$i),$i|=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(Tc,$i),$i|=n,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null},f=y!==null?y.baseLanes:a,Vn(Tc,$i),$i|=f}else y!==null?(f=y.baseLanes|a,i.memoizedState=null):f=a,Vn(Tc,$i),$i|=f;return ti(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 yf(n,i,a,f,p){var y=Os(a)?Sa:Gr.current;return y=Xo(i,y),qa(i,p),a=J(n,i,a,f,y,p),f=Z(),n!==null&&!di?(i.updateQueue=n.updateQueue,i.flags&=-2053,n.lanes&=~p,$a(n,i,p)):(Bn&&f&&uc(i),i.flags|=1,ti(n,i,a,p),i.child)}function Rh(n,i,a,f,p){if(Os(a)){var y=!0;Qs(i)}else y=!1;if(qa(i,p),i.stateNode===null)ad(n,i),Zi(i,a,f),Bs(i,a,f,p),f=!0;else if(n===null){var $=i.stateNode,q=i.memoizedProps;$.props=q;var ee=$.context,be=a.contextType;typeof be=="object"&&be!==null?be=ei(be):(be=Os(a)?Sa:Gr.current,be=Xo(i,be));var He=a.getDerivedStateFromProps,Ge=typeof He=="function"||typeof $.getSnapshotBeforeUpdate=="function";Ge||typeof $.UNSAFE_componentWillReceiveProps!="function"&&typeof $.componentWillReceiveProps!="function"||(q!==f||ee!==be)&&eo(i,$,f,be),jo=!1;var We=i.memoizedState;$.state=We,Ll(i,f,$,p),ee=i.memoizedState,q!==f||We!==ee||Fs.current||jo?(typeof He=="function"&&(ar(i,a,He,f),ee=i.memoizedState),(q=jo||ys(i,a,q,f,We,ee,be))?(Ge||typeof $.UNSAFE_componentWillMount!="function"&&typeof $.componentWillMount!="function"||(typeof $.componentWillMount=="function"&&$.componentWillMount(),typeof $.UNSAFE_componentWillMount=="function"&&$.UNSAFE_componentWillMount()),typeof $.componentDidMount=="function"&&(i.flags|=4194308)):(typeof $.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=f,i.memoizedState=ee),$.props=f,$.state=ee,$.context=be,f=q):(typeof $.componentDidMount=="function"&&(i.flags|=4194308),f=!1)}else{$=i.stateNode,lu(n,i),q=i.memoizedProps,be=i.type===i.elementType?q:Ds(i.type,q),$.props=be,Ge=i.pendingProps,We=$.context,ee=a.contextType,typeof ee=="object"&&ee!==null?ee=ei(ee):(ee=Os(a)?Sa:Gr.current,ee=Xo(i,ee));var pt=a.getDerivedStateFromProps;(He=typeof pt=="function"||typeof $.getSnapshotBeforeUpdate=="function")||typeof $.UNSAFE_componentWillReceiveProps!="function"&&typeof $.componentWillReceiveProps!="function"||(q!==Ge||We!==ee)&&eo(i,$,f,ee),jo=!1,We=i.memoizedState,$.state=We,Ll(i,f,$,p);var bt=i.memoizedState;q!==Ge||We!==bt||Fs.current||jo?(typeof pt=="function"&&(ar(i,a,pt,f),bt=i.memoizedState),(be=jo||ys(i,a,be,f,We,bt,ee)||!1)?(He||typeof $.UNSAFE_componentWillUpdate!="function"&&typeof $.componentWillUpdate!="function"||(typeof $.componentWillUpdate=="function"&&$.componentWillUpdate(f,bt,ee),typeof $.UNSAFE_componentWillUpdate=="function"&&$.UNSAFE_componentWillUpdate(f,bt,ee)),typeof $.componentDidUpdate=="function"&&(i.flags|=4),typeof $.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof $.componentDidUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=4),typeof $.getSnapshotBeforeUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=1024),i.memoizedProps=f,i.memoizedState=bt),$.props=f,$.state=bt,$.context=ee,f=be):(typeof $.componentDidUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=4),typeof $.getSnapshotBeforeUpdate!="function"||q===n.memoizedProps&&We===n.memoizedState||(i.flags|=1024),f=!1)}return xf(n,i,a,f,y,p)}function xf(n,i,a,f,p,y){zh(n,i);var $=(i.flags&128)!==0;if(!f&&!$)return p&&td(i,a,!1),$a(n,i,y);f=i.stateNode,ix.current=i;var q=$&&typeof a.getDerivedStateFromError!="function"?null:f.render();return i.flags|=1,n!==null&&$?(i.child=vr(i,n.child,null,y),i.child=vr(i,null,q,y)):ti(n,i,q,y),i.memoizedState=f.state,p&&td(i,a,!0),i.child}function Lh(n){var i=n.stateNode;i.pendingContext?bo(n,i.pendingContext,i.pendingContext!==i.context):i.context&&bo(n,i.context,!1),Sc(n,i.containerInfo)}function Ph(n,i,a,f,p){return Jo(),Qo(p),i.flags|=256,ti(n,i,a,f),i.child}var vf={dehydrated:null,treeContext:null,retryLane:0};function wf(n){return{baseLanes:n,cachePool:null,transitions:null}}function Ih(n,i,a){var f=i.pendingProps,p=rr.current,y=!1,$=(i.flags&128)!==0,q;if((q=$)||(q=n!==null&&n.memoizedState===null?!1:(p&2)!==0),q?(y=!0,i.flags&=-129):(n===null||n.memoizedState!==null)&&(p|=1),Vn(rr,p&1),n===null)return ki(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):($=f.children,n=f.fallback,y?(f=i.mode,y=i.child,$={mode:"hidden",children:$},(f&1)===0&&y!==null?(y.childLanes=0,y.pendingProps=$):y=xd($,f,0,null),n=Vl(n,f,a,null),y.return=i,n.return=i,y.sibling=n,i.child=y,i.child.memoizedState=wf(a),i.memoizedState=vf,n):bf(i,$));if(p=n.memoizedState,p!==null&&(q=p.dehydrated,q!==null))return ox(n,i,$,f,q,p,a);if(y){y=f.fallback,$=i.mode,p=n.child,q=p.sibling;var ee={mode:"hidden",children:f.children};return($&1)===0&&i.child!==p?(f=i.child,f.childLanes=0,f.pendingProps=ee,i.deletions=null):(f=rl(p,ee),f.subtreeFlags=p.subtreeFlags&14680064),q!==null?y=rl(q,y):(y=Vl(y,$,a,null),y.flags|=2),y.return=i,f.return=i,f.sibling=y,i.child=f,f=y,y=i.child,$=n.child.memoizedState,$=$===null?wf(a):{baseLanes:$.baseLanes|a,cachePool:null,transitions:$.transitions},y.memoizedState=$,y.childLanes=n.childLanes&~a,i.memoizedState=vf,f}return y=n.child,n=y.sibling,f=rl(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 bf(n,i){return i=xd({mode:"visible",children:i},n.mode,0,null),i.return=n,n.child=i}function od(n,i,a,f){return f!==null&&Qo(f),vr(i,n.child,null,a),n=bf(i,i.pendingProps.children),n.flags|=2,i.memoizedState=null,n}function ox(n,i,a,f,p,y,$){if(a)return i.flags&256?(i.flags&=-257,f=Dl(Error(r(422))),od(n,i,$,f)):i.memoizedState!==null?(i.child=n.child,i.flags|=128,null):(y=f.fallback,p=i.mode,f=xd({mode:"visible",children:f.children},p,0,null),y=Vl(y,p,$,null),y.flags|=2,f.return=i,y.return=i,f.sibling=y,i.child=f,(i.mode&1)!==0&&vr(i,n.child,null,$),i.child.memoizedState=wf($),i.memoizedState=vf,y);if((i.mode&1)===0)return od(n,i,$,null);if(p.data==="$!"){if(f=p.nextSibling&&p.nextSibling.dataset,f)var q=f.dgst;return f=q,y=Error(r(419)),f=Dl(y,f,void 0),od(n,i,$,f)}if(q=($&n.childLanes)!==0,di||q){if(f=xs,f!==null){switch($&-$){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|$))!==0?0:p,p!==0&&p!==y.retryLane&&(y.retryLane=p,Yi(n,p),$o(f,n,p,-1))}return Ff(),f=Dl(Error(r(421))),od(n,i,$,f)}return p.data==="$?"?(i.flags|=128,i.child=n.child,i=xx.bind(null,n),p._reactRetry=i,null):(n=y.treeContext,Kn=ps(p.nextSibling),Zs=i,Bn=!0,ci=null,n!==null&&(nr[ss++]=Gi,nr[ss++]=Lr,nr[ss++]=ka,Gi=n.id,Lr=n.overflow,ka=i),i=bf(i,f.children),i.flags|=4096,i)}function Fh(n,i,a){n.lanes|=i;var f=n.alternate;f!==null&&(f.lanes|=i),zl(n.return,i,a)}function Sf(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 Oh(n,i,a){var f=i.pendingProps,p=f.revealOrder,y=f.tail;if(ti(n,i,f.children,a),f=rr.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&&Fh(n,a,i);else if(n.tag===19)Fh(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(rr,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&&Pl(n)===null&&(p=a),a=a.sibling;a=p,a===null?(p=i.child,i.child=null):(p=a.sibling,a.sibling=null),Sf(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&&Pl(n)===null){i.child=p;break}n=p.sibling,p.sibling=a,a=p,p=n}Sf(i,!0,a,null,y);break;case"together":Sf(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function ad(n,i){(i.mode&1)===0&&n!==null&&(n.alternate=null,i.alternate=null,i.flags|=2)}function $a(n,i,a){if(n!==null&&(i.dependencies=n.dependencies),Bl|=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=rl(n,n.pendingProps),i.child=a,a.return=i;n.sibling!==null;)n=n.sibling,a=a.sibling=rl(n,n.pendingProps),a.return=i;a.sibling=null}return i.child}function ax(n,i,a){switch(i.tag){case 3:Lh(i),Jo();break;case 5:du(i);break;case 1:Os(i.type)&&Qs(i);break;case 4:Sc(i,i.stateNode.containerInfo);break;case 10:var f=i.type._context,p=i.memoizedProps.value;Vn(_c,f._currentValue),f._currentValue=p;break;case 13:if(f=i.memoizedState,f!==null)return f.dehydrated!==null?(Vn(rr,rr.current&1),i.flags|=128,null):(a&i.child.childLanes)!==0?Ih(n,i,a):(Vn(rr,rr.current&1),n=$a(n,i,a),n!==null?n.sibling:null);Vn(rr,rr.current&1);break;case 19:if(f=(a&i.childLanes)!==0,(n.flags&128)!==0){if(f)return Oh(n,i,a);i.flags|=128}if(p=i.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),Vn(rr,rr.current),f)break;return null;case 22:case 23:return i.lanes=0,Mh(n,i,a)}return $a(n,i,a)}var Dh,jf,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}},jf=function(){},Bh=function(n,i,a,f){var p=n.memoizedProps;if(p!==f){n=i.stateNode,ea(Ci.current);var y=null;switch(a){case"input":p=Pe(n,p),f=Pe(n,f),y=[];break;case"select":p=D({},p,{value:void 0}),f=D({},f,{value:void 0}),y=[];break;case"textarea":p=xt(n,p),f=xt(n,f),y=[];break;default:typeof p.onClick!="function"&&typeof f.onClick=="function"&&(n.onclick=pe)}jn(a,f);var $;a=null;for(be in p)if(!f.hasOwnProperty(be)&&p.hasOwnProperty(be)&&p[be]!=null)if(be==="style"){var q=p[be];for($ in q)q.hasOwnProperty($)&&(a||(a={}),a[$]="")}else be!=="dangerouslySetInnerHTML"&&be!=="children"&&be!=="suppressContentEditableWarning"&&be!=="suppressHydrationWarning"&&be!=="autoFocus"&&(l.hasOwnProperty(be)?y||(y=[]):(y=y||[]).push(be,null));for(be in f){var ee=f[be];if(q=p!=null?p[be]:void 0,f.hasOwnProperty(be)&&ee!==q&&(ee!=null||q!=null))if(be==="style")if(q){for($ in q)!q.hasOwnProperty($)||ee&&ee.hasOwnProperty($)||(a||(a={}),a[$]="");for($ in ee)ee.hasOwnProperty($)&&q[$]!==ee[$]&&(a||(a={}),a[$]=ee[$])}else a||(y||(y=[]),y.push(be,a)),a=ee;else be==="dangerouslySetInnerHTML"?(ee=ee?ee.__html:void 0,q=q?q.__html:void 0,ee!=null&&q!==ee&&(y=y||[]).push(be,ee)):be==="children"?typeof ee!="string"&&typeof ee!="number"||(y=y||[]).push(be,""+ee):be!=="suppressContentEditableWarning"&&be!=="suppressHydrationWarning"&&(l.hasOwnProperty(be)?(ee!=null&&be==="onScroll"&&In("scroll",n),y||q===ee||(y=[])):(y=y||[]).push(be,ee))}a&&(y=y||[]).push("style",a);var be=y;(i.updateQueue=be)&&(i.flags|=4)}},Uh=function(n,i,a,f){a!==f&&(i.flags|=4)};function _u(n,i){if(!Bn)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 Us(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 lx(n,i,a){var f=i.pendingProps;switch(su(i),i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Us(i),null;case 1:return Os(i.type)&&ja(),Us(i),null;case 3:return f=i.stateNode,Na(),Xn(Fs),Xn(Gr),Nc(),f.pendingContext&&(f.context=f.pendingContext,f.pendingContext=null),(n===null||n.child===null)&&(fc(i)?i.flags|=4:n===null||n.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,ci!==null&&(Lf(ci),ci=null))),jf(n,i),Us(i),null;case 5:jc(i);var p=ea(Xa.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 Us(i),null}if(n=ea(Ci.current),fc(i)){f=i.stateNode,a=i.type;var y=i.memoizedProps;switch(f[gs]=i,f[_s]=y,n=(i.mode&1)!==0,a){case"dialog":In("cancel",f),In("close",f);break;case"iframe":case"object":case"embed":In("load",f);break;case"video":case"audio":for(p=0;p<xa.length;p++)In(xa[p],f);break;case"source":In("error",f);break;case"img":case"image":case"link":In("error",f),In("load",f);break;case"details":In("toggle",f);break;case"input":Ke(f,y),In("invalid",f);break;case"select":f._wrapperState={wasMultiple:!!y.multiple},In("invalid",f);break;case"textarea":on(f,y),In("invalid",f)}jn(a,y),p=null;for(var $ in y)if(y.hasOwnProperty($)){var q=y[$];$==="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($)&&q!=null&&$==="onScroll"&&In("scroll",f)}switch(a){case"input":ve(f),Oe(f,y,!0);break;case"textarea":ve(f),Xt(f);break;case"select":case"option":break;default:typeof y.onClick=="function"&&(f.onclick=pe)}f=p,i.updateQueue=f,f!==null&&(i.flags|=4)}else{$=p.nodeType===9?p:p.ownerDocument,n==="http://www.w3.org/1999/xhtml"&&(n=Se(a)),n==="http://www.w3.org/1999/xhtml"?a==="script"?(n=$.createElement("div"),n.innerHTML="<script><\/script>",n=n.removeChild(n.firstChild)):typeof f.is=="string"?n=$.createElement(a,{is:f.is}):(n=$.createElement(a),a==="select"&&($=n,f.multiple?$.multiple=!0:f.size&&($.size=f.size))):n=$.createElementNS(n,a),n[gs]=i,n[_s]=f,Dh(n,i,!1,!1),i.stateNode=n;e:{switch($=ur(a,f),a){case"dialog":In("cancel",n),In("close",n),p=f;break;case"iframe":case"object":case"embed":In("load",n),p=f;break;case"video":case"audio":for(p=0;p<xa.length;p++)In(xa[p],n);p=f;break;case"source":In("error",n),p=f;break;case"img":case"image":case"link":In("error",n),In("load",n),p=f;break;case"details":In("toggle",n),p=f;break;case"input":Ke(n,f),p=Pe(n,f),In("invalid",n);break;case"option":p=f;break;case"select":n._wrapperState={wasMultiple:!!f.multiple},p=D({},f,{value:void 0}),In("invalid",n);break;case"textarea":on(n,f),p=xt(n,f),In("invalid",n);break;default:p=f}jn(a,p),q=p;for(y in q)if(q.hasOwnProperty(y)){var ee=q[y];y==="style"?un(n,ee):y==="dangerouslySetInnerHTML"?(ee=ee?ee.__html:void 0,ee!=null&&At(n,ee)):y==="children"?typeof ee=="string"?(a!=="textarea"||ee!=="")&&gt(n,ee):typeof ee=="number"&&gt(n,""+ee):y!=="suppressContentEditableWarning"&&y!=="suppressHydrationWarning"&&y!=="autoFocus"&&(l.hasOwnProperty(y)?ee!=null&&y==="onScroll"&&In("scroll",n):ee!=null&&P(n,y,ee,$))}switch(a){case"input":ve(n),Oe(n,f,!1);break;case"textarea":ve(n),Xt(n);break;case"option":f.value!=null&&n.setAttribute("value",""+Fe(f.value));break;case"select":n.multiple=!!f.multiple,y=f.value,y!=null?$t(n,!!f.multiple,y,!1):f.defaultValue!=null&&$t(n,!!f.multiple,f.defaultValue,!0);break;default:typeof p.onClick=="function"&&(n.onclick=pe)}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 Us(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=ea(Xa.current),ea(Ci.current),fc(i)){if(f=i.stateNode,a=i.memoizedProps,f[gs]=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[gs]=i,i.stateNode=f}return Us(i),null;case 13:if(Xn(rr),f=i.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(Bn&&Kn!==null&&(i.mode&1)!==0&&(i.flags&128)===0)ou(),Jo(),i.flags|=98560,y=!1;else if(y=fc(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[gs]=i}else Jo(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;Us(i),y=!1}else ci!==null&&(Lf(ci),ci=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||(rr.current&1)!==0?is===0&&(is=3):Ff())),i.updateQueue!==null&&(i.flags|=4),Us(i),null);case 4:return Na(),jf(n,i),n===null&&Ho(i.stateNode.containerInfo),Us(i),null;case 10:return vc(i.type._context),Us(i),null;case 17:return Os(i.type)&&ja(),Us(i),null;case 19:if(Xn(rr),y=i.memoizedState,y===null)return Us(i),null;if(f=(i.flags&128)!==0,$=y.rendering,$===null)if(f)_u(y,!1);else{if(is!==0||n!==null&&(n.flags&128)!==0)for(n=i.child;n!==null;){if($=Pl(n),$!==null){for(i.flags|=128,_u(y,!1),f=$.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,$=y.alternate,$===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=$.childLanes,y.lanes=$.lanes,y.child=$.child,y.subtreeFlags=0,y.deletions=null,y.memoizedProps=$.memoizedProps,y.memoizedState=$.memoizedState,y.updateQueue=$.updateQueue,y.type=$.type,n=$.dependencies,y.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),a=a.sibling;return Vn(rr,rr.current&1|2),i.child}n=n.sibling}y.tail!==null&&$n()>Mc&&(i.flags|=128,f=!0,_u(y,!1),i.lanes=4194304)}else{if(!f)if(n=Pl($),n!==null){if(i.flags|=128,f=!0,a=n.updateQueue,a!==null&&(i.updateQueue=a,i.flags|=4),_u(y,!0),y.tail===null&&y.tailMode==="hidden"&&!$.alternate&&!Bn)return Us(i),null}else 2*$n()-y.renderingStartTime>Mc&&a!==1073741824&&(i.flags|=128,f=!0,_u(y,!1),i.lanes=4194304);y.isBackwards?($.sibling=i.child,i.child=$):(a=y.last,a!==null?a.sibling=$:i.child=$,y.last=$)}return y.tail!==null?(i=y.tail,y.rendering=i,y.tail=i.sibling,y.renderingStartTime=$n(),i.sibling=null,a=rr.current,Vn(rr,f?a&1|2:a&1),i):(Us(i),null);case 22:case 23:return If(),f=i.memoizedState!==null,n!==null&&n.memoizedState!==null!==f&&(i.flags|=8192),f&&(i.mode&1)!==0?($i&1073741824)!==0&&(Us(i),i.subtreeFlags&6&&(i.flags|=8192)):Us(i),null;case 24:return null;case 25:return null}throw Error(r(156,i.tag))}function cx(n,i){switch(su(i),i.tag){case 1:return Os(i.type)&&ja(),n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 3:return Na(),Xn(Fs),Xn(Gr),Nc(),n=i.flags,(n&65536)!==0&&(n&128)===0?(i.flags=n&-65537|128,i):null;case 5:return jc(i),null;case 13:if(Xn(rr),n=i.memoizedState,n!==null&&n.dehydrated!==null){if(i.alternate===null)throw Error(r(340));Jo()}return n=i.flags,n&65536?(i.flags=n&-65537|128,i):null;case 19:return Xn(rr),null;case 4:return Na(),null;case 10:return vc(i.type._context),null;case 22:case 23:return If(),null;case 24:return null;default:return null}}var ld=!1,Ws=!1,ux=typeof WeakSet=="function"?WeakSet:Set,yt=null;function Ac(n,i){var a=n.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(f){Sr(n,i,f)}else a.current=null}function kf(n,i,a){try{a()}catch(f){Sr(n,i,f)}}var Wh=!1;function dx(n,i){if(Ze=Rs,n=xi(),ga(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 $=0,q=-1,ee=-1,be=0,He=0,Ge=n,We=null;t:for(;;){for(var pt;Ge!==a||p!==0&&Ge.nodeType!==3||(q=$+p),Ge!==y||f!==0&&Ge.nodeType!==3||(ee=$+f),Ge.nodeType===3&&($+=Ge.nodeValue.length),(pt=Ge.firstChild)!==null;)We=Ge,Ge=pt;for(;;){if(Ge===n)break t;if(We===a&&++be===p&&(q=$),We===y&&++He===f&&(ee=$),(pt=Ge.nextSibling)!==null)break;Ge=We,We=Ge.parentNode}Ge=pt}a=q===-1||ee===-1?null:{start:q,end:ee}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ve={focusedElem:n,selectionRange:a},Rs=!1,yt=i;yt!==null;)if(i=yt,n=i.child,(i.subtreeFlags&1028)!==0&&n!==null)n.return=i,yt=n;else for(;yt!==null;){i=yt;try{var bt=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(bt!==null){var Nt=bt.memoizedProps,Ir=bt.memoizedState,he=i.stateNode,ce=he.getSnapshotBeforeUpdate(i.elementType===i.type?Nt:Ds(i.type,Nt),Ir);he.__reactInternalSnapshotBeforeUpdate=ce}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(Je){Sr(i,i.return,Je)}if(n=i.sibling,n!==null){n.return=i.return,yt=n;break}yt=i.return}return bt=Wh,Wh=!1,bt}function yu(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&&kf(i,a,y)}p=p.next}while(p!==f)}}function cd(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 Nf(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[gs],delete i[_s],delete i[Hn],delete i[$l],delete i[ba])),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 Cf(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=pe));else if(f!==4&&(n=n.child,n!==null))for(Cf(n,i,a),n=n.sibling;n!==null;)Cf(n,i,a),n=n.sibling}function Ef(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(Ef(n,i,a),n=n.sibling;n!==null;)Ef(n,i,a),n=n.sibling}var ks=null,Co=!1;function Qa(n,i,a){for(a=a.child;a!==null;)Gh(n,i,a),a=a.sibling}function Gh(n,i,a){if(Br&&typeof Br.onCommitFiberUnmount=="function")try{Br.onCommitFiberUnmount(fn,a)}catch{}switch(a.tag){case 5:Ws||Ac(a,i);case 6:var f=ks,p=Co;ks=null,Qa(n,i,a),ks=f,Co=p,ks!==null&&(Co?(n=ks,a=a.stateNode,n.nodeType===8?n.parentNode.removeChild(a):n.removeChild(a)):ks.removeChild(a.stateNode));break;case 18:ks!==null&&(Co?(n=ks,a=a.stateNode,n.nodeType===8?Ss(n.parentNode,a):n.nodeType===1&&Ss(n,a),Gs(n)):Ss(ks,a.stateNode));break;case 4:f=ks,p=Co,ks=a.stateNode.containerInfo,Co=!0,Qa(n,i,a),ks=f,Co=p;break;case 0:case 11:case 14:case 15:if(!Ws&&(f=a.updateQueue,f!==null&&(f=f.lastEffect,f!==null))){p=f=f.next;do{var y=p,$=y.destroy;y=y.tag,$!==void 0&&((y&2)!==0||(y&4)!==0)&&kf(a,i,$),p=p.next}while(p!==f)}Qa(n,i,a);break;case 1:if(!Ws&&(Ac(a,i),f=a.stateNode,typeof f.componentWillUnmount=="function"))try{f.props=a.memoizedProps,f.state=a.memoizedState,f.componentWillUnmount()}catch(q){Sr(a,i,q)}Qa(n,i,a);break;case 21:Qa(n,i,a);break;case 22:a.mode&1?(Ws=(f=Ws)||a.memoizedState!==null,Qa(n,i,a),Ws=f):Qa(n,i,a);break;default:Qa(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 ux),i.forEach(function(f){var p=vx.bind(null,n,f);a.has(f)||(a.add(f),f.then(p,p))})}}function Eo(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,$=i,q=$;e:for(;q!==null;){switch(q.tag){case 5:ks=q.stateNode,Co=!1;break e;case 3:ks=q.stateNode.containerInfo,Co=!0;break e;case 4:ks=q.stateNode.containerInfo,Co=!0;break e}q=q.return}if(ks===null)throw Error(r(160));Gh(y,$,p),ks=null,Co=!1;var ee=p.alternate;ee!==null&&(ee.return=null),p.return=null}catch(be){Sr(p,i,be)}}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(Eo(i,n),ra(n),f&4){try{yu(3,n,n.return),cd(3,n)}catch(Nt){Sr(n,n.return,Nt)}try{yu(5,n,n.return)}catch(Nt){Sr(n,n.return,Nt)}}break;case 1:Eo(i,n),ra(n),f&512&&a!==null&&Ac(a,a.return);break;case 5:if(Eo(i,n),ra(n),f&512&&a!==null&&Ac(a,a.return),n.flags&32){var p=n.stateNode;try{gt(p,"")}catch(Nt){Sr(n,n.return,Nt)}}if(f&4&&(p=n.stateNode,p!=null)){var y=n.memoizedProps,$=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&&et(p,y),ur(q,$);var be=ur(q,y);for($=0;$<ee.length;$+=2){var He=ee[$],Ge=ee[$+1];He==="style"?un(p,Ge):He==="dangerouslySetInnerHTML"?At(p,Ge):He==="children"?gt(p,Ge):P(p,He,Ge,be)}switch(q){case"input":Ae(p,y);break;case"textarea":cn(p,y);break;case"select":var We=p._wrapperState.wasMultiple;p._wrapperState.wasMultiple=!!y.multiple;var pt=y.value;pt!=null?$t(p,!!y.multiple,pt,!1):We!==!!y.multiple&&(y.defaultValue!=null?$t(p,!!y.multiple,y.defaultValue,!0):$t(p,!!y.multiple,y.multiple?[]:"",!1))}p[_s]=y}catch(Nt){Sr(n,n.return,Nt)}}break;case 6:if(Eo(i,n),ra(n),f&4){if(n.stateNode===null)throw Error(r(162));p=n.stateNode,y=n.memoizedProps;try{p.nodeValue=y}catch(Nt){Sr(n,n.return,Nt)}}break;case 3:if(Eo(i,n),ra(n),f&4&&a!==null&&a.memoizedState.isDehydrated)try{Gs(i.containerInfo)}catch(Nt){Sr(n,n.return,Nt)}break;case 4:Eo(i,n),ra(n);break;case 13:Eo(i,n),ra(n),p=n.child,p.flags&8192&&(y=p.memoizedState!==null,p.stateNode.isHidden=y,!y||p.alternate!==null&&p.alternate.memoizedState!==null||(Tf=$n())),f&4&&Yh(n);break;case 22:if(He=a!==null&&a.memoizedState!==null,n.mode&1?(Ws=(be=Ws)||He,Eo(i,n),Ws=be):Eo(i,n),ra(n),f&8192){if(be=n.memoizedState!==null,(n.stateNode.isHidden=be)&&!He&&(n.mode&1)!==0)for(yt=n,He=n.child;He!==null;){for(Ge=yt=He;yt!==null;){switch(We=yt,pt=We.child,We.tag){case 0:case 11:case 14:case 15:yu(4,We,We.return);break;case 1:Ac(We,We.return);var bt=We.stateNode;if(typeof bt.componentWillUnmount=="function"){f=We,a=We.return;try{i=f,bt.props=i.memoizedProps,bt.state=i.memoizedState,bt.componentWillUnmount()}catch(Nt){Sr(f,a,Nt)}}break;case 5:Ac(We,We.return);break;case 22:if(We.memoizedState!==null){Qh(Ge);continue}}pt!==null?(pt.return=We,yt=pt):Qh(Ge)}He=He.sibling}e:for(He=null,Ge=n;;){if(Ge.tag===5){if(He===null){He=Ge;try{p=Ge.stateNode,be?(y=p.style,typeof y.setProperty=="function"?y.setProperty("display","none","important"):y.display="none"):(q=Ge.stateNode,ee=Ge.memoizedProps.style,$=ee!=null&&ee.hasOwnProperty("display")?ee.display:null,q.style.display=rn("display",$))}catch(Nt){Sr(n,n.return,Nt)}}}else if(Ge.tag===6){if(He===null)try{Ge.stateNode.nodeValue=be?"":Ge.memoizedProps}catch(Nt){Sr(n,n.return,Nt)}}else if((Ge.tag!==22&&Ge.tag!==23||Ge.memoizedState===null||Ge===n)&&Ge.child!==null){Ge.child.return=Ge,Ge=Ge.child;continue}if(Ge===n)break e;for(;Ge.sibling===null;){if(Ge.return===null||Ge.return===n)break e;He===Ge&&(He=null),Ge=Ge.return}He===Ge&&(He=null),Ge.sibling.return=Ge.return,Ge=Ge.sibling}}break;case 19:Eo(i,n),ra(n),f&4&&Yh(n);break;case 21:break;default:Eo(i,n),ra(n)}}function ra(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&&(gt(p,""),f.flags&=-33);var y=qh(n);Ef(n,y,p);break;case 3:case 4:var $=f.stateNode.containerInfo,q=qh(n);Cf(n,q,$);break;default:throw Error(r(161))}}catch(ee){Sr(n,n.return,ee)}n.flags&=-3}i&4096&&(n.flags&=-4097)}function fx(n,i,a){yt=n,Kh(n)}function Kh(n,i,a){for(var f=(n.mode&1)!==0;yt!==null;){var p=yt,y=p.child;if(p.tag===22&&f){var $=p.memoizedState!==null||ld;if(!$){var q=p.alternate,ee=q!==null&&q.memoizedState!==null||Ws;q=ld;var be=Ws;if(ld=$,(Ws=ee)&&!be)for(yt=p;yt!==null;)$=yt,ee=$.child,$.tag===22&&$.memoizedState!==null?Zh(p):ee!==null?(ee.return=$,yt=ee):Zh(p);for(;y!==null;)yt=y,Kh(y),y=y.sibling;yt=p,ld=q,Ws=be}Jh(n)}else(p.subtreeFlags&8772)!==0&&y!==null?(y.return=p,yt=y):Jh(n)}}function Jh(n){for(;yt!==null;){var i=yt;if((i.flags&8772)!==0){var a=i.alternate;try{if((i.flags&8772)!==0)switch(i.tag){case 0:case 11:case 15:Ws||cd(5,i);break;case 1:var f=i.stateNode;if(i.flags&4&&!Ws)if(a===null)f.componentDidMount();else{var p=i.elementType===i.type?a.memoizedProps:Ds(i.type,a.memoizedProps);f.componentDidUpdate(p,a.memoizedState,f.__reactInternalSnapshotBeforeUpdate)}var y=i.updateQueue;y!==null&&uu(i,y,f);break;case 3:var $=i.updateQueue;if($!==null){if(a=null,i.child!==null)switch(i.child.tag){case 5:a=i.child.stateNode;break;case 1:a=i.child.stateNode}uu(i,$,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 be=i.alternate;if(be!==null){var He=be.memoizedState;if(He!==null){var Ge=He.dehydrated;Ge!==null&&Gs(Ge)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}Ws||i.flags&512&&Nf(i)}catch(We){Sr(i,i.return,We)}}if(i===n){yt=null;break}if(a=i.sibling,a!==null){a.return=i.return,yt=a;break}yt=i.return}}function Qh(n){for(;yt!==null;){var i=yt;if(i===n){yt=null;break}var a=i.sibling;if(a!==null){a.return=i.return,yt=a;break}yt=i.return}}function Zh(n){for(;yt!==null;){var i=yt;try{switch(i.tag){case 0:case 11:case 15:var a=i.return;try{cd(4,i)}catch(ee){Sr(i,a,ee)}break;case 1:var f=i.stateNode;if(typeof f.componentDidMount=="function"){var p=i.return;try{f.componentDidMount()}catch(ee){Sr(i,p,ee)}}var y=i.return;try{Nf(i)}catch(ee){Sr(i,y,ee)}break;case 5:var $=i.return;try{Nf(i)}catch(ee){Sr(i,$,ee)}}}catch(ee){Sr(i,i.return,ee)}if(i===n){yt=null;break}var q=i.sibling;if(q!==null){q.return=i.return,yt=q;break}yt=i.return}}var mx=Math.ceil,ud=F.ReactCurrentDispatcher,$f=F.ReactCurrentOwner,to=F.ReactCurrentBatchConfig,Mn=0,xs=null,Xr=null,Ns=0,$i=0,Tc=Yo(0),is=0,xu=null,Bl=0,dd=0,Af=0,vu=null,fi=null,Tf=0,Mc=1/0,Aa=null,fd=!1,Mf=null,Za=null,md=!1,el=null,hd=0,wu=0,zf=null,pd=-1,gd=0;function ni(){return(Mn&6)!==0?$n():pd!==-1?pd:pd=$n()}function tl(n){return(n.mode&1)===0?1:(Mn&2)!==0&&Ns!==0?Ns&-Ns:mc.transition!==null?(gd===0&&(gd=Zn()),gd):(n=sn,n!==0||(n=window.event,n=n===void 0?16:Ee(n.type)),n)}function $o(n,i,a,f){if(50<wu)throw wu=0,zf=null,Error(r(185));Cr(n,a,f),((Mn&2)===0||n!==xs)&&(n===xs&&((Mn&2)===0&&(dd|=a),is===4&&nl(n,Ns)),mi(n,f),a===1&&Mn===0&&(i.mode&1)===0&&(Mc=$n()+500,cc&&Ko()))}function mi(n,i){var a=n.callbackNode;Ye(n,i);var f=ze(n,n===xs?Ns:0);if(f===0)a!==null&&ao(a),n.callbackNode=null,n.callbackPriority=0;else if(i=f&-f,n.callbackPriority!==i){if(a!=null&&ao(a),i===1)n.tag===0?_f(tp.bind(null,n)):nd(tp.bind(null,n)),hn(function(){(Mn&6)===0&&Ko()}),a=null;else{switch($r(f)){case 1:a=Qr;break;case 4:a=Dr;break;case 16:a=pr;break;case 536870912:a=jt;break;default:a=pr}a=cp(a,ep.bind(null,n))}n.callbackPriority=i,n.callbackNode=a}}function ep(n,i){if(pd=-1,gd=0,(Mn&6)!==0)throw Error(r(327));var a=n.callbackNode;if(zc()&&n.callbackNode!==a)return null;var f=ze(n,n===xs?Ns:0);if(f===0)return null;if((f&30)!==0||(f&n.expiredLanes)!==0||i)i=_d(n,f);else{i=f;var p=Mn;Mn|=2;var y=rp();(xs!==n||Ns!==i)&&(Aa=null,Mc=$n()+500,Wl(n,i));do try{gx();break}catch(q){np(n,q)}while(!0);xc(),ud.current=y,Mn=p,Xr!==null?i=0:(xs=null,Ns=0,i=is)}if(i!==0){if(i===2&&(p=Gn(n),p!==0&&(f=p,i=Rf(n,p))),i===1)throw a=xu,Wl(n,0),nl(n,f),mi(n,$n()),a;if(i===6)nl(n,f);else{if(p=n.current.alternate,(f&30)===0&&!hx(p)&&(i=_d(n,f),i===2&&(y=Gn(n),y!==0&&(f=y,i=Rf(n,y))),i===1))throw a=xu,Wl(n,0),nl(n,f),mi(n,$n()),a;switch(n.finishedWork=p,n.finishedLanes=f,i){case 0:case 1:throw Error(r(345));case 2:Hl(n,fi,Aa);break;case 3:if(nl(n,f),(f&130023424)===f&&(i=Tf+500-$n(),10<i)){if(ze(n,0)!==0)break;if(p=n.suspendedLanes,(p&f)!==f){ni(),n.pingedLanes|=n.suspendedLanes&p;break}n.timeoutHandle=dt(Hl.bind(null,n,fi,Aa),i);break}Hl(n,fi,Aa);break;case 4:if(nl(n,f),(f&4194240)===f)break;for(i=n.eventTimes,p=-1;0<f;){var $=31-Nr(f);y=1<<$,$=i[$],$>p&&(p=$),f&=~y}if(f=p,f=$n()-f,f=(120>f?120:480>f?480:1080>f?1080:1920>f?1920:3e3>f?3e3:4320>f?4320:1960*mx(f/1960))-f,10<f){n.timeoutHandle=dt(Hl.bind(null,n,fi,Aa),f);break}Hl(n,fi,Aa);break;case 5:Hl(n,fi,Aa);break;default:throw Error(r(329))}}}return mi(n,$n()),n.callbackNode===a?ep.bind(null,n):null}function Rf(n,i){var a=vu;return n.current.memoizedState.isDehydrated&&(Wl(n,i).flags|=256),n=_d(n,i),n!==2&&(i=fi,fi=a,i!==null&&Lf(i)),n}function Lf(n){fi===null?fi=n:fi.push.apply(fi,n)}function hx(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(!rs(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 nl(n,i){for(i&=~Af,i&=~dd,n.suspendedLanes|=i,n.pingedLanes&=~i,n=n.expirationTimes;0<i;){var a=31-Nr(i),f=1<<a;n[a]=-1,i&=~f}}function tp(n){if((Mn&6)!==0)throw Error(r(327));zc();var i=ze(n,0);if((i&1)===0)return mi(n,$n()),null;var a=_d(n,i);if(n.tag!==0&&a===2){var f=Gn(n);f!==0&&(i=f,a=Rf(n,f))}if(a===1)throw a=xu,Wl(n,0),nl(n,i),mi(n,$n()),a;if(a===6)throw Error(r(345));return n.finishedWork=n.current.alternate,n.finishedLanes=i,Hl(n,fi,Aa),mi(n,$n()),null}function Pf(n,i){var a=Mn;Mn|=1;try{return n(i)}finally{Mn=a,Mn===0&&(Mc=$n()+500,cc&&Ko())}}function Ul(n){el!==null&&el.tag===0&&(Mn&6)===0&&zc();var i=Mn;Mn|=1;var a=to.transition,f=sn;try{if(to.transition=null,sn=1,n)return n()}finally{sn=f,to.transition=a,Mn=i,(Mn&6)===0&&Ko()}}function If(){$i=Tc.current,Xn(Tc)}function Wl(n,i){n.finishedWork=null,n.finishedLanes=0;var a=n.timeoutHandle;if(a!==-1&&(n.timeoutHandle=-1,vt(a)),Xr!==null)for(a=Xr.return;a!==null;){var f=a;switch(su(f),f.tag){case 1:f=f.type.childContextTypes,f!=null&&ja();break;case 3:Na(),Xn(Fs),Xn(Gr),Nc();break;case 5:jc(f);break;case 4:Na();break;case 13:Xn(rr);break;case 19:Xn(rr);break;case 10:vc(f.type._context);break;case 22:case 23:If()}a=a.return}if(xs=n,Xr=n=rl(n.current,null),Ns=$i=i,is=0,xu=null,Af=dd=Bl=0,fi=vu=null,Zo!==null){for(i=0;i<Zo.length;i++)if(a=Zo[i],f=a.interleaved,f!==null){a.interleaved=null;var p=f.next,y=a.pending;if(y!==null){var $=y.next;y.next=p,f.next=$}a.pending=f}Zo=null}return n}function np(n,i){do{var a=Xr;try{if(xc(),Il.current=Ol,Fl){for(var f=sr.memoizedState;f!==null;){var p=f.queue;p!==null&&(p.pending=null),f=f.next}Fl=!1}if(ta=0,Pr=wr=sr=null,w=!1,N=0,$f.current=null,a===null||a.return===null){is=1,xu=i,Xr=null;break}e:{var y=n,$=a.return,q=a,ee=i;if(i=Ns,q.flags|=32768,ee!==null&&typeof ee=="object"&&typeof ee.then=="function"){var be=ee,He=q,Ge=He.tag;if((He.mode&1)===0&&(Ge===0||Ge===11||Ge===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 pt=Ch($);if(pt!==null){pt.flags&=-257,Eh(pt,$,q,y,i),pt.mode&1&&Nh(y,be,i),i=pt,ee=be;var bt=i.updateQueue;if(bt===null){var Nt=new Set;Nt.add(ee),i.updateQueue=Nt}else bt.add(ee);break e}else{if((i&1)===0){Nh(y,be,i),Ff();break e}ee=Error(r(426))}}else if(Bn&&q.mode&1){var Ir=Ch($);if(Ir!==null){(Ir.flags&65536)===0&&(Ir.flags|=256),Eh(Ir,$,q,y,i),Qo(na(ee,q));break e}}y=ee=na(ee,q),is!==4&&(is=2),vu===null?vu=[y]:vu.push(y),y=$;do{switch(y.tag){case 3:y.flags|=65536,i&=-i,y.lanes|=i;var he=Ea(y,ee,i);cu(y,he);break e;case 1:q=ee;var ce=y.type,ye=y.stateNode;if((y.flags&128)===0&&(typeof ce.getDerivedStateFromError=="function"||ye!==null&&typeof ye.componentDidCatch=="function"&&(Za===null||!Za.has(ye)))){y.flags|=65536,i&=-i,y.lanes|=i;var Je=kh(y,q,i);cu(y,Je);break e}}y=y.return}while(y!==null)}ip(a)}catch(zt){i=zt,Xr===a&&a!==null&&(Xr=a=a.return);continue}break}while(!0)}function rp(){var n=ud.current;return ud.current=Ol,n===null?Ol:n}function Ff(){(is===0||is===3||is===2)&&(is=4),xs===null||(Bl&268435455)===0&&(dd&268435455)===0||nl(xs,Ns)}function _d(n,i){var a=Mn;Mn|=2;var f=rp();(xs!==n||Ns!==i)&&(Aa=null,Wl(n,i));do try{px();break}catch(p){np(n,p)}while(!0);if(xc(),Mn=a,ud.current=f,Xr!==null)throw Error(r(261));return xs=null,Ns=0,is}function px(){for(;Xr!==null;)sp(Xr)}function gx(){for(;Xr!==null&&!Mi();)sp(Xr)}function sp(n){var i=lp(n.alternate,n,$i);n.memoizedProps=n.pendingProps,i===null?ip(n):Xr=i,$f.current=null}function ip(n){var i=n;do{var a=i.alternate;if(n=i.return,(i.flags&32768)===0){if(a=lx(a,i,$i),a!==null){Xr=a;return}}else{if(a=cx(a,i),a!==null){a.flags&=32767,Xr=a;return}if(n!==null)n.flags|=32768,n.subtreeFlags=0,n.deletions=null;else{is=6,Xr=null;return}}if(i=i.sibling,i!==null){Xr=i;return}Xr=i=n}while(i!==null);is===0&&(is=5)}function Hl(n,i,a){var f=sn,p=to.transition;try{to.transition=null,sn=1,_x(n,i,a,f)}finally{to.transition=p,sn=f}return null}function _x(n,i,a,f){do zc();while(el!==null);if((Mn&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(Er(n,y),n===xs&&(Xr=xs=null,Ns=0),(a.subtreeFlags&2064)===0&&(a.flags&2064)===0||md||(md=!0,cp(pr,function(){return zc(),null})),y=(a.flags&15990)!==0,(a.subtreeFlags&15990)!==0||y){y=to.transition,to.transition=null;var $=sn;sn=1;var q=Mn;Mn|=4,$f.current=null,dx(n,a),Xh(a,n),Uo(Ve),Rs=!!Ze,Ve=Ze=null,n.current=a,fx(a),ls(),Mn=q,sn=$,to.transition=y}else n.current=a;if(md&&(md=!1,el=n,hd=p),y=n.pendingLanes,y===0&&(Za=null),kr(a.stateNode),mi(n,$n()),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(fd)throw fd=!1,n=Mf,Mf=null,n;return(hd&1)!==0&&n.tag!==0&&zc(),y=n.pendingLanes,(y&1)!==0?n===zf?wu++:(wu=0,zf=n):wu=0,Ko(),null}function zc(){if(el!==null){var n=$r(hd),i=to.transition,a=sn;try{if(to.transition=null,sn=16>n?16:n,el===null)var f=!1;else{if(n=el,el=null,hd=0,(Mn&6)!==0)throw Error(r(331));var p=Mn;for(Mn|=4,yt=n.current;yt!==null;){var y=yt,$=y.child;if((yt.flags&16)!==0){var q=y.deletions;if(q!==null){for(var ee=0;ee<q.length;ee++){var be=q[ee];for(yt=be;yt!==null;){var He=yt;switch(He.tag){case 0:case 11:case 15:yu(8,He,y)}var Ge=He.child;if(Ge!==null)Ge.return=He,yt=Ge;else for(;yt!==null;){He=yt;var We=He.sibling,pt=He.return;if(Hh(He),He===be){yt=null;break}if(We!==null){We.return=pt,yt=We;break}yt=pt}}}var bt=y.alternate;if(bt!==null){var Nt=bt.child;if(Nt!==null){bt.child=null;do{var Ir=Nt.sibling;Nt.sibling=null,Nt=Ir}while(Nt!==null)}}yt=y}}if((y.subtreeFlags&2064)!==0&&$!==null)$.return=y,yt=$;else e:for(;yt!==null;){if(y=yt,(y.flags&2048)!==0)switch(y.tag){case 0:case 11:case 15:yu(9,y,y.return)}var he=y.sibling;if(he!==null){he.return=y.return,yt=he;break e}yt=y.return}}var ce=n.current;for(yt=ce;yt!==null;){$=yt;var ye=$.child;if(($.subtreeFlags&2064)!==0&&ye!==null)ye.return=$,yt=ye;else e:for($=ce;yt!==null;){if(q=yt,(q.flags&2048)!==0)try{switch(q.tag){case 0:case 11:case 15:cd(9,q)}}catch(zt){Sr(q,q.return,zt)}if(q===$){yt=null;break e}var Je=q.sibling;if(Je!==null){Je.return=q.return,yt=Je;break e}yt=q.return}}if(Mn=p,Ko(),Br&&typeof Br.onPostCommitFiberRoot=="function")try{Br.onPostCommitFiberRoot(fn,n)}catch{}f=!0}return f}finally{sn=a,to.transition=i}}return!1}function op(n,i,a){i=na(a,i),i=Ea(n,i,1),n=ko(n,i,1),i=ni(),n!==null&&(Cr(n,1,i),mi(n,i))}function Sr(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"&&(Za===null||!Za.has(f))){n=na(a,n),n=kh(i,n,1),i=ko(i,n,1),n=ni(),i!==null&&(Cr(i,1,n),mi(i,n));break}}i=i.return}}function yx(n,i,a){var f=n.pingCache;f!==null&&f.delete(i),i=ni(),n.pingedLanes|=n.suspendedLanes&a,xs===n&&(Ns&a)===a&&(is===4||is===3&&(Ns&130023424)===Ns&&500>$n()-Tf?Wl(n,0):Af|=a),mi(n,i)}function ap(n,i){i===0&&((n.mode&1)===0?i=1:(i=dr,dr<<=1,(dr&130023424)===0&&(dr=4194304)));var a=ni();n=Yi(n,i),n!==null&&(Cr(n,i,a),mi(n,a))}function xx(n){var i=n.memoizedState,a=0;i!==null&&(a=i.retryLane),ap(n,a)}function vx(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||Fs.current)di=!0;else{if((n.lanes&a)===0&&(i.flags&128)===0)return di=!1,ax(n,i,a);di=(n.flags&131072)!==0}else di=!1,Bn&&(i.flags&1048576)!==0&&ru(i,ji,i.index);switch(i.lanes=0,i.tag){case 2:var f=i.type;ad(n,i),n=i.pendingProps;var p=Xo(i,Gr.current);qa(i,a),p=J(null,i,f,n,p,a);var y=Z();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,Os(f)?(y=!0,Qs(i)):y=!1,i.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,bc(i),p.updater=hr,i.stateNode=p,p._reactInternals=i,Bs(i,f,n,a),i=xf(null,i,f,!0,y,a)):(i.tag=0,Bn&&y&&uc(i),ti(null,i,p,a),i=i.child),i;case 16:f=i.elementType;e:{switch(ad(n,i),n=i.pendingProps,p=f._init,f=p(f._payload),i.type=f,p=i.tag=bx(f),n=Ds(f,n),p){case 0:i=yf(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=Ah(null,i,f,Ds(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:Ds(f,p),yf(n,i,f,p,a);case 1:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ds(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,lu(n,i),Ll(i,f,null,a);var $=i.memoizedState;if(f=$.element,y.isDehydrated)if(y={element:f,isDehydrated:!1,cache:$.cache,pendingSuspenseBoundaries:$.pendingSuspenseBoundaries,transitions:$.transitions},i.updateQueue.baseState=y,i.memoizedState=y,i.flags&256){p=na(Error(r(423)),i),i=Ph(n,i,f,a,p);break e}else if(f!==p){p=na(Error(r(424)),i),i=Ph(n,i,f,a,p);break e}else for(Kn=ps(i.stateNode.containerInfo.firstChild),Zs=i,Bn=!0,ci=null,a=gc(i,null,f,a),i.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Jo(),f===p){i=$a(n,i,a);break e}ti(n,i,f,a)}i=i.child}return i;case 5:return du(i),n===null&&ki(i),f=i.type,p=i.pendingProps,y=n!==null?n.memoizedProps:null,$=p.children,Qe(f,p)?$=null:y!==null&&Qe(f,y)&&(i.flags|=32),zh(n,i),ti(n,i,$,a),i.child;case 6:return n===null&&ki(i),null;case 13:return Ih(n,i,a);case 4:return Sc(i,i.stateNode.containerInfo),f=i.pendingProps,n===null?i.child=vr(i,null,f,a):ti(n,i,f,a),i.child;case 11:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ds(f,p),$h(n,i,f,p,a);case 7:return ti(n,i,i.pendingProps,a),i.child;case 8:return ti(n,i,i.pendingProps.children,a),i.child;case 12:return ti(n,i,i.pendingProps.children,a),i.child;case 10:e:{if(f=i.type._context,p=i.pendingProps,y=i.memoizedProps,$=p.value,Vn(_c,f._currentValue),f._currentValue=$,y!==null)if(rs(y.value,$)){if(y.children===p.children&&!Fs.current){i=$a(n,i,a);break e}}else for(y=i.child,y!==null&&(y.return=i);y!==null;){var q=y.dependencies;if(q!==null){$=y.child;for(var ee=q.firstContext;ee!==null;){if(ee.context===f){if(y.tag===1){ee=Xi(-1,a&-a),ee.tag=2;var be=y.updateQueue;if(be!==null){be=be.shared;var He=be.pending;He===null?ee.next=ee:(ee.next=He.next,He.next=ee),be.pending=ee}}y.lanes|=a,ee=y.alternate,ee!==null&&(ee.lanes|=a),zl(y.return,a,i),q.lanes|=a;break}ee=ee.next}}else if(y.tag===10)$=y.type===i.type?null:y.child;else if(y.tag===18){if($=y.return,$===null)throw Error(r(341));$.lanes|=a,q=$.alternate,q!==null&&(q.lanes|=a),zl($,a,i),$=y.sibling}else $=y.child;if($!==null)$.return=y;else for($=y;$!==null;){if($===i){$=null;break}if(y=$.sibling,y!==null){y.return=$.return,$=y;break}$=$.return}y=$}ti(n,i,p.children,a),i=i.child}return i;case 9:return p=i.type,f=i.pendingProps.children,qa(i,a),p=ei(p),f=f(p),i.flags|=1,ti(n,i,f,a),i.child;case 14:return f=i.type,p=Ds(f,i.pendingProps),p=Ds(f.type,p),Ah(n,i,f,p,a);case 15:return Th(n,i,i.type,i.pendingProps,a);case 17:return f=i.type,p=i.pendingProps,p=i.elementType===f?p:Ds(f,p),ad(n,i),i.tag=1,Os(f)?(n=!0,Qs(i)):n=!1,qa(i,a),Zi(i,f,p),Bs(i,f,p,a),xf(null,i,f,!0,n,a);case 19:return Oh(n,i,a);case 22:return Mh(n,i,a)}throw Error(r(156,i.tag))};function cp(n,i){return $s(n,i)}function wx(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 no(n,i,a,f){return new wx(n,i,a,f)}function Of(n){return n=n.prototype,!(!n||!n.isReactComponent)}function bx(n){if(typeof n=="function")return Of(n)?1:0;if(n!=null){if(n=n.$$typeof,n===Te)return 11;if(n===X)return 14}return 2}function rl(n,i){var a=n.alternate;return a===null?(a=no(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 yd(n,i,a,f,p,y){var $=2;if(f=n,typeof n=="function")Of(n)&&($=1);else if(typeof n=="string")$=5;else e:switch(n){case Y:return Vl(a.children,p,y,i);case le:$=8,p|=8;break;case oe:return n=no(12,a,i,p|2),n.elementType=oe,n.lanes=y,n;case K:return n=no(13,a,i,p),n.elementType=K,n.lanes=y,n;case W:return n=no(19,a,i,p),n.elementType=W,n.lanes=y,n;case Q:return xd(a,p,y,i);default:if(typeof n=="object"&&n!==null)switch(n.$$typeof){case ge:$=10;break e;case Re:$=9;break e;case Te:$=11;break e;case X:$=14;break e;case V:$=16,f=null;break e}throw Error(r(130,n==null?n:typeof n,""))}return i=no($,a,i,p),i.elementType=n,i.type=f,i.lanes=y,i}function Vl(n,i,a,f){return n=no(7,n,f,i),n.lanes=a,n}function xd(n,i,a,f){return n=no(22,n,f,i),n.elementType=Q,n.lanes=a,n.stateNode={isHidden:!1},n}function Df(n,i,a){return n=no(6,n,null,i),n.lanes=a,n}function Bf(n,i,a){return i=no(4,n.children!==null?n.children:[],n.key,i),i.lanes=a,i.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},i}function Sx(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=_r(0),this.expirationTimes=_r(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=_r(0),this.identifierPrefix=f,this.onRecoverableError=p,this.mutableSourceEagerHydrationData=null}function Uf(n,i,a,f,p,y,$,q,ee){return n=new Sx(n,i,a,q,ee),i===1?(i=1,y===!0&&(i|=8)):i=0,y=no(3,null,null,i),n.current=y,y.stateNode=n,y.memoizedState={element:f,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},bc(y),n}function jx(n,i,a){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:se,key:f==null?null:""+f,children:n,containerInfo:i,implementation:a}}function up(n){if(!n)return wo;n=n._reactInternals;e:{if(Cn(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(Os(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(Os(a))return Yr(n,a,i)}return i}function dp(n,i,a,f,p,y,$,q,ee){return n=Uf(a,f,!0,n,p,y,$,q,ee),n.context=up(null),a=n.current,f=ni(),p=tl(a),y=Xi(f,p),y.callback=i??null,ko(a,y,p),n.current.lanes=p,Cr(n,p,f),mi(n,f),n}function vd(n,i,a,f){var p=i.current,y=ni(),$=tl(p);return a=up(a),i.context===null?i.context=a:i.pendingContext=a,i=Xi(y,$),i.payload={element:n},f=f===void 0?null:f,f!==null&&(i.callback=f),n=ko(p,i,$),n!==null&&($o(n,p,$,y),Rl(n,p,$)),$}function wd(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 Wf(n,i){fp(n,i),(n=n.alternate)&&fp(n,i)}function kx(){return null}var mp=typeof reportError=="function"?reportError:function(n){console.error(n)};function Hf(n){this._internalRoot=n}bd.prototype.render=Hf.prototype.render=function(n){var i=this._internalRoot;if(i===null)throw Error(r(409));vd(n,i,null,null)},bd.prototype.unmount=Hf.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var i=n.containerInfo;Ul(function(){vd(null,n,null,null)}),i[xr]=null}};function bd(n){this._internalRoot=n}bd.prototype.unstable_scheduleHydration=function(n){if(n){var i=mr();n={blockedOn:null,target:n,priority:i};for(var a=0;a<ts.length&&i!==0&&i<ts[a].priority;a++);ts.splice(a,0,n),a===0&&Pi(n)}};function Vf(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11)}function Sd(n){return!(!n||n.nodeType!==1&&n.nodeType!==9&&n.nodeType!==11&&(n.nodeType!==8||n.nodeValue!==" react-mount-point-unstable "))}function hp(){}function Nx(n,i,a,f,p){if(p){if(typeof f=="function"){var y=f;f=function(){var be=wd($);y.call(be)}}var $=dp(i,f,n,0,null,!1,!1,"",hp);return n._reactRootContainer=$,n[xr]=$.current,Ho(n.nodeType===8?n.parentNode:n),Ul(),$}for(;p=n.lastChild;)n.removeChild(p);if(typeof f=="function"){var q=f;f=function(){var be=wd(ee);q.call(be)}}var ee=Uf(n,0,!1,null,null,!1,!1,"",hp);return n._reactRootContainer=ee,n[xr]=ee.current,Ho(n.nodeType===8?n.parentNode:n),Ul(function(){vd(i,ee,a,f)}),ee}function jd(n,i,a,f,p){var y=a._reactRootContainer;if(y){var $=y;if(typeof p=="function"){var q=p;p=function(){var ee=wd($);q.call(ee)}}vd(i,$,n,p)}else $=Nx(a,i,n,p,f);return wd($)}qs=function(n){switch(n.tag){case 3:var i=n.stateNode;if(i.current.memoizedState.isDehydrated){var a=fr(i.pendingLanes);a!==0&&(zi(i,a|1),mi(i,$n()),(Mn&6)===0&&(Mc=$n()+500,Ko()))}break;case 13:Ul(function(){var f=Yi(n,1);if(f!==null){var p=ni();$o(f,n,1,p)}}),Wf(n,1)}},As=function(n){if(n.tag===13){var i=Yi(n,134217728);if(i!==null){var a=ni();$o(i,n,134217728,a)}Wf(n,134217728)}},er=function(n){if(n.tag===13){var i=tl(n),a=Yi(n,i);if(a!==null){var f=ni();$o(a,n,i,f)}Wf(n,i)}},mr=function(){return sn},gi=function(n,i){var a=sn;try{return sn=n,i()}finally{sn=a}},as=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=lc(f);if(!p)throw Error(r(90));ae(f),Ae(f,p)}}}break;case"textarea":cn(n,a);break;case"select":i=a.value,i!=null&&$t(n,!!a.multiple,i,!1)}},St=Pf,Rt=Ul;var Cx={usingClientEntryPoint:!1,Events:[Ua,Wa,lc,ut,it,Pf]},bu={findFiberByHostInstance:ai,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Ex={bundleType:bu.bundleType,version:bu.version,rendererPackageName:bu.rendererPackageName,rendererConfig:bu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:F.ReactCurrentDispatcher,findHostInstanceByFiber:function(n){return n=Or(n),n===null?null:n.stateNode},findFiberByHostInstance:bu.findFiberByHostInstance||kx,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 kd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!kd.isDisabled&&kd.supportsFiber)try{fn=kd.inject(Ex),Br=kd}catch{}}return hi.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Cx,hi.createPortal=function(n,i){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Vf(i))throw Error(r(200));return jx(n,i,null,a)},hi.createRoot=function(n,i){if(!Vf(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=Uf(n,1,!1,null,null,a,!1,f,p),n[xr]=i.current,Ho(n.nodeType===8?n.parentNode:n),new Hf(i)},hi.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=Or(i),n=n===null?null:n.stateNode,n},hi.flushSync=function(n){return Ul(n)},hi.hydrate=function(n,i,a){if(!Sd(i))throw Error(r(200));return jd(null,n,i,!0,a)},hi.hydrateRoot=function(n,i,a){if(!Vf(n))throw Error(r(405));var f=a!=null&&a.hydratedSources||null,p=!1,y="",$=mp;if(a!=null&&(a.unstable_strictMode===!0&&(p=!0),a.identifierPrefix!==void 0&&(y=a.identifierPrefix),a.onRecoverableError!==void 0&&($=a.onRecoverableError)),i=dp(i,null,n,1,a??null,p,!1,y,$),n[xr]=i.current,Ho(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 bd(i)},hi.render=function(n,i,a){if(!Sd(i))throw Error(r(200));return jd(null,n,i,!1,a)},hi.unmountComponentAtNode=function(n){if(!Sd(n))throw Error(r(40));return n._reactRootContainer?(Ul(function(){jd(null,null,n,!1,function(){n._reactRootContainer=null,n[xr]=null})}),!0):!1},hi.unstable_batchedUpdates=Pf,hi.unstable_renderSubtreeIntoContainer=function(n,i,a,f){if(!Sd(a))throw Error(r(200));if(n==null||n._reactInternals===void 0)throw Error(r(38));return jd(n,i,a,!1,f)},hi.version="18.3.1-next-f1338f8080-20240426",hi}var bp;function Kg(){if(bp)return Yf.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(),Yf.exports=Ix(),Yf.exports}var Sp;function Fx(){if(Sp)return Nd;Sp=1;var e=Kg();return Nd.createRoot=e.createRoot,Nd.hydrateRoot=e.hydrateRoot,Nd}var Ox=Fx();const Dx=nh(Ox);function Jg(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Qg(e){return Array.isArray(e)}function Bx(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 Ux(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function Wx(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 Bc({kind:e,children:t}){return s.jsx("span",{className:`json-token ${e}`,children:t})}function Hx(e){return e===null?s.jsx(Bc,{kind:"null",children:"null"}):typeof e=="string"?s.jsx(Bc,{kind:"string",children:JSON.stringify(e)}):typeof e=="number"?s.jsx(Bc,{kind:"number",children:String(e)}):typeof e=="boolean"?s.jsx(Bc,{kind:"boolean",children:e?"true":"false"}):s.jsx(Bc,{kind:"string",children:JSON.stringify(String(e))})}function Vx(e){return Qg(e)?e.length===1?"1 item":`${e.length} items`:Jg(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function Zg(e){const{label:t,value:r,depth:o,collapse_after_depth:l,trailing_comma:u}=e,c=o*14,d=Jg(r),h=Qg(r),_=d||h,g=o<l,[x,v]=m.useState(g),b=t?s.jsxs(s.Fragment,{children:[s.jsx(Bc,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!_)return s.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:c},children:[b,Hx(r),u?",":""]});const j=h?"[":"{",S=h?"]":"}",A=Vx(r),T=x?`${j}`:`${j}…${S}${A?` (${A})`:""}`,B=h?r.map((P,F)=>({key:String(F),label:void 0,value:P})):Object.entries(r).map(([P,F])=>({key:P,label:P,value:F}));return s.jsxs("details",{className:"json-viewer__details",open:x,onToggle:P=>v(P.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:T}),!x&&u?s.jsx("span",{className:"json-viewer__punct",children:","}):null]}),x?s.jsx("div",{className:"json-viewer__children",children:B.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:[B.map((P,F)=>{const G=F===B.length-1;return s.jsx(Zg,{label:P.label,value:P.value,depth:o+1,collapse_after_depth:l,trailing_comma:!G},`${o}:${t||"root"}:${P.key}`)}),s.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:c},children:[s.jsx("span",{className:"json-viewer__punct",children:S}),u?",":""]})]})}):null]})}function e_(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"?Bx(t):t,[t]),c=m.useMemo(()=>Ux(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 Wx(c),children:"Copy"})}):null,s.jsx("div",{className:"json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:s.jsx(Zg,{value:u,depth:0,collapse_after_depth:l,trailing_comma:!1})})]})}function Jf(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 qx(e){return String(e??"").replace(/\r\n/g,`
41
- `).replace(/\r/g,`
42
- `).split(`
43
- `)}function Gx({text:e,className:t}){const r=qx(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=Jf(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:Jf(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($e.Fragment,{children:[Jf(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 Yx(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 ri(e){return!e||typeof e!="object"?null:e}function Em(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=ri(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 Xx(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 Kx(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 Jx(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=Kx(t);if(r!==null)return s.jsx(e_,{value:r});const o=t.trim();return o.startsWith("{")||o.startsWith("[")?s.jsx("pre",{className:"run-details-output",children:t||"(none)"}):t.includes(`
45
- `)||Jx(t)?s.jsx("div",{className:"run-details-output",children:s.jsx(Gx,{text:t})}):s.jsx("pre",{className:"run-details-output",children:t||"(none)"})}function t_({value:e}){if(e==null)return s.jsx("pre",{className:"run-details-output",children:"(none)"});const t=Xx(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(e_,{value:e})}function n_(e){const t=e.effect;return!t||typeof t!="object"?null:t}function pl(e){const t=n_(e);return(t&&typeof t.type=="string"?t.type:"")||"effect"}function lf(e){const t=n_(e),r=t==null?void 0:t.payload;return!r||typeof r!="object"?null:r}function rh(e){const t=e.result;return!t||typeof t!="object"?null:t}function r_(e){if(pl(e)!=="tool_calls")return[];const r=rh(e),o=r&&Array.isArray(r.results)?r.results:null;if(!o)return[];const l=[];for(const u of o){const c=ri(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 s_(e){if(pl(e)!=="tool_calls")return[];const r=lf(e),o=r&&Array.isArray(r.tool_calls)?r.tool_calls:null;if(!o)return[];const l=[];for(const u of o){const c=ri(u);if(!c)continue;const d=typeof c.name=="string"?c.name.trim():"";if(!d)continue;const h=ri(c.args)||ri(c.arguments)||{};l.push({call_id:typeof c.call_id=="string"?c.call_id:void 0,name:d,args:h})}return l}function cf(e){const t=e.error;if(typeof t=="string")return t.trim();const r=ri(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 i_(e){if(!e)return"";const t=e.reasoning;if(typeof t=="string")return t.trim();const r=ri(t);return r&&typeof r.text=="string"?r.text.trim():""}function o_(e){const t=pl(e),r=lf(e),o=rh(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=i_(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=ri(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 Xd(e){const t=typeof e.status=="string"?e.status:"unknown";return t==="failed"||cf(e.step)?"failed":t}function Qx(e){const t=e.map(r=>Xd(r));return t.some(r=>r==="failed")?"failed":t.some(r=>r==="waiting")?"waiting":t.some(r=>r==="running")?"running":"completed"}function Qf(e){return e.filter(t=>!t.hidden)}function Zx(e){const t=pl(e),r=cf(e);return Qf(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 ev(e){const t=pl(e);return t==="llm_call"?"user":t==="tool_calls"?"tools":cf(e)?"errors":"raw"}function tv(e){const t=new Map,r=lf(e),o=r&&Array.isArray(r.tools)?r.tools:null;if(!o)return t;for(const l of o){const u=ri(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=ri(_);return(g&&typeof g.id=="string"?g.id.trim():"")||""}).filter(Boolean);t.set(c,h)}return t}function a_(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(Em(_,42))}`:typeof _=="number"||typeof _=="boolean"?`${h}=${String(_)}`:_==null?`${h}=null`:`${h}=${Em(JSON.stringify(_),42)}`});return`${e}(${d.join(", ")}${c.length>5?", …":""})`}function nv(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 Zf({item:e,label:t,toolDefs:r,defaultOpen:o=!1}){const l=e.step,u=pl(l),c=Zx(l),d=ev(l),[h,_]=m.useState(d),[g,x]=m.useState(!!o),v=lf(l),b=rh(l),j=cf(l),S=nv(e),A=e.nodeId?String(e.nodeId):"",T=e.runId?String(e.runId):"",B=u==="tool_calls"?s_(l):[],P=u==="tool_calls"?r_(l):[],F=B.map(ge=>a_(ge.name,ge.args,r.get(ge.name)||null)),se=(()=>{if(h==="raw")return l;if(h==="errors")return j||null;if(u==="llm_call"){const ge=v||{},Re=typeof ge.system_prompt=="string"?String(ge.system_prompt):"",Te=typeof ge.prompt=="string"?String(ge.prompt):"",K=ri(b==null?void 0:b.metadata),W=K?ri(K._runtime_observability):null,X=W?ri(W.llm_generate_kwargs):null,V=X&&Array.isArray(X.messages)?X.messages:null,Q=K?ri(K._provider_request):null,k=Q?ri(Q.payload):null,M=k&&Array.isArray(k.messages)?k.messages:null,D=Array.isArray(ge.messages)?ge.messages:[],C=V||M||D,U=C.filter(ne=>String((ne==null?void 0:ne.role)||"").trim()==="system"),te=C.filter(ne=>String((ne==null?void 0:ne.role)||"").trim()==="user");if(h==="system"){const ne=[],me=Re.trim(),Me=!!me&&U.some(Ne=>typeof(Ne==null?void 0:Ne.content)=="string"&&String(Ne.content).trim()===me);return me&&!Me&&ne.push({role:"system",name:"system_prompt",content:Re}),ne.push(...U),ne}if(h==="user"){const ne=[],me=Te.trim(),Me=!!me&&te.some(Ne=>typeof(Ne==null?void 0:Ne.content)=="string"&&String(Ne.content).trim()===me);return me&&!Me&&ne.push({role:"user",name:"prompt",content:Te}),ne.push(...te),ne}if(h==="tools")return ge.tools||[];if(h==="response"){const ne=b==null?void 0:b.content;if(typeof ne=="string"&&ne.trim())return ne;const me=b==null?void 0:b.output;if(me!==void 0)return me;const Me=Array.isArray(b==null?void 0:b.tool_calls)?b.tool_calls:null;return Me&&Me.length?{tool_calls:Me}:b}if(h==="reasoning")return i_(b)||null}return u==="tool_calls"&&h==="tools"?{tool_calls:B,tool_signatures:F,results:P}:l})(),Y=o_(l),le=Xd(e),oe=le==="completed"?"OK":le==="failed"?"ERROR":le==="waiting"?"WAITING":le.toUpperCase();return s.jsxs("details",{className:`agent-trace-entry ${le}`,open:g,onToggle:ge=>x(ge.currentTarget.open),children:[s.jsxs("summary",{className:"agent-trace-summary",children:[s.jsx("span",{className:`agent-trace-status ${le}`,children:oe}),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,A?s.jsx("span",{className:"agent-trace-node",children:A}):null,T?s.jsx("span",{className:"agent-trace-run",children:T}):null]}),Y?s.jsx("div",{className:"agent-trace-preview",children:Y}):null,s.jsxs("div",{className:"agent-trace-body",children:[s.jsx("div",{className:"agent-trace-tabs",children:c.map(ge=>s.jsx("button",{type:"button",className:`agent-trace-tab ${ge.id===h?"active":""}`,onClick:()=>_(ge.id),children:ge.label},ge.id))}),s.jsx(t_,{value:se})]})]})}function rv({acts:e}){const t=e.flatMap(u=>r_(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(t_,{value:_})]},`${u.name}:${u.call_id||""}:${c}`)})})})]})}function sv({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=pl(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:Xd(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:Xd(j),ts:j.ts},x.push(v)),v.items.push(j),S==="tool_calls"?v.acts.push(j):v.others.push(j),v.status=Qx(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(),Yx(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,A=x.think?o_(x.think.step):"",T=x.think?tv(x.think.step):new Map,P=x.acts.flatMap(G=>s_(G.step)).map(G=>a_(G.name,G.args,T.get(G.name)||null)),F=u&&x.index===d.length;return s.jsxs("details",{className:`agent-cycle ${v}`,open:F,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]}),P.length?s.jsxs("span",{className:"agent-trace-badges",children:[P.slice(0,3).map(G=>s.jsx("span",{className:"run-metric-badge metric-tool",title:G,children:Em(G,62)},G)),P.length>3?s.jsxs("span",{className:"run-metric-badge metric-tool",children:["+",P.length-3]}):null]}):null,s.jsx("span",{className:"agent-cycle-spacer"}),A?s.jsx("span",{className:"agent-cycle-preview",children:A}):null]}),s.jsxs("div",{className:"agent-cycle-body",children:[x.think?s.jsx(Zf,{item:x.think,label:"think",toolDefs:T,defaultOpen:F}):null,x.acts.map(G=>s.jsx(Zf,{item:G,label:"act",toolDefs:T},G.id)),s.jsx(rv,{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(G=>{const se=F&&pl(G.step)==="answer_user";return s.jsx(Zf,{item:G,label:"other",toolDefs:T,defaultOpen:se},G.id)})]}):null]})]},x.id)})]})]})}function zo(e){return typeof e=="string"?e.trim():""}function iv(e){var t;return zo(e.run_id)||zo((t=e.record)==null?void 0:t.run_id)}function $m(e){return zo(e==null?void 0:e.node_id)}const ov=new Set(["reason","act","observe","thought","think"]);function Am(e){const t=zo(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 ov.has(o)?r.slice(0,-1).join("::"):t}function l_(e){var t;return zo((t=e==null?void 0:e.effect)==null?void 0:t.type)}function av(e){return zo(e==null?void 0:e.status)||"unknown"}function Np(e){return zo(e==null?void 0:e.step_id)}function lv(e){return zo(e==null?void 0:e.ended_at)||zo(e==null?void 0:e.started_at)}function cv(e){const t=new Map,r=new Map;for(const l of e){const u=Am($m(l));if(!u)continue;const c=l_(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 uv(e,t){const r=zo(t.run_id);if(!r)return{run_id:"",node_id:"",items:[]};const o=(Array.isArray(e)?e:[]).filter(b=>b&&b.record&&iv(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(zo(t.node_id)),c=u||cv(l),d=new Set(["llm_call","tool_calls","ask_user","answer_user"]);let h=o.filter(b=>d.has(l_(b.record)));u&&(h=h.filter(b=>Am($m(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=$m(j)||"(node?)",A=lv(j),T=Np(j);return{id:`ledger:${r}:${b.cursor}:${T||""}`,runId:r,nodeId:S,ts:A||void 0,status:av(j),step:j}});return{run_id:r,node_id:c,items:v}}function c_(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function u_(e){return Array.isArray(e)}function dv(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function fv(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 Uc({kind:e,children:t}){return s.jsx("span",{className:`pc-json-token ${e}`,children:t})}function mv(e){return e===null?s.jsx(Uc,{kind:"null",children:"null"}):typeof e=="string"?s.jsx(Uc,{kind:"string",children:JSON.stringify(e)}):typeof e=="number"?s.jsx(Uc,{kind:"number",children:String(e)}):typeof e=="boolean"?s.jsx(Uc,{kind:"boolean",children:e?"true":"false"}):s.jsx(Uc,{kind:"string",children:JSON.stringify(String(e))})}function hv(e){return u_(e)?e.length===1?"1 item":`${e.length} items`:c_(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function d_(e){const{label:t,value:r,depth:o,collapseAfterDepth:l,trailingComma:u}=e,c=o*14,d=c_(r),h=u_(r),_=d||h,g=o<l,[x,v]=m.useState(g),b=t?s.jsxs(s.Fragment,{children:[s.jsx(Uc,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!_)return s.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:c},children:[b,mv(r),u?",":""]});const j=h?"[":"{",S=h?"]":"}",A=hv(r),T=x?`${j}`:`${j}…${S}${A?` (${A})`:""}`,B=h?r.map((P,F)=>({key:String(F),label:void 0,value:P})):Object.entries(r).map(([P,F])=>({key:P,label:P,value:F}));return s.jsxs("details",{className:"pc-json-viewer__details",open:x,onToggle:P=>v(P.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:T}),!x&&u?s.jsx("span",{className:"pc-json-viewer__punct",children:","}):null]}),x?s.jsx("div",{className:"pc-json-viewer__children",children:B.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:[B.map((P,F)=>{const G=F===B.length-1;return s.jsx(d_,{label:P.label,value:P.value,depth:o+1,collapseAfterDepth:l,trailingComma:!G},`${o}:${t||"root"}:${P.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 pv(e){const{value:t,className:r,showCopy:o=!0}=e,l=Number.isFinite(e.collapseAfterDepth??NaN)?Number(e.collapseAfterDepth):3,u=m.useMemo(()=>dv(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 fv(u),children:"Copy"})}):null,s.jsx("div",{className:"pc-json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:s.jsx(d_,{value:t,depth:0,collapseAfterDepth:l,trailingComma:!1})})]})}function Cd(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 ql(e,t){const r=[],o=String(e??"");let l=0,u="";const c=()=>{if(u){for(const d of Cd(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?Cd(_,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?Cd(_,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?Cd(_,t):_},`em:${l}`)),l=h+1;continue}}u+=d,l+=1}return c(),r}function gv(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 _v(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 oo({text:e,className:t,highlight:r,highlights:o,highlightClassName:l,highlightId:u}){const c=gv(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 F=b.trim().replace(/```/g,"").trim(),G=[];for(x+=1;x<c.length&&!String(c[x]??"").trim().startsWith("```");)G.push(String(c[x]??"")),x+=1;x<c.length&&(x+=1);const se=G.join(`
49
- `);d.push(s.jsx("pre",{className:"pc-md_pre",children:s.jsx("code",{className:F?`language-${F}`:void 0,children:se})},`pre:${x}`));continue}const S=b.match(/^(#{1,5})\s+(.*)$/);if(S){const P=S[1].length,F=S[2]||"",G=ql(F,g);P===1?d.push(s.jsx("h1",{children:G},`h1:${x}`)):P===2?d.push(s.jsx("h2",{children:G},`h2:${x}`)):P===3?d.push(s.jsx("h3",{children:G},`h3:${x}`)):P===4?d.push(s.jsx("h4",{children:G},`h4:${x}`)):d.push(s.jsx("h5",{children:G},`h5:${x}`)),x+=1;continue}if(b.trimStart().startsWith(">")){const P=[];for(;x<c.length&&String(c[x]??"").trimStart().startsWith(">");){const G=String(c[x]??"").trimStart();P.push(G.replace(/^>\s?/,"")),x+=1}d.push(s.jsx("blockquote",{className:"pc-md_quote",children:P.map((F,G)=>s.jsxs($e.Fragment,{children:[ql(F,g),G<P.length-1?s.jsx("br",{}):null]},`q:${x}:${G}`))},`quote:${x}`));continue}if(b.includes("|")&&x+1<c.length&&_v(String(c[x+1]??""))){const P=Cp(b),F=Math.max(1,P.length),G=[];for(x+=2;x<c.length;){const se=String(c[x]??"");if(!se.trim()||!se.includes("|"))break;const Y=Cp(se),le=[];for(let oe=0;oe<F;oe++)le.push(Y[oe]??"");G.push(le),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:P.slice(0,F).map((se,Y)=>s.jsx("th",{children:ql(se,g)},`th:${x}:${Y}`))})}),s.jsx("tbody",{children:G.map((se,Y)=>s.jsx("tr",{children:se.map((le,oe)=>s.jsx("td",{children:ql(le,g)},`td:${x}:${Y}:${oe}`))},`tr:${x}:${Y}`))})]})},`table:${x}`));continue}const A=P=>/^\s*\d+\.\s+/.test(P);if(A(b)){const P=[];for(;x<c.length&&A(String(c[x]??""));){const F=String(c[x]??"");P.push(F.replace(/^\s*\d+\.\s+/,"")),x+=1}d.push(s.jsx("ol",{className:"pc-md_ol",children:P.map((F,G)=>s.jsx("li",{children:ql(F,g)},`oli:${x}:${G}`))},`ol:${x}`));continue}const T=P=>{const F=P.trimStart();return F.startsWith("- ")||F.startsWith("* ")};if(T(b)){const P=[];for(;x<c.length&&T(String(c[x]??""));){const F=String(c[x]??"").trimStart();P.push(F.slice(2)),x+=1}d.push(s.jsx("ul",{className:"pc-md_ul",children:P.map((F,G)=>s.jsx("li",{children:ql(F,g)},`li:${x}:${G}`))},`ul:${x}`));continue}const B=[];for(;x<c.length&&String(c[x]??"").trim();)B.push(String(c[x]??"")),x+=1;d.push(s.jsx("p",{className:"pc-md_p",children:B.map((P,F)=>s.jsxs($e.Fragment,{children:[ql(P,g),F<B.length-1?s.jsx("br",{}):null]},`pl:${x}:${F}`))},`p:${x}`))}const v=["pc-md",t].filter(Boolean).join(" ");return s.jsx("div",{className:v,children:d})}function f_(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 yv(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function xv(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 vv(e){return e.endsWith(`
50
- `)?e:`${e}
51
- `}function wv(e){return String(e||"").trimStart().startsWith("```")}function bv(e,t){const o=[`# ${String((t==null?void 0:t.heading)||"Chat").trim()||"Chat"}`,""];for(const l of e){const u=xv(l);o.push(`## ${u}`,"");const c=String(l.content||""),d=f_(c);d!==null&&!wv(c)?o.push("```json",yv(d).trimEnd(),"```",""):o.push(vv(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 Cs(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 Sv(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 jv(e){const t=String(e.text??""),r=f_(t),o=["pc-chat-content",e.className].filter(Boolean).join(" ");return r!==null?s.jsx("div",{className:o,children:s.jsx(pv,{value:r,collapseAfterDepth:e.jsonCollapseAfterDepth})}):e.renderMarkdown?s.jsx("div",{className:o,children:e.renderMarkdown(t)}):s.jsx("div",{className:o,children:s.jsx(oo,{text:t})})}const Wd=$e.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"})]})]})}),m_=[{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"]}];m_.map(e=>({id:e.id,label:e.label}));function kv(e){return`theme-${String(e||"").trim()||"dark"}`}function Nv(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(kv(e))}catch{}}const Tm=[{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}],Mm=[{id:"compact",label:"Compact",density:.85},{id:"standard",label:"Standard",density:1},{id:"spacious",label:"Spacious",density:1.2}];function Cv(e){const t=String(e).trim();return Tm.find(r=>r.id===t)||Tm[1]}function Ev(e){const t=String(e).trim();return Mm.find(r=>r.id===t)||Mm[1]}function $v(e){try{const t=document.documentElement,r=Cv(e.font_scale||"md"),o=Ev(e.header_density||"standard");t.style.setProperty("--font-scale",String(r.scale)),t.style.setProperty("--header-density",String(o.density))}catch{}}var Av=Kg();function Rc(...e){return e.filter(Boolean).join(" ")}function Xc({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,customOptionLabel:b,validateCustomValue:j,onChange:S,renderOption:A,renderValue:T}){const B=m.useRef(null),P=m.useRef(null),F=m.useRef(null),[G,se]=m.useState(!1),[Y,le]=m.useState(""),[oe,ge]=m.useState(0),[Re,Te]=m.useState("bottom"),[K,W]=m.useState({left:0,top:0,width:0}),X=m.useMemo(()=>{const _e=String(e??"");return t.find(ve=>ve.value===_e)||null},[t,e]),V=m.useMemo(()=>(X==null?void 0:X.label)||String(e||"").trim()||"",[X,e]),Q=m.useMemo(()=>{const _e=Y.trim().toLowerCase();return _e?t.filter(ve=>ve.label.toLowerCase().includes(_e)||ve.value.toLowerCase().includes(_e)):t},[t,Y]),k=m.useMemo(()=>{if(!d)return null;const _e=Y.trim();if(!_e||t.some(we=>we.value===_e))return null;const ae=(j==null?void 0:j(_e,{options:t}))||"";return{value:_e,label:b?b(_e):`Use "${_e}"`,disabled:!!ae,reason:ae}},[d,b,t,Y,j]),M=m.useMemo(()=>k?[k,...Q]:Q,[k,Q]),D=m.useCallback(()=>{const _e=B.current;if(!_e)return;const ve=_e.getBoundingClientRect(),ae=Math.max(ve.width,_),we=Math.max(8,Math.min(ve.left,window.innerWidth-ae-8)),Pe=window.innerHeight-ve.bottom,Ke=ve.top,et=Pe>=220||Pe>=Ke?"bottom":"top";Te(et);const Ae=et==="bottom"?ve.bottom+6:ve.top-6;W({left:we,top:Ae,width:ae})},[_]),C=m.useCallback(()=>{se(!1),le("")},[]);m.useEffect(()=>{if(!G)return;D();const _e=()=>D();return window.addEventListener("resize",_e),window.addEventListener("scroll",_e,!0),()=>{window.removeEventListener("resize",_e),window.removeEventListener("scroll",_e,!0)}},[G,D]),m.useEffect(()=>{if(!G)return;const _e=ve=>{var we,Pe;const ae=ve.target;ae&&((we=B.current)!=null&&we.contains(ae)||(Pe=P.current)!=null&&Pe.contains(ae)||C())};return document.addEventListener("mousedown",_e,!0),()=>document.removeEventListener("mousedown",_e,!0)},[G,C]),m.useEffect(()=>{if(!G)return;const _e=Math.max(0,M.findIndex(ve=>ve.value===e));ge(_e===-1?0:_e),u&&setTimeout(()=>{var ve;return(ve=F.current)==null?void 0:ve.focus()},0)},[G,u,e,M]);const U=_e=>{const ve=M.find(ae=>ae.value===_e);ve!=null&&ve.disabled||(S(_e),C())},te=_e=>{o||(_e.key==="Enter"||_e.key===" "?(_e.preventDefault(),se(ve=>!ve)):_e.key==="ArrowDown"&&(_e.preventDefault(),se(!0)))},ne=_e=>{if(_e.key==="Escape"){_e.preventDefault(),C();return}if(_e.key==="ArrowDown"){_e.preventDefault(),ge(ve=>Math.min(ve+1,Math.max(0,M.length-1)));return}if(_e.key==="ArrowUp"){_e.preventDefault(),ge(ve=>Math.max(ve-1,0));return}if(_e.key==="Enter"){_e.preventDefault();const ve=M[oe];ve&&U(ve.value)}},me=!!String(e||"").trim(),Me=me?V:r,Ne=k!=null&&k.disabled?k.reason||"Unavailable":"",Fe=s.jsx("span",{className:Rc("af-select-value",!me&&"af-select-value--placeholder"),children:l?"Loading…":Me}),Be=T?T(X,String(e||"")):Fe;return s.jsxs("span",{className:Rc("af-select",g==="pin"?"af-select--pin":"af-select--panel",x),children:[s.jsxs("button",{ref:B,type:"button",className:Rc("af-select-trigger",v),disabled:o,onMouseDown:_e=>_e.stopPropagation(),onClick:_e=>{_e.stopPropagation(),!o&&se(ve=>!ve)},onKeyDown:te,"aria-haspopup":"listbox","aria-expanded":G,children:[Be,h&&me?s.jsx("span",{className:"af-select-clear",role:"button",tabIndex:-1,onMouseDown:_e=>{_e.preventDefault(),_e.stopPropagation()},onClick:_e=>{_e.preventDefault(),_e.stopPropagation(),S(""),C()},title:"Clear",children:"×"}):null,s.jsx("span",{className:Rc("af-select-caret",G&&"af-select-caret--open"),children:"▾"})]}),G?Av.createPortal(s.jsxs("div",{ref:P,className:Rc("af-select-popover",Re==="top"&&"af-select-popover--top"),style:{position:"fixed",left:`${K.left}px`,top:`${K.top}px`,width:`${K.width}px`},onMouseDown:_e=>_e.stopPropagation(),onClick:_e=>_e.stopPropagation(),onWheel:_e=>_e.stopPropagation(),onKeyDown:ne,role:"listbox",tabIndex:-1,children:[u?s.jsxs("div",{className:"af-select-search",children:[s.jsx("input",{ref:F,className:"af-select-search-input",value:Y,onChange:_e=>le(_e.target.value),placeholder:c,onKeyDown:ne,"aria-invalid":!!Ne,"aria-describedby":Ne?"af-select-custom-error":void 0}),Ne?s.jsx("div",{id:"af-select-custom-error",className:"af-select-custom-error",role:"alert",children:Ne}):null]}):null,s.jsx("div",{className:"af-select-options",children:l&&M.length===0?s.jsx("div",{className:"af-select-empty",children:"Loading…"}):M.length===0?s.jsx("div",{className:"af-select-empty",children:"No results"}):M.map((_e,ve)=>{var Ae;const ae=_e.value===e,we=ve===oe,Pe=String(_e.group||"").trim(),Ke=ve>0?String(((Ae=M[ve-1])==null?void 0:Ae.group)||"").trim():"",et=!!Pe&&Pe!==Ke;return s.jsxs($e.Fragment,{children:[et?s.jsx("div",{className:"af-select-group",children:Pe}):null,s.jsx("div",{className:Rc("af-select-option",ae&&"af-select-option--selected",we&&"af-select-option--highlighted",_e.disabled&&"af-select-option--disabled"),title:_e.disabled?_e.reason||"Unavailable":void 0,onMouseEnter:()=>ge(ve),onMouseDown:Oe=>{Oe.preventDefault(),Oe.stopPropagation()},onClick:()=>U(_e.value),"aria-disabled":_e.disabled?!0:void 0,children:A?A(_e,{selected:ae,highlighted:we}):s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"af-select-option-label",children:[s.jsx("span",{children:_e.label}),_e.reason?s.jsx("small",{className:"af-select-option-reason",children:_e.reason}):null]}),ae?s.jsx("span",{className:"af-select-check",children:"✓"}):null]})})]},_e.value)})})]}),document.body):null]})}function Tv(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 Mv(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 zv(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=Tv(e.providers),v=Mv(e.models),b=t||!!e.loadingProviders,j=t||!!e.loadingModels,S=[...o?[{value:"",label:l}]:[],...x.map(T=>({value:T.name,label:T.display_name?`${T.display_name} (${T.name})`:T.name}))],A=[...o?[{value:"",label:l}]:[],...v.map(T=>({value:T,label:T}))];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(Xc,{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:T=>e.onChange({provider:String(T||"").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(Xc,{value:g,options:A,placeholder:o?l:h,disabled:j,loading:!!e.loadingModels,searchable:!0,allowCustom:e.allowCustomModel===!0,clearable:o,variant:"panel",triggerClassName:e.selectClassName,onChange:T=>e.onChange({provider:_,model:String(T||"").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 Rv(e){return e==="light"?"Light":"Dark"}function Lv(e){const t=e.themes&&e.themes.length?e.themes:m_,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:Rv(c.group)})),[t]);return s.jsx(Xc,{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 Pv(e){const t=e.scales&&e.scales.length?e.scales:Tm,r=e.variant||"panel",o=m.useMemo(()=>t.map(l=>({value:l.id,label:l.label})),[t]);return s.jsx(Xc,{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 Iv(e){const t=e.densities&&e.densities.length?e.densities:Mm,r=e.variant||"panel",o=m.useMemo(()=>t.map(l=>({value:l.id,label:l.label})),[t]);return s.jsx(Xc,{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 Fv(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 Fn({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,Fv(e)]})}function Ov(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 Dv(e){var j;const t=e.message,r=m.useMemo(()=>Ov(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(Fn,{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(Fn,{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 Cs(String(t.content||""));c(S?"copied":"failed"),window.setTimeout(()=>c("idle"),900)},children:s.jsx(Fn,{name:"copy",size:22})}):null]})]}),s.jsx("div",{className:"pc-chat-body",children:s.jsx(jv,{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,A)=>{const T=String(S.label||"").trim()||"attachment",B=String(S.target||"").trim(),P=String(S.title||"").trim(),F=!!S.disabled||typeof S.onClick!="function";return s.jsxs("button",{type:"button",className:"pc-chat-attachment-chip",title:P||T,onClick:F?void 0:S.onClick,disabled:F,children:[s.jsx(Fn,{name:"paperclip",size:14}),B?s.jsx("span",{className:`pc-chat-attachment-target pc-chat-attachment-target--${B}`,children:B}):null,s.jsx("span",{className:"pc-chat-attachment-name",children:T})]},S.id||`${T}:${A}`)})}):null,b.length?s.jsx("div",{className:"pc-chat-stats","aria-label":"Stats",children:b.slice(0,12).map((S,A)=>{const T=String(S.label||"").trim();if(!T)return null;const B=String(S.title||"").trim(),P=typeof S.onClick=="function";return s.jsxs("button",{type:"button",className:["pc-chat-stat",P?"pc-chat-stat--clickable":""].filter(Boolean).join(" "),title:B||void 0,onClick:P?()=>{var F;return(F=S.onClick)==null?void 0:F.call(S)}:void 0,disabled:!P,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:T})]},S.id||`${T}:${A}`)})}):null]})}function Bv(e,t){const r=Math.max(0,Math.trunc(t));return e.scrollHeight-e.scrollTop-e.clientHeight<=r}function Hd(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(Bv(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(Dv,{message:h,...e.messageProps||{}},String(h.id||"")||String(h.ts||"")+":"+String(h.role||"")+":"+_)),s.jsx("div",{ref:l})]})}class Kd{constructor(t){this._maxSize=Kd._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=Kd._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 Uv(e){try{return new URL(String(e)),!0}catch{return!1}}function Wv({baseUrl:e,endpoint:t}){const r=String(t||"/api/gateway/host/metrics/gpu");return Uv(r)?r:e&&String(e).trim()?new URL(r,String(e)).toString():r}async function Hv({token:e,getToken:t}){if(typeof t=="function"){const r=await t();return r==null?"":String(r)}return e==null?"":String(e)}function Vv({token:e}){const t=String(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}function qv(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 Gv({baseUrl:e,endpoint:t,token:r,getToken:o,signal:l,fetchImpl:u}={}){const c=Wv({baseUrl:e,endpoint:t}),d=await Hv({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",...Vv({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 ku=Object.freeze({tickMs:1500,historySize:20,endpoint:"/api/gateway/host/metrics/gpu",baseUrl:"",mode:"full"});function Yv(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 em(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 Ap(e){const t={...ku,...e||{}};return t.tickMs=Math.max(250,$p(t.tickMs,ku.tickMs)),t.historySize=Math.max(1,Math.min(200,$p(t.historySize,ku.historySize))),t.endpoint=String(t.endpoint||ku.endpoint),t.baseUrl=String(t.baseUrl||""),t.mode=String(t.mode||ku.mode).trim().toLowerCase(),t.mode!=="icon"&&(t.mode="full"),t}function Xv(){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 Kv{constructor(t,r={}){if(!t||typeof t!="object")throw new TypeError("target element is required");this._target=t,this._opts=Ap(r),this._buffer=new Kd(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=Xv();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=Ap({...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",em(d,.95)),r.style.setProperty("--monitor-gpu-accent-glow",em(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,A=S==null?0:Yv(S/100),T=Math.max(2,Math.min(g,Math.round(A*g)));v.style.height=`${T}px`,v.style.background=S==null?"":em(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 Gv({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=qv(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 Jv(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 Kv(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 Qv{constructor(){Su(this,"_buffer","");Su(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 ft(e,t){const r=(e||"").trim().replace(/\/+$/,"");return r?`${r}${t}`:t}function mt(e){var o;const t=(e||"").trim(),r={};t&&(r.Authorization=`Bearer ${t}`);try{const l=(o=document.cookie.split(";").map(u=>u.trim()).find(u=>u.startsWith("abstractobserver_gateway_csrf=")))==null?void 0:o.slice(30);l&&(r["X-AbstractObserver-CSRF"]=decodeURIComponent(l))}catch{}return r}async function It(e){try{const t=await e.text();return t!=null&&t.trim()?t.trim():`${e.status}`}catch{return`${e.status}`}}class Tp{constructor(t){Su(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(ft(this._cfg.base_url,"/api/gateway/runs/start"),{method:"POST",headers:{"Content-Type":"application/json",...mt(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(ft(this._cfg.base_url,"/api/gateway/runs/schedule"),{method:"POST",headers:{"Content-Type":"application/json",...mt(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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}`),{headers:{...mt(this._cfg.auth_token)}});if(!r.ok)throw new Error(`get_run failed: ${await It(r)}`);return await r.json()}async get_run_history_bundle(t,r){const o=String(t||"").trim();if(!o)throw new Error("get_run_history_bundle: run_id is required");const l=new URLSearchParams;(r==null?void 0:r.include_subruns)===!1&&l.set("include_subruns","false"),(r==null?void 0:r.include_session)===!0&&l.set("include_session","true"),typeof(r==null?void 0:r.session_turn_limit)=="number"&&Number.isFinite(r.session_turn_limit)&&l.set("session_turn_limit",String(Math.max(1,Math.trunc(r.session_turn_limit)))),r!=null&&r.ledger_mode&&l.set("ledger_mode",String(r.ledger_mode)),typeof(r==null?void 0:r.ledger_max_items)=="number"&&Number.isFinite(r.ledger_max_items)&&l.set("ledger_max_items",String(Math.max(0,Math.trunc(r.ledger_max_items))));const u=ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/history_bundle?${l.toString()}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`get_run_history_bundle failed: ${await It(c)}`);return await c.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=ft(this._cfg.base_url,`/api/gateway/runs?${d.toString()}`),_=await fetch(h,{headers:{...mt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`list_runs failed: ${await It(_)}`);return await _.json()}async list_processes(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/processes"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_processes failed: ${await It(t)}`);return await t.json()}async list_process_env_vars(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/processes/env"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_process_env_vars failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/processes/env"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!u.ok)throw new Error(`update_process_env_vars failed: ${await It(u)}`);return await u.json()}async start_process(t){const r=String(t||"").trim(),o=await fetch(ft(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/start`),{method:"POST",headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`start_process failed: ${await It(o)}`);return await o.json()}async stop_process(t){const r=String(t||"").trim(),o=await fetch(ft(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/stop`),{method:"POST",headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`stop_process failed: ${await It(o)}`);return await o.json()}async restart_process(t){const r=String(t||"").trim(),o=await fetch(ft(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/restart`),{method:"POST",headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`restart_process failed: ${await It(o)}`);return await o.json()}async redeploy_process(t){const r=String(t||"").trim(),o=await fetch(ft(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/redeploy`),{method:"POST",headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`redeploy_process failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(o)}/logs/tail?max_bytes=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`process_log_tail failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(r)}/input_data`),{headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_run_input_data failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/artifacts?limit=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`list_run_artifacts failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/artifacts/${encodeURIComponent(l)}/content`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`download_run_artifact_content failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger?after=${encodeURIComponent(String(o))}&limit=${encodeURIComponent(String(l))}`),c=await fetch(u,{headers:{...mt(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(ft(this._cfg.base_url,"/api/gateway/runs/ledger/batch"),{method:"POST",headers:{"Content-Type":"application/json",...mt(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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/summary`),{method:"POST",headers:{"Content-Type":"application/json",...mt(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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat`),{method:"POST",headers:{"Content-Type":"application/json",...mt(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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/audio/transcribe`),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`audio_transcribe failed: ${await It(_)}`);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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/voice/tts`),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`voice_tts failed: ${await It(_)}`);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(ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat_threads`),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!h.ok)throw new Error(`save_chat_thread failed: ${await It(h)}`);return await h.json()}async list_bundles(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/bundles"),{headers:{...mt(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(ft(this._cfg.base_url,"/api/gateway/bundles/reload"),{method:"POST",headers:{...mt(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(ft(this._cfg.base_url,"/api/gateway/bundles/upload"),{method:"POST",headers:{...mt(this._cfg.auth_token)},body:u});if(!c.ok)throw new Error(`upload_bundle failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/attachments/upload"),{method:"POST",headers:{...mt(this._cfg.auth_token)},body:d});if(!h.ok)throw new Error(`attachments_upload failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}?${l.toString()}`),d=await fetch(c,{method:"DELETE",headers:{...mt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`remove_bundle failed: ${await It(d)}`);return await d.json()}async discovery_tools(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/discovery/tools"),{headers:{...mt(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=ft(this._cfg.base_url,`/api/gateway/discovery/providers?include_models=${encodeURIComponent(String(r))}`),l=await fetch(o,{headers:{...mt(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(ft(this._cfg.base_url,`/api/gateway/discovery/providers/${encodeURIComponent(r)}/models`),{headers:{...mt(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(ft(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(r)}`),{headers:{...mt(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(ft(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}/flows/${encodeURIComponent(l)}`),{headers:{...mt(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(ft(this._cfg.base_url,`/api/gateway/workflows/${encodeURIComponent(r)}/flow`),{headers:{...mt(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(ft(this._cfg.base_url,"/api/gateway/commands"),{method:"POST",headers:{"Content-Type":"application/json",...mt(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 A=await fetch(ft(this._cfg.base_url,"/api/gateway/kg/query"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!A.ok)throw new Error(`kg_query failed: ${await It(A)}`);return await A.json()}async list_bug_reports(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/reports/bugs"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_bug_reports failed: ${await It(t)}`);return await t.json()}async list_feature_requests(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/reports/features"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_feature_requests failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/reports/bugs/${encodeURIComponent(r)}/content`),{headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_bug_report_content failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/reports/features/${encodeURIComponent(r)}/content`),{headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_feature_request_content failed: ${await It(o)}`);return await o.json()}async email_list_accounts(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/email/accounts"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`email_list_accounts failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/email/messages?${r.toString()}`),_=await fetch(h,{headers:{...mt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_list_messages failed: ${await It(_)}`);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=ft(this._cfg.base_url,`/api/gateway/email/messages/${encodeURIComponent(o)}?${l.toString()}`),_=await fetch(h,{headers:{...mt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_read_message failed: ${await It(_)}`);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(ft(this._cfg.base_url,"/api/gateway/email/send"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(t||{})});if(!o.ok)throw new Error(`email_send failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/triage/run"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!o.ok)throw new Error(`triage_run failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/triage/decisions?${r.toString()}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`list_triage_decisions failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/triage/decisions/${encodeURIComponent(o)}/apply`),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!c.ok)throw new Error(`apply_triage_decision failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}`),{headers:{...mt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`backlog_list failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(o)}/${encodeURIComponent(l)}/content`),{headers:{...mt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`backlog_content failed: ${await It(u)}`);return await u.json()}async backlog_template(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/backlog/template"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_template failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/move"),{method:"POST",headers:{"Content-Type":"application/json",...mt(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 It(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(ft(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/update`),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!d.ok)throw new Error(`backlog_update failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/create"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`backlog_create failed: ${await It(_)}`);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=ft(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/execute${l.toString()?`?${l.toString()}`:""}`),d=await fetch(c,{method:"POST",headers:{...mt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_execute failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/execute_batch"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!u.ok)throw new Error(`backlog_execute_batch failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/merge"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`backlog_merge failed: ${await It(_)}`);return await _.json()}async backlog_exec_config(){const t=await fetch(ft(this._cfg.base_url,"/api/gateway/backlog/exec/config"),{headers:{...mt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_exec_config failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests?${r.toString()}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_requests failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(o)}?${l.toString()}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_request failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/feedback`),c=await fetch(u,{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!c.ok)throw new Error(`backlog_exec_feedback failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/promote`),u=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!u.ok)throw new Error(`backlog_exec_promote failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/uat/deploy`),l=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:"{}"});if(!l.ok)throw new Error(`backlog_exec_deploy_uat failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/logs/tail?${o.toString()}`),d=await fetch(c,{headers:{...mt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_exec_log_tail failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/backlog/exec/active_items?${r.toString()}`),c=await fetch(u,{headers:{...mt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_exec_active_items failed: ${await It(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(ft(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/attachments/upload`),{method:"POST",headers:{...mt(this._cfg.auth_token)},body:c});if(!d.ok)throw new Error(`backlog_upload_attachment failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/assist"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!x.ok)throw new Error(`backlog_assist failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/maintain"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!v.ok)throw new Error(`backlog_maintain failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/backlog/advisor"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!_.ok)throw new Error(`backlog_advisor failed: ${await It(_)}`);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(ft(this._cfg.base_url,"/api/gateway/bugs/report"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!S.ok)throw new Error(`bug_report_create failed: ${await It(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(ft(this._cfg.base_url,"/api/gateway/features/report"),{method:"POST",headers:{"Content-Type":"application/json",...mt(this._cfg.auth_token)},body:JSON.stringify(l)});if(!S.ok)throw new Error(`feature_report_create failed: ${await It(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=ft(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger/stream?after=${encodeURIComponent(String(o))}`),d=await fetch(c,{headers:{Accept:"text/event-stream",...mt(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 Qv;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 Kr(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id_${Date.now()}_${Math.random().toString(16).slice(2)}`}function Zv(e){const t=(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}class ew{constructor(t){Su(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)||Kr()),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:Kr(),method:"tools/call",params:{name:r,arguments:l}},c=await fetch(this._cfg.url,{method:"POST",headers:{"Content-Type":"application/json",...Zv(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 ll(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 Ed(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 h_(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 tw={execution:"#FFFFFF",string:"#FF00FF",number:"#00FF00",boolean:"#FF0000",object:"#00FFFF",array:"#FF8800",tools:"#FF8800",provider:"#00D2FF",model:"#9D4EDD",provider_text:"#00D2FF",model_text:"#9D4EDD",provider_image:"#19D3B8",model_image:"#8B5CF6",provider_voice:"#22D3EE",model_voice:"#A855F7",agent:"#4488FF",any:"#888888"},nw=[{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_text",label:"Text Provider",shape:"●",description:"Text/LLM provider id/name"},{type:"provider_image",label:"Image Provider",shape:"●",description:"Image-generation provider id"},{type:"provider_voice",label:"Voice Provider",shape:"●",description:"Voice/TTS/STT provider id"},{type:"provider",label:"Provider (legacy)",shape:"●",description:"Legacy unscoped provider id/name"},{type:"model",label:"Model",shape:"●",description:"Model id/name scoped by the selected provider"},{type:"agent",label:"Agent",shape:"⬢",description:"Agent reference"},{type:"any",label:"Any",shape:"●",description:"Accepts any type"}];function rw(){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:[nw.map(r=>s.jsxs("div",{className:"pin-legend-row",children:[s.jsx("span",{className:"pin-legend-shape",style:{color:tw[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 zn(e){return typeof e=="string"?e:e==null?"":String(e)}function Mp(e,t){const r=zn(e).trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function p_(e){const t=zn(e==null?void 0:e.targetHandle),r=zn(e==null?void 0:e.sourceHandle);return!!(t==="exec-in"||r==="exec-out"||t.includes("exec")||r.includes("exec"))}function g_(e){if(!e||typeof e!="object")return"";const t=e!=null&&e.data&&typeof e.data=="object"?e.data:{};return zn((t==null?void 0:t.nodeType)||(e==null?void 0:e.type)||"").trim()}function __(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=zn(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 sw(e){const t=zn(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(g_(o)==="on_flow_start"){const l=zn(o==null?void 0:o.id).trim();if(l)return l}return""}function tm(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 Nu(e,t){const r=zn(e).trim(),o=zn(t).trim();return o?r?`${r}::${o}`:o:""}function iw(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=zn(v==null?void 0:v.id).trim();if(!b)continue;const j=Nu(d,b);if(!j||l.has(j))continue;const S=tm(v),A={...v,id:j,position:{x:S.x+h.x,y:S.y+h.y}};if(r.push(A),l.add(j),r.length>=e.max_nodes)break}for(const v of x){if(!p_(v))continue;const b=zn(v==null?void 0:v.source).trim(),j=zn(v==null?void 0:v.target).trim();if(!b||!j)continue;const S=Nu(d,b),A=Nu(d,j);if(!S||!A)continue;const T=zn(v==null?void 0:v.id).trim(),B=T?`${S}->${A}::${T}`:`${S}->${A}`;if(o.push({...v,id:B,source:S,target:A}),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(g_(v)!=="subflow")continue;const b=__(v);if(!b)continue;const j=e.flow_by_id[b];if(!j||typeof j!="object")continue;const S=Nu(d,zn(v==null?void 0:v.id));if(!S)continue;const A=sw(j);if(!A)continue;const B=(Array.isArray(j.nodes)?j.nodes:[]).find(oe=>zn(oe==null?void 0:oe.id).trim()===A)||null;if(!B)continue;const P=tm(v),F=tm(B),Y={x:P.x+h.x+240-F.x,y:P.y+h.y+0-F.y},le=Nu(S,A);o.push({id:`${S}=>${le}`,source:S,target:le,sourceHandle:"exec-out",targetHandle:"exec-in"}),u(j,S,Y,_+1)}};return u(t,"",{x:0,y:0},0),{...t,id:zn(t.id),nodes:r,edges:o}}function ow(e){const t=zn(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 aw(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 zp(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 lw(e){const t=typeof e.now_ms=="number"?e.now_ms:Date.now(),r=e.flow,o=zn(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 k=iw({root:r||{},flow_by_id:e.flow_by_id||{},expand_subflows:e.expand_subflows===!0,max_depth:3,max_nodes:700,max_edges:900}),M=Array.isArray(k.nodes)?k.nodes:[],D=Array.isArray(k.edges)?k.edges:[];let C=[];for(const Ae of M){const Oe=zn(Ae==null?void 0:Ae.id).trim();if(!Oe)continue;const lt=Ae!=null&&Ae.position&&typeof Ae.position=="object"?Ae.position:{},xe=typeof lt.x=="number"?lt.x:0,$t=typeof lt.y=="number"?lt.y:0,xt=Ae!=null&&Ae.data&&typeof Ae.data=="object"?Ae.data:{},on=zn((xt==null?void 0:xt.label)||(Ae==null?void 0:Ae.label)||Oe)||Oe,cn=zn((xt==null?void 0:xt.nodeType)||(Ae==null?void 0:Ae.type)||"unknown")||"unknown",Xt=zn((xt==null?void 0:xt.headerColor)||(Ae==null?void 0:Ae.headerColor)||"")||"",Se=xt!=null&&xt.eventConfig&&typeof xt.eventConfig=="object"?xt.eventConfig:null,ue=Se&&typeof Se.schedule=="string"?zn(Se.schedule).trim():"",ke=Se&&typeof Se.recurrent=="boolean"?!!Se.recurrent:void 0,At=cn==="subflow"?__(Ae):"",gt=ue||ke!==void 0||At?{schedule:ue||void 0,recurrent:ke,subflow_id:At||void 0}:void 0;C.push({id:Oe,x:xe,y:$t,label:on,type:cn,color:Xt,meta:gt})}const U={};for(const Ae of C)U[Ae.id]=Ae;let te=[];for(const Ae of D){if(!p_(Ae))continue;const Oe=zn(Ae==null?void 0:Ae.source).trim(),lt=zn(Ae==null?void 0:Ae.target).trim();!Oe||!lt||te.push({id:zn((Ae==null?void 0:Ae.id)||`${Oe}->${lt}`),source:Oe,target:lt})}const ne=new Set(C.map(Ae=>Ae.id));if(te=te.filter(Ae=>ne.has(Ae.source)&&ne.has(Ae.target)),e.simplify===!0){const Oe=aw({nodes:C,edges:te,keep_id:lt=>{if(o&&lt===o)return!0;const xe=U[lt];if(!xe)return!1;const $t=zn(xe.type).trim().toLowerCase();return $t==="on_flow_start"||$t==="on_flow_end"||$t==="subflow"?!0:!ow($t)},max_edges:900});C=Oe.nodes,te=Oe.edges}if(e.prefer_vertical===!0&&C.length>=2){const Ae=C.map(xt=>xt.x),Oe=C.map(xt=>xt.y),lt=Math.max(...Ae)-Math.min(...Ae),xe=Math.max(...Oe)-Math.min(...Oe);lt>=xe&&(C=C.map(xt=>({...xt,x:xt.y,y:xt.x})));const $t=Math.min(...C.map(xt=>xt.y));C=C.map(xt=>({...xt,y:$t+(xt.y-$t)*d}))}const me={};for(const Ae of C)me[Ae.id]=Ae;const Me=160,Ne=56,Fe=Me/2,Be=Ne/2;let _e=0,ve=0,ae=0,we=0;C.length&&(_e=Math.min(...C.map(Ae=>Ae.x)),ve=Math.min(...C.map(Ae=>Ae.y)),ae=Math.max(...C.map(Ae=>Ae.x+Me)),we=Math.max(...C.map(Ae=>Ae.y+Ne)));let Pe=0;if(te.length){const Ae=new Set(te.map(Oe=>`${Oe.source}->${Oe.target}`));for(const Oe of te){if(!Ae.has(`${Oe.target}->${Oe.source}`))continue;const lt=me[Oe.source],xe=me[Oe.target];if(!lt||!xe)continue;const $t=lt.x+Fe,xt=lt.y+Be,on=xe.x+Fe,cn=xe.y+Be,Xt=Math.max(1,Math.hypot(on-$t,cn-xt)),Se=Math.max(28,Math.min(72,Xt*.14)),ue=Math.min(200,Se*3.5);ue>Pe&&(Pe=ue)}}const Ke=60+Pe,et={x:_e-Ke,y:ve-Ke,w:ae-_e+Ke*2,h:we-ve+Ke*2,node_w:Me,node_h:Ne};return{nodes:C,edges:te,bounds:et}},[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),A=m.useRef(null),T=`${v.x} ${v.y} ${v.w} ${v.h}`,B={};for(const k of h)B[k.id]=k;const P=k=>{let M=zn(k).trim();if(!M)return"";if(B[M])return M;for(;M.includes("::");)if(M=M.slice(0,Math.max(0,M.lastIndexOf("::"))),B[M])return M;return""},F=P(o),G={};for(const[k,M]of Object.entries(l)){if(typeof M!="number")continue;const D=P(k);D&&(G[D]=Math.max(G[D]||0,M))}const se={};if(c)for(const[k,M]of Object.entries(u)){if(typeof M!="number")continue;const D=P(k);D&&(se[D]=typeof se[D]=="number"?Math.min(se[D],M):M)}const Y=zn(e.schedule_next_in).trim(),le=zn(e.schedule_interval).trim(),oe=e.node_last_ms&&typeof e.node_last_ms=="object"?e.node_last_ms:{},ge=k=>{try{const M=new Date(k),D=String(M.getHours()).padStart(2,"0"),C=String(M.getMinutes()).padStart(2,"0");return`${D}:${C}`}catch{return""}},Re=(k,M)=>{var te,ne;const D=zn((te=k.meta)==null?void 0:te.schedule).trim();if(!(((ne=k.meta)==null?void 0:ne.recurrent)===!0))return M&&Y?`next ${Y}`:D&&D.length<=12&&!D.includes("T")?`in ${D}`:"scheduled";const U=D||le;return U?M&&Y?`${U} • next ${Y}`:`every ${U}`:M&&Y?`next ${Y}`:"scheduled"},Te=k=>{var Me;const M=zn((Me=k.meta)==null?void 0:Me.subflow_id).trim(),D=M&&e.flow_by_id?e.flow_by_id[M]:null,U=zn(D==null?void 0:D.name).trim()||M||k.label||k.id,te=typeof oe[k.id]=="number"?Number(oe[k.id]):null,ne=te!==null?ge(te):"",me=ne?`last ${ne}`:"subflow";return{label:U,sub:me}},K=(k,M,D)=>{const C=D||j.current,U=x.current;if(!U)return{x:k,y:M};const te=U.getBoundingClientRect(),ne=te.width>0?(k-te.left)/te.width:0,me=te.height>0?(M-te.top)/te.height:0;return{x:C.x+ne*C.w,y:C.y+me*C.h}},W=(k,M,D)=>{const C=D||j.current,U=Math.max(.12,Math.min(8,M)),te=C.w*U,ne=C.h*U,me=C.w>0?(k.x-C.x)/C.w:.5,Me=C.h>0?(k.y-C.y)/C.h:.5,Ne=k.x-me*te,Fe=k.y-Me*ne;b(zp({x:Ne,y:Fe,w:te,h:ne},g))},X=(k,M,D)=>{const C=D||j.current,U=x.current;if(!U)return;const te=U.getBoundingClientRect(),ne=.88,me=te.width>0?k/te.width*C.w*ne:0,Me=te.height>0?M/te.height*C.h*ne:0;b(Ne=>zp({x:(D||Ne).x-me,y:(D||Ne).y-Me,w:(D||Ne).w,h:(D||Ne).h},g))},V=m.useMemo(()=>{const k=new Set;for(const M of _)k.add(`${M.source}->${M.target}`);return k},[_]),Q=(k,M,D,C)=>{const U=g.node_w,te=g.node_h,ne=Math.abs(D),me=Math.abs(C);if(ne<1e-6&&me<1e-6)return{x:k,y:M};const Me=ne>1e-6?U/2/ne:Number.POSITIVE_INFINITY,Ne=me>1e-6?te/2/me:Number.POSITIVE_INFINITY,Fe=Math.min(Me,Ne);return{x:k+D*Fe,y:M+C*Fe}};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 k=x.current;if(!k)return;const M=k.getBoundingClientRect(),D=K(M.left+M.width/2,M.top+M.height/2);W(D,.84)},title:"Zoom in",children:"+"}),s.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>{const k=x.current;if(!k)return;const M=k.getBoundingClientRect(),D=K(M.left+M.width/2,M.top+M.height/2);W(D,1.18)},title:"Zoom out",children:"−"})]}),s.jsx(rw,{})]}),s.jsxs("svg",{ref:x,className:"graph_svg",viewBox:T,role:"img","aria-label":"Workflow execution graph",onWheel:k=>{k.preventDefault();const M=K(k.clientX,k.clientY),D=typeof k.deltaY=="number"?k.deltaY:0,C=typeof k.deltaMode=="number"?Number(k.deltaMode):0,U=C===1?D*24:C===2?D*800:D,te=45e-5*1.15*1.1;let ne=Math.exp(U*te);ne=Math.max(.86,Math.min(1.16,ne)),W(M,ne)},onPointerDown:k=>{var D,C;(C=(D=k.currentTarget).setPointerCapture)==null||C.call(D,k.pointerId),S.current.set(k.pointerId,{x:k.clientX,y:k.clientY});const M=Array.from(S.current.values());if(M.length===1)A.current={mode:"pan",start_view:j.current,start_client:{x:k.clientX,y:k.clientY},start_dist:0,anchor_svg:{x:0,y:0}};else if(M.length>=2){const U=M[0],te=M[1],ne=U.x-te.x,me=U.y-te.y,Me=Math.max(1,Math.hypot(ne,me)),Ne={x:(U.x+te.x)/2,y:(U.y+te.y)/2},Fe=j.current;A.current={mode:"pinch",start_view:Fe,start_client:Ne,start_dist:Me,anchor_svg:K(Ne.x,Ne.y,Fe)}}},onPointerMove:k=>{if(!S.current.has(k.pointerId))return;S.current.set(k.pointerId,{x:k.clientX,y:k.clientY});const M=A.current;if(!M)return;const D=Array.from(S.current.values());if(M.mode==="pan"&&D.length===1){const C=k.clientX-M.start_client.x,U=k.clientY-M.start_client.y;X(C,U,M.start_view)}else if(M.mode==="pinch"&&D.length>=2){const C=D[0],U=D[1],te=C.x-U.x,ne=C.y-U.y,me=Math.max(1,Math.hypot(te,ne)),Me=M.start_dist/me;W(M.anchor_svg,Me,M.start_view)}},onPointerUp:k=>{S.current.delete(k.pointerId),S.current.size===0&&(A.current=null)},onPointerCancel:k=>{S.current.delete(k.pointerId),S.current.size===0&&(A.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(k=>{const M=B[k.source],D=B[k.target];if(!M||!D)return null;const C=M.x+g.node_w/2,U=M.y+g.node_h/2,te=D.x+g.node_w/2,ne=D.y+g.node_h/2,me=te-C,Me=ne-U,Ne=Q(C,U,me,Me),Fe=Q(te,ne,-me,-Me),Be=k.source!==k.target&&V.has(`${k.target}->${k.source}`),_e=Math.max(1,Math.hypot(me,Me)),ve=-Me/_e,ae=me/_e,we=String(k.source)<String(k.target)?1:-1,Ke=Math.abs(me)>=Math.abs(Me)?me>=0:Me>=0,et=!Be||Ke,Ae=Math.max(28,Math.min(72,_e*.14)),Oe=Math.min(200,Ae*3.5),lt=Be&&!et?Oe*we:0,xe=(Ne.x+Fe.x)/2+ve*lt,$t=(Ne.y+Fe.y)/2+ae*lt,xt=Be&&!et?`M ${Ne.x} ${Ne.y} Q ${xe} ${$t} ${Fe.x} ${Fe.y}`:`M ${Ne.x} ${Ne.y} L ${Fe.x} ${Fe.y}`,on=c&&se&&se[k.source]!==void 0&&se[k.target]!==void 0;return s.jsx("path",{d:xt,className:`graph_edge ${on?"visited":""}`,markerEnd:"url(#arrow)",fill:"none"},k.id)}),h.map(k=>{const D=(typeof G[k.id]=="number"?G[k.id]:0)>t,C=F&&k.id===F,U=c&&se&&se[k.id]!==void 0,te=`graph_node ${C?"active":D?"recent":""} ${U?"visited":""}`,ne=k.color||"rgba(255,255,255,0.16)";let me=k.label||k.id,Me=k.type;if(k.type==="on_schedule")Me=Re(k,!!C);else if(k.type==="subflow"){const Be=Te(k);me=Be.label,Me=Be.sub}const Ne=Mp(me,22),Fe=Mp(Me,22);return s.jsxs("g",{className:te,transform:`translate(${k.x}, ${k.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:ne}),s.jsx("text",{className:"graph_node_label",x:12,y:28,children:Ne}),s.jsx("text",{className:"graph_node_type",x:12,y:46,children:Fe}),k.type==="on_schedule"?s.jsx("text",{className:"graph_node_icon",x:g.node_w-18,y:18,children:"⏰"}):null]},k.id)})]})]})}function sh(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function y_(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:sh(e)?`Object(${Object.keys(e).length})`:typeof e}function Rp(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(sh(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 x_(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(()=>Rp(r,{depth_threshold:2,min_items:6})),[u,c]=m.useState({});m.useEffect(()=>{l(Rp(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:ih({value:r,path:"$",depth:0,is_last:!0,collapsed:o,expanded_string:u,toggle_collapse:d,toggle_string:h,max_string_len:t})})}function ih(e){const t=e.value,r=e.prefix||null;return t===null?ro(e.depth,r,s.jsx("span",{className:"json_null",children:"null"}),e.is_last):t===void 0?ro(e.depth,r,s.jsx("span",{className:"json_null",children:"undefined"}),e.is_last):typeof t=="string"?ro(e.depth,r,cw(t,e),e.is_last):typeof t=="number"?ro(e.depth,r,s.jsx("span",{className:"json_number",children:String(t)}),e.is_last):typeof t=="boolean"?ro(e.depth,r,s.jsx("span",{className:"json_bool",children:String(t)}),e.is_last):Array.isArray(t)?uw(t,e):sh(t)?dw(t,e):ro(e.depth,r,s.jsx("span",{className:"json_string",children:JSON.stringify(String(t))}),e.is_last)}function cw(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 uw(e,t){const r=t.collapsed[t.path]===!0,o=e.length;return r?ro(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:y_(e)}),s.jsx("span",{className:"json_brace",children:"]"}),s.jsxs("span",{className:"json_hint",children:[" ",o]})]}),t.is_last):s.jsxs(s.Fragment,{children:[ro(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)=>ih({...t,value:l,path:`${t.path}[${u}]`,depth:t.depth+1,is_last:u===e.length-1,prefix:null})),ro(t.depth,null,s.jsx("span",{className:"json_brace",children:"]"}),t.is_last)]})}function dw(e,t){const r=t.collapsed[t.path]===!0,o=Object.keys(e),l=o.length;return r?ro(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:y_(e)}),s.jsx("span",{className:"json_brace",children:"}"}),s.jsxs("span",{className:"json_hint",children:[" ",l]})]}),t.is_last):s.jsxs(s.Fragment,{children:[ro(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 ih({...t,value:_,path:d,depth:t.depth+1,is_last:h,prefix:g})}),ro(t.depth,null,s.jsx("span",{className:"json_brace",children:"}"}),t.is_last)]})}function ro(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 fw(){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 mw(){if(typeof window>"u")return!1;const e=window;return!!(e!=null&&e.AudioContext||e!=null&&e.webkitAudioContext)}function hw(){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 pw(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 v_(e){const t=X=>{var V;return(V=e.on_error)==null?void 0:V.call(e,X)},r=m.useMemo(()=>mw(),[]),o=m.useMemo(()=>fw(),[]),[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 X=globalThis,V=(X==null?void 0:X.AudioContext)||(X==null?void 0:X.webkitAudioContext);if(!V)return null;if(!h.current){const M=new V,D=M.createGain();D.gain.value=1,D.connect(M.destination),h.current=M,_.current=D}const Q=h.current,k=_.current;if(!Q||!k)return null;try{Q.state==="suspended"&&Q.resume()}catch{}return{ctx:Q,gain:k}}catch{return null}},S=()=>{const X=g.current;if(g.current=null,!!X){try{X.onended=null}catch{}try{X.stop()}catch{}try{X.disconnect()}catch{}}},A=()=>{S(),d.current="",c.current="",x.current=null,v.current=0,b.current=0,u({key:"",status:"idle"})};m.useEffect(()=>()=>{var X,V;A();try{(X=_.current)==null||X.disconnect()}catch{}try{(V=h.current)==null||V.close()}catch{}h.current=null,_.current=null,x.current=null},[]);const T=async(X,V,Q)=>{const k=j();if(!k)throw new Error("TTS playback is not supported in this browser");const{ctx:M,gain:D}=k;try{M.state==="suspended"&&await M.resume()}catch{}S();const C=M.createBufferSource();C.buffer=V,C.connect(D);const U=Number.isFinite(Number(V.duration))?Number(V.duration):0,te=Math.max(0,Math.min(Number(Q||0),U>0?Math.max(0,U-.01):0));b.current=M.currentTime-te,v.current=te,g.current=C,c.current=X,C.onended=()=>{g.current===C&&(g.current=null,v.current=0,b.current=0,c.current="",u({key:"",status:"idle"}))},C.start(0,te),u({key:X,status:"playing"})},B=async(X,V)=>{const Q=String(X||"").trim(),k=String(V||"").trim();if(!Q||!k)return;const M=e.gateway,D=String(e.run_id||"").trim();if(!M){t==null||t("Connect to the gateway first.");return}if(!D){t==null||t("Voice store not available (missing run_id).");return}const C=j();if(!C){t==null||t("TTS playback is not supported in this browser.");return}const U=l.key===Q;if(U&&l.status==="playing"){const te=Math.max(0,C.ctx.currentTime-Number(b.current||0));v.current=te,S(),u({key:Q,status:"paused"});return}if(U&&l.status==="paused"){const te=x.current;if(te){t==null||t("");try{await T(Q,te,v.current)}catch(ne){t==null||t(String((ne==null?void 0:ne.message)||ne||"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=Q,d.current=Q,u({key:Q,status:"loading"}),t==null||t("");try{const te=await M.voice_tts(D,{text:k,request_id:Kr()}),ne=te==null?void 0:te.audio_artifact,me=ne&&typeof ne=="object"&&!Array.isArray(ne)?String(ne.$artifact||"").trim():"";if(!me)throw new Error("TTS failed: missing audio artifact");const Ne=await(await M.download_run_artifact_content(D,me)).arrayBuffer();if(d.current!==Q)return;const Fe=await pw(C.ctx,Ne);if(d.current!==Q)return;x.current=Fe,v.current=0,await T(Q,Fe,0)}catch(te){d.current===Q&&(d.current="",c.current="",u({key:"",status:"idle"})),t==null||t(String((te==null?void 0:te.message)||te||"TTS failed"))}}},[P,F]=m.useState(!1),[G,se]=m.useState(!1),Y=m.useRef(null),le=m.useRef(null),oe=m.useRef([]),ge=m.useRef("");function Re(){var X,V;try{(V=(X=Y.current)==null?void 0:X.getTracks)==null||V.call(X).forEach(Q=>{try{Q.stop()}catch{}})}catch{}Y.current=null}m.useEffect(()=>()=>{var X,V;try{(V=(X=le.current)==null?void 0:X.stop)==null||V.call(X)}catch{}le.current=null,Re()},[]);async function Te(X,V){var D;if(t==null||t(""),!X||!X.size||G)return;const Q=e.gateway,k=String(e.session_id||"").trim(),M=String(e.run_id||"").trim();if(!Q){t==null||t("Connect to the gateway first.");return}if(!k){t==null||t("Voice input unavailable (missing session_id).");return}if(!M){t==null||t("Voice input unavailable (missing run_id).");return}se(!0);try{const C=String(V||X.type||"").toLowerCase(),U=C.includes("mp4")?"m4a":C.includes("ogg")?"ogg":C.includes("wav")?"wav":"webm",te=new File([X],`recording.${U}`,{type:C||"audio/webm"}),ne=await Q.attachments_upload(k,te,{filename:te.name,content_type:te.type}),me=await Q.audio_transcribe(M,{audio_artifact:ne,request_id:Kr()}),Me=String((me==null?void 0:me.text)||"").trim();Me&&((D=e.on_transcript)==null||D.call(e,Me))}catch(C){t==null||t(String((C==null?void 0:C.message)||C||"Transcription failed"))}finally{se(!1)}}async function K(){if(t==null||t(""),!o){t==null||t("Voice recording is not supported in this browser (MediaRecorder/getUserMedia unavailable).");return}if(!G&&!(P||le.current)){oe.current=[];try{const X=await navigator.mediaDevices.getUserMedia({audio:!0});Y.current=X;const V=hw();ge.current=V;const Q=V?new MediaRecorder(X,{mimeType:V}):new MediaRecorder(X);le.current=Q,Q.ondataavailable=k=>{try{k!=null&&k.data&&oe.current.push(k.data)}catch{}},Q.onerror=()=>{t==null||t("Recording failed.")},Q.onstop=()=>{F(!1),Re(),le.current=null;try{const k=new Blob(oe.current,{type:ge.current||""});Te(k,ge.current)}catch(k){t==null||t(String((k==null?void 0:k.message)||k||"Failed to build recording"))}},Q.start(),F(!0)}catch(X){Re(),le.current=null,F(!1);const V=String((X==null?void 0:X.message)||X||"Failed to access microphone");t==null||t(V.toLowerCase().includes("permission")?`Microphone permission denied: ${V}`:V)}}}function W(){const X=le.current;if(!(!P||!X)){le.current=null,F(!1);try{X.stop()}catch(V){t==null||t(String((V==null?void 0:V.message)||V||"Failed to stop recording"))}}}return m.useEffect(()=>{if(!P)return;const X=()=>W();return window.addEventListener("pointerup",X),window.addEventListener("pointercancel",X),()=>{window.removeEventListener("pointerup",X),window.removeEventListener("pointercancel",X)}},[P]),{tts_supported:r,tts_playback:l,toggle_tts:B,stop_tts:A,voice_ptt_supported:o,voice_ptt_recording:P,voice_ptt_busy:G,start_voice_ptt_recording:K,stop_voice_ptt_recording:W}}function nm(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 gw(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 w_(e){const t=String(e||"").trim();if(!t)return"";const r=t.match(/^(?:\/bin\/)?(?:zsh|bash)\s+-lc\s+([\s\S]+)$/);return r?gw(String(r[1]||"").trim()):t}function _w(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 yw(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 w_(c)||c;if(l==="todo_list"&&d.length>0){const g=d.length,x=d.filter(T=>(T&&T.completed)===!0).length,v=d.find(T=>(T&&T.completed)!==!0),b=String((v==null?void 0:v.text)||"").trim(),j=g>1?` (+${g-1})`:"",S=g>0?` (${x}/${g})`:"",A=b?`todo: ${b}${j}`:`todo list (${g})`;return nm(`${A}${S}`,96)}return u?nm(u,96)||u:h?nm(h,96)||h:l||String(e||"").trim()||"event"}function Lp(e){const t=new Date(e),r=o=>String(o).padStart(2,"0");return`${r(t.getHours())}:${r(t.getMinutes())}`}function xw(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 Lp(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 Lp(h)}}return null}function Pp(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 b_(e){const t=e.disabled===!0,r=m.useMemo(()=>Pp(e.options||[]),[e.options]),o=m.useMemo(()=>Pp(e.value||[]),[e.value]),[l,u]=m.useState(!1),[c,d]=m.useState(""),h=m.useMemo(()=>{const x=c.trim().toLowerCase();return x?r.filter(v=>v.toLowerCase().includes(x)):r},[r,c]),_=m.useMemo(()=>new Set(o),[o]),g=typeof e.max_list_height_px=="number"?e.max_list_height_px:220;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(x=>!x),disabled:t||!r.length,"aria-expanded":l,children:[l?"Hide":"Select"," • ",o.length>0?`${o.length} of ${r.length}`:e.placeholder||"(none)"]}),s.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange(r.slice()),disabled:t||!r.length||o.length===r.length,title:"Select all",children:"All"}),s.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange([]),disabled:t||o.length===0,title:"Clear selection",children:"Clear"})]}),o.length>0?s.jsx("div",{className:"multi_select_chips",children:o.map(x=>s.jsxs("span",{className:"multi_select_chip",title:x,onClick:()=>{if(t)return;const v=new Set(_);v.delete(x),e.onChange(Array.from(v.values()))},children:[x,t?null:s.jsx("span",{className:"multi_select_chip_x",children:"×"})]},x))}):null,l?s.jsxs("div",{className:"multi_select_panel",children:[s.jsx("input",{className:"mono",value:c,onChange:x=>d(String(x.target.value||"")),placeholder:"filter…",disabled:t}),s.jsxs("div",{className:"multi_select_list",style:{maxHeight:`${g}px`},children:[h.map(x=>{const v=_.has(x);return s.jsxs("label",{className:`multi_select_item mono ${v?"checked":""}`,children:[s.jsx("input",{type:"checkbox",checked:v,disabled:t,onChange:b=>{const j=new Set(_);b.target.checked?j.add(x):j.delete(x),e.onChange(Array.from(j.values()))}}),s.jsx("span",{children:x})]},x)}),h.length?null:s.jsx("div",{className:"mono muted",children:"(no matches)"})]})]}):null]})}function Ai({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 sa(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 S_(e){return e.toUpperCase()}function Ip(e){return e==="bug"?"danger":e==="feature"?"ok":"task"}function j_(e){const t=String(e||"").trim();return t.replace(/^\[(bug|feature|task)\]\s*/i,"").trim()||t}function ia(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function rm(e){return typeof(e==null?void 0:e.parsed)=="boolean"?!!e.parsed:typeof e.item_id=="number"&&e.item_id>0}function vw(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 zm(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 ww(e){try{return JSON.parse(e)}catch{return null}}function Fp(e,t){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function bw(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 sm(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 $d(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 Rm(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 Sw=/^[a-zA-Z0-9_-]+$/;function Op(e){return Sw.test(String(e||"").trim())}async function jw(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 Rm(t)).slice(0,32)}`}function kw(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 Nw(e,t){const r=String(t.package_name).trim()||"{Package}",o=j_(String(t.title||"").trim()||"{Title}"),l=String(t.summary||"").trim(),u=Ou(t.task_type),c=`# {ID}-${r}: [${S_(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 il(e){return String(e||"").split(/\r?\n/).map(t=>t.trim()).filter(Boolean)}function Cw(e){const t=String(e.package_name||"").trim()||"{Package}",r=j_(String(e.title||"").trim()||"{Title}"),o=Ou(e.task_type),l=String(e.created_at||"").trim()||zm(),u=String(e.diagram||"").trim(),c=String(e.context||"").trim(),d=[];return d.push(`# {ID}-${t}: [${S_(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 Dp(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 Ew(e){var El;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=kw("(max-width: 900px)"),[_,g]=m.useState("list"),[x,v]=m.useState([]),[b,j]=m.useState(!1),[S,A]=m.useState(""),[T,B]=m.useState([]),[P,F]=m.useState(""),[G,se]=m.useState("all"),[Y,le]=m.useState(null),[oe,ge]=m.useState(""),[Re,Te]=m.useState(""),[K,W]=m.useState(!1),[X,V]=m.useState(""),[Q,k]=m.useState(!1),[M,D]=m.useState(""),[C,U]=m.useState(!1),[te,ne]=m.useState(""),[me,Me]=m.useState(!1),[Ne,Fe]=m.useState(""),[Be,_e]=m.useState([]),[ve,ae]=m.useState(""),[we,Pe]=m.useState(!1),[Ke,et]=m.useState(""),[Ae,Oe]=m.useState(!1),[lt,xe]=m.useState([]),[$t,xt]=m.useState(""),[on,cn]=m.useState(!1),[Xt,Se]=m.useState(""),[ue,ke]=m.useState(!1),[At,gt]=m.useState([]),qt=m.useRef(null),On=m.useRef(null),rn=String(e.voice_session_id||"").trim()||"abstractobserver_backlog_advisor",[un,vn]=m.useState(""),[jn,ur]=m.useState("");m.useEffect(()=>{(async()=>{try{const E=await jw(rn);vn(E)}catch{vn("")}})()},[rn]);const Zt=v_({gateway:r?t:null,session_id:rn,run_id:un,on_error:ur,on_transcript:E=>{const H=String(E||"").trim();H&&(xt(O=>{const fe=String(O||"");return fe.trim()?`${fe.trimEnd()}
85
- ${H}`:H}),window.setTimeout(()=>{var O;return(O=qt.current)==null?void 0:O.focus()},0))}}),Qn=m.useRef(null),[as,Un]=m.useState(!1),[de,je]=m.useState(""),[ut,it]=m.useState([]),[St,Rt]=m.useState(!1),[Wt,Dt]=m.useState(null),[gn,Ft]=m.useState("uat"),[yn,dn]=m.useState([]),[Gt,en]=m.useState(!1),[Vt,rt]=m.useState(!1),[kn,Rn]=m.useState(""),[Nn,Cn]=m.useState("uat"),[lr,Fr]=m.useState(!1),[jr,Or]=m.useState(""),[Hs,$s]=m.useState("framework"),[ao,Mi]=m.useState("task"),[ls,$n]=m.useState(""),[cs,Qr]=m.useState(!1),[Dr,pr]=m.useState(""),[st,jt]=m.useState(null),[fn,Br]=m.useState(!1),[kr,Nr]=m.useState(""),[gr,Lo]=m.useState([]),[Vs,Dn]=m.useState(!1),[dr,fr]=m.useState(""),[ze,qn]=m.useState(null),[Ye,Gn]=m.useState(null),[Zn,_r]=m.useState(!1),[Cr,Er]=m.useState(""),[zi,sn]=m.useState(""),[$r,qs]=m.useState(!1),[As,er]=m.useState(""),[mr,gi]=m.useState("events"),[Ln,Ur]=m.useState(""),[Ar,Zr]=m.useState(!1),[Wr,Ts]=m.useState(""),[es,ts]=m.useState(!1),[yr,Ri]=m.useState(!0),Hr=m.useRef(null),Li=m.useRef(!0),[Pi,Ms]=m.useState(!1),[Ii,ca]=m.useState(""),[zs,Gs]=m.useState([]),[Vr,Rs]=m.useState(""),[Fi,Po]=m.useState("events"),[Tr,R]=m.useState(""),[ie,Ee]=m.useState(!1),[Ie,De]=m.useState(""),[ot,Tt]=m.useState(!1),[Lt,Pt]=m.useState(""),Kt=m.useRef(null),[nt,xn]=m.useState("tasks"),[tn,mn]=m.useState(!1),[or,An]=m.useState(""),[Mr,bs]=m.useState(!1),[_i,Ls]=m.useState(""),[lo,gl]=m.useState("proposed"),[co,uo]=m.useState("feature"),[fo,Ia]=m.useState("framework"),[Ys,tc]=m.useState(""),[mo,_l]=m.useState(""),[Io,ua]=m.useState(""),[ho,Oi]=m.useState(""),[Ps,yl]=m.useState(!1),[da,po]=m.useState(""),[go,_o]=m.useState(""),[Fo,fa]=m.useState(""),[Fa,xl]=m.useState(""),[Oo,vl]=m.useState(""),[Di,yi]=m.useState(""),[nc,Oa]=m.useState(""),[wl,bl]=m.useState(""),[Do,Xs]=m.useState(""),[Is,rc]=m.useState(""),[Bo,Sl]=m.useState([]),[ma,Bi]=m.useState(!1),[zr,us]=m.useState(""),[ha,si]=m.useState([]),[pa,Ui]=m.useState(""),[ds,Wi]=m.useState(!1),En=c==="processing"||c==="failed"||c==="completed"&&nt==="runs";m.useEffect(()=>{h&&g("list")},[h,c,nt]),m.useEffect(()=>{if(!Ae)return;const E=H=>{H.key==="Escape"&&Oe(!1)};return window.addEventListener("keydown",E),setTimeout(()=>{var H;return(H=qt.current)==null?void 0:H.focus()},0),()=>window.removeEventListener("keydown",E)},[Ae]);const ns=m.useMemo(()=>{if(mr!=="events")return null;const E=String(Ln||""),H=E.split(/\r?\n/).filter(pe=>String(pe||"").trim().length>0),O=[];let fe=0;for(let pe=0;pe<H.length;pe+=1){const Ze=String(H[pe]||"").trim(),Ve=ww(Ze);if(!Ve||typeof Ve!="object"){fe+=1,O.push({idx:pe,type:"raw",payload:null,raw:Ze});continue}const Qe=String(Ve.type||Ve.event||"event");O.push({idx:pe,type:Qe,payload:Ve,raw:Ze})}return{total:H.length,bad:fe,events:O,raw:E}},[Ln,mr]),cr=m.useMemo(()=>{if(!ns)return null;let E=0,H=0,O=0,fe=0,pe=0;for(const Ve of ns.events){const Qe=Ve.payload,dt=Qe&&typeof Qe.usage=="object"?Qe.usage:null;dt&&(Number.isFinite(Number(dt.input_tokens))&&(E+=Number(dt.input_tokens)),Number.isFinite(Number(dt.cached_input_tokens))&&(H+=Number(dt.cached_input_tokens)),Number.isFinite(Number(dt.output_tokens))&&(O+=Number(dt.output_tokens)));const vt=Qe&&typeof Qe.item=="object"?Qe.item:null;vt&&String(vt.type||"").trim()==="command_execution"&&(fe+=1,String(vt.status||"").trim().toLowerCase()==="failed"&&(pe+=1))}return{has_tokens:E>0||O>0||H>0,input_tokens:E,cached_input_tokens:H,output_tokens:O,total_tokens:E+O,command_count:fe,command_fail_count:pe}},[ns]),tr=m.useMemo(()=>{const E=sm(ze==null?void 0:ze.created_at),H=sm(ze==null?void 0:ze.started_at),O=sm(ze==null?void 0:ze.finished_at),fe=Date.now(),pe=String((ze==null?void 0:ze.status)||"").trim().toLowerCase(),Ze=O??(pe==="running"?fe:null),Ve=O!=null,Qe=E!=null&&H!=null?Math.max(0,H-E):null,dt=H!=null&&Ze!=null?Math.max(0,Ze-H):null,vt=E!=null&&Ze!=null?Math.max(0,Ze-E):null,wn=!Ve&&E!=null?Math.max(0,fe-E):null;return{is_done:Ve,queue_delay_ms:Qe,run_ms:dt,total_ms:vt,age_ms:wn}},[ze==null?void 0:ze.created_at,ze==null?void 0:ze.started_at,ze==null?void 0:ze.finished_at,ze==null?void 0:ze.status]);function yo(E){return E==="processing"?"queued,running,awaiting_qa":E==="failed"?"failed":E==="completed"&&nt==="runs"?"completed,promoted":""}function ii(E,H){const O=E&&typeof E=="object"?E:{},fe=O.backlog&&typeof O.backlog=="object"?O.backlog:{},pe=O.result&&typeof O.result=="object"?O.result:{},Ze=O.executor&&typeof O.executor=="object"?O.executor:{},Ve=String(pe.last_message||"").trim(),Qe=String(O.target_model||Ze.model||"").trim(),dt=String(O.target_reasoning_effort||Ze.reasoning_effort||"").trim();return{request_id:H,status:String(O.status||"unknown"),created_at:O.created_at??null,started_at:O.started_at??null,finished_at:O.finished_at??null,backlog_relpath:fe.relpath??null,backlog_kind:fe.kind??null,backlog_filename:fe.filename??null,target_agent:O.target_agent??null,target_model:Qe||null,target_reasoning_effort:dt||null,executor_type:Ze.type??null,ok:typeof pe.ok=="boolean"?pe.ok:null,exit_code:typeof pe.exit_code=="number"?pe.exit_code:pe.exit_code??null,error:typeof pe.error=="string"?pe.error:pe.error??null,run_dir_relpath:O.run_dir_relpath??null,last_message:Ve?Ve.slice(0,1200):null}}async function xo(E){const H=E||(sa(c)?c:"planned"),O=await t.backlog_list(H);let fe=Array.isArray(O==null?void 0:O.items)?O.items:[];if(H==="planned")try{const pe=await t.backlog_exec_active_items({status:"queued,running,awaiting_qa",limit:1200}),Ze=Array.isArray(pe==null?void 0:pe.items)?pe.items:[],Ve=new Set(Ze.filter(dt=>String((dt==null?void 0:dt.kind)||"").trim()==="planned").map(dt=>String((dt==null?void 0:dt.filename)||"").trim()).filter(Boolean)),Qe=Array.from(Ve);Qe.sort(),B(Qe),Ve.size&&(fe=fe.filter(dt=>!Ve.has(String(dt.filename||"").trim())))}catch{B([])}else B([]);return v(fe),Y&&E===void 0&&!fe.some(pe=>pe.filename===Y.filename)&&(le(null),ge(""),Te(""),V(""),U(!1),ne(""),Fe("")),fe}async function fs(E){if(Vs)return gr;fr(""),Dn(!0);const H=E||c;try{const O=yo(H),fe=await t.backlog_exec_requests({status:O,limit:200}),pe=Array.isArray(fe==null?void 0:fe.requests)?fe.requests:[];if(Lo(pe),H==="processing"&&(ze!=null&&ze.request_id)&&!pe.some(Ze=>Ze.request_id===ze.request_id))try{const Ze=await t.backlog_exec_request(ze.request_id),Ve=Ze==null?void 0:Ze.payload,Qe=String((Ve==null?void 0:Ve.status)||"").trim().toLowerCase();Qe==="failed"?d("failed"):(Qe==="completed"||Qe==="promoted")&&(xn("runs"),d("completed")),(Qe==="failed"||Qe==="completed"||Qe==="promoted")&&(Gn(Ve),qn(ii(Ve,ze.request_id)))}catch{}if(ze!=null&&ze.request_id){const Ze=pe.find(Ve=>Ve.request_id===ze.request_id)||null;Ze&&qn(Ze)}return pe}catch(O){return Lo([]),fr(String((O==null?void 0:O.message)||O||"Failed to load backlog exec requests")),[]}finally{Dn(!1)}}async function rs(){if(r){if(En){await fs();return}if(!b){A(""),j(!0);try{await xo()}catch(E){v([]),A(String((E==null?void 0:E.message)||E||"Failed to load backlog list"))}finally{j(!1)}}}}m.useEffect(()=>{rs()},[c,nt,r]),m.useEffect(()=>{if(c!=="planned"){dn([]);return}const E=new Set(x.map(H=>String(H.filename||"").trim()).filter(Boolean));dn(H=>H.filter(O=>E.has(O)))},[c,x]),m.useEffect(()=>{tn&&r&&jl()},[tn,r]),m.useEffect(()=>{St&&r&&Uo()},[St,r]),m.useEffect(()=>{Gt&&r&&Uo()},[Gt,r]),m.useEffect(()=>{r&&En&&Uo()},[En,r]),m.useEffect(()=>{if(!r||!En)return;const H=setInterval(()=>void fs(c),c==="processing"?2e3:5e3);return()=>clearInterval(H)},[c,nt,r,En,ze==null?void 0:ze.request_id]),m.useEffect(()=>{r&&En&&ze!=null&&ze.request_id&&_n({request_id:ze.request_id,name:mr})},[ze==null?void 0:ze.request_id,mr,En,r]),m.useEffect(()=>{Li.current=!0},[ze==null?void 0:ze.request_id,mr]),m.useEffect(()=>{if(!Hr.current||!Li.current)return;const H=window.requestAnimationFrame(()=>{const O=Hr.current;O&&(O.scrollTop=O.scrollHeight)});return()=>window.cancelAnimationFrame(H)},[Ln,mr,ze==null?void 0:ze.request_id]),m.useEffect(()=>{if(!r||!En||!(ze!=null&&ze.request_id))return;const E=String(ze.status||"").trim().toLowerCase();if(E!=="running"&&yr!==!0)return;const O=setInterval(()=>{_n({request_id:ze.request_id,name:mr})},E==="running"?1500:2500);return()=>clearInterval(O)},[ze==null?void 0:ze.request_id,ze==null?void 0:ze.status,mr,En,r,yr]),m.useEffect(()=>{g("list"),En?Y&&(le(null),ge(""),Te(""),V(""),U(!1),ne(""),Fe(""),_e([]),ae(""),Pe(!1),et(""),Un(!1),je(""),it([])):ze&&(qn(null),Gn(null),Er(""),Ur(""),Ts(""),ts(!1))},[En]);async function Ks(E,H){const O=(H==null?void 0:H.kind)||(sa(c)?c:"planned");le(E),h&&g("detail"),U(!1),ne(""),Fe(""),_e([]),ae(""),Pe(!1),et(""),Un(!1),je(""),it([]),D(""),ge(""),Te(""),V(""),W(!0);try{const fe=await t.backlog_content(O,E.filename),pe=String((fe==null?void 0:fe.content)||"");ge(pe),Te(await Rm(pe))}catch(fe){V(String((fe==null?void 0:fe.message)||fe||"Failed to load backlog item"))}finally{W(!1)}}const ms=m.useMemo(()=>{const E=String(P||"").trim().toLowerCase(),H=String(G||"all").trim().toLowerCase();return x.filter(O=>H&&H!=="all"&&Ou(O.task_type)!==H?!1:E?`${O.item_id||""} ${O.package||""} ${O.title||""} ${O.task_type||""} ${O.summary||""} ${O.filename||""}`.toLowerCase().includes(E):!0)},[x,P,G]),Wn=m.useMemo(()=>{if(c!=="planned")return[];const E=new Set(yn.map(O=>String(O||"").trim()).filter(Boolean)),H=x.filter(O=>E.has(String(O.filename||"").trim()));return H.sort((O,fe)=>String(O.filename||"").localeCompare(String(fe.filename||""))),H},[x,yn,c]),hs=m.useMemo(()=>{const E=String(P||"").trim().toLowerCase();return E?gr.filter(H=>`${H.request_id||""} ${H.status||""} ${H.backlog_filename||""} ${H.backlog_relpath||""} ${H.target_model||""} ${H.target_reasoning_effort||""} ${H.error||""} ${H.last_message||""}`.toLowerCase().includes(E)):gr},[gr,P]);async function xi(E){if(Y&&sa(c)&&!Q){D(""),k(!0);try{await t.backlog_move({from_kind:c,to_kind:E,filename:Y.filename}),d(E),F("");const O=(await xo(E)).find(fe=>fe.filename===Y.filename)||null;le(O),ge(""),Te(""),V(""),O&&await Ks(O,{kind:E})}catch(H){D(String((H==null?void 0:H.message)||H||"Backlog move failed"))}finally{k(!1)}}}async function ga(){if(Y&&sa(c)&&!me){Fe(""),Me(!0);try{const E=await t.backlog_update({kind:c,filename:Y.filename,content:te,expected_sha256:Re||null}),H=te.endsWith(`
86
- `)?te:`${te}
87
- `;ge(H),Te(String((E==null?void 0:E.sha256)||"")),U(!1),await rs()}catch(E){Fe(String((E==null?void 0:E.message)||E||"Save failed"))}finally{Me(!1)}}}async function Uo(){if(!r)return null;if(fn)return st;Nr(""),Br(!0);try{const E=await t.backlog_exec_config();return jt(E),E}catch(E){const H=String((E==null?void 0:E.message)||E||"Failed to load backlog exec config");return Nr(H),jt(null),null}finally{Br(!1)}}async function Hi(E){if(r){qn(E),h&&g("detail"),Gn(null),Er(""),_r(!0),er(""),sn(""),Ur(""),Ts(""),ts(!1);try{const H=await t.backlog_exec_request(E.request_id);Gn((H==null?void 0:H.payload)??null)}catch(H){Er(String((H==null?void 0:H.message)||H||"Failed to load request"))}finally{_r(!1)}}}async function Ct(){if(!r)return;const E=String((ze==null?void 0:ze.request_id)||"").trim();if(!E||$r)return;const H=String(zi||"");if(!H.trim()){er("Feedback is required.");return}er(""),qs(!0);try{const O=await t.backlog_exec_feedback({request_id:E,feedback:H}),fe=(O==null?void 0:O.payload)??null;Gn(fe),fe&&qn(ii(fe,E)),sn(""),d("processing"),await fs("processing")}catch(O){er(String((O==null?void 0:O.message)||O||"Failed to send feedback"))}finally{qs(!1)}}async function _a(){if(!r)return;const E=String((ze==null?void 0:ze.request_id)||"").trim();if(E&&!$r){er(""),qs(!0);try{const H=await t.backlog_exec_promote({request_id:E,redeploy:!0}),O=(H==null?void 0:H.payload)??null;Gn(O),O&&qn(ii(O,E)),sn(""),xn("runs"),d("completed"),await fs("completed"),await fs("processing")}catch(H){er(String((H==null?void 0:H.message)||H||"Failed to promote to prod"));try{const O=await t.backlog_exec_request(E),fe=(O==null?void 0:O.payload)??null;Gn(fe),fe&&qn(ii(fe,E))}catch{}}finally{qs(!1)}}}async function qr(){if(!r)return;const E=String((ze==null?void 0:ze.request_id)||"").trim();if(E&&!$r){er(""),qs(!0);try{const H=await t.backlog_exec_deploy_uat({request_id:E}),O=(H==null?void 0:H.payload)??null;Gn(O),O&&qn(ii(O,E)),d("processing"),await fs("processing")}catch(H){er(String((H==null?void 0:H.message)||H||"Failed to deploy to UAT"))}finally{qs(!1)}}}async function _n(E){if(!r)return;const H=String((E==null?void 0:E.request_id)||(ze==null?void 0:ze.request_id)||"").trim();if(!H)return;const O=(E==null?void 0:E.name)||mr,fe=typeof(E==null?void 0:E.max_bytes)=="number"&&Number.isFinite(E.max_bytes)?Number(E.max_bytes):16e4;if(!Ar){Ts(""),Zr(!0);try{const pe=await t.backlog_exec_log_tail({request_id:H,name:String(O),max_bytes:fe});Ur(String((pe==null?void 0:pe.content)||"")),ts(!!(pe!=null&&pe.truncated))}catch(pe){Ts(String((pe==null?void 0:pe.message)||pe||"Failed to load logs"))}finally{Zr(!1)}}}function Rr(E){if(!E||typeof E!="object")return"";const H=E.$artifact;return typeof H=="string"?H.trim():""}async function vi(E){var fe;if(!r)return;const H=String((E==null?void 0:E.request_id)||Vr||"").trim();if(!H)return;const O=(E==null?void 0:E.name)||Fi;if(!ie){De(""),Ee(!0),Tt(!1);try{const pe=await t.backlog_exec_request(H),Ze=pe==null?void 0:pe.payload,Ve=(fe=Ze==null?void 0:Ze.result)==null?void 0:fe.ledger,Qe=String((Ve==null?void 0:Ve.ledger_run_id)||"").trim(),dt=Ve==null?void 0:Ve.log_artifacts,vt=dt?dt[String(O)]:null,wn=Rr(vt);if(Qe&&wn){const Ss=await(await t.download_run_artifact_content(Qe,wn)).text();R(Ss);return}const hn=await t.backlog_exec_log_tail({request_id:H,name:String(O),max_bytes:4e5});R(String((hn==null?void 0:hn.content)||"")),Tt(!!(hn!=null&&hn.truncated)),hn!=null&&hn.truncated&&De("Legacy fallback: log is truncated (this exec request predates ledger log capture).")}catch(pe){De(String((pe==null?void 0:pe.message)||pe||"Failed to load execution log"))}finally{Ee(!1)}}}async function vo(E){if(!r)return;const H=String(E||"").trim();if(H){Ms(!0),ca(H),Gs([]),Rs(""),Po("events"),R(""),De(""),Tt(!1),Pt("");try{const O=await t.backlog_exec_requests({status:"completed,failed",limit:500}),pe=(Array.isArray(O==null?void 0:O.requests)?O.requests:[]).filter(Ve=>String(Ve.backlog_filename||"").trim()===H);if(pe.sort((Ve,Qe)=>{const dt=String(Ve.finished_at||Ve.started_at||Ve.created_at||"");return String(Qe.finished_at||Qe.started_at||Qe.created_at||"").localeCompare(dt)}),Gs(pe),!pe.length){De("No execution logs found for this backlog item.");return}const Ze=String(pe[0].request_id||"").trim();Rs(Ze),await vi({request_id:Ze,name:"events"}),setTimeout(()=>{var Ve;return(Ve=Kt.current)==null?void 0:Ve.focus()},0)}catch(O){De(String((O==null?void 0:O.message)||O||"Failed to load execution logs"))}}}function oi(E){const H=String(Lt||"");if(!H)return;const O=String(Tr||"");if(!O)return;const fe=Kt.current;if(!fe)return;const pe=typeof fe.selectionStart=="number"?fe.selectionStart:0,Ze=typeof fe.selectionEnd=="number"?fe.selectionEnd:0;let Ve=-1;if(E===1){const Qe=Math.min(O.length,Math.max(0,Ze));Ve=O.indexOf(H,Qe),Ve<0&&Qe>0&&(Ve=O.indexOf(H,0))}else{const Qe=Math.min(O.length,Math.max(0,pe-1));Ve=O.lastIndexOf(H,Qe),Ve<0&&Qe<O.length-1&&(Ve=O.lastIndexOf(H,O.length))}if(!(Ve<0))try{fe.focus(),fe.setSelectionRange(Ve,Ve+H.length)}catch{}}async function sc(){if(Wt&&!Q){D(""),k(!0);try{const E=st||await Uo();if(!E){D("Could not load gateway exec config.");return}const H=E.runner_alive!==!1,O=E.codex_available!==!1;if(E.runner_enabled!==!0){D("Backlog exec runner is disabled on this gateway.");return}if(!H){D(E.runner_error?`Backlog exec runner not running: ${E.runner_error}`:"Backlog exec runner is not running.");return}if(!O){const dt=String(E.codex_bin||"codex");D(`Codex not found on gateway: ${dt}`);return}if(E.can_execute!==!0){D("Backlog exec is not available on this gateway (misconfigured executor).");return}const fe=await t.backlog_execute({kind:Wt.kind,filename:Wt.filename,execution_mode:gn}),pe=String((fe==null?void 0:fe.request_id)||"").trim();if(!pe)throw new Error("No request_id returned");Rt(!1),Dt(null),d("processing"),xn("tasks"),F(""),le(null),ge(""),Te(""),V(""),U(!1),ne(""),Fe(""),_e([]),ae(""),Pe(!1),et(""),Un(!1),je(""),it([]);const Ze={request_id:pe,status:"queued"};qn(Ze),Gn(null),Er("");const Qe=(await fs("processing")).find(dt=>dt.request_id===pe)||null;Qe?await Hi(Qe):await Hi(Ze)}catch(E){D(String((E==null?void 0:E.message)||E||"Execute failed"))}finally{k(!1)}}}async function Yt(){if(!Vt&&Wn.length){if(Wn.length<2){Rn("Select at least 2 planned backlog items.");return}Rn(""),rt(!0);try{const E=st||await Uo();if(!E){Rn("Could not load gateway exec config.");return}const H=E.runner_alive!==!1,O=E.codex_available!==!1;if(E.runner_enabled!==!0){Rn("Backlog exec runner is disabled on this gateway.");return}if(!H){Rn(E.runner_error?`Backlog exec runner not running: ${E.runner_error}`:"Backlog exec runner is not running.");return}if(!O){const dt=String(E.codex_bin||"codex");Rn(`Codex not found on gateway: ${dt}`);return}if(E.can_execute!==!0){Rn("Backlog exec is not available on this gateway (misconfigured executor).");return}const fe=await t.backlog_execute_batch({items:Wn.map(dt=>({kind:"planned",filename:dt.filename})),execution_mode:Nn}),pe=String((fe==null?void 0:fe.request_id)||"").trim();if(!pe)throw new Error("No request_id returned");en(!1),dn([]),d("processing"),xn("tasks"),F(""),le(null),ge(""),Te(""),V(""),U(!1),ne(""),Fe("");const Ze={request_id:pe,status:"queued"};qn(Ze),Gn(null),Er("");const Qe=(await fs("processing")).find(dt=>dt.request_id===pe)||null;Qe?await Hi(Qe):await Hi(Ze)}catch(E){Rn(String((E==null?void 0:E.message)||E||"Execute batch failed"))}finally{rt(!1)}}}async function ic(){if(cs)return;if(Wn.length<2){pr("Select at least 2 planned backlog items.");return}const E=jr.trim();if(!E){pr("Title is required.");return}const H=Hs.trim().toLowerCase();if(!H){pr("Package is required.");return}pr(""),Qr(!0);try{const O=await t.backlog_merge({kind:"planned",package:H,title:E,task_type:ao,summary:ls.trim()||null,items:Wn.map(Qe=>({kind:"planned",filename:Qe.filename}))}),fe=String((O==null?void 0:O.kind)||"").trim(),pe=String((O==null?void 0:O.filename)||"").trim();if(!fe||!pe)throw new Error("Merge succeeded but returned an invalid response");Fr(!1),Or(""),$n(""),dn([]),d(fe),F("");const Ve=(await xo(fe)).find(Qe=>Qe.filename===pe)||null;Ve&&await Ks(Ve,{kind:fe})}catch(O){pr(String((O==null?void 0:O.message)||O||"Merge failed"))}finally{Qr(!1)}}function Wo(){gl("proposed"),uo("feature"),Ia("framework"),tc(""),_l(""),ua(""),Oi(""),yl(!1),po(""),_o(""),fa(""),xl(""),vl(""),yi(""),Oa(""),bl(""),Xs(""),rc(""),Sl([]),Bi(!1),us(""),si([]),Ui(""),Wi(!1)}async function oc(){const E=String(or||"").trim();if(E)return E;if(Mr)return"";Ls(""),bs(!0);try{const H=await t.backlog_template(),O=String((H==null?void 0:H.content)||"");return An(O),O}catch(H){return Ls(String((H==null?void 0:H.message)||H||"Failed to load backlog template")),""}finally{bs(!1)}}async function jl(E){if(!r)return;const H=(E==null?void 0:E.force)===!0;if(!H&&Io.trim())return;const O=await oc();if(!O.trim())return;const fe=String(fo||"").trim().toLowerCase()||"{Package}",pe=zm(),Ze=Nw(O,{package_name:fe,title:Ys,task_type:co,summary:mo,created_at:pe});ua(Ve=>H||!String(Ve||"").trim()?Ze:Ve)}function kl(E){if(Io.trim()&&!globalThis.confirm("Overwrite the current draft markdown with a guided draft?"))return;const H=String(fo||"").trim().toLowerCase()||"{Package}",O=zm(),fe=Cw({package_name:H,title:Ys,task_type:co,summary:mo,diagram:da,context:go,included:il(Fo),excluded:il(Fa),plan:il(Oo),dependencies:il(Di),acceptance:il(nc),tests_a:il(wl),tests_b:il(Do),tests_c:il(Is),created_at:O,attachments:[]});ua(fe)}async function ac(){var H;if(Ps)return;Oi(""),yl(!0),us("");let E="";try{const O=String(fo||"").trim().toLowerCase(),fe=await t.backlog_create({kind:lo,package:O,title:Ys,task_type:co,summary:mo||null,content:Io||null}),pe=String((fe==null?void 0:fe.kind)||"").trim(),Ze=String((fe==null?void 0:fe.filename)||"").trim(),Ve=[...Bo||[]];if(pe&&Ze&&Ve.length){Bi(!0);try{const vt=[];for(const wn of Ve){const hn=await t.backlog_upload_attachment({kind:pe,filename:Ze,file:wn,overwrite:!1}),Tn=String(((H=hn==null?void 0:hn.stored)==null?void 0:H.relpath)||"").trim();Tn&&vt.push(Tn)}if(vt.length){const wn=await t.backlog_content(pe,Ze),hn=String((wn==null?void 0:wn.content)||""),Tn=await Rm(hn),Ss=Dp(hn,vt);await t.backlog_update({kind:pe,filename:Ze,content:Ss,expected_sha256:Tn||null})}}catch(vt){E=String((vt==null?void 0:vt.message)||vt||"Attachment upload failed"),us(E)}finally{Bi(!1)}}mn(!1),Wo(),pe&&d(pe);const dt=(await xo(pe)).find(vt=>vt.filename===Ze)||null;dt&&await Ks(dt,{kind:pe}),E&&D(`Created task, but attachments failed: ${E}`)}catch(O){Oi(String((O==null?void 0:O.message)||O||"Create failed"))}finally{yl(!1)}}async function Vi(){if(ds)return;Oi("");const E=pa.trim();if(!E)return;if(!Ys.trim()){Oi("Title is required before using AI assist.");return}const H=String(fo||"").trim().toLowerCase();if(!H){Oi("Package is required before using AI assist.");return}const O={id:Kr(),role:"user",content:E,ts:new Date().toISOString()},fe=[...ha,O];si(fe),Ui(""),Wi(!0);try{const pe=await t.backlog_assist({kind:lo,package:H,title:Ys,summary:mo||null,draft_markdown:Io||null,messages:fe.map(Qe=>({role:Qe.role,content:Qe.content})),provider:o||null,model:l||null}),Ze=String((pe==null?void 0:pe.reply)||"").trim(),Ve=String((pe==null?void 0:pe.draft_markdown)||"").trim();Ze&&si(Qe=>[...Qe,{id:Kr(),role:"assistant",content:Ze,ts:new Date().toISOString()}]),Ve&&ua(Ve)}catch(pe){Oi(String((pe==null?void 0:pe.message)||pe||"AI assist failed"))}finally{Wi(!1)}}async function Nl(E){var H;if(Y&&sa(c)&&E.length&&r&&!as){je(""),Un(!0);try{const O=[];for(const fe of E){const pe=await t.backlog_upload_attachment({kind:c,filename:Y.filename,file:fe,overwrite:!1}),Ze=String(((H=pe==null?void 0:pe.stored)==null?void 0:H.relpath)||"").trim();Ze&&O.push(Ze)}O.length&&(it(fe=>[...O,...fe].slice(0,12)),ne(fe=>Dp(String(fe||""),O)))}catch(O){je(String((O==null?void 0:O.message)||O||"Attachment upload failed"))}finally{Un(!1)}}}async function ya(){if(we||!Y||!sa(c)||!r)return;if(!(c==="planned"||c==="proposed"||c==="recurrent"||c==="deprecated")){et("Maintenance chat is only available for planned/proposed/recurrent/deprecated items.");return}et("");const H=ve.trim();if(!H)return;const O={id:Kr(),role:"user",content:H,ts:new Date().toISOString()},fe=[...Be,O];_e(fe),ae(""),Pe(!0);try{const pe=vw(Y);if(!pe)throw new Error("Backlog item missing package (cannot maintain)");const Ze=await t.backlog_maintain({kind:c,filename:Y.filename,package:pe,title:Y.title||Y.filename,summary:Y.summary||null,draft_markdown:te||null,messages:fe.map(dt=>({role:dt.role,content:dt.content})),provider:o||null,model:l||null}),Ve=String((Ze==null?void 0:Ze.reply)||"").trim(),Qe=String((Ze==null?void 0:Ze.draft_markdown)||"").trim();Ve&&_e(dt=>[...dt,{id:Kr(),role:"assistant",content:Ve,ts:new Date().toISOString()}]),Qe&&ne(Qe)}catch(pe){et(String((pe==null?void 0:pe.message)||pe||"Maintenance AI failed"))}finally{Pe(!1)}}async function Zc(){if(on||!r)return;if(Zt.voice_ptt_busy){ur("Wait for transcription to finish.");return}Se(""),ur("");const E=$t.trim();if(!E)return;const H={id:Kr(),role:"user",content:E,ts:new Date().toISOString()},O=[...lt,H];xe(O),xt(""),cn(!0);try{const fe=await t.backlog_advisor({messages:O.map(Qe=>({role:Qe.role,content:Qe.content})),provider:o||null,model:l||null,agent:u||null,include_trace:ue,focus_kind:c,focus_type:G}),pe=ue&&Array.isArray(fe==null?void 0:fe.tool_trace)?fe.tool_trace:[],Ze=String((fe==null?void 0:fe.run_id)||"").trim(),Ve=String((fe==null?void 0:fe.reply)||"").trim();if(ue&&pe.length){const Qe={id:Kr(),role:"system",title:"Tool execution",level:"info",ts:new Date().toISOString(),content:JSON.stringify({run_id:Ze||null,tool_trace:pe},null,2)};xe(dt=>[...dt,Qe])}Ve&&xe(Qe=>[...Qe,{id:Kr(),role:"assistant",content:Ve,ts:new Date().toISOString()}])}catch(fe){Se(String((fe==null?void 0:fe.message)||fe||"Backlog advisor failed"))}finally{cn(!1)}}async function eu(E){var Ve;const H=Array.from(E||[]);if(!H.length)return;const O=[],fe=[],pe=6,Ze=2e4;for(const Qe of H.slice(0,pe)){const dt=String((Qe==null?void 0:Qe.name)||"").trim()||"attachment";fe.push(dt);try{const vt=await Qe.text(),wn=vt.length>Ze?`${vt.slice(0,Ze)}
88
- …(truncated)…
89
- `:vt;O.push(`[attached file: ${dt}]
90
-
91
- \`\`\`
92
- ${wn}
93
- \`\`\``)}catch{O.push(`[attached file: ${dt}] (unreadable in browser)`)}}gt(Qe=>[...fe,...Qe].slice(0,12)),xt(Qe=>{const dt=String(Qe||"").trim(),vt=O.join(`
94
-
95
- `);return dt?`${dt}
96
-
97
- ${vt}`:vt});try{(Ve=qt.current)==null||Ve.focus()}catch{}}function xa(E){const H=String(E.id||E.ts||"").trim(),O=String(E.content||"").trim();!H||!O||(ur(""),Zt.toggle_tts(H,O))}function tu(E){const H=String(E.id||E.ts||"").trim(),O=Zt.tts_playback;return!H||!O.key||O.key!==H?"idle":O.status}function Da(){Zt.stop_voice_ptt_recording(),Zt.stop_tts()}const va=Y&&rm(Y)?Ou(Y.task_type):null,In=!!(Y&&c==="planned"),Cl=!!(Y&&c==="proposed"),Yn=!!(Y&&c==="planned"),Ho=!!(Y&&sa(c)&&c!=="deprecated"&&c!=="trash"),Ba=!!(Y&&sa(c)&&c!=="trash"),Vo=!!(Y&&c==="trash"),wa=!!(Y&&c==="deprecated"),qo=!h||_==="list",Go=!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&&st?s.jsxs("span",{className:"badge",style:{background:st.runner_alive?"rgba(34, 197, 94, 0.14)":"rgba(239, 68, 68, 0.14)",borderColor:st.runner_alive?"rgba(34, 197, 94, 0.35)":"rgba(239, 68, 68, 0.35)"},title:st.codex_model||st.codex_reasoning_effort?`codex: ${String(st.codex_model||"").trim()||"?"}${st.codex_reasoning_effort?` (reasoning ${st.codex_reasoning_effort})`:""}`:void 0,children:["exec worker ",st.runner_alive?"on":"off",!h&&st.codex_model?` · ${st.codex_model}`:"",!h&&st.codex_reasoning_effort?` · ${st.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:()=>mn(!0),disabled:!r,title:"New task","aria-label":"New task",children:[s.jsx(Fn,{name:"plus",size:16}),s.jsx("span",{className:"btn_label",children:"New"})]}),s.jsxs("button",{className:`btn btn_icon ${(En?Vs:b)?"is_loading":""}`,onClick:()=>void rs(),disabled:!r||(En?Vs:b),title:"Refresh","aria-label":"Refresh",children:[s.jsx(Fn,{name:"refresh",size:16}),s.jsx("span",{className:"btn_label",children:En?Vs?"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:P,onChange:E=>F(E.target.value),placeholder:En?"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 ${nt==="tasks"?"active":""}`,onClick:()=>xn("tasks"),children:"Tasks"}),s.jsx("button",{className:`tab ${nt==="runs"?"active":""}`,onClick:()=>xn("runs"),children:"Runs"})]}),s.jsxs("div",{className:"backlog_completed_meta_row",children:[En?null:s.jsx("div",{className:"field backlog_type_filter_field",children:s.jsxs("select",{value:G,onChange:E=>se(E.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:En?`${hs.length}/${gr.length}`:`${ms.length}/${x.length}`})]})]})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"field backlog_search_field",children:s.jsx("input",{value:P,onChange:E=>F(E.target.value),placeholder:En?"Search exec requests (id/status/backlog/error…)":"Search backlog (id/title/package/filename…)"})}),En?null:s.jsx("div",{className:"field backlog_type_filter_field",children:s.jsxs("select",{value:G,onChange:E=>se(E.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:En?`${hs.length}/${gr.length}`:`${ms.length}/${x.length}`})]})}),!En&&c==="planned"&&T.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:[T.length," planned item",T.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,!En&&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(b_,{options:x.map(E=>String(E.filename||"").trim()).filter(Boolean),value:yn,disabled:!r||b,placeholder:"(no items selected)",onChange:E=>dn(E)})}),s.jsxs("div",{className:"row",style:{gap:"8px",marginTop:"10px",flexWrap:"wrap"},children:[s.jsx("button",{className:"btn primary",disabled:!r||Wn.length<2,onClick:()=>{Rn(""),Cn("uat"),en(!0)},children:"Execute batch"}),s.jsx("button",{className:"btn",disabled:!r||Wn.length<2,onClick:()=>{const E=(()=>{const H=Wn.map(fe=>String(fe.package||"").trim()).filter(Boolean);if(!H.length)return"framework";const O=H[0];return H.every(fe=>fe===O)?O:"framework"})();$s(E),Mi("task"),Or(`Master backlog (${Wn.length} items)`),$n(""),pr(""),Fr(!0)},children:"Merge → master"})]})]})]}):null,!En&&S?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:S}):null,En&&dr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:dr}):null,!En&&!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,En&&!dr&&!Vs&&!gr.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:[qo?s.jsx("div",{className:"card inbox_sidebar",children:s.jsx("div",{className:"inbox_list",children:En?hs.length?hs.map(E=>{const H=(ze==null?void 0:ze.request_id)===E.request_id,O=String(E.status||"").trim().toLowerCase(),fe=O==="completed"||O==="promoted"?"ok":O==="failed"?"danger":O==="running"?"info":O==="queued"||O==="awaiting_qa"?"warn":"muted";return s.jsxs("button",{className:`inbox_item ${H?"active":""}`,onClick:()=>void Hi(E),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`chip ${fe} mono`,children:O||"unknown"}),s.jsx("span",{className:"item_title_text",children:ia(E.backlog_filename||E.backlog_relpath||"request",56)})]}),s.jsx("div",{className:"inbox_item_meta mono muted",children:ia(E.request_id,80)}),E.error?s.jsx("div",{className:"inbox_item_meta mono",style:{color:"rgba(239, 68, 68, 0.9)"},children:ia(E.error,180)}):null]},`exec:${E.request_id}`)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No requests."}):ms.length?ms.map(E=>{const H=(Y==null?void 0:Y.filename)===E.filename,O=rm(E),fe=Ou(E.task_type);return s.jsxs("button",{className:`inbox_item ${H?"active":""}`,onClick:()=>void Ks(E),children:[s.jsxs("div",{className:"inbox_item_title",children:[O?null:s.jsx("span",{className:"pill unparsed",children:"unparsed"}),E.item_id?s.jsxs("span",{className:"chip info mono",children:["#",E.item_id]}):null,O?s.jsx("span",{className:`chip ${Ip(fe)} mono`,children:fe}):null,E.package?s.jsx("span",{className:"chip muted mono",children:E.package}):null,s.jsx("span",{className:"item_title_text",children:ia(E.title||E.filename,56)})]}),E.summary?s.jsx("div",{className:"item_summary_text",children:s.jsx(oo,{text:bw(E.summary),className:"backlog_summary_md"})}):null,s.jsx("div",{className:"inbox_item_meta mono muted",children:E.filename})]},`${c}:${E.filename}`)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No items."})})}):null,Go?s.jsx("div",{className:"card inbox_viewer",children:En?ze?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:ze.backlog_filename||ze.backlog_relpath||ze.request_id}),(()=>{const E=String(ze.status||"").trim().toLowerCase(),H=E==="completed"||E==="promoted"?"ok":E==="failed"?"danger":E==="running"?"info":E==="queued"||E==="awaiting_qa"?"warn":"muted";return s.jsx("span",{className:`chip mono ${H}`,children:E||"unknown"})})(),s.jsx("span",{className:"chip mono muted",children:ia(ze.request_id,16)})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[h?s.jsx("button",{className:"btn",onClick:()=>g("list"),disabled:Zn,children:"Back"}):null,s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(ze.request_id),disabled:Zn,"aria-label":"Copy request id",title:"Copy request id",children:[s.jsx(Fn,{name:"copy",size:16}),h?null:"Copy request id"]}),ze.backlog_relpath?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(ze.backlog_relpath||""),disabled:Zn,"aria-label":"Copy backlog path",title:"Copy backlog path",children:[s.jsx(Fn,{name:"copy",size:16}),h?null:"Copy backlog path"]}):null,(()=>{var O;const H=(Array.isArray((O=Ye==null?void 0:Ye.backlog_queue)==null?void 0:O.items)?Ye.backlog_queue.items:[]).map(fe=>String((fe==null?void 0:fe.relpath)||"").trim()).filter(Boolean);return H.length?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(H.join(`
98
- `)),disabled:Zn,"aria-label":"Copy backlog paths",title:"Copy backlog paths",children:[s.jsx(Fn,{name:"copy",size:16}),h?null:"Copy backlog paths"]}):null})(),ze.run_dir_relpath?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(ze.run_dir_relpath||""),disabled:Zn,"aria-label":"Copy run dir",title:"Copy run dir",children:[s.jsx(Fn,{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:[ze.created_at?`created ${new Date(ze.created_at).toLocaleString()}`:"",ze.started_at?` • started ${new Date(ze.started_at).toLocaleString()}`:"",ze.finished_at?` • finished ${new Date(ze.finished_at).toLocaleString()}`:""]}),ze.error?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ze.error}):null,Cr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Cr}):null,s.jsx("div",{style:{marginTop:"12px"},children:Zn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):s.jsxs(s.Fragment,{children:[(()=>{if(String(ze.status||"").trim().toLowerCase()!=="awaiting_qa")return null;const H=String((Ye==null?void 0:Ye.execution_mode)||"").trim().toLowerCase()||"uat",O=String((Ye==null?void 0:Ye.candidate_relpath)||"").trim(),fe=String((Ye==null?void 0:Ye.candidate_patch_relpath)||"").trim(),pe=String((Ye==null?void 0:Ye.candidate_manifest_relpath)||"").trim(),Ze=String((Ye==null?void 0:Ye.uat_current_relpath)||"").trim(),Ve=String((Ye==null?void 0:Ye.uat_lock_owner_request_id)||"").trim(),Qe=!!(Ye!=null&&Ye.uat_lock_acquired),dt=!!(Ye!=null&&Ye.uat_pending),vt=(Ye==null?void 0:Ye.uat_deploy)??null,wn=String((Ye==null?void 0:Ye.uat_deploy_error)||"").trim(),hn=Ye==null?void 0:Ye.attempt,Tn=(Ye==null?void 0:Ye.promotion_report)??null,Ss=!!(Tn!=null&&Tn.blocked),ps=String((Tn==null?void 0:Tn.reason)||"").trim(),qi=Array.isArray(Tn==null?void 0:Tn.conflicts)?(Tn==null?void 0:Tn.conflicts).slice(0,8):[],Js=typeof(Tn==null?void 0:Tn.conflicts_total)=="number"?Number(Tn.conflicts_total):qi.length;let gs="",_s="";const xr=[];try{const Hn=vt==null?void 0:vt.processes;if(Hn&&typeof Hn=="object"&&!Array.isArray(Hn)){typeof Hn.status=="string"&&(gs=String(Hn.status||"").trim()),typeof Hn.reason=="string"&&(_s=String(Hn.reason||"").trim());for(const[$l,ba]of Object.entries(Hn)){if(!ba||typeof ba!="object"||Array.isArray(ba))continue;const ai=ba.probe;!ai||typeof ai!="object"||ai.ok===!1&&xr.push(String($l))}}}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:"})," ",H]}),typeof hn=="number"?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"attempt:"})," ",hn]}):null,O?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"candidate:"})," ",O]}):null,pe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"manifest:"})," ",pe]}):null,fe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"patch:"})," ",fe]}):null,Ze?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"uat_current:"})," ",Ze]}):null,H==="uat"&&Ve?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"uat_lock:"})," ",Ve,Qe?" (owned)":dt?" (pending)":""]}):null]}),H==="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."}):H==="uat"&&dt&&Ve&&!Qe?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 ",ia(Ve,16),". Click “Restart UAT” to switch the shared UAT stack to this request."]}):H==="uat"&&Qe?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`"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"UAT is intentionally short-lived: promoting or iterating will stop the shared UAT services."}),xr.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 ",xr.slice(0,4).join(", "),xr.length>4?"…":"",". Click “Restart UAT” and check process logs."]}):null]}):null,H==="uat"&&gs==="skipped"&&_s==="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,wn?s.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT deploy failed: ",wn]}):null,Ss&&ps==="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 (",Js," conflict",Js===1?"":"s","). Use “Iterate” to re-run the request on top of current prod, or resolve conflicts manually.",qi.length?s.jsx("ul",{style:{marginTop:"8px",paddingLeft:"18px"},children:qi.map((Hn,$l)=>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:${$l}`))}):null]}):null,s.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:[fe?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(fe),disabled:$r,children:[s.jsx(Fn,{name:"copy",size:16}),"Copy patch path"]}):null,pe?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(pe),disabled:$r,children:[s.jsx(Fn,{name:"copy",size:16}),"Copy manifest path"]}):null,O?s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(O),disabled:$r,children:[s.jsx(Fn,{name:"copy",size:16}),"Copy candidate path"]}):null]}),s.jsx("div",{style:{marginTop:"10px"},children:s.jsx("textarea",{value:zi,onChange:Hn=>sn(Hn.target.value),rows:3,placeholder:"QA feedback (what to change / fix)…",style:{width:"100%",resize:"vertical",minHeight:"72px"},disabled:$r})}),As?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:As}):null,s.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"8px",marginTop:"10px"},children:[H==="uat"?s.jsx("button",{className:"btn",onClick:()=>void qr(),disabled:$r,children:"Restart UAT"}):null,s.jsx("button",{className:"btn primary",onClick:()=>void _a(),disabled:$r,children:H==="inplace"?"Approve (finalize)":"Approve → promote to prod"}),s.jsx("button",{className:"btn",onClick:()=>void Ct(),disabled:$r,children:"Iterate (send feedback)"})]}),s.jsx("div",{className:"section_divider"})]})})(),(()=>{if(String(ze.status||"").trim().toLowerCase()!=="promoted")return null;const H=String((Ye==null?void 0:Ye.promoted_at)||"").trim(),O=(Ye==null?void 0:Ye.promotion)??null,fe=(Ye==null?void 0:Ye.promotion_report)??null,pe=typeof(O==null?void 0:O.copied)=="number"?Number(O==null?void 0:O.copied):null,Ze=typeof(O==null?void 0:O.deleted)=="number"?Number(O==null?void 0:O.deleted):null,Ve=String((O==null?void 0:O.manifest_sha256)||"").trim(),Qe=String((O==null?void 0:O.mode)||"").trim(),dt=(fe==null?void 0:fe.redeploy)??null,vt=String((dt==null?void 0:dt.status)||"").trim(),wn=String((dt==null?void 0:dt.reason)||"").trim(),hn=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:[H?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"promoted_at:"})," ",new Date(H).toLocaleString()]}):null,Qe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"mode:"})," ",Qe]}):null,Ve?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"manifest_sha256:"})," ",Ve.slice(0,16),"…"]}):null,pe!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"files_copied:"})," ",pe]}):null,Ze!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"files_deleted:"})," ",Ze]}):null,vt?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"redeploy:"})," ",vt,wn?` (${wn})`:""]}):null,hn?s.jsxs("div",{style:{color:"rgba(239, 68, 68, 0.9)"},children:[s.jsx("span",{className:"mono muted",children:"redeploy_error:"})," ",hn]}):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:"})," ",ze.status||"unknown"]}),ze.executor_type?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"executor:"})," ",ze.executor_type]}):null,ze.target_agent?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"target_agent:"})," ",ze.target_agent]}):null,ze.target_model?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"model:"})," ",ze.target_model,ze.target_reasoning_effort?` (reasoning ${ze.target_reasoning_effort})`:""]}):null,ze.exit_code!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"exit_code:"})," ",String(ze.exit_code)]}):null,ze.run_dir_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"run_dir:"})," ",ze.run_dir_relpath]}):null,tr.age_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"age:"})," ",$d(tr.age_ms)]}):null,tr.queue_delay_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"queue_delay:"})," ",$d(tr.queue_delay_ms)]}):null,tr.run_ms!=null?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"run_time:"})," ",$d(tr.run_ms)]}):null,tr.total_ms!=null&&tr.is_done?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"total_time:"})," ",$d(tr.total_ms)]}):null,cr?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"commands:"})," ",cr.command_count.toLocaleString(),cr.command_fail_count?` (${cr.command_fail_count.toLocaleString()} failed)`:""]}):null,s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"tokens:"})," ",cr!=null&&cr.has_tokens?s.jsxs(s.Fragment,{children:["in ",cr.input_tokens.toLocaleString(),cr.cached_input_tokens?` (cached ${cr.cached_input_tokens.toLocaleString()})`:"",", out ",cr.output_tokens.toLocaleString(),", total ",cr.total_tokens.toLocaleString()]}):s.jsx("span",{className:"mono muted",children:mr==="events"?"n/a":'select "events"'})]})]}),(()=>{const E=Ye&&typeof Ye.promotion=="object"?Ye.promotion:null;if(!E)return null;const H=Ye&&typeof Ye.promotion_report=="object"?Ye.promotion_report:null,O=String((E==null?void 0:E.mode)||"").trim(),fe=(E==null?void 0:E.copied)!=null?String(E.copied):"",pe=(E==null?void 0:E.deleted)!=null?String(E.deleted):"",Ze=String((E==null?void 0:E.manifest_sha256)||"").trim(),Ve=H&&typeof H.redeploy=="object"?H.redeploy:null,Qe=Ve?String(Ve.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:[O?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"mode:"})," ",O]}):null,fe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"copied:"})," ",fe," files"]}):null,pe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"deleted:"})," ",pe," files"]}):null,Ze?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:"})," ",Ze.slice(0,16),"…"]}),s.jsxs("button",{className:"btn btn_icon",onClick:()=>Cs(Ze),disabled:$r,children:[s.jsx(Fn,{name:"copy",size:16}),"Copy sha"]})]}):null,Qe?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"redeploy:"})," ",Qe]}):null]})]})})(),(()=>{var O;const H=(Array.isArray((O=Ye==null?void 0:Ye.backlog_queue)==null?void 0:O.items)?Ye.backlog_queue.items:[]).map(fe=>String((fe==null?void 0:fe.relpath)||"").trim()).filter(Boolean);return H.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:H.map(fe=>s.jsx("div",{children:fe},`bq:${fe}`))})]}):null})(),(()=>{var H;const E=String(((H=Ye==null?void 0:Ye.result)==null?void 0:H.last_message)||ze.last_message||"").trim();return E?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:E})]}):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:mr,onChange:E=>gi(E.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 ${yr?"primary":""}`,onClick:()=>Ri(E=>!E),disabled:!(ze!=null&&ze.request_id),children:yr?"Auto on":"Auto off"}),s.jsxs("button",{className:`btn btn_icon ${Ar?"is_loading":""}`,onClick:()=>void _n(),disabled:Ar||!(ze!=null&&ze.request_id),"aria-label":"Refresh logs",title:"Refresh logs",children:[s.jsx(Fn,{name:"refresh",size:16}),h?null:Ar?"Loading…":"Refresh"]})]})]}),Wr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Wr}):null,!Wr&&es?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"(tail truncated)"}):null,mr==="events"&&ns?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"exec_log_scroll",ref:Hr,onScroll:E=>{Li.current=Fp(E.currentTarget,12)},children:ns.events.length===0?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"(no events yet)"}):ns.events.map(E=>{var _s;const H=E.payload,O=H&&typeof H.item=="object"?H.item:null,fe=O?String(O.type||"").trim():"",pe=O?String(O.id||"").trim():"",Ze=H?String(H.thread_id||"").trim():"",Ve=_w(E.type,H),Qe=Ve==="error"?"danger":Ve==="ok"?"ok":"info",dt=xw(H),vt=yw(E.type,H),wn=String((H==null?void 0:H.message)||((_s=H==null?void 0:H.error)==null?void 0:_s.message)||"").trim(),hn=O?String(O.text||"").trim():"",Tn=O?String(O.command||"").trim():"",Ss=O?String(O.status||"").trim():"",ps=O&&O.exit_code!=null?String(O.exit_code):"",qi=O?String(O.aggregated_output||"").trim():"",Js=O&&Array.isArray(O.items)?O.items:[],gs=Tn?w_(Tn)||Tn:"";return s.jsxs("details",{className:`exec_event ${Ve}`,children:[s.jsxs("summary",{className:"exec_event_summary",children:[dt?s.jsx("span",{className:"exec_event_when mono muted",children:dt}):null,dt?s.jsx("span",{className:"exec_event_sep mono muted",children:"|"}):null,s.jsx("span",{className:"exec_event_main mono",title:vt,children:vt}),s.jsx("span",{className:`chip mono ${Qe}`,children:fe||E.type}),ps?s.jsxs("span",{className:"mono muted exec_event_right",children:["exit=",ps]}):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:E.type}),pe?s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:pe}):null,Ze?s.jsxs("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["thread ",ia(Ze,18)]}):null]}),wn?s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:wn}):null,Js&&Js.length>0?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Js.map((xr,Hn)=>s.jsxs("div",{children:[(xr&&xr.completed)===!0?"✓":"○"," ",String((xr==null?void 0:xr.text)||"").trim()]},`${E.idx}-todo-${Hn}`))}):null,Tn?s.jsxs("div",{style:{marginTop:"8px"},children:[s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["command_execution ",Ss?`(${Ss})`:""," ",ps?`exit=${ps}`:""]}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"6px"},children:gs})]}):null,qi?s.jsxs("details",{style:{marginTop:"8px"},children:[s.jsxs("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:["output (",qi.length.toLocaleString()," chars)"]}),s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:qi})]}):null,hn?s.jsx("div",{style:{marginTop:"8px"},children:s.jsx(oo,{text:hn})}):null]})]},`${pe||E.idx}-${E.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",ns.bad?` (${ns.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:ns.raw||""})]})]}):s.jsx("div",{className:"exec_log_scroll",ref:Hr,onScroll:E=>{Li.current=Fp(E.currentTarget,12)},children:s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)"},children:(()=>{var H;if(String(Ln||"").trim())return Ln;if(mr==="last_message"){const O=String(((H=Ye==null?void 0:Ye.result)==null?void 0:H.last_message)||ze.last_message||"").trim();if(O)return O;const fe=String(ze.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 mr==="stderr"?"(no stderr yet)":"(no logs yet)"})()})}),(El=Ye==null?void 0:Ye.result)!=null&&El.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:[Ye.result.logs.events_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"events:"})," ",Ye.result.logs.events_relpath]}):null,Ye.result.logs.stderr_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"stderr:"})," ",Ye.result.logs.stderr_relpath]}):null,Ye.result.logs.last_message_relpath?s.jsxs("div",{children:[s.jsx("span",{className:"mono muted",children:"last_message:"})," ",Ye.result.logs.last_message_relpath]}):null]})]}):null]})})]}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an exec request."}):Y?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:Y.title||Y.filename}),Y.item_id?s.jsxs("span",{className:"chip mono muted",children:["#",Y.item_id]}):null,Y.package?s.jsx("span",{className:"chip mono muted",children:Y.package}):null,va?s.jsx("span",{className:`chip ${Ip(va)} mono`,children:va}):null,rm(Y)?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:Y.filename}),s.jsx("button",{className:"chip_icon_btn",type:"button",onClick:()=>Cs(`docs/backlog/${String(c)}/${Y.filename}`),"aria-label":"Copy path",title:"Copy path",disabled:Q,children:s.jsx(Fn,{name:"copy",size:14})})]})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[h?s.jsx("button",{className:"btn",onClick:()=>g("list"),disabled:Q,children:"Back"}):null,c==="completed"&&nt==="tasks"?s.jsx("button",{className:"btn",onClick:()=>void vo(Y.filename),disabled:Q||!r,children:"Execution log"}):null,In?s.jsx("button",{className:"btn primary",onClick:()=>{D(""),Ft("uat"),Dt({kind:"planned",filename:Y.filename,title:Y.title||Y.filename}),Rt(!0)},disabled:Q,children:"Execute"}):null,Cl?s.jsx("button",{className:"btn primary",onClick:()=>void xi("planned"),disabled:Q,children:"Elevate → planned"}):null,Yn?s.jsx("button",{className:"btn",onClick:()=>void xi("proposed"),disabled:Q,children:"Downgrade → proposed"}):null,wa?s.jsx("button",{className:"btn",onClick:()=>void xi("proposed"),disabled:Q,children:"Restore → proposed"}):null,Vo?s.jsx("button",{className:"btn",onClick:()=>void xi("proposed"),disabled:Q,children:"Restore → proposed"}):null,Ho?s.jsx("button",{className:"btn",onClick:()=>void xi("deprecated"),disabled:Q,children:"Deprecate"}):null,Ba?s.jsxs("button",{className:"btn btn_icon",onClick:()=>void xi("trash"),disabled:Q,"aria-label":"Trash",title:"Trash",children:[s.jsx(Fn,{name:"trash",size:16}),h?null:"Trash"]}):null,C?s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>U(!1),disabled:me,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void ga(),disabled:me,children:me?"Saving…":"Save"})]}):s.jsxs("button",{className:"btn btn_icon",onClick:()=>{U(!0),ne(oe),Fe(""),_e([]),ae(""),et(""),je(""),it([])},disabled:K||me,"aria-label":"Edit",title:"Edit",children:[s.jsx(Fn,{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),Re?` • sha ${ia(Re,10)}`:""]}),M?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:M}):null,Ne?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Ne}):null,X?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:X}):null,K?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):C?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"field",style:{marginTop:"8px"},children:s.jsx("textarea",{value:te,onChange:E=>ne(E.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:Qn,type:"file",multiple:!0,style:{display:"none"},onChange:E=>{const H=Array.from(E.target.files||[]);H.length&&(Nl(H),E.currentTarget.value="")}}),s.jsx("button",{type:"button",className:"btn",onClick:()=>{var E;return(E=Qn.current)==null?void 0:E.click()},disabled:!r||!Y||!sa(c)||as,children:as?"Uploading…":"Attach files"}),ut.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["Last attached: ",ut[0]]}):null]}),de?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:de}):null,s.jsx("div",{className:"section_divider",style:{marginTop:"10px"}}),s.jsx(Hd,{messages:Be,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(Wd,{value:ve,onChange:ae,onSubmit:()=>void ya(),placeholder:"Message to maintainer (e.g. improve acceptance criteria…)",disabled:!r||we||!Y||!sa(c),busy:we,rows:3,sendButtonClassName:"btn primary"})}),Ke?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Ke}):null]})]}):oe?s.jsx(oo,{text:oe}):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(Ai,{open:St,title:"Execute backlog item?",onClose:()=>{Rt(!1),Dt(null)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{Rt(!1),Dt(null)},disabled:Q,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void sc(),disabled:Q||fn||!Wt||(st==null?void 0:st.can_execute)!==!0,children:Q?"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:Wt?Wt.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:gn,onChange:E=>Ft(E.target.value),disabled:Q,style:{width:"100%"},children:[s.jsx("option",{value:"uat",children:"UAT (staged, safe)"}),s.jsx("option",{value:"inplace",children:"Inplace (dangerous, edits prod)"})]}),gn==="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. After you promote or iterate, UAT services are stopped automatically."})]}),fn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!fn&&(st==null?void 0:st.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:(st==null?void 0:st.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(st==null?void 0:st.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(st==null?void 0:st.codex_available)===!1?`Codex not found on gateway: ${String((st==null?void 0:st.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),st!=null&&st.runner_error?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:st.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:()=>Cs(["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,kr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:kr}):null,M?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:M}):null]}),s.jsxs(Ai,{open:Gt,title:"Execute batch (single context)?",onClose:()=>{en(!1),Rn("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{en(!1),Rn("")},disabled:Vt,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Yt(),disabled:Vt||fn||Wn.length<2||(st==null?void 0:st.can_execute)!==!0,children:Vt?"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:Wn.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:Nn,onChange:E=>Cn(E.target.value),disabled:Vt,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 (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. After you promote or iterate, UAT services are stopped automatically."})]}),Wn.length?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Wn.map(E=>s.jsxs("div",{children:["- docs/backlog/planned/",E.filename]},`batchitem:${E.filename}`))}):null,fn?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!fn&&(st==null?void 0:st.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:(st==null?void 0:st.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(st==null?void 0:st.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(st==null?void 0:st.codex_available)===!1?`Codex not found on gateway: ${String((st==null?void 0:st.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),st!=null&&st.runner_error?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:st.runner_error}):null]}):null,kr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:kr}):null,kn?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:kn}):null]}),s.jsxs(Ai,{open:lr,title:"Merge planned items into master backlog?",onClose:()=>{Fr(!1),pr("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{Fr(!1),pr("")},disabled:cs,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void ic(),disabled:cs||Wn.length<2||!jr.trim()||!Hs.trim(),children:cs?"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:Hs,onChange:E=>$s(E.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:ao,onChange:E=>Mi(E.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:jr,onChange:E=>Or(E.target.value),placeholder:"Master backlog"})]}),s.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[s.jsx("label",{children:"Summary (optional)"}),s.jsx("textarea",{value:ls,onChange:E=>$n(E.target.value),rows:3})]}),Wn.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:Wn.map(E=>s.jsxs("div",{children:["- docs/backlog/planned/",E.filename]},`mergeitem:${E.filename}`))})]}):null,Dr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Dr}):null]}),s.jsx(Ai,{open:Pi,title:Ii?`Execution log — ${Ii}`:"Execution log",variant:"fullscreen",onClose:()=>{Ms(!1),ca(""),Gs([]),Rs(""),R(""),De(""),Tt(!1),Pt("")},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:Vr,onChange:E=>{const H=String(E.target.value||"").trim();Rs(H),R(""),De(""),Tt(!1),H&&vi({request_id:H,name:Fi}),setTimeout(()=>{var O;return(O=Kt.current)==null?void 0:O.focus()},0)},disabled:ie||!zs.length,children:[zs.length?null:s.jsx("option",{value:"",children:"(none)"}),zs.map(E=>{const H=String(E.finished_at||E.started_at||E.created_at||"").trim(),O=H?`${H} • ${ia(E.request_id,16)} • ${String(E.status||"").trim()}`:`${ia(E.request_id,16)} • ${String(E.status||"").trim()}`;return s.jsx("option",{value:E.request_id,children:O},`execfull:${E.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:Fi,onChange:E=>{const H=E.target.value;Po(H),R(""),De(""),Tt(!1),Vr&&vi({request_id:Vr,name:H}),setTimeout(()=>{var O;return(O=Kt.current)==null?void 0:O.focus()},0)},disabled:ie||!Vr,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:Lt,onChange:E=>Pt(E.target.value),placeholder:"Find…",onKeyDown:E=>{E.key==="Enter"&&(E.preventDefault(),oi(E.shiftKey?-1:1))}})]})}),s.jsxs("div",{className:"col",style:{flex:"0 0 auto",display:"flex",gap:"6px"},children:[s.jsx("button",{className:"btn",onClick:()=>oi(-1),disabled:!Lt.trim()||!Tr.trim(),children:"Prev"}),s.jsx("button",{className:"btn",onClick:()=>oi(1),disabled:!Lt.trim()||!Tr.trim(),children:"Next"}),s.jsx("button",{className:"btn",onClick:()=>void vi(),disabled:ie||!Vr,children:ie?"Loading…":"Refresh"}),s.jsx("button",{className:"btn",onClick:()=>Cs(Tr),disabled:!Tr.trim(),children:"Copy"})]})]}),Ie?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Ie}):null,!Ie&&ot?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:Kt,value:Tr||"(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(Ai,{open:tn,title:"New backlog task",onClose:()=>{mn(!1),Wo()},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{mn(!1),Wo()},disabled:Ps||ds,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void ac(),disabled:Ps||!Ys.trim()||!fo.trim(),children:Ps?"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:lo,onChange:E=>gl(E.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:co,onChange:E=>uo(E.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:fo,onChange:E=>Ia(E.target.value),placeholder:"framework"})]})})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Title"}),s.jsx("input",{value:Ys,onChange:E=>tc(E.target.value),placeholder:"Short descriptive title"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Summary (optional)"}),s.jsx("textarea",{value:mo,onChange:E=>_l(E.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:da,onChange:E=>po(E.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:go,onChange:E=>_o(E.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:Fo,onChange:E=>fa(E.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:Fa,onChange:E=>xl(E.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:Oo,onChange:E=>vl(E.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:Di,onChange:E=>yi(E.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:nc,onChange:E=>Oa(E.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:wl,onChange:E=>bl(E.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:Do,onChange:E=>Xs(E.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:Is,onChange:E=>rc(E.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:()=>kl(),disabled:Ps||ds,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:E=>{const H=Array.from(E.target.files||[]);H.length&&(Sl(O=>[...O,...H]),E.currentTarget.value="")}})}),Bo.length?s.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Bo.map((E,H)=>s.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",marginTop:"4px"},children:[s.jsxs("span",{className:"mono muted",style:{paddingRight:"10px"},children:[E.name," (",Math.round(E.size/1024)," KB)"]}),s.jsx("button",{className:"btn",onClick:()=>Sl(O=>O.filter((fe,pe)=>pe!==H)),disabled:Ps||ma,children:"Remove"})]},`${E.name}_${E.size}_${H}`))}):null,ma?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Uploading attachments…"}):null,zr?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:zr}):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."}),Mr?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Loading template…"}):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.jsx("div",{className:"row",style:{marginTop:"10px",justifyContent:"flex-end",gap:"8px"},children:s.jsx("button",{className:"btn",onClick:()=>{Io.trim()&&!globalThis.confirm("Reset the draft markdown to the backlog template?")||jl({force:!0})},disabled:Ps||ds||Mr||!r,children:"Reset from template"})}),s.jsx("div",{className:"field",children:s.jsx("textarea",{value:Io,onChange:E=>ua(E.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(Hd,{messages:ha,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(Wd,{value:pa,onChange:Ui,onSubmit:()=>void Vi(),placeholder:"Message to AI (e.g. refine acceptance criteria…)",disabled:!r||!Ys.trim(),busy:ds,rows:3,sendButtonClassName:"btn primary"})}),ho?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ho}):null]}),s.jsx("button",{className:`advisor_toggle ${Ae?"open":""}`,onClick:()=>{Oe(E=>{const H=!E;return H||Da(),H})},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:E=>{E.target===E.currentTarget&&(Da(),Oe(!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 ${ue?"primary":""}`,onClick:()=>ke(E=>!E),disabled:on,title:ue?"Hide tool execution":"Show tool execution","aria-label":ue?"Hide tool execution":"Show tool execution",children:[s.jsx(Fn,{name:"terminal",size:16}),h?null:ue?"Tools on":"Tools"]}),s.jsx("button",{className:"btn",onClick:()=>xe([]),disabled:on||!lt.length,children:"Clear"}),s.jsx("button",{className:"btn",onClick:()=>{Da(),Oe(!1)},children:"Close"})]})]}),s.jsxs("div",{className:"drawer_body",children:[s.jsx(Hd,{messages:lt,className:"drawer_chat_thread",messageProps:Zt.tts_supported&&r&&un.trim()?{onSpeakToggle:xa,getSpeakState:tu,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:On,type:"file",multiple:!0,style:{display:"none"},onChange:E=>{const H=Array.from(E.currentTarget.files||[]);E.currentTarget.value="",H.length&&eu(H)}}),s.jsx(Wd,{ref:qt,value:$t,onChange:xt,onSubmit:()=>void Zc(),placeholder:"Message to backlog advisor…",disabled:!r,busy:on||Zt.voice_ptt_busy,rows:3,sendButtonClassName:"btn primary",busyLabel:Zt.voice_ptt_busy?"Transcribing…":"Thinking…",actions:s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:`btn btn_icon voice_btn${Zt.voice_ptt_recording?" danger":""}`,type:"button",disabled:!r||!un.trim()||on||Zt.voice_ptt_busy||!Zt.voice_ptt_supported,title:Zt.voice_ptt_supported?Zt.voice_ptt_busy?"Transcribing…":Zt.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:E=>{var H,O;if(!(!r||!un.trim()||on||Zt.voice_ptt_busy||!Zt.voice_ptt_supported)){E.preventDefault();try{(O=(H=E.currentTarget)==null?void 0:H.setPointerCapture)==null||O.call(H,E.pointerId)}catch{}Zt.start_voice_ptt_recording()}},onPointerUp:E=>{E.preventDefault(),Zt.stop_voice_ptt_recording()},onPointerCancel:E=>{E.preventDefault(),Zt.stop_voice_ptt_recording()},children:[s.jsx(Fn,{name:Zt.voice_ptt_recording?"x":"mic",size:16}),h?null:Zt.voice_ptt_busy?"Transcribing…":Zt.voice_ptt_recording?"Recording…":"Voice"]}),s.jsxs("button",{className:"btn btn_icon",type:"button",onClick:()=>{var E;return(E=On.current)==null?void 0:E.click()},disabled:on,title:"Attach a local file to your message","aria-label":"Attach file",children:[s.jsx(Fn,{name:"paperclip",size:16}),h?null:"Attach"]})]})}),At.length?s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["Last attached: ",At[0]]}):null,Xt?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Xt}):null,jn?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:jn}):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 Es(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=Es(e[r]))!==""&&(t+=(t&&" ")+o);else for(let r in e)e[r]&&(t+=(t&&" ")+r);return t}var im={exports:{}},om={},am={exports:{}},lm={};/**
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 Bp;function $w(){if(Bp)return lm;Bp=1;var e=Ju();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,A=j[1];return u(function(){S.value=b,S.getSnapshot=v,h(S)&&A({inst:S})},[x,b,v]),l(function(){return h(S)&&A({inst:S}),x(function(){h(S)&&A({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 lm.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,lm}var Up;function Aw(){return Up||(Up=1,am.exports=$w()),am.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 Wp;function Tw(){if(Wp)return om;Wp=1;var e=Ju(),t=Aw();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 om.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 T(se){if(!B){if(B=!0,P=se,se=v(se),b!==void 0&&S.hasValue){var Y=S.value;if(b(Y,se))return F=Y}return F=se}if(Y=F,o(P,se))return Y;var le=v(se);return b!==void 0&&b(Y,le)?(P=se,Y):(P=se,F=le)}var B=!1,P,F,G=x===void 0?null:x;return[function(){return T(g())},G===null?void 0:function(){return T(G())}]},[g,x,v,b]);var A=l(_,j[0],j[1]);return c(function(){S.hasValue=!0,S.value=A},[A]),h(A),A},om}var Hp;function Mw(){return Hp||(Hp=1,im.exports=Tw()),im.exports}var zw=Mw();const Rw=nh(zw),Lw={},Vp=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:()=>{(Lw?"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},Pw=e=>e?Vp(e):Vp,{useDebugValue:Iw}=$e,{useSyncExternalStoreWithSelector:Fw}=Rw,Ow=e=>e;function k_(e,t=Ow,r){const o=Fw(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return Iw(o),o}const qp=(e,t)=>{const r=Pw(e),o=(l,u=t)=>k_(r,l,u);return Object.assign(o,r),o},Dw=(e,t)=>e?qp(e,t):qp;function ws(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 Bw={value:()=>{}};function uf(){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 Vd(r)}function Vd(e){this._=e}function Uw(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}})}Vd.prototype=uf.prototype={constructor:Vd,on:function(e,t){var r=this._,o=Uw(e+"",r),l,u=-1,c=o.length;if(arguments.length<2){for(;++u<c;)if((l=(e=o[u]).type)&&(l=Ww(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]=Gp(r[l],e.name,t);else if(t==null)for(l in r)r[l]=Gp(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 Vd(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 Ww(e,t){for(var r=0,o=e.length,l;r<o;++r)if((l=e[r]).name===t)return l.value}function Gp(e,t,r){for(var o=0,l=e.length;o<l;++o)if(e[o].name===t){e[o]=Bw,e=e.slice(0,o).concat(e.slice(o+1));break}return r!=null&&e.push({name:t,value:r}),e}var Lm="http://www.w3.org/1999/xhtml";const Yp={svg:"http://www.w3.org/2000/svg",xhtml:Lm,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function df(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),Yp.hasOwnProperty(t)?{space:Yp[t],local:e}:e}function Hw(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===Lm&&t.documentElement.namespaceURI===Lm?t.createElement(e):t.createElementNS(r,e)}}function Vw(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function N_(e){var t=df(e);return(t.local?Vw:Hw)(t)}function qw(){}function oh(e){return e==null?qw:function(){return this.querySelector(e)}}function Gw(e){typeof e!="function"&&(e=oh(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 Ti(o,this._parents)}function Yw(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Xw(){return[]}function C_(e){return e==null?Xw:function(){return this.querySelectorAll(e)}}function Kw(e){return function(){return Yw(e.apply(this,arguments))}}function Jw(e){typeof e=="function"?e=Kw(e):e=C_(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 Ti(o,l)}function E_(e){return function(){return this.matches(e)}}function $_(e){return function(t){return t.matches(e)}}var Qw=Array.prototype.find;function Zw(e){return function(){return Qw.call(this.children,e)}}function e0(){return this.firstElementChild}function t0(e){return this.select(e==null?e0:Zw(typeof e=="function"?e:$_(e)))}var n0=Array.prototype.filter;function r0(){return Array.from(this.children)}function s0(e){return function(){return n0.call(this.children,e)}}function i0(e){return this.selectAll(e==null?r0:s0(typeof e=="function"?e:$_(e)))}function o0(e){typeof e!="function"&&(e=E_(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 Ti(o,this._parents)}function A_(e){return new Array(e.length)}function a0(){return new Ti(this._enter||this._groups.map(A_),this._parents)}function Jd(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Jd.prototype={constructor:Jd,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 l0(e){return function(){return e}}function c0(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 Jd(e,u[c]);for(;c<h;++c)(d=t[c])&&(l[c]=d)}function u0(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 Jd(e,u[d]);for(d=0;d<g;++d)(h=t[d])&&_.get(v[d])===h&&(l[d]=h)}function d0(e){return e.__data__}function f0(e,t){if(!arguments.length)return Array.from(this,d0);var r=t?u0:c0,o=this._parents,l=this._groups;typeof e!="function"&&(e=l0(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=m0(e.call(g,g&&g.__data__,_,o)),j=b.length,S=d[_]=new Array(j),A=c[_]=new Array(j),T=h[_]=new Array(v);r(g,x,S,A,T,b,t);for(var B=0,P=0,F,G;B<j;++B)if(F=S[B]){for(B>=P&&(P=B+1);!(G=A[P])&&++P<j;);F._next=G||null}}return c=new Ti(c,o),c._enter=d,c._exit=h,c}function m0(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function h0(){return new Ti(this._exit||this._groups.map(A_),this._parents)}function p0(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 g0(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 Ti(d,this._parents)}function _0(){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 y0(e){e||(e=x0);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 Ti(l,this._parents).order()}function x0(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function v0(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function w0(){return Array.from(this)}function b0(){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 S0(){let e=0;for(const t of this)++e;return e}function j0(){return!this.node()}function k0(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 N0(e){return function(){this.removeAttribute(e)}}function C0(e){return function(){this.removeAttributeNS(e.space,e.local)}}function E0(e,t){return function(){this.setAttribute(e,t)}}function $0(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function A0(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function T0(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 M0(e,t){var r=df(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?C0:N0:typeof t=="function"?r.local?T0:A0:r.local?$0:E0)(r,t))}function T_(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function z0(e){return function(){this.style.removeProperty(e)}}function R0(e,t,r){return function(){this.style.setProperty(e,t,r)}}function L0(e,t,r){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,r)}}function P0(e,t,r){return arguments.length>1?this.each((t==null?z0:typeof t=="function"?L0:R0)(e,t,r??"")):Kc(this.node(),e)}function Kc(e,t){return e.style.getPropertyValue(t)||T_(e).getComputedStyle(e,null).getPropertyValue(t)}function I0(e){return function(){delete this[e]}}function F0(e,t){return function(){this[e]=t}}function O0(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function D0(e,t){return arguments.length>1?this.each((t==null?I0:typeof t=="function"?O0:F0)(e,t)):this.node()[e]}function M_(e){return e.trim().split(/^|\s+/)}function ah(e){return e.classList||new z_(e)}function z_(e){this._node=e,this._names=M_(e.getAttribute("class")||"")}z_.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 R_(e,t){for(var r=ah(e),o=-1,l=t.length;++o<l;)r.add(t[o])}function L_(e,t){for(var r=ah(e),o=-1,l=t.length;++o<l;)r.remove(t[o])}function B0(e){return function(){R_(this,e)}}function U0(e){return function(){L_(this,e)}}function W0(e,t){return function(){(t.apply(this,arguments)?R_:L_)(this,e)}}function H0(e,t){var r=M_(e+"");if(arguments.length<2){for(var o=ah(this.node()),l=-1,u=r.length;++l<u;)if(!o.contains(r[l]))return!1;return!0}return this.each((typeof t=="function"?W0:t?B0:U0)(r,t))}function V0(){this.textContent=""}function q0(e){return function(){this.textContent=e}}function G0(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Y0(e){return arguments.length?this.each(e==null?V0:(typeof e=="function"?G0:q0)(e)):this.node().textContent}function X0(){this.innerHTML=""}function K0(e){return function(){this.innerHTML=e}}function J0(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Q0(e){return arguments.length?this.each(e==null?X0:(typeof e=="function"?J0:K0)(e)):this.node().innerHTML}function Z0(){this.nextSibling&&this.parentNode.appendChild(this)}function eb(){return this.each(Z0)}function tb(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function nb(){return this.each(tb)}function rb(e){var t=typeof e=="function"?e:N_(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function sb(){return null}function ib(e,t){var r=typeof e=="function"?e:N_(e),o=t==null?sb:typeof t=="function"?t:oh(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),o.apply(this,arguments)||null)})}function ob(){var e=this.parentNode;e&&e.removeChild(this)}function ab(){return this.each(ob)}function lb(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function cb(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ub(e){return this.select(e?cb:lb)}function db(e){return arguments.length?this.property("__data__",e):this.node().__data__}function fb(e){return function(t){e.call(this,t,this.__data__)}}function mb(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 hb(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 pb(e,t,r){return function(){var o=this.__on,l,u=fb(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 gb(e,t,r){var o=mb(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?pb:hb,l=0;l<u;++l)this.each(d(o[l],t,r));return this}function P_(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 _b(e,t){return function(){return P_(this,e,t)}}function yb(e,t){return function(){return P_(this,e,t.apply(this,arguments))}}function xb(e,t){return this.each((typeof t=="function"?yb:_b)(e,t))}function*vb(){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 I_=[null];function Ti(e,t){this._groups=e,this._parents=t}function Qu(){return new Ti([[document.documentElement]],I_)}function wb(){return this}Ti.prototype=Qu.prototype={constructor:Ti,select:Gw,selectAll:Jw,selectChild:t0,selectChildren:i0,filter:o0,data:f0,enter:a0,exit:h0,join:p0,merge:g0,selection:wb,order:_0,sort:y0,call:v0,nodes:w0,node:b0,size:S0,empty:j0,each:k0,attr:M0,style:P0,property:D0,classed:H0,text:Y0,html:Q0,raise:eb,lower:nb,append:rb,insert:ib,remove:ab,clone:ub,datum:db,on:gb,dispatch:xb,[Symbol.iterator]:vb};function so(e){return typeof e=="string"?new Ti([[document.querySelector(e)]],[document.documentElement]):new Ti([[e]],I_)}function bb(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ao(e,t){if(e=bb(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 Sb={passive:!1},Du={capture:!0,passive:!1};function cm(e){e.stopImmediatePropagation()}function qc(e){e.preventDefault(),e.stopImmediatePropagation()}function F_(e){var t=e.document.documentElement,r=so(e).on("dragstart.drag",qc,Du);"onselectstart"in t?r.on("selectstart.drag",qc,Du):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function O_(e,t){var r=e.document.documentElement,o=so(e).on("dragstart.drag",null);t&&(o.on("click.drag",qc,Du),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 Pm(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}})}Pm.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function jb(e){return!e.ctrlKey&&!e.button}function kb(){return this.parentNode}function Nb(e,t){return t??{x:e.x,y:e.y}}function Cb(){return navigator.maxTouchPoints||"ontouchstart"in this}function Eb(){var e=jb,t=kb,r=Nb,o=Cb,l={},u=uf("start","drag","end"),c=0,d,h,_,g,x=0;function v(F){F.on("mousedown.drag",b).filter(o).on("touchstart.drag",A).on("touchmove.drag",T,Sb).on("touchend.drag touchcancel.drag",B).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(F,G){if(!(g||!e.call(this,F,G))){var se=P(this,t.call(this,F,G),F,G,"mouse");se&&(so(F.view).on("mousemove.drag",j,Du).on("mouseup.drag",S,Du),F_(F.view),cm(F),_=!1,d=F.clientX,h=F.clientY,se("start",F))}}function j(F){if(qc(F),!_){var G=F.clientX-d,se=F.clientY-h;_=G*G+se*se>x}l.mouse("drag",F)}function S(F){so(F.view).on("mousemove.drag mouseup.drag",null),O_(F.view,_),qc(F),l.mouse("end",F)}function A(F,G){if(e.call(this,F,G)){var se=F.changedTouches,Y=t.call(this,F,G),le=se.length,oe,ge;for(oe=0;oe<le;++oe)(ge=P(this,Y,F,G,se[oe].identifier,se[oe]))&&(cm(F),ge("start",F,se[oe]))}}function T(F){var G=F.changedTouches,se=G.length,Y,le;for(Y=0;Y<se;++Y)(le=l[G[Y].identifier])&&(qc(F),le("drag",F,G[Y]))}function B(F){var G=F.changedTouches,se=G.length,Y,le;for(g&&clearTimeout(g),g=setTimeout(function(){g=null},500),Y=0;Y<se;++Y)(le=l[G[Y].identifier])&&(cm(F),le("end",F,G[Y]))}function P(F,G,se,Y,le,oe){var ge=u.copy(),Re=Ao(oe||se,G),Te,K,W;if((W=r.call(F,new Pm("beforestart",{sourceEvent:se,target:v,identifier:le,active:c,x:Re[0],y:Re[1],dx:0,dy:0,dispatch:ge}),Y))!=null)return Te=W.x-Re[0]||0,K=W.y-Re[1]||0,function X(V,Q,k){var M=Re,D;switch(V){case"start":l[le]=X,D=c++;break;case"end":delete l[le],--c;case"drag":Re=Ao(k||Q,G),D=c;break}ge.call(V,F,new Pm(V,{sourceEvent:Q,subject:W,target:v,identifier:le,active:D,x:Re[0]+Te,y:Re[1]+K,dx:Re[0]-M[0],dy:Re[1]-M[1],dispatch:ge}),Y)}}return v.filter=function(F){return arguments.length?(e=typeof F=="function"?F:Ad(!!F),v):e},v.container=function(F){return arguments.length?(t=typeof F=="function"?F:Ad(F),v):t},v.subject=function(F){return arguments.length?(r=typeof F=="function"?F:Ad(F),v):r},v.touchable=function(F){return arguments.length?(o=typeof F=="function"?F:Ad(!!F),v):o},v.on=function(){var F=u.on.apply(u,arguments);return F===u?v:F},v.clickDistance=function(F){return arguments.length?(x=(F=+F)*F,v):Math.sqrt(x)},v}function lh(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function D_(e,t){var r=Object.create(e.prototype);for(var o in t)r[o]=t[o];return r}function Zu(){}var Bu=.7,Qd=1/Bu,Gc="\\s*([+-]?\\d+)\\s*",Uu="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",aa="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",$b=/^#([0-9a-f]{3,8})$/,Ab=new RegExp(`^rgb\\(${Gc},${Gc},${Gc}\\)$`),Tb=new RegExp(`^rgb\\(${aa},${aa},${aa}\\)$`),Mb=new RegExp(`^rgba\\(${Gc},${Gc},${Gc},${Uu}\\)$`),zb=new RegExp(`^rgba\\(${aa},${aa},${aa},${Uu}\\)$`),Rb=new RegExp(`^hsl\\(${Uu},${aa},${aa}\\)$`),Lb=new RegExp(`^hsla\\(${Uu},${aa},${aa},${Uu}\\)$`),Xp={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};lh(Zu,Wu,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Kp,formatHex:Kp,formatHex8:Pb,formatHsl:Ib,formatRgb:Jp,toString:Jp});function Kp(){return this.rgb().formatHex()}function Pb(){return this.rgb().formatHex8()}function Ib(){return B_(this).formatHsl()}function Jp(){return this.rgb().formatRgb()}function Wu(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=$b.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?Qp(t):r===3?new pi(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Td(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Td(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=Ab.exec(e))?new pi(t[1],t[2],t[3],1):(t=Tb.exec(e))?new pi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Mb.exec(e))?Td(t[1],t[2],t[3],t[4]):(t=zb.exec(e))?Td(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Rb.exec(e))?tg(t[1],t[2]/100,t[3]/100,1):(t=Lb.exec(e))?tg(t[1],t[2]/100,t[3]/100,t[4]):Xp.hasOwnProperty(e)?Qp(Xp[e]):e==="transparent"?new pi(NaN,NaN,NaN,0):null}function Qp(e){return new pi(e>>16&255,e>>8&255,e&255,1)}function Td(e,t,r,o){return o<=0&&(e=t=r=NaN),new pi(e,t,r,o)}function Fb(e){return e instanceof Zu||(e=Wu(e)),e?(e=e.rgb(),new pi(e.r,e.g,e.b,e.opacity)):new pi}function Im(e,t,r,o){return arguments.length===1?Fb(e):new pi(e,t,r,o??1)}function pi(e,t,r,o){this.r=+e,this.g=+t,this.b=+r,this.opacity=+o}lh(pi,Im,D_(Zu,{brighter(e){return e=e==null?Qd:Math.pow(Qd,e),new pi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bu:Math.pow(Bu,e),new pi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new pi(Jl(this.r),Jl(this.g),Jl(this.b),Zd(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:Zp,formatHex:Zp,formatHex8:Ob,formatRgb:eg,toString:eg}));function Zp(){return`#${Xl(this.r)}${Xl(this.g)}${Xl(this.b)}`}function Ob(){return`#${Xl(this.r)}${Xl(this.g)}${Xl(this.b)}${Xl((isNaN(this.opacity)?1:this.opacity)*255)}`}function eg(){const e=Zd(this.opacity);return`${e===1?"rgb(":"rgba("}${Jl(this.r)}, ${Jl(this.g)}, ${Jl(this.b)}${e===1?")":`, ${e})`}`}function Zd(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Jl(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Xl(e){return e=Jl(e),(e<16?"0":"")+e.toString(16)}function tg(e,t,r,o){return o<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new To(e,t,r,o)}function B_(e){if(e instanceof To)return new To(e.h,e.s,e.l,e.opacity);if(e instanceof Zu||(e=Wu(e)),!e)return new To;if(e instanceof To)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 To(c,d,h,e.opacity)}function Db(e,t,r,o){return arguments.length===1?B_(e):new To(e,t,r,o??1)}function To(e,t,r,o){this.h=+e,this.s=+t,this.l=+r,this.opacity=+o}lh(To,Db,D_(Zu,{brighter(e){return e=e==null?Qd:Math.pow(Qd,e),new To(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bu:Math.pow(Bu,e),new To(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 pi(um(e>=240?e-240:e+120,l,o),um(e,l,o),um(e<120?e+240:e-120,l,o),this.opacity)},clamp(){return new To(ng(this.h),Md(this.s),Md(this.l),Zd(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=Zd(this.opacity);return`${e===1?"hsl(":"hsla("}${ng(this.h)}, ${Md(this.s)*100}%, ${Md(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ng(e){return e=(e||0)%360,e<0?e+360:e}function Md(e){return Math.max(0,Math.min(1,e||0))}function um(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 U_=e=>()=>e;function Bb(e,t){return function(r){return e+r*t}}function Ub(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 Wb(e){return(e=+e)==1?W_:function(t,r){return r-t?Ub(t,r,e):U_(isNaN(t)?r:t)}}function W_(e,t){var r=t-e;return r?Bb(e,r):U_(isNaN(e)?t:e)}const rg=(function e(t){var r=Wb(t);function o(l,u){var c=r((l=Im(l)).r,(u=Im(u)).r),d=r(l.g,u.g),h=r(l.b,u.b),_=W_(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 dl(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var Fm=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,dm=new RegExp(Fm.source,"g");function Hb(e){return function(){return e}}function Vb(e){return function(t){return e(t)+""}}function qb(e,t){var r=Fm.lastIndex=dm.lastIndex=0,o,l,u,c=-1,d=[],h=[];for(e=e+"",t=t+"";(o=Fm.exec(e))&&(l=dm.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:dl(o,l)})),r=dm.lastIndex;return r<t.length&&(u=t.slice(r),d[c]?d[c]+=u:d[++c]=u),d.length<2?h[0]?Vb(h[0].x):Hb(t):(t=h.length,function(_){for(var g=0,x;g<t;++g)d[(x=h[g]).i]=x.x(_);return d.join("")})}var sg=180/Math.PI,Om={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function H_(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)*sg,skewX:Math.atan(h)*sg,scaleX:c,scaleY:d}}var zd;function Gb(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Om:H_(t.a,t.b,t.c,t.d,t.e,t.f)}function Yb(e){return e==null||(zd||(zd=document.createElementNS("http://www.w3.org/2000/svg","g")),zd.setAttribute("transform",e),!(e=zd.transform.baseVal.consolidate()))?Om:(e=e.matrix,H_(e.a,e.b,e.c,e.d,e.e,e.f))}function V_(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:dl(_,x)},{i:S-2,x:dl(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:dl(_,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:dl(_,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:dl(_,x)},{i:S-2,x:dl(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,A;++j<S;)x[(A=v[j]).i]=A.x(b);return x.join("")}}}var Xb=V_(Gb,"px, ","px)","deg)"),Kb=V_(Yb,", ",")",")"),Jb=1e-12;function ig(e){return((e=Math.exp(e))+1/e)/2}function Qb(e){return((e=Math.exp(e))-1/e)/2}function Zb(e){return((e=Math.exp(2*e))-1)/(e+1)}const eS=(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,A,T;if(S<Jb)T=Math.log(v/_)/t,A=function(Y){return[d+Y*b,h+Y*j,_*Math.exp(t*Y*T)]};else{var B=Math.sqrt(S),P=(v*v-_*_+o*S)/(2*_*r*B),F=(v*v-_*_-o*S)/(2*v*r*B),G=Math.log(Math.sqrt(P*P+1)-P),se=Math.log(Math.sqrt(F*F+1)-F);T=(se-G)/t,A=function(Y){var le=Y*T,oe=ig(G),ge=_/(r*B)*(oe*Zb(t*le+G)-Qb(G));return[d+ge*b,h+ge*j,_*oe/ig(t*le+G)]}}return A.duration=T*1e3*t/Math.SQRT2,A}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 Jc=0,Iu=0,Cu=0,q_=1e3,ef,Fu,tf=0,Zl=0,ff=0,Hu=typeof performance=="object"&&performance.now?performance:Date,G_=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ch(){return Zl||(G_(tS),Zl=Hu.now()+ff)}function tS(){Zl=0}function nf(){this._call=this._time=this._next=null}nf.prototype=Y_.prototype={constructor:nf,restart:function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?ch():+r)+(t==null?0:+t),!this._next&&Fu!==this&&(Fu?Fu._next=this:ef=this,Fu=this),this._call=e,this._time=r,Dm()},stop:function(){this._call&&(this._call=null,this._time=1/0,Dm())}};function Y_(e,t,r){var o=new nf;return o.restart(e,t,r),o}function nS(){ch(),++Jc;for(var e=ef,t;e;)(t=Zl-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Jc}function og(){Zl=(tf=Hu.now())+ff,Jc=Iu=0;try{nS()}finally{Jc=0,sS(),Zl=0}}function rS(){var e=Hu.now(),t=e-tf;t>q_&&(ff-=t,tf=e)}function sS(){for(var e,t=ef,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:ef=r);Fu=e,Dm(o)}function Dm(e){if(!Jc){Iu&&(Iu=clearTimeout(Iu));var t=e-Zl;t>24?(e<1/0&&(Iu=setTimeout(og,e-Hu.now()-ff)),Cu&&(Cu=clearInterval(Cu))):(Cu||(tf=Hu.now(),Cu=setInterval(rS,q_)),Jc=1,G_(og))}}function ag(e,t,r){var o=new nf;return t=t==null?0:+t,o.restart(l=>{o.stop(),e(l+t)},t,r),o}var iS=uf("start","end","cancel","interrupt"),oS=[],X_=0,lg=1,Bm=2,qd=3,cg=4,Um=5,Gd=6;function mf(e,t,r,o,l,u){var c=e.__transition;if(!c)e.__transition={};else if(r in c)return;aS(e,r,{name:t,index:o,group:l,on:iS,tween:oS,time:u.time,delay:u.delay,duration:u.duration,ease:u.ease,timer:null,state:X_})}function uh(e,t){var r=Ro(e,t);if(r.state>X_)throw new Error("too late; already scheduled");return r}function la(e,t){var r=Ro(e,t);if(r.state>qd)throw new Error("too late; already running");return r}function Ro(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function aS(e,t,r){var o=e.__transition,l;o[t]=r,r.timer=Y_(u,0,r.time);function u(_){r.state=lg,r.timer.restart(c,r.delay,r.time),r.delay<=_&&c(_-r.delay)}function c(_){var g,x,v,b;if(r.state!==lg)return h();for(g in o)if(b=o[g],b.name===r.name){if(b.state===qd)return ag(c);b.state===cg?(b.state=Gd,b.timer.stop(),b.on.call("interrupt",e,e.__data__,b.index,b.group),delete o[g]):+g<t&&(b.state=Gd,b.timer.stop(),b.on.call("cancel",e,e.__data__,b.index,b.group),delete o[g])}if(ag(function(){r.state===qd&&(r.state=cg,r.timer.restart(d,r.delay,r.time),d(_))}),r.state=Bm,r.on.call("start",e,e.__data__,r.index,r.group),r.state===Bm){for(r.state=qd,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=Um,1),x=-1,v=l.length;++x<v;)l[x].call(e,g);r.state===Um&&(r.on.call("end",e,e.__data__,r.index,r.group),h())}function h(){r.state=Gd,r.timer.stop(),delete o[t];for(var _ in o)return;delete e.__transition}}function Yd(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>Bm&&o.state<Um,o.state=Gd,o.timer.stop(),o.on.call(l?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete r[c]}u&&delete e.__transition}}function lS(e){return this.each(function(){Yd(this,e)})}function cS(e,t){var r,o;return function(){var l=la(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 uS(e,t,r){var o,l;if(typeof r!="function")throw new Error;return function(){var u=la(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 dS(e,t){var r=this._id;if(e+="",arguments.length<2){for(var o=Ro(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?cS:uS)(r,e,t))}function dh(e,t,r){var o=e._id;return e.each(function(){var l=la(this,o);(l.value||(l.value={}))[t]=r.apply(this,arguments)}),function(l){return Ro(l,o).value[t]}}function K_(e,t){var r;return(typeof t=="number"?dl:t instanceof Wu?rg:(r=Wu(t))?(t=r,rg):qb)(e,t)}function fS(e){return function(){this.removeAttribute(e)}}function mS(e){return function(){this.removeAttributeNS(e.space,e.local)}}function hS(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 pS(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 gS(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 _S(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 yS(e,t){var r=df(e),o=r==="transform"?Kb:K_;return this.attrTween(e,typeof t=="function"?(r.local?_S:gS)(r,o,dh(this,"attr."+e,t)):t==null?(r.local?mS:fS)(r):(r.local?pS:hS)(r,o,t))}function xS(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function vS(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function wS(e,t){var r,o;function l(){var u=t.apply(this,arguments);return u!==o&&(r=(o=u)&&vS(e,u)),r}return l._value=t,l}function bS(e,t){var r,o;function l(){var u=t.apply(this,arguments);return u!==o&&(r=(o=u)&&xS(e,u)),r}return l._value=t,l}function SS(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=df(e);return this.tween(r,(o.local?wS:bS)(o,t))}function jS(e,t){return function(){uh(this,e).delay=+t.apply(this,arguments)}}function kS(e,t){return t=+t,function(){uh(this,e).delay=t}}function NS(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?jS:kS)(t,e)):Ro(this.node(),t).delay}function CS(e,t){return function(){la(this,e).duration=+t.apply(this,arguments)}}function ES(e,t){return t=+t,function(){la(this,e).duration=t}}function $S(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?CS:ES)(t,e)):Ro(this.node(),t).duration}function AS(e,t){if(typeof t!="function")throw new Error;return function(){la(this,e).ease=t}}function TS(e){var t=this._id;return arguments.length?this.each(AS(t,e)):Ro(this.node(),t).ease}function MS(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;la(this,e).ease=r}}function zS(e){if(typeof e!="function")throw new Error;return this.each(MS(this._id,e))}function RS(e){typeof e!="function"&&(e=E_(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 La(o,this._parents,this._name,this._id)}function LS(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 La(c,this._parents,this._name,this._id)}function PS(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 IS(e,t,r){var o,l,u=PS(t)?uh:la;return function(){var c=u(this,e),d=c.on;d!==o&&(l=(o=d).copy()).on(t,r),c.on=l}}function FS(e,t){var r=this._id;return arguments.length<2?Ro(this.node(),r).on.on(e):this.each(IS(r,e,t))}function OS(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function DS(){return this.on("end.remove",OS(this._id))}function BS(e){var t=this._name,r=this._id;typeof e!="function"&&(e=oh(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,mf(_[v],t,r,v,_,Ro(g,r)));return new La(u,this._parents,t,r)}function US(e){var t=this._name,r=this._id;typeof e!="function"&&(e=C_(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=Ro(g,r),S=0,A=v.length;S<A;++S)(b=v[S])&&mf(b,t,r,S,v,j);u.push(v),c.push(g)}return new La(u,c,t,r)}var WS=Qu.prototype.constructor;function HS(){return new WS(this._groups,this._parents)}function VS(e,t){var r,o,l;return function(){var u=Kc(this,e),c=(this.style.removeProperty(e),Kc(this,e));return u===c?null:u===r&&c===o?l:l=t(r=u,o=c)}}function J_(e){return function(){this.style.removeProperty(e)}}function qS(e,t,r){var o,l=r+"",u;return function(){var c=Kc(this,e);return c===l?null:c===o?u:u=t(o=c,r)}}function GS(e,t,r){var o,l,u;return function(){var c=Kc(this,e),d=r(this),h=d+"";return d==null&&(h=d=(this.style.removeProperty(e),Kc(this,e))),c===h?null:c===o&&h===l?u:(l=h,u=t(o=c,d))}}function YS(e,t){var r,o,l,u="style."+t,c="end."+u,d;return function(){var h=la(this,e),_=h.on,g=h.value[u]==null?d||(d=J_(t)):void 0;(_!==r||l!==g)&&(o=(r=_).copy()).on(c,l=g),h.on=o}}function XS(e,t,r){var o=(e+="")=="transform"?Xb:K_;return t==null?this.styleTween(e,VS(e,o)).on("end.style."+e,J_(e)):typeof t=="function"?this.styleTween(e,GS(e,o,dh(this,"style."+e,t))).each(YS(this._id,e)):this.styleTween(e,qS(e,o,t),r).on("end.style."+e,null)}function KS(e,t,r){return function(o){this.style.setProperty(e,t.call(this,o),r)}}function JS(e,t,r){var o,l;function u(){var c=t.apply(this,arguments);return c!==l&&(o=(l=c)&&KS(e,c,r)),o}return u._value=t,u}function QS(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,JS(e,t,r??""))}function ZS(e){return function(){this.textContent=e}}function ej(e){return function(){var t=e(this);this.textContent=t??""}}function tj(e){return this.tween("text",typeof e=="function"?ej(dh(this,"text",e)):ZS(e==null?"":e+""))}function nj(e){return function(t){this.textContent=e.call(this,t)}}function rj(e){var t,r;function o(){var l=e.apply(this,arguments);return l!==r&&(t=(r=l)&&nj(l)),t}return o._value=e,o}function sj(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,rj(e))}function ij(){for(var e=this._name,t=this._id,r=Q_(),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=Ro(h,t);mf(h,e,r,_,c,{time:g.time+g.delay+g.duration,delay:0,duration:g.duration,ease:g.ease})}return new La(o,this._parents,e,r)}function oj(){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 _=la(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 aj=0;function La(e,t,r,o){this._groups=e,this._parents=t,this._name=r,this._id=o}function Q_(){return++aj}var Ta=Qu.prototype;La.prototype={constructor:La,select:BS,selectAll:US,selectChild:Ta.selectChild,selectChildren:Ta.selectChildren,filter:RS,merge:LS,selection:HS,transition:ij,call:Ta.call,nodes:Ta.nodes,node:Ta.node,size:Ta.size,empty:Ta.empty,each:Ta.each,on:FS,attr:yS,attrTween:SS,style:XS,styleTween:QS,text:tj,textTween:sj,remove:DS,tween:dS,delay:NS,duration:$S,ease:TS,easeVarying:zS,end:oj,[Symbol.iterator]:Ta[Symbol.iterator]};function lj(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var cj={time:null,delay:0,duration:250,ease:lj};function uj(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 dj(e){var t,r;e instanceof La?(t=e._id,e=e._name):(t=Q_(),(r=cj).time=ch(),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[_])&&mf(h,e,t,_,c,r||uj(h,t));return new La(o,this._parents,e,t)}Qu.prototype.interrupt=lS;Qu.prototype.transition=dj;const Rd=e=>()=>e;function fj(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 za(e,t,r){this.k=e,this.x=t,this.y=r}za.prototype={constructor:za,scale:function(e){return e===1?this:new za(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new za(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 Ra=new za(1,0,0);za.prototype;function fm(e){e.stopImmediatePropagation()}function Eu(e){e.preventDefault(),e.stopImmediatePropagation()}function mj(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function hj(){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 ug(){return this.__zoom||Ra}function pj(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function gj(){return navigator.maxTouchPoints||"ontouchstart"in this}function _j(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 Z_(){var e=mj,t=hj,r=_j,o=pj,l=gj,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],d=250,h=eS,_=uf("start","zoom","end"),g,x,v,b=500,j=150,S=0,A=10;function T(W){W.property("__zoom",ug).on("wheel.zoom",le,{passive:!1}).on("mousedown.zoom",oe).on("dblclick.zoom",ge).filter(l).on("touchstart.zoom",Re).on("touchmove.zoom",Te).on("touchend.zoom touchcancel.zoom",K).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}T.transform=function(W,X,V,Q){var k=W.selection?W.selection():W;k.property("__zoom",ug),W!==k?G(W,X,V,Q):k.interrupt().each(function(){se(this,arguments).event(Q).start().zoom(null,typeof X=="function"?X.apply(this,arguments):X).end()})},T.scaleBy=function(W,X,V,Q){T.scaleTo(W,function(){var k=this.__zoom.k,M=typeof X=="function"?X.apply(this,arguments):X;return k*M},V,Q)},T.scaleTo=function(W,X,V,Q){T.transform(W,function(){var k=t.apply(this,arguments),M=this.__zoom,D=V==null?F(k):typeof V=="function"?V.apply(this,arguments):V,C=M.invert(D),U=typeof X=="function"?X.apply(this,arguments):X;return r(P(B(M,U),D,C),k,c)},V,Q)},T.translateBy=function(W,X,V,Q){T.transform(W,function(){return r(this.__zoom.translate(typeof X=="function"?X.apply(this,arguments):X,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),c)},null,Q)},T.translateTo=function(W,X,V,Q,k){T.transform(W,function(){var M=t.apply(this,arguments),D=this.__zoom,C=Q==null?F(M):typeof Q=="function"?Q.apply(this,arguments):Q;return r(Ra.translate(C[0],C[1]).scale(D.k).translate(typeof X=="function"?-X.apply(this,arguments):-X,typeof V=="function"?-V.apply(this,arguments):-V),M,c)},Q,k)};function B(W,X){return X=Math.max(u[0],Math.min(u[1],X)),X===W.k?W:new za(X,W.x,W.y)}function P(W,X,V){var Q=X[0]-V[0]*W.k,k=X[1]-V[1]*W.k;return Q===W.x&&k===W.y?W:new za(W.k,Q,k)}function F(W){return[(+W[0][0]+ +W[1][0])/2,(+W[0][1]+ +W[1][1])/2]}function G(W,X,V,Q){W.on("start.zoom",function(){se(this,arguments).event(Q).start()}).on("interrupt.zoom end.zoom",function(){se(this,arguments).event(Q).end()}).tween("zoom",function(){var k=this,M=arguments,D=se(k,M).event(Q),C=t.apply(k,M),U=V==null?F(C):typeof V=="function"?V.apply(k,M):V,te=Math.max(C[1][0]-C[0][0],C[1][1]-C[0][1]),ne=k.__zoom,me=typeof X=="function"?X.apply(k,M):X,Me=h(ne.invert(U).concat(te/ne.k),me.invert(U).concat(te/me.k));return function(Ne){if(Ne===1)Ne=me;else{var Fe=Me(Ne),Be=te/Fe[2];Ne=new za(Be,U[0]-Fe[0]*Be,U[1]-Fe[1]*Be)}D.zoom(null,Ne)}})}function se(W,X,V){return!V&&W.__zooming||new Y(W,X)}function Y(W,X){this.that=W,this.args=X,this.active=0,this.sourceEvent=null,this.extent=t.apply(W,X),this.taps=0}Y.prototype={event:function(W){return W&&(this.sourceEvent=W),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(W,X){return this.mouse&&W!=="mouse"&&(this.mouse[1]=X.invert(this.mouse[0])),this.touch0&&W!=="touch"&&(this.touch0[1]=X.invert(this.touch0[0])),this.touch1&&W!=="touch"&&(this.touch1[1]=X.invert(this.touch1[0])),this.that.__zoom=X,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(W){var X=so(this.that).datum();_.call(W,this.that,new fj(W,{sourceEvent:this.sourceEvent,target:T,transform:this.that.__zoom,dispatch:_}),X)}};function le(W,...X){if(!e.apply(this,arguments))return;var V=se(this,X).event(W),Q=this.__zoom,k=Math.max(u[0],Math.min(u[1],Q.k*Math.pow(2,o.apply(this,arguments)))),M=Ao(W);if(V.wheel)(V.mouse[0][0]!==M[0]||V.mouse[0][1]!==M[1])&&(V.mouse[1]=Q.invert(V.mouse[0]=M)),clearTimeout(V.wheel);else{if(Q.k===k)return;V.mouse=[M,Q.invert(M)],Yd(this),V.start()}Eu(W),V.wheel=setTimeout(D,j),V.zoom("mouse",r(P(B(Q,k),V.mouse[0],V.mouse[1]),V.extent,c));function D(){V.wheel=null,V.end()}}function oe(W,...X){if(v||!e.apply(this,arguments))return;var V=W.currentTarget,Q=se(this,X,!0).event(W),k=so(W.view).on("mousemove.zoom",U,!0).on("mouseup.zoom",te,!0),M=Ao(W,V),D=W.clientX,C=W.clientY;F_(W.view),fm(W),Q.mouse=[M,this.__zoom.invert(M)],Yd(this),Q.start();function U(ne){if(Eu(ne),!Q.moved){var me=ne.clientX-D,Me=ne.clientY-C;Q.moved=me*me+Me*Me>S}Q.event(ne).zoom("mouse",r(P(Q.that.__zoom,Q.mouse[0]=Ao(ne,V),Q.mouse[1]),Q.extent,c))}function te(ne){k.on("mousemove.zoom mouseup.zoom",null),O_(ne.view,Q.moved),Eu(ne),Q.event(ne).end()}}function ge(W,...X){if(e.apply(this,arguments)){var V=this.__zoom,Q=Ao(W.changedTouches?W.changedTouches[0]:W,this),k=V.invert(Q),M=V.k*(W.shiftKey?.5:2),D=r(P(B(V,M),Q,k),t.apply(this,X),c);Eu(W),d>0?so(this).transition().duration(d).call(G,D,Q,W):so(this).call(T.transform,D,Q,W)}}function Re(W,...X){if(e.apply(this,arguments)){var V=W.touches,Q=V.length,k=se(this,X,W.changedTouches.length===Q).event(W),M,D,C,U;for(fm(W),D=0;D<Q;++D)C=V[D],U=Ao(C,this),U=[U,this.__zoom.invert(U),C.identifier],k.touch0?!k.touch1&&k.touch0[2]!==U[2]&&(k.touch1=U,k.taps=0):(k.touch0=U,M=!0,k.taps=1+!!g);g&&(g=clearTimeout(g)),M&&(k.taps<2&&(x=U[0],g=setTimeout(function(){g=null},b)),Yd(this),k.start())}}function Te(W,...X){if(this.__zooming){var V=se(this,X).event(W),Q=W.changedTouches,k=Q.length,M,D,C,U;for(Eu(W),M=0;M<k;++M)D=Q[M],C=Ao(D,this),V.touch0&&V.touch0[2]===D.identifier?V.touch0[0]=C:V.touch1&&V.touch1[2]===D.identifier&&(V.touch1[0]=C);if(D=V.that.__zoom,V.touch1){var te=V.touch0[0],ne=V.touch0[1],me=V.touch1[0],Me=V.touch1[1],Ne=(Ne=me[0]-te[0])*Ne+(Ne=me[1]-te[1])*Ne,Fe=(Fe=Me[0]-ne[0])*Fe+(Fe=Me[1]-ne[1])*Fe;D=B(D,Math.sqrt(Ne/Fe)),C=[(te[0]+me[0])/2,(te[1]+me[1])/2],U=[(ne[0]+Me[0])/2,(ne[1]+Me[1])/2]}else if(V.touch0)C=V.touch0[0],U=V.touch0[1];else return;V.zoom("touch",r(P(D,C,U),V.extent,c))}}function K(W,...X){if(this.__zooming){var V=se(this,X).event(W),Q=W.changedTouches,k=Q.length,M,D;for(fm(W),v&&clearTimeout(v),v=setTimeout(function(){v=null},b),M=0;M<k;++M)D=Q[M],V.touch0&&V.touch0[2]===D.identifier?delete V.touch0:V.touch1&&V.touch1[2]===D.identifier&&delete V.touch1;if(V.touch1&&!V.touch0&&(V.touch0=V.touch1,delete V.touch1),V.touch0)V.touch0[1]=this.__zoom.invert(V.touch0[0]);else if(V.end(),V.taps===2&&(D=Ao(D,this),Math.hypot(x[0]-D[0],x[1]-D[1])<A)){var C=so(this).on("dblclick.zoom");C&&C.apply(this,arguments)}}}return T.wheelDelta=function(W){return arguments.length?(o=typeof W=="function"?W:Rd(+W),T):o},T.filter=function(W){return arguments.length?(e=typeof W=="function"?W:Rd(!!W),T):e},T.touchable=function(W){return arguments.length?(l=typeof W=="function"?W:Rd(!!W),T):l},T.extent=function(W){return arguments.length?(t=typeof W=="function"?W:Rd([[+W[0][0],+W[0][1]],[+W[1][0],+W[1][1]]]),T):t},T.scaleExtent=function(W){return arguments.length?(u[0]=+W[0],u[1]=+W[1],T):[u[0],u[1]]},T.translateExtent=function(W){return arguments.length?(c[0][0]=+W[0][0],c[1][0]=+W[1][0],c[0][1]=+W[0][1],c[1][1]=+W[1][1],T):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},T.constrain=function(W){return arguments.length?(r=W,T):r},T.duration=function(W){return arguments.length?(d=+W,T):d},T.interpolate=function(W){return arguments.length?(h=W,T):h},T.on=function(){var W=_.on.apply(_,arguments);return W===_?T:W},T.clickDistance=function(W){return arguments.length?(S=(W=+W)*W,T):Math.sqrt(S)},T.tapDistance=function(W){return arguments.length?(A=+W,T):A},T}const hf=m.createContext(null),yj=hf.Provider,Pa={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.`},ey=Pa.error001();function ir(e,t){const r=m.useContext(hf);if(r===null)throw new Error(ey);return k_(r,e,t)}const os=()=>{const e=m.useContext(hf);if(e===null)throw new Error(ey);return m.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},xj=e=>e.userSelectionActive?"none":"all";function Vu({position:e,children:t,className:r,style:o,...l}){const u=ir(xj),c=`${e}`.split("-");return $e.createElement("div",{className:Es(["react-flow__panel",r,...c]),style:{...o,pointerEvents:u},...l},t)}function vj({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:$e.createElement(Vu,{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"},$e.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const wj=({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=Es(["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:$e.createElement("g",{transform:`translate(${e-v.width/2} ${t-v.height/2})`,className:j,visibility:v.width?"visible":"hidden",...g},l&&$e.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}),$e.createElement("text",{className:"react-flow__edge-text",y:v.height/2,dy:"0.3em",ref:x,style:o},r),h)};var bj=m.memo(wj);const fh=e=>({width:e.offsetWidth,height:e.offsetHeight}),Qc=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),mh=(e={x:0,y:0},t)=>({x:Qc(e.x,t[0][0],t[1][0]),y:Qc(e.y,t[0][1],t[1][1])}),dg=(e,t,r)=>e<t?Qc(Math.abs(e-t),1,50)/50:e>r?-Qc(Math.abs(e-r),1,50)/50:0,ty=(e,t)=>{const r=dg(e.x,35,t.width-35)*20,o=dg(e.y,35,t.height-35)*20;return[r,o]},ny=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},ry=(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)}),qu=({x:e,y:t,width:r,height:o})=>({x:e,y:t,x2:e+r,y2:t+o}),sy=({x:e,y:t,x2:r,y2:o})=>({x:e,y:t,width:r-e,height:o-t}),fg=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Sj=(e,t)=>sy(ry(qu(e),qu(t))),Wm=(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)},jj=e=>io(e.width)&&io(e.height)&&io(e.x)&&io(e.y),io=e=>!isNaN(e)&&isFinite(e),Jr=Symbol.for("internals"),iy=["Enter"," ","Escape"],kj=(e,t)=>{},Nj=e=>"nativeEvent"in e;function Hm(e){var l,u;const t=Nj(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 oy=e=>"clientX"in e,hl=(e,t)=>{var u,c;const r=oy(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)}},rf=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},ed=({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})=>$e.createElement($e.Fragment,null,$e.createElement("path",{id:e,style:g,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:x,markerStart:v}),b&&$e.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:b,className:"react-flow__edge-interaction"}),l&&io(r)&&io(o)?$e.createElement(bj,{x:r,y:o,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_}):null);ed.displayName="BaseEdge";function $u(e,t,r){return r===void 0?r:o=>{const l=t().edges.find(u=>u.id===e);l&&r(o,{...l})}}function ay({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 ly({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 ec;(function(e){e.Strict="strict",e.Loose="loose"})(ec||(ec={}));var Kl;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Kl||(Kl={}));var Gu;(function(e){e.Partial="partial",e.Full="full"})(Gu||(Gu={}));var ml;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ml||(ml={}));var Yu;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Yu||(Yu={}));var Ot;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ot||(Ot={}));function mg({pos:e,x1:t,y1:r,x2:o,y2:l}){return e===Ot.Left||e===Ot.Right?[.5*(t+o),r]:[t,.5*(r+l)]}function cy({sourceX:e,sourceY:t,sourcePosition:r=Ot.Bottom,targetX:o,targetY:l,targetPosition:u=Ot.Top}){const[c,d]=mg({pos:r,x1:e,y1:t,x2:o,y2:l}),[h,_]=mg({pos:u,x1:o,y1:l,x2:e,y2:t}),[g,x,v,b]=ly({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 hh=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:l=Ot.Bottom,targetPosition:u=Ot.Top,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:S})=>{const[A,T,B]=cy({sourceX:e,sourceY:t,sourcePosition:l,targetX:r,targetY:o,targetPosition:u});return $e.createElement(ed,{path:A,labelX:T,labelY:B,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:S})});hh.displayName="SimpleBezierEdge";const hg={[Ot.Left]:{x:-1,y:0},[Ot.Right]:{x:1,y:0},[Ot.Top]:{x:0,y:-1},[Ot.Bottom]:{x:0,y:1}},Cj=({source:e,sourcePosition:t=Ot.Bottom,target:r})=>t===Ot.Left||t===Ot.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},pg=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ej({source:e,sourcePosition:t=Ot.Bottom,target:r,targetPosition:o=Ot.Top,center:l,offset:u}){const c=hg[t],d=hg[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=Cj({source:h,sourcePosition:t,target:_}),x=g.x!==0?"x":"y",v=g[x];let b=[],j,S;const A={x:0,y:0},T={x:0,y:0},[B,P,F,G]=ay({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(c[x]*d[x]===-1){j=l.x||B,S=l.y||P;const Y=[{x:j,y:h.y},{x:j,y:_.y}],le=[{x:h.x,y:S},{x:_.x,y:S}];c[x]===v?b=x==="x"?Y:le:b=x==="x"?le:Y}else{const Y=[{x:h.x,y:_.y}],le=[{x:_.x,y:h.y}];if(x==="x"?b=c.x===v?le:Y:b=c.y===v?Y:le,t===o){const K=Math.abs(e[x]-r[x]);if(K<=u){const W=Math.min(u-1,u-K);c[x]===v?A[x]=(h[x]>e[x]?-1:1)*W:T[x]=(_[x]>r[x]?-1:1)*W}}if(t!==o){const K=x==="x"?"y":"x",W=c[x]===d[K],X=h[K]>_[K],V=h[K]<_[K];(c[x]===1&&(!W&&X||W&&V)||c[x]!==1&&(!W&&V||W&&X))&&(b=x==="x"?Y:le)}const oe={x:h.x+A.x,y:h.y+A.y},ge={x:_.x+T.x,y:_.y+T.y},Re=Math.max(Math.abs(oe.x-b[0].x),Math.abs(ge.x-b[0].x)),Te=Math.max(Math.abs(oe.y-b[0].y),Math.abs(ge.y-b[0].y));Re>=Te?(j=(oe.x+ge.x)/2,S=b[0].y):(j=b[0].x,S=(oe.y+ge.y)/2)}return[[e,{x:h.x+A.x,y:h.y+A.y},...b,{x:_.x+T.x,y:_.y+T.y},r],j,S,F,G]}function $j(e,t,r,o){const l=Math.min(pg(e,t)/2,pg(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 Vm({sourceX:e,sourceY:t,sourcePosition:r=Ot.Bottom,targetX:o,targetY:l,targetPosition:u=Ot.Top,borderRadius:c=5,centerX:d,centerY:h,offset:_=20}){const[g,x,v,b,j]=Ej({source:{x:e,y:t},sourcePosition:r,target:{x:o,y:l},targetPosition:u,center:{x:d,y:h},offset:_});return[g.reduce((A,T,B)=>{let P="";return B>0&&B<g.length-1?P=$j(g[B-1],T,g[B+1],c):P=`${B===0?"M":"L"}${T.x} ${T.y}`,A+=P,A},""),x,v,b,j]}const pf=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=Ot.Bottom,targetPosition:v=Ot.Top,markerEnd:b,markerStart:j,pathOptions:S,interactionWidth:A})=>{const[T,B,P]=Vm({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 $e.createElement(ed,{path:T,labelX:B,labelY:P,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:b,markerStart:j,interactionWidth:A})});pf.displayName="SmoothStepEdge";const ph=m.memo(e=>{var t;return $e.createElement(pf,{...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])})});ph.displayName="StepEdge";function Aj({sourceX:e,sourceY:t,targetX:r,targetY:o}){const[l,u,c,d]=ay({sourceX:e,sourceY:t,targetX:r,targetY:o});return[`M ${e},${t}L ${r},${o}`,l,u,c,d]}const gh=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,A]=Aj({sourceX:e,sourceY:t,targetX:r,targetY:o});return $e.createElement(ed,{path:j,labelX:S,labelY:A,label:l,labelStyle:u,labelShowBg:c,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:_,style:g,markerEnd:x,markerStart:v,interactionWidth:b})});gh.displayName="StraightEdge";function Ld(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function gg({pos:e,x1:t,y1:r,x2:o,y2:l,c:u}){switch(e){case Ot.Left:return[t-Ld(t-o,u),r];case Ot.Right:return[t+Ld(o-t,u),r];case Ot.Top:return[t,r-Ld(r-l,u)];case Ot.Bottom:return[t,r+Ld(l-r,u)]}}function uy({sourceX:e,sourceY:t,sourcePosition:r=Ot.Bottom,targetX:o,targetY:l,targetPosition:u=Ot.Top,curvature:c=.25}){const[d,h]=gg({pos:r,x1:e,y1:t,x2:o,y2:l,c}),[_,g]=gg({pos:u,x1:o,y1:l,x2:e,y2:t,c}),[x,v,b,j]=ly({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 sf=m.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:l=Ot.Bottom,targetPosition:u=Ot.Top,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,pathOptions:S,interactionWidth:A})=>{const[T,B,P]=uy({sourceX:e,sourceY:t,sourcePosition:l,targetX:r,targetY:o,targetPosition:u,curvature:S==null?void 0:S.curvature});return $e.createElement(ed,{path:T,labelX:B,labelY:P,label:c,labelStyle:d,labelShowBg:h,labelBgStyle:_,labelBgPadding:g,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:j,interactionWidth:A})});sf.displayName="BezierEdge";const _h=m.createContext(null),Tj=_h.Provider;_h.Consumer;const Mj=()=>m.useContext(_h),zj=e=>"id"in e&&"source"in e&&"target"in e,Rj=({source:e,sourceHandle:t,target:r,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${r}${o||""}`,qm=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`,Lj=(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)),Pj=(e,t)=>{if(!e.source||!e.target)return t;let r;return zj(e)?r={...e}:r={...e,id:Rj(e)},Lj(r,t)?t:t.concat(r)},Gm=({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},dy=({x:e,y:t},[r,o,l])=>({x:e*l+r,y:t*l+o}),Ql=(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}},gf=(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}=Ql(l,t).positionAbsolute;return ry(o,qu({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 sy(r)},fy=(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}=Ql(g,d),A={x:S.x,y:S.y,width:x||0,height:v||0},T=Wm(h,A),B=typeof x>"u"||typeof v>"u"||x===null||v===null,P=u&&T>0,F=(x||0)*(v||0);(B||P||T>=F||g.dragging)&&_.push(g)}),_},my=(e,t)=>{const r=e.map(o=>o.id);return t.filter(o=>r.includes(o.source)||r.includes(o.target))},hy=(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),_=Qc(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:_}},Gl=(e,t=0)=>e.transition().duration(t);function _g(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 Ij(e,t,r,o,l,u){const{x:c,y:d}=hl(e),_=t.elementsFromPoint(c,d).find(j=>j.classList.contains("react-flow__handle"));if(_){const j=_.getAttribute("data-nodeid");if(j){const S=yh(void 0,_),A=_.getAttribute("data-handleid"),T=u({nodeId:j,id:A,type:S});if(T){const B=l.find(P=>P.nodeId===j&&P.type===S&&P.id===A);return{handle:{id:A,type:S,nodeId:j,x:(B==null?void 0:B.x)||r.x,y:(B==null?void 0:B.y)||r.y},validHandleResult:T}}}}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 A=u(j);S<=x&&(S<x?g=[{handle:j,validHandleResult:A}]:S===x&&g.push({handle:j,validHandleResult:A}),x=S)}}),!g.length)return{handle:null,validHandleResult:py()};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 Fj={source:null,target:null,sourceHandle:null,targetHandle:null},py=()=>({handleDomNode:null,isValid:!1,connection:Fj,endHandle:null});function gy(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}"]`),_={...py(),handleDomNode:h};if(h){const g=yh(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===ec.Strict?d&&g==="source"||!d&&g==="target":x!==r||v!==o)&&(_.endHandle={nodeId:x,handleId:v,type:g},_.isValid=u(S))}return _}function Oj({nodes:e,nodeId:t,handleId:r,handleType:o}){return e.reduce((l,u)=>{if(u[Jr]){const{handleBounds:c}=u[Jr];let d=[],h=[];c&&(d=_g(u,c,"source",`${t}-${r}-${o}`),h=_g(u,c,"target",`${t}-${r}-${o}`)),l.push(...d,...h)}return l},[])}function yh(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function mm(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Dj(e,t){let r=null;return t?r="valid":e&&!t&&(r="invalid"),r}function _y({event:e,handleId:t,nodeId:r,onConnect:o,isTarget:l,getState:u,setState:c,isValidConnection:d,edgeUpdaterType:h,onEdgeUpdateEnd:_}){const g=ny(e.target),{connectionMode:x,domNode:v,autoPanOnConnect:b,connectionRadius:j,onConnectStart:S,panBy:A,getNodes:T,cancelConnection:B}=u();let P=0,F;const{x:G,y:se}=hl(e),Y=g==null?void 0:g.elementFromPoint(G,se),le=yh(h,Y),oe=v==null?void 0:v.getBoundingClientRect();if(!oe||!le)return;let ge,Re=hl(e,oe),Te=!1,K=null,W=!1,X=null;const V=Oj({nodes:T(),nodeId:r,handleId:t,handleType:le}),Q=()=>{if(!b)return;const[D,C]=ty(Re,oe);A({x:D,y:C}),P=requestAnimationFrame(Q)};c({connectionPosition:Re,connectionStatus:null,connectionNodeId:r,connectionHandleId:t,connectionHandleType:le,connectionStartHandle:{nodeId:r,handleId:t,type:le},connectionEndHandle:null}),S==null||S(e,{nodeId:r,handleId:t,handleType:le});function k(D){const{transform:C}=u();Re=hl(D,oe);const{handle:U,validHandleResult:te}=Ij(D,g,Gm(Re,C,!1,[1,1]),j,V,ne=>gy(ne,x,r,t,l?"target":"source",d,g));if(F=U,Te||(Q(),Te=!0),X=te.handleDomNode,K=te.connection,W=te.isValid,c({connectionPosition:F&&W?dy({x:F.x,y:F.y},C):Re,connectionStatus:Dj(!!F,W),connectionEndHandle:te.endHandle}),!F&&!W&&!X)return mm(ge);K.source!==K.target&&X&&(mm(ge),ge=X,X.classList.add("connecting","react-flow__handle-connecting"),X.classList.toggle("valid",W),X.classList.toggle("react-flow__handle-valid",W))}function M(D){var C,U;(F||X)&&K&&W&&(o==null||o(K)),(U=(C=u()).onConnectEnd)==null||U.call(C,D),h&&(_==null||_(D)),mm(ge),B(),cancelAnimationFrame(P),Te=!1,W=!1,K=null,X=null,g.removeEventListener("mousemove",k),g.removeEventListener("mouseup",M),g.removeEventListener("touchmove",k),g.removeEventListener("touchend",M)}g.addEventListener("mousemove",k),g.addEventListener("mouseup",M),g.addEventListener("touchmove",k),g.addEventListener("touchend",M)}const yg=()=>!0,Bj=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Uj=(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}},yy=m.forwardRef(({type:e="source",position:t=Ot.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 oe,ge;const j=c||null,S=e==="target",A=os(),T=Mj(),{connectOnClick:B,noPanClassName:P}=ir(Bj,ws),{connecting:F,clickConnecting:G}=ir(Uj(T,j,e),ws);T||(ge=(oe=A.getState()).onError)==null||ge.call(oe,"010",Pa.error010());const se=Re=>{const{defaultEdgeOptions:Te,onConnect:K,hasDefaultEdges:W}=A.getState(),X={...Te,...Re};if(W){const{edges:V,setEdges:Q}=A.getState();Q(Pj(X,V))}K==null||K(X),d==null||d(X)},Y=Re=>{if(!T)return;const Te=oy(Re);l&&(Te&&Re.button===0||!Te)&&_y({event:Re,handleId:j,nodeId:T,onConnect:se,isTarget:S,getState:A.getState,setState:A.setState,isValidConnection:r||A.getState().isValidConnection||yg}),Te?g==null||g(Re):x==null||x(Re)},le=Re=>{const{onClickConnectStart:Te,onClickConnectEnd:K,connectionClickStartHandle:W,connectionMode:X,isValidConnection:V}=A.getState();if(!T||!W&&!l)return;if(!W){Te==null||Te(Re,{nodeId:T,handleId:j,handleType:e}),A.setState({connectionClickStartHandle:{nodeId:T,type:e,handleId:j}});return}const Q=ny(Re.target),k=r||V||yg,{connection:M,isValid:D}=gy({nodeId:T,id:j,type:e},X,W.nodeId,W.handleId||null,W.type,k,Q);D&&se(M),K==null||K(Re),A.setState({connectionClickStartHandle:null})};return $e.createElement("div",{"data-handleid":j,"data-nodeid":T,"data-handlepos":t,"data-id":`${T}-${j}-${e}`,className:Es(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",P,_,{source:!S,target:S,connectable:o,connectablestart:l,connectableend:u,connecting:G,connectionindicator:o&&(l&&!F||u&&F)}]),onMouseDown:Y,onTouchStart:Y,onClick:B?le:void 0,ref:b,...v},h)});yy.displayName="Handle";var of=m.memo(yy);const xy=({data:e,isConnectable:t,targetPosition:r=Ot.Top,sourcePosition:o=Ot.Bottom})=>$e.createElement($e.Fragment,null,$e.createElement(of,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label,$e.createElement(of,{type:"source",position:o,isConnectable:t}));xy.displayName="DefaultNode";var Ym=m.memo(xy);const vy=({data:e,isConnectable:t,sourcePosition:r=Ot.Bottom})=>$e.createElement($e.Fragment,null,e==null?void 0:e.label,$e.createElement(of,{type:"source",position:r,isConnectable:t}));vy.displayName="InputNode";var wy=m.memo(vy);const by=({data:e,isConnectable:t,targetPosition:r=Ot.Top})=>$e.createElement($e.Fragment,null,$e.createElement(of,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label);by.displayName="OutputNode";var Sy=m.memo(by);const xh=()=>null;xh.displayName="GroupNode";const Wj=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected)}),Pd=e=>e.id;function Hj(e,t){return ws(e.selectedNodes.map(Pd),t.selectedNodes.map(Pd))&&ws(e.selectedEdges.map(Pd),t.selectedEdges.map(Pd))}const jy=m.memo(({onSelectionChange:e})=>{const t=os(),{selectedNodes:r,selectedEdges:o}=ir(Wj,Hj);return m.useEffect(()=>{const l={nodes:r,edges:o};e==null||e(l),t.getState().onSelectionChange.forEach(u=>u(l))},[r,o,e]),null});jy.displayName="SelectionListener";const Vj=e=>!!e.onSelectionChange;function qj({onSelectionChange:e}){const t=ir(Vj);return e||t?$e.createElement(jy,{onSelectionChange:e}):null}const Gj=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 Lc(e,t){m.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function Sn(e,t,r){m.useEffect(()=>{typeof t<"u"&&r({[e]:t})},[t])}const Yj=({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:A,nodeExtent:T,onNodesChange:B,onEdgesChange:P,elementsSelectable:F,connectionMode:G,snapGrid:se,snapToGrid:Y,translateExtent:le,connectOnClick:oe,defaultEdgeOptions:ge,fitView:Re,fitViewOptions:Te,onNodesDelete:K,onEdgesDelete:W,onNodeDrag:X,onNodeDragStart:V,onNodeDragStop:Q,onSelectionDrag:k,onSelectionDragStart:M,onSelectionDragStop:D,noPanClassName:C,nodeOrigin:U,rfId:te,autoPanOnConnect:ne,autoPanOnNodeDrag:me,onError:Me,connectionRadius:Ne,isValidConnection:Fe,nodeDragThreshold:Be})=>{const{setNodes:_e,setEdges:ve,setDefaultNodesAndEdges:ae,setMinZoom:we,setMaxZoom:Pe,setTranslateExtent:Ke,setNodeExtent:et,reset:Ae}=ir(Gj,ws),Oe=os();return m.useEffect(()=>{const lt=o==null?void 0:o.map(xe=>({...xe,...ge}));return ae(r,lt),()=>{Ae()}},[]),Sn("defaultEdgeOptions",ge,Oe.setState),Sn("connectionMode",G,Oe.setState),Sn("onConnect",l,Oe.setState),Sn("onConnectStart",u,Oe.setState),Sn("onConnectEnd",c,Oe.setState),Sn("onClickConnectStart",d,Oe.setState),Sn("onClickConnectEnd",h,Oe.setState),Sn("nodesDraggable",_,Oe.setState),Sn("nodesConnectable",g,Oe.setState),Sn("nodesFocusable",x,Oe.setState),Sn("edgesFocusable",v,Oe.setState),Sn("edgesUpdatable",b,Oe.setState),Sn("elementsSelectable",F,Oe.setState),Sn("elevateNodesOnSelect",j,Oe.setState),Sn("snapToGrid",Y,Oe.setState),Sn("snapGrid",se,Oe.setState),Sn("onNodesChange",B,Oe.setState),Sn("onEdgesChange",P,Oe.setState),Sn("connectOnClick",oe,Oe.setState),Sn("fitViewOnInit",Re,Oe.setState),Sn("fitViewOnInitOptions",Te,Oe.setState),Sn("onNodesDelete",K,Oe.setState),Sn("onEdgesDelete",W,Oe.setState),Sn("onNodeDrag",X,Oe.setState),Sn("onNodeDragStart",V,Oe.setState),Sn("onNodeDragStop",Q,Oe.setState),Sn("onSelectionDrag",k,Oe.setState),Sn("onSelectionDragStart",M,Oe.setState),Sn("onSelectionDragStop",D,Oe.setState),Sn("noPanClassName",C,Oe.setState),Sn("nodeOrigin",U,Oe.setState),Sn("rfId",te,Oe.setState),Sn("autoPanOnConnect",ne,Oe.setState),Sn("autoPanOnNodeDrag",me,Oe.setState),Sn("onError",Me,Oe.setState),Sn("connectionRadius",Ne,Oe.setState),Sn("isValidConnection",Fe,Oe.setState),Sn("nodeDragThreshold",Be,Oe.setState),Lc(e,_e),Lc(t,ve),Lc(S,we),Lc(A,Pe),Lc(le,Ke),Lc(T,et),null},xg={display:"none"},Xj={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ky="react-flow__node-desc",Ny="react-flow__edge-desc",Kj="react-flow__aria-live",Jj=e=>e.ariaLiveMessage;function Qj({rfId:e}){const t=ir(Jj);return $e.createElement("div",{id:`${Kj}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Xj},t)}function Zj({rfId:e,disableKeyboardA11y:t}){return $e.createElement($e.Fragment,null,$e.createElement("div",{id:`${ky}-${e}`,style:xg},"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."," "),$e.createElement("div",{id:`${Ny}-${e}`,style:xg},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&$e.createElement(Qj,{rfId:e}))}var Xu=(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)&&Hm(b))return!1;const S=wg(b.code,d);u.current.add(b[S]),vg(c,u.current,!1)&&(b.preventDefault(),o(!0))},x=b=>{if((!l.current||l.current&&!t.actInsideInputWithModifier)&&Hm(b))return!1;const S=wg(b.code,d);vg(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 vg(e,t,r){return e.filter(o=>r||o.length===t.size).some(o=>o.every(l=>t.has(l)))}function wg(e,t){return t.includes(e)?"code":"key"}function Cy(e,t,r,o){var c,d;if(!e.parentNode)return r;const l=t.get(e.parentNode),u=Ql(l,o);return Cy(l,t,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[Jr])==null?void 0:c.z)??0)>(r.z??0)?((d=l[Jr])==null?void 0:d.z)??0:r.z??0},o)}function Ey(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}=Cy(o,e,{...o.position,z:((l=o[Jr])==null?void 0:l.z)??0},t);o.positionAbsolute={x:u,y:c},o[Jr].z=d,r!=null&&r[o.id]&&(o[Jr].isParent=!0)}})}function hm(e,t,r,o){const l=new Map,u={},c=o?1e3:0;return e.forEach(d=>{var v;const h=(io(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,Jr,{enumerable:!1,value:{handleBounds:x||(v=_==null?void 0:_[Jr])==null?void 0:v.handleBounds,z:h}}),l.set(d.id,g)}),Ey(l,r,u),l}function $y(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(A=>{var B;const T=t.includeHiddenNodes?A.width&&A.height:!A.hidden;return(B=t.nodes)!=null&&B.length?T&&t.nodes.some(P=>P.id===A.id):T}),S=j.every(A=>A.width&&A.height);if(j.length>0&&S){const A=gf(j,x),{x:T,y:B,zoom:P}=hy(A,o,l,t.minZoom??u,t.maxZoom??c,t.padding??.1),F=Ra.translate(T,B).scale(P);return typeof t.duration=="number"&&t.duration>0?d.transform(Gl(h,t.duration),F):d.transform(h,F),!0}}return!1}function ek(e,t){return e.forEach(r=>{const o=t.get(r.id);o&&t.set(o.id,{...o,[Jr]:o[Jr],selected:r.selected})}),new Map(t)}function tk(e,t){return t.map(r=>{const o=e.find(l=>l.id===r.id);return o&&(r.selected=o.selected),r})}function Id({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:ek(e,l)}),c==null||c(e)),t!=null&&t.length&&(_&&o({edges:tk(t,u)}),d==null||d(t))}const Pc=()=>{},nk={zoomIn:Pc,zoomOut:Pc,zoomTo:Pc,getZoom:()=>1,setViewport:Pc,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Pc,fitBounds:Pc,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},rk=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),sk=()=>{const e=os(),{d3Zoom:t,d3Selection:r}=ir(rk,ws);return m.useMemo(()=>r&&t?{zoomIn:l=>t.scaleBy(Gl(r,l==null?void 0:l.duration),1.2),zoomOut:l=>t.scaleBy(Gl(r,l==null?void 0:l.duration),1/1.2),zoomTo:(l,u)=>t.scaleTo(Gl(r,u==null?void 0:u.duration),l),getZoom:()=>e.getState().transform[2],setViewport:(l,u)=>{const[c,d,h]=e.getState().transform,_=Ra.translate(l.x??c,l.y??d).scale(l.zoom??h);t.transform(Gl(r,u==null?void 0:u.duration),_)},getViewport:()=>{const[l,u,c]=e.getState().transform;return{x:l,y:u,zoom:c}},fitView:l=>$y(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=Ra.translate(x,v).scale(g);t.transform(Gl(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}=hy(l,c,d,h,_,(u==null?void 0:u.padding)??.1),b=Ra.translate(g,x).scale(v);t.transform(Gl(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"),Gm(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 Gm(x,u,c,d)},flowToScreenPosition:l=>{const{transform:u,domNode:c}=e.getState();if(!c)return l;const{x:d,y:h}=c.getBoundingClientRect(),_=dy(l,u);return{x:_.x+d,y:_.y+h}},viewportInitialized:!0}:nk,[t,r])};function vh(){const e=sk(),t=os(),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(A=>({...A}))},[]),u=m.useCallback(S=>{const{edges:A=[]}=t.getState();return A.find(T=>T.id===S)},[]),c=m.useCallback(S=>{const{getNodes:A,setNodes:T,hasDefaultNodes:B,onNodesChange:P}=t.getState(),F=A(),G=typeof S=="function"?S(F):S;if(B)T(G);else if(P){const se=G.length===0?F.map(Y=>({type:"remove",id:Y.id})):G.map(Y=>({item:Y,type:"reset"}));P(se)}},[]),d=m.useCallback(S=>{const{edges:A=[],setEdges:T,hasDefaultEdges:B,onEdgesChange:P}=t.getState(),F=typeof S=="function"?S(A):S;if(B)T(F);else if(P){const G=F.length===0?A.map(se=>({type:"remove",id:se.id})):F.map(se=>({item:se,type:"reset"}));P(G)}},[]),h=m.useCallback(S=>{const A=Array.isArray(S)?S:[S],{getNodes:T,setNodes:B,hasDefaultNodes:P,onNodesChange:F}=t.getState();if(P){const se=[...T(),...A];B(se)}else if(F){const G=A.map(se=>({item:se,type:"add"}));F(G)}},[]),_=m.useCallback(S=>{const A=Array.isArray(S)?S:[S],{edges:T=[],setEdges:B,hasDefaultEdges:P,onEdgesChange:F}=t.getState();if(P)B([...T,...A]);else if(F){const G=A.map(se=>({item:se,type:"add"}));F(G)}},[]),g=m.useCallback(()=>{const{getNodes:S,edges:A=[],transform:T}=t.getState(),[B,P,F]=T;return{nodes:S().map(G=>({...G})),edges:A.map(G=>({...G})),viewport:{x:B,y:P,zoom:F}}},[]),x=m.useCallback(({nodes:S,edges:A})=>{const{nodeInternals:T,getNodes:B,edges:P,hasDefaultNodes:F,hasDefaultEdges:G,onNodesDelete:se,onEdgesDelete:Y,onNodesChange:le,onEdgesChange:oe}=t.getState(),ge=(S||[]).map(X=>X.id),Re=(A||[]).map(X=>X.id),Te=B().reduce((X,V)=>{const Q=!ge.includes(V.id)&&V.parentNode&&X.find(M=>M.id===V.parentNode);return(typeof V.deletable=="boolean"?V.deletable:!0)&&(ge.includes(V.id)||Q)&&X.push(V),X},[]),K=P.filter(X=>typeof X.deletable=="boolean"?X.deletable:!0),W=K.filter(X=>Re.includes(X.id));if(Te||W){const X=my(Te,K),V=[...W,...X],Q=V.reduce((k,M)=>(k.includes(M.id)||k.push(M.id),k),[]);if((G||F)&&(G&&t.setState({edges:P.filter(k=>!Q.includes(k.id))}),F&&(Te.forEach(k=>{T.delete(k.id)}),t.setState({nodeInternals:new Map(T)}))),Q.length>0&&(Y==null||Y(V),oe&&oe(Q.map(k=>({id:k,type:"remove"})))),Te.length>0&&(se==null||se(Te),le)){const k=Te.map(M=>({id:M.id,type:"remove"}));le(k)}}},[]),v=m.useCallback(S=>{const A=jj(S),T=A?null:t.getState().nodeInternals.get(S.id);return!A&&!T?[null,null,A]:[A?S:fg(T),T,A]},[]),b=m.useCallback((S,A=!0,T)=>{const[B,P,F]=v(S);return B?(T||t.getState().getNodes()).filter(G=>{if(!F&&(G.id===P.id||!G.positionAbsolute))return!1;const se=fg(G),Y=Wm(se,B);return A&&Y>0||Y>=B.width*B.height}):[]},[]),j=m.useCallback((S,A,T=!0)=>{const[B]=v(S);if(!B)return!1;const P=Wm(B,A);return T&&P>0||P>=B.width*B.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 ik={actInsideInputWithModifier:!1};var ok=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const r=os(),{deleteElements:o}=vh(),l=Xu(e,ik),u=Xu(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 ak(e){const t=os();m.useEffect(()=>{let r;const o=()=>{var u,c;if(!e.current)return;const l=fh(e.current);(l.height===0||l.width===0)&&((c=(u=t.getState()).onError)==null||c.call(u,"004",Pa.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 wh={position:"absolute",width:"100%",height:"100%",top:0,left:0},lk=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,Fd=e=>({x:e.x,y:e.y,zoom:e.k}),Ic=(e,t)=>e.target.closest(`.${t}`),bg=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Sg=e=>{const t=e.ctrlKey&&rf()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},ck=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),uk=({onMove:e,onMoveStart:t,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:l=!0,zoomOnPinch:u=!0,panOnScroll:c=!1,panOnScrollSpeed:d=.5,panOnScrollMode:h=Kl.Free,zoomOnDoubleClick:_=!0,elementsSelectable:g,panOnDrag:x=!0,defaultViewport:v,translateExtent:b,minZoom:j,maxZoom:S,zoomActivationKeyCode:A,preventScrolling:T=!0,children:B,noWheelClassName:P,noPanClassName:F})=>{const G=m.useRef(),se=os(),Y=m.useRef(!1),le=m.useRef(!1),oe=m.useRef(null),ge=m.useRef({x:0,y:0,zoom:0}),{d3Zoom:Re,d3Selection:Te,d3ZoomHandler:K,userSelectionActive:W}=ir(ck,ws),X=Xu(A),V=m.useRef(0),Q=m.useRef(!1),k=m.useRef();return ak(oe),m.useEffect(()=>{if(oe.current){const M=oe.current.getBoundingClientRect(),D=Z_().scaleExtent([j,S]).translateExtent(b),C=so(oe.current).call(D),U=Ra.translate(v.x,v.y).scale(Qc(v.zoom,j,S)),te=[[0,0],[M.width,M.height]],ne=D.constrain()(U,te,b);D.transform(C,ne),D.wheelDelta(Sg),se.setState({d3Zoom:D,d3Selection:C,d3ZoomHandler:C.on("wheel.zoom"),transform:[ne.x,ne.y,ne.k],domNode:oe.current.closest(".react-flow")})}},[]),m.useEffect(()=>{Te&&Re&&(c&&!X&&!W?Te.on("wheel.zoom",M=>{if(Ic(M,P))return!1;M.preventDefault(),M.stopImmediatePropagation();const D=Te.property("__zoom").k||1,C=rf();if(M.ctrlKey&&u&&C){const Be=Ao(M),_e=Sg(M),ve=D*Math.pow(2,_e);Re.scaleTo(Te,ve,Be,M);return}const U=M.deltaMode===1?20:1;let te=h===Kl.Vertical?0:M.deltaX*U,ne=h===Kl.Horizontal?0:M.deltaY*U;!C&&M.shiftKey&&h!==Kl.Vertical&&(te=M.deltaY*U,ne=0),Re.translateBy(Te,-(te/D)*d,-(ne/D)*d,{internal:!0});const me=Fd(Te.property("__zoom")),{onViewportChangeStart:Me,onViewportChange:Ne,onViewportChangeEnd:Fe}=se.getState();clearTimeout(k.current),Q.current||(Q.current=!0,t==null||t(M,me),Me==null||Me(me)),Q.current&&(e==null||e(M,me),Ne==null||Ne(me),k.current=setTimeout(()=>{r==null||r(M,me),Fe==null||Fe(me),Q.current=!1},150))},{passive:!1}):typeof K<"u"&&Te.on("wheel.zoom",function(M,D){if(!T||Ic(M,P))return null;M.preventDefault(),K.call(this,M,D)},{passive:!1}))},[W,c,h,Te,Re,K,X,u,T,P,t,e,r]),m.useEffect(()=>{Re&&Re.on("start",M=>{var U,te;if(!M.sourceEvent||M.sourceEvent.internal)return null;V.current=(U=M.sourceEvent)==null?void 0:U.button;const{onViewportChangeStart:D}=se.getState(),C=Fd(M.transform);Y.current=!0,ge.current=C,((te=M.sourceEvent)==null?void 0:te.type)==="mousedown"&&se.setState({paneDragging:!0}),D==null||D(C),t==null||t(M.sourceEvent,C)})},[Re,t]),m.useEffect(()=>{Re&&(W&&!Y.current?Re.on("zoom",null):W||Re.on("zoom",M=>{var C;const{onViewportChange:D}=se.getState();if(se.setState({transform:[M.transform.x,M.transform.y,M.transform.k]}),le.current=!!(o&&bg(x,V.current??0)),(e||D)&&!((C=M.sourceEvent)!=null&&C.internal)){const U=Fd(M.transform);D==null||D(U),e==null||e(M.sourceEvent,U)}}))},[W,Re,e,x,o]),m.useEffect(()=>{Re&&Re.on("end",M=>{if(!M.sourceEvent||M.sourceEvent.internal)return null;const{onViewportChangeEnd:D}=se.getState();if(Y.current=!1,se.setState({paneDragging:!1}),o&&bg(x,V.current??0)&&!le.current&&o(M.sourceEvent),le.current=!1,(r||D)&&lk(ge.current,M.transform)){const C=Fd(M.transform);ge.current=C,clearTimeout(G.current),G.current=setTimeout(()=>{D==null||D(C),r==null||r(M.sourceEvent,C)},c?150:0)}})},[Re,c,x,r,o]),m.useEffect(()=>{Re&&Re.filter(M=>{const D=X||l,C=u&&M.ctrlKey;if((x===!0||Array.isArray(x)&&x.includes(1))&&M.button===1&&M.type==="mousedown"&&(Ic(M,"react-flow__node")||Ic(M,"react-flow__edge")))return!0;if(!x&&!D&&!c&&!_&&!u||W||!_&&M.type==="dblclick"||Ic(M,P)&&M.type==="wheel"||Ic(M,F)&&(M.type!=="wheel"||c&&M.type==="wheel"&&!X)||!u&&M.ctrlKey&&M.type==="wheel"||!D&&!c&&!C&&M.type==="wheel"||!x&&(M.type==="mousedown"||M.type==="touchstart")||Array.isArray(x)&&!x.includes(M.button)&&(M.type==="mousedown"||M.type==="touchstart"))return!1;const U=Array.isArray(x)&&x.includes(M.button)||!M.button||M.button<=1;return(!M.ctrlKey||M.type==="wheel")&&U})},[W,Re,l,u,c,_,x,g,X]),$e.createElement("div",{className:"react-flow__renderer",ref:oe,style:wh},B)},dk=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function fk(){const{userSelectionActive:e,userSelectionRect:t}=ir(dk,ws);return e&&t?$e.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 jg(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 mk(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&&jg(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&&jg(o,c);break}case"remove":return o}return o.push(c),o},r)}function hk(e,t){return mk(e,t)}const fl=(e,t)=>({id:e,type:"select",selected:t});function Hc(e,t){return e.reduce((r,o)=>{const l=t.includes(o.id);return!o.selected&&l?(o.selected=!0,r.push(fl(o.id,!0))):o.selected&&!l&&(o.selected=!1,r.push(fl(o.id,!1))),r},[])}const pm=(e,t)=>r=>{r.target===t.current&&(e==null||e(r))},pk=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Ay=m.memo(({isSelecting:e,selectionMode:t=Gu.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=os(),j=m.useRef(0),S=m.useRef(0),A=m.useRef(),{userSelectionActive:T,elementsSelectable:B,dragging:P}=ir(pk,ws),F=()=>{b.setState({userSelectionActive:!1,userSelectionRect:null}),j.current=0,S.current=0},G=K=>{u==null||u(K),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},se=K=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){K.preventDefault();return}c==null||c(K)},Y=d?K=>d(K):void 0,le=K=>{const{resetSelectedElements:W,domNode:X}=b.getState();if(A.current=X==null?void 0:X.getBoundingClientRect(),!B||!e||K.button!==0||K.target!==v.current||!A.current)return;const{x:V,y:Q}=hl(K,A.current);W(),b.setState({userSelectionRect:{width:0,height:0,startX:V,startY:Q,x:V,y:Q}}),o==null||o(K)},oe=K=>{const{userSelectionRect:W,nodeInternals:X,edges:V,transform:Q,onNodesChange:k,onEdgesChange:M,nodeOrigin:D,getNodes:C}=b.getState();if(!e||!A.current||!W)return;b.setState({userSelectionActive:!0,nodesSelectionActive:!1});const U=hl(K,A.current),te=W.startX??0,ne=W.startY??0,me={...W,x:U.x<te?U.x:te,y:U.y<ne?U.y:ne,width:Math.abs(U.x-te),height:Math.abs(U.y-ne)},Me=C(),Ne=fy(X,me,Q,t===Gu.Partial,!0,D),Fe=my(Ne,V).map(_e=>_e.id),Be=Ne.map(_e=>_e.id);if(j.current!==Be.length){j.current=Be.length;const _e=Hc(Me,Be);_e.length&&(k==null||k(_e))}if(S.current!==Fe.length){S.current=Fe.length;const _e=Hc(V,Fe);_e.length&&(M==null||M(_e))}b.setState({userSelectionRect:me})},ge=K=>{if(K.button!==0)return;const{userSelectionRect:W}=b.getState();!T&&W&&K.target===v.current&&(G==null||G(K)),b.setState({nodesSelectionActive:j.current>0}),F(),l==null||l(K)},Re=K=>{T&&(b.setState({nodesSelectionActive:j.current>0}),l==null||l(K)),F()},Te=B&&(e||T);return $e.createElement("div",{className:Es(["react-flow__pane",{dragging:P,selection:e}]),onClick:Te?void 0:pm(G,v),onContextMenu:pm(se,v),onWheel:pm(Y,v),onMouseEnter:Te?void 0:h,onMouseDown:Te?le:void 0,onMouseMove:Te?oe:_,onMouseUp:Te?ge:void 0,onMouseLeave:Te?Re:g,ref:v,style:wh},x,$e.createElement(fk,null))});Ay.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 kg(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 gk(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 _k(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=_k(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}=Ql(g,l).positionAbsolute;d=g&&io(x)&&io(v)&&io(g.width)&&io(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",Pa.error005()),d=c;else if(e.extent&&e.parentNode&&e.extent!=="parent"){const g=r.get(e.parentNode),{x,y:v}=Ql(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=Ql(g,l).positionAbsolute}const _=d&&d!=="parent"?mh(t,d):t;return{position:{x:_.x-h.x,y:_.y-h.y},positionAbsolute:_}}function gm({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 Ng=(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,...fh(h)}})};function Au(e,t,r){return r===void 0?r:o=>{const l=t().nodeInternals.get(e);l&&r(o,{...l})}}function Xm({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",Pa.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 yk(){const e=os();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 _m(e){return(t,r,o)=>e==null?void 0:e(t,o)}function zy({nodeRef:e,disabled:t=!1,noDragClassName:r,handleSelector:o,nodeId:l,isSelectable:u,selectNodesOnDrag:c}){const d=os(),[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),A=m.useRef(!1),T=m.useRef(!1),B=yk();return m.useEffect(()=>{if(e!=null&&e.current){const P=so(e.current),F=({x:Y,y:le})=>{const{nodeInternals:oe,onNodeDrag:ge,onSelectionDrag:Re,updateNodePositions:Te,nodeExtent:K,snapGrid:W,snapToGrid:X,nodeOrigin:V,onError:Q}=d.getState();x.current={x:Y,y:le};let k=!1,M={x:0,y:0,x2:0,y2:0};if(g.current.length>1&&K){const C=gf(g.current,V);M=qu(C)}if(g.current=g.current.map(C=>{const U={x:Y-C.distance.x,y:le-C.distance.y};X&&(U.x=W[0]*Math.round(U.x/W[0]),U.y=W[1]*Math.round(U.y/W[1]));const te=[[K[0][0],K[0][1]],[K[1][0],K[1][1]]];g.current.length>1&&K&&!C.extent&&(te[0][0]=C.positionAbsolute.x-M.x+K[0][0],te[1][0]=C.positionAbsolute.x+(C.width??0)-M.x2+K[1][0],te[0][1]=C.positionAbsolute.y-M.y+K[0][1],te[1][1]=C.positionAbsolute.y+(C.height??0)-M.y2+K[1][1]);const ne=My(C,U,oe,te,V,Q);return k=k||C.position.x!==ne.position.x||C.position.y!==ne.position.y,C.position=ne.position,C.positionAbsolute=ne.positionAbsolute,C}),!k)return;Te(g.current,!0,!0),_(!0);const D=l?ge:_m(Re);if(D&&S.current){const[C,U]=gm({nodeId:l,dragItems:g.current,nodeInternals:oe});D(S.current,C,U)}},G=()=>{if(!b.current)return;const[Y,le]=ty(j.current,b.current);if(Y!==0||le!==0){const{transform:oe,panBy:ge}=d.getState();x.current.x=(x.current.x??0)-Y/oe[2],x.current.y=(x.current.y??0)-le/oe[2],ge({x:Y,y:le})&&F(x.current)}v.current=requestAnimationFrame(G)},se=Y=>{var V;const{nodeInternals:le,multiSelectionActive:oe,nodesDraggable:ge,unselectNodesAndEdges:Re,onNodeDragStart:Te,onSelectionDragStart:K}=d.getState();T.current=!0;const W=l?Te:_m(K);(!c||!u)&&!oe&&l&&((V=le.get(l))!=null&&V.selected||Re()),l&&u&&c&&Xm({id:l,store:d,nodeRef:e});const X=B(Y);if(x.current=X,g.current=gk(le,ge,X,l),W&&g.current){const[Q,k]=gm({nodeId:l,dragItems:g.current,nodeInternals:le});W(Y.sourceEvent,Q,k)}};if(t)P.on(".drag",null);else{const Y=Eb().on("start",le=>{const{domNode:oe,nodeDragThreshold:ge}=d.getState();ge===0&&se(le);const Re=B(le);x.current=Re,b.current=(oe==null?void 0:oe.getBoundingClientRect())||null,j.current=hl(le.sourceEvent,b.current)}).on("drag",le=>{var Te,K;const oe=B(le),{autoPanOnNodeDrag:ge,nodeDragThreshold:Re}=d.getState();if(!A.current&&T.current&&ge&&(A.current=!0,G()),!T.current){const W=oe.xSnapped-(((Te=x==null?void 0:x.current)==null?void 0:Te.x)??0),X=oe.ySnapped-(((K=x==null?void 0:x.current)==null?void 0:K.y)??0);Math.sqrt(W*W+X*X)>Re&&se(le)}(x.current.x!==oe.xSnapped||x.current.y!==oe.ySnapped)&&g.current&&T.current&&(S.current=le.sourceEvent,j.current=hl(le.sourceEvent,b.current),F(oe))}).on("end",le=>{if(T.current&&(_(!1),A.current=!1,T.current=!1,cancelAnimationFrame(v.current),g.current)){const{updateNodePositions:oe,nodeInternals:ge,onNodeDragStop:Re,onSelectionDragStop:Te}=d.getState(),K=l?Re:_m(Te);if(oe(g.current,!1,!1),K){const[W,X]=gm({nodeId:l,dragItems:g.current,nodeInternals:ge});K(le.sourceEvent,W,X)}}}).filter(le=>{const oe=le.target;return!le.button&&(!r||!kg(oe,`.${r}`,e))&&(!o||kg(oe,o,e))});return P.call(Y),()=>{P.on(".drag",null)}}}},[e,t,r,o,u,d,l,c,B]),h}function Ry(){const e=os();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(B=>B.selected&&(B.draggable||g&&typeof B.draggable>"u")),v=d?h[0]:5,b=d?h[1]:5,j=r.isShiftPressed?4:1,S=r.x*v*j,A=r.y*b*j,T=x.map(B=>{if(B.positionAbsolute){const P={x:B.positionAbsolute.x+S,y:B.positionAbsolute.y+A};d&&(P.x=h[0]*Math.round(P.x/h[0]),P.y=h[1]*Math.round(P.y/h[1]));const{positionAbsolute:F,position:G}=My(B,P,o,l,void 0,_);B.position=G,B.positionAbsolute=F}return B});u(T,!0,!1)},[])}const Yc={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:A,className:T,isDraggable:B,isSelectable:P,isConnectable:F,isFocusable:G,selectNodesOnDrag:se,sourcePosition:Y,targetPosition:le,hidden:oe,resizeObserver:ge,dragHandle:Re,zIndex:Te,isParent:K,noDragClassName:W,noPanClassName:X,initialized:V,disableKeyboardA11y:Q,ariaLabel:k,rfId:M,hasHandleBounds:D})=>{const C=os(),U=m.useRef(null),te=m.useRef(Y),ne=m.useRef(le),me=m.useRef(o),Me=P||B||g||x||v||b,Ne=Ry(),Fe=Au(r,C.getState,x),Be=Au(r,C.getState,v),_e=Au(r,C.getState,b),ve=Au(r,C.getState,j),ae=Au(r,C.getState,S),we=et=>{const{nodeDragThreshold:Ae}=C.getState();if(P&&(!se||!B||Ae>0)&&Xm({id:r,store:C,nodeRef:U}),g){const Oe=C.getState().nodeInternals.get(r);Oe&&g(et,{...Oe})}},Pe=et=>{if(!Hm(et))if(iy.includes(et.key)&&P){const Ae=et.key==="Escape";Xm({id:r,store:C,unselect:Ae,nodeRef:U})}else!Q&&B&&_&&Object.prototype.hasOwnProperty.call(Yc,et.key)&&(C.setState({ariaLiveMessage:`Moved selected node ${et.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~u}, y: ${~~c}`}),Ne({x:Yc[et.key].x,y:Yc[et.key].y,isShiftPressed:et.shiftKey}))};m.useEffect(()=>()=>{U.current&&(ge==null||ge.unobserve(U.current))},[]),m.useEffect(()=>{if(U.current&&!oe){const et=U.current;(!V||!D)&&(ge==null||ge.unobserve(et),ge==null||ge.observe(et))}},[oe,V,D]),m.useEffect(()=>{const et=me.current!==o,Ae=te.current!==Y,Oe=ne.current!==le;U.current&&(et||Ae||Oe)&&(et&&(me.current=o),Ae&&(te.current=Y),Oe&&(ne.current=le),C.getState().updateNodeDimensions([{id:r,nodeElement:U.current,forceUpdate:!0}]))},[r,o,Y,le]);const Ke=zy({nodeRef:U,disabled:oe||!B,noDragClassName:W,handleSelector:Re,nodeId:r,isSelectable:P,selectNodesOnDrag:se});return oe?null:$e.createElement("div",{className:Es(["react-flow__node",`react-flow__node-${o}`,{[X]:B},T,{selected:_,selectable:P,parent:K,dragging:Ke}]),ref:U,style:{zIndex:Te,transform:`translate(${d}px,${h}px)`,pointerEvents:Me?"all":"none",visibility:V?"visible":"hidden",...A},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:Fe,onMouseMove:Be,onMouseLeave:_e,onContextMenu:ve,onClick:we,onDoubleClick:ae,onKeyDown:G?Pe:void 0,tabIndex:G?0:void 0,role:G?"button":void 0,"aria-describedby":Q?void 0:`${ky}-${M}`,"aria-label":k},$e.createElement(Tj,{value:r},$e.createElement(e,{id:r,data:l,type:o,xPos:u,yPos:c,selected:_,isConnectable:F,sourcePosition:Y,targetPosition:le,dragging:Ke,dragHandle:Re,zIndex:Te})))};return t.displayName="NodeWrapper",m.memo(t)};const xk=e=>{const t=e.getNodes().filter(r=>r.selected);return{...gf(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function vk({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:r}){const o=os(),{width:l,height:u,x:c,y:d,transformString:h,userSelectionActive:_}=ir(xk,ws),g=Ry(),x=m.useRef(null);if(m.useEffect(()=>{var j;r||(j=x.current)==null||j.focus({preventScroll:!0})},[r]),zy({nodeRef:x}),_||!l||!u)return null;const v=e?j=>{const S=o.getState().getNodes().filter(A=>A.selected);e(j,S)}:void 0,b=j=>{Object.prototype.hasOwnProperty.call(Yc,j.key)&&g({x:Yc[j.key].x,y:Yc[j.key].y,isShiftPressed:j.shiftKey})};return $e.createElement("div",{className:Es(["react-flow__nodesselection","react-flow__container",t]),style:{transform:h}},$e.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 wk=m.memo(vk);const bk=e=>e.nodesSelectionActive,Ly=({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:A,panActivationKeyCode:T,zoomActivationKeyCode:B,elementsSelectable:P,zoomOnScroll:F,zoomOnPinch:G,panOnScroll:se,panOnScrollSpeed:Y,panOnScrollMode:le,zoomOnDoubleClick:oe,panOnDrag:ge,defaultViewport:Re,translateExtent:Te,minZoom:K,maxZoom:W,preventScrolling:X,onSelectionContextMenu:V,noWheelClassName:Q,noPanClassName:k,disableKeyboardA11y:M})=>{const D=ir(bk),C=Xu(x),U=Xu(T),te=U||ge,ne=U||se,me=C||v&&te!==!0;return ok({deleteKeyCode:d,multiSelectionKeyCode:A}),$e.createElement(uk,{onMove:h,onMoveStart:_,onMoveEnd:g,onPaneContextMenu:u,elementsSelectable:P,zoomOnScroll:F,zoomOnPinch:G,panOnScroll:ne,panOnScrollSpeed:Y,panOnScrollMode:le,zoomOnDoubleClick:oe,panOnDrag:!C&&te,defaultViewport:Re,translateExtent:Te,minZoom:K,maxZoom:W,zoomActivationKeyCode:B,preventScrolling:X,noWheelClassName:Q,noPanClassName:k},$e.createElement(Ay,{onSelectionStart:j,onSelectionEnd:S,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:l,onPaneContextMenu:u,onPaneScroll:c,panOnDrag:te,isSelecting:!!me,selectionMode:b},e,D&&$e.createElement(wk,{onSelectionContextMenu:V,noPanClassName:k,disableKeyboardA11y:M})))};Ly.displayName="FlowRenderer";var Sk=m.memo(Ly);function jk(e){return ir(m.useCallback(r=>e?fy(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function kk(e){const t={input:Tu(e.input||wy),default:Tu(e.default||Ym),output:Tu(e.output||Sy),group:Tu(e.group||xh)},r={},o=Object.keys(e).filter(l=>!["input","default","output","group"].includes(l)).reduce((l,u)=>(l[u]=Tu(e[u]||Ym),l),r);return{...t,...o}}const Nk=({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]},Ck=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Py=e=>{const{nodesDraggable:t,nodesConnectable:r,nodesFocusable:o,elementsSelectable:l,updateNodeDimensions:u,onError:c}=ir(Ck,ws),d=jk(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()},[]),$e.createElement("div",{className:"react-flow__nodes",style:wh},d.map(g=>{var G,se,Y;let x=g.type||"default";e.nodeTypes[x]||(c==null||c("003",Pa.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"),A=!!(g.focusable||o&&typeof g.focusable>"u"),T=e.nodeExtent?mh(g.positionAbsolute,e.nodeExtent):g.positionAbsolute,B=(T==null?void 0:T.x)??0,P=(T==null?void 0:T.y)??0,F=Nk({x:B,y:P,width:g.width??0,height:g.height??0,origin:e.nodeOrigin});return $e.createElement(v,{key:g.id,id:g.id,className:g.className,style:g.style,type:x,data:g.data,sourcePosition:g.sourcePosition||Ot.Bottom,targetPosition:g.targetPosition||Ot.Top,hidden:g.hidden,xPos:B,yPos:P,xPosOrigin:F.x,yPosOrigin:F.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:A,resizeObserver:_,dragHandle:g.dragHandle,zIndex:((G=g[Jr])==null?void 0:G.z)??0,isParent:!!((se=g[Jr])!=null&&se.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!g.width&&!!g.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:g.ariaLabel,hasHandleBounds:!!((Y=g[Jr])!=null&&Y.handleBounds)})}))};Py.displayName="NodeRenderer";var Ek=m.memo(Py);const $k=(e,t,r)=>r===Ot.Left?e-t:r===Ot.Right?e+t:e,Ak=(e,t,r)=>r===Ot.Top?e-t:r===Ot.Bottom?e+t:e,Cg="react-flow__edgeupdater",Eg=({position:e,centerX:t,centerY:r,radius:o=10,onMouseDown:l,onMouseEnter:u,onMouseOut:c,type:d})=>$e.createElement("circle",{onMouseDown:l,onMouseEnter:u,onMouseOut:c,className:Es([Cg,`${Cg}-${d}`]),cx:$k(t,o,e),cy:Ak(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),Tk=()=>!0;var Fc=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:A,source:T,target:B,sourceX:P,sourceY:F,targetX:G,targetY:se,sourcePosition:Y,targetPosition:le,elementsSelectable:oe,hidden:ge,sourceHandleId:Re,targetHandleId:Te,onContextMenu:K,onMouseEnter:W,onMouseMove:X,onMouseLeave:V,edgeUpdaterRadius:Q,onEdgeUpdate:k,onEdgeUpdateStart:M,onEdgeUpdateEnd:D,markerEnd:C,markerStart:U,rfId:te,ariaLabel:ne,isFocusable:me,isUpdatable:Me,pathOptions:Ne,interactionWidth:Fe})=>{const Be=m.useRef(null),[_e,ve]=m.useState(!1),[ae,we]=m.useState(!1),Pe=os(),Ke=m.useMemo(()=>`url('#${qm(U,te)}')`,[U,te]),et=m.useMemo(()=>`url('#${qm(C,te)}')`,[C,te]);if(ge)return null;const Ae=gt=>{var jn;const{edges:qt,addSelectedEdges:On,unselectNodesAndEdges:rn,multiSelectionActive:un}=Pe.getState(),vn=qt.find(ur=>ur.id===r);vn&&(oe&&(Pe.setState({nodesSelectionActive:!1}),vn.selected&&un?(rn({nodes:[],edges:[vn]}),(jn=Be.current)==null||jn.blur()):On([r])),c&&c(gt,vn))},Oe=$u(r,Pe.getState,d),lt=$u(r,Pe.getState,K),xe=$u(r,Pe.getState,W),$t=$u(r,Pe.getState,X),xt=$u(r,Pe.getState,V),on=(gt,qt)=>{if(gt.button!==0)return;const{edges:On,isValidConnection:rn}=Pe.getState(),un=qt?B:T,vn=(qt?Te:Re)||null,jn=qt?"target":"source",ur=rn||Tk,Zt=qt,Qn=On.find(de=>de.id===r);we(!0),M==null||M(gt,Qn,jn);const as=de=>{we(!1),D==null||D(de,Qn,jn)};_y({event:gt,handleId:vn,nodeId:un,onConnect:de=>k==null?void 0:k(Qn,de),isTarget:Zt,getState:Pe.getState,setState:Pe.setState,isValidConnection:ur,edgeUpdaterType:jn,onEdgeUpdateEnd:as})},cn=gt=>on(gt,!0),Xt=gt=>on(gt,!1),Se=()=>ve(!0),ue=()=>ve(!1),ke=!oe&&!c,At=gt=>{var qt;if(iy.includes(gt.key)&&oe){const{unselectNodesAndEdges:On,addSelectedEdges:rn,edges:un}=Pe.getState();gt.key==="Escape"?((qt=Be.current)==null||qt.blur(),On({edges:[un.find(jn=>jn.id===r)]})):rn([r])}};return $e.createElement("g",{className:Es(["react-flow__edge",`react-flow__edge-${l}`,o,{selected:h,animated:_,inactive:ke,updating:_e}]),onClick:Ae,onDoubleClick:Oe,onContextMenu:lt,onMouseEnter:xe,onMouseMove:$t,onMouseLeave:xt,onKeyDown:me?At:void 0,tabIndex:me?0:void 0,role:me?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":ne===null?void 0:ne||`Edge from ${T} to ${B}`,"aria-describedby":me?`${Ny}-${te}`:void 0,ref:Be},!ae&&$e.createElement(e,{id:r,source:T,target:B,selected:h,animated:_,label:g,labelStyle:x,labelShowBg:v,labelBgStyle:b,labelBgPadding:j,labelBgBorderRadius:S,data:u,style:A,sourceX:P,sourceY:F,targetX:G,targetY:se,sourcePosition:Y,targetPosition:le,sourceHandleId:Re,targetHandleId:Te,markerStart:Ke,markerEnd:et,pathOptions:Ne,interactionWidth:Fe}),Me&&$e.createElement($e.Fragment,null,(Me==="source"||Me===!0)&&$e.createElement(Eg,{position:Y,centerX:P,centerY:F,radius:Q,onMouseDown:cn,onMouseEnter:Se,onMouseOut:ue,type:"source"}),(Me==="target"||Me===!0)&&$e.createElement(Eg,{position:le,centerX:G,centerY:se,radius:Q,onMouseDown:Xt,onMouseEnter:Se,onMouseOut:ue,type:"target"})))};return t.displayName="EdgeWrapper",m.memo(t)};function Mk(e){const t={default:Fc(e.default||sf),straight:Fc(e.bezier||gh),step:Fc(e.step||ph),smoothstep:Fc(e.step||pf),simplebezier:Fc(e.simplebezier||hh)},r={},o=Object.keys(e).filter(l=>!["default","bezier"].includes(l)).reduce((l,u)=>(l[u]=Fc(e[u]||sf),l),r);return{...t,...o}}function $g(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 Ot.Top:return{x:o+u/2,y:l};case Ot.Right:return{x:o+u,y:l+c/2};case Ot.Bottom:return{x:o+u/2,y:l+c};case Ot.Left:return{x:o,y:l+c/2}}}function Ag(e,t){return e?e.length===1||!t?e[0]:t&&e.find(r=>r.id===t)||null:null}const zk=(e,t,r,o,l,u)=>{const c=$g(r,e,t),d=$g(u,o,l);return{sourceX:c.x,sourceY:c.y,targetX:d.x,targetY:d.y}};function Rk({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=qu({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[Jr])==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 Lk=[{level:0,isMaxLevel:!0,edges:[]}];function Pk(e,t,r=!1){let o=-1;const l=e.reduce((c,d)=>{var g,x;const h=io(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[Jr])==null?void 0:g.z)||0,((x=v==null?void 0:v[Jr])==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?Lk:u}function Ik(e,t,r){const o=ir(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)&&Rk({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 Pk(o,t,r)}const Fk=({color:e="none",strokeWidth:t=1})=>$e.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),Ok=({color:e="none",strokeWidth:t=1})=>$e.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Mg={[Yu.Arrow]:Fk,[Yu.ArrowClosed]:Ok};function Dk(e){const t=os();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",Pa.error009(e)),null)},[e])}const Bk=({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=Dk(t);return h?$e.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"},$e.createElement(h,{color:r,strokeWidth:c})):null},Uk=({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=qm(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))},Iy=({defaultColor:e,rfId:t})=>{const r=ir(m.useCallback(Uk({defaultColor:e,rfId:t}),[e,t]),(o,l)=>!(o.length!==l.length||o.some((u,c)=>u.id!==l[c].id)));return $e.createElement("defs",null,r.map(o=>$e.createElement(Bk,{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})))};Iy.displayName="MarkerDefinitions";var Wk=m.memo(Iy);const Hk=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}),Fy=({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:A})=>{const{edgesFocusable:T,edgesUpdatable:B,elementsSelectable:P,width:F,height:G,connectionMode:se,nodeInternals:Y,onError:le}=ir(Hk,ws),oe=Ik(t,Y,r);return F?$e.createElement($e.Fragment,null,oe.map(({level:ge,edges:Re,isMaxLevel:Te})=>$e.createElement("svg",{key:ge,style:{zIndex:ge},width:F,height:G,className:"react-flow__edges react-flow__container"},Te&&$e.createElement(Wk,{defaultColor:e,rfId:o}),$e.createElement("g",null,Re.map(K=>{const[W,X,V]=Tg(Y.get(K.source)),[Q,k,M]=Tg(Y.get(K.target));if(!V||!M)return null;let D=K.type||"default";l[D]||(le==null||le("011",Pa.error011(D)),D="default");const C=l[D]||l.default,U=se===ec.Strict?k.target:(k.target??[]).concat(k.source??[]),te=Ag(X.source,K.sourceHandle),ne=Ag(U,K.targetHandle),me=(te==null?void 0:te.position)||Ot.Bottom,Me=(ne==null?void 0:ne.position)||Ot.Top,Ne=!!(K.focusable||T&&typeof K.focusable>"u"),Fe=typeof c<"u"&&(K.updatable||B&&typeof K.updatable>"u");if(!te||!ne)return le==null||le("008",Pa.error008(te,K)),null;const{sourceX:Be,sourceY:_e,targetX:ve,targetY:ae}=zk(W,te,me,Q,ne,Me);return $e.createElement(C,{key:K.id,id:K.id,className:Es([K.className,u]),type:D,data:K.data,selected:!!K.selected,animated:!!K.animated,hidden:!!K.hidden,label:K.label,labelStyle:K.labelStyle,labelShowBg:K.labelShowBg,labelBgStyle:K.labelBgStyle,labelBgPadding:K.labelBgPadding,labelBgBorderRadius:K.labelBgBorderRadius,style:K.style,source:K.source,target:K.target,sourceHandleId:K.sourceHandle,targetHandleId:K.targetHandle,markerEnd:K.markerEnd,markerStart:K.markerStart,sourceX:Be,sourceY:_e,targetX:ve,targetY:ae,sourcePosition:me,targetPosition:Me,elementsSelectable:P,onEdgeUpdate:c,onContextMenu:d,onMouseEnter:h,onMouseMove:_,onMouseLeave:g,onClick:x,edgeUpdaterRadius:v,onEdgeDoubleClick:b,onEdgeUpdateStart:j,onEdgeUpdateEnd:S,rfId:o,ariaLabel:K.ariaLabel,isFocusable:Ne,isUpdatable:Fe,pathOptions:"pathOptions"in K?K.pathOptions:void 0,interactionWidth:K.interactionWidth})})))),A):null};Fy.displayName="EdgeRenderer";var Vk=m.memo(Fy);const qk=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Gk({children:e}){const t=ir(qk);return $e.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function Yk(e){const t=vh(),r=m.useRef(!1);m.useEffect(()=>{!r.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),r.current=!0)},[e,t.viewportInitialized])}const Xk={[Ot.Left]:Ot.Right,[Ot.Right]:Ot.Left,[Ot.Top]:Ot.Bottom,[Ot.Bottom]:Ot.Top},Oy=({nodeId:e,handleType:t,style:r,type:o=ml.Bezier,CustomComponent:l,connectionStatus:u})=>{var se,Y,le;const{fromNode:c,handleId:d,toX:h,toY:_,connectionMode:g}=ir(m.useCallback(oe=>({fromNode:oe.nodeInternals.get(e),handleId:oe.connectionHandleId,toX:(oe.connectionPosition.x-oe.transform[0])/oe.transform[2],toY:(oe.connectionPosition.y-oe.transform[1])/oe.transform[2],connectionMode:oe.connectionMode}),[e]),ws),x=(se=c==null?void 0:c[Jr])==null?void 0:se.handleBounds;let v=x==null?void 0:x[t];if(g===ec.Loose&&(v=v||(x==null?void 0:x[t==="source"?"target":"source"])),!c||!v)return null;const b=d?v.find(oe=>oe.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,A=(((Y=c.positionAbsolute)==null?void 0:Y.x)??0)+j,T=(((le=c.positionAbsolute)==null?void 0:le.y)??0)+S,B=b==null?void 0:b.position,P=B?Xk[B]:null;if(!B||!P)return null;if(l)return $e.createElement(l,{connectionLineType:o,connectionLineStyle:r,fromNode:c,fromHandle:b,fromX:A,fromY:T,toX:h,toY:_,fromPosition:B,toPosition:P,connectionStatus:u});let F="";const G={sourceX:A,sourceY:T,sourcePosition:B,targetX:h,targetY:_,targetPosition:P};return o===ml.Bezier?[F]=uy(G):o===ml.Step?[F]=Vm({...G,borderRadius:0}):o===ml.SmoothStep?[F]=Vm(G):o===ml.SimpleBezier?[F]=cy(G):F=`M${A},${T} ${h},${_}`,$e.createElement("path",{d:F,fill:"none",className:"react-flow__connection-path",style:r})};Oy.displayName="ConnectionLine";const Kk=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Jk({containerStyle:e,style:t,type:r,component:o}){const{nodeId:l,handleType:u,nodesConnectable:c,width:d,height:h,connectionStatus:_}=ir(Kk,ws);return!(l&&u&&d&&c)?null:$e.createElement("svg",{style:e,width:d,height:h,className:"react-flow__edges react-flow__connectionline react-flow__container"},$e.createElement("g",{className:Es(["react-flow__connection",_])},$e.createElement(Oy,{nodeId:l,handleType:u,style:t,type:r,CustomComponent:o,connectionStatus:_})))}function zg(e,t){return m.useRef(null),os(),m.useMemo(()=>t(e),[e])}const Dy=({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:A,connectionLineType:T,connectionLineStyle:B,connectionLineComponent:P,connectionLineContainerStyle:F,selectionKeyCode:G,selectionOnDrag:se,selectionMode:Y,multiSelectionKeyCode:le,panActivationKeyCode:oe,zoomActivationKeyCode:ge,deleteKeyCode:Re,onlyRenderVisibleElements:Te,elementsSelectable:K,selectNodesOnDrag:W,defaultViewport:X,translateExtent:V,minZoom:Q,maxZoom:k,preventScrolling:M,defaultMarkerColor:D,zoomOnScroll:C,zoomOnPinch:U,panOnScroll:te,panOnScrollSpeed:ne,panOnScrollMode:me,zoomOnDoubleClick:Me,panOnDrag:Ne,onPaneClick:Fe,onPaneMouseEnter:Be,onPaneMouseMove:_e,onPaneMouseLeave:ve,onPaneScroll:ae,onPaneContextMenu:we,onEdgeUpdate:Pe,onEdgeContextMenu:Ke,onEdgeMouseEnter:et,onEdgeMouseMove:Ae,onEdgeMouseLeave:Oe,edgeUpdaterRadius:lt,onEdgeUpdateStart:xe,onEdgeUpdateEnd:$t,noDragClassName:xt,noWheelClassName:on,noPanClassName:cn,elevateEdgesOnSelect:Xt,disableKeyboardA11y:Se,nodeOrigin:ue,nodeExtent:ke,rfId:At})=>{const gt=zg(e,kk),qt=zg(t,Mk);return Yk(u),$e.createElement(Sk,{onPaneClick:Fe,onPaneMouseEnter:Be,onPaneMouseMove:_e,onPaneMouseLeave:ve,onPaneContextMenu:we,onPaneScroll:ae,deleteKeyCode:Re,selectionKeyCode:G,selectionOnDrag:se,selectionMode:Y,onSelectionStart:S,onSelectionEnd:A,multiSelectionKeyCode:le,panActivationKeyCode:oe,zoomActivationKeyCode:ge,elementsSelectable:K,onMove:r,onMoveStart:o,onMoveEnd:l,zoomOnScroll:C,zoomOnPinch:U,zoomOnDoubleClick:Me,panOnScroll:te,panOnScrollSpeed:ne,panOnScrollMode:me,panOnDrag:Ne,defaultViewport:X,translateExtent:V,minZoom:Q,maxZoom:k,onSelectionContextMenu:j,preventScrolling:M,noDragClassName:xt,noWheelClassName:on,noPanClassName:cn,disableKeyboardA11y:Se},$e.createElement(Gk,null,$e.createElement(Vk,{edgeTypes:qt,onEdgeClick:d,onEdgeDoubleClick:_,onEdgeUpdate:Pe,onlyRenderVisibleElements:Te,onEdgeContextMenu:Ke,onEdgeMouseEnter:et,onEdgeMouseMove:Ae,onEdgeMouseLeave:Oe,onEdgeUpdateStart:xe,onEdgeUpdateEnd:$t,edgeUpdaterRadius:lt,defaultMarkerColor:D,noPanClassName:cn,elevateEdgesOnSelect:!!Xt,disableKeyboardA11y:Se,rfId:At},$e.createElement(Jk,{style:B,type:T,component:P,containerStyle:F})),$e.createElement("div",{className:"react-flow__edgelabel-renderer"}),$e.createElement(Ek,{nodeTypes:gt,onNodeClick:c,onNodeDoubleClick:h,onNodeMouseEnter:g,onNodeMouseMove:x,onNodeMouseLeave:v,onNodeContextMenu:b,selectNodesOnDrag:W,onlyRenderVisibleElements:Te,noPanClassName:cn,noDragClassName:xt,disableKeyboardA11y:Se,nodeOrigin:ue,nodeExtent:ke,rfId:At})))};Dy.displayName="GraphView";var Qk=m.memo(Dy);const Km=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ol={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:Km,nodeExtent:Km,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:ec.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:kj,isValidConnection:void 0},Zk=()=>Dw((e,t)=>({...ol,setNodes:r=>{const{nodeInternals:o,nodeOrigin:l,elevateNodesOnSelect:u}=t();e({nodeInternals:hm(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?hm(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,A)=>{const T=l.get(A.id);if(T){const B=fh(A.nodeElement);!!(B.width&&B.height&&(T.width!==B.width||T.height!==B.height||A.forceUpdate))&&(l.set(T.id,{...T,[Jr]:{...T[Jr],handleBounds:{source:Ng(".source",A.nodeElement,v,_),target:Ng(".target",A.nodeElement,v,_)}},...B}),S.push({id:T.id,type:"dimensions",dimensions:B}))}return S},[]);Ey(l,_);const j=c||u&&!c&&$y(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 _=hk(r,d()),g=hm(_,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=>fl(h,!0)):(c=Hc(u(),r),d=Hc(l,[])),Id({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=>fl(h,!0)):(c=Hc(l,r),d=Hc(u(),[])),Id({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,fl(g.id,!1))),_=d.map(g=>fl(g.id,!1));Id({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=>fl(d.id,!1)),c=r.filter(d=>d.selected).map(d=>fl(d.id,!1));Id({changedNodes:u,changedEdges:c,get:t,set:e})},setNodeExtent:r=>{const{nodeInternals:o}=t();o.forEach(l=>{l.positionAbsolute=mh(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 _=Ra.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:ol.connectionNodeId,connectionHandleId:ol.connectionHandleId,connectionHandleType:ol.connectionHandleType,connectionStatus:ol.connectionStatus,connectionStartHandle:ol.connectionStartHandle,connectionEndHandle:ol.connectionEndHandle}),reset:()=>e({...ol})}),Object.is),bh=({children:e})=>{const t=m.useRef(null);return t.current||(t.current=Zk()),$e.createElement(yj,{value:t.current},e)};bh.displayName="ReactFlowProvider";const By=({children:e})=>m.useContext(hf)?$e.createElement($e.Fragment,null,e):$e.createElement(bh,null,e);By.displayName="ReactFlowWrapper";const eN={input:wy,default:Ym,output:Sy,group:xh},tN={default:sf,straight:gh,step:ph,smoothstep:pf,simplebezier:hh},nN=[0,0],rN=[15,15],sN={x:0,y:0,zoom:1},iN={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},Uy=m.forwardRef(({nodes:e,edges:t,defaultNodes:r,defaultEdges:o,className:l,nodeTypes:u=eN,edgeTypes:c=tN,onNodeClick:d,onEdgeClick:h,onInit:_,onMove:g,onMoveStart:x,onMoveEnd:v,onConnect:b,onConnectStart:j,onConnectEnd:S,onClickConnectStart:A,onClickConnectEnd:T,onNodeMouseEnter:B,onNodeMouseMove:P,onNodeMouseLeave:F,onNodeContextMenu:G,onNodeDoubleClick:se,onNodeDragStart:Y,onNodeDrag:le,onNodeDragStop:oe,onNodesDelete:ge,onEdgesDelete:Re,onSelectionChange:Te,onSelectionDragStart:K,onSelectionDrag:W,onSelectionDragStop:X,onSelectionContextMenu:V,onSelectionStart:Q,onSelectionEnd:k,connectionMode:M=ec.Strict,connectionLineType:D=ml.Bezier,connectionLineStyle:C,connectionLineComponent:U,connectionLineContainerStyle:te,deleteKeyCode:ne="Backspace",selectionKeyCode:me="Shift",selectionOnDrag:Me=!1,selectionMode:Ne=Gu.Full,panActivationKeyCode:Fe="Space",multiSelectionKeyCode:Be=rf()?"Meta":"Control",zoomActivationKeyCode:_e=rf()?"Meta":"Control",snapToGrid:ve=!1,snapGrid:ae=rN,onlyRenderVisibleElements:we=!1,selectNodesOnDrag:Pe=!0,nodesDraggable:Ke,nodesConnectable:et,nodesFocusable:Ae,nodeOrigin:Oe=nN,edgesFocusable:lt,edgesUpdatable:xe,elementsSelectable:$t,defaultViewport:xt=sN,minZoom:on=.5,maxZoom:cn=2,translateExtent:Xt=Km,preventScrolling:Se=!0,nodeExtent:ue,defaultMarkerColor:ke="#b1b1b7",zoomOnScroll:At=!0,zoomOnPinch:gt=!0,panOnScroll:qt=!1,panOnScrollSpeed:On=.5,panOnScrollMode:rn=Kl.Free,zoomOnDoubleClick:un=!0,panOnDrag:vn=!0,onPaneClick:jn,onPaneMouseEnter:ur,onPaneMouseMove:Zt,onPaneMouseLeave:Qn,onPaneScroll:as,onPaneContextMenu:Un,children:de,onEdgeUpdate:je,onEdgeContextMenu:ut,onEdgeDoubleClick:it,onEdgeMouseEnter:St,onEdgeMouseMove:Rt,onEdgeMouseLeave:Wt,onEdgeUpdateStart:Dt,onEdgeUpdateEnd:gn,edgeUpdaterRadius:Ft=10,onNodesChange:yn,onEdgesChange:dn,noDragClassName:Gt="nodrag",noWheelClassName:en="nowheel",noPanClassName:Vt="nopan",fitView:rt=!1,fitViewOptions:kn,connectOnClick:Rn=!0,attributionPosition:Nn,proOptions:Cn,defaultEdgeOptions:lr,elevateNodesOnSelect:Fr=!0,elevateEdgesOnSelect:jr=!1,disableKeyboardA11y:Or=!1,autoPanOnConnect:Hs=!0,autoPanOnNodeDrag:$s=!0,connectionRadius:ao=20,isValidConnection:Mi,onError:ls,style:$n,id:cs,nodeDragThreshold:Qr,...Dr},pr)=>{const st=cs||"1";return $e.createElement("div",{...Dr,style:{...$n,...iN},ref:pr,className:Es(["react-flow",l]),"data-testid":"rf__wrapper",id:cs},$e.createElement(By,null,$e.createElement(Qk,{onInit:_,onMove:g,onMoveStart:x,onMoveEnd:v,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:B,onNodeMouseMove:P,onNodeMouseLeave:F,onNodeContextMenu:G,onNodeDoubleClick:se,nodeTypes:u,edgeTypes:c,connectionLineType:D,connectionLineStyle:C,connectionLineComponent:U,connectionLineContainerStyle:te,selectionKeyCode:me,selectionOnDrag:Me,selectionMode:Ne,deleteKeyCode:ne,multiSelectionKeyCode:Be,panActivationKeyCode:Fe,zoomActivationKeyCode:_e,onlyRenderVisibleElements:we,selectNodesOnDrag:Pe,defaultViewport:xt,translateExtent:Xt,minZoom:on,maxZoom:cn,preventScrolling:Se,zoomOnScroll:At,zoomOnPinch:gt,zoomOnDoubleClick:un,panOnScroll:qt,panOnScrollSpeed:On,panOnScrollMode:rn,panOnDrag:vn,onPaneClick:jn,onPaneMouseEnter:ur,onPaneMouseMove:Zt,onPaneMouseLeave:Qn,onPaneScroll:as,onPaneContextMenu:Un,onSelectionContextMenu:V,onSelectionStart:Q,onSelectionEnd:k,onEdgeUpdate:je,onEdgeContextMenu:ut,onEdgeDoubleClick:it,onEdgeMouseEnter:St,onEdgeMouseMove:Rt,onEdgeMouseLeave:Wt,onEdgeUpdateStart:Dt,onEdgeUpdateEnd:gn,edgeUpdaterRadius:Ft,defaultMarkerColor:ke,noDragClassName:Gt,noWheelClassName:en,noPanClassName:Vt,elevateEdgesOnSelect:jr,rfId:st,disableKeyboardA11y:Or,nodeOrigin:Oe,nodeExtent:ue}),$e.createElement(Yj,{nodes:e,edges:t,defaultNodes:r,defaultEdges:o,onConnect:b,onConnectStart:j,onConnectEnd:S,onClickConnectStart:A,onClickConnectEnd:T,nodesDraggable:Ke,nodesConnectable:et,nodesFocusable:Ae,edgesFocusable:lt,edgesUpdatable:xe,elementsSelectable:$t,elevateNodesOnSelect:Fr,minZoom:on,maxZoom:cn,nodeExtent:ue,onNodesChange:yn,onEdgesChange:dn,snapToGrid:ve,snapGrid:ae,connectionMode:M,translateExtent:Xt,connectOnClick:Rn,defaultEdgeOptions:lr,fitView:rt,fitViewOptions:kn,onNodesDelete:ge,onEdgesDelete:Re,onNodeDragStart:Y,onNodeDrag:le,onNodeDragStop:oe,onSelectionDrag:W,onSelectionDragStart:K,onSelectionDragStop:X,noPanClassName:Vt,nodeOrigin:Oe,rfId:st,autoPanOnConnect:Hs,autoPanOnNodeDrag:$s,onError:ls,connectionRadius:ao,isValidConnection:Mi,nodeDragThreshold:Qr}),$e.createElement(qj,{onSelectionChange:Te}),de,$e.createElement(vj,{proOptions:Cn,position:Nn}),$e.createElement(Zj,{rfId:st,disableKeyboardA11y:Or})))});Uy.displayName="ReactFlow";const Wy=({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||{},A=c||j||S;return $e.createElement("rect",{className:Es(["react-flow__minimap-node",{selected:b},_]),x:t,y:r,rx:g,ry:g,width:o,height:l,fill:A,stroke:d,strokeWidth:h,shapeRendering:x,onClick:v?T=>v(T,e):void 0})};Wy.displayName="MiniMapNode";var oN=m.memo(Wy);const aN=e=>e.nodeOrigin,lN=e=>e.getNodes().filter(t=>!t.hidden&&t.width&&t.height),ym=e=>e instanceof Function?e:()=>e;function cN({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:l=2,nodeComponent:u=oN,onClick:c}){const d=ir(lN,ws),h=ir(aN),_=ym(t),g=ym(e),x=ym(r),v=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return $e.createElement($e.Fragment,null,d.map(b=>{const{x:j,y:S}=Ql(b,h).positionAbsolute;return $e.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 uN=m.memo(cN);const dN=200,fN=150,mN=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?Sj(gf(t,e.nodeOrigin),r):r,rfId:e.rfId}},hN="react-flow__minimap-desc";function Hy({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:A="React Flow mini map",inversePan:T=!1,zoomStep:B=10,offsetScale:P=5}){const F=os(),G=m.useRef(null),{boundingRect:se,viewBB:Y,rfId:le}=ir(mN,ws),oe=(e==null?void 0:e.width)??dN,ge=(e==null?void 0:e.height)??fN,Re=se.width/oe,Te=se.height/ge,K=Math.max(Re,Te),W=K*oe,X=K*ge,V=P*K,Q=se.x-(W-se.width)/2-V,k=se.y-(X-se.height)/2-V,M=W+V*2,D=X+V*2,C=`${hN}-${le}`,U=m.useRef(0);U.current=K,m.useEffect(()=>{if(G.current){const me=so(G.current),Me=Be=>{const{transform:_e,d3Selection:ve,d3Zoom:ae}=F.getState();if(Be.sourceEvent.type!=="wheel"||!ve||!ae)return;const we=-Be.sourceEvent.deltaY*(Be.sourceEvent.deltaMode===1?.05:Be.sourceEvent.deltaMode?1:.002)*B,Pe=_e[2]*Math.pow(2,we);ae.scaleTo(ve,Pe)},Ne=Be=>{const{transform:_e,d3Selection:ve,d3Zoom:ae,translateExtent:we,width:Pe,height:Ke}=F.getState();if(Be.sourceEvent.type!=="mousemove"||!ve||!ae)return;const et=U.current*Math.max(1,_e[2])*(T?-1:1),Ae={x:_e[0]-Be.sourceEvent.movementX*et,y:_e[1]-Be.sourceEvent.movementY*et},Oe=[[0,0],[Pe,Ke]],lt=Ra.translate(Ae.x,Ae.y).scale(_e[2]),xe=ae.constrain()(lt,Oe,we);ae.transform(ve,xe)},Fe=Z_().on("zoom",j?Ne:null).on("zoom.wheel",S?Me:null);return me.call(Fe),()=>{me.on("zoom",null)}}},[j,S,T,B]);const te=v?me=>{const Me=Ao(me);v(me,{x:Me[0],y:Me[1]})}:void 0,ne=b?(me,Me)=>{const Ne=F.getState().nodeInternals.get(Me);b(me,Ne)}:void 0;return $e.createElement(Vu,{position:x,style:e,className:Es(["react-flow__minimap",t]),"data-testid":"rf__minimap"},$e.createElement("svg",{width:oe,height:ge,viewBox:`${Q} ${k} ${M} ${D}`,role:"img","aria-labelledby":C,ref:G,onClick:te},A&&$e.createElement("title",{id:C},A),$e.createElement(uN,{onClick:ne,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:u,nodeClassName:l,nodeStrokeWidth:c,nodeComponent:d}),$e.createElement("path",{className:"react-flow__minimap-mask",d:`M${Q-V},${k-V}h${M+V*2}v${D+V*2}h${-M-V*2}z
117
- M${Y.x},${Y.y}h${Y.width}v${Y.height}h${-Y.width}z`,fill:h,fillRule:"evenodd",stroke:_,strokeWidth:g,pointerEvents:"none"})))}Hy.displayName="MiniMap";var pN=m.memo(Hy);function gN(){return $e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},$e.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function _N(){return $e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},$e.createElement("path",{d:"M0 0h32v4.2H0z"}))}function yN(){return $e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},$e.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 xN(){return $e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},$e.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 vN(){return $e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},$e.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 Vc=({children:e,className:t,...r})=>$e.createElement("button",{type:"button",className:Es(["react-flow__controls-button",t]),...r},e);Vc.displayName="ControlButton";const wN=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),Vy=({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=os(),[b,j]=m.useState(!1),{isInteractive:S,minZoomReached:A,maxZoomReached:T}=ir(wN,ws),{zoomIn:B,zoomOut:P,fitView:F}=vh();if(m.useEffect(()=>{j(!0)},[]),!b)return null;const G=()=>{B(),u==null||u()},se=()=>{P(),c==null||c()},Y=()=>{F(l),d==null||d()},le=()=>{v.setState({nodesDraggable:!S,nodesConnectable:!S,elementsSelectable:!S}),h==null||h(!S)};return $e.createElement(Vu,{className:Es(["react-flow__controls",_]),position:x,style:e,"data-testid":"rf__controls"},t&&$e.createElement($e.Fragment,null,$e.createElement(Vc,{onClick:G,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:T},$e.createElement(gN,null)),$e.createElement(Vc,{onClick:se,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:A},$e.createElement(_N,null))),r&&$e.createElement(Vc,{className:"react-flow__controls-fitview",onClick:Y,title:"fit view","aria-label":"fit view"},$e.createElement(yN,null)),o&&$e.createElement(Vc,{className:"react-flow__controls-interactive",onClick:le,title:"toggle interactivity","aria-label":"toggle interactivity"},S?$e.createElement(vN,null):$e.createElement(xN,null)),g)};Vy.displayName="Controls";var bN=m.memo(Vy),Mo;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Mo||(Mo={}));function SN({color:e,dimensions:t,lineWidth:r}){return $e.createElement("path",{stroke:e,strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function jN({color:e,radius:t}){return $e.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const kN={[Mo.Dots]:"#91919a",[Mo.Lines]:"#eee",[Mo.Cross]:"#e2e2e2"},NN={[Mo.Dots]:1,[Mo.Lines]:1,[Mo.Cross]:6},CN=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function qy({id:e,variant:t=Mo.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}=ir(CN,ws),v=c||kN[t],b=o||NN[t],j=t===Mo.Dots,S=t===Mo.Cross,A=Array.isArray(r)?r:[r,r],T=[A[0]*g[2]||1,A[1]*g[2]||1],B=b*g[2],P=S?[B,B]:T,F=j?[B/u,B/u]:[P[0]/u,P[1]/u];return $e.createElement("svg",{className:Es(["react-flow__background",h]),style:{...d,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:_,"data-testid":"rf__background"},$e.createElement("pattern",{id:x+e,x:g[0]%T[0],y:g[1]%T[1],width:T[0],height:T[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${F[0]},-${F[1]})`},j?$e.createElement(jN,{color:v,radius:B/u}):$e.createElement(SN,{dimensions:P,color:v,lineWidth:l})),$e.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${x+e})`}))}qy.displayName="Background";var EN=m.memo(qy);function Gy(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 af(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 $N(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 AN(e){const t=String(e||"").trim();if(!t)return"";const r=t.indexOf(":");if(r<=0||r>=t.length-1)return af(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 af(t)}function Jm(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 Qm(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 Yy(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 TN(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 Rg(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 A=String((S==null?void 0:S.source)||"").trim(),T=String((S==null?void 0:S.target)||"").trim();if(!A||!T||A===T)continue;const B=l.get(A),P=l.get(T);B&&B.add(T),P&&P.add(A)}let u=e[0],c=-1;for(const S of e){const A=((j=l.get(S))==null?void 0:j.size)??0;(A>c||A===c&&S.localeCompare(u)<0)&&(u=S,c=A)}const d=new Map,h=[];for(d.set(u,0),h.push(u);h.length;){const S=h.shift(),A=d.get(S)??0,T=Array.from(l.get(S)??[]);T.sort((B,P)=>B.localeCompare(P));for(const B of T)d.has(B)||(d.set(B,A+1),h.push(B))}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 A=d.get(S)??0,T=g.get(A);T?T.push(S):g.set(A,[S])}const x=Array.from(g.keys()).sort((S,A)=>S-A),v=260,b=r%360*Math.PI/180;for(const S of x){const A=g.get(S)||[];if(A.sort((F,G)=>F.localeCompare(G)),S===0){if(A.length===1)o[A[0]]={x:0,y:0};else for(let G=0;G<A.length;G++){const se=b+2*Math.PI*G/A.length;o[A[G]]={x:80*Math.cos(se),y:80*Math.sin(se)}}continue}const T=v*S,B=A.length;if(B===1){o[A[0]]={x:T,y:0};continue}const P=b+S*.35;for(let F=0;F<B;F++){const G=P+2*Math.PI*F/B;o[A[F]]={x:T*Math.cos(G),y:T*Math.sin(G)}}}return o}function Wc(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 Jm(l);if(r==="circle")return TN(l,o);if(r==="radial")return Rg(l,e.edges,o);if(r==="force"){const u=Rg(l,e.edges,o),c=Yy(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 Jm(l)}function MN(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 zN(e,t={}){const r=!!(t.groupEdges??!0),o=Math.max(1,t.maxEdgeLabelPredicates??3),l=MN(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=Jm(c),h=c.map(v=>({id:v,type:"default",data:{label:AN(v),kind:$N(v)},position:d[v]||{x:0,y:0}})),_=new Map,g=(v,b)=>{const j=String(v.subject||"").trim(),S=String(v.object||"").trim(),A=String(v.predicate||"").trim();return r?`edge:${j}:${S}`:`edge:${b}:${j}:${A}:${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(),A=String(j.object||"").trim();if(!S||!A)continue;const T=new Map;for(const Y of b){const le=String(Y.predicate||"").trim();le&&T.set(le,(T.get(le)||0)+1)}const B=Array.from(T.entries());B.sort((Y,le)=>le[1]-Y[1]||Y[0].localeCompare(le[0]));const F=B.slice(0,o).map(([Y,le])=>le>1?`${af(Y)}×${le}`:af(Y)).join(" | "),G=B.length>o?` +${B.length-o}`:"",se=`${F}${G}`.trim();x.push({id:v,source:S,target:A,label:se,animated:!1,data:{assertions:b,predicateSummary:se}})}return{nodes:h,edges:x}}function RN(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,A,T)=>{const B=d.get(S);B?B.push({to:A,edgeId:T}):d.set(S,[{to:A,edgeId:T}])};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(),A=d.get(S)||[];for(const T of A)if(!g.has(T.to)){if(g.set(T.to,S),x.set(T.to,T.edgeId),T.to===c){_.length=0;break}_.push(T.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 Lg={seed:1,dt:1,springLength:240,springStrength:.03,repulsionStrength:9e3,centeringStrength:.003,damping:.85,maxSpeed:90,maxRepulsionNodes:320};function Od(e,t={}){const r={...Lg,...t,seed:typeof t.seed=="number"&&Number.isFinite(t.seed)?Math.trunc(t.seed):Lg.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??Wc(e,{kind:"force",seed:r.seed}),g=Yy(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],A=typeof(S==null?void 0:S.x)=="number"&&Number.isFinite(S.x)?S.x:(g()-.5)*500,T=typeof(S==null?void 0:S.y)=="number"&&Number.isFinite(S.y)?S.y:(g()-.5)*500;u[2*b]=A+(g()-.5)*x,u[2*b+1]=T+(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 LN(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],A=e.pos[2*j+1];for(let T=j+1;T<r;T++){const B=e.pos[2*T]-S,P=e.pos[2*T+1]-A,F=B*B+P*P+1e-6,G=1/Math.sqrt(F),se=b/F,Y=se*B*G,le=se*P*G;e.acc[2*j]-=Y,e.acc[2*j+1]-=le,e.acc[2*T]+=Y,e.acc[2*T+1]+=le}}}const d=o.springLength,h=o.springStrength,_=e.edges;for(let b=0;b<_.length;b+=2){const j=_[b],S=_[b+1],A=e.pos[2*j],T=e.pos[2*j+1],B=e.pos[2*S],P=e.pos[2*S+1],F=B-A,G=P-T,se=F*F+G*G+1e-6,Y=Math.sqrt(se),le=h*(Y-d),oe=le*F/Y,ge=le*G/Y;e.acc[2*j]+=oe,e.acc[2*j+1]+=ge,e.acc[2*S]-=oe,e.acc[2*S+1]-=ge}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 A=Math.sqrt(j*j+S*S);if(A>v){const T=v/A;j*=T,S*=T}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 PN(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 IN(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 Pg(e,t="session"){const r=String(e??"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function FN(){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 ON(){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 Xy(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=Xy(e,.6,2.4,1),r=240*t,o=9e3*t*t;return{springLength:r,repulsionStrength:o}}const Ku="abstractuic_amx_saved_layouts_v1",Zm=.025,eh=6,Ky=1e6;function Sh(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function th(e,t="grid"){const r=String(e??"").trim().toLowerCase();return r==="grid"||r==="circle"||r==="radial"||r==="force"?r:t}function DN(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 Ig(e){const t=Sh();if(!t)return null;const r=String(e??"").trim();if(!r)return null;try{const o=t.getItem(Ku);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 _=th(d.kind,"grid"),g=typeof d.seed=="number"&&Number.isFinite(d.seed)?Math.trunc(d.seed):Qm(r),x=d.positions&&typeof d.positions=="object"&&!Array.isArray(d.positions)?d.positions:null,v={};if(x)for(const[S,A]of Object.entries(x)){const T=DN(A);T&&(v[String(S)]=T)}const b=Gy(d.viewport,{minZoom:Zm,maxZoom:eh,maxAbsTranslate:Ky})??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 BN(e,t){const r=Sh();if(!r)return;const o=String(e??"").trim();if(o)try{const l=r.getItem(Ku),u=l?JSON.parse(l):null,c=u&&typeof u=="object"&&!Array.isArray(u)?{...u}:{};c[o]=t,r.setItem(Ku,JSON.stringify(c))}catch{}}function UN(e){const t=Sh();if(!t)return;const r=String(e??"").trim();if(r)try{const o=t.getItem(Ku);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(Ku,JSON.stringify(u))}catch{}}function WN(e){const t=String(e??"").trim();if(!t)return;const r=Number(t);if(Number.isFinite(r))return r}function xm(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 HN(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 VN(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 qN(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 zu(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 GN(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 Ru(e){const t=GN(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 Jy(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 vm(e,t){const r=String(e??"").trim().toLowerCase();return!!(r&&t.has(r))}function YN(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=Jy(h);return _>1?`${g}×${_}`:g}).join(" | "),d=l.length>r?` +${l.length-r}`:"";return`${c}${d}`.trim()}function XN({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 Tr;const S=m.useRef(null),A=m.useMemo(()=>{const R=r==null?void 0:r[0],ie=r==null?void 0:r[r.length-1],Ee=R?`${R.subject}|${R.predicate}|${R.object}`:"",Ie=ie?`${ie.subject}|${ie.predicate}|${ie.object}`:"";return`${(r==null?void 0:r.length)||0}:${Ee}:${Ie}`},[r]),T=String(e??A),B=t==="replace"?"replace":"override",[P,F]=m.useState(null),[G,se]=m.useState(null),[Y,le]=m.useState(!1),[oe,ge]=m.useState(""),[Re,Te]=m.useState(!1),[K,W]=m.useState("");m.useEffect(()=>{F(null),se(null),ge(""),le(!1),W(""),Te(!1)},[T]);const[X,V]=m.useState(""),[Q,k]=m.useState(!0),[M,D]=m.useState(!1),[C,U]=m.useState(!0),[te]=m.useState(()=>({compact:FN(),show:!1})),ne=te.compact,[me,Me]=m.useState(te.show),[Ne,Fe]=m.useState(!1),Be=T,_e=m.useMemo(()=>Qm(Be),[Be]),[ve,ae]=m.useState("grid"),[we,Pe]=m.useState(_e),[Ke,et]=m.useState(!1),[Ae,Oe]=m.useState(1),lt=m.useRef(null),xe=m.useRef(null),$t=m.useRef(!1),[xt,on]=m.useState(0),cn=m.useRef(null),Xt=m.useRef(0),Se=m.useRef(0),ue=m.useRef(0),ke=m.useRef(0),[At,gt]=m.useState(!1),[qt,On]=m.useState(""),[rn,un]=m.useState({}),vn=m.useRef({});m.useEffect(()=>{vn.current=rn},[rn]);const[jn,ur]=m.useState(""),[Zt,Qn]=m.useState(""),as=m.useMemo(()=>{var ie;const R=(ie=r==null?void 0:r[0])==null?void 0:ie.scope;return Pg(R,"session")},[r]),[Un,de]=m.useState(as),[je,ut]=m.useState("standard"),[it,St]=m.useState(""),[Rt,Wt]=m.useState(""),[Dt,gn]=m.useState(""),[Ft,yn]=m.useState(""),[dn,Gt]=m.useState(""),[en,Vt]=m.useState(""),[rt,kn]=m.useState(""),[Rn,Nn]=m.useState("qwen/qwen3-next-80b");m.useEffect(()=>{de(as)},[T]);const Cn=Array.isArray(r)?r:[],lr=typeof o=="string"?o:"",Fr=Array.isArray(l)?l:[],jr=typeof u=="number"?u:void 0,Or=typeof c=="number"?c:void 0,Hs=typeof d=="number"?d:void 0,$s=typeof h=="number"?h:void 0,ao=_,Mi=g,ls=B==="override"&&(P!=null&&P.items)&&Array.isArray(P.items)?P.items:Cn,$n=typeof(P==null?void 0:P.active_memory_text)=="string"&&P.active_memory_text.trim()?P.active_memory_text:lr,cs=(P==null?void 0:P.effort)??ao,Qr=(P==null?void 0:P.warnings)??Mi,Dr=m.useMemo(()=>new Set(["rdf:type","schema:name","skos:preflabel","skos:altlabel","dcterms:title","dcterms:identifier"]),[]),pr=m.useMemo(()=>C?ls:(ls||[]).filter(R=>!vm(R==null?void 0:R.predicate,Dr)),[ls,C,Dr]),st=m.useMemo(()=>zN(ls,{groupEdges:Q}),[ls,Q]),jt=m.useMemo(()=>{if(C)return st;const R=[];for(const ie of st.edges){const Ie=(ie&&ie.data&&Array.isArray(ie.data.assertions)?ie.data.assertions:[]).filter(ot=>!vm(ot==null?void 0:ot.predicate,Dr));if(!Ie.length)continue;const De=YN(Ie);R.push({...ie,label:De,data:{...ie.data,assertions:Ie,predicateSummary:De}})}return{nodes:st.nodes,edges:R}},[st,C,Dr]),fn=m.useMemo(()=>jt.nodes.map(R=>R.id),[jt.nodes]),Br=m.useMemo(()=>{const R=fn[0]||"",ie=fn[fn.length-1]||"";return`${fn.length}:${R}:${ie}`},[fn]),kr=m.useMemo(()=>{var ie;const R=new Map;for(const Ee of jt.nodes)R.set(Ee.id,String(((ie=Ee.data)==null?void 0:ie.label)||Ee.id));return R},[jt.nodes]),Nr=m.useMemo(()=>{var ie;const R=new Map;for(const Ee of jt.nodes)R.set(Ee.id,String(((ie=Ee.data)==null?void 0:ie.kind)||""));return R},[jt.nodes]),gr=X.trim().toLowerCase(),Lo=m.useMemo(()=>{var ie;if(!gr)return new Set;const R=new Set;for(const Ee of jt.nodes){const Ie=String(Ee.id||"").toLowerCase(),De=String(((ie=Ee.data)==null?void 0:ie.label)||"").toLowerCase();(Ie.includes(gr)||De.includes(gr))&&R.add(Ee.id)}return R},[jt.nodes,gr]),Vs=m.useCallback((R,ie)=>{const Ee={};for(const Ie of fn){const De=R[Ie]||ie[Ie];Ee[Ie]=De?{x:De.x,y:De.y}:{x:0,y:0}}return Ee},[fn]);m.useEffect(()=>{un(R=>{const ie=Wc(jt,{kind:ve,seed:we}),Ee={};for(const Ie of fn){const De=R[Ie]||ie[Ie];Ee[Ie]=De?{x:De.x,y:De.y}:{x:0,y:0}}return Ee})},[jt,ve,we,fn,Br]),m.useEffect(()=>{if(!$t.current)return;const R=S.current;if(!(!R||typeof R.fitView!="function")&&fn.length){$t.current=!1;try{R.fitView({padding:.2,duration:0})}catch{try{R.fitView({padding:.2})}catch{}}}},[fn.length,Br,rn]),m.useEffect(()=>{et(!1),lt.current=null,xe.current=null,$t.current=!1,Xt.current=0,Se.current=0,ue.current=0;const R=Ig(Be);if(R&&Object.keys(R.positions||{}).length){if(ae(R.kind),Pe(R.seed),gt(!0),On(R.saved_at||""),R.viewport){xe.current=R.viewport;const De=S.current;if(De&&typeof De.setViewport=="function"){try{De.setViewport(R.viewport,{duration:0})}catch{try{De.setViewport(R.viewport)}catch{}}xe.current=null}}else $t.current=!0;const Ie=Wc(jt,{kind:R.kind,seed:R.seed});un(Vs(R.positions,Ie));return}gt(!1),On("");const ie=Qm(Be);Pe(ie);const Ee=Wc(jt,{kind:ve,seed:ie});un(Ee),ve==="force"&&jt.nodes.length>0&&jt.nodes.length<=320&&(lt.current=Od(jt,{seed:ie,positions:Ee,...Mu(Ae)}),et(!0))},[Be]);const Dn=m.useMemo(()=>{const R=String(jn||"").trim(),ie=String(Zt||"").trim();return!R||!ie?null:RN(jt,R,ie,{directed:M})},[jt,jn,Zt,M]),dr=!!(Dn&&String(jn||"").trim()&&String(Zt||"").trim()),fr=m.useMemo(()=>{const R=String(jn||"").trim(),ie=String(Zt||"").trim();if(!R||!ie)return null;const Ee=M,Ie=new Map,De=(Lt,Pt)=>{const Kt=Ie.get(Lt);Kt?Kt.push(Pt):Ie.set(Lt,[Pt])};for(const Lt of jt.edges)De(Lt.source,Lt.target),Ee||De(Lt.target,Lt.source);const ot=new Set,Tt=[];for(ot.add(R),Tt.push(R);Tt.length;){const Lt=Tt.shift(),Pt=Ie.get(Lt)||[];for(const Kt of Pt)ot.has(Kt)||(ot.add(Kt),Tt.push(Kt))}return{reachableFromStart:ot.size,endReachable:ot.has(ie),nodes:jt.nodes.length,edges:jt.edges.length,assertions:pr.length}},[M,jt.edges,jt.nodes.length,Zt,jn,pr.length]),ze=m.useMemo(()=>new Set((Dn==null?void 0:Dn.nodeIds)||[]),[Dn]),qn=m.useMemo(()=>new Set((Dn==null?void 0:Dn.edgeIds)||[]),[Dn]),[Ye,Gn]=m.useState(""),[Zn,_r]=m.useState(""),Cr=!!(String(Ye||"").trim()||String(Zn||"").trim()),Er=m.useMemo(()=>{const R=new Set,ie=new Set,Ee=String(Ye||"").trim(),Ie=String(Zn||"").trim();if(Ee){R.add(Ee);for(const De of jt.edges)(De.source===Ee||De.target===Ee)&&(ie.add(De.id),R.add(De.source),R.add(De.target));return{nodes:R,edges:ie}}if(Ie){const De=jt.edges.find(ot=>ot.id===Ie);De&&(ie.add(De.id),R.add(De.source),R.add(De.target))}return{nodes:R,edges:ie}},[jt.edges,Zn,Ye]);m.useEffect(()=>{Gn(""),_r(""),ur(""),Qn("")},[T]);const[zi,sn]=m.useState(!1);m.useEffect(()=>{sn(!1)},[T]),m.useEffect(()=>{Ke||(lt.current=null)},[Ke]),m.useEffect(()=>{if(ve!=="force")return;const R=lt.current;if(!R)return;const ie=Mu(Ae);R.options.springLength=ie.springLength,R.options.repulsionStrength=ie.repulsionStrength},[ve,Ae]),m.useEffect(()=>{ve!=="force"&&Ke&&et(!1)},[ve,Ke]),m.useEffect(()=>{if(!Ke||ve!=="force"||jt.nodes.length===0||typeof window>"u"||typeof window.requestAnimationFrame!="function")return;lt.current||(lt.current=Od(jt,{seed:we,positions:vn.current,...Mu(Ae)}));let R=0,ie=0,Ee=0;const Ie=jt.nodes.length<=140?2:1,De=1600,ot=.08,Tt=Lt=>{if(R=window.requestAnimationFrame(Tt),Lt-ie<33)return;ie=Lt;const Pt=lt.current;if(!Pt){et(!1);return}LN(Pt,Ie),Ee+=Ie,un(IN(Pt)),(PN(Pt)<=ot||Ee>=De)&&et(!1)};return R=window.requestAnimationFrame(Tt),()=>{window.cancelAnimationFrame(R)}},[jt,ve,Ke,we]);const $r=m.useMemo(()=>jt.nodes.map(R=>{var mn;const ie=ze.has(R.id),Ee=Lo.has(R.id),Ie=Ye===R.id,De=Cr&&Er.nodes.has(R.id),ot=zu((mn=R.data)==null?void 0:mn.kind),Tt="rgba(34, 211, 238, 0.88)",Lt=Ee?"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)":"",Pt=ie?"rgba(168, 85, 247, 0.9)":Ee?Tt:ot.stroke,Kt=Ie?"0 0 0 2px rgba(255,255,255,0.20), 0 18px 46px rgba(0,0,0,0.55)":De?"0 0 0 1px rgba(96, 165, 250, 0.28), 0 12px 34px rgba(0,0,0,0.45)":void 0,nt=Lt&&Kt?`${Lt}, ${Kt}`:Kt||Lt||void 0,xn=ie?"rgba(168, 85, 247, 0.10)":Ee?"rgba(34, 211, 238, 0.08)":ot.bg,tn=dr?ie||Ie?1:.16:Cr?De||Ie?1:.1:1;return{...R,position:rn[R.id]?{x:rn[R.id].x,y:rn[R.id].y}:R.position,style:{...R.style||{},border:`1px solid ${Pt}`,borderRadius:10,background:xn,color:"rgba(255,255,255,0.92)",opacity:tn,padding:8,fontSize:12,boxShadow:nt,width:180,cursor:"pointer"}}}),[jt.nodes,dr,Lo,rn,Ye,ze,Cr,Er.nodes]),qs=m.useMemo(()=>jt.edges.map(R=>{const ie=qn.has(R.id),Ee=Zn===R.id,Ie=Cr&&Er.edges.has(R.id),De=ie?"rgba(168, 85, 247, 0.9)":Cr?Ie||Ee?"rgba(96, 165, 250, 0.55)":"rgba(255,255,255,0.14)":"rgba(255,255,255,0.18)",ot=ie?2.75:Cr?Ie||Ee?2.25:1.25:1.5,Tt=Ee?"drop-shadow(0 0 10px rgba(168, 85, 247, 0.25))":void 0,Lt=ie?"rgba(168, 85, 247, 0.9)":dr?"rgba(255,255,255,0.10)":"rgba(255,255,255,0.28)",Pt=dr?ie||Ee?1:.1:Cr?Ie||Ee?1:.08:1,Kt=dr?ie||Ee?1:0:Cr?Ie||Ee?1:0:1,nt=dr?ie||Ee?String(R.label||""):"":String(R.label||"");return{...R,label:nt,style:{...R.style||{},stroke:De,strokeWidth:ot,filter:Tt,opacity:Pt},animated:!1,markerEnd:{type:Yu.ArrowClosed,color:Lt,width:20,height:20},labelShowBg:!0,labelBgPadding:[6,3],labelBgBorderRadius:10,labelBgStyle:{fill:`rgba(0, 0, 0, ${.38*Kt})`,stroke:`rgba(255, 255, 255, ${.14*Kt})`,strokeWidth:1},labelStyle:{fill:`rgba(255, 255, 255, ${.92*Kt})`,fontSize:10,fontWeight:600,letterSpacing:.2,textTransform:"lowercase"}}}),[jt.edges,dr,Zn,qn,Cr,Er.edges]),As=m.useMemo(()=>{if(!Zn)return[];const R=jt.edges.find(Ee=>Ee.id===Zn),ie=R&&R.data&&Array.isArray(R.data.assertions)?R.data.assertions:[];return Array.isArray(ie)?ie:[]},[jt.edges,Zn]),er=m.useMemo(()=>Zn&&jt.edges.find(R=>R.id===Zn)||null,[jt.edges,Zn]),mr=m.useMemo(()=>{const R=String(Ye||"").trim();return R?ls.filter(ie=>!ie||typeof ie!="object"||!(ie.subject===R||ie.object===R)?!1:C?!0:!vm(ie.predicate,Dr)):[]},[ls,Ye,C,Dr]),gi=m.useMemo(()=>Zn?As:mr,[As,Zn,mr]),Ln=m.useMemo(()=>{const R=new Map;for(const ie of gi){if(!ie||typeof ie!="object")continue;const Ee=ie.provenance&&typeof ie.provenance=="object"&&!Array.isArray(ie.provenance)?ie.provenance:null,Ie=Ee&&typeof Ee.span_id=="string"?Ee.span_id.trim():"",De=Ee&&typeof Ee.writer_run_id=="string"?Ee.writer_run_id.trim():"",ot=typeof ie.owner_id=="string"?ie.owner_id.trim():"",Tt=De||ot;if(!Tt||!Ie)continue;const Lt=`${Tt}|${Ie}`,Pt=R.get(Lt),Kt=typeof ie.observed_at=="string"?ie.observed_at.trim():"";Pt?(Pt.count+=1,Kt&&(!Pt.last_observed_at||Kt>Pt.last_observed_at)&&(Pt.last_observed_at=Kt,Pt.last_observed_at_fmt=Ru(Kt),Pt.assertion=ie)):R.set(Lt,{span_run_id:Tt,span_id:Ie,writer_run_id:De,count:1,last_observed_at:Kt,last_observed_at_fmt:Ru(Kt),assertion:ie})}return Array.from(R.values()).sort((ie,Ee)=>String(Ee.last_observed_at||"").localeCompare(String(ie.last_observed_at||"")))},[gi]),Ur=m.useMemo(()=>{const R=new Map;for(const ie of gi){if(!ie||typeof ie!="object")continue;const Ee=ie.provenance&&typeof ie.provenance=="object"&&!Array.isArray(ie.provenance)?ie.provenance:null,Ie=Ee&&typeof Ee.span_id=="string"?Ee.span_id.trim():"",De=Ee&&typeof Ee.writer_run_id=="string"?Ee.writer_run_id.trim():"";if(!De||Ie)continue;const ot=R.get(De),Tt=typeof ie.observed_at=="string"?ie.observed_at.trim():"";ot?(ot.count+=1,Tt&&(!ot.last_observed_at||Tt>ot.last_observed_at)&&(ot.last_observed_at=Tt,ot.last_observed_at_fmt=Ru(Tt),ot.assertion=ie)):R.set(De,{run_id:De,count:1,last_observed_at:Tt,last_observed_at_fmt:Ru(Tt),assertion:ie})}return Array.from(R.values()).sort((ie,Ee)=>String(Ee.last_observed_at||"").localeCompare(String(ie.last_observed_at||"")))},[gi]),Ar=m.useCallback(R=>{const ie=String(R.run_id||"").trim(),Ee=typeof R.span_id=="string"?String(R.span_id).trim():"";if(ie){if(j){try{j({run_id:ie,span_id:Ee||void 0,assertion:R.assertion})}catch{}return}if(b&&Ee)try{b({run_id:ie,span_id:Ee,assertion:R.assertion})}catch{}}},[b,j]),Zr=m.useCallback(async R=>{const ie=String(R??"");if(ie)try{await navigator.clipboard.writeText(ie)}catch{}},[]),Wr=m.useCallback(()=>{const R=S.current;if(!(!R||typeof R.fitView!="function")){if(Ye&&typeof R.getNode=="function"){const ie=R.getNode(Ye);if(ie){R.fitView({nodes:[ie],padding:.55,duration:350});return}}R.fitView({padding:.2,duration:350})}},[Ye]),Ts=m.useCallback(R=>{const ie=R.kind,Ee=Math.trunc(R.seed);et(!1),lt.current=null,xe.current=null,ae(ie),Pe(Ee);const Ie=Wc(jt,{kind:ie,seed:Ee});un(Ie),ie==="force"&&(R.autoPlay??!0)&&jt.nodes.length>0&&jt.nodes.length<=320&&(lt.current=Od(jt,{seed:Ee,positions:Ie,...Mu(Ae)}),et(!0))},[jt,Ae]),es=m.useCallback(()=>{if(ve==="force"){if(Ke){et(!1);return}lt.current=Od(jt,{seed:we,positions:vn.current,...Mu(Ae)}),et(!0)}},[jt,ve,Ke,we,Ae]);m.useEffect(()=>()=>{typeof window>"u"||typeof window.cancelAnimationFrame=="function"&&ke.current&&window.cancelAnimationFrame(ke.current)},[]);const ts=m.useCallback(()=>{const R=S.current;if(!R||typeof R.getViewport!="function"||!fn.length)return null;const ie=cn.current;if(!ie)return null;const Ee=ie.getBoundingClientRect();if(!Number.isFinite(Ee.width)||!Number.isFinite(Ee.height)||Ee.width<64||Ee.height<64)return null;const Ie=R.getViewport(),De=typeof(Ie==null?void 0:Ie.zoom)=="number"&&Number.isFinite(Ie.zoom)?Ie.zoom:null,ot=typeof(Ie==null?void 0:Ie.x)=="number"&&Number.isFinite(Ie.x)?Ie.x:null,Tt=typeof(Ie==null?void 0:Ie.y)=="number"&&Number.isFinite(Ie.y)?Ie.y:null;if(De===null||ot===null||Tt===null||De<=0)return null;const Lt=140,Pt=Math.min(fn.length,180),Kt=vn.current;let nt=0,xn=0;for(const tn of fn){const mn=Kt[tn];if(!mn||!Number.isFinite(mn.x)||!Number.isFinite(mn.y))continue;xn+=1;const or=[{x:mn.x,y:mn.y},{x:mn.x+90,y:mn.y+24}];for(const An of or){const Mr=An.x*De+ot,bs=An.y*De+Tt;if(Mr>-Lt&&Mr<Ee.width+Lt&&bs>-Lt&&bs<Ee.height+Lt)return!1}if(nt++,nt>=Pt)break}return xn?!0:null},[fn]),yr=m.useCallback(R=>{typeof window>"u"||typeof window.requestAnimationFrame!="function"||ke.current||(ke.current=window.requestAnimationFrame(()=>{ke.current=0;const ie=ts();if(ie===null){if(ue.current>=12)return;ue.current+=1,window.setTimeout(()=>yr(`${R}:probe`),120);return}if(ie!==!0){ue.current=0,Se.current=0;return}ue.current=0;const Ee=S.current;if(Ee&&typeof Ee.fitView=="function")try{Ee.fitView({padding:.2,duration:0})}catch{try{Ee.fitView({padding:.2})}catch{}}if(Se.current+=1,Se.current>=4&&Xt.current<1){Se.current=0,Xt.current+=1,on(Ie=>Ie+1);return}Se.current<8&&window.setTimeout(()=>yr(`${R}:retry`),220)}))},[ts]);m.useEffect(()=>{Se.current=0,Xt.current=0,ue.current=0,yr("mount")},[T,yr]),m.useEffect(()=>{yr("graph change")},[Br,yr]),m.useEffect(()=>{const R=cn.current;if(!R||typeof window>"u"||typeof ResizeObserver!="function")return;const ie=new ResizeObserver(()=>yr("resize"));return ie.observe(R),()=>ie.disconnect()},[yr]);const Ri=m.useCallback(()=>{const R=new Date().toISOString(),ie={};for(const Tt of fn){const Lt=vn.current[Tt];Lt&&typeof Lt.x=="number"&&typeof Lt.y=="number"&&(ie[Tt]={x:Lt.x,y:Lt.y})}const Ee=S.current,Ie=Ee&&typeof Ee.toObject=="function"?Ee.toObject():null,De=Ie&&Ie.viewport?Ie.viewport:Ee&&typeof Ee.getViewport=="function"?Ee.getViewport():null,ot=Gy(De,{minZoom:Zm,maxZoom:eh,maxAbsTranslate:Ky})??void 0;BN(Be,{version:1,kind:ve,seed:we,positions:ie,viewport:ot,saved_at:R}),gt(!0),On(R),et(!1)},[Be,ve,we,fn]),Hr=m.useCallback(()=>{const R=Ig(Be);if(!R)return;et(!1),lt.current=null,ae(R.kind),Pe(R.seed),gt(!0),On(R.saved_at||""),xe.current=R.viewport||null,$t.current=!R.viewport;const ie=Wc(jt,{kind:R.kind,seed:R.seed});if(un(Vs(R.positions,ie)),R.viewport){const Ee=S.current;if(Ee&&typeof Ee.setViewport=="function"){try{Ee.setViewport(R.viewport,{duration:0})}catch{try{Ee.setViewport(R.viewport)}catch{}}xe.current=null}}},[Vs,jt,Be]),Li=m.useCallback(()=>{UN(Be),gt(!1),On("")},[Be]),Pi=m.useCallback(R=>{if(!Array.isArray(R)||R.length===0)return;let ie=!1;un(Ee=>{let Ie=Ee,De=!1;for(const ot of R){const Tt=ot&&typeof ot=="object"&&"id"in ot&&typeof ot.id=="string"?String(ot.id):"",Lt=(ot==null?void 0:ot.type)==="position"?ot==null?void 0:ot.position:null;Tt&&Lt&&typeof Lt.x=="number"&&typeof Lt.y=="number"&&(De||(Ie={...Ee},De=!0),Ie[Tt]={x:Lt.x,y:Lt.y},ot!=null&&ot.dragging&&(ie=!0))}return De?Ie:Ee}),ie&&Ke&&et(!1)},[Ke]),Ms=m.useMemo(()=>{const R=new Map;for(const ie of jt.edges)R.set(ie.id,ie);return R},[jt.edges]),Ii=m.useMemo(()=>{var Ie;if(!Dn)return[];const R=Dn.nodeIds||[],ie=Dn.edgeIds||[],Ee=[];for(let De=0;De<Math.min(R.length-1,ie.length);De++){const ot=R[De],Tt=R[De+1],Lt=ie[De],Pt=Ms.get(Lt),Kt=String(((Ie=Pt==null?void 0:Pt.data)==null?void 0:Ie.predicateSummary)||(Pt==null?void 0:Pt.label)||"").trim(),nt=Pt&&Pt.source===ot&&Pt.target===Tt?"forward":Pt&&Pt.source===Tt&&Pt.target===ot?"reverse":"unknown";Ee.push({from:ot,to:Tt,edgeId:Lt,predicate:Kt,dir:nt})}return Ee},[Ms,Dn]),ca=m.useCallback(async()=>{if(x){ge(""),W(""),le(!0);try{const R=WN(dn),ie=xm(en,{allowZero:!0,allowNegativeOne:!0}),Ee=xm(rt,{allowZero:!0}),Ie=await x({scope:Un,owner_id:void 0,recall_level:je,query_text:it||void 0,subject:Rt||void 0,predicate:Dt||void 0,object:Ft||void 0,min_score:R,limit:ie,max_input_tokens:Ee,model:Rn||void 0});F(Ie),se("live query"),B==="replace"&&v&&Ie&&Array.isArray(Ie.items)&&v(Ie.items,{kind:"live query",result:Ie})}catch(R){const ie=R instanceof Error?R.message:String(R);ge(ie||"Query failed")}finally{le(!1)}}},[en,rt,dn,Rn,Ft,v,x,Dt,B,it,je,Un,Rt]),zs=m.useCallback(async()=>{if(!x)return;const R=String(jn||"").trim(),ie=String(Zt||"").trim();if(!R||!ie)return;const Ee=Math.max(200,xm(en)??80),Ie=60;W(""),ge(""),Te(!0);try{const De=[],ot=new Set,Tt=tn=>{if(!tn||typeof tn!="object"||typeof tn.subject!="string"||typeof tn.predicate!="string"||typeof tn.object!="string")return;const mn=`${tn.subject}|${tn.predicate}|${tn.object}|${String(tn.observed_at||"")}|${String(tn.scope||"")}|${String(tn.owner_id||"")}`;ot.has(mn)||(ot.add(mn),De.push(tn))};for(const tn of ls)Tt(tn);const Lt=M,Pt=new Set,Kt=[R],nt=new Set([R]),xn=async tn=>{const mn=await x({scope:Un,recall_level:je,min_score:0,limit:Ee,subject:tn,query_text:void 0,max_input_tokens:0,model:void 0});if(mn&&Array.isArray(mn.items)){for(const or of mn.items)if(Tt(or),typeof or.subject=="string"&&or.subject.trim()===tn&&typeof or.object=="string"){const An=or.object.trim();An&&!nt.has(An)&&(nt.add(An),Kt.push(An))}}if(!Lt){const or=await x({scope:Un,recall_level:je,min_score:0,limit:Ee,object:tn,query_text:void 0,max_input_tokens:0,model:void 0});if(or&&Array.isArray(or.items)){for(const An of or.items)if(Tt(An),typeof An.object=="string"&&An.object.trim()===tn&&typeof An.subject=="string"){const Mr=An.subject.trim();Mr&&!nt.has(Mr)&&(nt.add(Mr),Kt.push(Mr))}}}};for(;Kt.length&&Pt.size<Ie&&!nt.has(ie);){const tn=Kt.shift();!tn||Pt.has(tn)||(Pt.add(tn),await xn(tn))}F({ok:!0,count:De.length,items:De,active_memory_text:$n,raw:{expanded_for_path:!0,expanded_nodes:Pt.size,discovered_nodes:nt.size,merged:De.length,directed:Lt}}),se("expanded neighborhood"),B==="replace"&&v&&v(De,{kind:"expanded neighborhood",result:{ok:!0,count:De.length,items:De,active_memory_text:$n,raw:{expanded_for_path:!0,expanded_nodes:Pt.size,discovered_nodes:nt.size,merged:De.length,directed:Lt}}})}catch(De){const ot=De instanceof Error?De.message:String(De);W(ot||"Expand neighborhood failed")}finally{Te(!1)}},[M,$n,ls,en,v,x,Zt,jn,B,je,Un]),Gs=m.useCallback(()=>{F(null),se(null),ge(""),le(!1),W(""),Te(!1),ur(""),Qn(""),Gn(""),_r("")},[]),Vr="Search KG",Rs=jt.nodes.length,Fi=jt.edges.length,Po=pr.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:ve,onChange:R=>ae(th(R.target.value,ve)),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)"})]}),ve==="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=>Oe(Xy(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:()=>Ts({kind:ve,seed:we}),disabled:!fn.length,children:"Apply"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:es,disabled:!fn.length||ve!=="force",children:Ke?"Pause simulation":"Play simulation"})]})}),s.jsxs("div",{className:"amx-graph","aria-label":"Knowledge graph",ref:cn,children:[s.jsx(bh,{children:s.jsxs(Uy,{nodes:$r,edges:qs,defaultViewport:{x:0,y:0,zoom:1},minZoom:Zm,maxZoom:eh,onInit:R=>{S.current=R;const ie=xe.current;if(ie&&typeof R.setViewport=="function")try{R.setViewport(ie,{duration:0})}catch{try{R.setViewport(ie)}catch{}}if($t.current&&typeof R.fitView=="function")try{R.fitView({padding:.2,duration:0})}catch{try{R.fitView({padding:.2})}catch{}}xe.current=null,$t.current=!1,yr("init")},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,onNodesChange:Pi,onNodeClick:(R,ie)=>{_r(""),Gn(ie.id)},onEdgeClick:(R,ie)=>{Gn(""),_r(ie.id)},onPaneClick:()=>{Gn(""),_r("")},children:[s.jsx(bN,{className:"amx-flow-controls",children:s.jsx(Vc,{type:"button",className:`amx-control-legend ${Ne?"amx-control-legend-active":""}`,onClick:()=>Fe(R=>!R),title:Ne?"Hide node color legend":"Show node color legend","aria-label":Ne?"Hide node color legend":"Show node color legend",children:s.jsx(ON,{})})}),s.jsx(Vu,{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:()=>Me(R=>!R),title:me?"Hide minimap preview":"Show minimap preview","aria-label":me?"Hide minimap preview":"Show minimap preview",children:me?"minimap on":"minimap off"})})}),me?s.jsx(pN,{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:ne?120:160,height:ne?80:110,marginBottom:56},nodeColor:R=>{var ie;return zu((ie=R.data)==null?void 0:ie.kind).minimap}}):null,Ne?s.jsxs(Vu,{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:zu(R).stroke},children:ie},R))})]}):null,s.jsx(EN,{gap:20,size:1,color:"rgba(255,255,255,0.06)"})]})},xt),s.jsxs("details",{className:"amx-panel amx-controls",children:[s.jsxs("summary",{children:[s.jsx("span",{className:"amx-controls-title",children:Vr}),s.jsxs("span",{className:"amx-small",children:[Po," assertions · ",Rs," nodes · ",Fi," 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:X,onChange:R=>V(R.target.value),placeholder:"filter nodes by id/label"})]}),s.jsxs("label",{children:["group edges",s.jsxs("select",{value:String(Q),onChange:R=>k(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(C),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(M),onChange:R=>D(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:ve,onChange:R=>ae(th(R.target.value,ve)),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:we,onChange:R=>Pe(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:()=>Ts({kind:ve,seed:we}),disabled:!fn.length,children:"Apply layout"}),ve==="force"?s.jsx("button",{type:"button",className:"amx-btn",onClick:es,disabled:!fn.length,children:Ke?"Pause simulation":"Play simulation"}):null,s.jsx("button",{type:"button",className:"amx-btn",onClick:Ri,disabled:!fn.length,children:"Save layout"}),At?s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:Hr,children:"Load saved"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Li,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.",At?s.jsxs("span",{children:[" ","(saved",qt?`: ${qt}`:"",")"]}):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:jn,onChange:R=>ur(R.target.value),children:[s.jsx("option",{value:"",children:"(none)"}),fn.map(R=>s.jsx("option",{value:R,children:(()=>{const ie=kr.get(R)||R;return ie===R?ie:`${ie} (${R})`})()},R))]})]}),s.jsxs("label",{children:["path end",s.jsxs("select",{value:Zt,onChange:R=>Qn(R.target.value),children:[s.jsx("option",{value:"",children:"(none)"}),fn.map(R=>s.jsx("option",{value:R,children:(()=>{const ie=kr.get(R)||R;return ie===R?ie:`${ie} (${R})`})()},R))]})]})]}),Dn?s.jsx("div",{className:"amx-small",style:{marginTop:10},children:Ii.map((R,ie)=>{const Ee=kr.get(R.from)||R.from,Ie=kr.get(R.to)||R.to,De=R.dir==="reverse"?" ← ":" → ",ot=R.predicate?` (${R.predicate})`:"";return s.jsxs("div",{children:[ie===0?s.jsx("span",{children:Ee}):null,De,s.jsxs("span",{children:[Ie,ot]})]},`${R.edgeId}:${ie}`)})}):jn&&Zt?s.jsxs("div",{className:"amx-small",style:{marginTop:10,opacity:.9},children:["No path found in the current subgraph (",(fr==null?void 0:fr.assertions)??Po," assertions · ",(fr==null?void 0:fr.nodes)??jt.nodes.length," nodes ·"," ",(fr==null?void 0:fr.edges)??jt.edges.length," edges). Start reaches ",(fr==null?void 0:fr.reachableFromStart)??0," nodes.",x?s.jsx("div",{style:{marginTop:10},children:s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void zs(),disabled:Re,children:Re?"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=>St(R.target.value),placeholder:"e.g. emotion chip"})]}),s.jsxs("label",{children:["subject (exact)",s.jsx("input",{value:Rt,onChange:R=>Wt(R.target.value),placeholder:"e.g. ex:person-data"})]}),s.jsxs("label",{children:["predicate (exact)",s.jsx("input",{value:Dt,onChange:R=>gn(R.target.value),placeholder:"e.g. schema:about"})]}),s.jsxs("label",{children:["object (exact)",s.jsx("input",{value:Ft,onChange:R=>yn(R.target.value),placeholder:"e.g. ex:concept-emotion-chip"})]}),s.jsxs("label",{children:["min_score",s.jsx("input",{type:"number",step:"any",value:dn,onChange:R=>Gt(R.target.value),placeholder:"(auto)"})]}),s.jsxs("label",{children:["limit",s.jsx("input",{type:"number",min:"-1",step:"1",value:en,onChange:R=>Vt(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:Un,onChange:R=>de(Pg(R.target.value,Un)),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:je,onChange:R=>ut(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:rt,onChange:R=>kn(R.target.value),placeholder:"(auto)"})]}),s.jsxs("label",{children:["model (budgeting)",s.jsx("input",{value:Rn,onChange:R=>Nn(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 ca(),disabled:!x||Y,children:Y?"Querying…":"Query store"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Gs,disabled:!P&&!oe&&!Y,children:"Reset to step output"}),P?s.jsxs("span",{className:"amx-small",children:["showing: ",G||"live query"]}):s.jsx("span",{className:"amx-small",children:"showing: step output"}),oe?s.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:oe}):null,K?s.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:K}):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=HN(cs);return R?s.jsx("div",{className:"amx-small",style:{marginBottom:8,opacity:.9},children:R}):null})(),(()=>{const R=Qr;if(!R)return null;const ie=typeof R=="string"?R:Array.isArray(R)?R.map(Ee=>String(Ee)).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=(P==null?void 0:P.packets_version)??jr,ie=(P==null?void 0:P.packed_count)??Or,Ee=(P==null?void 0:P.dropped)??Hs,Ie=(P==null?void 0:P.estimated_tokens)??$s,De=[];return typeof R=="number"&&De.push(`packets_v${R}`),typeof ie=="number"&&De.push(`packed=${ie}`),typeof Ee=="number"&&De.push(`dropped=${Ee}`),typeof Ie=="number"&&De.push(`est_tokens=${Ie}`),De.length?De.join(" · "):"No packetization stats (set max_input_tokens > 0)."})()}),s.jsx("div",{className:"amx-active-memory",children:qN($n||"(empty)",X)}),(()=>{const R=P!=null&&P.packets&&Array.isArray(P.packets)?P.packets:Fr;return!Array.isArray(R)||R.length===0?null:s.jsxs("div",{style:{marginTop:10},children:[s.jsxs("button",{type:"button",className:"amx-btn",onClick:()=>sn(ie=>!ie),children:[zi?"Hide":"Show"," packets (",R.length,")"]}),zi?s.jsx("div",{className:"amx-list",style:{marginTop:10},children:R.slice(0,120).map((ie,Ee)=>{const Ie=ie&&typeof ie=="object"&&!Array.isArray(ie)?ie:null,De=Ie&&typeof Ie.statement=="string"?Ie.statement:typeof ie=="string"?ie:"",ot=Ie&&(typeof Ie.retrieval_score=="number"||typeof Ie.retrieval_score=="string")?Ie.retrieval_score:null,Tt=Ie&&typeof Ie.observed_at=="string"?Ie.observed_at:null;return s.jsxs("div",{className:"amx-item",children:[s.jsx("div",{className:"amx-mono",children:De||"(packet)"}),Tt||ot!==null?s.jsxs("div",{className:"amx-small",children:[Tt?`[${Tt}]`:null,Tt&&ot!==null?" ":null,ot!==null?`score:${ot}`:null]}):null]},Ee)})}):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."}),Ye?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:kr.get(Ye)||Ye}),s.jsxs("div",{className:"amx-small",children:["kind=",Nr.get(Ye)||"entity"," · id=",Ye]})]}),s.jsxs("div",{className:"amx-actions",children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Zr(Ye),children:"Copy id"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Wr,children:"Focus"})]})]}):er&&er.source&&er.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:[er.source," —",String(er.label||((Tr=er.data)==null?void 0:Tr.predicateSummary)||"").trim()||"?","→ ",er.target]}),s.jsxs("div",{className:"amx-small",children:["edge_id=",er.id]})]}),s.jsxs("div",{className:"amx-actions",children:[s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Zr(er.id),children:"Copy id"}),s.jsx("button",{type:"button",className:"amx-btn",onClick:Wr,children:"Fit"})]})]}):s.jsx("div",{className:"amx-small",style:{marginBottom:10,opacity:.9},children:"(no selection)"}),s.jsx("div",{className:"amx-list",children:gi.slice(0,80).map((R,ie)=>{const Ee=String(R.subject||"").trim(),Ie=String(R.predicate||"").trim(),De=String(R.object||"").trim(),ot=kr.get(Ee)||Ee,Tt=kr.get(De)||De,Lt=Nr.get(Ee)||"entity",Pt=Nr.get(De)||"entity",Kt=zu(Lt),nt=zu(Pt),xn=Ru(R.observed_at),tn=VN(R),mn=R.provenance&&typeof R.provenance=="object"&&!Array.isArray(R.provenance)?R.provenance:null,or=mn&&typeof mn.span_id=="string"?mn.span_id.trim():"",An=mn&&typeof mn.writer_run_id=="string"?mn.writer_run_id.trim():"",Mr=typeof R.owner_id=="string"?R.owner_id.trim():"",bs=An||Mr,_i=!!((j||b)&&or&&bs),Ls=!!(j&&An&&!or),lo=_i||Ls;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:Kt.stroke,background:Kt.bg},title:Ee,onClick:()=>{Ee&&(_r(""),Gn(Ee))},children:ot||Ee||"(subject)"}),s.jsx("span",{className:"amx-arrow",children:"—"}),s.jsx("span",{className:"amx-predicate",title:Ie,children:Jy(Ie)||"(predicate)"}),s.jsx("span",{className:"amx-arrow",children:"→"}),s.jsx("button",{type:"button",className:"amx-term",style:{borderColor:nt.stroke,background:nt.bg},title:De,onClick:()=>{De&&(_r(""),Gn(De))},children:Tt||De||"(object)"})]}),s.jsxs("div",{className:"amx-triple-meta",children:[xn?s.jsxs("span",{className:"amx-small",title:String(R.observed_at||""),children:["[",xn,"]"]}):null,tn?s.jsx("span",{className:"amx-small",children:tn}):null]}),or||An?s.jsxs("div",{className:"amx-triple-actions",children:[or?s.jsxs("span",{className:"amx-small",children:["span:",or]}):null,An?s.jsxs("span",{className:"amx-small",children:["run:",An]}):null,lo?s.jsx("button",{type:"button",className:"amx-btn",onClick:()=>{if(_i&&or&&bs){Ar({run_id:bs,span_id:or,assertion:R});return}Ls&&An&&Ar({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)."}),Ln.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:Ln.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:()=>Ar({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&&Ur.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:Ur.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:()=>Ar({run_id:R.run_id,assertion:R.assertion}),children:"Open transcript"})]},R.run_id))})]}):null,!Ln.length&&!(j&&Ur.length)?s.jsx("div",{className:"amx-small",children:"(no provenance)"}):null]})]})]})}function wm(e,t="session"){const r=String(e||"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function cl(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 Yl(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 KN(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=cl(t);return r!==null?Yl(r):t}function jh(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 Qy(e){return String(e??"").replace(/[*_`~]/g,"")}function Dd(e,t){const r=!!(t!=null&&t.strip_punct),o=jh(e);let l=Qy(o).replace(/\s+/g," ").trim().toLowerCase();return r&&(l=l.replace(/[^\p{L}\p{N}\s]+/gu,"").replace(/\s+/g," ").trim()),l}function Bd(e,t){const r=String(t??"").trim();if(!r)return!1;const o=Dd(r,{strip_punct:!1});if(!o)return!1;if(Dd(String(e??""),{strip_punct:!1}).includes(o))return!0;const u=Dd(r,{strip_punct:!0});return u?Dd(String(e??""),{strip_punct:!0}).includes(u):!1}function Fg(e){const t=jh(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(Qy(t)),r}function JN(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 A=String(j[2]??"");d=A?[A]:[];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 Dg(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 QN(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 ZN({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),[A,T]=m.useState([]),[B,P]=m.useState(void 0),[F,G]=m.useState(""),[se,Y]=m.useState(!1),[le,oe]=m.useState([]),[ge,Re]=m.useState(!1),[Te,K]=m.useState(!1),[W,X]=m.useState(""),[V,Q]=m.useState(""),[k,M]=m.useState(""),[D,C]=m.useState(""),[U,te]=m.useState("artifact"),[ne,me]=m.useState(null),[Me,Ne]=m.useState(""),[Fe,Be]=m.useState(null),_e=m.useRef(!1),ve=m.useMemo(()=>{const de=Fe,je=de!=null&&de.attributes&&typeof de.attributes=="object"&&!Array.isArray(de.attributes)?de.attributes:null;return(je&&typeof je.evidence_quote=="string"?String(je.evidence_quote):"").trim()},[Fe]),ae=m.useMemo(()=>{const de=ne,je=de&&typeof de=="object"&&!Array.isArray(de)?de:null,ut=je&&typeof je.note=="string"?String(je.note):"";return jh(ut).trim()},[ne]),we=m.useMemo(()=>{const de=ne&&typeof ne=="object"&&!Array.isArray(ne)?ne:null,je=de&&Array.isArray(de.messages)?de.messages:null;return Array.isArray(je)?je:null},[ne]),Pe=m.useMemo(()=>{const de=ae,je=ve;return!de||!je?!1:Bd(de,je)},[ve,ae]),Ke=m.useMemo(()=>{const de=we,je=ve;if(!de||!je)return[];const ut=[];for(let it=0;it<Math.min(de.length,500);it++){const St=de[it],Rt=(St==null?void 0:St.content)==null?"":String(St.content);Bd(Rt,je)&&ut.push(it)}return ut},[ve,we]),et=m.useMemo(()=>new Set(Ke),[Ke]),Ae=Ke.length?Ke[0]:null,Oe=m.useCallback(de=>{const je=document.getElementById(`source_msg_${de}`);je&&typeof je.scrollIntoView=="function"&&je.scrollIntoView({block:"center",behavior:"smooth"})},[]),lt=m.useCallback(()=>{const de=document.getElementById("source_note_hit_0")||document.getElementById("source_note_msg_hit_0");de&&typeof de.scrollIntoView=="function"&&de.scrollIntoView({block:"center",behavior:"smooth"})},[]);m.useEffect(()=>{if(ge&&!(Te||W)&&!_e.current){if(Ae!==null){_e.current=!0,window.setTimeout(()=>Oe(Ae),0);return}if(Pe){_e.current=!0,window.setTimeout(()=>lt(),0);return}}},[Oe,lt,W,Ae,Te,Pe,ge]);const xe=m.useRef(new Set),$t=m.useRef(""),xt=m.useRef(null),on=m.useRef(null);m.useEffect(()=>{l(String(t||"").trim())},[t]),m.useEffect(()=>{c(String(r||"").trim())},[r]);const cn=m.useMemo(()=>{const de=String(o||"").trim(),je=String(u||"").trim();return`mindmap:${d}:${de}:${je}`},[o,u,d]),Xt=m.useMemo(()=>{let de=null,je=null;for(const ut of A){const it=cl(ut==null?void 0:ut.observed_at);it!==null&&(de=de===null?it:Math.min(de,it),je=je===null?it:Math.max(je,it))}return{min_ms:de,max_ms:je}},[A]),Se=1e3,ue=m.useMemo(()=>{const de=Xt.min_ms,je=Xt.max_ms;if(typeof de!="number"||typeof je!="number"||!Number.isFinite(de)||!Number.isFinite(je))return null;if(je<=de)return{min_ms:de,max_ms:de,real_max_ms:je};const ut=de+Math.ceil((je-de)/Se)*Se;return{min_ms:de,max_ms:ut,real_max_ms:je}},[Xt.max_ms,Xt.min_ms]),[ke,At]=m.useState(!0),[gt,qt]=m.useState(null);m.useEffect(()=>{ke&&ue&&qt(ue.max_ms)},[ke,ue]);const On=m.useMemo(()=>{const de=typeof gt=="number"?gt:null;return de===null?A:A.filter(je=>{const ut=cl(je==null?void 0:je.observed_at);return ut===null?!0:ut<=de})},[A,gt]),rn=m.useCallback((de,je)=>{const ut=Array.isArray(de)?de:[],it=String($t.current||"").trim(),St=new Set,Rt=[];let Wt="";for(const Dt of ut){if(!Dt||typeof Dt!="object"||typeof Dt.subject!="string"||typeof Dt.predicate!="string"||typeof Dt.object!="string")continue;const gn=Dg(Dt);if(St.has(gn))continue;St.add(gn),Rt.push(Dt);const Ft=String(Dt.observed_at||"").trim();Ft&&(Wt=Og(Wt,Ft))}T(Rt),P(je==null?void 0:je.warnings),xe.current=St,$t.current=Wt||it},[]),un=m.useCallback(async de=>{const je=wm(de.scope,"session"),ut=String(de.subject||"").trim(),it=String(de.predicate||"").trim(),St=String(de.object||"").trim(),Rt=String(de.since||"").trim(),Wt=String(de.until||"").trim(),Dt=String(de.active_at||"").trim(),gn=String(de.query_text||"").trim(),Ft=typeof de.min_score=="number"&&Number.isFinite(de.min_score)?Number(de.min_score):void 0,yn=de.order==="asc"?"asc":"desc",dn=typeof de.limit=="number"&&Number.isFinite(de.limit)?Number(de.limit):0,Gt=String(o||"").trim(),en=String(u||"").trim(),Vt={scope:je,all_owners:_,limit:dn,order:yn};ut&&(Vt.subject=ut),it&&(Vt.predicate=it),St&&(Vt.object=St),Rt&&(Vt.since=Rt),Wt&&(Vt.until=Wt),Dt&&(Vt.active_at=Dt),gn&&(Vt.query_text=gn),typeof Ft=="number"&&(Vt.min_score=Ft),_||(je==="run"?Gt&&(Vt.run_id=Gt):je==="session"?en?Vt.session_id=en:Gt&&(Vt.run_id=Gt):je==="all"&&(Gt?Vt.run_id=Gt:en&&(Vt.session_id=en)));try{const rt=await e.kg_query(Vt),kn=Array.isArray(rt==null?void 0:rt.items)?rt.items:[],Rn=rt==null?void 0:rt.warnings;return{ok:(rt==null?void 0:rt.ok)!==!1,count:Number((rt==null?void 0:rt.count)||kn.length),items:kn,warnings:Rn,raw:rt}}catch(rt){const kn=rt instanceof Error?rt.message:String(rt);if(kn.includes("Run '")&&kn.includes("not found")&&!en&&(je==="session"||je==="all")&&Gt){const Nn=await e.kg_query({...Vt,run_id:void 0,session_id:Gt}),Cn=Array.isArray(Nn==null?void 0:Nn.items)?Nn.items:[],lr=Nn==null?void 0:Nn.warnings;return{ok:(Nn==null?void 0:Nn.ok)!==!1,count:Number((Nn==null?void 0:Nn.count)||Cn.length),items:Cn,warnings:lr,raw:Nn}}throw new Error(kn||"KG query failed")}},[_,e,o,u]),vn=m.useCallback(async de=>{var it;const je=String(de.run_id||"").trim(),ut=String(de.span_id||"").trim();if(!(!je||!ut)){Re(!0),K(!0),X(""),M(je),C(ut),te("artifact"),Q(`source span:${ut}`),me(null),Ne(""),Be(de.assertion&&typeof de.assertion=="object"?de.assertion:null),_e.current=!1;try{const St=[je],Rt=typeof((it=de.assertion)==null?void 0:it.owner_id)=="string"?String(de.assertion.owner_id).trim():"";Rt&&Rt!==je&&St.push(Rt);let Wt=null,Dt=null;for(const gn of St)try{Dt=await(await e.download_run_artifact_content(gn,ut)).text(),gn!==je&&M(gn);break}catch(Ft){Wt=Ft instanceof Error?Ft.message:String(Ft)}if(Dt==null)throw new Error(Wt||"Failed to load source span");Ne(Dt);try{const gn=JSON.parse(Dt);me(gn)}catch{me(null)}}catch(St){const Rt=St instanceof Error?St.message:String(St);X(Rt||"Failed to load source span")}finally{K(!1)}}},[e]),jn=m.useCallback(async de=>{const je=String(de.run_id||"").trim();if(!je)return null;try{const ut=await e.list_run_artifacts(je,{limit:200}),St=(Array.isArray(ut==null?void 0:ut.items)?ut.items:[]).map(Ft=>{const yn=typeof(Ft==null?void 0:Ft.artifact_id)=="string"?String(Ft.artifact_id).trim():"",dn=Ft!=null&&Ft.tags&&typeof Ft.tags=="object"&&!Array.isArray(Ft.tags)?Ft.tags:null,Gt=dn&&typeof dn.kind=="string"?String(dn.kind).trim():"";return{artifact_id:yn,kind:Gt}}).filter(Ft=>!!(Ft.artifact_id&&(Ft.kind==="conversation_span"||Ft.kind==="memory_note")));if(!St.length)return null;if(St.length===1)return St[0].artifact_id;const Rt=de.assertion,Wt=Rt!=null&&Rt.attributes&&typeof Rt.attributes=="object"&&!Array.isArray(Rt.attributes)?Rt.attributes:null,gn=(Wt&&typeof Wt.evidence_quote=="string"?String(Wt.evidence_quote):"").trim();if(!gn)return null;for(const Ft of St.slice(0,10))try{const dn=await(await e.download_run_artifact_content(je,Ft.artifact_id)).text(),Gt=JSON.parse(dn);if(Gt&&typeof Gt=="object"){const en=typeof Gt.note=="string"?String(Gt.note):"";if(en&&en.includes(gn))return Ft.artifact_id;const Vt=Array.isArray(Gt.messages)?Gt.messages:null;if(Vt){for(const rt of Vt.slice(0,200))if(((rt==null?void 0:rt.content)==null?"":String(rt.content)).includes(gn))return Ft.artifact_id}}}catch{}}catch{}return null},[e]),ur=m.useCallback(async de=>{const je=String(de.run_id||"").trim();if(je){Re(!0),K(!0),X(""),M(je),C(""),te("run_input"),Q(`transcript run:${je}`),me(null),Ne(""),Be(de.assertion&&typeof de.assertion=="object"?de.assertion:null),_e.current=!1;try{const ut=await jn({run_id:je,assertion:de.assertion});if(ut){await vn({run_id:je,span_id:ut,assertion:de.assertion});return}const it=await e.get_run_input_data(je),St=it&&typeof it=="object"&&!Array.isArray(it)?it.input_data:null,Rt={kind:"run_input_data",run_id:je};if(it&&typeof(it==null?void 0:it.workflow_id)=="string"&&(Rt.workflow_id=String(it.workflow_id)),St&&typeof St=="object"&&!Array.isArray(St)){const Wt=St.context,gn=(Wt&&typeof Wt=="object"&&Array.isArray(Wt.messages)?Wt.messages:null)||(Array.isArray(St.messages)?St.messages:null);Array.isArray(gn)&&(Rt.messages=gn);const Ft=["text","prompt","task","message"];for(const yn of Ft){const dn=St[yn];if(typeof dn=="string"&&dn.trim()){Rt.note=dn.trim();break}}Rt.input_data=St}!Rt.messages&&!Rt.note&&(Rt.note=JSON.stringify(St??it??{},null,2));try{const Wt=await e.get_run(je),Dt=Wt&&typeof(Wt==null?void 0:Wt.created_at)=="string"?String(Wt.created_at):"";Dt&&(Rt.created_at=Dt)}catch{}me(Rt),Ne(JSON.stringify(it,null,2))}catch(ut){const it=ut instanceof Error?ut.message:String(ut);X(it||"Failed to load run input transcript")}finally{K(!1)}}},[e,vn,jn]),Zt=m.useCallback(async()=>{G(""),Y(!0);try{const de=d==="all"?"all":d,je=await un({scope:de,limit:0,order:"desc"});rn(je.items||[],{warnings:je.warnings}),xt.current={scope:de}}catch(de){const je=de instanceof Error?de.message:String(de);G(je||"Load failed")}finally{Y(!1)}},[un,rn,d]);m.useEffect(()=>{A.length||Zt()},[]);const Qn=m.useCallback(async de=>{const je=wm(de.scope,"session");return on.current=de,await un({scope:je,subject:de.subject,predicate:de.predicate,object:de.object,query_text:de.query_text,min_score:de.min_score,since:de.since,until:de.until,active_at:de.active_at,limit:typeof de.limit=="number"?de.limit:0,order:"desc"})},[un]),as=m.useCallback((de,je)=>{var ut;if((je==null?void 0:je.kind)==="live query"){const it=on.current;it&&(xt.current={scope:wm(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})}rn(de,{warnings:(ut=je==null?void 0:je.result)==null?void 0:ut.warnings})},[rn]),Un=m.useCallback(async()=>{const de=xt.current;if(!de)return;const je=String($t.current||"").trim(),ut=await un({scope:de.scope,subject:de.subject,predicate:de.predicate,object:de.object,since:je||void 0,order:"asc",limit:0}),it=Array.isArray(ut.items)?ut.items:[];if(!it.length)return;const Rt=Date.now()+Math.max(250,Math.min(2e4,j)),Wt=xe.current,Dt=[],gn=[];let Ft=String($t.current||"").trim();for(const yn of it){if(!yn||typeof yn!="object"||typeof yn.subject!="string"||typeof yn.predicate!="string"||typeof yn.object!="string")continue;const dn=Dg(yn);if(Wt.has(dn))continue;Wt.add(dn),Dt.push(yn),gn.push({id:dn,assertion:yn,expires_at_ms:Rt});const Gt=String(yn.observed_at||"").trim();Gt&&(Ft=Og(Ft,Gt))}Dt.length&&($t.current=Ft,T(yn=>{const dn=yn.concat(Dt);return dn.sort((Gt,en)=>String((en==null?void 0:en.observed_at)||"").localeCompare(String((Gt==null?void 0:Gt.observed_at)||""))),dn}),oe(yn=>{const dn=yn.concat(gn);return dn.sort((Gt,en)=>en.expires_at_ms-Gt.expires_at_ms),dn.slice(0,30)}))},[j,un]);return m.useEffect(()=>{if(!g)return;let de=!1,je=null;const ut=async()=>{if(!de){try{await Un()}catch{}de||(je=window.setTimeout(()=>void ut(),Math.max(250,Math.min(6e4,v))))}};return ut(),()=>{de=!0,je!==null&&window.clearTimeout(je)}},[g,v,Un]),m.useEffect(()=>{if(!le.length)return;const de=window.setInterval(()=>{const je=Date.now();oe(ut=>ut.filter(it=>it.expires_at_ms>je))},250);return()=>window.clearInterval(de)},[le.length]),s.jsxs("div",{className:"mindmap_root",children:[s.jsxs("div",{className:"mindmap_bar",children:[s.jsx("button",{className:"btn",onClick:()=>void Zt(),disabled:se,children:se?"Loading…":"Load snapshot"}),s.jsxs("label",{className:"field_inline",children:[s.jsx("span",{className:"mono muted",children:"source"}),s.jsxs("select",{value:d,onChange:de=>{const je=String(de.target.value||"").trim();(je==="all"||je==="global"||je==="session"||je==="run")&&h(je)},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:de=>x(!!de.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:de=>c(String(de.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:de=>l(String(de.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:de=>b(Math.max(250,Number(de.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:de=>S(Math.max(250,Number(de.target.value||0)||5e3))})]})})]})]}),F?s.jsx("div",{className:"mindmap_error mono",children:F}):null,s.jsxs("div",{className:"mindmap_explorer",children:[s.jsx(XN,{title:"mindmap",resetKey:cn,queryMode:"replace",items:On,warnings:B,onQuery:Qn,onItemsReplace:as,onOpenSpan:({run_id:de,span_id:je,assertion:ut})=>{vn({run_id:de,span_id:je,assertion:ut})},onOpenTranscript:({run_id:de,span_id:je,assertion:ut})=>{const it=String(de||"").trim(),St=typeof je=="string"?String(je).trim():"";it&&(St?vn({run_id:it,span_id:St,assertion:ut}):ur({run_id:it,assertion:ut}))}},cn),le.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:le.slice().sort((de,je)=>je.expires_at_ms-de.expires_at_ms).slice(0,12).map(de=>s.jsx("div",{className:"mindmap_recent_item mono",children:QN(de.assertion)},de.id))})]}):null,ue?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:Yl(Math.min(typeof gt=="number"?gt:ue.max_ms,ue.real_max_ms))}),s.jsx("input",{className:"mindmap_slider",type:"range",min:ue.min_ms,max:ue.max_ms,step:Se,value:typeof gt=="number"?gt:ue.max_ms,onChange:de=>{const je=Number(de.target.value||0);qt(je),At(je>=ue.max_ms)}}),s.jsxs("div",{className:"mindmap_timeline_counts mono muted",children:[On.length.toLocaleString(),"/",A.length.toLocaleString()]})]})}):null]}),s.jsxs(Ai,{open:ge,title:V||"source",onClose:()=>{Re(!1)},children:[Te?s.jsx("div",{className:"mono muted",children:"Loading…"}):null,W?s.jsx("div",{className:"mindmap_error mono",children:W}):null,!Te&&!W?s.jsxs("div",{className:"source_span",children:[(()=>{const de=Fe;if(!de)return null;const je=String(de.subject||"").trim(),ut=String(de.predicate||"").trim(),it=String(de.object||"").trim(),St=Yl(cl(de.observed_at)),Rt=de.attributes&&typeof de.attributes=="object"&&!Array.isArray(de.attributes)?de.attributes:null,Wt=Rt&&typeof Rt.evidence_quote=="string"?String(Rt.evidence_quote):"",Dt=Rt&&typeof Rt.original_context=="string"?String(Rt.original_context):"";return s.jsxs("div",{className:"source_header",children:[s.jsxs("div",{className:"mono source_triple",title:`${je} --${ut}--> ${it}`,children:[je," ",s.jsxs("span",{className:"muted",children:["—",ut,"→"]})," ",it," ",St?s.jsxs("span",{className:"muted",children:["[",St,"]"]}):null]}),Wt?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:Wt}),Dt?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:Dt})]}):null]}):null]})})(),s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["run_id=",k," · ",U==="artifact"?`span_id=${D}`:"source=input_data"]}),s.jsxs("div",{className:"source_actions",children:[Ae!==null?s.jsx("button",{className:"btn",onClick:()=>Oe(Ae),children:"Jump to evidence"}):null,Ae===null&&Pe?s.jsx("button",{className:"btn",onClick:()=>lt(),children:"Jump to evidence"}):null]}),(()=>{const de=ne,je=de&&typeof de=="object"&&!Array.isArray(de)?de:null,ut=we,it=ae,St=je&&typeof je.created_at=="string"?String(je.created_at):"",Rt=St?cl(St):null,Wt=Rt!==null?Yl(Rt):St,Dt=je&&je.span&&typeof je.span=="object"&&!Array.isArray(je.span)?je.span:null,gn=Dt&&typeof Dt.from_timestamp=="string"?String(Dt.from_timestamp):"",Ft=Dt&&typeof Dt.to_timestamp=="string"?String(Dt.to_timestamp):"",yn=gn?cl(gn):null,dn=Ft?cl(Ft):null,Gt=yn!==null&&dn!==null?`${Yl(yn)} → ${Yl(dn)}`:"";if(it){const en=JN(it);if(en){const Vt=ve,rt=Vt?en.messages.findIndex(Cn=>Bd(Cn.content,Vt)):-1,kn=Vt?Fg(Vt):[],Rn=en.created_at||St,Nn=Rn?KN(Rn):St?Wt:"";return s.jsx("div",{className:"source_chat",children:en.messages.map((Cn,lr)=>{const Fr=Cn.role,jr=!!(Vt&&Bd(Cn.content,Vt)),Or=Fr==="user"?"USER":Fr==="assistant"?"ASSISTANT":"SYSTEM";return s.jsxs("div",{id:lr===rt?"source_note_msg_hit_0":void 0,className:`source_msg source_${Fr} ${jr?"source_match":""}`,children:[s.jsxs("div",{className:"source_msg_meta mono muted",children:[s.jsxs("span",{children:["#",lr+1," · ",Or,jr?s.jsx("span",{className:"source_match_badge",children:"evidence"}):null]}),Nn?s.jsx("span",{title:Rn||"",children:Nn}):null]}),s.jsx("div",{className:"source_msg_body",children:s.jsx(oo,{text:Cn.content,highlights:jr&&kn.length?kn:void 0,highlightClassName:"source_note_hit",highlightId:lr===rt?"source_note_hit_0":void 0})})]},`note_msg:${lr}`)})})}return s.jsxs("div",{className:"source_note",children:[St?s.jsx("div",{className:"mono muted",style:{marginBottom:10},children:s.jsxs("span",{title:St,children:["created_at=",Wt]})}):null,s.jsx(oo,{text:it,highlights:ve?Fg(ve):void 0,highlightClassName:"source_note_hit",highlightId:"source_note_hit_0"})]})}if(ut){const en=new Map;for(const rt of ut){const kn=typeof(rt==null?void 0:rt.role)=="string"?String(rt.role):"unknown";en.set(kn,(en.get(kn)||0)+1)}const Vt=Array.from(en.entries()).sort((rt,kn)=>kn[1]-rt[1]||rt[0].localeCompare(kn[0])).map(([rt,kn])=>`${rt}×${kn}`).join(" · ");return s.jsxs("div",{className:"source_chat",children:[St?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:[s.jsxs("span",{title:St,children:["created_at=",Wt]})," · messages=",ut.length]}):null,Gt?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["span=",Gt]}):null,Vt?s.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["participants: ",Vt]}):null,ut.slice(0,200).map((rt,kn)=>{var Hs,$s;const Rn=typeof(rt==null?void 0:rt.role)=="string"?String(rt.role):"unknown",Nn=(rt==null?void 0:rt.content)==null?"":String(rt.content),Cn=typeof(rt==null?void 0:rt.timestamp)=="string"?String(rt.timestamp):"",lr=Cn?cl(Cn):null,Fr=lr!==null?Yl(lr):Cn,jr=typeof(rt==null?void 0:rt.message_id)=="string"?String(rt.message_id):typeof((Hs=rt==null?void 0:rt.metadata)==null?void 0:Hs.message_id)=="string"?String(rt.metadata.message_id):typeof(($s=rt==null?void 0:rt.metadata)==null?void 0:$s.id)=="string"?String(rt.metadata.id):"",Or=et.has(kn);return s.jsxs("div",{id:`source_msg_${kn}`,className:`source_msg source_${Rn} ${Or?"source_match":""}`,children:[s.jsxs("div",{className:"source_msg_meta mono muted",children:[s.jsxs("span",{children:["#",kn+1," · ",Rn,Or?s.jsx("span",{className:"source_match_badge",children:"evidence"}):null,jr?s.jsx("span",{className:"source_msg_id",children:jr}):null]}),Cn?s.jsx("span",{title:Cn,children:Fr}):null]}),s.jsx("div",{className:"source_msg_body",children:s.jsx(oo,{text:Nn})})]},kn)})]})}return s.jsx("pre",{className:"mono source_raw",style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:(typeof de=="string"?de:Me)||"(empty)"})})()]}):null]})]})}function bm(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function e1(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 Bg(e){const t=r=>{const o=String((r==null?void 0:r.id)||"").trim(),l=o.endsWith("_uat")?o.slice(0,-4):o;return l==="gateway"?0:l==="build"?1:l==="abstractobserver"?2:l==="abstractcode_web"?3:l==="abstractflow_backend"?4:l==="abstractflow_frontend"?5: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 t1(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 n1({gateway:e,gateway_connected:t}){const[r,o]=m.useState("prod"),[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),[A,T]=m.useState([]),[B,P]=m.useState(!1),[F,G]=m.useState(""),[se,Y]=m.useState({}),[le,oe]=m.useState(!1),[ge,Re]=m.useState(null),[Te,K]=m.useState(""),[W,X]=m.useState(""),[V,Q]=m.useState(!1),k=m.useRef(null),M=m.useMemo(()=>Bg(c.filter(ae=>!String((ae==null?void 0:ae.id)||"").trim().endsWith("_uat"))),[c]),D=m.useMemo(()=>Bg(c.filter(ae=>String((ae==null?void 0:ae.id)||"").trim().endsWith("_uat"))),[c]),C=r==="uat"?D:M,U=m.useCallback(async()=>{if(t){_(!0),x("");try{const ae=await e.list_processes();u(!!(ae!=null&&ae.enabled));const we=Array.isArray(ae==null?void 0:ae.processes)?ae.processes:[];d(we)}catch(ae){x(String((ae==null?void 0:ae.message)||ae||"Failed to list processes"))}finally{_(!1)}}},[e,t]),te=m.useCallback(async()=>{if(t){P(!0),G("");try{const ae=await e.list_process_env_vars();S(!!(ae!=null&&ae.enabled));const we=Array.isArray(ae==null?void 0:ae.vars)?ae.vars:[];T(we);const Pe=String((ae==null?void 0:ae.error)||"").trim();Pe&&G(Pe)}catch(ae){G(String((ae==null?void 0:ae.message)||ae||"Failed to list env vars"))}finally{P(!1)}}},[e,t]),ne=m.useCallback(async()=>{if(!t)return;const ae=ge;if(ae){Q(!0);try{const we=await e.process_log_tail(String(ae.id||""),{max_bytes:16e4}),Pe=String((we==null?void 0:we.content)||""),Ke=typeof(we==null?void 0:we.bytes)=="number"?Number(we.bytes):0,et=!!(we!=null&&we.truncated),Ae=String((we==null?void 0:we.log_relpath)||"");K(Pe),X(`${Ke.toLocaleString()} bytes${et?" (tail)":""}${Ae?` • ${Ae}`:""}`)}catch(we){K(""),X(""),x(String((we==null?void 0:we.message)||we||"Failed to read logs"))}finally{Q(!1)}}},[e,t,ge]),me=m.useCallback(async ae=>{Re(ae),oe(!0)},[]),Me=m.useCallback(()=>{oe(!1),Re(null),K(""),X("")},[]);m.useEffect(()=>{t&&U()},[t,U]),m.useEffect(()=>{if(!t||r==="env"||!v)return;const ae=window.setInterval(()=>void U(),2e3);return()=>window.clearInterval(ae)},[t,r,v,U]),m.useEffect(()=>{t&&r==="env"&&te()},[t,r,te]),m.useEffect(()=>{if(t&&le)return ne(),k.current&&window.clearInterval(k.current),k.current=window.setInterval(()=>void ne(),1500),()=>{k.current&&window.clearInterval(k.current),k.current=null}},[t,le,ne]);async function Ne(ae,we){x("");try{we==="start"?await e.start_process(ae.id):we==="stop"?await e.stop_process(ae.id):we==="restart"?await e.restart_process(ae.id):we==="redeploy"&&await e.redeploy_process(ae.id),await U()}catch(Pe){x(String((Pe==null?void 0:Pe.message)||Pe||`Failed to ${we}`))}}async function Fe(ae){const we=String(ae||"").trim();if(we){G("");try{const Pe=String((se==null?void 0:se[we])??""),Ke=await e.update_process_env_vars({set:{[we]:Pe}});S(!!(Ke!=null&&Ke.enabled)),T(Array.isArray(Ke==null?void 0:Ke.vars)?Ke.vars:[]),Y(Ae=>({...Ae||{},[we]:""}));const et=String((Ke==null?void 0:Ke.error)||"").trim();et&&G(et)}catch(Pe){G(String((Pe==null?void 0:Pe.message)||Pe||"Failed to set env var"))}}}async function Be(ae){const we=String(ae||"").trim();if(we){G("");try{const Pe=await e.update_process_env_vars({unset:[we]});S(!!(Pe!=null&&Pe.enabled)),T(Array.isArray(Pe==null?void 0:Pe.vars)?Pe.vars:[]),Y(et=>({...et||{},[we]:""}));const Ke=String((Pe==null?void 0:Pe.error)||"").trim();Ke&&G(Ke)}catch(Pe){G(String((Pe==null?void 0:Pe.message)||Pe||"Failed to unset env var"))}}}const _e=l===null?"…":l?"enabled":"disabled",ve=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==="prod"?"active":""}`,onClick:()=>o("prod"),children:"Production"}),s.jsx("button",{className:`nav_tab ${r==="uat"?"active":""}`,onClick:()=>o("uat"),children:"UAT"}),s.jsx("button",{className:`nav_tab ${r==="env"?"active":""}`,onClick:()=>o("env"),children:"ENV"})]})]}),t?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mono muted",style:{marginTop:"6px"},children:["Process manager: ",_e]}),r!=="env"&&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:["To manage processes, set ",s.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_ENABLE_PROCESS_MANAGER=1"})," and"," ",s.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_TRIAGE_REPO_ROOT"})," (your AbstractFramework checkout root) on the gateway host."]})]}):null,r!=="env"?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 U(),disabled:!t||h,children:[s.jsx(Fn,{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:ae=>b(!!ae.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:C.map(ae=>{const we=String(ae.id||"").trim(),Pe=String(ae.label||we).trim()||we,Ke=e1(String(ae.status||"")),Ae=String(ae.status||"").trim().toLowerCase()==="running",Oe=Array.isArray(ae==null?void 0:ae.actions)?ae.actions.map(qt=>String(qt||"").trim()):[],lt=Oe.includes("start"),xe=Oe.includes("stop"),$t=Oe.includes("restart"),xt=Oe.includes("redeploy"),on=Oe.includes("logs"),cn=typeof(ae==null?void 0:ae.pid)=="number"?Number(ae.pid):null,Xt=String((ae==null?void 0:ae.url)||"").trim(),Se=String((ae==null?void 0:ae.description)||"").trim(),ue=String((ae==null?void 0:ae.last_error)||"").trim(),ke=typeof(ae==null?void 0:ae.exit_code)=="number"?Number(ae.exit_code):null,At=[];cn&&At.push(`pid ${cn}`),ke!==null&&At.push(`exit ${ke}`);const gt=At.join(" • ");return s.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:we}),s.jsx("span",{className:`tag ${Ke.cls}`,children:Ke.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:Pe}),Se?s.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:bm(Se,220)}):null,gt?s.jsx("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:gt}):null,Xt?s.jsx("div",{className:"mono muted",style:{marginTop:gt?"4px":"6px",fontSize:"var(--font-size-sm)"},children:Ae?s.jsx("a",{href:Xt,target:"_blank",rel:"noreferrer",className:"mono",style:{opacity:.95},children:Xt}):s.jsx("span",{className:"mono",children:Xt})}):null]})}),ue?s.jsx("div",{className:"mono",style:{marginTop:"8px",color:"var(--error)"},children:bm(ue,360)}):null,s.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[lt?s.jsx("button",{className:"btn primary",onClick:()=>void Ne(ae,"start"),disabled:h,children:"Start"}):null,xe?s.jsx("button",{className:"btn danger",onClick:()=>void Ne(ae,"stop"),disabled:h,children:"Stop"}):null,$t?s.jsx("button",{className:"btn",onClick:()=>void Ne(ae,"restart"),disabled:h,children:"Restart"}):null,xt?s.jsx("button",{className:"btn",onClick:()=>void Ne(ae,"redeploy"),disabled:h,children:"Redeploy"}):null,on?s.jsx("button",{className:"btn",onClick:()=>void me(ae),disabled:h,children:"Logs"}):null]})]})]},we)})})]}):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: ",ve]}),j===!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"})," on the gateway host."]})]}):null,s.jsx("div",{className:"actions",style:{marginTop:"10px"},children:s.jsxs("button",{className:`btn btn_icon ${B?"is_loading":""}`,onClick:()=>void te(),disabled:!t||B,children:[s.jsx(Fn,{name:"refresh",size:16}),B?"Refreshing…":"Refresh"]})}),F?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:F})]}):null,s.jsxs("div",{style:{marginTop:"12px"},children:[A.map(ae=>{const we=String((ae==null?void 0:ae.key)||"").trim();if(!we)return null;const Pe=String((ae==null?void 0:ae.label)||we).trim()||we,Ke=String((ae==null?void 0:ae.description)||"").trim(),et=String((ae==null?void 0:ae.source)||"").trim(),Ae=!!(ae!=null&&ae.secret),Oe=String((ae==null?void 0:ae.updated_at)||"").trim(),lt=t1(et),xe=String((se==null?void 0:se[we])??"");return s.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[s.jsxs("div",{className:"meta",children:[s.jsx("span",{className:"mono",children:we}),s.jsx("span",{className:`chip mono ${lt.cls}`,children:lt.label})]}),s.jsxs("div",{className:"body",children:[s.jsx("div",{style:{fontWeight:700},children:Pe}),Ke?s.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:bm(Ke,280)}):null,Oe?s.jsxs("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:["updated ",Oe]}):null,s.jsxs("div",{className:"actions",style:{marginTop:"10px",alignItems:"center"},children:[s.jsx("input",{className:"input",value:xe,onChange:$t=>Y(xt=>({...xt||{},[we]:String($t.target.value||"")})),placeholder:Ae?"••••••••":"value",type:Ae?"password":"text",style:{flex:"1 1 320px",minWidth:"220px"},autoComplete:"off",spellCheck:!1}),s.jsx("button",{className:"btn primary",onClick:()=>void Fe(we),disabled:B,children:"Set"}),s.jsx("button",{className:"btn",onClick:()=>void Be(we),disabled:B,children:"Unset"})]})]})]},`env:${we}`)}),A.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."]})]}),le&&ge?s.jsxs(Ai,{open:le,title:`${String(ge.label||ge.id||"logs").trim()||"Logs"}`,onClose:Me,children:[s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:W}),s.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[s.jsxs("button",{className:`btn btn_icon ${V?"is_loading":""}`,onClick:()=>void ne(),disabled:V,children:[s.jsx(Fn,{name:"refresh",size:16}),V?"Refreshing…":"Refresh"]}),s.jsxs("button",{className:"btn btn_icon",onClick:()=>{try{navigator.clipboard.writeText(Te||"")}catch{}},disabled:!Te,children:[s.jsx(Fn,{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:Te||"(no logs yet)"})]}):null]})})}function Ug(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function Lu(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function Sm(e){const t=String(e||"").split(/[,\n]/g).map(r=>r.trim()).filter(Boolean);return t.length<=1?t[0]||"":t}function r1(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),[A,T]=m.useState(!1),[B,P]=m.useState(!1),[F,G]=m.useState(!1),[se,Y]=m.useState(!1),[le,oe]=m.useState(""),[ge,Re]=m.useState(""),[Te,K]=m.useState(""),[W,X]=m.useState([]),[V,Q]=m.useState(""),[k,M]=m.useState(null),[D,C]=m.useState(!1),[U,te]=m.useState(""),[ne,me]=m.useState(""),[Me,Ne]=m.useState(""),[Fe,Be]=m.useState(""),[_e,ve]=m.useState(""),ae=e.enabled,we=m.useMemo(()=>(Array.isArray(r)?r:[]).map(ke=>({account:String((ke==null?void 0:ke.account)||"").trim(),can_read:(ke==null?void 0:ke.can_read)!==!1,can_send:(ke==null?void 0:ke.can_send)!==!1,label:""})).filter(ke=>!!ke.account),[r]),Pe=m.useMemo(()=>{const ue=String(c||"").trim();return ue&&we.find(ke=>ke.account===ue)||null},[we,c]),Ke=!!(Pe!=null&&Pe.can_read),et=!!(Pe!=null&&Pe.can_send),Ae=m.useMemo(()=>we.map(ue=>{const ke=ue.can_read?ue.can_send?"":" (read-only)":" (send-only)";return{...ue,label:`${ue.account}${ke}`}}),[we]);async function Oe(){if(ae){oe(""),T(!0);try{const ue=await t.email_list_accounts();o(Array.isArray(ue==null?void 0:ue.accounts)?ue.accounts:[]),u(String((ue==null?void 0:ue.default_account)||"").trim())}catch(ue){oe(String((ue==null?void 0:ue.message)||ue||"Failed to list email accounts")),o([]),u("")}finally{T(!1)}}}m.useEffect(()=>{Oe()},[ae]),m.useEffect(()=>{if(!ae)return;const ue=String(c||"").trim();if(ue&&we.some(At=>At.account===ue))return;const ke=String(localStorage.getItem("abstractobserver_email_account")||"").trim();if(ke&&we.some(At=>At.account===ke)){d(ke);return}if(l&&we.some(At=>At.account===l)){d(l);return}we.length&&d(we[0].account)},[ae,c,l,we]),m.useEffect(()=>{const ue=String(c||"").trim();ue&&localStorage.setItem("abstractobserver_email_account",ue)},[c]);async function lt(){if(!ae)return;const ue=String(c||"").trim();if(ue){if(!Ke){oe("Selected account is not allowed to read email."),X([]),Q(""),M(null);return}oe(""),P(!0);try{const ke=await t.email_list_messages({account:ue,mailbox:String(h||"").trim()||void 0,since:String(g||"").trim()||void 0,status:v,limit:j});X(Array.isArray(ke==null?void 0:ke.messages)?ke.messages:[]),String(V||"").trim()&&!Array.isArray(ke==null?void 0:ke.messages)&&(Q(""),M(null))}catch(ke){oe(String((ke==null?void 0:ke.message)||ke||"Failed to list emails")),X([]),Q(""),M(null)}finally{P(!1)}}}m.useEffect(()=>{ae&&String(c||"").trim()&&lt()},[ae,c]);async function xe(ue){if(!ae)return;const ke=String(c||"").trim(),At=String(ue||"").trim();if(!(!ke||!At)&&Ke){Q(At),M(null),Re(""),G(!0);try{const gt=await t.email_read_message(At,{account:ke,mailbox:String(h||"").trim()||void 0,max_body_chars:2e4});M(gt)}catch(gt){Re(String((gt==null?void 0:gt.message)||gt||"Failed to read email"))}finally{G(!1)}}}function $t(ue){K(""),te(String((ue==null?void 0:ue.to)||"").trim()),me(""),Ne(""),Be(String((ue==null?void 0:ue.subject)||"").trim()),ve(String((ue==null?void 0:ue.body)||"")),C(!0)}function xt(){if(!k)return;const ue=String((k==null?void 0:k.from)||"").trim(),ke=String((k==null?void 0:k.subject)||"").trim(),At=ke.toLowerCase().startsWith("re:")?ke:`Re: ${ke||"(no subject)"}`,gt=String((k==null?void 0:k.body_text)||"").trim(),qt=`
126
-
127
- ---
128
- On ${Ug((k==null?void 0:k.date)||"")}, ${ue} wrote:
129
-
130
- ${gt}`;$t({to:ue,subject:At,body:qt})}async function on(){if(!ae||se)return;const ue=String(c||"").trim();if(ue){if(!et){K("Selected account is not allowed to send email.");return}K(""),Y(!0);try{const ke=Sm(U);if(!ke)throw new Error("to is required");const At=String(Fe||"").trim();if(!At)throw new Error("subject is required");const gt=String(_e||"").trim();if(!gt)throw new Error("body is required");await t.email_send({account:ue,to:ke,subject:At,body_text:gt,cc:Sm(ne),bcc:Sm(Me)}),C(!1),te(""),me(""),Ne(""),Be(""),ve(""),await lt()}catch(ke){K(String((ke==null?void 0:ke.message)||ke||"Failed to send email"))}finally{Y(!1)}}}const cn=m.useMemo(()=>{const ue=String(V||"").trim();return ue&&W.find(ke=>String((ke==null?void 0:ke.uid)||"").trim()===ue)||null},[W,V]),Xt=String((k==null?void 0:k.body_text)||"").trim()||String((k==null?void 0:k.body_html)||"").trim(),Se=String((k==null?void 0:k.body_text)||"").trim()?"Body (text)":String((k==null?void 0:k.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:ue=>d(String(ue.target.value||"")),disabled:!ae||A,children:Ae.length?Ae.map(ue=>s.jsx("option",{value:ue.account,children:ue.label},ue.account)):s.jsx("option",{value:"",children:"(no accounts)"})}),s.jsx("button",{className:"btn",onClick:()=>void Oe(),disabled:!ae||A,children:A?"Loading…":"Accounts"})]}),s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[s.jsx("button",{className:"btn",onClick:()=>void lt(),disabled:!ae||B||!String(c||"").trim()||!Ke,children:B?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn primary",onClick:()=>$t(),disabled:!ae||!String(c||"").trim()||!et,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:ue=>x(String(ue.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:ue=>b(String(ue.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:ue=>S(Number(ue.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:ue=>_(String(ue.target.value||"")),placeholder:"INBOX"})]}),s.jsx("div",{className:"row",style:{gap:"8px",alignItems:"center",marginTop:"18px"},children:s.jsx("button",{className:"btn",onClick:()=>void lt(),disabled:!ae||B||!String(c||"").trim()||!Ke,children:"Apply"})})]}),le?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:le}):null,s.jsx("div",{className:"inbox_list",children:W.length?W.map(ue=>{const ke=String((ue==null?void 0:ue.uid)||"").trim(),At=!!ke&&ke===String(V||"").trim(),gt=String((ue==null?void 0:ue.subject)||"").trim()||"(no subject)",qt=String((ue==null?void 0:ue.from)||"").trim(),On=String((ue==null?void 0:ue.date)||"").trim(),rn=!!(ue!=null&&ue.seen);return s.jsxs("button",{className:`inbox_item ${At?"active":""}`,onClick:()=>void xe(ke),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`pill ${rn?"approved":"pending"}`,children:rn?"read":"unread"}),s.jsx("span",{className:"item_title_text",children:Lu(gt,52)})]}),s.jsx("div",{className:"inbox_item_meta mono muted",children:Lu(qt,60)||"(from?)"}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[Lu(On,36)||"(date?)"," • uid ",Lu(ke,10)]})]},ke||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:V?F?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading email…"}):ge?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:ge}):k?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((k==null?void 0:k.subject)||"").trim()||"(no subject)"}),s.jsx("span",{className:"pill muted",children:String((k==null?void 0:k.account)||"").trim()||c}),s.jsx("span",{className:"pill muted",children:String((k==null?void 0:k.mailbox)||"").trim()||"(mailbox?)"}),s.jsxs("span",{className:"pill muted",children:["uid ",Lu(String((k==null?void 0:k.uid)||V),12)]})]}),s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[s.jsx("button",{className:"btn",onClick:()=>Cs(String((k==null?void 0:k.message_id)||"")),disabled:!String((k==null?void 0:k.message_id)||"").trim(),title:"Copy Message-ID",children:"Copy msg-id"}),s.jsx("button",{className:"btn",onClick:()=>Cs(String(V||"")),disabled:!String(V||"").trim(),title:"Copy UID",children:"Copy uid"}),s.jsx("button",{className:"btn primary",onClick:()=>xt(),disabled:!et||!String((k==null?void 0:k.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((k==null?void 0:k.from)||"").trim()||"(from?)"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"To"}),s.jsx("div",{className:"mono",children:String((k==null?void 0:k.to)||"").trim()||"(to?)"})]}),String((k==null?void 0:k.cc)||"").trim()?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Cc"}),s.jsx("div",{className:"mono",children:String((k==null?void 0:k.cc)||"").trim()})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Date"}),s.jsx("div",{className:"mono",children:Ug(String((k==null?void 0:k.date)||(cn==null?void 0:cn.date)||"").trim())||String((k==null?void 0:k.date)||(cn==null?void 0:cn.date)||"").trim()||"(date?)"})]}),Array.isArray(k==null?void 0:k.attachments)&&k.attachments.length?s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Attachments"}),s.jsx("div",{className:"mono",children:k.attachments.map((ue,ke)=>s.jsxs("div",{children:[String((ue==null?void 0:ue.filename)||"").trim()||"(file?)"," ",s.jsx("span",{className:"muted",children:String((ue==null?void 0:ue.content_type)||"").trim()?`(${String((ue==null?void 0:ue.content_type)||"").trim()})`:""})]},`${(ue==null?void 0:ue.filename)||""}:${ke}`))})]}):null,s.jsx("div",{className:"section_divider"}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:Se}),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:Xt||"(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(Ai,{open:D,title:`Compose (${String(c||"").trim()||"account"})`,onClose:()=>{se||C(!1)},actions:s.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[Te?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginRight:"auto"},children:Te}):null,s.jsx("button",{className:"btn",onClick:()=>C(!1),disabled:se,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void on(),disabled:se,children:se?"Sending…":"Send"})]}),children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"To"}),s.jsx("input",{value:U,onChange:ue=>te(String(ue.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:ne,onChange:ue=>me(String(ue.target.value||"")),placeholder:"(optional)"})]}),s.jsxs("div",{className:"field",style:{flex:"1 1 220px"},children:[s.jsx("label",{children:"Bcc"}),s.jsx("input",{value:Me,onChange:ue=>Ne(String(ue.target.value||"")),placeholder:"(optional)"})]})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Subject"}),s.jsx("input",{value:Fe,onChange:ue=>Be(String(ue.target.value||"")),placeholder:"Subject"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Body (text)"}),s.jsx("textarea",{value:_e,onChange:ue=>ve(String(ue.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 Wg(e){const t=String(e||"").trim();if(!t)return"";const r=t.split("/").filter(Boolean);return r.length?r[r.length-1]:""}function Ud(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function Oc(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function s1(e){const t=e.gateway,r=!!e.enable_triage,[o,l]=m.useState(r?"messages":"email"),[u,c]=m.useState([]),[d,h]=m.useState([]),[_,g]=m.useState([]),[x,v]=m.useState(!1),[b,j]=m.useState(""),[S,A]=m.useState(null),[T,B]=m.useState(""),[P,F]=m.useState(!1),[G,se]=m.useState(""),[Y,le]=m.useState("pending"),[oe,ge]=m.useState(null),[Re,Te]=m.useState(""),[K,W]=m.useState(null),[X,V]=m.useState(""),[Q,k]=m.useState(!1),[M,D]=m.useState(!1),[C,U]=m.useState(""),[te,ne]=m.useState(""),me=!!te,[Me,Ne]=m.useState(""),[Fe,Be]=m.useState(""),[_e,ve]=m.useState(""),[ae,we]=m.useState(!1),Pe=e.gateway_connected;m.useEffect(()=>{!r&&o!=="email"&&l("email")},[r,o]);const Ke=m.useMemo(()=>o==="bugs"?u:o==="features"?d:[],[o,u,d]);m.useEffect(()=>{o==="email"&&(j(""),v(!1))},[o]);async function et(){const Se=await t.list_bug_reports();c(Array.isArray(Se==null?void 0:Se.items)?Se.items:[])}async function Ae(){const Se=await t.list_feature_requests();h(Array.isArray(Se==null?void 0:Se.items)?Se.items:[])}async function Oe(){const Se=await t.list_triage_decisions({status:Y||void 0,limit:500}),ue=Array.isArray(Se==null?void 0:Se.decisions)?Se.decisions:[];g(ue),oe&&!ue.some(ke=>ke.decision_id===oe.decision_id)&&(ge(null),Te(""),W(null),V(""))}async function lt(){if(Pe&&r&&o!=="email"){j(""),v(!0);try{o==="bugs"?await et():o==="features"?await Ae():await Oe()}catch(Se){j(String((Se==null?void 0:Se.message)||Se||"Refresh failed"))}finally{v(!1)}}}m.useEffect(()=>{lt()},[o,Pe,Y,r]);async function xe(Se){A(Se),B(""),se(""),F(!0);try{if(Se.report_type==="bug"){const ue=await t.get_bug_report_content(Se.filename);B(String((ue==null?void 0:ue.content)||""))}else{const ue=await t.get_feature_request_content(Se.filename);B(String((ue==null?void 0:ue.content)||""))}}catch(ue){se(String((ue==null?void 0:ue.message)||ue||"Failed to load report"))}finally{F(!1)}}async function $t(Se){ge(Se),Te(""),W(null),V("");const ue=Wg(Se.report_relpath);if(ue)try{if(Se.report_type==="bug"){const ke=await t.get_bug_report_content(ue);Te(String((ke==null?void 0:ke.content)||""))}else if(Se.report_type==="feature"){const ke=await t.get_feature_request_content(ue);Te(String((ke==null?void 0:ke.content)||""))}}catch(ke){V(String((ke==null?void 0:ke.message)||ke||"Failed to load report"))}}async function xt(Se){V(""),W(null);const ue=String(Se.draft_relpath||"").trim();if(!ue)return;const ke=Wg(ue);if(ke)try{const At=await t.backlog_content("proposed",ke);W(At)}catch(At){V(String((At==null?void 0:At.message)||At||"Failed to load draft (is repo root configured on gateway?)"))}}async function on(Se,ue){if(oe&&!Q){V(""),k(!0);try{const ke=await t.apply_triage_decision(oe.decision_id,{action:Se,defer_days:ue??null});await Oe();const At=String(Y||"").trim().toLowerCase(),gt=String((ke==null?void 0:ke.status)||"").trim().toLowerCase();if(!(!At||At===gt))ge(null),Te(""),W(null);else if(ge(ke),String(ke.draft_relpath||"").trim())try{await xt(ke)}catch{}}catch(ke){V(String((ke==null?void 0:ke.message)||ke||"Decision action failed"))}finally{k(!1)}}}async function cn(){if(!M){j(""),D(!0);try{const Se=await t.triage_run({write_drafts:!1,enable_llm:!1});U(`Scanned ${(Se==null?void 0:Se.reports)??0} report(s); updated ${(Se==null?void 0:Se.updated_decisions)??0} decision(s).`),await Oe()}catch(Se){j(String((Se==null?void 0:Se.message)||Se||"Triage failed"))}finally{D(!1)}}}m.useEffect(()=>{me&&(ve(""),Be(""),we(!1),Ne(String(e.default_session_id||"").trim()))},[me,e.default_session_id]);async function Xt(){var Se,ue;if(te&&!ae){ve(""),we(!0);try{const ke=String(Me||"").trim();if(!ke)throw new Error("session_id is required");const At=String(Fe||"").trim();if(!At)throw new Error("description is required");const gt={session_id:ke,description:At,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(((Se=globalThis==null?void 0:globalThis.navigator)==null?void 0:Se.userAgent)||""),url:String(((ue=globalThis==null?void 0:globalThis.location)==null?void 0:ue.href)||"")};if(te==="bug"){const qt=await t.bug_report_create(gt),On=String((qt==null?void 0:qt.filename)||"").trim();ne(""),l("bugs");const rn=await t.list_bug_reports(),un=Array.isArray(rn==null?void 0:rn.items)?rn.items:[];c(un);const vn=un.find(jn=>jn.filename===On)||null;vn&&await xe(vn)}else{const qt=await t.feature_report_create(gt),On=String((qt==null?void 0:qt.filename)||"").trim();ne(""),l("features");const rn=await t.list_feature_requests(),un=Array.isArray(rn==null?void 0:rn.items)?rn.items:[];h(un);const vn=un.find(jn=>jn.filename===On)||null;vn&&await xe(vn)}}catch(ke){ve(String((ke==null?void 0:ke.message)||ke||"Failed to create report"))}finally{we(!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.jsx("div",{className:"tab_bar",style:{paddingBottom:0,borderBottom:"none"},children:r?s.jsxs(s.Fragment,{children:[s.jsx("button",{className:`tab ${o==="messages"?"active":""}`,onClick:()=>l("messages"),children:"Messages"}),s.jsx("button",{className:`tab ${o==="email"?"active":""}`,onClick:()=>l("email"),children:"Email"}),s.jsx("button",{className:`tab ${o==="bugs"?"active":""}`,onClick:()=>l("bugs"),children:"Bugs"}),s.jsx("button",{className:`tab ${o==="features"?"active":""}`,onClick:()=>l("features"),children:"Features"})]}):s.jsx("button",{className:`tab ${o==="email"?"active":""}`,onClick:()=>l("email"),children:"Email"})}),s.jsx("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:r?s.jsxs(s.Fragment,{children:[o==="messages"?s.jsxs(s.Fragment,{children:[s.jsxs("select",{value:Y,onChange:Se=>le(String(Se.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 lt(),disabled:!Pe||x,children:x?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn primary",onClick:()=>void cn(),disabled:!Pe||M,children:M?"Running…":"Run triage"})]}):o==="email"?null:s.jsx("button",{className:"btn",onClick:()=>void lt(),disabled:!Pe||x,children:x?"Refreshing…":"Refresh"}),s.jsx("button",{className:"btn",onClick:()=>ne("bug"),disabled:!Pe,children:"File bug"}),s.jsx("button",{className:"btn",onClick:()=>ne("feature"),disabled:!Pe,children:"File feature"})]}):null})]}),r&&o!=="email"&&C?s.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:C}):null,r&&o!=="email"&&b?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:b}):null]}),o==="email"?s.jsx(r1,{gateway:t,enabled:Pe}):s.jsxs("div",{className:"inbox_layout",children:[s.jsx("div",{className:"card inbox_sidebar",children:o==="messages"?s.jsx("div",{className:"inbox_list",children:_.length?_.map(Se=>{const ue=(oe==null?void 0:oe.decision_id)===Se.decision_id,ke=Array.isArray(Se.missing_fields)?Se.missing_fields.length:0;return s.jsxs("button",{className:`inbox_item ${ue?"active":""}`,onClick:()=>void $t(Se),children:[s.jsxs("div",{className:"inbox_item_title",children:[s.jsx("span",{className:`pill ${String(Se.status||"").toLowerCase()}`,children:String(Se.status||"pending")}),s.jsx("span",{className:"mono",children:Se.report_type}),s.jsx("span",{className:"mono muted",children:Oc(Se.decision_id,10)})]}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[ke?`${ke} missing`:"complete"," • ",Ud(Se.updated_at||Se.created_at)||"(time?)"]}),s.jsx("div",{className:"inbox_item_meta mono",children:Oc(Se.report_relpath||"",46)})]},Se.decision_id)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No decisions."})}):s.jsx("div",{className:"inbox_list",children:Ke.length?Ke.map(Se=>{const ue=(S==null?void 0:S.filename)===Se.filename&&(S==null?void 0:S.report_type)===Se.report_type,ke=String(Se.triage_status||"").trim().toLowerCase();return s.jsxs("button",{className:`inbox_item ${ue?"active":""}`,onClick:()=>void xe(Se),children:[s.jsxs("div",{className:"inbox_item_title",children:[ke?s.jsx("span",{className:`pill ${ke}`,children:ke}):null,s.jsx("span",{className:"mono",children:Oc(Se.title||Se.filename,46)})]}),s.jsxs("div",{className:"inbox_item_meta mono muted",children:[Ud(Se.created_at)||"(time?)"," • ",Se.session_id?Oc(Se.session_id,12):"session?"]}),s.jsx("div",{className:"inbox_item_meta mono",children:Se.filename})]},Se.relpath)}):s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No reports."})})}),s.jsx("div",{className:"card inbox_viewer",children:o==="messages"?oe?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:oe.report_type}),s.jsx("span",{className:"chip mono muted",children:oe.status}),s.jsx("span",{className:"chip mono muted",children:Oc(oe.decision_id,16)})]}),s.jsxs("div",{className:"inbox_detail_actions",children:[s.jsx("button",{className:"btn",onClick:()=>{Cs(oe.report_relpath||"")},children:"Copy report path"}),oe.draft_relpath?s.jsx("button",{className:"btn",onClick:()=>void xt(oe),children:"Load draft"}):null,s.jsx("button",{className:"btn primary",onClick:()=>void on("approve"),disabled:Q,children:"Approve"}),s.jsx("button",{className:"btn",onClick:()=>void on("defer",1),disabled:Q,children:"Defer 1d"}),s.jsx("button",{className:"btn",onClick:()=>void on("defer",7),disabled:Q,children:"Defer 7d"}),s.jsx("button",{className:"btn",onClick:()=>void on("reject"),disabled:Q,children:"Reject"})]})]}),s.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[oe.updated_at?`updated ${Ud(oe.updated_at)}`:null,oe.created_at?`${oe.updated_at?" • ":""}created ${Ud(oe.created_at)}`:null,oe.defer_until?` • defer until ${oe.defer_until}`:null]}),X?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:X}):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"}),oe.missing_fields&&oe.missing_fields.length?s.jsx("ul",{className:"inbox_list_ul mono",children:oe.missing_fields.map(Se=>s.jsx("li",{children:Se},Se))}):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"}),oe.duplicates&&oe.duplicates.length?s.jsx("ul",{className:"inbox_list_ul mono",children:oe.duplicates.slice(0,20).map((Se,ue)=>{const ke=String((Se==null?void 0:Se.title)||(Se==null?void 0:Se.ref)||(Se==null?void 0:Se.kind)||"duplicate").trim(),At=typeof(Se==null?void 0:Se.score)=="number"&&Number.isFinite(Se.score)?` (score ${Se.score.toFixed(2)})`:"";return s.jsxs("li",{children:[ke,At]},`${ke}_${ue}`)})}):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"}),oe.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:oe.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)."})]})]}),K?s.jsxs("div",{className:"inbox_markdown",children:[s.jsx("div",{className:"section_title",children:"Draft content"}),s.jsx(oo,{text:String(K.content||"")})]}):null,s.jsxs("div",{className:"inbox_markdown",children:[s.jsx("div",{className:"section_title",children:"Source report"}),Re?s.jsx(oo,{text:Re}):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."}):S?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:S.report_type==="bug"?"Bug report":"Feature request"}),S.triage_status?s.jsx("span",{className:`pill ${S.triage_status}`,children:S.triage_status}):null,s.jsx("span",{className:"chip mono muted",children:S.filename}),S.session_id?s.jsx("span",{className:"chip mono muted",children:Oc(S.session_id,16)}):null]}),s.jsx("div",{className:"inbox_detail_actions",children:s.jsx("button",{className:"btn",onClick:()=>{Cs(S.relpath||"")},children:"Copy path"})})]}),G?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:G}):null,P?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):T?s.jsx(oo,{text:T}):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(Ai,{open:me,title:te==="bug"?"File bug report":"File feature request",onClose:()=>ne(""),actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>ne(""),disabled:ae,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:()=>void Xt(),disabled:ae,children:ae?"Submitting…":"Submit"})]}),children:[s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Session ID"}),s.jsx("input",{value:Me,onChange:Se=>Ne(Se.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:te==="bug"?"Bug description":"Feature description"}),s.jsx("textarea",{value:Fe,onChange:Se=>Be(Se.target.value),placeholder:te==="bug"?"What is broken? What did you expect?":"What do you want to be able to do?",rows:6})]}),_e?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:_e}):null]})]})}function i1(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=Date.parse(t);return Number.isFinite(r)?r:null}function o1(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 Zy(e){const t=i1(e);return t===null?"—":o1(new Date(t))}function a1(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function ex(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 tx(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 l1({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=tx(c,t),h=ex(e),_=Zy(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:a1(e.run_id,8)})]}),j?s.jsx("div",{className:"run_card_meta",children:j}):null]})}function c1({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=tx(l,t),c=ex(e),d=Zy(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 u1({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 A=T=>{v.current&&(v.current.contains(T.target)||d(!1))};return window.addEventListener("mousedown",A),()=>window.removeEventListener("mousedown",A)},[c]),m.useEffect(()=>{if(!c)return;const A=()=>{if(!b.current)return;const T=b.current.getBoundingClientRect(),B=12,P=Math.min(720,window.innerWidth-B*2);let F=T.left,G=Math.max(T.width,P);G>window.innerWidth-B*2&&(G=window.innerWidth-B*2),F+G>window.innerWidth-B&&(F=Math.max(B,window.innerWidth-B-G)),F<B&&(F=B);const se=320,Y=520,le=window.innerHeight-T.bottom-B,oe=T.top-B,ge=le<se&&oe>le;let Re=Math.max(se,ge?oe:le);Re=Math.min(Re,Y,window.innerHeight-B*2);let Te=ge?T.top-8-Re:T.bottom+8;Te=Math.min(Te,window.innerHeight-B-Re),Te=Math.max(B,Te),x({left:F,width:G,height:Re,top:Te})};return A(),window.addEventListener("resize",A),window.addEventListener("scroll",A,!0),()=>{window.removeEventListener("resize",A),window.removeEventListener("scroll",A,!0)}},[c]);const j=m.useMemo(()=>{const A=String(t||"").trim();return A?e.find(T=>String(T.run_id||"").trim()===A)||{run_id:A}:null},[e,t]),S=m.useMemo(()=>{const A=String(h||"").trim().toLowerCase();return A?e.filter(T=>{const B=String(T.run_id||"").toLowerCase(),P=typeof T.workflow_id=="string"?String(T.workflow_id).toLowerCase():"",F=typeof T.schedule_target_workflow_id=="string"?String(T.schedule_target_workflow_id).toLowerCase():"",G=P?String(r[String(T.workflow_id)]||"").toLowerCase():"",se=F?String(r[String(T.schedule_target_workflow_id)]||"").toLowerCase():"",Y=typeof T.status=="string"?String(T.status).toLowerCase():"";return B.includes(A)||P.includes(A)||G.includes(A)||F.includes(A)||se.includes(A)||Y.includes(A)}):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(A=>!A)},disabled:o,type:"button",children:[l?s.jsx("span",{className:"muted",children:"Loading runs…"}):j?s.jsx(c1,{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:A=>_(A.target.value),placeholder:"Search runs by name, status..."})}),s.jsx("div",{className:"run_picker_grid",children:S.length?S.map(A=>{const T=String(A.run_id||"").trim();if(!T)return null;const B=String(t||"").trim()===T;return s.jsx(l1,{run:A,workflow_label_by_id:r,selected:B,onClick:()=>{d(!1),u(T)}},T)}):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 nx(e,t=!1){const r=typeof window<"u"?window.__ABSTRACT_UI_CONFIG__:void 0,o=r==null?void 0:r[e];if(o==null||o==="")return t;if(typeof o=="boolean")return o;const l=String(o).trim().toLowerCase();return["1","true","yes","on"].includes(l)?!0:["0","false","no","off"].includes(l)?!1:(console.warn(`#FALLBACK: ui_config.${e}="${o}" is not a boolean; defaulting to ${t?"true":"false"}.`),t)}const al=nx("enable_backlog"),d1=nx("enable_inbox_triage");function pn(){return new Date().toISOString()}function jm(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function oa(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 km(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 Pu(e){const t=String(e||"").trim();return t.startsWith("abstractcode.")?`abstract.${t.slice(13)}`:t}function Nm(e){const t=String(e||"").trim();return t.startsWith("abstract.")||t.startsWith("abstractcode.")}function f1(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 m1(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 ln(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 Ma(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}const h1=/^[a-zA-Z0-9_-]+$/;function Hg(e){return h1.test(String(e||"").trim())}async function p1(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 Vg(e){const t=String(e||"").trim();if(!t)throw new Error("session_id is required");if(Hg(t)){const o=`session_memory_${t}`;if(Hg(o))return o}return`session_memory_sha_${(await p1(t)).slice(0,32)}`}function qg(e){const t=String(e||"").trim();return t&&t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")||"untitled"}function Dc(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):oa(e,320),r=typeof e.duration=="number"?Number(e.duration):-1;return{text:t,duration:r}}return{text:oa(e,320),duration:-1}}function rx(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 A=S,T=[A.response,A.answer,A.message,A.text,A.content];for(const B of T){const P=o(B);if(P)return P}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 Gg=new Set(["abstract.status","abstract.summary","abstract.chat"]);function g1(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!Gg.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&&Gg.has(t))}if(String(e.status||"").trim()==="waiting"){const u=ll(e.data),c=String((u==null?void 0:u.reason)||"").trim();return!!(c==="user"||c==="event"||h_(u).length)}return!!rx(e.data)}function _1(){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:"",gateway_user:String((t==null?void 0:t.gateway_user)||""),gateway_auth_mode:(t==null?void 0:t.gateway_auth_mode)==="direct"?"direct":"session",gateway_remember:(t==null?void 0:t.gateway_remember)!==!1,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:"",gateway_user:"",gateway_auth_mode:"session",gateway_remember:!0,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 y1(e){localStorage.setItem("abstractobserver_settings",JSON.stringify({...e,auth_token:""}))}function Cm(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 x1(e){return!!(e&&String(e.status||"")==="waiting")}function ul(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 v1(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 sx(e){const t=ul(e);return t===null?"—":v1(t)}function Yg(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 Xg(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 w1(){try{const t=String(window.location.hash||"").replace(/^#/,"").split("/").filter(Boolean),r=t.length?String(t[t.length-1]||"").trim():"";if(Xg(r))return r;const l=String(window.location.pathname||"").split("/").filter(Boolean),u=l.length?String(l[l.length-1]||"").trim():"";if(Xg(u))return u}catch{}return""}function b1(){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 S1(){var ei,Zo,wc,au,Yi,jo,bc,lu,Xi,ko,Rl,cu,Ll,uu,Ga,Ci,Ya,Xa,ea,Sc,Na,du,jc,rr,Pl,kc,Nc,Il,Cc,ta,sr,wr,Pr,Fl;const[e,t]=m.useState("observe");m.useEffect(()=>{!al&&(e==="backlog"||e==="processes")&&t("observe")},[e,al]);const[r,o]=m.useState(()=>_1()),l=typeof window<"u"&&((ei=window.__ABSTRACT_UI_CONFIG__)==null?void 0:ei.monitor_gpu)===!0,u=m.useRef(null),[c,d]=m.useState(""),[h,_]=m.useState(""),[g,x]=m.useState(()=>w1()),[v,b]=m.useState(""),[j,S]=m.useState(""),[A,T]=m.useState("{}"),[B]=m.useState(()=>b1()),[P,F]=m.useState(null),[G,se]=m.useState(!1),[Y,le]=m.useState(""),[oe,ge]=m.useState(!1),[Re,Te]=m.useState(""),[K,W]=m.useState(!1),[X,V]=m.useState([]),[Q,k]=m.useState([]),[M,D]=m.useState(!1),[C,U]=m.useState(!1),[te,ne]=m.useState([]),[me,Me]=m.useState([]),[Ne,Fe]=m.useState({}),[Be,_e]=m.useState(!1),[ve,ae]=m.useState(!1),[we,Pe]=m.useState(!1),[Ke,et]=m.useState([]),[Ae,Oe]=m.useState([]),lt=m.useRef(0),[xe,$t]=m.useState(null),[xt,on]=m.useState(""),[cn,Xt]=m.useState(""),[Se,ue]=m.useState(!1),[ke,At]=m.useState(!1),gt=m.useRef(null),[qt,On]=m.useState({}),[rn,un]=m.useState({}),[vn,jn]=m.useState("now"),[ur,Zt]=m.useState(""),[Qn,as]=m.useState("once"),[Un,de]=m.useState(1),[je,ut]=m.useState("days"),[it,St]=m.useState(2),[Rt,Wt]=m.useState(""),[Dt,gn]=m.useState("23:59"),[Ft,yn]=m.useState(!0),[dn,Gt]=m.useState(!1),[en,Vt]=m.useState(""),[rt,kn]=m.useState(!0),[Rn,Nn]=m.useState(""),[Cn,lr]=m.useState(!1),[Fr,jr]=m.useState(!1),[Or,Hs]=m.useState(6),[$s,ao]=m.useState("standard"),[Mi,ls]=m.useState(""),[$n,cs]=m.useState(""),[Qr,Dr]=m.useState(!1),[pr,st]=m.useState(!1),[jt,fn]=m.useState("pause"),[Br,kr]=m.useState(""),[Nr,gr]=m.useState(""),[Lo,Vs]=m.useState(""),Dn=m.useRef(null),dr=m.useRef(null),[fr,ze]=m.useState(!1),qn=m.useRef(null),[Ye,Gn]=m.useState(""),[Zn,_r]=m.useState(""),[Cr,Er]=m.useState(""),[zi,sn]=m.useState(""),[$r,qs]=m.useState(""),[As,er]=m.useState(!1),[mr,gi]=m.useState("idle"),[Ln,Ur]=m.useState([]),Ar=m.useRef(null),[Zr,Wr]=m.useState(!1),[Ts,es]=m.useState(""),[ts,yr]=m.useState(""),[Ri,Hr]=m.useState(""),[Li,Pi]=m.useState([]),[Ms,Ii]=m.useState(!1),[ca,zs]=m.useState(""),[Gs,Vr]=m.useState(""),[Rs,Fi]=m.useState(!1),[Po,Tr]=m.useState(""),R=m.useMemo(()=>{if(!Ln.length)return"";try{return JSON.stringify(Ln.map(w=>({role:w.role,content:w.content,ts:w.ts})))}catch{return"1"}},[Ln]),ie=m.useMemo(()=>Ln.length?Ri?R!==Ri:!0:!1,[R,Ln.length,Ri]),Ee=m.useMemo(()=>Li.map(w=>{const N=String(w.title||"").trim()||`Chat ${String(w.thread_id||"").slice(0,8)}`,I=String(w.created_at||"").trim(),L=I?I.replace("T"," ").slice(0,19):"",z=String(w.run_id||"").trim()?String(w.run_id).slice(0,8):"",J=[N,L&&`(${L})`,z&&`run ${z}`].filter(Boolean).join(" • ");return{value:String(w.thread_id||""),label:J}}),[Li]);m.useEffect(()=>{l&&Jv()},[l]),m.useEffect(()=>{if(!l)return;const w=u.current;w&&(w.token=r.gateway_auth_mode==="direct"&&r.auth_token||"")},[l,r.auth_token,r.gateway_auth_mode]);const[Ie,De]=m.useState([]),[ot,Tt]=m.useState({}),[Lt,Pt]=m.useState({}),[Kt,nt]=m.useState(""),[xn,tn]=m.useState("ledger"),[mn,or]=m.useState(!0),[An,Mr]=m.useState("steps"),[bs,_i]=m.useState(""),[Ls,lo]=m.useState(""),[gl,co]=m.useState([]),[uo,fo]=m.useState(!1),[Ia,Ys]=m.useState(""),[tc,mo]=m.useState(!1),[_l,Io]=m.useState(""),[ua,ho]=m.useState(""),[Oi,Ps]=m.useState(""),[yl,da]=m.useState(!1),[po,go]=m.useState(""),[_o,Fo]=m.useState(null),[fa,Fa]=m.useState({}),[xl,Oo]=m.useState(!1),[vl,Di]=m.useState(""),[yi,nc]=m.useState(!1),[Oa,wl]=m.useState(!1),[bl,Do]=m.useState(()=>Date.now()),[Xs,Is]=m.useState(""),[rc,Bo]=m.useState({}),[Sl,ma]=m.useState({}),Bi=m.useRef([]),zr=m.useRef(null),us=m.useRef(""),ha=m.useRef({}),si=m.useRef({}),pa=m.useRef({}),Ui=m.useRef(new Set),[ds,Wi]=m.useState([]),En=m.useRef(""),ns=m.useRef({}),cr=m.useRef(null),tr=m.useRef(null),yo=m.useRef(0),ii=m.useRef({}),xo=m.useRef(!1),fs=m.useRef(new Set),[rs,Ks]=m.useState(""),[ms,Wn]=m.useState(""),hs=m.useRef(""),[xi,ga]=m.useState(!1),[Uo,Hi]=m.useState(""),Ct=m.useMemo(()=>new Tp({base_url:r.gateway_auth_mode==="session"?"":r.gateway_url,auth_token:r.gateway_auth_mode==="session"?"":r.auth_token}),[r.gateway_auth_mode,r.gateway_url,r.auth_token]),_a=m.useMemo(()=>r.worker_url.trim()?new ew({url:r.worker_url.trim(),auth_token:r.worker_token}):null,[r.worker_url,r.worker_token]),qr=Ke.length?Ke[Ke.length-1].record:null,_n=m.useMemo(()=>ll(qr),[qr]),Rr=m.useMemo(()=>{const w=j.trim();if(!P||!w||String(P.bundle_id||"").trim()&&String(P.bundle_id||"").trim()!==w)return null;const N=Array.isArray(P.entrypoints)?P.entrypoints:[];if(!N.length)return null;const I=v.trim();if(I)return N.find(z=>String(z.flow_id||"").trim()===I)||null;if(N.length===1)return N[0];const L=String(P.default_entrypoint||"").trim();return L&&N.find(z=>String(z.flow_id||"").trim()===L)||null},[P,j,v]),vi=m.useMemo(()=>{const w=Rr==null?void 0:Rr.inputs;return Array.isArray(w)?w:[]},[Rr]),vo=m.useMemo(()=>m1(_o),[_o]),oi=m.useMemo(()=>vi.length?vi:vo,[vi,vo]),sc=m.useMemo(()=>{const w=typeof(xe==null?void 0:xe.workflow_id)=="string"?String(xe.workflow_id):"",N=km(w);if(N&&P&&String(P.bundle_id||"").trim()===N.bundle_id){const z=(Array.isArray(P.entrypoints)?P.entrypoints:[]).find(J=>String((J==null?void 0:J.flow_id)||"").trim()===N.flow_id);if(z&&z.node_index&&typeof z.node_index=="object")return z.node_index}const I=Rr==null?void 0:Rr.node_index;return I&&typeof I=="object"?I:{}},[xe,P,Rr]);m.useEffect(()=>{y1(r)},[r]),m.useEffect(()=>{Nv(r.theme)},[r.theme]),m.useEffect(()=>{$v({font_scale:r.font_scale,header_density:r.header_density})},[r.font_scale,r.header_density]),m.useEffect(()=>()=>{cr.current&&cr.current.abort(),tr.current&&tr.current.abort(),Dn.current&&window.clearTimeout(Dn.current),dr.current&&window.clearTimeout(dr.current),zr.current&&window.clearTimeout(zr.current),qn.current&&window.clearTimeout(qn.current)},[]),m.useEffect(()=>{var w;r.auto_connect_gateway&&(!r.gateway_url.trim()&&typeof window<"u"&&!((w=window.location)!=null&&w.origin)||qo())},[r.auto_connect_gateway]);const Yt=m.useMemo(()=>{const w=A.trim();if(!w)return{};try{const N=JSON.parse(w);return typeof N!="object"||N===null||Array.isArray(N)?null:N}catch{return null}},[A]),ic=typeof(Yt==null?void 0:Yt.prompt)=="string"?String(Yt.prompt):"",Wo=typeof(Yt==null?void 0:Yt.provider)=="string"?String(Yt.provider):"",oc=typeof(Yt==null?void 0:Yt.model)=="string"?String(Yt.model):"",jl=typeof(Yt==null?void 0:Yt.workspace_root)=="string"?String(Yt.workspace_root):"",kl=typeof(Yt==null?void 0:Yt.workspace_access_mode)=="string"?String(Yt.workspace_access_mode):"",ac=m.useMemo(()=>{const w=Yt==null?void 0:Yt.workspace_allowed_paths;return Array.isArray(w)?w.map(N=>String(N||"").trim()).filter(Boolean).join(`
135
- `):typeof w=="string"?String(w):""},[Yt]),Vi=m.useMemo(()=>{const w=Yt==null?void 0:Yt.workspace_ignored_paths;return Array.isArray(w)?w.map(N=>String(N||"").trim()).filter(Boolean).join(`
136
- `):typeof w=="string"?String(w):""},[Yt]),Nl=oi.length>0&&!!j.trim(),ya=w=>{const N=String(w||"").trim().toLowerCase();return N==="object"||N==="memory"||N==="assertion"||N==="assertions"||N==="any"};m.useEffect(()=>{un({})},[j,v]),m.useEffect(()=>{Yt!==null&&On(w=>{const N={};for(const I of oi){if(!I||typeof I!="object")continue;const L=String(I.id||"").trim();if(!L)continue;const z=String(I.type||"").trim();if(!ya(z))continue;if(String(rn[L]||"").trim()){N[L]=typeof w[L]=="string"?w[L]:"";continue}const Z=Yt==null?void 0:Yt[L];Z===void 0?N[L]="":N[L]=jm(Z)}return N})},[oi,Yt,rn]);const Zc=j.trim()&&v.trim()?`${j.trim()}:${v.trim()}`:"",eu=m.useMemo(()=>{const w={};for(const N of X){const I=String(N.workflow_id||"").trim(),L=String(N.label||"").trim();I&&L&&(w[I]=L)}return w},[X]),xa=m.useMemo(()=>{const w=new Set;for(const N of Array.isArray(me)?me:[]){const I=String((N==null?void 0:N.name)||"").trim();I&&w.add(I)}return Array.from(w).sort()},[me]),tu=m.useMemo(()=>{const w=[];for(const N of Array.isArray(me)?me:[]){const I=String((N==null?void 0:N.name)||"").trim();if(!I)continue;const L=String((N==null?void 0:N.display_name)||"").trim();w.push({name:I,display_name:L||void 0})}return w},[me]),Da=m.useMemo(()=>{const w=new Set;for(const N of te||[]){if(!N||typeof N!="object")continue;const I=String(N.name||"").trim();I&&w.add(I)}return Array.from(w).sort()},[te]),va=m.useMemo(()=>{const w=r.maintenance_ai_provider.trim();if(!w)return{models:[],error:""};const N=Ne[w];return N?{models:(Array.isArray(N.models)?N.models:[]).map(L=>String(L||"").trim()).filter(Boolean),error:String(N.error||"")}:{models:[],error:""}},[Ne,r.maintenance_ai_provider]),In=r.maintenance_ai_provider.trim(),Cl=!!(In&&K&&!Object.prototype.hasOwnProperty.call(Ne,In));m.useEffect(()=>{const w=Wo.trim();if(!w||Ne[w]||ns.current[w])return;ns.current[w]=!0;let N=!1;return(async()=>{try{const L=await Ct.discovery_provider_models(w);if(N)return;const z=Array.isArray(L==null?void 0:L.models)?L.models:[],J=typeof(L==null?void 0:L.error)=="string"?String(L.error):"";Fe(Z=>({...Z,[w]:{models:z,error:J||void 0}}))}catch(L){if(N)return;Fe(z=>({...z,[w]:{models:[],error:String((L==null?void 0:L.message)||L||"Failed to load models")}}))}finally{delete ns.current[w]}})(),()=>{N=!0}},[Wo,Ne,Ct]),m.useEffect(()=>{const w=r.maintenance_ai_provider.trim();if(!w||!K||Ne[w]||ns.current[w])return;ns.current[w]=!0;let N=!1;return(async()=>{try{const L=await Ct.discovery_provider_models(w);if(N)return;const z=Array.isArray(L==null?void 0:L.models)?L.models:[],J=typeof(L==null?void 0:L.error)=="string"?String(L.error):"";Fe(Z=>({...Z,[w]:{models:z,error:J||void 0}}))}catch(L){if(N)return;Fe(z=>({...z,[w]:{models:[],error:String((L==null?void 0:L.message)||L||"Failed to load models")}}))}finally{delete ns.current[w]}})(),()=>{N=!0}},[r.maintenance_ai_provider,Ne,Ct,K]);function Yn(w,N){const I=String(w||"").trim();if(!I)return;let L={};try{const z=JSON.parse(A||"{}");typeof z=="object"&&z!==null&&!Array.isArray(z)&&(L=z)}catch{L={}}if(N==null){delete L[I],T(JSON.stringify(L,null,2));return}if(typeof N=="string"){const z=String(N||"").trim();z?L[I]=z:delete L[I]}else if(Array.isArray(N)){const z=N.map(J=>J).filter(J=>J!=null);z.length?L[I]=z:delete L[I]}else L[I]=N;T(JSON.stringify(L,null,2))}async function Ho(w){const N=String(w||"").trim();if(!N)return le("Missing bundle_id"),null;le(""),se(!0);try{const I=await Ct.get_bundle(N);return F(I),vt({ts:pn(),kind:"info",title:`Loaded bundle ${N}`}),I}catch(I){return F(null),le(String((I==null?void 0:I.message)||I||"Failed to load bundle")),null}finally{se(!1)}}function Ba(w){const N=[],I=Array.isArray(w==null?void 0:w.items)?w.items:[];for(const L of I){const z=String((L==null?void 0:L.bundle_id)||"").trim();if(!z)continue;const J=Array.isArray(L==null?void 0:L.entrypoints)?L.entrypoints:[];if(J.length)for(const Z of J){const re=String((Z==null?void 0:Z.flow_id)||"").trim();if(!re)continue;const Le=`${z}:${re}`,Ce=String((Z==null?void 0:Z.name)||"").trim(),Ue=Ce?`${z} · ${Ce}`:`${z} · ${re}`,tt=String((Z==null?void 0:Z.description)||"").trim();N.push({workflow_id:Le,bundle_id:z,flow_id:re,label:Ue,description:tt||void 0})}}return N.sort((L,z)=>L.label.localeCompare(z.label)),N}async function Vo(w=Ct){if(!M){D(!0);try{const N=await w.list_runs({limit:200,root_only:!0}),L=(Array.isArray(N==null?void 0:N.items)?N.items:[]).map(z=>{var J,Z,re,Le,Ce,Ue;return{run_id:String((z==null?void 0:z.run_id)||"").trim(),workflow_id:typeof(z==null?void 0:z.workflow_id)=="string"?String(z.workflow_id):(z==null?void 0:z.workflow_id)??null,status:typeof(z==null?void 0:z.status)=="string"?String(z.status):"",created_at:typeof(z==null?void 0:z.created_at)=="string"?String(z.created_at):(z==null?void 0:z.created_at)??null,updated_at:typeof(z==null?void 0:z.updated_at)=="string"?String(z.updated_at):(z==null?void 0:z.updated_at)??null,ledger_len:typeof(z==null?void 0:z.ledger_len)=="number"?Number(z.ledger_len):(z==null?void 0:z.ledger_len)??null,parent_run_id:typeof(z==null?void 0:z.parent_run_id)=="string"?String(z.parent_run_id):(z==null?void 0:z.parent_run_id)??null,session_id:typeof(z==null?void 0:z.session_id)=="string"?String(z.session_id):(z==null?void 0:z.session_id)??null,is_scheduled:typeof(z==null?void 0:z.is_scheduled)=="boolean"?!!z.is_scheduled:(z==null?void 0:z.is_scheduled)??null,paused:typeof(z==null?void 0:z.paused)=="boolean"?!!z.paused:(z==null?void 0:z.paused)??null,waiting_reason:typeof((J=z==null?void 0:z.waiting)==null?void 0:J.reason)=="string"?String(z.waiting.reason):((Z=z==null?void 0:z.waiting)==null?void 0:Z.reason)??null,schedule_interval:typeof((re=z==null?void 0:z.schedule)==null?void 0:re.interval)=="string"?String(z.schedule.interval).trim():((Le=z==null?void 0:z.schedule)==null?void 0:Le.interval)??null,schedule_target_workflow_id:typeof((Ce=z==null?void 0:z.schedule)==null?void 0:Ce.target_workflow_id)=="string"?String(z.schedule.target_workflow_id).trim():((Ue=z==null?void 0:z.schedule)==null?void 0:Ue.target_workflow_id)??null}}).filter(z=>!!z.run_id).filter(z=>!String(z.parent_run_id||"").trim());k(L)}catch(N){vt({ts:pn(),kind:"error",title:"Refresh runs failed",preview:ln(String((N==null?void 0:N.message)||N||""))})}finally{D(!1)}}}async function wa(){var z;const w=String(r.gateway_user||"").trim(),N=String(r.auth_token||"").trim();if(!w)throw new Error("Gateway user is required for hosted sign-in.");if(!N){const J=await fetch("/api/connection/gateway",{headers:{Accept:"application/json"}}),Z=await J.json().catch(async()=>({detail:await J.text().catch(()=>"")})),re=((z=Z==null?void 0:Z.gateway)==null?void 0:z.principal)||(Z==null?void 0:Z.principal)||{},Le=String((re==null?void 0:re.user_id)||"").trim();if(J.ok&&(Z==null?void 0:Z.ok)!==!1&&Le===w)return;throw new Error("Gateway token is required to create a browser session.")}const I=await fetch("/api/connection/gateway",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({gateway_url:String(r.gateway_url||"").trim(),gateway_user_id:w,gateway_token:N,persist:r.gateway_remember!==!1})}),L=await I.json().catch(async()=>({detail:await I.text().catch(()=>"")}));if(!I.ok||(L==null?void 0:L.ok)===!1)throw new Error(String((L==null?void 0:L.detail)||(L==null?void 0:L.error)||`Gateway sign-in failed (${I.status})`))}async function qo(){var w,N,I,L;Te(""),W(!1),ge(!0);try{const z=String(r.gateway_url||"").trim();if(z){const tt=z.toLowerCase();if(!tt.startsWith("http://")&&!tt.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:"&&tt.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 ht=new URL(z),Et=String(((N=window==null?void 0:window.location)==null?void 0:N.hostname)||"").trim().toLowerCase(),ct=String(ht.hostname||"").trim().toLowerCase(),wt=nn=>nn==="localhost"||nn==="127.0.0.1"||nn==="::1";if(wt(ct)&&Et&&!wt(Et))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(at){throw new Error(String((at==null?void 0:at.message)||at||"Invalid Gateway URL"))}}const J=!!String(r.gateway_user||"").trim(),Z=J?new Tp({base_url:"",auth_token:""}):Ct;J?(await wa(),o(tt=>({...tt,gateway_auth_mode:"session",auth_token:""}))):o(tt=>({...tt,gateway_auth_mode:"direct"}));const re=await Z.list_bundles(),Le=Ba(re);V(Le);try{await Vo(Z)}catch(tt){k([]),vt({ts:pn(),kind:"error",title:"Discovery runs failed",preview:ln(String((tt==null?void 0:tt.message)||tt||""))})}const[Ce,Ue]=await Promise.allSettled([Z.discovery_tools(),Z.discovery_providers({include_models:!1})]);if(Ce.status==="fulfilled"){const tt=Array.isArray((I=Ce.value)==null?void 0:I.items)?Ce.value.items:[];ne(tt)}else ne([]),vt({ts:pn(),kind:"error",title:"Discovery tools failed",preview:ln(String(Ce.reason||""))});if(Ue.status==="fulfilled"){const tt=Array.isArray((L=Ue.value)==null?void 0:L.items)?Ue.value.items:[];Me(tt)}else Me([]),vt({ts:pn(),kind:"error",title:"Discovery providers failed",preview:ln(String(Ue.reason||""))});Fe({}),W(!0),vt({ts:pn(),kind:"info",title:"Gateway discovery loaded",preview:ln(`workflows: ${Le.length}`)})}catch(z){Te(String((z==null?void 0:z.message)||z||"Discovery failed"))}finally{ge(!1)}}async function Go(){if(!(C||oe)){U(!0);try{await Ct.reload_bundles();const w=await Ct.list_bundles(),N=Ba(w);V(N),vt({ts:pn(),kind:"info",title:"Bundles reloaded",preview:ln(`workflows: ${N.length}`)})}catch(w){const N=String((w==null?void 0:w.message)||w||"Bundle reload failed");vt({ts:pn(),kind:"error",title:"Bundle reload failed",preview:ln(N),data:{error:N}})}finally{U(!1)}}}async function El(w){if(ke||oe||!K)return;const N=w;if(N){At(!0),nt("");try{const I=await Ct.upload_bundle(N,{overwrite:!1,reload:!0});vt({ts:pn(),kind:"info",title:"Bundle uploaded",preview:ln(String((I==null?void 0:I.bundle_ref)||""))});const L=await Ct.list_bundles(),z=Ba(L);V(z)}catch(I){const L=String((I==null?void 0:I.message)||I||"Upload failed");nt(L),vt({ts:pn(),kind:"error",title:"Upload .flow failed",preview:ln(L),data:{error:L}})}finally{At(!1);try{gt.current&&(gt.current.value="")}catch{}}}}function E(){fetch("/api/connection/gateway",{method:"DELETE"}).catch(()=>{}),ai(),S(""),b(""),go(""),F(null),le(""),se(!1),V([]),k([]),ne([]),Me([]),Fe({}),Te(""),W(!1),o(w=>({...w,auth_token:""})),vt({ts:pn(),kind:"info",title:"Gateway disconnected"})}async function H(w){const N=String(w??"");if(N){try{await navigator.clipboard.writeText(N),wn("Copied to clipboard",2);return}catch{}try{const I=document.createElement("textarea");I.value=N,I.style.position="fixed",I.style.left="-9999px",I.style.top="0",I.style.opacity="0",document.body.appendChild(I),I.focus(),I.select(),document.execCommand("copy"),document.body.removeChild(I),wn("Copied to clipboard",2)}catch{wn("Copy failed",2)}}}m.useEffect(()=>{const w=c.trim();if(!Be||!w)return;let N=!1;const I=async()=>{try{const z=await Ct.get_run(w);N||$t(z)}catch{}};I();const L=window.setInterval(I,2e3);return()=>{N=!0,window.clearInterval(L)}},[Be,c,Ct]);const O=m.useMemo(()=>{const w=xe==null?void 0:xe.session_id;return typeof w=="string"?w.trim():w==null?"":String(w||"").trim()},[xe]),fe=m.useMemo(()=>{const w=String(O||"").trim();return w||String(B||"").trim()},[O,B]);m.useEffect(()=>{if(!K||!fe){qs(""),sn("");return}(async()=>{try{const w=await Vg(fe);qs(w)}catch{qs("")}})()},[K,fe]);const pe=v_({gateway:K?Ct:null,session_id:fe,run_id:$r,on_error:sn,on_transcript:w=>{const N=String(w||"").trim();N&&(_r(I=>{const L=String(I||"");return L.trim()?`${L.trimEnd()}
137
- ${N}`:N}),window.setTimeout(()=>{var I;return(I=Ar.current)==null?void 0:I.focus()},0))}});function Ze(w,N){try{const I=URL.createObjectURL(w),L=document.createElement("a");L.href=I,L.download=N||"download",L.rel="noreferrer",document.body.appendChild(L),L.click(),document.body.removeChild(L),window.setTimeout(()=>URL.revokeObjectURL(I),5e3)}catch{}}async function Ve(){if(!uo){if(!K||!O){lo(""),co([]),Ys("");return}fo(!0),Ys("");try{const w=await Vg(O);lo(w);const N=await Ct.list_run_artifacts(w,{limit:800}),L=(Array.isArray(N==null?void 0:N.items)?N.items:[]).filter(z=>{const J=z==null?void 0:z.tags;return J&&typeof J=="object"&&String(J.kind||"").trim()==="attachment"});co(L)}catch(w){const N=String((w==null?void 0:w.message)||w||"Failed to load session attachments"),I=N.toLowerCase();N.includes("404")||I.includes("session_memory_")&&I.includes("not found")||I.includes('"detail"')&&I.includes("not found")&&I.includes("session_memory_")?(co([]),Ys("")):(co([]),Ys(N)),lo("")}finally{fo(!1)}}}async function Qe(w){const N=String(Ls||"").trim();if(!N){wn("No session attachment store yet",2);return}const I=String((w==null?void 0:w.artifact_id)||"").trim();if(!I)return;const L=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},z=String(L.filename||"").trim(),J=String(L.path||"").trim(),Z=z||(J?J.split("/").pop():"")||I,re=qg(Z);try{const Le=await Ct.download_run_artifact_content(N,I);Ze(Le,re),wn("Downloaded attachment",2)}catch(Le){wn(String((Le==null?void 0:Le.message)||Le||"Download failed"),3)}}async function dt(w){const N=String(Ls||"").trim(),I=String((w==null?void 0:w.artifact_id)||"").trim();if(!N||!I)return;const L=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},z=String(L.filename||"").trim(),J=String(L.path||"").trim(),Z=J?`@${J}`:z||I,re=typeof(w==null?void 0:w.size_bytes)=="number"?Number(w.size_bytes):null,Le=String((w==null?void 0:w.content_type)||L.content_type||"").trim().toLowerCase();if(Io(Z),ho(""),Ps(""),mo(!0),typeof re=="number"&&re>1e6){ho(`(Attachment is ${re.toLocaleString()} bytes; download to view.)`);return}if(!(!Le||Le.startsWith("text/")||Le.includes("json")||Le.includes("yaml")||Le.includes("toml")||Le.includes("xml"))){ho(`(Binary attachment: ${Le||"unknown"}; download to view.)`);return}da(!0);try{const tt=await(await Ct.download_run_artifact_content(N,I)).text(),at=14e3,ht=tt.length>at?`${tt.slice(0,Math.max(0,at-1))}…`:tt;ho(ht)}catch(Ue){Ps(String((Ue==null?void 0:Ue.message)||Ue||"Preview failed"))}finally{da(!1)}}m.useEffect(()=>{Ve()},[Ct,K,O]);function vt(w){const N=String(w.id||"").trim()||Kr();De(I=>[{...w,id:N},...I].slice(0,800))}function wn(w,N){Vs(w),dr.current&&window.clearTimeout(dr.current),ze(!1),window.requestAnimationFrame(()=>ze(!0)),dr.current=window.setTimeout(()=>{ze(!1),dr.current=null},1500),Dn.current&&(window.clearTimeout(Dn.current),Dn.current=null),N>0&&(Dn.current=window.setTimeout(()=>{Vs(""),Dn.current=null},Math.max(1,N)*1e3))}function hn(w,N){const I=String(w||"").trim(),L=String(N||"").trim();if(!L)return"";const z=I?String(ha.current[I]||"").trim():"";return z?`${z}::${L}`:L}function Tn(w,N,I){const L=String(w||"").trim(),z=String(N||"").trim(),J=String(I||"").trim();if(!L||!z||!J)return;const Z=hn(L,z);Z&&(ha.current[J]=Z,si.current[J]=L,pa.current[J]={parent_run_id:L,parent_node_id:z},Ui.current.has(J)||(Ui.current.add(J),Wi(re=>re.includes(J)?re:[...re,J])))}function Ss(w){const N=String(w||"").trim();if(!N)return;const I=Date.now(),L=us.current;us.current=N,Do(I),Bo(z=>{const J={};for(const[Ce,Ue]of Object.entries(z))typeof Ue=="number"&&Ue>I&&(J[Ce]=Ue);J[N]=Math.max(J[N]||0,I+2e3),L&&L!==N&&(J[L]=Math.max(J[L]||0,I+2e3));const Z=Object.keys(J);if(Z.length<=200)return J;const re=Z.sort((Ce,Ue)=>(J[Ue]||0)-(J[Ce]||0)).slice(0,200),Le={};for(const Ce of re)Le[Ce]=J[Ce]||0;return Le}),ma(z=>{if(typeof z[N]=="number")return z;const J={...z,[N]:I};if(Bi.current.push(N),Bi.current.length>8e3){const Z=Bi.current.splice(0,1500);for(const re of Z)delete J[re]}return J}),zr.current&&window.clearTimeout(zr.current),zr.current=window.setTimeout(()=>{const z=Date.now();Bo(J=>{const Z={};for(const[re,Le]of Object.entries(J))typeof Le=="number"&&Le>z&&(Z[re]=Le);return Z}),Do(z),zr.current=null},2200)}function ps(w){var ht,Et;lt.current=w.cursor,et(ct=>[...ct,{cursor:w.cursor,record:w.record}]),c.trim()&&fs.current.add(`${c.trim()}:${w.cursor}`);const N=Ed(w.record),I=N&&N.name?Pu(N.name):"",L=w.record,z=typeof(L==null?void 0:L.node_id)=="string"?L.node_id:"",J=typeof(L==null?void 0:L.status)=="string"?L.status:"",Z=typeof((ht=L==null?void 0:L.effect)==null?void 0:ht.type)=="string"?L.effect.type:"",re=typeof(L==null?void 0:L.run_id)=="string"?L.run_id:"",Le=re||c.trim();if(I==="abstract.status"&&Le===c.trim()){const{text:ct,duration:wt}=Dc(N==null?void 0:N.payload);wn(ct,wt)}const Ce=z?hn(Le,z):"";if(J==="waiting"){const ct=ll(L);if(String((ct==null?void 0:ct.reason)||"").trim()==="subworkflow"){const nn=typeof((Et=ct==null?void 0:ct.details)==null?void 0:Et.sub_run_id)=="string"?String(ct.details.sub_run_id):"";nn&&z&&Tn(Le,z,nn)}}if(z&&(Ss(hn(Le,z)),J==="waiting"||J==="running")){const ct=hn(Le,z);ct&&(us.current=ct,Is(ct))}let Ue="step",tt=Ce||z||"(node?)",at="";if(N&&N.name&&Nm(N.name))Ue=I==="abstract.message"?"message":"event",tt=I||N.name,at=ln(Dc(N==null?void 0:N.payload).text);else if(L!=null&&L.error)Ue="error",tt="error",at=ln(oa(L.error,360));else if(J==="waiting"){const ct=ll(L),wt=String((ct==null?void 0:ct.reason)||"").trim();at=ln(wt?`waiting • ${wt}`:"waiting")}else L!=null&&L.result?at=ln(oa(L.result,360)):Z?at=ln(Z):at=ln(Cm(L));vt({id:`step:${re||c.trim()||"?"}:${w.cursor}`,ts:String((L==null?void 0:L.ended_at)||(L==null?void 0:L.started_at)||pn()),kind:Ue,title:tt,preview:at,data:L,cursor:w.cursor,run_id:re||c.trim()||void 0,node_id:Ce||z,status:J,effect_type:Z,emit_name:I||(N==null?void 0:N.name)||void 0})}function qi(w,N){var Et,ct;yo.current=Math.max(yo.current,N.cursor);const I=`${w}:${N.cursor}`;if(!!fs.current.has(I))return;fs.current.add(I),Oe(wt=>[...wt,{run_id:w,cursor:N.cursor,record:N.record}]);const z=Ed(N.record),J=z&&z.name?Pu(z.name):"",Z=N.record,re=typeof(Z==null?void 0:Z.node_id)=="string"?Z.node_id:"",Le=re?hn(w,re):"",Ce=typeof(Z==null?void 0:Z.status)=="string"?Z.status:"",Ue=typeof((Et=Z==null?void 0:Z.effect)==null?void 0:Et.type)=="string"?Z.effect.type:"";if(Ce==="waiting"){const wt=ll(Z);if(String((wt==null?void 0:wt.reason)||"").trim()==="subworkflow"){const an=typeof((ct=wt==null?void 0:wt.details)==null?void 0:ct.sub_run_id)=="string"?String(wt.details.sub_run_id):"";an&&re&&Tn(w,re,an),an&&hs.current.trim()===String(w||"").trim()&&(hs.current=an,Wn(an))}}if(re&&(Ss(hn(w,re)),Ce==="waiting"||Ce==="running")){const wt=hn(w,re);wt&&(us.current=wt,Is(wt))}if((Ce==="completed"||Ce==="failed")&&hs.current.trim()===String(w||"").trim()){const wt=String(si.current[String(w||"").trim()]||"").trim();wt&&wt!==c.trim()?(hs.current=wt,Wn(wt)):(hs.current="",Wn(""))}if(J==="abstract.status"&&w===c.trim()){const{text:wt,duration:nn}=Dc(z==null?void 0:z.payload);wn(wt,nn)}let tt="step",at=Le||re||"(node?)",ht="";if(z&&z.name&&Nm(z.name))tt=J==="abstract.message"?"message":"event",at=`subrun • ${J||z.name}`,ht=ln(Dc(z==null?void 0:z.payload).text);else if(Z!=null&&Z.error)tt="error",at="error",ht=ln(oa(Z.error,360));else if(Ce==="waiting"){const wt=ll(Z),nn=String((wt==null?void 0:wt.reason)||"").trim();ht=ln(nn?`waiting • ${nn}`:"waiting")}else Z!=null&&Z.result?ht=ln(oa(Z.result,360)):Ue?ht=ln(Ue):ht=ln(Cm(Z));vt({id:`step:${w}:${N.cursor}`,ts:String((Z==null?void 0:Z.ended_at)||(Z==null?void 0:Z.started_at)||pn()),kind:tt,title:at,preview:ht,data:Z,cursor:N.cursor,run_id:w,node_id:Le||re,status:Ce,effect_type:Ue,emit_name:J||(z==null?void 0:z.name)||""})}function Js(w,N){var ct,wt;const I=String(w||"").trim();if(!I)return;const L=`${I}:${N.cursor}`;if(!!fs.current.has(L))return;fs.current.add(L),Oe(nn=>[...nn,{run_id:I,cursor:N.cursor,record:N.record}]);const J=Ed(N.record),Z=J&&J.name?Pu(J.name):"",re=N.record,Le=typeof(re==null?void 0:re.node_id)=="string"?re.node_id:"",Ce=Le?hn(I,Le):"",Ue=typeof(re==null?void 0:re.status)=="string"?re.status:"",tt=typeof((ct=re==null?void 0:re.effect)==null?void 0:ct.type)=="string"?re.effect.type:"";if(Ue==="waiting"){const nn=ll(re);if(String((nn==null?void 0:nn.reason)||"").trim()==="subworkflow"){const qe=typeof((wt=nn==null?void 0:nn.details)==null?void 0:wt.sub_run_id)=="string"?String(nn.details.sub_run_id):"";qe&&Le&&Tn(I,Le,qe)}}if(Le&&(Ss(hn(I,Le)),Ue==="waiting"||Ue==="running")){const nn=hn(I,Le);nn&&(us.current=nn,Is(nn))}if(Z==="abstract.status"&&I===c.trim()){const{text:nn,duration:an}=Dc(J==null?void 0:J.payload);wn(nn,an)}let at="step",ht=Ce||Le||"(node?)",Et="";if(J&&J.name&&Nm(J.name))at=Z==="abstract.message"?"message":"event",ht=`subrun • ${Z||J.name}`,Et=ln(Dc(J==null?void 0:J.payload).text);else if(re!=null&&re.error)at="error",ht="error",Et=ln(oa(re.error,360));else if(Ue==="waiting"){const nn=ll(re),an=String((nn==null?void 0:nn.reason)||"").trim();Et=ln(an?`waiting • ${an}`:"waiting")}else re!=null&&re.result?Et=ln(oa(re.result,360)):tt?Et=ln(tt):Et=ln(Cm(re));vt({id:`step:${I}:${N.cursor}`,ts:String((re==null?void 0:re.ended_at)||(re==null?void 0:re.started_at)||pn()),kind:at,title:ht,preview:Et,data:re,cursor:N.cursor,run_id:I,node_id:Ce||Le,status:Ue,effect_type:tt,emit_name:Z||(J==null?void 0:J.name)||""})}async function gs(w,N){let I=N.after;for(;;){const L=await Ct.get_ledger(w,{after:I,limit:200}),z=Array.isArray(L.items)?L.items:[];if(!z.length)return lt.current=I,I;const J=I;for(let Z=0;Z<z.length;Z++){const re=z[Z];ps({cursor:J+Z+1,record:re})}I=typeof L.next_after=="number"?L.next_after:I}}async function _s(w){var J,Z;const N=String(w||"").trim();nt(""),ae(!0),_e(!1),et([]),lt.current=0,Oe([]),fs.current=new Set,De([]),Tt({}),Pt({}),Mr("steps"),_i(""),Vs(""),$t(null),Gn(""),Is(""),us.current="",Bo({}),ma({}),Bi.current=[],Do(Date.now()),ha.current=N?{[N]:""}:{},si.current={},pa.current={},Ui.current=new Set,Wi([]),En.current="",hs.current="",Wn(""),ii.current={},zr.current&&window.clearTimeout(zr.current),zr.current=null,qn.current&&window.clearTimeout(qn.current),qn.current=null,cr.current&&cr.current.abort(),tr.current&&tr.current.abort(),tr.current=null,yo.current=0,Ks("");const I=new AbortController;cr.current=I;let L=!1;try{let re="",Le="";try{const Ce=await Ct.get_run(N);$t(Ce);const Ue=typeof(Ce==null?void 0:Ce.workflow_id)=="string"?String(Ce.workflow_id):"",tt=km(Ue);tt&&(re=tt.bundle_id,Le=tt.flow_id)}catch{}try{const Ce=await Ct.get_run_input_data(N);typeof(Ce==null?void 0:Ce.bundle_id)=="string"&&(re=String(Ce.bundle_id||"").trim()||re),typeof(Ce==null?void 0:Ce.flow_id)=="string"&&(Le=String(Ce.flow_id||"").trim()||Le);const Ue=Ce&&typeof Ce.input_data=="object"&&Ce.input_data&&!Array.isArray(Ce.input_data)?Ce.input_data:null;Ue&&T(JSON.stringify(Ue,null,2))}catch{}re&&Le&&(S(re),b(Le),go(Le),await Ho(re)),await gs(N,{after:0});try{const Ce=await Ct.get_run_history_bundle(N,{include_subruns:!0,include_session:!1,ledger_mode:"tail",ledger_max_items:1}),Ue=Ce&&typeof Ce=="object"?Ce.ledgers:null,at=(Ue&&typeof Ue=="object"?Object.keys(Ue):[]).map(ht=>String(ht||"").trim()).filter(Boolean).filter(ht=>ht!==N);if(at.length){for(const ht of at)Ui.current.add(ht);Wi(ht=>Array.from(new Set([...ht,...at])));try{const ht=typeof((J=Ue==null?void 0:Ue[N])==null?void 0:J.total)=="number"?Number(Ue[N].total):0;let Et="",ct=-1;for(const wt of at){const nn=typeof((Z=Ue==null?void 0:Ue[wt])==null?void 0:Z.total)=="number"?Number(Ue[wt].total):0;nn>ct&&(Et=wt,ct=nn)}Et&&ct>Math.max(ht*3,ht+20)&&(hs.current=Et,Wn(Et))}catch{}}}catch{}_e(!0),vt({ts:pn(),kind:"info",title:`Attached to run ${N}`,data:{run_id:N}}),L=!0}catch(re){const Le=String((re==null?void 0:re.message)||re||"unknown error");nt(Le),vt({ts:pn(),kind:"error",title:"Connection error",preview:ln(Le),data:{error:Le}}),_e(!1)}finally{ae(!1)}if(!L||I.signal.aborted)return;(async()=>{let re=250;for(;!I.signal.aborted;){try{const Le=await gs(N,{after:lt.current});await Ct.stream_ledger(N,{after:Le,on_step:ps,signal:I.signal})}catch(Le){if(I.signal.aborted)break;const Ce=String((Le==null?void 0:Le.message)||Le||"stream error");vt({ts:pn(),kind:"error",title:"Ledger stream error (will retry)",preview:ln(Ce),data:{error:Ce}})}if(I.signal.aborted)break;await new Promise(Le=>setTimeout(Le,re)),re=Math.min(5e3,Math.floor(re*1.6))}})()}async function xr(){const w=v.trim(),N=j.trim();if(!w||!N){const I="Select a workflow first (Start Workflow → pick a workflow).";return nt(I),I}nt(""),ae(!0);try{let I={};const L=A.trim();if(L)try{if(I=JSON.parse(L),typeof I!="object"||I===null||Array.isArray(I))throw new Error("input_data must be a JSON object")}catch(Ce){const Ue=`Invalid input_data JSON: ${String((Ce==null?void 0:Ce.message)||Ce)}`;return nt(Ue),Ue}const z=(oi||[]).find(Ce=>Ce&&typeof Ce=="object"&&Ce.id==="prompt"),J=z&&typeof z=="object"&&Object.prototype.hasOwnProperty.call(z,"default"),Z=I==null?void 0:I.prompt,re=typeof Z=="string"?Z.trim():"";if(z&&!J&&!re){const Ce="Missing required input_data.prompt";return nt(Ce),Ce}const Le=await Ct.start_run(w,I,{bundle_id:N,session_id:String(B||"").trim()||null});return _(Le),d(Le),on(""),await _s(Le),Vo(),null}catch(I){const L=String((I==null?void 0:I.message)||I||"start failed");return nt(L),L}finally{ae(!1)}}async function Hn(w){const N=v.trim(),I=j.trim();if(!N||!I){const L="Select a workflow first (Start Workflow → pick a workflow).";return nt(L),L}if(Se)return"Schedule already in progress";Xt(""),nt(""),ue(!0),ae(!0);try{let L={};const z=A.trim();if(z)try{if(L=JSON.parse(z),typeof L!="object"||L===null||Array.isArray(L))throw new Error("input_data must be a JSON object")}catch(Xe){const kt=`Invalid input_data JSON: ${String((Xe==null?void 0:Xe.message)||Xe)}`;return Xt(kt),kt}const J=(oi||[]).find(Xe=>Xe&&typeof Xe=="object"&&Xe.id==="prompt"),Z=J&&typeof J=="object"&&Object.prototype.hasOwnProperty.call(J,"default"),re=L==null?void 0:L.prompt,Le=typeof re=="string"?re.trim():"";if(J&&!Z&&!Le){const Xe="Missing required input_data.prompt";return Xt(Xe),Xe}let Ce=null,Ue=null;if(w.start_mode==="now")Ce="now",Ue=new Date;else{const Xe=String(w.start_at_local||"").trim();if(!Xe){const Jt="Pick a start date/time (or choose 'now').";return Xt(Jt),Jt}const kt=new Date(Xe);if(!Number.isFinite(kt.getTime())){const Jt="Invalid start date/time";return Xt(Jt),Jt}Ce=kt.toISOString(),Ue=new Date(Ce)}const tt=Number.isFinite(w.every_n)?w.every_n:1,at=Math.max(1,Math.min(1e4,Math.floor(tt))),ht=String(w.every_unit||"").trim();let Et="1d";ht==="minutes"?Et=`${at}m`:ht==="hours"?Et=`${at}h`:ht==="days"?Et=`${at}d`:ht==="weeks"?Et=`${at*7}d`:ht==="months"&&(Et=`${at*30}d`);const ct=w.repeat_mode,wt=ct==="once"?null:Et,nn=ct==="count"?Math.max(1,Math.floor(Number.isFinite(w.repeat_count)?w.repeat_count:1)):null;let an=null;if(ct==="until"){const Xe=String(w.repeat_until_date_local||"").trim(),kt=String(w.repeat_until_time_local||"").trim()||"23:59";if(!Xe){const Mt="Pick an end date (Until).";return Xt(Mt),Mt}const Jt=new Date(`${Xe}T${kt}`);if(!Number.isFinite(Jt.getTime())){const Mt="Invalid end date/time";return Xt(Mt),Mt}if(an=Jt.toISOString(),Ue&&Number.isFinite(Ue.getTime())&&Jt.getTime()<Ue.getTime()){const Mt="End date must be after the start date.";return Xt(Mt),Mt}}const qe=await Ct.schedule_run({bundle_id:I,flow_id:N,input_data:L,start_at:Ce,interval:wt,repeat_count:nn,repeat_until:an,share_context:!!w.share_context,session_id:String(B||"").trim()||null});return _(qe),d(qe),Xt(""),await _s(qe),Vo(),null}catch(L){const z=String((L==null?void 0:L.message)||L||"schedule failed");return Xt(z),nt(z),z}finally{ae(!1),ue(!1)}}async function $l(){on(""),Xt("");const N=vn!=="now"||Qn!=="once"?await Hn({start_mode:vn,start_at_local:ur,repeat_mode:Qn,every_n:Un,every_unit:je,repeat_count:it,repeat_until_date_local:Rt,repeat_until_time_local:Dt,share_context:Ft}):await xr();N&&on(N)}async function ba(w){const N=String(w||"").trim();N&&(nt(""),_(N),d(N),await _s(N))}m.useEffect(()=>{const w=String(g||"").trim();if(!w)return;let N=!1;return(async()=>{try{if(K||await qo(),N)return;await ba(w)}catch(I){N||nt(String((I==null?void 0:I.message)||I||"Failed to attach run from URL"))}finally{N||x("")}})(),()=>{N=!0}},[g]);function ai(){cr.current&&cr.current.abort(),cr.current=null,tr.current&&tr.current.abort(),tr.current=null,yo.current=0,Ks(""),d(""),_(""),ha.current={},si.current={},pa.current={},Ui.current=new Set,Wi([]),En.current="",hs.current="",Wn(""),ii.current={},Gn(""),zr.current&&window.clearTimeout(zr.current),zr.current=null,qn.current&&window.clearTimeout(qn.current),qn.current=null,_e(!1),ae(!1),Pe(!1),lt.current=0,et([]),Oe([]),fs.current=new Set,$t(null),De([]),Tt({}),Is(""),us.current="",Bo({}),ma({}),Bi.current=[],Do(Date.now()),wn("",-1),nt(""),ga(!1),Hi(""),Ur([]),_r(""),Er(""),er(!1),Wr(!1),es(""),yr(""),Hr(""),Pi([]),Ii(!1),zs(""),Vr(""),Fi(!1),Tr("")}m.useEffect(()=>{Ur([]),_r(""),Er(""),er(!1),Wr(!1),es(""),yr(""),Hr(""),Pi([]),Ii(!1),zs(""),Vr(""),Fi(!1),Tr("")},[c]),m.useEffect(()=>{xn==="chat"&&c.trim()&&K&&Gr()},[xn,c,K,xe==null?void 0:xe.workflow_id]);async function Ua(w,N){const I=c.trim();if(!I)return nt("Missing run_id"),"Missing run_id";nt("");try{const L={},z=String((N==null?void 0:N.reason)||"").trim();z&&(L.reason=z),await Ct.submit_command({command_id:Kr(),run_id:I,type:w,payload:L,client_id:"web_pwa"}),vt({ts:pn(),kind:"info",title:`${w} submitted`,preview:z?`reason: ${z}`:"",data:{type:w,reason:z}});try{const J=await Ct.get_run(I);$t(J)}catch{}return null}catch(L){const z=String((L==null?void 0:L.message)||L||`${w} failed`);return nt(z),z}}async function Wa(){var I;const w=c.trim();if(!w){nt("Select a run first.");return}if(!K){nt("Connect to the gateway first.");return}if(we)return;const N=String(((I=xe==null?void 0:xe.waiting)==null?void 0:I.reason)||"").trim().toLowerCase()||String(Yr||"").trim().toLowerCase();if(!Lr||ji||Si||bi.toLowerCase()!=="waiting"||N!=="until"){nt("This run is not a scheduled wait that can be triggered now.");return}nt(""),Pe(!0);try{const L={payload:{mode:"run_now",requested_at:pn()}},z=String(bo||"").trim();z&&(L.wait_key=z),await Ct.submit_command({command_id:Kr(),run_id:w,type:"resume",payload:L,client_id:"web_pwa"}),vt({ts:pn(),kind:"info",title:"Scheduled run triggered",preview:ln(`run ${w}`),data:{run_id:w,until:Qs||null}});try{const J=await Ct.get_run(w);$t(J)}catch{}}catch(L){nt(String((L==null?void 0:L.message)||L||"Failed to trigger scheduled run"))}finally{Pe(!1)}}async function lc(w){const N=c.trim();if(!N)return nt("Missing run_id"),"Missing run_id";if(Cn)return"Schedule update already in progress";const I=String(w.interval||"").trim();if(!/^\s*(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)\s*$/i.test(I)){const z="Invalid interval (expected like '20m', '1h', '0.5s', '250ms')";return Nn(z),z}Nn(""),nt(""),lr(!0),ae(!0);try{await Ct.submit_command({command_id:Kr(),run_id:N,type:"update_schedule",payload:{interval:I,apply_immediately:w.apply_immediately!==!1},client_id:"web_pwa"}),vt({ts:pn(),kind:"info",title:"Schedule updated",preview:ln(`interval: ${I}`),data:{interval:I},run_id:N});try{const z=await Ct.get_run(N);$t(z)}catch{}return null}catch(z){const J=String((z==null?void 0:z.message)||z||"update_schedule failed");return Nn(J),nt(J),J}finally{ae(!1),lr(!1)}}async function nu(w){const N=c.trim();if(!N)return nt("Missing run_id"),"Missing run_id";if(Qr)return"Compaction already in progress";const I=typeof(w==null?void 0:w.preserve_recent)=="number"?w.preserve_recent:Or,L=Math.max(0,Math.min(500,Math.floor(Number.isFinite(I)?I:6))),z=(w==null?void 0:w.compression_mode)||$s,J=String((w==null?void 0:w.focus)??Mi??"").trim();cs(""),nt(""),Dr(!0),ae(!0);try{const Z={preserve_recent:L,compression_mode:z};return J&&(Z.focus=J),await Ct.submit_command({command_id:Kr(),run_id:N,type:"compact_memory",payload:Z,client_id:"web_pwa"}),vt({ts:pn(),kind:"info",title:"Compaction requested",preview:ln(`mode: ${z} • preserve_recent: ${L}`),data:Z,run_id:N}),null}catch(Z){const re=String((Z==null?void 0:Z.message)||Z||"compact_memory failed");return cs(re),nt(re),re}finally{ae(!1),Dr(!1)}}async function Ha(){const w=c.trim();if(!w){Hi("Missing run_id");return}if(!xi){Hi(""),ga(!0);try{const N=r.maintenance_ai_provider.trim(),I=r.maintenance_ai_model.trim();await Ct.generate_run_summary(w,{provider:N||void 0,model:I||void 0,include_subruns:!0}),vt({ts:pn(),kind:"info",title:"Summary generation requested",preview:ln(`run ${w}`)})}catch(N){Hi(String((N==null?void 0:N.message)||N||"Failed to generate summary"))}finally{ga(!1)}}}async function Yo(){const w=c.trim();if(!w){Er("Select a run first.");return}if(!K){Er("Connect to the gateway first.");return}const N=Zn.trim();if(!N||As)return;if(pe.voice_ptt_busy){sn("Wait for transcription to finish.");return}Er(""),sn(""),er(!0);const L={id:`local:${Kr()}`,role:"user",content:N,ts:pn()};Ur(z=>[...z,L]),_r("");try{const z=[...Ln,L].slice(-20).map(Ue=>({role:Ue.role,content:Ue.content})),J=r.maintenance_ai_provider.trim(),Z=r.maintenance_ai_model.trim(),re=await Ct.run_chat(w,{provider:J||void 0,model:Z||void 0,include_subruns:!0,messages:z}),Le=String((re==null?void 0:re.answer)||"").trim()||"(empty response)",Ce=String((re==null?void 0:re.generated_at)||"").trim()||pn();Ur(Ue=>[...Ue,{id:`local:${Kr()}`,role:"assistant",content:Le,ts:Ce}])}catch(z){Er(String((z==null?void 0:z.message)||z||"Chat failed")),Ur(J=>[...J,{id:`local:${Kr()}`,role:"assistant",content:"(error: failed to generate answer)",ts:pn()}])}finally{er(!1)}}function Xn(w){const N=String(w.id||w.ts||"").trim(),I=String(w.content||"").trim();!N||!I||(sn(""),pe.toggle_tts(N,I))}function Vn(w){const N=String(w.id||w.ts||"").trim(),I=pe.tts_playback;return!N||!I.key||I.key!==N?"idle":I.status}function wo(w){if(!Ln.length)return;const N=c.trim(),I=N?`Run ${N}`:"Chat",L=bv(Ln.map(z=>({role:z.role,content:z.content,ts:z.ts})),{heading:I});if(w==="download"){const z=new Date().toISOString().slice(0,19).replace(/[:T]/g,"-"),J=`abstractobserver-chat-${qg(N||"run")}-${z}.md`;Sv({filename:J,text:L,mime:"text/markdown;charset=utf-8"});return}(async()=>{const z=await Cs(L);gi(z?"copied":"failed"),window.setTimeout(()=>gi("idle"),900)})()}async function Gr(){const w=typeof(xe==null?void 0:xe.workflow_id)=="string"?String(xe.workflow_id).trim():"";if(!w){Pi([]);return}if(K&&!Ms){zs(""),Ii(!0);try{const N=await Ct.list_runs({limit:200,workflow_id:w,root_only:!0}),I=Array.isArray(N==null?void 0:N.items)?N.items:[],L=[];for(const Ce of I){const Ue=typeof(Ce==null?void 0:Ce.run_id)=="string"?String(Ce.run_id).trim():"";if(!Ue)continue;const tt=typeof(Ce==null?void 0:Ce.ledger_len)=="number"?Number(Ce.ledger_len):0;L.push({run_id:Ue,ledger_len:Number.isFinite(tt)?tt:0})}if(!L.length){Pi([]);return}const z=400,J=L.map(Ce=>({run_id:Ce.run_id,after:Math.max(0,(Ce.ledger_len||0)-z)})),Z=await Ct.get_ledger_batch({runs:J,limit:z}),re=[],Le=new Set;for(const Ce of L){const Ue=Z!=null&&Z.runs&&typeof Z.runs=="object"?Z.runs[Ce.run_id]:null,tt=Array.isArray(Ue==null?void 0:Ue.items)?Ue.items:[];for(const at of tt){const ht=at==null?void 0:at.effect;if(!ht||typeof ht!="object"||String(ht.type||"")!=="emit_event")continue;const Et=ht.payload;if(!Et||typeof Et!="object"||String(Et.name||"")!=="abstract.chat.thread")continue;const ct=Et.payload;if(!ct||typeof ct!="object")continue;const wt=typeof ct.thread_id=="string"?String(ct.thread_id).trim():"";if(!wt||Le.has(wt))continue;Le.add(wt);const nn=typeof ct.created_at=="string"?String(ct.created_at):"",an=typeof ct.title=="string"?String(ct.title):"",qe=typeof ct.workflow_id=="string"?String(ct.workflow_id):w,Xe=typeof ct.run_id=="string"?String(ct.run_id):Ce.run_id,kt=typeof ct.provider=="string"?String(ct.provider):"",Jt=typeof ct.model=="string"?String(ct.model):"",Mt=typeof ct.message_count=="number"?Number(ct.message_count):null,Jn=ct.chat_artifact,js=Jn&&typeof Jn=="object"&&typeof Jn.$artifact=="string"?String(Jn.$artifact):"";js&&re.push({thread_id:wt,created_at:nn,title:an||`Chat ${wt.slice(0,8)}`,run_id:Xe,workflow_id:qe,message_count:Mt,provider:kt,model:Jt,artifact_id:js})}}re.sort((Ce,Ue)=>String(Ue.created_at||"").localeCompare(String(Ce.created_at||""))),Pi(re)}catch(N){zs(String((N==null?void 0:N.message)||N||"Failed to load saved discussions"))}finally{Ii(!1)}}}async function Fs(){const w=c.trim();if(!w){es("Select a run first.");return}if(!K){es("Connect to the gateway first.");return}if(Ln.length&&!Zr){es(""),Wr(!0);try{const N=r.maintenance_ai_provider.trim(),I=r.maintenance_ai_model.trim(),L=await Ct.save_chat_thread(w,{provider:N||void 0,model:I||void 0,include_subruns:!0,messages:Ln.map(Z=>({role:Z.role,content:Z.content,ts:Z.ts}))}),z=typeof(L==null?void 0:L.created_at)=="string"?String(L.created_at):pn();yr(z);try{const Z=JSON.stringify(Ln.map(re=>({role:re.role,content:re.content,ts:re.ts})));Hr(Z)}catch{Hr("1")}typeof(L==null?void 0:L.thread_id)=="string"&&String(L.thread_id).trim()&&Vr(String(L.thread_id).trim());const J=!!(L!=null&&L.duplicate);wn(J?"Already saved":"Saved discussion",2),await Gr()}catch(N){es(String((N==null?void 0:N.message)||N||"Failed to save discussion"))}finally{Wr(!1)}}}async function Sa(){const w=String(Gs||"").trim();if(!w)return;const N=Li.find(z=>String(z.thread_id||"").trim()===w)||null;if(!N){Tr("Saved discussion not found (refresh list).");return}if(!K){Tr("Connect to the gateway first.");return}if(Rs)return;const I=Ln.length>0,L=(()=>{if(!I)return!1;if(!Ri)return!0;try{return JSON.stringify(Ln.map(J=>({role:J.role,content:J.content,ts:J.ts})))!==Ri}catch{return!0}})();if(!(I&&L&&!window.confirm("Replace the current chat with the selected saved discussion? Unsaved changes will be lost."))){Tr(""),Fi(!0);try{const J=await(await Ct.download_run_artifact_content(N.run_id,N.artifact_id)).text(),Z=JSON.parse(J),re=Array.isArray(Z==null?void 0:Z.messages)?Z.messages:[],Le=typeof(Z==null?void 0:Z.created_at)=="string"?String(Z.created_at):String(N.created_at||""),Ce=[];for(let Ue=0;Ue<re.length;Ue++){const tt=re[Ue];if(!tt||typeof tt!="object")continue;const at=String(tt.role||"").trim()==="assistant"?"assistant":"user",ht=typeof tt.content=="string"?String(tt.content):"";if(!ht.trim())continue;const Et=typeof tt.ts=="string"?String(tt.ts):Le||pn();Ce.push({id:`thread:${w}:${Ue}`,role:at,content:ht.trim(),ts:Et})}Ur(Ce),_r(""),Er(""),es(""),yr(Le||"");try{const Ue=JSON.stringify(Ce.map(tt=>({role:tt.role,content:tt.content,ts:tt.ts})));Hr(Ue)}catch{Hr("1")}wn("Loaded discussion",2)}catch(z){Tr(String((z==null?void 0:z.message)||z||"Failed to load saved discussion"))}finally{Fi(!1)}}}async function Xo(w){const N=c.trim(),I=String((_n==null?void 0:_n.wait_key)||"").trim();if(!N||!I){nt("No active wait to resume");return}if(String((_n==null?void 0:_n.reason)||"").trim()==="subworkflow"){nt("This run is waiting on a subworkflow; attach to the child run instead of resuming manually.");return}nt(""),Pe(!0);try{await Ct.submit_command({command_id:Kr(),run_id:N,type:"resume",payload:{wait_key:I,payload:w||{}},client_id:"web_pwa"}),vt({ts:pn(),kind:"info",title:"Resume submitted",preview:ln(`wait_key: ${I}`),data:{wait_key:I,payload:w||{}}}),Gn(I),qn.current&&window.clearTimeout(qn.current),qn.current=window.setTimeout(()=>{Gn(L=>L===I?"":L)},2e3)}catch(L){nt(String((L==null?void 0:L.message)||L||"resume failed"))}finally{Pe(!1)}}async function Os(w){if(!_a){nt("No worker configured");return}if(!we){nt(""),Pe(!0);try{const N=[];for(const I of w){const L=await _a.call_tool(I);N.push(L)}await Xo({mode:"executed",results:N})}finally{Pe(!1)}}}const ja=m.useMemo(()=>h_(_n),[_n]),bo=String((_n==null?void 0:_n.wait_key)||"").trim(),Yr=String((_n==null?void 0:_n.reason)||"").trim(),Qs=typeof(_n==null?void 0:_n.until)=="string"?String(_n.until):"",td=Yr==="until"&&!!Qs,wi=x1(qr)&&(!!bo||td),cc=Yr==="user",Al=Yr==="event"?Pu(f1(bo)):"",nd=Yr==="event"&&Al==="abstract.ask",_f=ja.length>0,Ko=wi&&bo&&(cc||nd||_f)&&Ye!==bo,li=typeof((Zo=_n==null?void 0:_n.details)==null?void 0:Zo.sub_run_id)=="string"?String(_n.details.sub_run_id):"",bi=typeof(xe==null?void 0:xe.status)=="string"?String(xe.status):"",Si=!!(xe!=null&&xe.paused),ji=bi==="completed"||bi==="failed"||bi==="cancelled",nr=xe!=null&&xe.schedule&&typeof xe.schedule=="object"?xe.schedule:null,ss=typeof(nr==null?void 0:nr.interval)=="string"?String(nr.interval).trim():"",ka=typeof(nr==null?void 0:nr.share_context)=="boolean"?!!nr.share_context:null,Gi=typeof(nr==null?void 0:nr.repeat_count)=="number"?Number(nr.repeat_count):null,Lr=!!(xe!=null&&xe.is_scheduled)||!!nr||typeof(xe==null?void 0:xe.workflow_id)=="string"&&String(xe.workflow_id).startsWith("scheduled:"),So=Lr&&!!ss,ru=Lr?Si?"Resume schedule":"Suspend schedule":bi==="running"&&!Si?"Pause":"Resume",uc=Lr?Si?"resume":"pause":ru==="Pause"?"pause":"resume",su=Lr?!c.trim()||ve||we||ji:!c.trim()||ve||we||ji||uc==="resume"&&!Si,Zs=Lr&&!Si&&!ji&&!ve&&!we&&bi.toLowerCase()==="waiting"&&(String(((wc=xe==null?void 0:xe.waiting)==null?void 0:wc.reason)||"").trim().toLowerCase()==="until"||Yr==="until")&&!!String(Qs||"").trim(),Kn=(au=xe==null?void 0:xe.limits)==null?void 0:au.tokens,Bn=typeof(Kn==null?void 0:Kn.pct)=="number"?Number(Kn.pct):null,ci=Kn==null?void 0:Kn.estimated_used,iu=(Kn==null?void 0:Kn.max_input_tokens)??(Kn==null?void 0:Kn.max_tokens),Ht=m.useMemo(()=>{var an;const w={};for(const qe of te||[]){if(!qe||typeof qe!="object")continue;const Xe=String(qe.name||"").trim();Xe&&(w[Xe]=qe)}const N=qe=>{const Xe=w[String(qe||"").trim()],kt=Xe&&typeof Xe=="object"?Xe.toolset:"";return typeof kt=="string"?kt.trim():""},I=qe=>qe==null?"":typeof qe=="boolean"?qe?"true":"false":typeof qe=="number"?String(qe):typeof qe=="string"?ln(qe,{max_chars:160,max_lines:2}):ln(oa(qe,160),{max_chars:160,max_lines:2}),L=(qe,Xe)=>{const kt=String(qe||"").trim(),Jt=Xe&&typeof Xe=="object"?Xe:{},Mt=w[kt],Jn=Mt&&typeof Mt=="object"?Mt.parameters:null,js=Object.keys(Jn&&typeof Jn=="object"?Jn:Jt),Ki=[],ui=new Set;for(const br of js)typeof br!="string"||!br.trim()||ui.has(br)||(ui.add(br),Object.prototype.hasOwnProperty.call(Jt,br)&&Ki.push([br,Jt[br]]));for(const br of Object.keys(Jt))ui.has(br)||Ki.push([br,Jt[br]]);return Ki},z=(qe,Xe)=>{const kt=L(qe,Xe);return kt.length?I(kt[0][1]):""},J=(qe,Xe)=>{const kt=String(qe||"").trim()||"tool",Mt=L(kt,Xe).slice(0,2);if(!Mt.length)return`${kt}()`;if(Mt.length===1)return`${kt}(${I(Mt[0][1])})`;const Jn=Mt.map(([js,Ki])=>`${js}=${I(Ki)}`).join(", ");return`${kt}(${Jn})`},Z=qe=>{var mu,hu,pu;const Xe={steps:qe.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},kt=[],Jt=[],Mt=[],Jn=new Set,js=[],Ki=[];let ui=null,br=null;const sd=_t=>{if(!_t||typeof _t!="object")return"";const Ji=_t.prompt;if(typeof Ji=="string"&&Ji.trim())return Ji.trim();const Ka=_t.messages;if(Array.isArray(Ka))for(let Qi=Ka.length-1;Qi>=0;Qi--){const Ei=Ka[Qi];if(!Ei||typeof Ei!="object"||String(Ei.role||"")!=="user")continue;const Ca=Ei.content;if(typeof Ca=="string"&&Ca.trim())return Ca.trim()}return""},fu=_t=>_t==null?"":typeof _t=="string"?ln(_t,{max_chars:2400,max_lines:32}):ln(jm(_t),{max_chars:2400,max_lines:32});for(const _t of qe){const Ji=typeof(_t==null?void 0:_t.run_id)=="string"?String(_t.run_id):"",Ka=typeof(_t==null?void 0:_t.node_id)=="string"?String(_t.node_id):"",Qi=String((_t==null?void 0:_t.ended_at)||(_t==null?void 0:_t.started_at)||"").trim(),Ei=ul(Qi);Ei!==null&&((ui===null||Ei<ui)&&(ui=Ei),(br===null||Ei>br)&&(br=Ei)),_t!=null&&_t.error&&(Xe.errors+=1);const Ca=typeof((mu=_t==null?void 0:_t.effect)==null?void 0:mu.type)=="string"?String(_t.effect.type):"";if(Ca==="llm_call"){Xe.llm_calls+=1;const ar=(hu=_t==null?void 0:_t.effect)==null?void 0:hu.payload,hr=_t!=null&&_t.result&&typeof _t.result=="object"?_t.result.usage||_t.result.token_usage:null;let ys=0,Zi=0,eo=0;hr&&typeof hr=="object"&&(ys=Number(hr.prompt_tokens??hr.input_tokens??0),Zi=Number(hr.completion_tokens??hr.output_tokens??0),eo=Number(hr.total_tokens??ys+Zi),Number.isFinite(ys)&&(Xe.prompt_tokens+=ys),Number.isFinite(Zi)&&(Xe.completion_tokens+=Zi),Number.isFinite(eo)&&(Xe.total_tokens+=eo));const Bs=ar&&typeof ar=="object"&&typeof ar.provider=="string"?String(ar.provider):"",na=ar&&typeof ar=="object"&&typeof ar.model=="string"?String(ar.model):"",Dl=sd(ar),No=_t!=null&&_t.result&&typeof _t.result=="object"&&typeof _t.result.content=="string"?String(_t.result.content):_t!=null&&_t.result&&typeof _t.result=="object"&&typeof _t.result.response=="string"?String(_t.result.response):typeof(_t==null?void 0:_t.result)=="string"?String(_t.result):"",Ja=!String(No||"").trim();Ja&&(Xe.llm_missing_responses+=1),Ki.length<80&&Ki.push({ts:Qi,run_id:Ji,node_id:Ka,provider:Bs,model:na,prompt_preview:ln(Dl,{max_chars:1800,max_lines:24}),response_preview:ln(String(No||""),{max_chars:1800,max_lines:24}),missing_response:Ja,tokens:{prompt:Number.isFinite(ys)?ys:0,completion:Number.isFinite(Zi)?Zi:0,total:Number.isFinite(eo)?eo:0}})}if(Ca!=="tool_calls")continue;Xe.tool_calls_effects+=1;const Ec=(pu=_t==null?void 0:_t.effect)==null?void 0:pu.payload,Ol=Ec&&typeof Ec=="object"?Ec.tool_calls:null,$c=Array.isArray(Ol)?Ol:[];if(!$c.length)continue;Xe.tool_calls+=$c.length;const id=_t!=null&&_t.result&&typeof _t.result=="object"?_t.result.results:null,gu=Array.isArray(id)?id:[],Ds=new Map;for(const ar of gu){if(!ar||typeof ar!="object")continue;const hr=String(ar.call_id||ar.id||"").trim();hr&&!Ds.has(hr)&&Ds.set(hr,ar)}for(let ar=0;ar<$c.length;ar++){const hr=$c[ar];if(!hr||typeof hr!="object")continue;const ys=String(hr.name||"").trim();if(!ys)continue;Jn.add(ys);const Zi=hr.arguments,eo=String(hr.call_id||hr.id||"").trim(),Bs=eo&&Ds.has(eo)?Ds.get(eo):ar<gu.length?gu[ar]:null,na=Bs&&typeof Bs=="object"&&typeof Bs.success=="boolean"?!!Bs.success:null,Dl=Bs&&typeof Bs=="object"?Bs.output:null,No=Bs&&typeof Bs=="object"?Bs.error:null;js.length<240&&js.push({ts:Qi,run_id:Ji,node_id:Ka,name:ys,signature:J(ys,Zi),success:na,output_preview:fu(Dl),error:typeof No=="string"||No?String(No):""});const Ja=N(ys),Ea=z(ys,Zi);Ja==="files"&&Ea?kt.push({tool:ys,file_path:Ea,run_id:Ji,ts:Qi}):Ja==="system"&&Ea?Jt.push({command:Ea,run_id:Ji,ts:Qi}):Ja==="web"&&Ea&&Mt.push({tool:ys,value:Ea,run_id:Ji,ts:Qi})}}return Xe.unique_tools=Jn.size,ui!==null&&(Xe.started_at=new Date(ui).toISOString()),br!==null&&(Xe.ended_at=new Date(br).toISOString()),ui!==null&&br!==null&&(Xe.duration_s=Math.max(0,Math.round((br-ui)/1e3))),{stats:Xe,files:kt,commands:Jt,web:Mt,tools_used:Array.from(Jn).sort(),tool_calls_detail:js,llm_calls_detail:Ki}},re=[],Le={},Ce=c.trim(),Ue=qe=>{if(!qe)return;re.push(qe);const kt=(typeof(qe==null?void 0:qe.run_id)=="string"?String(qe.run_id||"").trim():"")||Ce||"unknown";Le[kt]||(Le[kt]=[]),Le[kt].push(qe)};for(const qe of Ke)qe&&qe.record&&Ue(qe.record);for(const qe of Ae)qe&&qe.record&&Ue(qe.record);const tt=Z(re),at={};for(const[qe,Xe]of Object.entries(Le))at[qe]=Z(Xe);const ht=ds.map(qe=>{const Xe=String(qe||"").trim();if(!Xe)return null;const kt=String(si.current[Xe]||"").trim(),Jt=pa.current[Xe],Mt=Jt?String(Jt.parent_node_id||"").trim():"";return{run_id:Xe,parent_run_id:kt,parent_node_id:Mt,digest:at[Xe]||null}}).filter(Boolean);ht.sort((qe,Xe)=>qe.run_id<Xe.run_id?-1:qe.run_id>Xe.run_id?1:0);let Et=null;for(const qe of Ke){const Xe=qe.record,kt=Ed(Xe);if((kt&&kt.name?Pu(kt.name):"")!=="abstract.summary")continue;const Mt=kt!=null&&kt.payload&&typeof kt.payload=="object"?kt.payload:{},Jn=typeof(Mt==null?void 0:Mt.text)=="string"?String(Mt.text):"";Jn.trim()&&(Et={cursor:qe.cursor,ts:String((Xe==null?void 0:Xe.ended_at)||(Xe==null?void 0:Xe.started_at)||""),text:Jn,provider:typeof(Mt==null?void 0:Mt.provider)=="string"?String(Mt.provider):void 0,model:typeof(Mt==null?void 0:Mt.model)=="string"?String(Mt.model):void 0,generated_at:typeof(Mt==null?void 0:Mt.generated_at)=="string"?String(Mt.generated_at):void 0,source:Mt==null?void 0:Mt.source})}const ct=Et?ul(Et.generated_at||Et.ts):null;let wt=null;for(const qe of re){if((typeof((an=qe==null?void 0:qe.effect)==null?void 0:an.type)=="string"?String(qe.effect.type):"")==="emit_event")continue;const kt=String((qe==null?void 0:qe.ended_at)||(qe==null?void 0:qe.started_at)||"").trim(),Jt=ul(kt);Jt!==null&&(wt===null||Jt>wt)&&(wt=Jt)}const nn=ct!==null&&wt!==null?wt>ct:!1;return{overall:tt,per_run:at,subruns:ht,latest_summary:Et,summary_outdated:nn}},[Ke,Ae,c,ds,te]);m.useEffect(()=>{hs.current=ms.trim()},[ms]),m.useEffect(()=>{const w=c.trim(),N=li.trim();if(!(Be&&Yr==="subworkflow"&&!!N&&N!==w)){En.current="",ms.trim()&&Wn("");return}En.current!==N&&(En.current=N,hs.current=N,Wn(N))},[Be,c,Yr,li,ms]),m.useEffect(()=>{Fa({})},[j]);const dc=m.useMemo(()=>((Array.isArray(P==null?void 0:P.entrypoints)?P==null?void 0:P.entrypoints:[])||[]).map(N=>String((N==null?void 0:N.flow_id)||"").trim()).filter(Boolean),[P]),ki=m.useMemo(()=>{const w=String((xe==null?void 0:xe.workflow_id)||"").trim();return Be&&w.startsWith("scheduled:")?w:""},[Be,xe==null?void 0:xe.workflow_id]),rd=m.useMemo(()=>{var Z;if(!Be||!c.trim()||!ki.trim())return Xs;const w=String((xe==null?void 0:xe.status)||"").trim().toLowerCase(),N=String((xe==null?void 0:xe.current_node)||"").trim();if(w!=="waiting"&&w!=="running"||!N)return Xs;const I=hn(c.trim(),N);if(!I)return Xs;const L=String(Yr||((Z=xe==null?void 0:xe.waiting)==null?void 0:Z.reason)||"").trim().toLowerCase(),z=typeof(qr==null?void 0:qr.node_id)=="string"?String(qr.node_id).trim():"",J=typeof(qr==null?void 0:qr.status)=="string"?String(qr.status).trim().toLowerCase():"";return w==="waiting"&&L==="until"||!Xs.trim()||(J==="waiting"||J==="running")&&!z?I:Xs},[Be,c,ki,xe==null?void 0:xe.status,xe==null?void 0:xe.current_node,(Yi=xe==null?void 0:xe.waiting)==null?void 0:Yi.reason,Yr,Xs,qr]),fc=m.useMemo(()=>{const w={},N=c.trim(),I=(L,z)=>{if(!z)return;const J=typeof(z==null?void 0:z.node_id)=="string"?String(z.node_id).trim():"";if(!J)return;const Z=hn(L,J);if(!Z)return;const re=String((z==null?void 0:z.ended_at)||(z==null?void 0:z.started_at)||"").trim(),Le=ul(re);Le!==null&&(w[Z]=Math.max(w[Z]||0,Le))};for(const L of Ke)L&&L.record&&I(N,L.record);for(const L of Ae)L&&L.record&&I(String(L.run_id||"").trim(),L.record);return w},[Ke,Ae,c,ds]);m.useEffect(()=>{var I;if(!Be||!c.trim()||!ki.trim())return;const w=String((xe==null?void 0:xe.current_node)||"").trim();!w||String(((I=xe==null?void 0:xe.waiting)==null?void 0:I.reason)||"").trim()==="subworkflow"||Ss(hn(c.trim(),w))},[Be,c,ki,xe==null?void 0:xe.current_node,(jo=xe==null?void 0:xe.waiting)==null?void 0:jo.reason]),m.useEffect(()=>{const w=String((Rr==null?void 0:Rr.flow_id)||"").trim();w&&(po.trim()||go(w))},[Rr,po]),m.useEffect(()=>{const w=ki.trim(),N=j.trim(),I=po.trim();if(w){let z=!1;return Oo(!0),Di(""),Ct.get_workflow_flow(w).then(J=>{if(z)return;const Z=J==null?void 0:J.flow;Fo(Z&&typeof Z=="object"?Z:null)}).catch(J=>{z||(Fo(null),Di(String((J==null?void 0:J.message)||J||"Failed to load workflow flow")))}).finally(()=>{z||Oo(!1)}),()=>{z=!0}}if(!N||!I){Fo(null),Di(""),Oo(!1);return}let L=!1;return Oo(!0),Di(""),Ct.get_bundle_flow(N,I).then(z=>{if(L)return;const J=z==null?void 0:z.flow,Z=J&&typeof J=="object"?J:null;Fo(Z),Z&&Fa(re=>({...re,[I]:Z}))}).catch(z=>{L||(Fo(null),Di(String((z==null?void 0:z.message)||z||"Failed to load flow")))}).finally(()=>{L||Oo(!1)}),()=>{L=!0}},[ki,j,po,Ct]),m.useEffect(()=>{const w=j.trim();if(!yi||!w||!_o)return;let N=!1;const I=3,L=Ce=>{const Ue=Array.isArray(Ce==null?void 0:Ce.nodes)?Ce.nodes:[],tt=[];for(const at of Ue){const ht=at!=null&&at.data&&typeof at.data=="object"?at.data:{};if(String((ht==null?void 0:ht.nodeType)||(at==null?void 0:at.type)||"").trim()!=="subflow")continue;const ct=(ht==null?void 0:ht.subflowId)||(ht==null?void 0:ht.flowId),wt=typeof ct=="string"?ct.trim():"";wt&&tt.push(wt.includes(":")?wt.split(":",2)[1]:wt)}return tt},z=new Set,J=new Set,Z=(Ce,Ue)=>{if(!(!Ce||Ue>=I))for(const tt of L(Ce)){const at=String(tt||"").trim();if(!at||z.has(at))continue;z.add(at),J.add(at);const ht=fa[at];ht&&Z(ht,Ue+1)}};Z(_o,0);const re=Array.from(J).filter(Ce=>!fa[Ce]).slice(0,20);return re.length?((async()=>{for(const Ce of re){if(N)return;try{const Ue=await Ct.get_bundle_flow(w,Ce),tt=Ue==null?void 0:Ue.flow,at=tt&&typeof tt=="object"?tt:null;if(!at)continue;Fa(ht=>ht[Ce]?ht:{...ht,[Ce]:at})}catch{}}})(),()=>{N=!0}):void 0},[yi,j,_o,fa,Ct]);const ou=m.useMemo(()=>{const N=(Array.isArray(P==null?void 0:P.flows)?P==null?void 0:P.flows:[]).map(I=>String(I||"").trim()).filter(Boolean);return N.length?Array.from(new Set(N)).sort():Array.from(new Set(dc)).sort()},[P,dc]);m.useEffect(()=>{ji&&Xs.trim()&&(Is(""),us.current="")},[ji,c,Xs]),m.useEffect(()=>{const w=ms.trim(),N=c.trim();if(!(Be&&!!w&&w!==N)){tr.current&&tr.current.abort(),tr.current=null,yo.current=0,rs&&Ks("");return}if(rs===w)return;tr.current&&tr.current.abort();const L=new AbortController;tr.current=L,yo.current=0,Ks(w),vt({ts:pn(),kind:"info",title:`Following run ${w} (status/events)`});let z=250;return(async()=>{for(;!L.signal.aborted;){try{await Ct.stream_ledger(w,{after:yo.current,on_step:Z=>qi(w,Z),signal:L.signal});return}catch(Z){if(L.signal.aborted)break;const re=String((Z==null?void 0:Z.message)||Z||"stream error");vt({ts:pn(),kind:"error",title:"Child ledger stream error (will retry)",preview:ln(re),data:{child_run_id:w,error:re}})}if(L.signal.aborted)break;await new Promise(Z=>setTimeout(Z,z)),z=Math.min(5e3,Math.floor(z*1.6))}})(),()=>{L.abort()}},[Be,ms,c,Ct,rs]),m.useEffect(()=>{if(!Be||!c.trim())return;let w=!1;const N=async()=>{if(!w&&!xo.current&&ds.length){xo.current=!0;try{const L=ds.map(re=>String(re||"").trim()).filter(Boolean);if(!L.length)return;const z=L.map(re=>({run_id:re,after:Number(ii.current[re]||0)})),J=await Ct.get_ledger_batch({runs:z,limit:200}),Z=J&&typeof J=="object"?J.runs:{};for(const re of L){if(w)return;const Le=Z&&typeof Z=="object"?Z[re]:null,Ce=Array.isArray(Le==null?void 0:Le.items)?Le.items:[],Ue=typeof(Le==null?void 0:Le.next_after)=="number"?Le.next_after:Number(ii.current[re]||0),tt=Number(ii.current[re]||0);for(let at=0;at<Ce.length;at++){const ht=Ce[at];Js(re,{cursor:tt+at+1,record:ht})}ii.current[re]=Ue}}catch(L){if(w)return;vt({ts:pn(),kind:"error",title:"Subrun digest poll failed",preview:ln(String((L==null?void 0:L.message)||L||""))})}finally{xo.current=!1}}};N();const I=window.setInterval(()=>void N(),2e3);return()=>{w=!0,window.clearInterval(I),xo.current=!1}},[Be,c,ds,Ct]);const Jo=m.useMemo(()=>mn?Ie.filter(g1):Ie,[mn,Ie]),Qo=m.useMemo(()=>{const w=c.trim(),N=[];for(const I of Ke)!I||!I.record||N.push({run_id:w,cursor:I.cursor,record:I.record});for(const I of Ae)!I||!I.record||N.push({run_id:String(I.run_id||"").trim(),cursor:I.cursor,record:I.record});return N},[Ke,Ae,c]),mc=m.useMemo(()=>{var N,I,L;const w={};for(const z of Qo){const J=String(z.run_id||((N=z.record)==null?void 0:N.run_id)||"").trim();!J||String(((L=(I=z.record)==null?void 0:I.effect)==null?void 0:L.type)||"").trim()!=="llm_call"||(w[J]=(w[J]||0)+1)}return w},[Qo]),Tl=m.useMemo(()=>{const w=ms.trim();if(w)return w;let N="",I=-1;for(const[L,z]of Object.entries(mc))z>I&&(N=L,I=z);return N||c.trim()},[mc,ms,c]),Ni=(bs.trim()||Tl).trim(),hc=m.useMemo(()=>{var z;const w=new Set,N=c.trim(),I=ms.trim();N&&w.add(N),I&&w.add(I);for(const J of ds){const Z=String(J||"").trim();Z&&w.add(Z)}for(const J of Qo){const Z=String(J.run_id||((z=J.record)==null?void 0:z.run_id)||"").trim();Z&&w.add(Z)}const L=Array.from(w);return L.sort((J,Z)=>N&&J===N&&Z!==N?-1:N&&Z===N&&J!==N?1:I&&J===I&&Z!==I?-1:I&&Z===I&&J!==I?1:J<Z?-1:J>Z?1:0),L},[c,ms,ds,Qo]),pc=m.useMemo(()=>uv(Qo,{run_id:Ni}),[Qo,Ni]),vr=m.useMemo(()=>{const w=c.trim();return w&&Q.find(N=>String(N.run_id||"").trim()===w)||null},[Q,c]),gc=String((xe==null?void 0:xe.status)||(vr==null?void 0:vr.status)||"").trim(),_c=String(Yr||((bc=xe==null?void 0:xe.waiting)==null?void 0:bc.reason)||(vr==null?void 0:vr.waiting_reason)||"").trim().toLowerCase(),Ml=!!(xe!=null&&xe.is_scheduled||vr!=null&&vr.is_scheduled),Va=!!(xe!=null&&xe.paused||vr!=null&&vr.paused),yc=Ml&&gc.toLowerCase()==="waiting",xc=yc&&_c==="until",vc=ul(Qs),zl=xc&&vc!==null?Yg(vc-Date.now()):"",qa=Ml&&Va?"Suspended":yc?"Scheduled":gc;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.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"}),al?s.jsx("button",{className:`nav_tab ${e==="backlog"?"active":""}`,onClick:()=>t("backlog"),children:"Backlog"}):null,s.jsx("button",{className:`nav_tab ${e==="inbox"?"active":""}`,onClick:()=>t("inbox"),children:"Inbox"})]}),s.jsxs("div",{className:"status_pills",children:[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,al?s.jsx("button",{className:`header_icon_btn ${e==="processes"?"active":""}`,title:"Processes","aria-label":"Processes",type:"button",onClick:()=>t("processes"),children:s.jsx(Fn,{name:"terminal",size:16})}):null,s.jsx("button",{className:`header_icon_btn ${e==="settings"?"active":""}`,title:"Settings","aria-label":"Settings",type:"button",onClick:()=>t("settings"),children:s.jsx(Fn,{name:"settings",size:16})}),s.jsx("span",{className:`gateway_led ${K?"ok":oe?"warn":"err"}`,title:`Gateway: ${K?"connected":oe?"connecting":"disconnected"}`,"aria-hidden":"true"})]})]}),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(Lv,{value:r.theme,onChange:w=>o(N=>({...N,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(Pv,{value:r.font_scale,onChange:w=>o(N=>({...N,font_scale:w}))})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Header size"}),s.jsx(Iv,{value:r.header_density,onChange:w=>o(N=>({...N,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(N=>({...N,gateway_url:w.target.value})),placeholder:"https://your-gateway-host"}),s.jsx("button",{className:"btn",onClick:K?E:qo,disabled:oe,children:oe?"Connecting…":K?"Disconnect":"Connect"})]}),Re?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Re}):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(N=>({...N,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 user"}),s.jsx("input",{value:r.gateway_user,onChange:w=>o(N=>({...N,gateway_user:w.target.value,gateway_auth_mode:"session"})),placeholder:"user id for hosted sign-in"})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Gateway token"}),s.jsx("input",{type:"password",value:r.auth_token,onChange:w=>o(N=>({...N,auth_token:w.target.value})),placeholder:r.gateway_user.trim()?"user token for sign-in":"optional direct dev token"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Hosted sign-in exchanges this token for a browser session and does not save it in localStorage."})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Remember browser session"}),s.jsxs("select",{value:r.gateway_remember?"on":"off",onChange:w=>o(N=>({...N,gateway_remember:w.target.value==="on"})),children:[s.jsx("option",{value:"on",children:"On"}),s.jsx("option",{value:"off",children:"Off"})]})]}),s.jsx("div",{className:"section_title",children:"Maintenance AI"}),s.jsx(zv,{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:tu,models:va.models,loadingProviders:oe,loadingModels:Cl,modelError:In?va.error:"",allowCustomProvider:!0,allowCustomModel:!0,allowGatewayDefault:!0,gatewayDefaultLabel:"(gateway default)",selectClassName:"mono",onChange:w=>o(N=>({...N,maintenance_ai_provider:w.provider,maintenance_ai_model:w.model}))}),s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["Used for in-editor maintenance chat",al?" and backlog AI assist":"",". Defaults follow `ABSTRACTGATEWAY_PROVIDER` / `ABSTRACTGATEWAY_MODEL`."]}),al?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(N=>({...N,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`)."})]}):null,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(N=>({...N,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(N=>({...N,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"})}),K?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:pn()})]}),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:"launch_workflow_bar",children:[s.jsxs("select",{className:"launch_workflow_select",value:Zc,onChange:async w=>{const N=String(w.target.value||"").trim();if(!N)return;const I=km(N);I&&(S(I.bundle_id),b(I.flow_id),go(I.flow_id),await Ho(I.bundle_id))},disabled:oe||!X.length,children:[s.jsx("option",{value:"",children:X.length?"(select workflow)":"(connect in Settings)"}),X.map(w=>s.jsx("option",{value:w.workflow_id,children:w.label},w.workflow_id))]}),s.jsx("input",{ref:gt,type:"file",accept:".flow",style:{display:"none"},onChange:w=>{const N=w.target.files&&w.target.files.length?w.target.files[0]:null;N&&El(N)}}),s.jsx("button",{type:"button",className:"btn launch_btn_upload",onClick:()=>{var w;return(w=gt.current)==null?void 0:w.click()},disabled:!K||oe||ke||ve||we,title:"Upload a .flow bundle",children:ke?"…":"Upload"}),s.jsxs("button",{type:"button",className:"btn launch_btn_reload",onClick:()=>void Go(),disabled:!K||oe||C||ve||we,title:"Reload picks up server-side edits",children:[s.jsx(Fn,{name:"refresh",size:14}),C?"…":"Reload"]})]}),s.jsxs("div",{className:"field",children:[Rr!=null&&Rr.description?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:String(Rr.description)}):null,G?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading workflow…"}):null,Y?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Y}):null]}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",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."}):Yt===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:pn()})]}),s.jsx("div",{className:"body mono",children:"Invalid input JSON. Fix it in Advanced JSON."})]}):Nl?s.jsx("div",{className:"launch_inputs",children:(()=>{const w=ve||we,N=[],I=[];for(const J of oi){if(!J||typeof J!="object")continue;const Z=String(J.id||"").trim();if(!Z)continue;const re=String(J.type||"").trim().toLowerCase();re==="tools"||re==="array"||ya(re)||Z==="prompt"||Z==="system"?N.push(J):I.push(J)}const L=J=>String(J||"").trim().replace(/_/g," ").replace(/\b\w/g,Z=>Z.toUpperCase()),z=(J,Z)=>{const re=String(J.id||"").trim();if(!re)return null;const Le=String(J.label||re).trim()||re,Ce=Le===re?L(re):Le,Ue=String(J.type||"").trim().toLowerCase(),tt=Object.prototype.hasOwnProperty.call(J,"default"),at=tt?J.default:void 0,ht=tt?oa(at,80):"",Et=Yt==null?void 0:Yt[re],ct=tt?`${ht}`:"";if(Ue==="tools"){const an=Array.isArray(Et)?Et.map(kt=>String(kt||"").trim()).filter(Boolean):[],qe=Array.isArray(at)?at.map(kt=>String(kt||"").trim()).filter(Boolean):[],Xe=Array.from(new Set([...Da,...an,...qe])).sort();return s.jsxs("div",{className:"launch_field_wide",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsx(b_,{options:Xe,value:an,disabled:w,placeholder:"(no tools selected)",onChange:kt=>Yn(re,kt)})]},re)}if(Ue==="provider"||Ue==="provider_text"){const an=typeof Et=="string"?String(Et):"";return s.jsxs("div",{className:Z||"launch_field",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsxs("select",{value:an,onChange:qe=>Yn(re,qe.target.value),disabled:w,children:[s.jsx("option",{value:"",children:ct||"(select)"}),xa.map(qe=>s.jsx("option",{value:qe,children:qe},qe))]})]},re)}if(Ue==="model"||Ue==="model_text"){const an=typeof Et=="string"?String(Et):"",qe=String((Yt==null?void 0:Yt.provider)||"").trim(),Xe=qe?Ne[qe]:void 0,kt=Xe&&Array.isArray(Xe.models)?Xe.models.map(Jt=>String(Jt||"").trim()).filter(Boolean):[];return s.jsxs("div",{className:Z||"launch_field",children:[s.jsx("label",{className:"launch_label",children:Ce}),kt.length?s.jsxs("select",{value:an,onChange:Jt=>Yn(re,Jt.target.value),disabled:w,children:[s.jsx("option",{value:"",children:ct||"(select)"}),kt.map(Jt=>s.jsx("option",{value:Jt,children:Jt},Jt))]}):s.jsx("input",{className:"mono",value:an,onChange:Jt=>Yn(re,Jt.target.value),placeholder:ct||"model id",disabled:w})]},re)}if(Ue==="boolean"){const an=typeof Et=="boolean"?Et?"true":"false":"";return s.jsxs("div",{className:Z||"launch_field",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsxs("select",{value:an,onChange:qe=>{const Xe=String(qe.target.value||"").trim();Xe?Yn(re,Xe==="true"):Yn(re,void 0)},disabled:w,children:[s.jsx("option",{value:"",children:ct||"(default)"}),s.jsx("option",{value:"true",children:"Yes"}),s.jsx("option",{value:"false",children:"No"})]})]},re)}if(Ue==="number"){const an=typeof Et=="number"&&Number.isFinite(Et)?String(Et):"";return s.jsxs("div",{className:Z||"launch_field",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsx("input",{type:"number",value:an,onChange:qe=>{const Xe=String(qe.target.value||"").trim();if(!Xe){Yn(re,void 0);return}const kt=Number(Xe);Number.isFinite(kt)&&Yn(re,kt)},placeholder:ct,disabled:w})]},re)}if(Ue==="array"){const an=Array.isArray(Et)?Et.map(qe=>String(qe||"").trim()).filter(Boolean).join(`
138
- `):"";return s.jsxs("div",{className:"launch_field_wide",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsx("textarea",{className:"mono",value:an,onChange:qe=>{const Xe=String(qe.target.value||"").split(/\r?\n/g).map(kt=>String(kt||"").trim()).filter(Boolean);Yn(re,Xe.length?Xe:void 0)},placeholder:ct||"(one item per line)",rows:2,disabled:w})]},re)}if(ya(Ue)){const an=typeof qt[re]=="string"?qt[re]:"",qe=String(rn[re]||"").trim();return s.jsxs("div",{className:"launch_field_wide",children:[s.jsxs("label",{className:"launch_label",children:[Ce," ",s.jsx("span",{className:"launch_label_type",children:Ue})]}),s.jsx("textarea",{className:"mono",value:an,onChange:Xe=>{const kt=String(Xe.target.value??"");On(Mt=>({...Mt,[re]:kt}));const Jt=kt.trim();if(!Jt){un(Mt=>{const Jn={...Mt};return delete Jn[re],Jn}),Yn(re,void 0);return}try{const Mt=JSON.parse(Jt);un(Jn=>{const js={...Jn};return delete js[re],js}),Yn(re,Mt)}catch(Mt){un(Jn=>({...Jn,[re]:String((Mt==null?void 0:Mt.message)||Mt||"Invalid JSON")}))}},placeholder:ct||"{...}",rows:3,disabled:w}),qe?s.jsx("div",{className:"launch_field_error",children:qe}):null]},re)}const wt=typeof Et=="string"?String(Et):"";return re==="prompt"||re==="system"?s.jsxs("div",{className:"launch_field_wide",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsx("textarea",{className:"mono",value:wt,onChange:an=>Yn(re,an.target.value),placeholder:ct||(re==="prompt"?"What should the agent do?":"System instructions (optional)"),rows:3,disabled:w})]},re):s.jsxs("div",{className:Z||"launch_field",children:[s.jsx("label",{className:"launch_label",children:Ce}),s.jsx("input",{className:"mono",value:wt,onChange:an=>Yn(re,an.target.value),placeholder:ct,disabled:w})]},re)};return N.sort((J,Z)=>{const re={system:0,prompt:1,tools:2};return(re[String(J.id||"")]??10)-(re[String(Z.id||"")]??10)}),s.jsxs(s.Fragment,{children:[N.map(J=>z(J)),I.length>0?s.jsx("div",{className:"launch_grid",children:I.map(J=>z(J,"launch_grid_cell"))}):null]})})()}):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:ic,onChange:w=>Yn("prompt",w.target.value),placeholder:"What do you want the workflow/agent to do?",rows:3,disabled:ve||we})]}),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:Wo,onChange:w=>Yn("provider",w.target.value),placeholder:"lmstudio / ollama / openai / ...",disabled:ve||we})]})}),s.jsx("div",{className:"col",children:s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Model (common)"}),s.jsx("input",{className:"mono",value:oc,onChange:w=>Yn("model",w.target.value),placeholder:"qwen/qwen3-next-80b / gpt-4.1 / ...",disabled:ve||we})]})})]})]}),s.jsxs("details",{style:{marginTop:"10px"},children:[s.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Workspace"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Controls what the agent can access via filesystem tools."}),s.jsxs("div",{className:"launch_grid",style:{marginTop:"8px"},children:[s.jsxs("div",{className:"launch_grid_cell",style:{gridColumn:"1 / -1"},children:[s.jsx("label",{className:"launch_label",children:"Workspace Root"}),s.jsx("input",{className:"mono",value:jl,onChange:w=>Yn("workspace_root",w.target.value),placeholder:"/path/to/workspace",disabled:ve||we}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Empty = gateway default (isolated per-run workspace)"})]}),s.jsxs("div",{className:"launch_grid_cell",children:[s.jsx("label",{className:"launch_label",children:"Access Mode"}),s.jsxs("select",{className:"mono",value:(kl||"workspace_only").trim()||"workspace_only",onChange:w=>Yn("workspace_access_mode",w.target.value),disabled:ve||we,children:[s.jsx("option",{value:"workspace_only",children:"workspace_only"}),s.jsx("option",{value:"workspace_or_allowed",children:"workspace_or_allowed"}),s.jsx("option",{value:"all_except_ignored",children:"all_except_ignored"})]}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"workspace_only: absolute paths must stay under root. workspace_or_allowed: allow additional roots."})]})]}),(kl||"").trim()==="workspace_or_allowed"?s.jsxs("div",{className:"field",style:{marginTop:"8px"},children:[s.jsx("label",{className:"launch_label",children:"Allowed Paths"}),s.jsx("textarea",{className:"mono",rows:3,value:ac,onChange:w=>Yn("workspace_allowed_paths",w.target.value),placeholder:`/path/to/project
139
- /path/to/workspace`,disabled:ve||we,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Newline-separated directories (absolute or relative to workspace_root)"})]}):null,s.jsxs("div",{className:"field",style:{marginTop:"8px"},children:[s.jsx("label",{className:"launch_label",children:"Ignored Paths"}),s.jsx("textarea",{className:"mono",rows:3,value:Vi,onChange:w=>Yn("workspace_ignored_paths",w.target.value),placeholder:`node_modules
140
- runtime
141
- secret`,disabled:ve||we,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off"}),s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Newline-separated paths to block (absolute or relative to workspace_root)"})]})]}),s.jsx("div",{className:"section_divider"}),s.jsx("div",{className:"section_title",children:"Schedule"}),cn?s.jsxs("div",{className:"observe_context_card error",style:{marginTop:"6px"},children:[s.jsx("span",{className:"chip mono danger",children:"error"}),s.jsx("span",{className:"mono",children:cn})]}):null,s.jsxs("div",{className:"sched_grid",children:[s.jsxs("div",{className:"sched_cell",children:[s.jsx("label",{className:"launch_label",children:"Start"}),s.jsxs("div",{className:"sched_radio_row",children:[s.jsxs("label",{className:"sched_radio",children:[s.jsx("input",{type:"radio",name:"schedule_start",checked:vn==="now",onChange:()=>jn("now")}),s.jsx("span",{children:"Now"})]}),s.jsxs("label",{className:"sched_radio",children:[s.jsx("input",{type:"radio",name:"schedule_start",checked:vn==="at",onChange:()=>jn("at")}),s.jsx("span",{children:"Scheduled"})]})]}),vn==="at"?s.jsx("input",{type:"datetime-local",value:ur,onChange:w=>Zt(w.target.value),style:{marginTop:"6px"}}):null]}),s.jsxs("div",{className:"sched_cell",children:[s.jsx("label",{className:"launch_label",children:"Cadence"}),s.jsxs("select",{value:Qn,onChange:w=>as(w.target.value),children:[s.jsx("option",{value:"once",children:"Run once"}),s.jsx("option",{value:"forever",children:"Repeat forever"}),s.jsx("option",{value:"count",children:"Repeat N times"}),s.jsx("option",{value:"until",children:"Repeat until date"})]})]}),Qn!=="once"?s.jsxs("div",{className:"sched_cell",children:[s.jsx("label",{className:"launch_label",children:"Every"}),s.jsxs("div",{className:"sched_inline",children:[s.jsx("input",{type:"number",min:1,value:String(Un),onChange:w=>de(Math.max(1,parseInt(w.target.value||"1",10)||1)),style:{width:"70px"}}),s.jsxs("select",{value:je,onChange:w=>ut(w.target.value),children:[s.jsx("option",{value:"minutes",children:"min"}),s.jsx("option",{value:"hours",children:"hours"}),s.jsx("option",{value:"days",children:"days"}),s.jsx("option",{value:"weeks",children:"weeks"}),s.jsx("option",{value:"months",children:"months"})]})]})]}):null,Qn==="count"?s.jsxs("div",{className:"sched_cell",children:[s.jsx("label",{className:"launch_label",children:"Total runs"}),s.jsx("input",{type:"number",min:1,value:String(it),onChange:w=>St(Math.max(1,parseInt(w.target.value||"1",10)||1)),style:{width:"100px"}})]}):null,Qn==="until"?s.jsxs("div",{className:"sched_cell",children:[s.jsx("label",{className:"launch_label",children:"End date"}),s.jsxs("div",{className:"sched_inline",children:[s.jsx("input",{type:"date",value:Rt,onChange:w=>Wt(w.target.value)}),s.jsx("input",{type:"time",value:Dt,onChange:w=>gn(w.target.value)})]})]}):null]}),s.jsxs("label",{className:"launch_checkbox",style:{marginTop:"8px"},children:[s.jsx("input",{type:"checkbox",checked:Ft,onChange:w=>yn(!!w.target.checked)}),s.jsxs("span",{children:["Share context across executions ",s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)",fontWeight:400},children:"(when disabled, each run gets its own isolated session)"})]})]}),s.jsx("div",{className:"section_divider"}),xt?s.jsxs("div",{className:"observe_context_card error",style:{marginBottom:"10px"},children:[s.jsx("span",{className:"chip mono danger",children:"error"}),s.jsx("span",{className:"mono",children:xt})]}):null,s.jsx("div",{className:"launch_actions_bar",children:s.jsx("button",{className:"launch_submit_btn",onClick:()=>void $l(),disabled:ve||we||oe||G||Se||!K||!j.trim()||!v.trim()||Yt===null,children:vn!=="now"||Qn!=="once"?"Launch (scheduled)":"Launch now"})})]})})}):null,al&&e==="backlog"?s.jsx(Ew,{gateway:Ct,gateway_connected:K,maintenance_ai_provider:r.maintenance_ai_provider,maintenance_ai_model:r.maintenance_ai_model,backlog_advisor_agent:r.backlog_advisor_agent,voice_session_id:B}):null,e==="inbox"?s.jsx(s1,{gateway:Ct,gateway_connected:K,enable_triage:d1,default_session_id:O||c||B,default_active_run_id:c,default_workflow_id:(xe==null?void 0:xe.workflow_id)??(vr==null?void 0:vr.workflow_id)??null}):null,al&&e==="processes"?s.jsx(n1,{gateway:Ct,gateway_connected:K}):null,e==="mindmap"?s.jsx("div",{className:"page mindmap_page",children:K?s.jsx("div",{className:"mindmap_full",children:s.jsx(ZN,{gateway:Ct,selected_run_id:c,selected_session_id:O||B})}):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.jsxs("div",{className:"page observe_page",children:[s.jsxs("div",{className:"observe_toolbar",children:[s.jsxs("div",{className:"observe_toolbar_row",children:[s.jsx(u1,{runs:Q,selected_run_id:c,workflow_label_by_id:eu,disabled:!K||M||oe||ve||we,loading:M,onSelect:w=>void ba(w)}),s.jsxs("button",{className:"btn btn_icon",onClick:()=>void Vo(),disabled:!K||M||oe,title:"Refresh runs",children:[s.jsx(Fn,{name:"refresh",size:14}),M?"…":"Refresh"]}),s.jsxs("button",{className:"btn btn_icon",onClick:ai,disabled:!c.trim()&&!Be,title:"Disconnect from run",children:[s.jsx(Fn,{name:"x",size:14}),"Disconnect"]}),s.jsx("span",{className:"observe_toolbar_sep"}),s.jsx("button",{className:"btn",onClick:()=>{if(uc==="pause"){fn("pause"),kr(""),gr(""),st(!0);return}Ua("resume")},disabled:su,children:ru}),Zs?s.jsx("button",{className:"btn primary",onClick:()=>void Wa(),disabled:!c.trim()||ve||we||ji||Si,children:"Run now"}):null,s.jsx("button",{className:"btn danger",onClick:()=>{fn("cancel"),kr(""),gr(""),st(!0)},disabled:!c.trim()||ve||we||ji,children:"Cancel"})]}),wi||Lr||Kt?s.jsxs("div",{className:"observe_toolbar_context",children:[wi?s.jsxs("div",{className:"observe_context_card info",children:[s.jsxs("div",{className:"observe_context_label",children:[s.jsx("span",{className:"chip mono info",children:Lr?Si?"suspended":"scheduled":"waiting"}),s.jsx("span",{className:"mono muted",children:Yr||"unknown"})]}),s.jsxs("div",{className:"observe_context_body",children:[bo?s.jsxs("span",{className:"mono",title:bo,children:[s.jsx("span",{className:"muted",children:"wait_key"}),": ",Ma(bo,46)]}):null,Yr==="event"&&Al?s.jsxs("span",{className:"mono",children:[s.jsx("span",{className:"muted",children:"event"}),": ",Al]}):null,Yr==="subworkflow"&&li?s.jsxs("span",{className:"mono",children:[s.jsx("span",{className:"muted",children:"child"}),": ",Ma(li,18)]}):null,Yr==="until"&&Qs?s.jsxs("span",{className:"mono",title:Qs,children:[s.jsx("span",{className:"muted",children:"until"}),": ",Ma(Qs,46)]}):null,Yr==="until"&&Qs?s.jsx("span",{className:"mono muted",children:(()=>{const w=ul(Qs),N=w!==null?new Date(w).toLocaleString():Qs,I=w!==null?Yg(w-Date.now()):"";return`Next at ${N}${I?` (in ${I})`:""}`})()}):null]}),Yr==="subworkflow"&&li?s.jsxs("div",{className:"observe_context_actions",children:[s.jsx("button",{className:"btn primary",onClick:async()=>{d(li),await _s(li)},disabled:ve,children:"Attach to child"}),h.trim()&&h.trim()!==c.trim()?s.jsx("button",{className:"btn",onClick:async()=>{d(h.trim()),await _s(h.trim())},disabled:ve,children:"Back to root"}):null]}):null]}):null,Lr?s.jsxs("div",{className:"observe_context_card muted",children:[s.jsxs("div",{className:"observe_context_label",children:[s.jsx("span",{className:"chip mono muted",children:"schedule"}),s.jsx("span",{className:"mono muted",children:So?`every ${ss}`:"once"})]}),s.jsxs("div",{className:"observe_context_body",children:[ss?s.jsxs("span",{className:"mono",children:[s.jsx("span",{className:"muted",children:"interval"}),": ",ss]}):null,s.jsxs("span",{className:"mono",children:[s.jsx("span",{className:"muted",children:"share ctx"}),": ",ka?"yes":"no"]}),typeof Gi=="number"?s.jsxs("span",{className:"mono",children:[s.jsx("span",{className:"muted",children:"repeats"}),": ",Gi]}):null]}),Bn!==null?s.jsxs("div",{className:"observe_context_budget",children:[s.jsxs("span",{className:"mono muted",children:[typeof ci=="number"&&typeof iu=="number"?`${ci.toLocaleString()} / ${iu.toLocaleString()}`:"",` • ${Math.round(Math.max(0,Math.min(1,Bn))*100)}%`]}),s.jsx("div",{className:"observe_budget_bar",children:s.jsx("div",{className:"observe_budget_fill",style:{width:`${Math.round(Math.max(0,Math.min(1,Bn))*100)}%`,background:Bn>=.9?"rgba(239, 68, 68, 0.9)":Bn>=.75?"rgba(245, 158, 11, 0.9)":"rgba(34, 197, 94, 0.9)"}})})]}):null,s.jsxs("div",{className:"observe_context_actions",children:[So?s.jsx("button",{className:"btn",onClick:()=>{Vt(ss||""),kn(!0),Nn(""),Gt(!0)},disabled:ve||Cn,children:"Edit schedule"}):null,So?s.jsx("button",{className:"btn",onClick:()=>{cs(""),jr(!0)},disabled:ve||Qr,children:"Compact context"}):null]})]}):null,Kt?s.jsxs("div",{className:"observe_context_card error",children:[s.jsx("span",{className:"chip mono danger",children:"error"}),s.jsx("span",{className:"mono",children:Kt})]}):null]}):null]}),s.jsxs("div",{className:"card panel_card card_scroll observe_viewer observe_viewer_full",children:[s.jsxs("div",{className:"tab_bar",style:{justifyContent:"space-between"},children:[s.jsxs("div",{style:{display:"flex",gap:"4px",alignItems:"center"},children:[s.jsx("button",{className:`tab mono ${xn==="ledger"?"active":""}`,onClick:()=>tn("ledger"),children:"Ledger"}),s.jsx("button",{className:`tab mono ${xn==="graph"?"active":""}`,onClick:()=>tn("graph"),children:"Graph"}),s.jsx("button",{className:`tab mono ${xn==="digest"?"active":""}`,onClick:()=>tn("digest"),children:"Digest"}),s.jsx("button",{className:`tab mono ${xn==="attachments"?"active":""}`,onClick:()=>tn("attachments"),children:"Attachments"}),s.jsx("button",{className:`tab mono ${xn==="chat"?"active":""}`,onClick:()=>tn("chat"),children:"Chat"})]}),xn==="ledger"&&(Jo.length>0||An==="cycles")?s.jsxs("div",{className:"tab_bar_controls",children:[s.jsxs("div",{className:"seg_toggle mono",children:[s.jsx("button",{className:`seg_btn ${An==="steps"?"active":""}`,onClick:()=>Mr("steps"),children:"Steps"}),s.jsx("button",{className:`seg_btn ${An==="cycles"?"active":""}`,onClick:()=>Mr("cycles"),children:"Cycles"})]}),An==="steps"?s.jsx("button",{className:`seg_action mono ${mn?"active":""}`,onClick:()=>or(w=>!w),title:mn?"Showing condensed view":"Showing all steps",children:mn?"Condensed":"All"}):s.jsxs("select",{className:"mono seg_select",value:Ni,onChange:w=>_i(String(w.target.value||"")),disabled:!hc.length,title:"Select run for cycles view",children:[hc.length?null:s.jsx("option",{value:"",children:"(no runs)"}),hc.map(w=>{const N=typeof mc[w]=="number"?Number(mc[w]):0,I=`${Ma(w,18)}${N?` • ${N} llm`:""}`;return s.jsx("option",{value:w,children:I},w)})]}),s.jsx("button",{className:"seg_action mono",disabled:!Ke.length&&!Ae.length,title:"Copy full ledger as JSONL",onClick:()=>{const I=[...Ke.map(J=>({run_id:c.trim()||J.record.run_id||"",cursor:J.cursor,record:J.record})),...Ae.map(J=>({run_id:J.run_id,cursor:J.cursor,record:J.record}))].map(J=>{var Le,Ce;const Z=String(((Le=J.record)==null?void 0:Le.ended_at)||((Ce=J.record)==null?void 0:Ce.started_at)||"").trim(),re=ul(Z);return{...J,_ms:re??0}});I.sort((J,Z)=>(J._ms||0)-(Z._ms||0));const z=(I.length>5e3?I.slice(I.length-5e3):I).map(({_ms:J,...Z})=>JSON.stringify(Z)).join(`
142
- `);H(z)},children:"Copy JSONL"})]}):null,xn==="graph"?s.jsxs("div",{className:"tab_bar_controls",children:[s.jsx("button",{className:`seg_action mono ${yi?"active":""}`,onClick:()=>nc(w=>!w),children:"Subflows"}),s.jsx("button",{className:`seg_action mono ${Oa?"active":""}`,onClick:()=>wl(w=>!w),children:"Path"}),ou.length?s.jsx("select",{className:"mono seg_select",value:po,onChange:w=>go(String(w.target.value||"")),disabled:!!ki.trim()||!j.trim()||xl,children:ou.map(w=>s.jsx("option",{value:w,children:w},w))}):null]}):null,xn==="digest"&&((Xi=(lu=Ht==null?void 0:Ht.overall)==null?void 0:lu.stats)!=null&&Xi.steps)?s.jsx("div",{className:"tab_bar_controls",children:s.jsx("button",{className:"seg_action mono",onClick:()=>{H(JSON.stringify(Ht,null,2))},disabled:!((Rl=(ko=Ht==null?void 0:Ht.overall)==null?void 0:ko.stats)!=null&&Rl.steps),children:"Copy JSON"})}):null]}),xn==="ledger"?s.jsx(s.Fragment,{children:An==="steps"?s.jsxs("div",{className:"log log_scroll",children:[Jo.map(w=>s.jsx(k1,{item:w,open:ot[w.id]===!0,on_toggle:()=>Tt(N=>({...N,[w.id]:!N[w.id]})),response_open:Lt[w.id]===!0,on_toggle_response:()=>Pt(N=>({...N,[w.id]:!N[w.id]})),node_index:sc,on_copy:N=>void H(N)},w.id)),Jo.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(sv,{items:pc.items,title:"Agent",subtitle:pc.node_id?`node_id: ${pc.node_id}`:"Live per-effect trace (LLM/tool calls).",subRunId:Ni,onOpenSubRun:Ni&&Ni!==c.trim()?()=>{d(Ni),_s(Ni)}:void 0})})}):null,xn==="graph"?s.jsxs(s.Fragment,{children:[vl?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:pn()})]}),s.jsx("div",{className:"body mono",children:vl})]}):null,xl?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:ki.trim()?ki.trim():po})]}),s.jsx("div",{className:"body mono",children:"Loading graph…"})]}):null,s.jsx("div",{className:"graph_panel",children:s.jsx(lw,{flow:_o,flow_by_id:fa,expand_subflows:yi,simplify:!0,prefer_vertical:!0,vertical_compact:.78,schedule_next_in:zl,schedule_interval:ss,node_last_ms:fc,active_node_id:rd,recent_nodes:rc,visited_nodes:Sl,highlight_path:Oa,now_ms:bl})})]}):null,xn==="digest"?s.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[s.jsxs("div",{className:"log_item",style:{borderColor:Ht!=null&&Ht.latest_summary?Ht!=null&&Ht.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:Ht!=null&&Ht.latest_summary?Ht!=null&&Ht.summary_outdated?"outdated":"current":"(none)"})]}),s.jsx("div",{className:"body",style:{whiteSpace:"pre-wrap"},children:Ht!=null&&Ht.latest_summary?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:[Ht.latest_summary.generated_at||Ht.latest_summary.ts||""," •"," ",Ht.latest_summary.provider||"provider?"," • ",Ht.latest_summary.model||"model?"]}),s.jsx(oo,{text:Ht.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 Ha(),disabled:!c.trim()||xi,children:xi?"Generating…":Ht!=null&&Ht.latest_summary?"Regenerate":"Generate"})}),Uo?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Uo}):null]}),Ht?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:[((Ll=(cu=Ht.overall)==null?void 0:cu.stats)==null?void 0:Ll.steps)??0," steps"]})]}),s.jsxs("div",{className:"body mono",children:[s.jsxs("div",{children:["tools: ",((Ga=(uu=Ht.overall)==null?void 0:uu.stats)==null?void 0:Ga.tool_calls)??0," calls • ",((Ya=(Ci=Ht.overall)==null?void 0:Ci.stats)==null?void 0:Ya.unique_tools)??0," unique"]}),s.jsxs("div",{children:["llm: ",((ea=(Xa=Ht.overall)==null?void 0:Xa.stats)==null?void 0:ea.llm_calls)??0," calls • missing ",((Na=(Sc=Ht.overall)==null?void 0:Sc.stats)==null?void 0:Na.llm_missing_responses)??0]}),s.jsxs("div",{children:["tokens: ",((jc=(du=Ht.overall)==null?void 0:du.stats)==null?void 0:jc.prompt_tokens)??0," / ",((Pl=(rr=Ht.overall)==null?void 0:rr.stats)==null?void 0:Pl.completion_tokens)??0," • total"," ",((Nc=(kc=Ht.overall)==null?void 0:kc.stats)==null?void 0:Nc.total_tokens)??0]}),s.jsxs("div",{children:["duration:"," ",typeof((Cc=(Il=Ht.overall)==null?void 0:Il.stats)==null?void 0:Cc.duration_s)=="number"?`${Math.round(Ht.overall.stats.duration_s)}s`:((sr=(ta=Ht.overall)==null?void 0:ta.stats)==null?void 0:sr.duration_s)??0," • ","errors: ",((Pr=(wr=Ht.overall)==null?void 0:wr.stats)==null?void 0:Pr.errors)??0]})]})]}),Array.isArray((Fl=Ht.overall)==null?void 0:Fl.tools_used)&&Ht.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:Ht.overall.tools_used.length})]}),s.jsx("div",{className:"body mono",children:Ht.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(x_,{value:Ht,max_string_len:240})})})]})]}):s.jsx("div",{className:"mono muted",style:{padding:"10px 12px"},children:"(no digest)"})]}):null,xn==="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 Ve(),disabled:!K||uo||!O,children:uo?"Refreshing…":"Refresh"}),O?s.jsxs("span",{className:"chip mono muted",title:O,children:["session ",Ma(O,18)]}):s.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No session id (pick a run)"}),Ls.trim()?s.jsxs("span",{className:"chip mono muted",title:Ls,children:["store ",Ma(Ls,18)]}):null]}),Ia?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:pn()})]}),s.jsx("div",{className:"body mono",children:Ia})]}):null,s.jsxs("div",{className:"log",style:{marginTop:"10px"},children:[!uo&&!Ia&&!gl.length?s.jsx("div",{className:"chat_empty_hint",children:"No session attachments."}):null,gl.map(w=>{const N=String((w==null?void 0:w.artifact_id)||"").trim();if(!N)return null;const I=w!=null&&w.tags&&typeof w.tags=="object"?w.tags:{},L=String((I==null?void 0:I.filename)||"").trim(),z=String((I==null?void 0:I.path)||"").trim(),J=String((I==null?void 0:I.sha256)||"").trim(),Z=String((w==null?void 0:w.content_type)||"").trim(),re=typeof(w==null?void 0:w.size_bytes)=="number"?Number(w.size_bytes):null,Le=z?`@${z}`:L||N;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:Le}),s.jsx("span",{className:"mono",children:Ma(N,18)})]}),s.jsxs("div",{className:"body",children:[J?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"sha256"}),": ",Ma(J,18)]}):null,Z?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"type"}),": ",Z]}):null,typeof re=="number"?s.jsxs("div",{className:"mono",children:[s.jsx("span",{className:"muted",children:"size"}),": ",re.toLocaleString()," bytes"]}):null]}),s.jsxs("div",{className:"actions",children:[s.jsx("button",{className:"btn",onClick:()=>void H(N),children:"Copy id"}),s.jsx("button",{className:"btn",onClick:()=>void dt(w),disabled:!Ls.trim(),children:"Preview"}),s.jsx("button",{className:"btn",onClick:()=>void Qe(w),disabled:!Ls.trim(),children:"Download"})]})]},N)}),s.jsxs(Ai,{open:tc,title:_l||"Attachment",onClose:()=>{mo(!1),ho(""),Ps(""),da(!1)},actions:s.jsx(s.Fragment,{children:s.jsx("button",{className:"btn",onClick:()=>{mo(!1),ho(""),Ps(""),da(!1)},children:"Close"})}),children:[yl?s.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:"Loading…"}):null,Oi?s.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:Oi}):null,s.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",maxHeight:"62vh",overflow:"auto",margin:0},children:ua||"(empty)"})]})]})]}):null,xn==="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(Xc,{value:Gs,options:Ee,placeholder:Ms?"Loading…":Ee.length?"Select a saved discussion…":"(none saved)",disabled:!c.trim()||!K||!Ee.length,loading:Ms,searchable:!0,clearable:!0,onChange:w=>{Vr(w),Tr("")}})}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:0},children:[s.jsx("button",{className:"btn",type:"button",disabled:!Gs.trim()||!K||Rs,onClick:()=>void Sa(),children:Rs?"Loading…":"Load"}),s.jsx("button",{className:"btn",type:"button",disabled:!Ln.length||As||Zr||Rs,onClick:()=>{Ur([]),_r(""),Er(""),es(""),yr(""),Hr("")},children:"Clear"}),s.jsx("button",{className:"btn",type:"button",onClick:()=>void Gr(),disabled:!c.trim()||!K||Ms,children:Ms?"Refreshing…":"Refresh"})]})]}),s.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:"8px",flexWrap:"wrap"},children:[s.jsx("button",{className:"btn",type:"button",disabled:!Ln.length||!c.trim()||!K||Zr||!ie,onClick:()=>void Fs(),title:ie?"":"No changes since last save",children:Zr?"Saving…":!ie&&ts?"Saved":"Save discussion"}),s.jsx("button",{className:"btn",type:"button",disabled:!Ln.length,onClick:()=>wo("download"),children:"Export Markdown"}),s.jsx("button",{className:"btn",type:"button",disabled:!Ln.length,onClick:()=>wo("copy"),children:mr==="copied"?"Copied":mr==="failed"?"Copy failed":"Copy Markdown"})]}),s.jsx("div",{className:"chat_hint",children:"Read-only. No tools. Grounded in the parent run + subflows ledger."}),ts?s.jsxs("div",{className:"chat_hint",children:["Last saved: ",sx(ts)]}):null,Ts?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:Ts}):null,Po?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:Po}):null,ca?s.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:ca}):null]}),Cr?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:pn()})]}),s.jsx("div",{className:"body mono",children:Cr})]}):null,zi?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:pn()})]}),s.jsx("div",{className:"body mono",children:zi})]}):null,s.jsx("div",{className:"chat_messages",style:{marginTop:"10px"},children:s.jsx(Hd,{messages:Ln,className:"log_scroll",messageProps:pe.tts_supported&&K&&$r.trim()?{onSpeakToggle:Xn,getSpeakState:Vn,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(Wd,{ref:Ar,value:Zn,onChange:_r,onSubmit:()=>void Yo(),placeholder:"Ask about this run…",disabled:!c.trim()||!K||As,busy:As||pe.voice_ptt_busy,busyLabel:pe.voice_ptt_busy?"Transcribing…":"Thinking…",rows:3,sendButtonClassName:"btn primary",actions:s.jsxs("button",{className:`btn btn_icon voice_btn${pe.voice_ptt_recording?" danger":""}`,type:"button",disabled:!K||!fe.trim()||!$r.trim()||As||pe.voice_ptt_busy||!pe.voice_ptt_supported,title:pe.voice_ptt_supported?pe.voice_ptt_busy?"Transcribing…":pe.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 N,I;if(!(!K||!fe.trim()||!$r.trim()||As||pe.voice_ptt_busy||!pe.voice_ptt_supported)){w.preventDefault();try{(I=(N=w.currentTarget)==null?void 0:N.setPointerCapture)==null||I.call(N,w.pointerId)}catch{}pe.start_voice_ptt_recording()}},onPointerUp:w=>{w.preventDefault(),pe.stop_voice_ptt_recording()},onPointerCancel:w=>{w.preventDefault(),pe.stop_voice_ptt_recording()},children:[s.jsx(Fn,{name:pe.voice_ptt_recording?"x":"mic",size:16}),pe.voice_ptt_busy?"Transcribing…":pe.voice_ptt_recording?"Recording…":"Voice"]})})})]}):null,s.jsxs("div",{className:`status_bar ${fr?"pulse":""}`,children:[s.jsx("strong",{children:"Run"}),":"," ",c.trim()?s.jsx("span",{className:"mono",children:qa||gc||"unknown"}):s.jsx("span",{className:"mono",children:"(none)"}),c.trim()&&xc&&zl?s.jsxs("span",{className:"mono muted",children:[" • next in ",zl]}):null,Lo?s.jsxs("span",{className:"mono muted",children:[" • ",Lo]}):null]})]})]}):null,dn?s.jsxs(Ai,{open:dn,title:"Edit schedule",onClose:()=>{Gt(!1),Vt(""),kn(!0),Nn(""),lr(!1)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{Gt(!1),Vt(""),kn(!0),Nn(""),lr(!1)},disabled:ve||Cn,children:"Back"}),s.jsx("button",{className:"btn primary",onClick:async()=>{await lc({interval:en,apply_immediately:rt})||(Gt(!1),Nn(""),lr(!1))},disabled:ve||Cn||!en.trim(),children:"Save"})]}),children:[Rn?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:pn()})]}),s.jsx("div",{className:"body mono",children:Rn})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Interval"}),s.jsx("input",{className:"mono",value:en,onChange:w=>Vt(String(w.target.value||"")),placeholder:"20m / 1h / 0.5s / 250ms",disabled:ve||Cn}),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:()=>Vt(w),disabled:ve||Cn,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:rt,onChange:w=>kn(!!w.target.checked),disabled:ve||Cn}),"Apply immediately (recompute next run from now if waiting)"]})]})]}):null,Fr?s.jsxs(Ai,{open:Fr,title:"Compact scheduled context",onClose:()=>{jr(!1),cs(""),Dr(!1)},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{jr(!1),cs(""),Dr(!1)},disabled:ve||Qr,children:"Cancel"}),s.jsx("button",{className:"btn primary",onClick:async()=>{await nu({preserve_recent:Or,compression_mode:$s,focus:Mi})||(jr(!1),cs(""),Dr(!1))},disabled:ve||Qr,children:Qr?"Compacting…":"Compact"})]}),children:[$n?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:pn()})]}),s.jsx("div",{className:"body mono",children:$n})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Preserve recent turns"}),s.jsx("input",{type:"number",min:1,value:String(Or),onChange:w=>Hs(Math.max(1,parseInt(w.target.value||"6",10)||6)),disabled:ve||Qr})]}),s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Mode"}),s.jsxs("select",{value:$s,onChange:w=>ao(w.target.value),disabled:ve||Qr,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:Mi,onChange:w=>ls(String(w.target.value||"")),placeholder:"e.g. important decisions, next steps…",disabled:ve||Qr})]})]}):null,pr?s.jsxs(Ai,{open:pr,title:jt==="cancel"?"Cancel run":Lr?"Suspend schedule":"Pause run",onClose:()=>{st(!1),kr(""),gr("")},actions:s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"btn",onClick:()=>{st(!1),kr(""),gr("")},disabled:ve||we,children:"Back"}),s.jsx("button",{className:`btn ${jt==="cancel"?"danger":"primary"}`,onClick:async()=>{gr("");const w=await Ua(jt,{reason:Br});if(w){gr(w);return}st(!1),kr(""),gr("")},disabled:ve||we,children:jt==="pause"?Lr?"Suspend":"Pause":"Cancel"})]}),children:[Nr?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:pn()})]}),s.jsx("div",{className:"body mono",children:Nr})]}):null,s.jsxs("div",{className:"field",children:[s.jsx("label",{children:"Reason (optional)"}),s.jsx("input",{className:"mono",value:Br,onChange:w=>kr(w.target.value),placeholder:"reason…"})]})]}):null,Ko?s.jsx("div",{className:"overlay",children:s.jsxs("div",{className:"modal",children:[s.jsxs("h2",{className:"mono",children:["Run is waiting (",String((_n==null?void 0:_n.reason)||"unknown"),")"]}),s.jsxs("p",{className:"mono",children:["wait_key: ",String((_n==null?void 0:_n.wait_key)||"")]}),ja.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:jm(ja)})]}),s.jsxs("div",{className:"actions",children:[s.jsx("button",{className:"btn primary",disabled:!_a||we,onClick:()=>Os(ja),children:"Execute via tool worker + resume"}),s.jsx("button",{className:"btn",disabled:we,onClick:()=>Xo({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((_n==null?void 0:_n.prompt)||"")||"(no prompt provided)"})]}),s.jsx(j1,{wait:_n,disabled:we,on_submit:w=>Xo({response:w})})]})]})}):null]})]})}function j1(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 k1(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"?"ok":g==="failed"?"danger":g==="waiting"?"warn":g==="running"?"info":"muted",v=rx(t.data),b=!!(v&&v.trim()),j=sx(t.ts);return s.jsxs("div",{className:`lc ${x}`,style:{"--lc-accent":h},children:[s.jsxs("div",{className:"lc_header",children:[s.jsx("span",{className:"lc_title",children:d}),s.jsxs("div",{className:"lc_header_right",children:[_?s.jsx("span",{className:`lc_status ${x}`,children:_}):null,s.jsx("span",{className:"lc_time",title:t.ts,children:j})]})]}),s.jsxs("div",{className:"lc_meta",children:[u?s.jsx("span",{className:"lc_chip",children:u}):null,t.effect_type?s.jsx("span",{className:"lc_chip",children:String(t.effect_type)}):null,t.cursor?s.jsxs("span",{className:"lc_chip",children:["#",t.cursor]}):null,t.run_id?s.jsx("span",{className:"lc_chip",children:Ma(String(t.run_id),10)}):null,t.kind!=="step"&&r?s.jsx("span",{className:"lc_chip",children:r}):null]}),t.preview?s.jsx("div",{className:"lc_preview",children:t.preview}):null,t.data?s.jsxs("div",{className:"lc_actions",children:[b?s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"lc_btn",onClick:e.on_toggle_response,children:e.response_open?"Fold Response":"Unfold Response"}),s.jsx("button",{className:"lc_btn",onClick:()=>e.on_copy(String(v||"")),children:"Copy Response"})]}):null,s.jsx("button",{className:"lc_btn",onClick:e.on_toggle,children:e.open?"Fold JSON":"Unfold JSON"}),s.jsx("button",{className:"lc_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:"lc_body",children:s.jsx(oo,{text:String(v||"")})}):null,e.open&&t.data?s.jsx("div",{className:"lc_body lc_body_json mono",children:s.jsx(x_,{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())})}Dx.createRoot(document.getElementById("root")).render(s.jsx($e.StrictMode,{children:s.jsx(S1,{})}));
143
- //# sourceMappingURL=index-BEoE9p38.js.map