@abstractframework/observer 0.1.11 → 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.
- package/README.md +28 -10
- package/bin/cli.js +113 -324
- package/dist/assets/index-D6ILADyf.css +1 -0
- package/dist/assets/index-DdaTQ1ps.js +140 -0
- package/dist/assets/index-DdaTQ1ps.js.map +1 -0
- package/dist/index.html +2 -2
- package/package.json +3 -1
- package/dist/assets/index-B15Wt8-t.js +0 -166
- package/dist/assets/index-B15Wt8-t.js.map +0 -1
- package/dist/assets/index-DXWoQByS.css +0 -1
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
var Uv=Object.defineProperty;var Wv=(e,t,r)=>t in e?Uv(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xd=(e,t,r)=>Wv(e,typeof t!="symbol"?t+"":t,r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function r(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function o(a){if(a.ep)return;a.ep=!0;const c=r(a);fetch(a.href,c)}})();function G_(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var kh={exports:{}},Jd={},Nh={exports:{}},kn={};/**
|
|
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 Cp;function qv(){if(Cp)return kn;Cp=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),_=Symbol.for("react.memo"),p=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(){}},S=Object.assign,j={};function $(C,X,se){this.props=C,this.context=X,this.refs=j,this.updater=se||b}$.prototype.isReactComponent={},$.prototype.setState=function(C,X){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,X,"setState")},$.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function T(){}T.prototype=$.prototype;function F(C,X,se){this.props=C,this.context=X,this.refs=j,this.updater=se||b}var B=F.prototype=new T;B.constructor=F,S(B,$.prototype),B.isPureReactComponent=!0;var I=Array.isArray,U=Object.prototype.hasOwnProperty,te={current:null},K={key:!0,ref:!0,__self:!0,__source:!0};function le(C,X,se){var ie,ye={},Le=null,Me=null;if(X!=null)for(ie in X.ref!==void 0&&(Me=X.ref),X.key!==void 0&&(Le=""+X.key),X)U.call(X,ie)&&!K.hasOwnProperty(ie)&&(ye[ie]=X[ie]);var De=arguments.length-2;if(De===1)ye.children=se;else if(1<De){for(var We=Array(De),ve=0;ve<De;ve++)We[ve]=arguments[ve+2];ye.children=We}if(C&&C.defaultProps)for(ie in De=C.defaultProps,De)ye[ie]===void 0&&(ye[ie]=De[ie]);return{$$typeof:e,type:C,key:Le,ref:Me,props:ye,_owner:te.current}}function ce(C,X){return{$$typeof:e,type:C.type,key:X,ref:C.ref,props:C.props,_owner:C._owner}}function pe(C){return typeof C=="object"&&C!==null&&C.$$typeof===e}function Re(C){var X={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(se){return X[se]})}var W=/\/+/g;function z(C,X){return typeof C=="object"&&C!==null&&C.key!=null?Re(""+C.key):X.toString(36)}function P(C,X,se,ie,ye){var Le=typeof C;(Le==="undefined"||Le==="boolean")&&(C=null);var Me=!1;if(C===null)Me=!0;else switch(Le){case"string":case"number":Me=!0;break;case"object":switch(C.$$typeof){case e:case t:Me=!0}}if(Me)return Me=C,ye=ye(Me),C=ie===""?"."+z(Me,0):ie,I(ye)?(se="",C!=null&&(se=C.replace(W,"$&/")+"/"),P(ye,X,se,"",function(ve){return ve})):ye!=null&&(pe(ye)&&(ye=ce(ye,se+(!ye.key||Me&&Me.key===ye.key?"":(""+ye.key).replace(W,"$&/")+"/")+C)),X.push(ye)),1;if(Me=0,ie=ie===""?".":ie+":",I(C))for(var De=0;De<C.length;De++){Le=C[De];var We=ie+z(Le,De);Me+=P(Le,X,se,We,ye)}else if(We=v(C),typeof We=="function")for(C=We.call(C),De=0;!(Le=C.next()).done;)Le=Le.value,We=ie+z(Le,De++),Me+=P(Le,X,se,We,ye);else if(Le==="object")throw X=String(C),Error("Objects are not valid as a React child (found: "+(X==="[object Object]"?"object with keys {"+Object.keys(C).join(", ")+"}":X)+"). If you meant to render a collection of children, use an array instead.");return Me}function G(C,X,se){if(C==null)return C;var ie=[],ye=0;return P(C,ie,"","",function(Le){return X.call(se,Le,ye++)}),ie}function H(C){if(C._status===-1){var X=C._result;X=X(),X.then(function(se){(C._status===0||C._status===-1)&&(C._status=1,C._result=se)},function(se){(C._status===0||C._status===-1)&&(C._status=2,C._result=se)}),C._status===-1&&(C._status=0,C._result=X)}if(C._status===1)return C._result.default;throw C._result}var re={current:null},N={transition:null},L={ReactCurrentDispatcher:re,ReactCurrentBatchConfig:N,ReactCurrentOwner:te};function q(){throw Error("act(...) is not supported in production builds of React.")}return kn.Children={map:G,forEach:function(C,X,se){G(C,function(){X.apply(this,arguments)},se)},count:function(C){var X=0;return G(C,function(){X++}),X},toArray:function(C){return G(C,function(X){return X})||[]},only:function(C){if(!pe(C))throw Error("React.Children.only expected to receive a single React element child.");return C}},kn.Component=$,kn.Fragment=r,kn.Profiler=a,kn.PureComponent=F,kn.StrictMode=o,kn.Suspense=m,kn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=L,kn.act=q,kn.cloneElement=function(C,X,se){if(C==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+C+".");var ie=S({},C.props),ye=C.key,Le=C.ref,Me=C._owner;if(X!=null){if(X.ref!==void 0&&(Le=X.ref,Me=te.current),X.key!==void 0&&(ye=""+X.key),C.type&&C.type.defaultProps)var De=C.type.defaultProps;for(We in X)U.call(X,We)&&!K.hasOwnProperty(We)&&(ie[We]=X[We]===void 0&&De!==void 0?De[We]:X[We])}var We=arguments.length-2;if(We===1)ie.children=se;else if(1<We){De=Array(We);for(var ve=0;ve<We;ve++)De[ve]=arguments[ve+2];ie.children=De}return{$$typeof:e,type:C.type,key:ye,ref:Le,props:ie,_owner:Me}},kn.createContext=function(C){return C={$$typeof:u,_currentValue:C,_currentValue2:C,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},C.Provider={$$typeof:c,_context:C},C.Consumer=C},kn.createElement=le,kn.createFactory=function(C){var X=le.bind(null,C);return X.type=C,X},kn.createRef=function(){return{current:null}},kn.forwardRef=function(C){return{$$typeof:d,render:C}},kn.isValidElement=pe,kn.lazy=function(C){return{$$typeof:p,_payload:{_status:-1,_result:C},_init:H}},kn.memo=function(C,X){return{$$typeof:_,type:C,compare:X===void 0?null:X}},kn.startTransition=function(C){var X=N.transition;N.transition={};try{C()}finally{N.transition=X}},kn.unstable_act=q,kn.useCallback=function(C,X){return re.current.useCallback(C,X)},kn.useContext=function(C){return re.current.useContext(C)},kn.useDebugValue=function(){},kn.useDeferredValue=function(C){return re.current.useDeferredValue(C)},kn.useEffect=function(C,X){return re.current.useEffect(C,X)},kn.useId=function(){return re.current.useId()},kn.useImperativeHandle=function(C,X,se){return re.current.useImperativeHandle(C,X,se)},kn.useInsertionEffect=function(C,X){return re.current.useInsertionEffect(C,X)},kn.useLayoutEffect=function(C,X){return re.current.useLayoutEffect(C,X)},kn.useMemo=function(C,X){return re.current.useMemo(C,X)},kn.useReducer=function(C,X,se){return re.current.useReducer(C,X,se)},kn.useRef=function(C){return re.current.useRef(C)},kn.useState=function(C){return re.current.useState(C)},kn.useSyncExternalStore=function(C,X,se){return re.current.useSyncExternalStore(C,X,se)},kn.useTransition=function(){return re.current.useTransition()},kn.version="18.3.1",kn}var Ep;function $f(){return Ep||(Ep=1,Nh.exports=qv()),Nh.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 Hv(){if($p)return Jd;$p=1;var e=$f(),t=Symbol.for("react.element"),r=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function u(d,m,_){var p,x={},v=null,b=null;_!==void 0&&(v=""+_),m.key!==void 0&&(v=""+m.key),m.ref!==void 0&&(b=m.ref);for(p in m)o.call(m,p)&&!c.hasOwnProperty(p)&&(x[p]=m[p]);if(d&&d.defaultProps)for(p in m=d.defaultProps,m)x[p]===void 0&&(x[p]=m[p]);return{$$typeof:t,type:d,key:v,ref:b,props:x,_owner:a.current}}return Jd.Fragment=r,Jd.jsx=u,Jd.jsxs=u,Jd}var Ap;function Vv(){return Ap||(Ap=1,kh.exports=Hv()),kh.exports}var n=Vv(),h=$f();const Ae=G_(h);var fm={},Ch={exports:{}},Pi={},Eh={exports:{}},$h={};/**
|
|
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 Mp;function Gv(){return Mp||(Mp=1,(function(e){function t(N,L){var q=N.length;N.push(L);e:for(;0<q;){var C=q-1>>>1,X=N[C];if(0<a(X,L))N[C]=L,N[q]=X,q=C;else break e}}function r(N){return N.length===0?null:N[0]}function o(N){if(N.length===0)return null;var L=N[0],q=N.pop();if(q!==L){N[0]=q;e:for(var C=0,X=N.length,se=X>>>1;C<se;){var ie=2*(C+1)-1,ye=N[ie],Le=ie+1,Me=N[Le];if(0>a(ye,q))Le<X&&0>a(Me,ye)?(N[C]=Me,N[Le]=q,C=Le):(N[C]=ye,N[ie]=q,C=ie);else if(Le<X&&0>a(Me,q))N[C]=Me,N[Le]=q,C=Le;else break e}}return L}function a(N,L){var q=N.sortIndex-L.sortIndex;return q!==0?q:N.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var m=[],_=[],p=1,x=null,v=3,b=!1,S=!1,j=!1,$=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function B(N){for(var L=r(_);L!==null;){if(L.callback===null)o(_);else if(L.startTime<=N)o(_),L.sortIndex=L.expirationTime,t(m,L);else break;L=r(_)}}function I(N){if(j=!1,B(N),!S)if(r(m)!==null)S=!0,H(U);else{var L=r(_);L!==null&&re(I,L.startTime-N)}}function U(N,L){S=!1,j&&(j=!1,T(le),le=-1),b=!0;var q=v;try{for(B(L),x=r(m);x!==null&&(!(x.expirationTime>L)||N&&!Re());){var C=x.callback;if(typeof C=="function"){x.callback=null,v=x.priorityLevel;var X=C(x.expirationTime<=L);L=e.unstable_now(),typeof X=="function"?x.callback=X:x===r(m)&&o(m),B(L)}else o(m);x=r(m)}if(x!==null)var se=!0;else{var ie=r(_);ie!==null&&re(I,ie.startTime-L),se=!1}return se}finally{x=null,v=q,b=!1}}var te=!1,K=null,le=-1,ce=5,pe=-1;function Re(){return!(e.unstable_now()-pe<ce)}function W(){if(K!==null){var N=e.unstable_now();pe=N;var L=!0;try{L=K(!0,N)}finally{L?z():(te=!1,K=null)}}else te=!1}var z;if(typeof F=="function")z=function(){F(W)};else if(typeof MessageChannel<"u"){var P=new MessageChannel,G=P.port2;P.port1.onmessage=W,z=function(){G.postMessage(null)}}else z=function(){$(W,0)};function H(N){K=N,te||(te=!0,z())}function re(N,L){le=$(function(){N(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(N){N.callback=null},e.unstable_continueExecution=function(){S||b||(S=!0,H(U))},e.unstable_forceFrameRate=function(N){0>N||125<N?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):ce=0<N?Math.floor(1e3/N):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return r(m)},e.unstable_next=function(N){switch(v){case 1:case 2:case 3:var L=3;break;default:L=v}var q=v;v=L;try{return N()}finally{v=q}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(N,L){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var q=v;v=N;try{return L()}finally{v=q}},e.unstable_scheduleCallback=function(N,L,q){var C=e.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0<q?C+q:C):q=C,N){case 1:var X=-1;break;case 2:X=250;break;case 5:X=1073741823;break;case 4:X=1e4;break;default:X=5e3}return X=q+X,N={id:p++,callback:L,priorityLevel:N,startTime:q,expirationTime:X,sortIndex:-1},q>C?(N.sortIndex=q,t(_,N),r(m)===null&&N===r(_)&&(j?(T(le),le=-1):j=!0,re(I,q-C))):(N.sortIndex=X,t(m,N),S||b||(S=!0,H(U))),N},e.unstable_shouldYield=Re,e.unstable_wrapCallback=function(N){var L=v;return function(){var q=v;v=L;try{return N.apply(this,arguments)}finally{v=q}}}})($h)),$h}var Tp;function Yv(){return Tp||(Tp=1,Eh.exports=Gv()),Eh.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 zp;function Xv(){if(zp)return Pi;zp=1;var e=$f(),t=Yv();function r(s){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+s,l=1;l<arguments.length;l++)i+="&args[]="+encodeURIComponent(arguments[l]);return"Minified React error #"+s+"; visit "+i+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,a={};function c(s,i){u(s,i),u(s+"Capture",i)}function u(s,i){for(a[s]=i,s=0;s<i.length;s++)o.add(i[s])}var d=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),m=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]*$/,p={},x={};function v(s){return m.call(x,s)?!0:m.call(p,s)?!1:_.test(s)?x[s]=!0:(p[s]=!0,!1)}function b(s,i,l,f){if(l!==null&&l.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return f?!1:l!==null?!l.acceptsBooleans:(s=s.toLowerCase().slice(0,5),s!=="data-"&&s!=="aria-");default:return!1}}function S(s,i,l,f){if(i===null||typeof i>"u"||b(s,i,l,f))return!0;if(f)return!1;if(l!==null)switch(l.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 j(s,i,l,f,g,w,M){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=f,this.attributeNamespace=g,this.mustUseProperty=l,this.propertyName=s,this.type=i,this.sanitizeURL=w,this.removeEmptyString=M}var $={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(s){$[s]=new j(s,0,!1,s,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(s){var i=s[0];$[i]=new j(i,1,!1,s[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(s){$[s]=new j(s,2,!1,s.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(s){$[s]=new j(s,2,!1,s,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(s){$[s]=new j(s,3,!1,s.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(s){$[s]=new j(s,3,!0,s,null,!1,!1)}),["capture","download"].forEach(function(s){$[s]=new j(s,4,!1,s,null,!1,!1)}),["cols","rows","size","span"].forEach(function(s){$[s]=new j(s,6,!1,s,null,!1,!1)}),["rowSpan","start"].forEach(function(s){$[s]=new j(s,5,!1,s.toLowerCase(),null,!1,!1)});var T=/[\-:]([a-z])/g;function F(s){return s[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(s){var i=s.replace(T,F);$[i]=new j(i,1,!1,s,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(s){var i=s.replace(T,F);$[i]=new j(i,1,!1,s,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(s){var i=s.replace(T,F);$[i]=new j(i,1,!1,s,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(s){$[s]=new j(s,1,!1,s.toLowerCase(),null,!1,!1)}),$.xlinkHref=new j("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(s){$[s]=new j(s,1,!1,s.toLowerCase(),null,!0,!0)});function B(s,i,l,f){var g=$.hasOwnProperty(i)?$[i]:null;(g!==null?g.type!==0:f||!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(S(i,l,g,f)&&(l=null),f||g===null?v(i)&&(l===null?s.removeAttribute(i):s.setAttribute(i,""+l)):g.mustUseProperty?s[g.propertyName]=l===null?g.type===3?!1:"":l:(i=g.attributeName,f=g.attributeNamespace,l===null?s.removeAttribute(i):(g=g.type,l=g===3||g===4&&l===!0?"":""+l,f?s.setAttributeNS(f,i,l):s.setAttribute(i,l))))}var I=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,U=Symbol.for("react.element"),te=Symbol.for("react.portal"),K=Symbol.for("react.fragment"),le=Symbol.for("react.strict_mode"),ce=Symbol.for("react.profiler"),pe=Symbol.for("react.provider"),Re=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),P=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),re=Symbol.for("react.offscreen"),N=Symbol.iterator;function L(s){return s===null||typeof s!="object"?null:(s=N&&s[N]||s["@@iterator"],typeof s=="function"?s:null)}var q=Object.assign,C;function X(s){if(C===void 0)try{throw Error()}catch(l){var i=l.stack.trim().match(/\n( *(at )?)/);C=i&&i[1]||""}return`
|
|
34
|
-
`+C+s}var se=!1;function ie(s,i){if(!s||se)return"";se=!0;var l=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(Se){var f=Se}Reflect.construct(s,[],i)}else{try{i.call()}catch(Se){f=Se}s.call(i.prototype)}else{try{throw Error()}catch(Se){f=Se}s()}}catch(Se){if(Se&&f&&typeof Se.stack=="string"){for(var g=Se.stack.split(`
|
|
35
|
-
`),w=f.stack.split(`
|
|
36
|
-
`),M=g.length-1,Q=w.length-1;1<=M&&0<=Q&&g[M]!==w[Q];)Q--;for(;1<=M&&0<=Q;M--,Q--)if(g[M]!==w[Q]){if(M!==1||Q!==1)do if(M--,Q--,0>Q||g[M]!==w[Q]){var oe=`
|
|
37
|
-
`+g[M].replace(" at new "," at ");return s.displayName&&oe.includes("<anonymous>")&&(oe=oe.replace("<anonymous>",s.displayName)),oe}while(1<=M&&0<=Q);break}}}finally{se=!1,Error.prepareStackTrace=l}return(s=s?s.displayName||s.name:"")?X(s):""}function ye(s){switch(s.tag){case 5:return X(s.type);case 16:return X("Lazy");case 13:return X("Suspense");case 19:return X("SuspenseList");case 0:case 2:case 15:return s=ie(s.type,!1),s;case 11:return s=ie(s.type.render,!1),s;case 1:return s=ie(s.type,!0),s;default:return""}}function Le(s){if(s==null)return null;if(typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s;switch(s){case K:return"Fragment";case te:return"Portal";case ce:return"Profiler";case le:return"StrictMode";case z:return"Suspense";case P:return"SuspenseList"}if(typeof s=="object")switch(s.$$typeof){case Re:return(s.displayName||"Context")+".Consumer";case pe:return(s._context.displayName||"Context")+".Provider";case W:var i=s.render;return s=s.displayName,s||(s=i.displayName||i.name||"",s=s!==""?"ForwardRef("+s+")":"ForwardRef"),s;case G:return i=s.displayName||null,i!==null?i:Le(s.type)||"Memo";case H:i=s._payload,s=s._init;try{return Le(s(i))}catch{}}return null}function Me(s){var i=s.type;switch(s.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 s=i.render,s=s.displayName||s.name||"",i.displayName||(s!==""?"ForwardRef("+s+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Le(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 De(s){switch(typeof s){case"boolean":case"number":case"string":case"undefined":return s;case"object":return s;default:return""}}function We(s){var i=s.type;return(s=s.nodeName)&&s.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function ve(s){var i=We(s)?"checked":"value",l=Object.getOwnPropertyDescriptor(s.constructor.prototype,i),f=""+s[i];if(!s.hasOwnProperty(i)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var g=l.get,w=l.set;return Object.defineProperty(s,i,{configurable:!0,get:function(){return g.call(this)},set:function(M){f=""+M,w.call(this,M)}}),Object.defineProperty(s,i,{enumerable:l.enumerable}),{getValue:function(){return f},setValue:function(M){f=""+M},stopTracking:function(){s._valueTracker=null,delete s[i]}}}}function Pe(s){s._valueTracker||(s._valueTracker=ve(s))}function me(s){if(!s)return!1;var i=s._valueTracker;if(!i)return!0;var l=i.getValue(),f="";return s&&(f=We(s)?s.checked?"true":"false":s.value),s=f,s!==l?(i.setValue(s),!0):!1}function we(s){if(s=s||(typeof document<"u"?document:void 0),typeof s>"u")return null;try{return s.activeElement||s.body}catch{return s.body}}function Oe(s,i){var l=i.checked;return q({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:l??s._wrapperState.initialChecked})}function qe(s,i){var l=i.defaultValue==null?"":i.defaultValue,f=i.checked!=null?i.checked:i.defaultChecked;l=De(i.value!=null?i.value:l),s._wrapperState={initialChecked:f,initialValue:l,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function rt(s,i){i=i.checked,i!=null&&B(s,"checked",i,!1)}function ke(s,i){rt(s,i);var l=De(i.value),f=i.type;if(l!=null)f==="number"?(l===0&&s.value===""||s.value!=l)&&(s.value=""+l):s.value!==""+l&&(s.value=""+l);else if(f==="submit"||f==="reset"){s.removeAttribute("value");return}i.hasOwnProperty("value")?ot(s,i.type,l):i.hasOwnProperty("defaultValue")&&ot(s,i.type,De(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(s.defaultChecked=!!i.defaultChecked)}function Fe(s,i,l){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=""+s._wrapperState.initialValue,l||i===s.value||(s.value=i),s.defaultValue=i}l=s.name,l!==""&&(s.name=""),s.defaultChecked=!!s._wrapperState.initialChecked,l!==""&&(s.name=l)}function ot(s,i,l){(i!=="number"||we(s.ownerDocument)!==s)&&(l==null?s.defaultValue=""+s._wrapperState.initialValue:s.defaultValue!==""+l&&(s.defaultValue=""+l))}var Et=Array.isArray;function Lt(s,i,l,f){if(s=s.options,i){i={};for(var g=0;g<l.length;g++)i["$"+l[g]]=!0;for(l=0;l<s.length;l++)g=i.hasOwnProperty("$"+s[l].value),s[l].selected!==g&&(s[l].selected=g),g&&f&&(s[l].defaultSelected=!0)}else{for(l=""+De(l),i=null,g=0;g<s.length;g++){if(s[g].value===l){s[g].selected=!0,f&&(s[g].defaultSelected=!0);return}i!==null||s[g].disabled||(i=s[g])}i!==null&&(i.selected=!0)}}function ae(s,i){if(i.dangerouslySetInnerHTML!=null)throw Error(r(91));return q({},i,{value:void 0,defaultValue:void 0,children:""+s._wrapperState.initialValue})}function Kt(s,i){var l=i.value;if(l==null){if(l=i.children,i=i.defaultValue,l!=null){if(i!=null)throw Error(r(92));if(Et(l)){if(1<l.length)throw Error(r(93));l=l[0]}i=l}i==null&&(i=""),l=i}s._wrapperState={initialValue:De(l)}}function un(s,i){var l=De(i.value),f=De(i.defaultValue);l!=null&&(l=""+l,l!==s.value&&(s.value=l),i.defaultValue==null&&s.defaultValue!==l&&(s.defaultValue=l)),f!=null&&(s.defaultValue=""+f)}function gn(s){var i=s.textContent;i===s._wrapperState.initialValue&&i!==""&&i!==null&&(s.value=i)}function Ne(s){switch(s){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 de(s,i){return s==null||s==="http://www.w3.org/1999/xhtml"?Ne(i):s==="http://www.w3.org/2000/svg"&&i==="foreignObject"?"http://www.w3.org/1999/xhtml":s}var Ee,$t=(function(s){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(i,l,f,g){MSApp.execUnsafeLocalFunction(function(){return s(i,l,f,g)})}:s})(function(s,i){if(s.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in s)s.innerHTML=i;else{for(Ee=Ee||document.createElement("div"),Ee.innerHTML="<svg>"+i.valueOf().toString()+"</svg>",i=Ee.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;i.firstChild;)s.appendChild(i.firstChild)}});function bt(s,i){if(i){var l=s.firstChild;if(l&&l===s.lastChild&&l.nodeType===3){l.nodeValue=i;return}}s.textContent=i}var Xt={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},Dn=["Webkit","ms","Moz","O"];Object.keys(Xt).forEach(function(s){Dn.forEach(function(i){i=i+s.charAt(0).toUpperCase()+s.substring(1),Xt[i]=Xt[s]})});function ln(s,i,l){return i==null||typeof i=="boolean"||i===""?"":l||typeof i!="number"||i===0||Xt.hasOwnProperty(s)&&Xt[s]?(""+i).trim():i+"px"}function yn(s,i){s=s.style;for(var l in i)if(i.hasOwnProperty(l)){var f=l.indexOf("--")===0,g=ln(l,i[l],f);l==="float"&&(l="cssFloat"),f?s.setProperty(l,g):s[l]=g}}var Tn=q({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 xn(s,i){if(i){if(Tn[s]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(r(137,s));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 ir(s,i){if(s.indexOf("-")===-1)return typeof i.is=="string";switch(s){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 Qt=null;function Mr(s){return s=s.target||s.srcElement||window,s.correspondingUseElement&&(s=s.correspondingUseElement),s.nodeType===3?s.parentNode:s}var ps=null,Rn=null,he=null;function Ce(s){if(s=Al(s)){if(typeof ps!="function")throw Error(r(280));var i=s.stateNode;i&&(i=nu(i),ps(s.stateNode,s.type,i))}}function gt(s){Rn?he?he.push(s):he=[s]:Rn=s}function dt(){if(Rn){var s=Rn,i=he;if(he=Rn=null,Ce(s),i)for(s=0;s<i.length;s++)Ce(i[s])}}function kt(s,i){return s(i)}function Tt(){}var qt=!1;function Dt(s,i,l){if(qt)return s(i,l);qt=!0;try{return kt(s,i,l)}finally{qt=!1,(Rn!==null||he!==null)&&(Tt(),dt())}}function _n(s,i){var l=s.stateNode;if(l===null)return null;var f=nu(l);if(f===null)return null;l=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)||(s=s.type,f=!(s==="button"||s==="input"||s==="select"||s==="textarea")),s=!f;break e;default:s=!1}if(s)return null;if(l&&typeof l!="function")throw Error(r(231,i,typeof l));return l}var Ot=!1;if(d)try{var vn={};Object.defineProperty(vn,"passive",{get:function(){Ot=!0}}),window.addEventListener("test",vn,vn),window.removeEventListener("test",vn,vn)}catch{Ot=!1}function dn(s,i,l,f,g,w,M,Q,oe){var Se=Array.prototype.slice.call(arguments,3);try{i.apply(l,Se)}catch(Ve){this.onError(Ve)}}var nn=!1,on=null,Gt=!1,at=null,jn={onError:function(s){nn=!0,on=s}};function Bn(s,i,l,f,g,w,M,Q,oe){nn=!1,on=null,dn.apply(jn,arguments)}function Ln(s,i,l,f,g,w,M,Q,oe){if(Bn.apply(this,arguments),nn){if(nn){var Se=on;nn=!1,on=null}else throw Error(r(198));Gt||(Gt=!0,at=Se)}}function Un(s){var i=s,l=s;if(s.alternate)for(;i.return;)i=i.return;else{s=i;do i=s,(i.flags&4098)!==0&&(l=i.return),s=i.return;while(s)}return i.tag===3?l:null}function lr(s){if(s.tag===13){var i=s.memoizedState;if(i===null&&(s=s.alternate,s!==null&&(i=s.memoizedState)),i!==null)return i.dehydrated}return null}function dr(s){if(Un(s)!==s)throw Error(r(188))}function br(s){var i=s.alternate;if(!i){if(i=Un(s),i===null)throw Error(r(188));return i!==s?null:s}for(var l=s,f=i;;){var g=l.return;if(g===null)break;var w=g.alternate;if(w===null){if(f=g.return,f!==null){l=f;continue}break}if(g.child===w.child){for(w=g.child;w;){if(w===l)return dr(g),s;if(w===f)return dr(g),i;w=w.sibling}throw Error(r(188))}if(l.return!==f.return)l=g,f=w;else{for(var M=!1,Q=g.child;Q;){if(Q===l){M=!0,l=g,f=w;break}if(Q===f){M=!0,f=g,l=w;break}Q=Q.sibling}if(!M){for(Q=w.child;Q;){if(Q===l){M=!0,l=w,f=g;break}if(Q===f){M=!0,f=w,l=g;break}Q=Q.sibling}if(!M)throw Error(r(189))}}if(l.alternate!==f)throw Error(r(190))}if(l.tag!==3)throw Error(r(188));return l.stateNode.current===l?s:i}function rs(s){return s=br(s),s!==null?gs(s):null}function gs(s){if(s.tag===5||s.tag===6)return s;for(s=s.child;s!==null;){var i=gs(s);if(i!==null)return i;s=s.sibling}return null}var Ds=t.unstable_scheduleCallback,Ao=t.unstable_cancelCallback,co=t.unstable_shouldYield,ys=t.unstable_requestPaint,En=t.unstable_now,Fi=t.unstable_getCurrentPriorityLevel,Di=t.unstable_ImmediatePriority,Tr=t.unstable_UserBlockingPriority,er=t.unstable_NormalPriority,ct=t.unstable_LowPriority,Ct=t.unstable_IdlePriority,an=null,jr=null;function Es(s){if(jr&&typeof jr.onCommitFiberRoot=="function")try{jr.onCommitFiberRoot(an,s,void 0,(s.current.flags&128)===128)}catch{}}var zr=Math.clz32?Math.clz32:ss,Rr=Math.log,sa=Math.LN2;function ss(s){return s>>>=0,s===0?32:31-(Rr(s)/sa|0)|0}var fr=64,qr=4194304;function Jn(s){switch(s&-s){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 s&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return s&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return s}}function Te(s,i){var l=s.pendingLanes;if(l===0)return 0;var f=0,g=s.suspendedLanes,w=s.pingedLanes,M=l&268435455;if(M!==0){var Q=M&~g;Q!==0?f=Jn(Q):(w&=M,w!==0&&(f=Jn(w)))}else M=l&~g,M!==0?f=Jn(M):w!==0&&(f=Jn(w));if(f===0)return 0;if(i!==0&&i!==f&&(i&g)===0&&(g=f&-f,w=i&-i,g>=w||g===16&&(w&4194240)!==0))return i;if((f&4)!==0&&(f|=l&16),i=s.entangledLanes,i!==0)for(s=s.entanglements,i&=f;0<i;)l=31-zr(i),g=1<<l,f|=s[l],i&=~g;return f}function $s(s,i){switch(s){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 Xe(s,i){for(var l=s.suspendedLanes,f=s.pingedLanes,g=s.expirationTimes,w=s.pendingLanes;0<w;){var M=31-zr(w),Q=1<<M,oe=g[M];oe===-1?((Q&l)===0||(Q&f)!==0)&&(g[M]=$s(Q,i)):oe<=i&&(s.expiredLanes|=Q),w&=~Q}}function Pn(s){return s=s.pendingLanes&-1073741825,s!==0?s:s&1073741824?1073741824:0}function mr(){var s=fr;return fr<<=1,(fr&4194240)===0&&(fr=64),s}function Lr(s){for(var i=[],l=0;31>l;l++)i.push(s);return i}function Pr(s,i,l){s.pendingLanes|=i,i!==536870912&&(s.suspendedLanes=0,s.pingedLanes=0),s=s.eventTimes,i=31-zr(i),s[i]=l}function Or(s,i){var l=s.pendingLanes&~i;s.pendingLanes=i,s.suspendedLanes=0,s.pingedLanes=0,s.expiredLanes&=i,s.mutableReadLanes&=i,s.entangledLanes&=i,i=s.entanglements;var f=s.eventTimes;for(s=s.expirationTimes;0<l;){var g=31-zr(l),w=1<<g;i[g]=0,f[g]=-1,s[g]=-1,l&=~w}}function uo(s,i){var l=s.entangledLanes|=i;for(s=s.entanglements;l;){var f=31-zr(l),g=1<<f;g&i|s[f]&i&&(s[f]|=i),l&=~g}}var en=0;function is(s){return s&=-s,1<s?4<s?(s&268435455)!==0?16:536870912:4:1}var As,xi,hr,or,ni,Bs=!1,ri=[],Cn=null,Sr=null,xs=null,vs=new Map,si=new Map,ws=[],_r="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 ia(s,i){switch(s){case"focusin":case"focusout":Cn=null;break;case"dragenter":case"dragleave":Sr=null;break;case"mouseover":case"mouseout":xs=null;break;case"pointerover":case"pointerout":vs.delete(i.pointerId);break;case"gotpointercapture":case"lostpointercapture":si.delete(i.pointerId)}}function bs(s,i,l,f,g,w){return s===null||s.nativeEvent!==w?(s={blockedOn:i,domEventName:l,eventSystemFlags:f,nativeEvent:w,targetContainers:[g]},i!==null&&(i=Al(i),i!==null&&xi(i)),s):(s.eventSystemFlags|=f,i=s.targetContainers,g!==null&&i.indexOf(g)===-1&&i.push(g),s)}function vi(s,i,l,f,g){switch(i){case"focusin":return Cn=bs(Cn,s,i,l,f,g),!0;case"dragenter":return Sr=bs(Sr,s,i,l,f,g),!0;case"mouseover":return xs=bs(xs,s,i,l,f,g),!0;case"pointerover":var w=g.pointerId;return vs.set(w,bs(vs.get(w)||null,s,i,l,f,g)),!0;case"gotpointercapture":return w=g.pointerId,si.set(w,bs(si.get(w)||null,s,i,l,f,g)),!0}return!1}function wi(s){var i=Gs(s.target);if(i!==null){var l=Un(i);if(l!==null){if(i=l.tag,i===13){if(i=lr(l),i!==null){s.blockedOn=i,ni(s.priority,function(){hr(l)});return}}else if(i===3&&l.stateNode.current.memoizedState.isDehydrated){s.blockedOn=l.tag===3?l.stateNode.containerInfo:null;return}}}s.blockedOn=null}function bi(s){if(s.blockedOn!==null)return!1;for(var i=s.targetContainers;0<i.length;){var l=ue(s.domEventName,s.eventSystemFlags,i[0],s.nativeEvent);if(l===null){l=s.nativeEvent;var f=new l.constructor(l.type,l);Qt=f,l.target.dispatchEvent(f),Qt=null}else return i=Al(l),i!==null&&xi(i),s.blockedOn=l,!1;i.shift()}return!0}function Bi(s,i,l){bi(s)&&l.delete(i)}function fo(){Bs=!1,Cn!==null&&bi(Cn)&&(Cn=null),Sr!==null&&bi(Sr)&&(Sr=null),xs!==null&&bi(xs)&&(xs=null),vs.forEach(Bi),si.forEach(Bi)}function Us(s,i){s.blockedOn===i&&(s.blockedOn=null,Bs||(Bs=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,fo)))}function ji(s){function i(g){return Us(g,s)}if(0<ri.length){Us(ri[0],s);for(var l=1;l<ri.length;l++){var f=ri[l];f.blockedOn===s&&(f.blockedOn=null)}}for(Cn!==null&&Us(Cn,s),Sr!==null&&Us(Sr,s),xs!==null&&Us(xs,s),vs.forEach(i),si.forEach(i),l=0;l<ws.length;l++)f=ws[l],f.blockedOn===s&&(f.blockedOn=null);for(;0<ws.length&&(l=ws[0],l.blockedOn===null);)wi(l),l.blockedOn===null&&ws.shift()}var Hr=I.ReactCurrentBatchConfig,ii=!0;function mo(s,i,l,f){var g=en,w=Hr.transition;Hr.transition=null;try{en=1,js(s,i,l,f)}finally{en=g,Hr.transition=w}}function ho(s,i,l,f){var g=en,w=Hr.transition;Hr.transition=null;try{en=4,js(s,i,l,f)}finally{en=g,Hr.transition=w}}function js(s,i,l,f){if(ii){var g=ue(s,i,l,f);if(g===null)El(s,i,f,O,l),ia(s,f);else if(vi(g,s,i,l,f))f.stopPropagation();else if(ia(s,f),i&4&&-1<_r.indexOf(s)){for(;g!==null;){var w=Al(g);if(w!==null&&As(w),w=ue(s,i,l,f),w===null&&El(s,i,f,O,l),w===g)break;g=w}g!==null&&f.stopPropagation()}else El(s,i,f,null,l)}}var O=null;function ue(s,i,l,f){if(O=null,s=Mr(f),s=Gs(s),s!==null)if(i=Un(s),i===null)s=null;else if(l=i.tag,l===13){if(s=lr(i),s!==null)return s;s=null}else if(l===3){if(i.stateNode.current.memoizedState.isDehydrated)return i.tag===3?i.stateNode.containerInfo:null;s=null}else i!==s&&(s=null);return O=s,null}function ze(s){switch(s){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(Fi()){case Di:return 1;case Tr:return 4;case er:case ct:return 16;case Ct:return 536870912;default:return 16}default:return 16}}var Ie=null,Be=null,ut=null;function At(){if(ut)return ut;var s,i=Be,l=i.length,f,g="value"in Ie?Ie.value:Ie.textContent,w=g.length;for(s=0;s<l&&i[s]===g[s];s++);var M=l-s;for(f=1;f<=M&&i[l-f]===g[w-f];f++);return ut=g.slice(s,1<f?1-f:void 0)}function zt(s){var i=s.keyCode;return"charCode"in s?(s=s.charCode,s===0&&i===13&&(s=13)):s=i,s===10&&(s=13),32<=s||s===13?s:0}function Pt(){return!0}function rn(){return!1}function sn(s){function i(l,f,g,w,M){this._reactName=l,this._targetInst=g,this.type=f,this.nativeEvent=w,this.target=M,this.currentTarget=null;for(var Q in s)s.hasOwnProperty(Q)&&(l=s[Q],this[Q]=l?l(w):w[Q]);return this.isDefaultPrevented=(w.defaultPrevented!=null?w.defaultPrevented:w.returnValue===!1)?Pt:rn,this.isPropagationStopped=rn,this}return q(i.prototype,{preventDefault:function(){this.defaultPrevented=!0;var l=this.nativeEvent;l&&(l.preventDefault?l.preventDefault():typeof l.returnValue!="unknown"&&(l.returnValue=!1),this.isDefaultPrevented=Pt)},stopPropagation:function(){var l=this.nativeEvent;l&&(l.stopPropagation?l.stopPropagation():typeof l.cancelBubble!="unknown"&&(l.cancelBubble=!0),this.isPropagationStopped=Pt)},persist:function(){},isPersistent:Pt}),i}var ar={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(s){return s.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ft=sn(ar),wn=q({},ar,{view:0,detail:0}),pr=sn(wn),zn,os,Vr,_o=q({},wn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Si,button:0,buttons:0,relatedTarget:function(s){return s.relatedTarget===void 0?s.fromElement===s.srcElement?s.toElement:s.fromElement:s.relatedTarget},movementX:function(s){return"movementX"in s?s.movementX:(s!==Vr&&(Vr&&s.type==="mousemove"?(zn=s.screenX-Vr.screenX,os=s.screenY-Vr.screenY):os=zn=0,Vr=s),zn)},movementY:function(s){return"movementY"in s?s.movementY:os}}),$n=sn(_o),kr=q({},_o,{dataTransfer:0}),oc=sn(kr),hl=q({},wn,{relatedTarget:0}),za=sn(hl),oa=q({},ar,{animationName:0,elapsedTime:0,pseudoElement:0}),Yc=sn(oa),Ui=q({},ar,{clipboardData:function(s){return"clipboardData"in s?s.clipboardData:window.clipboardData}}),Xc=sn(Ui),aa=q({},ar,{data:0}),Mo=sn(aa),la={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Wi={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"},_l={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function To(s){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(s):(s=_l[s])?!!i[s]:!1}function Si(){return To}var qi=q({},wn,{key:function(s){if(s.key){var i=la[s.key]||s.key;if(i!=="Unidentified")return i}return s.type==="keypress"?(s=zt(s),s===13?"Enter":String.fromCharCode(s)):s.type==="keydown"||s.type==="keyup"?Wi[s.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Si,charCode:function(s){return s.type==="keypress"?zt(s):0},keyCode:function(s){return s.type==="keydown"||s.type==="keyup"?s.keyCode:0},which:function(s){return s.type==="keypress"?zt(s):s.type==="keydown"||s.type==="keyup"?s.keyCode:0}}),pl=sn(qi),gl=q({},_o,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),ca=sn(gl),Ra=q({},wn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Si}),ac=sn(Ra),yl=q({},ar,{propertyName:0,elapsedTime:0,pseudoElement:0}),La=sn(yl),Jc=q({},_o,{deltaX:function(s){return"deltaX"in s?s.deltaX:"wheelDeltaX"in s?-s.wheelDeltaX:0},deltaY:function(s){return"deltaY"in s?s.deltaY:"wheelDeltaY"in s?-s.wheelDeltaY:"wheelDelta"in s?-s.wheelDelta:0},deltaZ:0,deltaMode:0}),xl=sn(Jc),Kc=[9,13,27,32],vl=d&&"CompositionEvent"in window,ua=null;d&&"documentMode"in document&&(ua=document.documentMode);var zo=d&&"TextEvent"in window&&!ua,wl=d&&(!vl||ua&&8<ua&&11>=ua),da=" ",lc=!1;function fa(s,i){switch(s){case"keyup":return Kc.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function po(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var oi=!1;function Ro(s,i){switch(s){case"compositionend":return po(i);case"keypress":return i.which!==32?null:(lc=!0,da);case"textInput":return s=i.data,s===da&&lc?null:s;default:return null}}function Lo(s,i){if(oi)return s==="compositionend"||!vl&&fa(s,i)?(s=At(),ut=Be=Ie=null,oi=!1,s):null;switch(s){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 wl&&i.locale!=="ko"?null:i.data;default:return null}}var ma={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 Pa(s){var i=s&&s.nodeName&&s.nodeName.toLowerCase();return i==="input"?!!ma[s.type]:i==="textarea"}function Oa(s,i,l,f){gt(f),i=Ga(i,"onChange"),0<i.length&&(l=new ft("onChange","change",null,l,f),s.push({event:l,listeners:i}))}var ki=null,go=null;function ha(s){Ha(s,0)}function Hi(s){var i=Ml(s);if(me(i))return s}function Zc(s,i){if(s==="change")return i}var Ia=!1;if(d){var Po;if(d){var Fa="oninput"in document;if(!Fa){var An=document.createElement("div");An.setAttribute("oninput","return;"),Fa=typeof An.oninput=="function"}Po=Fa}else Po=!1;Ia=Po&&(!document.documentMode||9<document.documentMode)}function Nr(){ki&&(ki.detachEvent("onpropertychange",Cr),go=ki=null)}function Cr(s){if(s.propertyName==="value"&&Hi(go)){var i=[];Oa(i,go,s,Mr(s)),Dt(ha,i)}}function Vi(s,i,l){s==="focusin"?(Nr(),ki=i,go=l,ki.attachEvent("onpropertychange",Cr)):s==="focusout"&&Nr()}function bl(s){if(s==="selectionchange"||s==="keyup"||s==="keydown")return Hi(go)}function Da(s,i){if(s==="click")return Hi(i)}function _a(s,i){if(s==="input"||s==="change")return Hi(i)}function Ws(s,i){return s===i&&(s!==0||1/s===1/i)||s!==s&&i!==i}var tr=typeof Object.is=="function"?Object.is:Ws;function as(s,i){if(tr(s,i))return!0;if(typeof s!="object"||s===null||typeof i!="object"||i===null)return!1;var l=Object.keys(s),f=Object.keys(i);if(l.length!==f.length)return!1;for(f=0;f<l.length;f++){var g=l[f];if(!m.call(i,g)||!tr(s[g],i[g]))return!1}return!0}function yo(s){for(;s&&s.firstChild;)s=s.firstChild;return s}function nr(s,i){var l=yo(s);s=0;for(var f;l;){if(l.nodeType===3){if(f=s+l.textContent.length,s<=i&&f>=i)return{node:l,offset:i-s};s=f}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=yo(l)}}function xo(s,i){return s&&i?s===i?!0:s&&s.nodeType===3?!1:i&&i.nodeType===3?xo(s,i.parentNode):"contains"in s?s.contains(i):s.compareDocumentPosition?!!(s.compareDocumentPosition(i)&16):!1:!1}function ai(){for(var s=window,i=we();i instanceof s.HTMLIFrameElement;){try{var l=typeof i.contentWindow.location.href=="string"}catch{l=!1}if(l)s=i.contentWindow;else break;i=we(s.document)}return i}function Ms(s){var i=s&&s.nodeName&&s.nodeName.toLowerCase();return i&&(i==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||i==="textarea"||s.contentEditable==="true")}function vo(s){var i=ai(),l=s.focusedElem,f=s.selectionRange;if(i!==l&&l&&l.ownerDocument&&xo(l.ownerDocument.documentElement,l)){if(f!==null&&Ms(l)){if(i=f.start,s=f.end,s===void 0&&(s=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(s,l.value.length);else if(s=(i=l.ownerDocument||document)&&i.defaultView||window,s.getSelection){s=s.getSelection();var g=l.textContent.length,w=Math.min(f.start,g);f=f.end===void 0?w:Math.min(f.end,g),!s.extend&&w>f&&(g=f,f=w,w=g),g=nr(l,w);var M=nr(l,f);g&&M&&(s.rangeCount!==1||s.anchorNode!==g.node||s.anchorOffset!==g.offset||s.focusNode!==M.node||s.focusOffset!==M.offset)&&(i=i.createRange(),i.setStart(g.node,g.offset),s.removeAllRanges(),w>f?(s.addRange(i),s.extend(M.node,M.offset)):(i.setEnd(M.node,M.offset),s.addRange(i)))}}for(i=[],s=l;s=s.parentNode;)s.nodeType===1&&i.push({element:s,left:s.scrollLeft,top:s.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l<i.length;l++)s=i[l],s.element.scrollLeft=s.left,s.element.scrollTop=s.top}}var Gi=d&&"documentMode"in document&&11>=document.documentMode,li=null,Ni=null,Er=null,ci=!1;function Oo(s,i,l){var f=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;ci||li==null||li!==we(f)||(f=li,"selectionStart"in f&&Ms(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}),Er&&as(Er,f)||(Er=f,f=Ga(Ni,"onSelect"),0<f.length&&(i=new ft("onSelect","select",null,i,l),s.push({event:i,listeners:f}),i.target=li)))}function Ci(s,i){var l={};return l[s.toLowerCase()]=i.toLowerCase(),l["Webkit"+s]="webkit"+i,l["Moz"+s]="moz"+i,l}var qs={animationend:Ci("Animation","AnimationEnd"),animationiteration:Ci("Animation","AnimationIteration"),animationstart:Ci("Animation","AnimationStart"),transitionend:Ci("Transition","TransitionEnd")},Io={},Ba={};d&&(Ba=document.createElement("div").style,"AnimationEvent"in window||(delete qs.animationend.animation,delete qs.animationiteration.animation,delete qs.animationstart.animation),"TransitionEvent"in window||delete qs.transitionend.transition);function Ts(s){if(Io[s])return Io[s];if(!qs[s])return s;var i=qs[s],l;for(l in i)if(i.hasOwnProperty(l)&&l in Ba)return Io[s]=i[l];return s}var Yi=Ts("animationend"),zs=Ts("animationiteration"),Ua=Ts("animationstart"),Wa=Ts("transitionend"),jl=new Map,qa="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Xi(s,i){jl.set(s,i),c(i,[s])}for(var Fo=0;Fo<qa.length;Fo++){var Sl=qa[Fo],cc=Sl.toLowerCase(),Qc=Sl[0].toUpperCase()+Sl.slice(1);Xi(cc,"on"+Qc)}Xi(Yi,"onAnimationEnd"),Xi(zs,"onAnimationIteration"),Xi(Ua,"onAnimationStart"),Xi("dblclick","onDoubleClick"),Xi("focusin","onFocus"),Xi("focusout","onBlur"),Xi(Wa,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var pa="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(" "),eu=new Set("cancel close invalid load scroll toggle".split(" ").concat(pa));function kl(s,i,l){var f=s.type||"unknown-event";s.currentTarget=l,Ln(f,i,void 0,s),s.currentTarget=null}function Ha(s,i){i=(i&4)!==0;for(var l=0;l<s.length;l++){var f=s[l],g=f.event;f=f.listeners;e:{var w=void 0;if(i)for(var M=f.length-1;0<=M;M--){var Q=f[M],oe=Q.instance,Se=Q.currentTarget;if(Q=Q.listener,oe!==w&&g.isPropagationStopped())break e;kl(g,Q,Se),w=oe}else for(M=0;M<f.length;M++){if(Q=f[M],oe=Q.instance,Se=Q.currentTarget,Q=Q.listener,oe!==w&&g.isPropagationStopped())break e;kl(g,Q,Se),w=oe}}}if(Gt)throw s=at,Gt=!1,at=null,s}function Kn(s,i){var l=i[In];l===void 0&&(l=i[In]=new Set);var f=s+"__bubble";l.has(f)||(tu(i,s,2,!1),l.add(f))}function Nl(s,i,l){var f=0;i&&(f|=4),tu(l,s,f,i)}var Cl="_reactListening"+Math.random().toString(36).slice(2);function ga(s){if(!s[Cl]){s[Cl]=!0,o.forEach(function(l){l!=="selectionchange"&&(eu.has(l)||Nl(l,!1,s),Nl(l,!0,s))});var i=s.nodeType===9?s:s.ownerDocument;i===null||i[Cl]||(i[Cl]=!0,Nl("selectionchange",!1,i))}}function tu(s,i,l,f){switch(ze(i)){case 1:var g=mo;break;case 4:g=ho;break;default:g=js}l=g.bind(null,i,l,s),g=void 0,!Ot||i!=="touchstart"&&i!=="touchmove"&&i!=="wheel"||(g=!0),f?g!==void 0?s.addEventListener(i,l,{capture:!0,passive:g}):s.addEventListener(i,l,!0):g!==void 0?s.addEventListener(i,l,{passive:g}):s.addEventListener(i,l,!1)}function El(s,i,l,f,g){var w=f;if((i&1)===0&&(i&2)===0&&f!==null)e:for(;;){if(f===null)return;var M=f.tag;if(M===3||M===4){var Q=f.stateNode.containerInfo;if(Q===g||Q.nodeType===8&&Q.parentNode===g)break;if(M===4)for(M=f.return;M!==null;){var oe=M.tag;if((oe===3||oe===4)&&(oe=M.stateNode.containerInfo,oe===g||oe.nodeType===8&&oe.parentNode===g))return;M=M.return}for(;Q!==null;){if(M=Gs(Q),M===null)return;if(oe=M.tag,oe===5||oe===6){f=w=M;continue e}Q=Q.parentNode}}f=f.return}Dt(function(){var Se=w,Ve=Mr(l),Ke=[];e:{var He=jl.get(s);if(He!==void 0){var vt=ft,St=s;switch(s){case"keypress":if(zt(l)===0)break e;case"keydown":case"keyup":vt=pl;break;case"focusin":St="focus",vt=za;break;case"focusout":St="blur",vt=za;break;case"beforeblur":case"afterblur":vt=za;break;case"click":if(l.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":vt=$n;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":vt=oc;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":vt=ac;break;case Yi:case zs:case Ua:vt=Yc;break;case Wa:vt=La;break;case"scroll":vt=pr;break;case"wheel":vt=xl;break;case"copy":case"cut":case"paste":vt=Xc;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":vt=ca}var Nt=(i&4)!==0,Wr=!Nt&&s==="scroll",xe=Nt?He!==null?He+"Capture":null:He;Nt=[];for(var fe=Se,be;fe!==null;){be=fe;var tt=be.stateNode;if(be.tag===5&&tt!==null&&(be=tt,xe!==null&&(tt=_n(fe,xe),tt!=null&&Nt.push(Va(fe,tt,be)))),Wr)break;fe=fe.return}0<Nt.length&&(He=new vt(He,St,null,l,Ve),Ke.push({event:He,listeners:Nt}))}}if((i&7)===0){e:{if(He=s==="mouseover"||s==="pointerover",vt=s==="mouseout"||s==="pointerout",He&&l!==Qt&&(St=l.relatedTarget||l.fromElement)&&(Gs(St)||St[yr]))break e;if((vt||He)&&(He=Ve.window===Ve?Ve:(He=Ve.ownerDocument)?He.defaultView||He.parentWindow:window,vt?(St=l.relatedTarget||l.toElement,vt=Se,St=St?Gs(St):null,St!==null&&(Wr=Un(St),St!==Wr||St.tag!==5&&St.tag!==6)&&(St=null)):(vt=null,St=Se),vt!==St)){if(Nt=$n,tt="onMouseLeave",xe="onMouseEnter",fe="mouse",(s==="pointerout"||s==="pointerover")&&(Nt=ca,tt="onPointerLeave",xe="onPointerEnter",fe="pointer"),Wr=vt==null?He:Ml(vt),be=St==null?He:Ml(St),He=new Nt(tt,fe+"leave",vt,l,Ve),He.target=Wr,He.relatedTarget=be,tt=null,Gs(Ve)===Se&&(Nt=new Nt(xe,fe+"enter",St,l,Ve),Nt.target=be,Nt.relatedTarget=Wr,tt=Nt),Wr=tt,vt&&St)t:{for(Nt=vt,xe=St,fe=0,be=Nt;be;be=Ei(be))fe++;for(be=0,tt=xe;tt;tt=Ei(tt))be++;for(;0<fe-be;)Nt=Ei(Nt),fe--;for(;0<be-fe;)xe=Ei(xe),be--;for(;fe--;){if(Nt===xe||xe!==null&&Nt===xe.alternate)break t;Nt=Ei(Nt),xe=Ei(xe)}Nt=null}else Nt=null;vt!==null&&uc(Ke,He,vt,Nt,!1),St!==null&&Wr!==null&&uc(Ke,Wr,St,Nt,!0)}}e:{if(He=Se?Ml(Se):window,vt=He.nodeName&&He.nodeName.toLowerCase(),vt==="select"||vt==="input"&&He.type==="file")var Mt=Zc;else if(Pa(He))if(Ia)Mt=_a;else{Mt=bl;var Ut=Vi}else(vt=He.nodeName)&&vt.toLowerCase()==="input"&&(He.type==="checkbox"||He.type==="radio")&&(Mt=Da);if(Mt&&(Mt=Mt(s,Se))){Oa(Ke,Mt,l,Ve);break e}Ut&&Ut(s,He,Se),s==="focusout"&&(Ut=He._wrapperState)&&Ut.controlled&&He.type==="number"&&ot(He,"number",He.value)}switch(Ut=Se?Ml(Se):window,s){case"focusin":(Pa(Ut)||Ut.contentEditable==="true")&&(li=Ut,Ni=Se,Er=null);break;case"focusout":Er=Ni=li=null;break;case"mousedown":ci=!0;break;case"contextmenu":case"mouseup":case"dragend":ci=!1,Oo(Ke,l,Ve);break;case"selectionchange":if(Gi)break;case"keydown":case"keyup":Oo(Ke,l,Ve)}var Wt;if(vl)e:{switch(s){case"compositionstart":var Zt="onCompositionStart";break e;case"compositionend":Zt="onCompositionEnd";break e;case"compositionupdate":Zt="onCompositionUpdate";break e}Zt=void 0}else oi?fa(s,l)&&(Zt="onCompositionEnd"):s==="keydown"&&l.keyCode===229&&(Zt="onCompositionStart");Zt&&(wl&&l.locale!=="ko"&&(oi||Zt!=="onCompositionStart"?Zt==="onCompositionEnd"&&oi&&(Wt=At()):(Ie=Ve,Be="value"in Ie?Ie.value:Ie.textContent,oi=!0)),Ut=Ga(Se,Zt),0<Ut.length&&(Zt=new Mo(Zt,s,null,l,Ve),Ke.push({event:Zt,listeners:Ut}),Wt?Zt.data=Wt:(Wt=po(l),Wt!==null&&(Zt.data=Wt)))),(Wt=zo?Ro(s,l):Lo(s,l))&&(Se=Ga(Se,"onBeforeInput"),0<Se.length&&(Ve=new Mo("onBeforeInput","beforeinput",null,l,Ve),Ke.push({event:Ve,listeners:Se}),Ve.data=Wt))}Ha(Ke,i)})}function Va(s,i,l){return{instance:s,listener:i,currentTarget:l}}function Ga(s,i){for(var l=i+"Capture",f=[];s!==null;){var g=s,w=g.stateNode;g.tag===5&&w!==null&&(g=w,w=_n(s,l),w!=null&&f.unshift(Va(s,w,g)),w=_n(s,i),w!=null&&f.push(Va(s,w,g))),s=s.return}return f}function Ei(s){if(s===null)return null;do s=s.return;while(s&&s.tag!==5);return s||null}function uc(s,i,l,f,g){for(var w=i._reactName,M=[];l!==null&&l!==f;){var Q=l,oe=Q.alternate,Se=Q.stateNode;if(oe!==null&&oe===f)break;Q.tag===5&&Se!==null&&(Q=Se,g?(oe=_n(l,w),oe!=null&&M.unshift(Va(l,oe,Q))):g||(oe=_n(l,w),oe!=null&&M.push(Va(l,oe,Q)))),l=l.return}M.length!==0&&s.push({event:i,listeners:M})}var A=/\r\n?/g,Z=/\u0000|\uFFFD/g;function Y(s){return(typeof s=="string"?s:""+s).replace(A,`
|
|
38
|
-
`).replace(Z,"")}function ge(s,i,l){if(i=Y(i),Y(s)!==i&&l)throw Error(r(425))}function je(){}var st=null,Ge=null;function nt(s,i){return s==="textarea"||s==="noscript"||typeof i.children=="string"||typeof i.children=="number"||typeof i.dangerouslySetInnerHTML=="object"&&i.dangerouslySetInnerHTML!==null&&i.dangerouslySetInnerHTML.__html!=null}var lt=typeof setTimeout=="function"?setTimeout:void 0,pn=typeof clearTimeout=="function"?clearTimeout:void 0,Vn=typeof Promise=="function"?Promise:void 0,Zn=typeof queueMicrotask=="function"?queueMicrotask:typeof Vn<"u"?function(s){return Vn.resolve(null).then(s).catch(Sn)}:lt;function Sn(s){setTimeout(function(){throw s})}function ui(s,i){var l=i,f=0;do{var g=l.nextSibling;if(s.removeChild(l),g&&g.nodeType===8)if(l=g.data,l==="/$"){if(f===0){s.removeChild(g),ji(i);return}f--}else l!=="$"&&l!=="$?"&&l!=="$!"||f++;l=g}while(l);ji(i)}function Gr(s){for(;s!=null;s=s.nextSibling){var i=s.nodeType;if(i===1||i===3)break;if(i===8){if(i=s.data,i==="$"||i==="$!"||i==="$?")break;if(i==="/$")return null}}return s}function Hs(s){s=s.previousSibling;for(var i=0;s;){if(s.nodeType===8){var l=s.data;if(l==="$"||l==="$!"||l==="$?"){if(i===0)return s;i--}else l==="/$"&&i++}s=s.previousSibling}return null}var Vs=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Vs,Rs="__reactProps$"+Vs,yr="__reactContainer$"+Vs,In="__reactEvents$"+Vs,Ya="__reactListeners$"+Vs,$l="__reactHandles$"+Vs;function Gs(s){var i=s[Yr];if(i)return i;for(var l=s.parentNode;l;){if(i=l[yr]||l[Yr]){if(l=i.alternate,i.child!==null||l!==null&&l.child!==null)for(s=Hs(s);s!==null;){if(l=s[Yr])return l;s=Hs(s)}return i}s=l,l=s.parentNode}return null}function Al(s){return s=s[Yr]||s[yr],!s||s.tag!==5&&s.tag!==6&&s.tag!==13&&s.tag!==3?null:s}function Ml(s){if(s.tag===5||s.tag===6)return s.stateNode;throw Error(r(33))}function nu(s){return s[Rs]||null}var Do=[],$r=-1;function Ji(s){return{current:s}}function Qn(s){0>$r||(s.current=Do[$r],Do[$r]=null,$r--)}function rr(s,i){$r++,Do[$r]=s.current,s.current=i}var ya={},Ir=Ji(ya),Ys=Ji(!1),Ki=ya;function Xa(s,i){var l=s.type.contextTypes;if(!l)return ya;var f=s.stateNode;if(f&&f.__reactInternalMemoizedUnmaskedChildContext===i)return f.__reactInternalMemoizedMaskedChildContext;var g={},w;for(w in l)g[w]=i[w];return f&&(s=s.stateNode,s.__reactInternalMemoizedUnmaskedChildContext=i,s.__reactInternalMemoizedMaskedChildContext=g),g}function Xr(s){return s=s.childContextTypes,s!=null}function Tl(){Qn(Ys),Qn(Ir)}function ad(s,i,l){if(Ir.current!==ya)throw Error(r(168));rr(Ir,i),rr(Ys,l)}function ld(s,i,l){var f=s.stateNode;if(i=i.childContextTypes,typeof f.getChildContext!="function")return l;f=f.getChildContext();for(var g in f)if(!(g in i))throw Error(r(108,Me(s)||"Unknown",g));return q({},l,f)}function dc(s){return s=(s=s.stateNode)&&s.__reactInternalMemoizedMergedChildContext||ya,Ki=Ir.current,rr(Ir,s),rr(Ys,Ys.current),!0}function ru(s,i,l){var f=s.stateNode;if(!f)throw Error(r(169));l?(s=ld(s,i,Ki),f.__reactInternalMemoizedMergedChildContext=s,Qn(Ys),Qn(Ir),rr(Ir,s)):Qn(Ys),rr(Ys,l)}var wo=null,fc=!1,su=!1;function mc(s){wo===null?wo=[s]:wo.push(s)}function mh(s){fc=!0,mc(s)}function xa(){if(!su&&wo!==null){su=!0;var s=0,i=en;try{var l=wo;for(en=1;s<l.length;s++){var f=l[s];do f=f(!0);while(f!==null)}wo=null,fc=!1}catch(g){throw wo!==null&&(wo=wo.slice(s+1)),Ds(Di,xa),g}finally{en=i,su=!1}}return null}var zl=[],Rl=0,Ll=null,iu=0,Xs=[],$i=0,va=null,Bo=1,Zi="";function mt(s,i){zl[Rl++]=iu,zl[Rl++]=Ll,Ll=s,iu=i}function hc(s,i,l){Xs[$i++]=Bo,Xs[$i++]=Zi,Xs[$i++]=va,va=s;var f=Bo;s=Zi;var g=32-zr(f)-1;f&=~(1<<g),l+=1;var w=32-zr(i)+g;if(30<w){var M=g-g%5;w=(f&(1<<M)-1).toString(32),f>>=M,g-=M,Bo=1<<32-zr(i)+g|l<<g|f,Zi=w+s}else Bo=1<<w|l<<g|f,Zi=s}function ou(s){s.return!==null&&(mt(s,1),hc(s,1,0))}function ls(s){for(;s===Ll;)Ll=zl[--Rl],zl[Rl]=null,iu=zl[--Rl],zl[Rl]=null;for(;s===va;)va=Xs[--$i],Xs[$i]=null,Zi=Xs[--$i],Xs[$i]=null,Bo=Xs[--$i],Xs[$i]=null}var tn=null,Gn=null,sr=!1,Ai=null;function Ja(s,i){var l=ms(5,null,null,0);l.elementType="DELETED",l.stateNode=i,l.return=s,i=s.deletions,i===null?(s.deletions=[l],s.flags|=16):i.push(l)}function cd(s,i){switch(s.tag){case 5:var l=s.type;return i=i.nodeType!==1||l.toLowerCase()!==i.nodeName.toLowerCase()?null:i,i!==null?(s.stateNode=i,tn=s,Gn=Gr(i.firstChild),!0):!1;case 6:return i=s.pendingProps===""||i.nodeType!==3?null:i,i!==null?(s.stateNode=i,tn=s,Gn=null,!0):!1;case 13:return i=i.nodeType!==8?null:i,i!==null?(l=va!==null?{id:Bo,overflow:Zi}:null,s.memoizedState={dehydrated:i,treeContext:l,retryLane:1073741824},l=ms(18,null,null,0),l.stateNode=i,l.return=s,s.child=l,tn=s,Gn=null,!0):!1;default:return!1}}function Jt(s){return(s.mode&1)!==0&&(s.flags&128)===0}function ud(s){if(sr){var i=Gn;if(i){var l=i;if(!cd(s,i)){if(Jt(s))throw Error(r(418));i=Gr(l.nextSibling);var f=tn;i&&cd(s,i)?Ja(f,l):(s.flags=s.flags&-4097|2,sr=!1,tn=s)}}else{if(Jt(s))throw Error(r(418));s.flags=s.flags&-4097|2,sr=!1,tn=s}}}function au(s){for(s=s.return;s!==null&&s.tag!==5&&s.tag!==3&&s.tag!==13;)s=s.return;tn=s}function lu(s){if(s!==tn)return!1;if(!sr)return au(s),sr=!0,!1;var i;if((i=s.tag!==3)&&!(i=s.tag!==5)&&(i=s.type,i=i!=="head"&&i!=="body"&&!nt(s.type,s.memoizedProps)),i&&(i=Gn)){if(Jt(s))throw Rf(),Error(r(418));for(;i;)Ja(s,i),i=Gr(i.nextSibling)}if(au(s),s.tag===13){if(s=s.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(r(317));e:{for(s=s.nextSibling,i=0;s;){if(s.nodeType===8){var l=s.data;if(l==="/$"){if(i===0){Gn=Gr(s.nextSibling);break e}i--}else l!=="$"&&l!=="$!"&&l!=="$?"||i++}s=s.nextSibling}Gn=null}}else Gn=tn?Gr(s.stateNode.nextSibling):null;return!0}function Rf(){for(var s=Gn;s;)s=Gr(s.nextSibling)}function Ka(){Gn=tn=null,sr=!1}function dd(s){Ai===null?Ai=[s]:Ai.push(s)}var hh=I.ReactCurrentBatchConfig;function _c(s,i,l){if(s=l.ref,s!==null&&typeof s!="function"&&typeof s!="object"){if(l._owner){if(l=l._owner,l){if(l.tag!==1)throw Error(r(309));var f=l.stateNode}if(!f)throw Error(r(147,s));var g=f,w=""+s;return i!==null&&i.ref!==null&&typeof i.ref=="function"&&i.ref._stringRef===w?i.ref:(i=function(M){var Q=g.refs;M===null?delete Q[w]:Q[w]=M},i._stringRef=w,i)}if(typeof s!="string")throw Error(r(284));if(!l._owner)throw Error(r(290,s))}return s}function Pl(s,i){throw s=Object.prototype.toString.call(i),Error(r(31,s==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":s))}function Lf(s){var i=s._init;return i(s._payload)}function Js(s){function i(xe,fe){if(s){var be=xe.deletions;be===null?(xe.deletions=[fe],xe.flags|=16):be.push(fe)}}function l(xe,fe){if(!s)return null;for(;fe!==null;)i(xe,fe),fe=fe.sibling;return null}function f(xe,fe){for(xe=new Map;fe!==null;)fe.key!==null?xe.set(fe.key,fe):xe.set(fe.index,fe),fe=fe.sibling;return xe}function g(xe,fe){return xe=Gl(xe,fe),xe.index=0,xe.sibling=null,xe}function w(xe,fe,be){return xe.index=be,s?(be=xe.alternate,be!==null?(be=be.index,be<fe?(xe.flags|=2,fe):be):(xe.flags|=2,fe)):(xe.flags|=1048576,fe)}function M(xe){return s&&xe.alternate===null&&(xe.flags|=2),xe}function Q(xe,fe,be,tt){return fe===null||fe.tag!==6?(fe=xh(be,xe.mode,tt),fe.return=xe,fe):(fe=g(fe,be),fe.return=xe,fe)}function oe(xe,fe,be,tt){var Mt=be.type;return Mt===K?Ve(xe,fe,be.props.children,tt,be.key):fe!==null&&(fe.elementType===Mt||typeof Mt=="object"&&Mt!==null&&Mt.$$typeof===H&&Lf(Mt)===fe.type)?(tt=g(fe,be.props),tt.ref=_c(xe,fe,be),tt.return=xe,tt):(tt=sm(be.type,be.key,be.props,null,xe.mode,tt),tt.ref=_c(xe,fe,be),tt.return=xe,tt)}function Se(xe,fe,be,tt){return fe===null||fe.tag!==4||fe.stateNode.containerInfo!==be.containerInfo||fe.stateNode.implementation!==be.implementation?(fe=vh(be,xe.mode,tt),fe.return=xe,fe):(fe=g(fe,be.children||[]),fe.return=xe,fe)}function Ve(xe,fe,be,tt,Mt){return fe===null||fe.tag!==7?(fe=Lc(be,xe.mode,tt,Mt),fe.return=xe,fe):(fe=g(fe,be),fe.return=xe,fe)}function Ke(xe,fe,be){if(typeof fe=="string"&&fe!==""||typeof fe=="number")return fe=xh(""+fe,xe.mode,be),fe.return=xe,fe;if(typeof fe=="object"&&fe!==null){switch(fe.$$typeof){case U:return be=sm(fe.type,fe.key,fe.props,null,xe.mode,be),be.ref=_c(xe,null,fe),be.return=xe,be;case te:return fe=vh(fe,xe.mode,be),fe.return=xe,fe;case H:var tt=fe._init;return Ke(xe,tt(fe._payload),be)}if(Et(fe)||L(fe))return fe=Lc(fe,xe.mode,be,null),fe.return=xe,fe;Pl(xe,fe)}return null}function He(xe,fe,be,tt){var Mt=fe!==null?fe.key:null;if(typeof be=="string"&&be!==""||typeof be=="number")return Mt!==null?null:Q(xe,fe,""+be,tt);if(typeof be=="object"&&be!==null){switch(be.$$typeof){case U:return be.key===Mt?oe(xe,fe,be,tt):null;case te:return be.key===Mt?Se(xe,fe,be,tt):null;case H:return Mt=be._init,He(xe,fe,Mt(be._payload),tt)}if(Et(be)||L(be))return Mt!==null?null:Ve(xe,fe,be,tt,null);Pl(xe,be)}return null}function vt(xe,fe,be,tt,Mt){if(typeof tt=="string"&&tt!==""||typeof tt=="number")return xe=xe.get(be)||null,Q(fe,xe,""+tt,Mt);if(typeof tt=="object"&&tt!==null){switch(tt.$$typeof){case U:return xe=xe.get(tt.key===null?be:tt.key)||null,oe(fe,xe,tt,Mt);case te:return xe=xe.get(tt.key===null?be:tt.key)||null,Se(fe,xe,tt,Mt);case H:var Ut=tt._init;return vt(xe,fe,be,Ut(tt._payload),Mt)}if(Et(tt)||L(tt))return xe=xe.get(be)||null,Ve(fe,xe,tt,Mt,null);Pl(fe,tt)}return null}function St(xe,fe,be,tt){for(var Mt=null,Ut=null,Wt=fe,Zt=fe=0,Ns=null;Wt!==null&&Zt<be.length;Zt++){Wt.index>Zt?(Ns=Wt,Wt=null):Ns=Wt.sibling;var qn=He(xe,Wt,be[Zt],tt);if(qn===null){Wt===null&&(Wt=Ns);break}s&&Wt&&qn.alternate===null&&i(xe,Wt),fe=w(qn,fe,Zt),Ut===null?Mt=qn:Ut.sibling=qn,Ut=qn,Wt=Ns}if(Zt===be.length)return l(xe,Wt),sr&&mt(xe,Zt),Mt;if(Wt===null){for(;Zt<be.length;Zt++)Wt=Ke(xe,be[Zt],tt),Wt!==null&&(fe=w(Wt,fe,Zt),Ut===null?Mt=Wt:Ut.sibling=Wt,Ut=Wt);return sr&&mt(xe,Zt),Mt}for(Wt=f(xe,Wt);Zt<be.length;Zt++)Ns=vt(Wt,xe,Zt,be[Zt],tt),Ns!==null&&(s&&Ns.alternate!==null&&Wt.delete(Ns.key===null?Zt:Ns.key),fe=w(Ns,fe,Zt),Ut===null?Mt=Ns:Ut.sibling=Ns,Ut=Ns);return s&&Wt.forEach(function(Yl){return i(xe,Yl)}),sr&&mt(xe,Zt),Mt}function Nt(xe,fe,be,tt){var Mt=L(be);if(typeof Mt!="function")throw Error(r(150));if(be=Mt.call(be),be==null)throw Error(r(151));for(var Ut=Mt=null,Wt=fe,Zt=fe=0,Ns=null,qn=be.next();Wt!==null&&!qn.done;Zt++,qn=be.next()){Wt.index>Zt?(Ns=Wt,Wt=null):Ns=Wt.sibling;var Yl=He(xe,Wt,qn.value,tt);if(Yl===null){Wt===null&&(Wt=Ns);break}s&&Wt&&Yl.alternate===null&&i(xe,Wt),fe=w(Yl,fe,Zt),Ut===null?Mt=Yl:Ut.sibling=Yl,Ut=Yl,Wt=Ns}if(qn.done)return l(xe,Wt),sr&&mt(xe,Zt),Mt;if(Wt===null){for(;!qn.done;Zt++,qn=be.next())qn=Ke(xe,qn.value,tt),qn!==null&&(fe=w(qn,fe,Zt),Ut===null?Mt=qn:Ut.sibling=qn,Ut=qn);return sr&&mt(xe,Zt),Mt}for(Wt=f(xe,Wt);!qn.done;Zt++,qn=be.next())qn=vt(Wt,xe,Zt,qn.value,tt),qn!==null&&(s&&qn.alternate!==null&&Wt.delete(qn.key===null?Zt:qn.key),fe=w(qn,fe,Zt),Ut===null?Mt=qn:Ut.sibling=qn,Ut=qn);return s&&Wt.forEach(function(Bv){return i(xe,Bv)}),sr&&mt(xe,Zt),Mt}function Wr(xe,fe,be,tt){if(typeof be=="object"&&be!==null&&be.type===K&&be.key===null&&(be=be.props.children),typeof be=="object"&&be!==null){switch(be.$$typeof){case U:e:{for(var Mt=be.key,Ut=fe;Ut!==null;){if(Ut.key===Mt){if(Mt=be.type,Mt===K){if(Ut.tag===7){l(xe,Ut.sibling),fe=g(Ut,be.props.children),fe.return=xe,xe=fe;break e}}else if(Ut.elementType===Mt||typeof Mt=="object"&&Mt!==null&&Mt.$$typeof===H&&Lf(Mt)===Ut.type){l(xe,Ut.sibling),fe=g(Ut,be.props),fe.ref=_c(xe,Ut,be),fe.return=xe,xe=fe;break e}l(xe,Ut);break}else i(xe,Ut);Ut=Ut.sibling}be.type===K?(fe=Lc(be.props.children,xe.mode,tt,be.key),fe.return=xe,xe=fe):(tt=sm(be.type,be.key,be.props,null,xe.mode,tt),tt.ref=_c(xe,fe,be),tt.return=xe,xe=tt)}return M(xe);case te:e:{for(Ut=be.key;fe!==null;){if(fe.key===Ut)if(fe.tag===4&&fe.stateNode.containerInfo===be.containerInfo&&fe.stateNode.implementation===be.implementation){l(xe,fe.sibling),fe=g(fe,be.children||[]),fe.return=xe,xe=fe;break e}else{l(xe,fe);break}else i(xe,fe);fe=fe.sibling}fe=vh(be,xe.mode,tt),fe.return=xe,xe=fe}return M(xe);case H:return Ut=be._init,Wr(xe,fe,Ut(be._payload),tt)}if(Et(be))return St(xe,fe,be,tt);if(L(be))return Nt(xe,fe,be,tt);Pl(xe,be)}return typeof be=="string"&&be!==""||typeof be=="number"?(be=""+be,fe!==null&&fe.tag===6?(l(xe,fe.sibling),fe=g(fe,be),fe.return=xe,xe=fe):(l(xe,fe),fe=xh(be,xe.mode,tt),fe.return=xe,xe=fe),M(xe)):l(xe,fe)}return Wr}var Ol=Js(!0),Pf=Js(!1),cu=Ji(null),pc=null,wa=null,fd=null;function xr(){fd=wa=pc=null}function uu(s){var i=cu.current;Qn(cu),s._currentValue=i}function gc(s,i,l){for(;s!==null;){var f=s.alternate;if((s.childLanes&i)!==i?(s.childLanes|=i,f!==null&&(f.childLanes|=i)):f!==null&&(f.childLanes&i)!==i&&(f.childLanes|=i),s===l)break;s=s.return}}function cs(s,i){pc=s,fd=wa=null,s=s.dependencies,s!==null&&s.firstContext!==null&&((s.lanes&i)!==0&&(Os=!0),s.firstContext=null)}function Mi(s){var i=s._currentValue;if(fd!==s)if(s={context:s,memoizedValue:i,next:null},wa===null){if(pc===null)throw Error(r(308));wa=s,pc.dependencies={lanes:0,firstContext:s}}else wa=wa.next=s;return i}var bo=null;function md(s){bo===null?bo=[s]:bo.push(s)}function Of(s,i,l,f){var g=i.interleaved;return g===null?(l.next=l,md(i)):(l.next=g.next,g.next=l),i.interleaved=l,Uo(s,f)}function Uo(s,i){s.lanes|=i;var l=s.alternate;for(l!==null&&(l.lanes|=i),l=s,s=s.return;s!==null;)s.childLanes|=i,l=s.alternate,l!==null&&(l.childLanes|=i),l=s,s=s.return;return l.tag===3?l.stateNode:null}var Ks=!1;function Fr(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Za(s,i){s=s.updateQueue,i.updateQueue===s&&(i.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,effects:s.effects})}function Yn(s,i){return{eventTime:s,lane:i,tag:0,payload:null,callback:null,next:null}}function Wo(s,i,l){var f=s.updateQueue;if(f===null)return null;if(f=f.shared,(Mn&2)!==0){var g=f.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),f.pending=i,Uo(s,l)}return g=f.interleaved,g===null?(i.next=i,md(f)):(i.next=g.next,g.next=i),f.interleaved=i,Uo(s,l)}function yc(s,i,l){if(i=i.updateQueue,i!==null&&(i=i.shared,(l&4194240)!==0)){var f=i.lanes;f&=s.pendingLanes,l|=f,i.lanes=l,uo(s,l)}}function If(s,i){var l=s.updateQueue,f=s.alternate;if(f!==null&&(f=f.updateQueue,l===f)){var g=null,w=null;if(l=l.firstBaseUpdate,l!==null){do{var M={eventTime:l.eventTime,lane:l.lane,tag:l.tag,payload:l.payload,callback:l.callback,next:null};w===null?g=w=M:w=w.next=M,l=l.next}while(l!==null);w===null?g=w=i:w=w.next=i}else g=w=i;l={baseState:f.baseState,firstBaseUpdate:g,lastBaseUpdate:w,shared:f.shared,effects:f.effects},s.updateQueue=l;return}s=l.lastBaseUpdate,s===null?l.firstBaseUpdate=i:s.next=i,l.lastBaseUpdate=i}function du(s,i,l,f){var g=s.updateQueue;Ks=!1;var w=g.firstBaseUpdate,M=g.lastBaseUpdate,Q=g.shared.pending;if(Q!==null){g.shared.pending=null;var oe=Q,Se=oe.next;oe.next=null,M===null?w=Se:M.next=Se,M=oe;var Ve=s.alternate;Ve!==null&&(Ve=Ve.updateQueue,Q=Ve.lastBaseUpdate,Q!==M&&(Q===null?Ve.firstBaseUpdate=Se:Q.next=Se,Ve.lastBaseUpdate=oe))}if(w!==null){var Ke=g.baseState;M=0,Ve=Se=oe=null,Q=w;do{var He=Q.lane,vt=Q.eventTime;if((f&He)===He){Ve!==null&&(Ve=Ve.next={eventTime:vt,lane:0,tag:Q.tag,payload:Q.payload,callback:Q.callback,next:null});e:{var St=s,Nt=Q;switch(He=i,vt=l,Nt.tag){case 1:if(St=Nt.payload,typeof St=="function"){Ke=St.call(vt,Ke,He);break e}Ke=St;break e;case 3:St.flags=St.flags&-65537|128;case 0:if(St=Nt.payload,He=typeof St=="function"?St.call(vt,Ke,He):St,He==null)break e;Ke=q({},Ke,He);break e;case 2:Ks=!0}}Q.callback!==null&&Q.lane!==0&&(s.flags|=64,He=g.effects,He===null?g.effects=[Q]:He.push(Q))}else vt={eventTime:vt,lane:He,tag:Q.tag,payload:Q.payload,callback:Q.callback,next:null},Ve===null?(Se=Ve=vt,oe=Ke):Ve=Ve.next=vt,M|=He;if(Q=Q.next,Q===null){if(Q=g.shared.pending,Q===null)break;He=Q,Q=He.next,He.next=null,g.lastBaseUpdate=He,g.shared.pending=null}}while(!0);if(Ve===null&&(oe=Ke),g.baseState=oe,g.firstBaseUpdate=Se,g.lastBaseUpdate=Ve,i=g.shared.interleaved,i!==null){g=i;do M|=g.lane,g=g.next;while(g!==i)}else w===null&&(g.shared.lanes=0);R|=M,s.lanes=M,s.memoizedState=Ke}}function hd(s,i,l){if(s=i.effects,i.effects=null,s!==null)for(i=0;i<s.length;i++){var f=s[i],g=f.callback;if(g!==null){if(f.callback=null,f=l,typeof g!="function")throw Error(r(191,g));g.call(f)}}}var xc={},Qi=Ji(xc),vc=Ji(xc),Wn=Ji(xc);function cr(s){if(s===xc)throw Error(r(174));return s}function Ls(s,i){switch(rr(Wn,i),rr(vc,s),rr(Qi,xc),s=i.nodeType,s){case 9:case 11:i=(i=i.documentElement)?i.namespaceURI:de(null,"");break;default:s=s===8?i.parentNode:i,i=s.namespaceURI||null,s=s.tagName,i=de(i,s)}Qn(Qi),rr(Qi,i)}function ba(){Qn(Qi),Qn(vc),Qn(Wn)}function wc(s){cr(Wn.current);var i=cr(Qi.current),l=de(i,s.type);i!==l&&(rr(vc,s),rr(Qi,l))}function fu(s){vc.current===s&&(Qn(Qi),Qn(vc))}var gr=Ji(0);function mu(s){for(var i=s;i!==null;){if(i.tag===13){var l=i.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||l.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===s)break;for(;i.sibling===null;){if(i.return===null||i.return===s)return null;i=i.return}i.sibling.return=i.return,i=i.sibling}return null}var hu=[];function ja(){for(var s=0;s<hu.length;s++)hu[s]._workInProgressVersionPrimary=null;hu.length=0}var _u=I.ReactCurrentDispatcher,_d=I.ReactCurrentBatchConfig,Qa=0,Xn=null,Ar=null,Dr=null,bc=!1,jc=!1,Sc=0,_h=0;function Ss(){throw Error(r(321))}function pu(s,i){if(i===null)return!1;for(var l=0;l<i.length&&l<s.length;l++)if(!tr(s[l],i[l]))return!1;return!0}function pd(s,i,l,f,g,w){if(Qa=w,Xn=i,i.memoizedState=null,i.updateQueue=null,i.lanes=0,_u.current=s===null||s.memoizedState===null?ph:mi,s=l(f,g),jc){w=0;do{if(jc=!1,Sc=0,25<=w)throw Error(r(301));w+=1,Dr=Ar=null,i.updateQueue=null,_u.current=Bl,s=l(f,g)}while(jc)}if(_u.current=bu,i=Ar!==null&&Ar.next!==null,Qa=0,Dr=Ar=Xn=null,bc=!1,i)throw Error(r(300));return s}function gd(){var s=Sc!==0;return Sc=0,s}function jo(){var s={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Dr===null?Xn.memoizedState=Dr=s:Dr=Dr.next=s,Dr}function di(){if(Ar===null){var s=Xn.alternate;s=s!==null?s.memoizedState:null}else s=Ar.next;var i=Dr===null?Xn.memoizedState:Dr.next;if(i!==null)Dr=i,Ar=s;else{if(s===null)throw Error(r(310));Ar=s,s={memoizedState:Ar.memoizedState,baseState:Ar.baseState,baseQueue:Ar.baseQueue,queue:Ar.queue,next:null},Dr===null?Xn.memoizedState=Dr=s:Dr=Dr.next=s}return Dr}function el(s,i){return typeof i=="function"?i(s):i}function yd(s){var i=di(),l=i.queue;if(l===null)throw Error(r(311));l.lastRenderedReducer=s;var f=Ar,g=f.baseQueue,w=l.pending;if(w!==null){if(g!==null){var M=g.next;g.next=w.next,w.next=M}f.baseQueue=g=w,l.pending=null}if(g!==null){w=g.next,f=f.baseState;var Q=M=null,oe=null,Se=w;do{var Ve=Se.lane;if((Qa&Ve)===Ve)oe!==null&&(oe=oe.next={lane:0,action:Se.action,hasEagerState:Se.hasEagerState,eagerState:Se.eagerState,next:null}),f=Se.hasEagerState?Se.eagerState:s(f,Se.action);else{var Ke={lane:Ve,action:Se.action,hasEagerState:Se.hasEagerState,eagerState:Se.eagerState,next:null};oe===null?(Q=oe=Ke,M=f):oe=oe.next=Ke,Xn.lanes|=Ve,R|=Ve}Se=Se.next}while(Se!==null&&Se!==w);oe===null?M=f:oe.next=Q,tr(f,i.memoizedState)||(Os=!0),i.memoizedState=f,i.baseState=M,i.baseQueue=oe,l.lastRenderedState=f}if(s=l.interleaved,s!==null){g=s;do w=g.lane,Xn.lanes|=w,R|=w,g=g.next;while(g!==s)}else g===null&&(l.lanes=0);return[i.memoizedState,l.dispatch]}function xd(s){var i=di(),l=i.queue;if(l===null)throw Error(r(311));l.lastRenderedReducer=s;var f=l.dispatch,g=l.pending,w=i.memoizedState;if(g!==null){l.pending=null;var M=g=g.next;do w=s(w,M.action),M=M.next;while(M!==g);tr(w,i.memoizedState)||(Os=!0),i.memoizedState=w,i.baseQueue===null&&(i.baseState=w),l.lastRenderedState=w}return[w,f]}function kc(){}function Ff(s,i){var l=Xn,f=di(),g=i(),w=!tr(f.memoizedState,g);if(w&&(f.memoizedState=g,Os=!0),f=f.queue,vd(Jr.bind(null,l,f,s),[s]),f.getSnapshot!==i||w||Dr!==null&&Dr.memoizedState.tag&1){if(l.flags|=2048,fi(9,Zs.bind(null,l,f,g,i),void 0,null),Br===null)throw Error(r(349));(Qa&30)!==0||tl(l,i,g)}return g}function tl(s,i,l){s.flags|=16384,s={getSnapshot:i,value:l},i=Xn.updateQueue,i===null?(i={lastEffect:null,stores:null},Xn.updateQueue=i,i.stores=[s]):(l=i.stores,l===null?i.stores=[s]:l.push(s))}function Zs(s,i,l,f){i.value=l,i.getSnapshot=f,eo(i)&&qo(s)}function Jr(s,i,l){return l(function(){eo(i)&&qo(s)})}function eo(s){var i=s.getSnapshot;s=s.value;try{var l=i();return!tr(s,l)}catch{return!0}}function qo(s){var i=Uo(s,1);i!==null&&jt(i,s,1,-1)}function Ho(s){var i=jo();return typeof s=="function"&&(s=s()),i.memoizedState=i.baseState=s,s={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:el,lastRenderedState:s},i.queue=s,s=s.dispatch=qf.bind(null,Xn,s),[i.memoizedState,s]}function fi(s,i,l,f){return s={tag:s,create:i,destroy:l,deps:f,next:null},i=Xn.updateQueue,i===null?(i={lastEffect:null,stores:null},Xn.updateQueue=i,i.lastEffect=s.next=s):(l=i.lastEffect,l===null?i.lastEffect=s.next=s:(f=l.next,l.next=s,s.next=f,i.lastEffect=s)),s}function Df(){return di().memoizedState}function Il(s,i,l,f){var g=jo();Xn.flags|=s,g.memoizedState=fi(1|i,l,void 0,f===void 0?null:f)}function gu(s,i,l,f){var g=di();f=f===void 0?null:f;var w=void 0;if(Ar!==null){var M=Ar.memoizedState;if(w=M.destroy,f!==null&&pu(f,M.deps)){g.memoizedState=fi(i,l,w,f);return}}Xn.flags|=s,g.memoizedState=fi(1|i,l,w,f)}function yu(s,i){return Il(8390656,8,s,i)}function vd(s,i){return gu(2048,8,s,i)}function Bf(s,i){return gu(4,2,s,i)}function wd(s,i){return gu(4,4,s,i)}function Sa(s,i){if(typeof i=="function")return s=s(),i(s),function(){i(null)};if(i!=null)return s=s(),i.current=s,function(){i.current=null}}function Fl(s,i,l){return l=l!=null?l.concat([s]):null,gu(4,4,Sa.bind(null,i,s),l)}function xu(){}function bd(s,i){var l=di();i=i===void 0?null:i;var f=l.memoizedState;return f!==null&&i!==null&&pu(i,f[1])?f[0]:(l.memoizedState=[s,i],s)}function Uf(s,i){var l=di();i=i===void 0?null:i;var f=l.memoizedState;return f!==null&&i!==null&&pu(i,f[1])?f[0]:(s=s(),l.memoizedState=[s,i],s)}function jd(s,i,l){return(Qa&21)===0?(s.baseState&&(s.baseState=!1,Os=!0),s.memoizedState=l):(tr(l,i)||(l=mr(),Xn.lanes|=l,R|=l,s.baseState=!0),i)}function Dl(s,i){var l=en;en=l!==0&&4>l?l:4,s(!0);var f=_d.transition;_d.transition={};try{s(!1),i()}finally{en=l,_d.transition=f}}function Wf(){return di().memoizedState}function vu(s,i,l){var f=Ht(s);if(l={lane:f,action:l,hasEagerState:!1,eagerState:null,next:null},Hf(s))wu(i,l);else if(l=Of(s,i,l,f),l!==null){var g=ht();jt(l,s,f,g),Vf(l,i,f)}}function qf(s,i,l){var f=Ht(s),g={lane:f,action:l,hasEagerState:!1,eagerState:null,next:null};if(Hf(s))wu(i,g);else{var w=s.alternate;if(s.lanes===0&&(w===null||w.lanes===0)&&(w=i.lastRenderedReducer,w!==null))try{var M=i.lastRenderedState,Q=w(M,l);if(g.hasEagerState=!0,g.eagerState=Q,tr(Q,M)){var oe=i.interleaved;oe===null?(g.next=g,md(i)):(g.next=oe.next,oe.next=g),i.interleaved=g;return}}catch{}finally{}l=Of(s,i,g,f),l!==null&&(g=ht(),jt(l,s,f,g),Vf(l,i,f))}}function Hf(s){var i=s.alternate;return s===Xn||i!==null&&i===Xn}function wu(s,i){jc=bc=!0;var l=s.pending;l===null?i.next=i:(i.next=l.next,l.next=i),s.pending=i}function Vf(s,i,l){if((l&4194240)!==0){var f=i.lanes;f&=s.pendingLanes,l|=f,i.lanes=l,uo(s,l)}}var bu={readContext:Mi,useCallback:Ss,useContext:Ss,useEffect:Ss,useImperativeHandle:Ss,useInsertionEffect:Ss,useLayoutEffect:Ss,useMemo:Ss,useReducer:Ss,useRef:Ss,useState:Ss,useDebugValue:Ss,useDeferredValue:Ss,useTransition:Ss,useMutableSource:Ss,useSyncExternalStore:Ss,useId:Ss,unstable_isNewReconciler:!1},ph={readContext:Mi,useCallback:function(s,i){return jo().memoizedState=[s,i===void 0?null:i],s},useContext:Mi,useEffect:yu,useImperativeHandle:function(s,i,l){return l=l!=null?l.concat([s]):null,Il(4194308,4,Sa.bind(null,i,s),l)},useLayoutEffect:function(s,i){return Il(4194308,4,s,i)},useInsertionEffect:function(s,i){return Il(4,2,s,i)},useMemo:function(s,i){var l=jo();return i=i===void 0?null:i,s=s(),l.memoizedState=[s,i],s},useReducer:function(s,i,l){var f=jo();return i=l!==void 0?l(i):i,f.memoizedState=f.baseState=i,s={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:i},f.queue=s,s=s.dispatch=vu.bind(null,Xn,s),[f.memoizedState,s]},useRef:function(s){var i=jo();return s={current:s},i.memoizedState=s},useState:Ho,useDebugValue:xu,useDeferredValue:function(s){return jo().memoizedState=s},useTransition:function(){var s=Ho(!1),i=s[0];return s=Dl.bind(null,s[1]),jo().memoizedState=s,[i,s]},useMutableSource:function(){},useSyncExternalStore:function(s,i,l){var f=Xn,g=jo();if(sr){if(l===void 0)throw Error(r(407));l=l()}else{if(l=i(),Br===null)throw Error(r(349));(Qa&30)!==0||tl(f,i,l)}g.memoizedState=l;var w={value:l,getSnapshot:i};return g.queue=w,yu(Jr.bind(null,f,w,s),[s]),f.flags|=2048,fi(9,Zs.bind(null,f,w,l,i),void 0,null),l},useId:function(){var s=jo(),i=Br.identifierPrefix;if(sr){var l=Zi,f=Bo;l=(f&~(1<<32-zr(f)-1)).toString(32)+l,i=":"+i+"R"+l,l=Sc++,0<l&&(i+="H"+l.toString(32)),i+=":"}else l=_h++,i=":"+i+"r"+l.toString(32)+":";return s.memoizedState=i},unstable_isNewReconciler:!1},mi={readContext:Mi,useCallback:bd,useContext:Mi,useEffect:vd,useImperativeHandle:Fl,useInsertionEffect:Bf,useLayoutEffect:wd,useMemo:Uf,useReducer:yd,useRef:Df,useState:function(){return yd(el)},useDebugValue:xu,useDeferredValue:function(s){var i=di();return jd(i,Ar.memoizedState,s)},useTransition:function(){var s=yd(el)[0],i=di().memoizedState;return[s,i]},useMutableSource:kc,useSyncExternalStore:Ff,useId:Wf,unstable_isNewReconciler:!1},Bl={readContext:Mi,useCallback:bd,useContext:Mi,useEffect:vd,useImperativeHandle:Fl,useInsertionEffect:Bf,useLayoutEffect:wd,useMemo:Uf,useReducer:xd,useRef:Df,useState:function(){return xd(el)},useDebugValue:xu,useDeferredValue:function(s){var i=di();return Ar===null?i.memoizedState=s:jd(i,Ar.memoizedState,s)},useTransition:function(){var s=xd(el)[0],i=di().memoizedState;return[s,i]},useMutableSource:kc,useSyncExternalStore:Ff,useId:Wf,unstable_isNewReconciler:!1};function to(s,i){if(s&&s.defaultProps){i=q({},i),s=s.defaultProps;for(var l in s)i[l]===void 0&&(i[l]=s[l]);return i}return i}function ju(s,i,l,f){i=s.memoizedState,l=l(f,i),l=l==null?i:q({},i,l),s.memoizedState=l,s.lanes===0&&(s.updateQueue.baseState=l)}var Qs={isMounted:function(s){return(s=s._reactInternals)?Un(s)===s:!1},enqueueSetState:function(s,i,l){s=s._reactInternals;var f=ht(),g=Ht(s),w=Yn(f,g);w.payload=i,l!=null&&(w.callback=l),i=Wo(s,w,g),i!==null&&(jt(i,s,g,f),yc(i,s,g))},enqueueReplaceState:function(s,i,l){s=s._reactInternals;var f=ht(),g=Ht(s),w=Yn(f,g);w.tag=1,w.payload=i,l!=null&&(w.callback=l),i=Wo(s,w,g),i!==null&&(jt(i,s,g,f),yc(i,s,g))},enqueueForceUpdate:function(s,i){s=s._reactInternals;var l=ht(),f=Ht(s),g=Yn(l,f);g.tag=2,i!=null&&(g.callback=i),i=Wo(s,g,f),i!==null&&(jt(i,s,f,l),yc(i,s,f))}};function Su(s,i,l,f,g,w,M){return s=s.stateNode,typeof s.shouldComponentUpdate=="function"?s.shouldComponentUpdate(f,w,M):i.prototype&&i.prototype.isPureReactComponent?!as(l,f)||!as(g,w):!0}function Sd(s,i,l){var f=!1,g=ya,w=i.contextType;return typeof w=="object"&&w!==null?w=Mi(w):(g=Xr(i)?Ki:Ir.current,f=i.contextTypes,w=(f=f!=null)?Xa(s,g):ya),i=new i(l,w),s.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Qs,s.stateNode=i,i._reactInternals=s,f&&(s=s.stateNode,s.__reactInternalMemoizedUnmaskedChildContext=g,s.__reactInternalMemoizedMaskedChildContext=w),i}function kd(s,i,l,f){s=i.state,typeof i.componentWillReceiveProps=="function"&&i.componentWillReceiveProps(l,f),typeof i.UNSAFE_componentWillReceiveProps=="function"&&i.UNSAFE_componentWillReceiveProps(l,f),i.state!==s&&Qs.enqueueReplaceState(i,i.state,null)}function Nd(s,i,l,f){var g=s.stateNode;g.props=l,g.state=s.memoizedState,g.refs={},Fr(s);var w=i.contextType;typeof w=="object"&&w!==null?g.context=Mi(w):(w=Xr(i)?Ki:Ir.current,g.context=Xa(s,w)),g.state=s.memoizedState,w=i.getDerivedStateFromProps,typeof w=="function"&&(ju(s,i,w,l),g.state=s.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(i=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),i!==g.state&&Qs.enqueueReplaceState(g,g.state,null),du(s,l,g,f),g.state=s.memoizedState),typeof g.componentDidMount=="function"&&(s.flags|=4194308)}function Ul(s,i){try{var l="",f=i;do l+=ye(f),f=f.return;while(f);var g=l}catch(w){g=`
|
|
39
|
-
Error generating stack: `+w.message+`
|
|
40
|
-
`+w.stack}return{value:s,source:i,stack:g,digest:null}}function Ps(s,i,l){return{value:s,source:null,stack:l??null,digest:i??null}}function nl(s,i){try{console.error(i.value)}catch(l){setTimeout(function(){throw l})}}var Gf=typeof WeakMap=="function"?WeakMap:Map;function Cd(s,i,l){l=Yn(-1,l),l.tag=3,l.payload={element:null};var f=i.value;return l.callback=function(){Ue||(Ue=!0,Qe=f),nl(s,i)},l}function Bt(s,i,l){l=Yn(-1,l),l.tag=3;var f=s.type.getDerivedStateFromError;if(typeof f=="function"){var g=i.value;l.payload=function(){return f(g)},l.callback=function(){nl(s,i)}}var w=s.stateNode;return w!==null&&typeof w.componentDidCatch=="function"&&(l.callback=function(){nl(s,i),typeof f!="function"&&(Je===null?Je=new Set([this]):Je.add(this));var M=i.stack;this.componentDidCatch(i.value,{componentStack:M!==null?M:""})}),l}function Ed(s,i,l){var f=s.pingCache;if(f===null){f=s.pingCache=new Gf;var g=new Set;f.set(i,g)}else g=f.get(i),g===void 0&&(g=new Set,f.set(i,g));g.has(l)||(g.add(l),s=Is.bind(null,s,i,l),i.then(s,s))}function So(s){do{var i;if((i=s.tag===13)&&(i=s.memoizedState,i=i!==null?i.dehydrated!==null:!0),i)return s;s=s.return}while(s!==null);return null}function Yf(s,i,l,f,g){return(s.mode&1)===0?(s===i?s.flags|=65536:(s.flags|=128,l.flags|=131072,l.flags&=-52805,l.tag===1&&(l.alternate===null?l.tag=17:(i=Yn(-1,1),i.tag=2,Wo(l,i,1))),l.lanes|=1),s):(s.flags|=65536,s.lanes=g,s)}var gh=I.ReactCurrentOwner,Os=!1;function us(s,i,l,f){i.child=s===null?Pf(i,null,l,f):Ol(i,s.child,l,f)}function no(s,i,l,f,g){l=l.render;var w=i.ref;return cs(i,g),f=pd(s,i,l,f,w,g),l=gd(),s!==null&&!Os?(i.updateQueue=s.updateQueue,i.flags&=-2053,s.lanes&=~g,Go(s,i,g)):(sr&&l&&ou(i),i.flags|=1,us(s,i,f,g),i.child)}function Nc(s,i,l,f,g){if(s===null){var w=l.type;return typeof w=="function"&&!Ea(w)&&w.defaultProps===void 0&&l.compare===null&&l.defaultProps===void 0?(i.tag=15,i.type=w,Xf(s,i,w,f,g)):(s=sm(l.type,null,f,i,i.mode,g),s.ref=i.ref,s.return=i,i.child=s)}if(w=s.child,(s.lanes&g)===0){var M=w.memoizedProps;if(l=l.compare,l=l!==null?l:as,l(M,f)&&s.ref===i.ref)return Go(s,i,g)}return i.flags|=1,s=Gl(w,f),s.ref=i.ref,s.return=i,i.child=s}function Xf(s,i,l,f,g){if(s!==null){var w=s.memoizedProps;if(as(w,f)&&s.ref===i.ref)if(Os=!1,i.pendingProps=f=w,(s.lanes&g)!==0)(s.flags&131072)!==0&&(Os=!0);else return i.lanes=s.lanes,Go(s,i,g)}return Cc(s,i,l,f,g)}function Vo(s,i,l){var f=i.pendingProps,g=f.children,w=s!==null?s.memoizedState:null;if(f.mode==="hidden")if((i.mode&1)===0)i.memoizedState={baseLanes:0,cachePool:null,transitions:null},rr(y,ei),ei|=l;else{if((l&1073741824)===0)return s=w!==null?w.baseLanes|l:l,i.lanes=i.childLanes=1073741824,i.memoizedState={baseLanes:s,cachePool:null,transitions:null},i.updateQueue=null,rr(y,ei),ei|=s,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null},f=w!==null?w.baseLanes:l,rr(y,ei),ei|=f}else w!==null?(f=w.baseLanes|l,i.memoizedState=null):f=l,rr(y,ei),ei|=f;return us(s,i,g,l),i.child}function ku(s,i){var l=i.ref;(s===null&&l!==null||s!==null&&s.ref!==l)&&(i.flags|=512,i.flags|=2097152)}function Cc(s,i,l,f,g){var w=Xr(l)?Ki:Ir.current;return w=Xa(i,w),cs(i,g),l=pd(s,i,l,f,w,g),f=gd(),s!==null&&!Os?(i.updateQueue=s.updateQueue,i.flags&=-2053,s.lanes&=~g,Go(s,i,g)):(sr&&f&&ou(i),i.flags|=1,us(s,i,l,g),i.child)}function ds(s,i,l,f,g){if(Xr(l)){var w=!0;dc(i)}else w=!1;if(cs(i,g),i.stateNode===null)ro(s,i),Sd(i,l,f),Nd(i,l,f,g),f=!0;else if(s===null){var M=i.stateNode,Q=i.memoizedProps;M.props=Q;var oe=M.context,Se=l.contextType;typeof Se=="object"&&Se!==null?Se=Mi(Se):(Se=Xr(l)?Ki:Ir.current,Se=Xa(i,Se));var Ve=l.getDerivedStateFromProps,Ke=typeof Ve=="function"||typeof M.getSnapshotBeforeUpdate=="function";Ke||typeof M.UNSAFE_componentWillReceiveProps!="function"&&typeof M.componentWillReceiveProps!="function"||(Q!==f||oe!==Se)&&kd(i,M,f,Se),Ks=!1;var He=i.memoizedState;M.state=He,du(i,f,M,g),oe=i.memoizedState,Q!==f||He!==oe||Ys.current||Ks?(typeof Ve=="function"&&(ju(i,l,Ve,f),oe=i.memoizedState),(Q=Ks||Su(i,l,Q,f,He,oe,Se))?(Ke||typeof M.UNSAFE_componentWillMount!="function"&&typeof M.componentWillMount!="function"||(typeof M.componentWillMount=="function"&&M.componentWillMount(),typeof M.UNSAFE_componentWillMount=="function"&&M.UNSAFE_componentWillMount()),typeof M.componentDidMount=="function"&&(i.flags|=4194308)):(typeof M.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=f,i.memoizedState=oe),M.props=f,M.state=oe,M.context=Se,f=Q):(typeof M.componentDidMount=="function"&&(i.flags|=4194308),f=!1)}else{M=i.stateNode,Za(s,i),Q=i.memoizedProps,Se=i.type===i.elementType?Q:to(i.type,Q),M.props=Se,Ke=i.pendingProps,He=M.context,oe=l.contextType,typeof oe=="object"&&oe!==null?oe=Mi(oe):(oe=Xr(l)?Ki:Ir.current,oe=Xa(i,oe));var vt=l.getDerivedStateFromProps;(Ve=typeof vt=="function"||typeof M.getSnapshotBeforeUpdate=="function")||typeof M.UNSAFE_componentWillReceiveProps!="function"&&typeof M.componentWillReceiveProps!="function"||(Q!==Ke||He!==oe)&&kd(i,M,f,oe),Ks=!1,He=i.memoizedState,M.state=He,du(i,f,M,g);var St=i.memoizedState;Q!==Ke||He!==St||Ys.current||Ks?(typeof vt=="function"&&(ju(i,l,vt,f),St=i.memoizedState),(Se=Ks||Su(i,l,Se,f,He,St,oe)||!1)?(Ve||typeof M.UNSAFE_componentWillUpdate!="function"&&typeof M.componentWillUpdate!="function"||(typeof M.componentWillUpdate=="function"&&M.componentWillUpdate(f,St,oe),typeof M.UNSAFE_componentWillUpdate=="function"&&M.UNSAFE_componentWillUpdate(f,St,oe)),typeof M.componentDidUpdate=="function"&&(i.flags|=4),typeof M.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof M.componentDidUpdate!="function"||Q===s.memoizedProps&&He===s.memoizedState||(i.flags|=4),typeof M.getSnapshotBeforeUpdate!="function"||Q===s.memoizedProps&&He===s.memoizedState||(i.flags|=1024),i.memoizedProps=f,i.memoizedState=St),M.props=f,M.state=St,M.context=oe,f=Se):(typeof M.componentDidUpdate!="function"||Q===s.memoizedProps&&He===s.memoizedState||(i.flags|=4),typeof M.getSnapshotBeforeUpdate!="function"||Q===s.memoizedProps&&He===s.memoizedState||(i.flags|=1024),f=!1)}return Wl(s,i,l,f,w,g)}function Wl(s,i,l,f,g,w){ku(s,i);var M=(i.flags&128)!==0;if(!f&&!M)return g&&ru(i,l,!1),Go(s,i,w);f=i.stateNode,gh.current=i;var Q=M&&typeof l.getDerivedStateFromError!="function"?null:f.render();return i.flags|=1,s!==null&&M?(i.child=Ol(i,s.child,null,w),i.child=Ol(i,null,Q,w)):us(s,i,Q,w),i.memoizedState=f.state,g&&ru(i,l,!0),i.child}function Jf(s){var i=s.stateNode;i.pendingContext?ad(s,i.pendingContext,i.pendingContext!==i.context):i.context&&ad(s,i.context,!1),Ls(s,i.containerInfo)}function $d(s,i,l,f,g){return Ka(),dd(g),i.flags|=256,us(s,i,l,f),i.child}var Ad={dehydrated:null,treeContext:null,retryLane:0};function Nu(s){return{baseLanes:s,cachePool:null,transitions:null}}function Md(s,i,l){var f=i.pendingProps,g=gr.current,w=!1,M=(i.flags&128)!==0,Q;if((Q=M)||(Q=s!==null&&s.memoizedState===null?!1:(g&2)!==0),Q?(w=!0,i.flags&=-129):(s===null||s.memoizedState!==null)&&(g|=1),rr(gr,g&1),s===null)return ud(i),s=i.memoizedState,s!==null&&(s=s.dehydrated,s!==null)?((i.mode&1)===0?i.lanes=1:s.data==="$!"?i.lanes=8:i.lanes=1073741824,null):(M=f.children,s=f.fallback,w?(f=i.mode,w=i.child,M={mode:"hidden",children:M},(f&1)===0&&w!==null?(w.childLanes=0,w.pendingProps=M):w=im(M,f,0,null),s=Lc(s,f,l,null),w.return=i,s.return=i,w.sibling=s,i.child=w,i.child.memoizedState=Nu(l),i.memoizedState=Ad,s):Cu(i,M));if(g=s.memoizedState,g!==null&&(Q=g.dehydrated,Q!==null))return Kf(s,i,M,f,Q,g,l);if(w){w=f.fallback,M=i.mode,g=s.child,Q=g.sibling;var oe={mode:"hidden",children:f.children};return(M&1)===0&&i.child!==g?(f=i.child,f.childLanes=0,f.pendingProps=oe,i.deletions=null):(f=Gl(g,oe),f.subtreeFlags=g.subtreeFlags&14680064),Q!==null?w=Gl(Q,w):(w=Lc(w,M,l,null),w.flags|=2),w.return=i,f.return=i,f.sibling=w,i.child=f,f=w,w=i.child,M=s.child.memoizedState,M=M===null?Nu(l):{baseLanes:M.baseLanes|l,cachePool:null,transitions:M.transitions},w.memoizedState=M,w.childLanes=s.childLanes&~l,i.memoizedState=Ad,f}return w=s.child,s=w.sibling,f=Gl(w,{mode:"visible",children:f.children}),(i.mode&1)===0&&(f.lanes=l),f.return=i,f.sibling=null,s!==null&&(l=i.deletions,l===null?(i.deletions=[s],i.flags|=16):l.push(s)),i.child=f,i.memoizedState=null,f}function Cu(s,i){return i=im({mode:"visible",children:i},s.mode,0,null),i.return=s,s.child=i}function ql(s,i,l,f){return f!==null&&dd(f),Ol(i,s.child,null,l),s=Cu(i,i.pendingProps.children),s.flags|=2,i.memoizedState=null,s}function Kf(s,i,l,f,g,w,M){if(l)return i.flags&256?(i.flags&=-257,f=Ps(Error(r(422))),ql(s,i,M,f)):i.memoizedState!==null?(i.child=s.child,i.flags|=128,null):(w=f.fallback,g=i.mode,f=im({mode:"visible",children:f.children},g,0,null),w=Lc(w,g,M,null),w.flags|=2,f.return=i,w.return=i,f.sibling=w,i.child=f,(i.mode&1)!==0&&Ol(i,s.child,null,M),i.child.memoizedState=Nu(M),i.memoizedState=Ad,w);if((i.mode&1)===0)return ql(s,i,M,null);if(g.data==="$!"){if(f=g.nextSibling&&g.nextSibling.dataset,f)var Q=f.dgst;return f=Q,w=Error(r(419)),f=Ps(w,f,void 0),ql(s,i,M,f)}if(Q=(M&s.childLanes)!==0,Os||Q){if(f=Br,f!==null){switch(M&-M){case 4:g=2;break;case 16:g=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:g=32;break;case 536870912:g=268435456;break;default:g=0}g=(g&(f.suspendedLanes|M))!==0?0:g,g!==0&&g!==w.retryLane&&(w.retryLane=g,Uo(s,g),jt(f,s,g,-1))}return Ri(),f=Ps(Error(r(421))),ql(s,i,M,f)}return g.data==="$?"?(i.flags|=128,i.child=s.child,i=Ko.bind(null,s),g._reactRetry=i,null):(s=w.treeContext,Gn=Gr(g.nextSibling),tn=i,sr=!0,Ai=null,s!==null&&(Xs[$i++]=Bo,Xs[$i++]=Zi,Xs[$i++]=va,Bo=s.id,Zi=s.overflow,va=i),i=Cu(i,f.children),i.flags|=4096,i)}function Td(s,i,l){s.lanes|=i;var f=s.alternate;f!==null&&(f.lanes|=i),gc(s.return,i,l)}function Ec(s,i,l,f,g){var w=s.memoizedState;w===null?s.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:f,tail:l,tailMode:g}:(w.isBackwards=i,w.rendering=null,w.renderingStartTime=0,w.last=f,w.tail=l,w.tailMode=g)}function zd(s,i,l){var f=i.pendingProps,g=f.revealOrder,w=f.tail;if(us(s,i,f.children,l),f=gr.current,(f&2)!==0)f=f&1|2,i.flags|=128;else{if(s!==null&&(s.flags&128)!==0)e:for(s=i.child;s!==null;){if(s.tag===13)s.memoizedState!==null&&Td(s,l,i);else if(s.tag===19)Td(s,l,i);else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===i)break e;for(;s.sibling===null;){if(s.return===null||s.return===i)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}f&=1}if(rr(gr,f),(i.mode&1)===0)i.memoizedState=null;else switch(g){case"forwards":for(l=i.child,g=null;l!==null;)s=l.alternate,s!==null&&mu(s)===null&&(g=l),l=l.sibling;l=g,l===null?(g=i.child,i.child=null):(g=l.sibling,l.sibling=null),Ec(i,!1,g,l,w);break;case"backwards":for(l=null,g=i.child,i.child=null;g!==null;){if(s=g.alternate,s!==null&&mu(s)===null){i.child=g;break}s=g.sibling,g.sibling=l,l=g,g=s}Ec(i,!0,l,null,w);break;case"together":Ec(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function ro(s,i){(i.mode&1)===0&&s!==null&&(s.alternate=null,i.alternate=null,i.flags|=2)}function Go(s,i,l){if(s!==null&&(i.dependencies=s.dependencies),R|=i.lanes,(l&i.childLanes)===0)return null;if(s!==null&&i.child!==s.child)throw Error(r(153));if(i.child!==null){for(s=i.child,l=Gl(s,s.pendingProps),i.child=l,l.return=i;s.sibling!==null;)s=s.sibling,l=l.sibling=Gl(s,s.pendingProps),l.return=i;l.sibling=null}return i.child}function Zf(s,i,l){switch(i.tag){case 3:Jf(i),Ka();break;case 5:wc(i);break;case 1:Xr(i.type)&&dc(i);break;case 4:Ls(i,i.stateNode.containerInfo);break;case 10:var f=i.type._context,g=i.memoizedProps.value;rr(cu,f._currentValue),f._currentValue=g;break;case 13:if(f=i.memoizedState,f!==null)return f.dehydrated!==null?(rr(gr,gr.current&1),i.flags|=128,null):(l&i.child.childLanes)!==0?Md(s,i,l):(rr(gr,gr.current&1),s=Go(s,i,l),s!==null?s.sibling:null);rr(gr,gr.current&1);break;case 19:if(f=(l&i.childLanes)!==0,(s.flags&128)!==0){if(f)return zd(s,i,l);i.flags|=128}if(g=i.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),rr(gr,gr.current),f)break;return null;case 22:case 23:return i.lanes=0,Vo(s,i,l)}return Go(s,i,l)}var Qf,Yo,Eu,$u;Qf=function(s,i){for(var l=i.child;l!==null;){if(l.tag===5||l.tag===6)s.appendChild(l.stateNode);else if(l.tag!==4&&l.child!==null){l.child.return=l,l=l.child;continue}if(l===i)break;for(;l.sibling===null;){if(l.return===null||l.return===i)return;l=l.return}l.sibling.return=l.return,l=l.sibling}},Yo=function(){},Eu=function(s,i,l,f){var g=s.memoizedProps;if(g!==f){s=i.stateNode,cr(Qi.current);var w=null;switch(l){case"input":g=Oe(s,g),f=Oe(s,f),w=[];break;case"select":g=q({},g,{value:void 0}),f=q({},f,{value:void 0}),w=[];break;case"textarea":g=ae(s,g),f=ae(s,f),w=[];break;default:typeof g.onClick!="function"&&typeof f.onClick=="function"&&(s.onclick=je)}xn(l,f);var M;l=null;for(Se in g)if(!f.hasOwnProperty(Se)&&g.hasOwnProperty(Se)&&g[Se]!=null)if(Se==="style"){var Q=g[Se];for(M in Q)Q.hasOwnProperty(M)&&(l||(l={}),l[M]="")}else Se!=="dangerouslySetInnerHTML"&&Se!=="children"&&Se!=="suppressContentEditableWarning"&&Se!=="suppressHydrationWarning"&&Se!=="autoFocus"&&(a.hasOwnProperty(Se)?w||(w=[]):(w=w||[]).push(Se,null));for(Se in f){var oe=f[Se];if(Q=g!=null?g[Se]:void 0,f.hasOwnProperty(Se)&&oe!==Q&&(oe!=null||Q!=null))if(Se==="style")if(Q){for(M in Q)!Q.hasOwnProperty(M)||oe&&oe.hasOwnProperty(M)||(l||(l={}),l[M]="");for(M in oe)oe.hasOwnProperty(M)&&Q[M]!==oe[M]&&(l||(l={}),l[M]=oe[M])}else l||(w||(w=[]),w.push(Se,l)),l=oe;else Se==="dangerouslySetInnerHTML"?(oe=oe?oe.__html:void 0,Q=Q?Q.__html:void 0,oe!=null&&Q!==oe&&(w=w||[]).push(Se,oe)):Se==="children"?typeof oe!="string"&&typeof oe!="number"||(w=w||[]).push(Se,""+oe):Se!=="suppressContentEditableWarning"&&Se!=="suppressHydrationWarning"&&(a.hasOwnProperty(Se)?(oe!=null&&Se==="onScroll"&&Kn("scroll",s),w||Q===oe||(w=[])):(w=w||[]).push(Se,oe))}l&&(w=w||[]).push("style",l);var Se=w;(i.updateQueue=Se)&&(i.flags|=4)}},$u=function(s,i,l,f){l!==f&&(i.flags|=4)};function $c(s,i){if(!sr)switch(s.tailMode){case"hidden":i=s.tail;for(var l=null;i!==null;)i.alternate!==null&&(l=i),i=i.sibling;l===null?s.tail=null:l.sibling=null;break;case"collapsed":l=s.tail;for(var f=null;l!==null;)l.alternate!==null&&(f=l),l=l.sibling;f===null?i||s.tail===null?s.tail=null:s.tail.sibling=null:f.sibling=null}}function fs(s){var i=s.alternate!==null&&s.alternate.child===s.child,l=0,f=0;if(i)for(var g=s.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags&14680064,f|=g.flags&14680064,g.return=s,g=g.sibling;else for(g=s.child;g!==null;)l|=g.lanes|g.childLanes,f|=g.subtreeFlags,f|=g.flags,g.return=s,g=g.sibling;return s.subtreeFlags|=f,s.childLanes=l,i}function yh(s,i,l){var f=i.pendingProps;switch(ls(i),i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return fs(i),null;case 1:return Xr(i.type)&&Tl(),fs(i),null;case 3:return f=i.stateNode,ba(),Qn(Ys),Qn(Ir),ja(),f.pendingContext&&(f.context=f.pendingContext,f.pendingContext=null),(s===null||s.child===null)&&(lu(i)?i.flags|=4:s===null||s.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,Ai!==null&&(_i(Ai),Ai=null))),Yo(s,i),fs(i),null;case 5:fu(i);var g=cr(Wn.current);if(l=i.type,s!==null&&i.stateNode!=null)Eu(s,i,l,f,g),s.ref!==i.ref&&(i.flags|=512,i.flags|=2097152);else{if(!f){if(i.stateNode===null)throw Error(r(166));return fs(i),null}if(s=cr(Qi.current),lu(i)){f=i.stateNode,l=i.type;var w=i.memoizedProps;switch(f[Yr]=i,f[Rs]=w,s=(i.mode&1)!==0,l){case"dialog":Kn("cancel",f),Kn("close",f);break;case"iframe":case"object":case"embed":Kn("load",f);break;case"video":case"audio":for(g=0;g<pa.length;g++)Kn(pa[g],f);break;case"source":Kn("error",f);break;case"img":case"image":case"link":Kn("error",f),Kn("load",f);break;case"details":Kn("toggle",f);break;case"input":qe(f,w),Kn("invalid",f);break;case"select":f._wrapperState={wasMultiple:!!w.multiple},Kn("invalid",f);break;case"textarea":Kt(f,w),Kn("invalid",f)}xn(l,w),g=null;for(var M in w)if(w.hasOwnProperty(M)){var Q=w[M];M==="children"?typeof Q=="string"?f.textContent!==Q&&(w.suppressHydrationWarning!==!0&&ge(f.textContent,Q,s),g=["children",Q]):typeof Q=="number"&&f.textContent!==""+Q&&(w.suppressHydrationWarning!==!0&&ge(f.textContent,Q,s),g=["children",""+Q]):a.hasOwnProperty(M)&&Q!=null&&M==="onScroll"&&Kn("scroll",f)}switch(l){case"input":Pe(f),Fe(f,w,!0);break;case"textarea":Pe(f),gn(f);break;case"select":case"option":break;default:typeof w.onClick=="function"&&(f.onclick=je)}f=g,i.updateQueue=f,f!==null&&(i.flags|=4)}else{M=g.nodeType===9?g:g.ownerDocument,s==="http://www.w3.org/1999/xhtml"&&(s=Ne(l)),s==="http://www.w3.org/1999/xhtml"?l==="script"?(s=M.createElement("div"),s.innerHTML="<script><\/script>",s=s.removeChild(s.firstChild)):typeof f.is=="string"?s=M.createElement(l,{is:f.is}):(s=M.createElement(l),l==="select"&&(M=s,f.multiple?M.multiple=!0:f.size&&(M.size=f.size))):s=M.createElementNS(s,l),s[Yr]=i,s[Rs]=f,Qf(s,i,!1,!1),i.stateNode=s;e:{switch(M=ir(l,f),l){case"dialog":Kn("cancel",s),Kn("close",s),g=f;break;case"iframe":case"object":case"embed":Kn("load",s),g=f;break;case"video":case"audio":for(g=0;g<pa.length;g++)Kn(pa[g],s);g=f;break;case"source":Kn("error",s),g=f;break;case"img":case"image":case"link":Kn("error",s),Kn("load",s),g=f;break;case"details":Kn("toggle",s),g=f;break;case"input":qe(s,f),g=Oe(s,f),Kn("invalid",s);break;case"option":g=f;break;case"select":s._wrapperState={wasMultiple:!!f.multiple},g=q({},f,{value:void 0}),Kn("invalid",s);break;case"textarea":Kt(s,f),g=ae(s,f),Kn("invalid",s);break;default:g=f}xn(l,g),Q=g;for(w in Q)if(Q.hasOwnProperty(w)){var oe=Q[w];w==="style"?yn(s,oe):w==="dangerouslySetInnerHTML"?(oe=oe?oe.__html:void 0,oe!=null&&$t(s,oe)):w==="children"?typeof oe=="string"?(l!=="textarea"||oe!=="")&&bt(s,oe):typeof oe=="number"&&bt(s,""+oe):w!=="suppressContentEditableWarning"&&w!=="suppressHydrationWarning"&&w!=="autoFocus"&&(a.hasOwnProperty(w)?oe!=null&&w==="onScroll"&&Kn("scroll",s):oe!=null&&B(s,w,oe,M))}switch(l){case"input":Pe(s),Fe(s,f,!1);break;case"textarea":Pe(s),gn(s);break;case"option":f.value!=null&&s.setAttribute("value",""+De(f.value));break;case"select":s.multiple=!!f.multiple,w=f.value,w!=null?Lt(s,!!f.multiple,w,!1):f.defaultValue!=null&&Lt(s,!!f.multiple,f.defaultValue,!0);break;default:typeof g.onClick=="function"&&(s.onclick=je)}switch(l){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 fs(i),null;case 6:if(s&&i.stateNode!=null)$u(s,i,s.memoizedProps,f);else{if(typeof f!="string"&&i.stateNode===null)throw Error(r(166));if(l=cr(Wn.current),cr(Qi.current),lu(i)){if(f=i.stateNode,l=i.memoizedProps,f[Yr]=i,(w=f.nodeValue!==l)&&(s=tn,s!==null))switch(s.tag){case 3:ge(f.nodeValue,l,(s.mode&1)!==0);break;case 5:s.memoizedProps.suppressHydrationWarning!==!0&&ge(f.nodeValue,l,(s.mode&1)!==0)}w&&(i.flags|=4)}else f=(l.nodeType===9?l:l.ownerDocument).createTextNode(f),f[Yr]=i,i.stateNode=f}return fs(i),null;case 13:if(Qn(gr),f=i.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(sr&&Gn!==null&&(i.mode&1)!==0&&(i.flags&128)===0)Rf(),Ka(),i.flags|=98560,w=!1;else if(w=lu(i),f!==null&&f.dehydrated!==null){if(s===null){if(!w)throw Error(r(318));if(w=i.memoizedState,w=w!==null?w.dehydrated:null,!w)throw Error(r(317));w[Yr]=i}else Ka(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;fs(i),w=!1}else Ai!==null&&(_i(Ai),Ai=null),w=!0;if(!w)return i.flags&65536?i:null}return(i.flags&128)!==0?(i.lanes=l,i):(f=f!==null,f!==(s!==null&&s.memoizedState!==null)&&f&&(i.child.flags|=8192,(i.mode&1)!==0&&(s===null||(gr.current&1)!==0?k===0&&(k=3):Ri())),i.updateQueue!==null&&(i.flags|=4),fs(i),null);case 4:return ba(),Yo(s,i),s===null&&ga(i.stateNode.containerInfo),fs(i),null;case 10:return uu(i.type._context),fs(i),null;case 17:return Xr(i.type)&&Tl(),fs(i),null;case 19:if(Qn(gr),w=i.memoizedState,w===null)return fs(i),null;if(f=(i.flags&128)!==0,M=w.rendering,M===null)if(f)$c(w,!1);else{if(k!==0||s!==null&&(s.flags&128)!==0)for(s=i.child;s!==null;){if(M=mu(s),M!==null){for(i.flags|=128,$c(w,!1),f=M.updateQueue,f!==null&&(i.updateQueue=f,i.flags|=4),i.subtreeFlags=0,f=l,l=i.child;l!==null;)w=l,s=f,w.flags&=14680066,M=w.alternate,M===null?(w.childLanes=0,w.lanes=s,w.child=null,w.subtreeFlags=0,w.memoizedProps=null,w.memoizedState=null,w.updateQueue=null,w.dependencies=null,w.stateNode=null):(w.childLanes=M.childLanes,w.lanes=M.lanes,w.child=M.child,w.subtreeFlags=0,w.deletions=null,w.memoizedProps=M.memoizedProps,w.memoizedState=M.memoizedState,w.updateQueue=M.updateQueue,w.type=M.type,s=M.dependencies,w.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext}),l=l.sibling;return rr(gr,gr.current&1|2),i.child}s=s.sibling}w.tail!==null&&En()>D&&(i.flags|=128,f=!0,$c(w,!1),i.lanes=4194304)}else{if(!f)if(s=mu(M),s!==null){if(i.flags|=128,f=!0,l=s.updateQueue,l!==null&&(i.updateQueue=l,i.flags|=4),$c(w,!0),w.tail===null&&w.tailMode==="hidden"&&!M.alternate&&!sr)return fs(i),null}else 2*En()-w.renderingStartTime>D&&l!==1073741824&&(i.flags|=128,f=!0,$c(w,!1),i.lanes=4194304);w.isBackwards?(M.sibling=i.child,i.child=M):(l=w.last,l!==null?l.sibling=M:i.child=M,w.last=M)}return w.tail!==null?(i=w.tail,w.rendering=i,w.tail=i.sibling,w.renderingStartTime=En(),i.sibling=null,l=gr.current,rr(gr,f?l&1|2:l&1),i):(fs(i),null);case 22:case 23:return Pu(),f=i.memoizedState!==null,s!==null&&s.memoizedState!==null!==f&&(i.flags|=8192),f&&(i.mode&1)!==0?(ei&1073741824)!==0&&(fs(i),i.subtreeFlags&6&&(i.flags|=8192)):fs(i),null;case 24:return null;case 25:return null}throw Error(r(156,i.tag))}function Ac(s,i){switch(ls(i),i.tag){case 1:return Xr(i.type)&&Tl(),s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 3:return ba(),Qn(Ys),Qn(Ir),ja(),s=i.flags,(s&65536)!==0&&(s&128)===0?(i.flags=s&-65537|128,i):null;case 5:return fu(i),null;case 13:if(Qn(gr),s=i.memoizedState,s!==null&&s.dehydrated!==null){if(i.alternate===null)throw Error(r(340));Ka()}return s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 19:return Qn(gr),null;case 4:return ba(),null;case 10:return uu(i.type._context),null;case 22:case 23:return Pu(),null;case 24:return null;default:return null}}var ko=!1,ks=!1,Mc=typeof WeakSet=="function"?WeakSet:Set,wt=null;function rl(s,i){var l=s.ref;if(l!==null)if(typeof l=="function")try{l(null)}catch(f){fn(s,i,f)}else l.current=null}function Au(s,i,l){try{l()}catch(f){fn(s,i,f)}}var Rd=!1;function em(s,i){if(st=ii,s=ai(),Ms(s)){if("selectionStart"in s)var l={start:s.selectionStart,end:s.selectionEnd};else e:{l=(l=s.ownerDocument)&&l.defaultView||window;var f=l.getSelection&&l.getSelection();if(f&&f.rangeCount!==0){l=f.anchorNode;var g=f.anchorOffset,w=f.focusNode;f=f.focusOffset;try{l.nodeType,w.nodeType}catch{l=null;break e}var M=0,Q=-1,oe=-1,Se=0,Ve=0,Ke=s,He=null;t:for(;;){for(var vt;Ke!==l||g!==0&&Ke.nodeType!==3||(Q=M+g),Ke!==w||f!==0&&Ke.nodeType!==3||(oe=M+f),Ke.nodeType===3&&(M+=Ke.nodeValue.length),(vt=Ke.firstChild)!==null;)He=Ke,Ke=vt;for(;;){if(Ke===s)break t;if(He===l&&++Se===g&&(Q=M),He===w&&++Ve===f&&(oe=M),(vt=Ke.nextSibling)!==null)break;Ke=He,He=Ke.parentNode}Ke=vt}l=Q===-1||oe===-1?null:{start:Q,end:oe}}else l=null}l=l||{start:0,end:0}}else l=null;for(Ge={focusedElem:s,selectionRange:l},ii=!1,wt=i;wt!==null;)if(i=wt,s=i.child,(i.subtreeFlags&1028)!==0&&s!==null)s.return=i,wt=s;else for(;wt!==null;){i=wt;try{var St=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(St!==null){var Nt=St.memoizedProps,Wr=St.memoizedState,xe=i.stateNode,fe=xe.getSnapshotBeforeUpdate(i.elementType===i.type?Nt:to(i.type,Nt),Wr);xe.__reactInternalSnapshotBeforeUpdate=fe}break;case 3:var be=i.stateNode.containerInfo;be.nodeType===1?be.textContent="":be.nodeType===9&&be.documentElement&&be.removeChild(be.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(tt){fn(i,i.return,tt)}if(s=i.sibling,s!==null){s.return=i.return,wt=s;break}wt=i.return}return St=Rd,Rd=!1,St}function Hl(s,i,l){var f=i.updateQueue;if(f=f!==null?f.lastEffect:null,f!==null){var g=f=f.next;do{if((g.tag&s)===s){var w=g.destroy;g.destroy=void 0,w!==void 0&&Au(i,l,w)}g=g.next}while(g!==f)}}function Tc(s,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var l=i=i.next;do{if((l.tag&s)===s){var f=l.create;l.destroy=f()}l=l.next}while(l!==i)}}function Mu(s){var i=s.ref;if(i!==null){var l=s.stateNode;switch(s.tag){case 5:s=l;break;default:s=l}typeof i=="function"?i(s):i.current=s}}function Ld(s){var i=s.alternate;i!==null&&(s.alternate=null,Ld(i)),s.child=null,s.deletions=null,s.sibling=null,s.tag===5&&(i=s.stateNode,i!==null&&(delete i[Yr],delete i[Rs],delete i[In],delete i[Ya],delete i[$l])),s.stateNode=null,s.return=null,s.dependencies=null,s.memoizedProps=null,s.memoizedState=null,s.pendingProps=null,s.stateNode=null,s.updateQueue=null}function Pd(s){return s.tag===5||s.tag===3||s.tag===4}function Od(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||Pd(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Tu(s,i,l){var f=s.tag;if(f===5||f===6)s=s.stateNode,i?l.nodeType===8?l.parentNode.insertBefore(s,i):l.insertBefore(s,i):(l.nodeType===8?(i=l.parentNode,i.insertBefore(s,l)):(i=l,i.appendChild(s)),l=l._reactRootContainer,l!=null||i.onclick!==null||(i.onclick=je));else if(f!==4&&(s=s.child,s!==null))for(Tu(s,i,l),s=s.sibling;s!==null;)Tu(s,i,l),s=s.sibling}function zu(s,i,l){var f=s.tag;if(f===5||f===6)s=s.stateNode,i?l.insertBefore(s,i):l.appendChild(s);else if(f!==4&&(s=s.child,s!==null))for(zu(s,i,l),s=s.sibling;s!==null;)zu(s,i,l),s=s.sibling}var Kr=null,Ti=!1;function Xo(s,i,l){for(l=l.child;l!==null;)Id(s,i,l),l=l.sibling}function Id(s,i,l){if(jr&&typeof jr.onCommitFiberUnmount=="function")try{jr.onCommitFiberUnmount(an,l)}catch{}switch(l.tag){case 5:ks||rl(l,i);case 6:var f=Kr,g=Ti;Kr=null,Xo(s,i,l),Kr=f,Ti=g,Kr!==null&&(Ti?(s=Kr,l=l.stateNode,s.nodeType===8?s.parentNode.removeChild(l):s.removeChild(l)):Kr.removeChild(l.stateNode));break;case 18:Kr!==null&&(Ti?(s=Kr,l=l.stateNode,s.nodeType===8?ui(s.parentNode,l):s.nodeType===1&&ui(s,l),ji(s)):ui(Kr,l.stateNode));break;case 4:f=Kr,g=Ti,Kr=l.stateNode.containerInfo,Ti=!0,Xo(s,i,l),Kr=f,Ti=g;break;case 0:case 11:case 14:case 15:if(!ks&&(f=l.updateQueue,f!==null&&(f=f.lastEffect,f!==null))){g=f=f.next;do{var w=g,M=w.destroy;w=w.tag,M!==void 0&&((w&2)!==0||(w&4)!==0)&&Au(l,i,M),g=g.next}while(g!==f)}Xo(s,i,l);break;case 1:if(!ks&&(rl(l,i),f=l.stateNode,typeof f.componentWillUnmount=="function"))try{f.props=l.memoizedProps,f.state=l.memoizedState,f.componentWillUnmount()}catch(Q){fn(l,i,Q)}Xo(s,i,l);break;case 21:Xo(s,i,l);break;case 22:l.mode&1?(ks=(f=ks)||l.memoizedState!==null,Xo(s,i,l),ks=f):Xo(s,i,l);break;default:Xo(s,i,l)}}function Fd(s){var i=s.updateQueue;if(i!==null){s.updateQueue=null;var l=s.stateNode;l===null&&(l=s.stateNode=new Mc),i.forEach(function(f){var g=Li.bind(null,s,f);l.has(f)||(l.add(f),f.then(g,g))})}}function zi(s,i){var l=i.deletions;if(l!==null)for(var f=0;f<l.length;f++){var g=l[f];try{var w=s,M=i,Q=M;e:for(;Q!==null;){switch(Q.tag){case 5:Kr=Q.stateNode,Ti=!1;break e;case 3:Kr=Q.stateNode.containerInfo,Ti=!0;break e;case 4:Kr=Q.stateNode.containerInfo,Ti=!0;break e}Q=Q.return}if(Kr===null)throw Error(r(160));Id(w,M,g),Kr=null,Ti=!1;var oe=g.alternate;oe!==null&&(oe.return=null),g.return=null}catch(Se){fn(g,i,Se)}}if(i.subtreeFlags&12854)for(i=i.child;i!==null;)Dd(i,s),i=i.sibling}function Dd(s,i){var l=s.alternate,f=s.flags;switch(s.tag){case 0:case 11:case 14:case 15:if(zi(i,s),so(s),f&4){try{Hl(3,s,s.return),Tc(3,s)}catch(Nt){fn(s,s.return,Nt)}try{Hl(5,s,s.return)}catch(Nt){fn(s,s.return,Nt)}}break;case 1:zi(i,s),so(s),f&512&&l!==null&&rl(l,l.return);break;case 5:if(zi(i,s),so(s),f&512&&l!==null&&rl(l,l.return),s.flags&32){var g=s.stateNode;try{bt(g,"")}catch(Nt){fn(s,s.return,Nt)}}if(f&4&&(g=s.stateNode,g!=null)){var w=s.memoizedProps,M=l!==null?l.memoizedProps:w,Q=s.type,oe=s.updateQueue;if(s.updateQueue=null,oe!==null)try{Q==="input"&&w.type==="radio"&&w.name!=null&&rt(g,w),ir(Q,M);var Se=ir(Q,w);for(M=0;M<oe.length;M+=2){var Ve=oe[M],Ke=oe[M+1];Ve==="style"?yn(g,Ke):Ve==="dangerouslySetInnerHTML"?$t(g,Ke):Ve==="children"?bt(g,Ke):B(g,Ve,Ke,Se)}switch(Q){case"input":ke(g,w);break;case"textarea":un(g,w);break;case"select":var He=g._wrapperState.wasMultiple;g._wrapperState.wasMultiple=!!w.multiple;var vt=w.value;vt!=null?Lt(g,!!w.multiple,vt,!1):He!==!!w.multiple&&(w.defaultValue!=null?Lt(g,!!w.multiple,w.defaultValue,!0):Lt(g,!!w.multiple,w.multiple?[]:"",!1))}g[Rs]=w}catch(Nt){fn(s,s.return,Nt)}}break;case 6:if(zi(i,s),so(s),f&4){if(s.stateNode===null)throw Error(r(162));g=s.stateNode,w=s.memoizedProps;try{g.nodeValue=w}catch(Nt){fn(s,s.return,Nt)}}break;case 3:if(zi(i,s),so(s),f&4&&l!==null&&l.memoizedState.isDehydrated)try{ji(i.containerInfo)}catch(Nt){fn(s,s.return,Nt)}break;case 4:zi(i,s),so(s);break;case 13:zi(i,s),so(s),g=s.child,g.flags&8192&&(w=g.memoizedState!==null,g.stateNode.isHidden=w,!w||g.alternate!==null&&g.alternate.memoizedState!==null||($e=En())),f&4&&Fd(s);break;case 22:if(Ve=l!==null&&l.memoizedState!==null,s.mode&1?(ks=(Se=ks)||Ve,zi(i,s),ks=Se):zi(i,s),so(s),f&8192){if(Se=s.memoizedState!==null,(s.stateNode.isHidden=Se)&&!Ve&&(s.mode&1)!==0)for(wt=s,Ve=s.child;Ve!==null;){for(Ke=wt=Ve;wt!==null;){switch(He=wt,vt=He.child,He.tag){case 0:case 11:case 14:case 15:Hl(4,He,He.return);break;case 1:rl(He,He.return);var St=He.stateNode;if(typeof St.componentWillUnmount=="function"){f=He,l=He.return;try{i=f,St.props=i.memoizedProps,St.state=i.memoizedState,St.componentWillUnmount()}catch(Nt){fn(f,l,Nt)}}break;case 5:rl(He,He.return);break;case 22:if(He.memoizedState!==null){Wd(Ke);continue}}vt!==null?(vt.return=He,wt=vt):Wd(Ke)}Ve=Ve.sibling}e:for(Ve=null,Ke=s;;){if(Ke.tag===5){if(Ve===null){Ve=Ke;try{g=Ke.stateNode,Se?(w=g.style,typeof w.setProperty=="function"?w.setProperty("display","none","important"):w.display="none"):(Q=Ke.stateNode,oe=Ke.memoizedProps.style,M=oe!=null&&oe.hasOwnProperty("display")?oe.display:null,Q.style.display=ln("display",M))}catch(Nt){fn(s,s.return,Nt)}}}else if(Ke.tag===6){if(Ve===null)try{Ke.stateNode.nodeValue=Se?"":Ke.memoizedProps}catch(Nt){fn(s,s.return,Nt)}}else if((Ke.tag!==22&&Ke.tag!==23||Ke.memoizedState===null||Ke===s)&&Ke.child!==null){Ke.child.return=Ke,Ke=Ke.child;continue}if(Ke===s)break e;for(;Ke.sibling===null;){if(Ke.return===null||Ke.return===s)break e;Ve===Ke&&(Ve=null),Ke=Ke.return}Ve===Ke&&(Ve=null),Ke.sibling.return=Ke.return,Ke=Ke.sibling}}break;case 19:zi(i,s),so(s),f&4&&Fd(s);break;case 21:break;default:zi(i,s),so(s)}}function so(s){var i=s.flags;if(i&2){try{e:{for(var l=s.return;l!==null;){if(Pd(l)){var f=l;break e}l=l.return}throw Error(r(160))}switch(f.tag){case 5:var g=f.stateNode;f.flags&32&&(bt(g,""),f.flags&=-33);var w=Od(s);zu(s,w,g);break;case 3:case 4:var M=f.stateNode.containerInfo,Q=Od(s);Tu(s,Q,M);break;default:throw Error(r(161))}}catch(oe){fn(s,s.return,oe)}s.flags&=-3}i&4096&&(s.flags&=-4097)}function tm(s,i,l){wt=s,Bd(s)}function Bd(s,i,l){for(var f=(s.mode&1)!==0;wt!==null;){var g=wt,w=g.child;if(g.tag===22&&f){var M=g.memoizedState!==null||ko;if(!M){var Q=g.alternate,oe=Q!==null&&Q.memoizedState!==null||ks;Q=ko;var Se=ks;if(ko=M,(ks=oe)&&!Se)for(wt=g;wt!==null;)M=wt,oe=M.child,M.tag===22&&M.memoizedState!==null?qd(g):oe!==null?(oe.return=M,wt=oe):qd(g);for(;w!==null;)wt=w,Bd(w),w=w.sibling;wt=g,ko=Q,ks=Se}Ud(s)}else(g.subtreeFlags&8772)!==0&&w!==null?(w.return=g,wt=w):Ud(s)}}function Ud(s){for(;wt!==null;){var i=wt;if((i.flags&8772)!==0){var l=i.alternate;try{if((i.flags&8772)!==0)switch(i.tag){case 0:case 11:case 15:ks||Tc(5,i);break;case 1:var f=i.stateNode;if(i.flags&4&&!ks)if(l===null)f.componentDidMount();else{var g=i.elementType===i.type?l.memoizedProps:to(i.type,l.memoizedProps);f.componentDidUpdate(g,l.memoizedState,f.__reactInternalSnapshotBeforeUpdate)}var w=i.updateQueue;w!==null&&hd(i,w,f);break;case 3:var M=i.updateQueue;if(M!==null){if(l=null,i.child!==null)switch(i.child.tag){case 5:l=i.child.stateNode;break;case 1:l=i.child.stateNode}hd(i,M,l)}break;case 5:var Q=i.stateNode;if(l===null&&i.flags&4){l=Q;var oe=i.memoizedProps;switch(i.type){case"button":case"input":case"select":case"textarea":oe.autoFocus&&l.focus();break;case"img":oe.src&&(l.src=oe.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(i.memoizedState===null){var Se=i.alternate;if(Se!==null){var Ve=Se.memoizedState;if(Ve!==null){var Ke=Ve.dehydrated;Ke!==null&&ji(Ke)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}ks||i.flags&512&&Mu(i)}catch(He){fn(i,i.return,He)}}if(i===s){wt=null;break}if(l=i.sibling,l!==null){l.return=i.return,wt=l;break}wt=i.return}}function Wd(s){for(;wt!==null;){var i=wt;if(i===s){wt=null;break}var l=i.sibling;if(l!==null){l.return=i.return,wt=l;break}wt=i.return}}function qd(s){for(;wt!==null;){var i=wt;try{switch(i.tag){case 0:case 11:case 15:var l=i.return;try{Tc(4,i)}catch(oe){fn(i,l,oe)}break;case 1:var f=i.stateNode;if(typeof f.componentDidMount=="function"){var g=i.return;try{f.componentDidMount()}catch(oe){fn(i,g,oe)}}var w=i.return;try{Mu(i)}catch(oe){fn(i,w,oe)}break;case 5:var M=i.return;try{Mu(i)}catch(oe){fn(i,M,oe)}}}catch(oe){fn(i,i.return,oe)}if(i===s){wt=null;break}var Q=i.sibling;if(Q!==null){Q.return=i.return,wt=Q;break}wt=i.return}}var nm=Math.ceil,zc=I.ReactCurrentDispatcher,Ru=I.ReactCurrentOwner,hi=I.ReactCurrentBatchConfig,Mn=0,Br=null,wr=null,Zr=0,ei=0,y=Ji(0),k=0,E=null,R=0,V=0,J=0,ne=null,ee=null,$e=0,D=1/0,_e=null,Ue=!1,Qe=null,Je=null,it=!1,Ze=null,xt=0,Yt=0,cn=null,Ye=-1,et=0;function ht(){return(Mn&6)!==0?En():Ye!==-1?Ye:Ye=En()}function Ht(s){return(s.mode&1)===0?1:(Mn&2)!==0&&Zr!==0?Zr&-Zr:hh.transition!==null?(et===0&&(et=mr()),et):(s=en,s!==0||(s=window.event,s=s===void 0?16:ze(s.type)),s)}function jt(s,i,l,f){if(50<Yt)throw Yt=0,cn=null,Error(r(185));Pr(s,l,f),((Mn&2)===0||s!==Br)&&(s===Br&&((Mn&2)===0&&(V|=l),k===4&&ka(s,Zr)),bn(s,f),l===1&&Mn===0&&(i.mode&1)===0&&(D=En()+500,fc&&xa()))}function bn(s,i){var l=s.callbackNode;Xe(s,i);var f=Te(s,s===Br?Zr:0);if(f===0)l!==null&&Ao(l),s.callbackNode=null,s.callbackPriority=0;else if(i=f&-f,s.callbackPriority!==i){if(l!=null&&Ao(l),i===1)s.tag===0?mh(rm.bind(null,s)):mc(rm.bind(null,s)),Zn(function(){(Mn&6)===0&&xa()}),l=null;else{switch(is(f)){case 1:l=Di;break;case 4:l=Tr;break;case 16:l=er;break;case 536870912:l=Ct;break;default:l=er}l=Iu(l,ti.bind(null,s))}s.callbackPriority=i,s.callbackNode=l}}function ti(s,i){if(Ye=-1,et=0,(Mn&6)!==0)throw Error(r(327));var l=s.callbackNode;if(Jo()&&s.callbackNode!==l)return null;var f=Te(s,s===Br?Zr:0);if(f===0)return null;if((f&30)!==0||(f&s.expiredLanes)!==0||i)i=pi(s,f);else{i=f;var g=Mn;Mn|=2;var w=sl();(Br!==s||Zr!==i)&&(_e=null,D=En()+500,yt(s,i));do try{Hd();break}catch(Q){No(s,Q)}while(!0);xr(),zc.current=w,Mn=g,wr!==null?i=0:(Br=null,Zr=0,i=k)}if(i!==0){if(i===2&&(g=Pn(s),g!==0&&(f=g,i=io(s,g))),i===1)throw l=E,yt(s,0),ka(s,f),bn(s,En()),l;if(i===6)ka(s,f);else{if(g=s.current.alternate,(f&30)===0&&!Ur(g)&&(i=pi(s,f),i===2&&(w=Pn(s),w!==0&&(f=w,i=io(s,w))),i===1))throw l=E,yt(s,0),ka(s,f),bn(s,En()),l;switch(s.finishedWork=g,s.finishedLanes=f,i){case 0:case 1:throw Error(r(345));case 2:Ca(s,ee,_e);break;case 3:if(ka(s,f),(f&130023424)===f&&(i=$e+500-En(),10<i)){if(Te(s,0)!==0)break;if(g=s.suspendedLanes,(g&f)!==f){ht(),s.pingedLanes|=s.suspendedLanes&g;break}s.timeoutHandle=lt(Ca.bind(null,s,ee,_e),i);break}Ca(s,ee,_e);break;case 4:if(ka(s,f),(f&4194240)===f)break;for(i=s.eventTimes,g=-1;0<f;){var M=31-zr(f);w=1<<M,M=i[M],M>g&&(g=M),f&=~w}if(f=g,f=En()-f,f=(120>f?120:480>f?480:1080>f?1080:1920>f?1920:3e3>f?3e3:4320>f?4320:1960*nm(f/1960))-f,10<f){s.timeoutHandle=lt(Ca.bind(null,s,ee,_e),f);break}Ca(s,ee,_e);break;case 5:Ca(s,ee,_e);break;default:throw Error(r(329))}}}return bn(s,En()),s.callbackNode===l?ti.bind(null,s):null}function io(s,i){var l=ne;return s.current.memoizedState.isDehydrated&&(yt(s,i).flags|=256),s=pi(s,i),s!==2&&(i=ee,ee=l,i!==null&&_i(i)),s}function _i(s){ee===null?ee=s:ee.push.apply(ee,s)}function Ur(s){for(var i=s;;){if(i.flags&16384){var l=i.updateQueue;if(l!==null&&(l=l.stores,l!==null))for(var f=0;f<l.length;f++){var g=l[f],w=g.getSnapshot;g=g.value;try{if(!tr(w(),g))return!1}catch{return!1}}}if(l=i.child,i.subtreeFlags&16384&&l!==null)l.return=i,i=l;else{if(i===s)break;for(;i.sibling===null;){if(i.return===null||i.return===s)return!0;i=i.return}i.sibling.return=i.return,i=i.sibling}}return!0}function ka(s,i){for(i&=~J,i&=~V,s.suspendedLanes|=i,s.pingedLanes&=~i,s=s.expirationTimes;0<i;){var l=31-zr(i),f=1<<l;s[l]=-1,i&=~f}}function rm(s){if((Mn&6)!==0)throw Error(r(327));Jo();var i=Te(s,0);if((i&1)===0)return bn(s,En()),null;var l=pi(s,i);if(s.tag!==0&&l===2){var f=Pn(s);f!==0&&(i=f,l=io(s,f))}if(l===1)throw l=E,yt(s,0),ka(s,i),bn(s,En()),l;if(l===6)throw Error(r(345));return s.finishedWork=s.current.alternate,s.finishedLanes=i,Ca(s,ee,_e),bn(s,En()),null}function Lu(s,i){var l=Mn;Mn|=1;try{return s(i)}finally{Mn=l,Mn===0&&(D=En()+500,fc&&xa())}}function Na(s){Ze!==null&&Ze.tag===0&&(Mn&6)===0&&Jo();var i=Mn;Mn|=1;var l=hi.transition,f=en;try{if(hi.transition=null,en=1,s)return s()}finally{en=f,hi.transition=l,Mn=i,(Mn&6)===0&&xa()}}function Pu(){ei=y.current,Qn(y)}function yt(s,i){s.finishedWork=null,s.finishedLanes=0;var l=s.timeoutHandle;if(l!==-1&&(s.timeoutHandle=-1,pn(l)),wr!==null)for(l=wr.return;l!==null;){var f=l;switch(ls(f),f.tag){case 1:f=f.type.childContextTypes,f!=null&&Tl();break;case 3:ba(),Qn(Ys),Qn(Ir),ja();break;case 5:fu(f);break;case 4:ba();break;case 13:Qn(gr);break;case 19:Qn(gr);break;case 10:uu(f.type._context);break;case 22:case 23:Pu()}l=l.return}if(Br=s,wr=s=Gl(s.current,null),Zr=ei=i,k=0,E=null,J=V=R=0,ee=ne=null,bo!==null){for(i=0;i<bo.length;i++)if(l=bo[i],f=l.interleaved,f!==null){l.interleaved=null;var g=f.next,w=l.pending;if(w!==null){var M=w.next;w.next=g,f.next=M}l.pending=f}bo=null}return s}function No(s,i){do{var l=wr;try{if(xr(),_u.current=bu,bc){for(var f=Xn.memoizedState;f!==null;){var g=f.queue;g!==null&&(g.pending=null),f=f.next}bc=!1}if(Qa=0,Dr=Ar=Xn=null,jc=!1,Sc=0,Ru.current=null,l===null||l.return===null){k=1,E=i,wr=null;break}e:{var w=s,M=l.return,Q=l,oe=i;if(i=Zr,Q.flags|=32768,oe!==null&&typeof oe=="object"&&typeof oe.then=="function"){var Se=oe,Ve=Q,Ke=Ve.tag;if((Ve.mode&1)===0&&(Ke===0||Ke===11||Ke===15)){var He=Ve.alternate;He?(Ve.updateQueue=He.updateQueue,Ve.memoizedState=He.memoizedState,Ve.lanes=He.lanes):(Ve.updateQueue=null,Ve.memoizedState=null)}var vt=So(M);if(vt!==null){vt.flags&=-257,Yf(vt,M,Q,w,i),vt.mode&1&&Ed(w,Se,i),i=vt,oe=Se;var St=i.updateQueue;if(St===null){var Nt=new Set;Nt.add(oe),i.updateQueue=Nt}else St.add(oe);break e}else{if((i&1)===0){Ed(w,Se,i),Ri();break e}oe=Error(r(426))}}else if(sr&&Q.mode&1){var Wr=So(M);if(Wr!==null){(Wr.flags&65536)===0&&(Wr.flags|=256),Yf(Wr,M,Q,w,i),dd(Ul(oe,Q));break e}}w=oe=Ul(oe,Q),k!==4&&(k=2),ne===null?ne=[w]:ne.push(w),w=M;do{switch(w.tag){case 3:w.flags|=65536,i&=-i,w.lanes|=i;var xe=Cd(w,oe,i);If(w,xe);break e;case 1:Q=oe;var fe=w.type,be=w.stateNode;if((w.flags&128)===0&&(typeof fe.getDerivedStateFromError=="function"||be!==null&&typeof be.componentDidCatch=="function"&&(Je===null||!Je.has(be)))){w.flags|=65536,i&=-i,w.lanes|=i;var tt=Bt(w,Q,i);If(w,tt);break e}}w=w.return}while(w!==null)}Rc(l)}catch(Mt){i=Mt,wr===l&&l!==null&&(wr=l=l.return);continue}break}while(!0)}function sl(){var s=zc.current;return zc.current=bu,s===null?bu:s}function Ri(){(k===0||k===3||k===2)&&(k=4),Br===null||(R&268435455)===0&&(V&268435455)===0||ka(Br,Zr)}function pi(s,i){var l=Mn;Mn|=2;var f=sl();(Br!==s||Zr!==i)&&(_e=null,yt(s,i));do try{Vl();break}catch(g){No(s,g)}while(!0);if(xr(),Mn=l,zc.current=f,wr!==null)throw Error(r(261));return Br=null,Zr=0,k}function Vl(){for(;wr!==null;)Vd(wr)}function Hd(){for(;wr!==null&&!co();)Vd(wr)}function Vd(s){var i=Ou(s.alternate,s,ei);s.memoizedProps=s.pendingProps,i===null?Rc(s):wr=i,Ru.current=null}function Rc(s){var i=s;do{var l=i.alternate;if(s=i.return,(i.flags&32768)===0){if(l=yh(l,i,ei),l!==null){wr=l;return}}else{if(l=Ac(l,i),l!==null){l.flags&=32767,wr=l;return}if(s!==null)s.flags|=32768,s.subtreeFlags=0,s.deletions=null;else{k=6,wr=null;return}}if(i=i.sibling,i!==null){wr=i;return}wr=i=s}while(i!==null);k===0&&(k=5)}function Ca(s,i,l){var f=en,g=hi.transition;try{hi.transition=null,en=1,Gd(s,i,l,f)}finally{hi.transition=g,en=f}return null}function Gd(s,i,l,f){do Jo();while(Ze!==null);if((Mn&6)!==0)throw Error(r(327));l=s.finishedWork;var g=s.finishedLanes;if(l===null)return null;if(s.finishedWork=null,s.finishedLanes=0,l===s.current)throw Error(r(177));s.callbackNode=null,s.callbackPriority=0;var w=l.lanes|l.childLanes;if(Or(s,w),s===Br&&(wr=Br=null,Zr=0),(l.subtreeFlags&2064)===0&&(l.flags&2064)===0||it||(it=!0,Iu(er,function(){return Jo(),null})),w=(l.flags&15990)!==0,(l.subtreeFlags&15990)!==0||w){w=hi.transition,hi.transition=null;var M=en;en=1;var Q=Mn;Mn|=4,Ru.current=null,em(s,l),Dd(l,s),vo(Ge),ii=!!st,Ge=st=null,s.current=l,tm(l),ys(),Mn=Q,en=M,hi.transition=w}else s.current=l;if(it&&(it=!1,Ze=s,xt=g),w=s.pendingLanes,w===0&&(Je=null),Es(l.stateNode),bn(s,En()),i!==null)for(f=s.onRecoverableError,l=0;l<i.length;l++)g=i[l],f(g.value,{componentStack:g.stack,digest:g.digest});if(Ue)throw Ue=!1,s=Qe,Qe=null,s;return(xt&1)!==0&&s.tag!==0&&Jo(),w=s.pendingLanes,(w&1)!==0?s===cn?Yt++:(Yt=0,cn=s):Yt=0,xa(),null}function Jo(){if(Ze!==null){var s=is(xt),i=hi.transition,l=en;try{if(hi.transition=null,en=16>s?16:s,Ze===null)var f=!1;else{if(s=Ze,Ze=null,xt=0,(Mn&6)!==0)throw Error(r(331));var g=Mn;for(Mn|=4,wt=s.current;wt!==null;){var w=wt,M=w.child;if((wt.flags&16)!==0){var Q=w.deletions;if(Q!==null){for(var oe=0;oe<Q.length;oe++){var Se=Q[oe];for(wt=Se;wt!==null;){var Ve=wt;switch(Ve.tag){case 0:case 11:case 15:Hl(8,Ve,w)}var Ke=Ve.child;if(Ke!==null)Ke.return=Ve,wt=Ke;else for(;wt!==null;){Ve=wt;var He=Ve.sibling,vt=Ve.return;if(Ld(Ve),Ve===Se){wt=null;break}if(He!==null){He.return=vt,wt=He;break}wt=vt}}}var St=w.alternate;if(St!==null){var Nt=St.child;if(Nt!==null){St.child=null;do{var Wr=Nt.sibling;Nt.sibling=null,Nt=Wr}while(Nt!==null)}}wt=w}}if((w.subtreeFlags&2064)!==0&&M!==null)M.return=w,wt=M;else e:for(;wt!==null;){if(w=wt,(w.flags&2048)!==0)switch(w.tag){case 0:case 11:case 15:Hl(9,w,w.return)}var xe=w.sibling;if(xe!==null){xe.return=w.return,wt=xe;break e}wt=w.return}}var fe=s.current;for(wt=fe;wt!==null;){M=wt;var be=M.child;if((M.subtreeFlags&2064)!==0&&be!==null)be.return=M,wt=be;else e:for(M=fe;wt!==null;){if(Q=wt,(Q.flags&2048)!==0)try{switch(Q.tag){case 0:case 11:case 15:Tc(9,Q)}}catch(Mt){fn(Q,Q.return,Mt)}if(Q===M){wt=null;break e}var tt=Q.sibling;if(tt!==null){tt.return=Q.return,wt=tt;break e}wt=Q.return}}if(Mn=g,xa(),jr&&typeof jr.onPostCommitFiberRoot=="function")try{jr.onPostCommitFiberRoot(an,s)}catch{}f=!0}return f}finally{en=l,hi.transition=i}}return!1}function vr(s,i,l){i=Ul(l,i),i=Cd(s,i,1),s=Wo(s,i,1),i=ht(),s!==null&&(Pr(s,1,i),bn(s,i))}function fn(s,i,l){if(s.tag===3)vr(s,s,l);else for(;i!==null;){if(i.tag===3){vr(i,s,l);break}else if(i.tag===1){var f=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof f.componentDidCatch=="function"&&(Je===null||!Je.has(f))){s=Ul(l,s),s=Bt(i,s,1),i=Wo(i,s,1),s=ht(),i!==null&&(Pr(i,1,s),bn(i,s));break}}i=i.return}}function Is(s,i,l){var f=s.pingCache;f!==null&&f.delete(i),i=ht(),s.pingedLanes|=s.suspendedLanes&l,Br===s&&(Zr&l)===l&&(k===4||k===3&&(Zr&130023424)===Zr&&500>En()-$e?yt(s,0):J|=l),bn(s,i)}function Co(s,i){i===0&&((s.mode&1)===0?i=1:(i=qr,qr<<=1,(qr&130023424)===0&&(qr=4194304)));var l=ht();s=Uo(s,i),s!==null&&(Pr(s,i,l),bn(s,l))}function Ko(s){var i=s.memoizedState,l=0;i!==null&&(l=i.retryLane),Co(s,l)}function Li(s,i){var l=0;switch(s.tag){case 13:var f=s.stateNode,g=s.memoizedState;g!==null&&(l=g.retryLane);break;case 19:f=s.stateNode;break;default:throw Error(r(314))}f!==null&&f.delete(i),Co(s,l)}var Ou;Ou=function(s,i,l){if(s!==null)if(s.memoizedProps!==i.pendingProps||Ys.current)Os=!0;else{if((s.lanes&l)===0&&(i.flags&128)===0)return Os=!1,Zf(s,i,l);Os=(s.flags&131072)!==0}else Os=!1,sr&&(i.flags&1048576)!==0&&hc(i,iu,i.index);switch(i.lanes=0,i.tag){case 2:var f=i.type;ro(s,i),s=i.pendingProps;var g=Xa(i,Ir.current);cs(i,l),g=pd(null,i,f,s,g,l);var w=gd();return i.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,Xr(f)?(w=!0,dc(i)):w=!1,i.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Fr(i),g.updater=Qs,i.stateNode=g,g._reactInternals=i,Nd(i,f,s,l),i=Wl(null,i,f,!0,w,l)):(i.tag=0,sr&&w&&ou(i),us(null,i,g,l),i=i.child),i;case 16:f=i.elementType;e:{switch(ro(s,i),s=i.pendingProps,g=f._init,f=g(f._payload),i.type=f,g=i.tag=Rv(f),s=to(f,s),g){case 0:i=Cc(null,i,f,s,l);break e;case 1:i=ds(null,i,f,s,l);break e;case 11:i=no(null,i,f,s,l);break e;case 14:i=Nc(null,i,f,to(f.type,s),l);break e}throw Error(r(306,f,""))}return i;case 0:return f=i.type,g=i.pendingProps,g=i.elementType===f?g:to(f,g),Cc(s,i,f,g,l);case 1:return f=i.type,g=i.pendingProps,g=i.elementType===f?g:to(f,g),ds(s,i,f,g,l);case 3:e:{if(Jf(i),s===null)throw Error(r(387));f=i.pendingProps,w=i.memoizedState,g=w.element,Za(s,i),du(i,f,null,l);var M=i.memoizedState;if(f=M.element,w.isDehydrated)if(w={element:f,isDehydrated:!1,cache:M.cache,pendingSuspenseBoundaries:M.pendingSuspenseBoundaries,transitions:M.transitions},i.updateQueue.baseState=w,i.memoizedState=w,i.flags&256){g=Ul(Error(r(423)),i),i=$d(s,i,f,l,g);break e}else if(f!==g){g=Ul(Error(r(424)),i),i=$d(s,i,f,l,g);break e}else for(Gn=Gr(i.stateNode.containerInfo.firstChild),tn=i,sr=!0,Ai=null,l=Pf(i,null,f,l),i.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling;else{if(Ka(),f===g){i=Go(s,i,l);break e}us(s,i,f,l)}i=i.child}return i;case 5:return wc(i),s===null&&ud(i),f=i.type,g=i.pendingProps,w=s!==null?s.memoizedProps:null,M=g.children,nt(f,g)?M=null:w!==null&&nt(f,w)&&(i.flags|=32),ku(s,i),us(s,i,M,l),i.child;case 6:return s===null&&ud(i),null;case 13:return Md(s,i,l);case 4:return Ls(i,i.stateNode.containerInfo),f=i.pendingProps,s===null?i.child=Ol(i,null,f,l):us(s,i,f,l),i.child;case 11:return f=i.type,g=i.pendingProps,g=i.elementType===f?g:to(f,g),no(s,i,f,g,l);case 7:return us(s,i,i.pendingProps,l),i.child;case 8:return us(s,i,i.pendingProps.children,l),i.child;case 12:return us(s,i,i.pendingProps.children,l),i.child;case 10:e:{if(f=i.type._context,g=i.pendingProps,w=i.memoizedProps,M=g.value,rr(cu,f._currentValue),f._currentValue=M,w!==null)if(tr(w.value,M)){if(w.children===g.children&&!Ys.current){i=Go(s,i,l);break e}}else for(w=i.child,w!==null&&(w.return=i);w!==null;){var Q=w.dependencies;if(Q!==null){M=w.child;for(var oe=Q.firstContext;oe!==null;){if(oe.context===f){if(w.tag===1){oe=Yn(-1,l&-l),oe.tag=2;var Se=w.updateQueue;if(Se!==null){Se=Se.shared;var Ve=Se.pending;Ve===null?oe.next=oe:(oe.next=Ve.next,Ve.next=oe),Se.pending=oe}}w.lanes|=l,oe=w.alternate,oe!==null&&(oe.lanes|=l),gc(w.return,l,i),Q.lanes|=l;break}oe=oe.next}}else if(w.tag===10)M=w.type===i.type?null:w.child;else if(w.tag===18){if(M=w.return,M===null)throw Error(r(341));M.lanes|=l,Q=M.alternate,Q!==null&&(Q.lanes|=l),gc(M,l,i),M=w.sibling}else M=w.child;if(M!==null)M.return=w;else for(M=w;M!==null;){if(M===i){M=null;break}if(w=M.sibling,w!==null){w.return=M.return,M=w;break}M=M.return}w=M}us(s,i,g.children,l),i=i.child}return i;case 9:return g=i.type,f=i.pendingProps.children,cs(i,l),g=Mi(g),f=f(g),i.flags|=1,us(s,i,f,l),i.child;case 14:return f=i.type,g=to(f,i.pendingProps),g=to(f.type,g),Nc(s,i,f,g,l);case 15:return Xf(s,i,i.type,i.pendingProps,l);case 17:return f=i.type,g=i.pendingProps,g=i.elementType===f?g:to(f,g),ro(s,i),i.tag=1,Xr(f)?(s=!0,dc(i)):s=!1,cs(i,l),Sd(i,f,g),Nd(i,f,g,l),Wl(null,i,f,!0,s,l);case 19:return zd(s,i,l);case 22:return Vo(s,i,l)}throw Error(r(156,i.tag))};function Iu(s,i){return Ds(s,i)}function il(s,i,l,f){this.tag=s,this.key=l,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 ms(s,i,l,f){return new il(s,i,l,f)}function Ea(s){return s=s.prototype,!(!s||!s.isReactComponent)}function Rv(s){if(typeof s=="function")return Ea(s)?1:0;if(s!=null){if(s=s.$$typeof,s===W)return 11;if(s===G)return 14}return 2}function Gl(s,i){var l=s.alternate;return l===null?(l=ms(s.tag,i,s.key,s.mode),l.elementType=s.elementType,l.type=s.type,l.stateNode=s.stateNode,l.alternate=s,s.alternate=l):(l.pendingProps=i,l.type=s.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=s.flags&14680064,l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,i=s.dependencies,l.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},l.sibling=s.sibling,l.index=s.index,l.ref=s.ref,l}function sm(s,i,l,f,g,w){var M=2;if(f=s,typeof s=="function")Ea(s)&&(M=1);else if(typeof s=="string")M=5;else e:switch(s){case K:return Lc(l.children,g,w,i);case le:M=8,g|=8;break;case ce:return s=ms(12,l,i,g|2),s.elementType=ce,s.lanes=w,s;case z:return s=ms(13,l,i,g),s.elementType=z,s.lanes=w,s;case P:return s=ms(19,l,i,g),s.elementType=P,s.lanes=w,s;case re:return im(l,g,w,i);default:if(typeof s=="object"&&s!==null)switch(s.$$typeof){case pe:M=10;break e;case Re:M=9;break e;case W:M=11;break e;case G:M=14;break e;case H:M=16,f=null;break e}throw Error(r(130,s==null?s:typeof s,""))}return i=ms(M,l,i,g),i.elementType=s,i.type=f,i.lanes=w,i}function Lc(s,i,l,f){return s=ms(7,s,f,i),s.lanes=l,s}function im(s,i,l,f){return s=ms(22,s,f,i),s.elementType=re,s.lanes=l,s.stateNode={isHidden:!1},s}function xh(s,i,l){return s=ms(6,s,null,i),s.lanes=l,s}function vh(s,i,l){return i=ms(4,s.children!==null?s.children:[],s.key,i),i.lanes=l,i.stateNode={containerInfo:s.containerInfo,pendingChildren:null,implementation:s.implementation},i}function Lv(s,i,l,f,g){this.tag=i,this.containerInfo=s,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Lr(0),this.expirationTimes=Lr(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Lr(0),this.identifierPrefix=f,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function wh(s,i,l,f,g,w,M,Q,oe){return s=new Lv(s,i,l,Q,oe),i===1?(i=1,w===!0&&(i|=8)):i=0,w=ms(3,null,null,i),s.current=w,w.stateNode=s,w.memoizedState={element:f,isDehydrated:l,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fr(w),s}function Pv(s,i,l){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:te,key:f==null?null:""+f,children:s,containerInfo:i,implementation:l}}function bp(s){if(!s)return ya;s=s._reactInternals;e:{if(Un(s)!==s||s.tag!==1)throw Error(r(170));var i=s;do{switch(i.tag){case 3:i=i.stateNode.context;break e;case 1:if(Xr(i.type)){i=i.stateNode.__reactInternalMemoizedMergedChildContext;break e}}i=i.return}while(i!==null);throw Error(r(171))}if(s.tag===1){var l=s.type;if(Xr(l))return ld(s,l,i)}return i}function jp(s,i,l,f,g,w,M,Q,oe){return s=wh(l,f,!0,s,g,w,M,Q,oe),s.context=bp(null),l=s.current,f=ht(),g=Ht(l),w=Yn(f,g),w.callback=i??null,Wo(l,w,g),s.current.lanes=g,Pr(s,g,f),bn(s,f),s}function om(s,i,l,f){var g=i.current,w=ht(),M=Ht(g);return l=bp(l),i.context===null?i.context=l:i.pendingContext=l,i=Yn(w,M),i.payload={element:s},f=f===void 0?null:f,f!==null&&(i.callback=f),s=Wo(g,i,M),s!==null&&(jt(s,g,M,w),yc(s,g,M)),M}function am(s){if(s=s.current,!s.child)return null;switch(s.child.tag){case 5:return s.child.stateNode;default:return s.child.stateNode}}function Sp(s,i){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var l=s.retryLane;s.retryLane=l!==0&&l<i?l:i}}function bh(s,i){Sp(s,i),(s=s.alternate)&&Sp(s,i)}function Ov(){return null}var kp=typeof reportError=="function"?reportError:function(s){console.error(s)};function jh(s){this._internalRoot=s}lm.prototype.render=jh.prototype.render=function(s){var i=this._internalRoot;if(i===null)throw Error(r(409));om(s,i,null,null)},lm.prototype.unmount=jh.prototype.unmount=function(){var s=this._internalRoot;if(s!==null){this._internalRoot=null;var i=s.containerInfo;Na(function(){om(null,s,null,null)}),i[yr]=null}};function lm(s){this._internalRoot=s}lm.prototype.unstable_scheduleHydration=function(s){if(s){var i=or();s={blockedOn:null,target:s,priority:i};for(var l=0;l<ws.length&&i!==0&&i<ws[l].priority;l++);ws.splice(l,0,s),l===0&&wi(s)}};function Sh(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11)}function cm(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11&&(s.nodeType!==8||s.nodeValue!==" react-mount-point-unstable "))}function Np(){}function Iv(s,i,l,f,g){if(g){if(typeof f=="function"){var w=f;f=function(){var Se=am(M);w.call(Se)}}var M=jp(i,f,s,0,null,!1,!1,"",Np);return s._reactRootContainer=M,s[yr]=M.current,ga(s.nodeType===8?s.parentNode:s),Na(),M}for(;g=s.lastChild;)s.removeChild(g);if(typeof f=="function"){var Q=f;f=function(){var Se=am(oe);Q.call(Se)}}var oe=wh(s,0,!1,null,null,!1,!1,"",Np);return s._reactRootContainer=oe,s[yr]=oe.current,ga(s.nodeType===8?s.parentNode:s),Na(function(){om(i,oe,l,f)}),oe}function um(s,i,l,f,g){var w=l._reactRootContainer;if(w){var M=w;if(typeof g=="function"){var Q=g;g=function(){var oe=am(M);Q.call(oe)}}om(i,M,s,g)}else M=Iv(l,i,s,g,f);return am(M)}As=function(s){switch(s.tag){case 3:var i=s.stateNode;if(i.current.memoizedState.isDehydrated){var l=Jn(i.pendingLanes);l!==0&&(uo(i,l|1),bn(i,En()),(Mn&6)===0&&(D=En()+500,xa()))}break;case 13:Na(function(){var f=Uo(s,1);if(f!==null){var g=ht();jt(f,s,1,g)}}),bh(s,1)}},xi=function(s){if(s.tag===13){var i=Uo(s,134217728);if(i!==null){var l=ht();jt(i,s,134217728,l)}bh(s,134217728)}},hr=function(s){if(s.tag===13){var i=Ht(s),l=Uo(s,i);if(l!==null){var f=ht();jt(l,s,i,f)}bh(s,i)}},or=function(){return en},ni=function(s,i){var l=en;try{return en=s,i()}finally{en=l}},ps=function(s,i,l){switch(i){case"input":if(ke(s,l),i=l.name,l.type==="radio"&&i!=null){for(l=s;l.parentNode;)l=l.parentNode;for(l=l.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),i=0;i<l.length;i++){var f=l[i];if(f!==s&&f.form===s.form){var g=nu(f);if(!g)throw Error(r(90));me(f),ke(f,g)}}}break;case"textarea":un(s,l);break;case"select":i=l.value,i!=null&&Lt(s,!!l.multiple,i,!1)}},kt=Lu,Tt=Na;var Fv={usingClientEntryPoint:!1,Events:[Al,Ml,nu,gt,dt,Lu]},Yd={findFiberByHostInstance:Gs,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Dv={bundleType:Yd.bundleType,version:Yd.version,rendererPackageName:Yd.rendererPackageName,rendererConfig:Yd.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:I.ReactCurrentDispatcher,findHostInstanceByFiber:function(s){return s=rs(s),s===null?null:s.stateNode},findFiberByHostInstance:Yd.findFiberByHostInstance||Ov,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 dm=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!dm.isDisabled&&dm.supportsFiber)try{an=dm.inject(Dv),jr=dm}catch{}}return Pi.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Fv,Pi.createPortal=function(s,i){var l=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Sh(i))throw Error(r(200));return Pv(s,i,null,l)},Pi.createRoot=function(s,i){if(!Sh(s))throw Error(r(299));var l=!1,f="",g=kp;return i!=null&&(i.unstable_strictMode===!0&&(l=!0),i.identifierPrefix!==void 0&&(f=i.identifierPrefix),i.onRecoverableError!==void 0&&(g=i.onRecoverableError)),i=wh(s,1,!1,null,null,l,!1,f,g),s[yr]=i.current,ga(s.nodeType===8?s.parentNode:s),new jh(i)},Pi.findDOMNode=function(s){if(s==null)return null;if(s.nodeType===1)return s;var i=s._reactInternals;if(i===void 0)throw typeof s.render=="function"?Error(r(188)):(s=Object.keys(s).join(","),Error(r(268,s)));return s=rs(i),s=s===null?null:s.stateNode,s},Pi.flushSync=function(s){return Na(s)},Pi.hydrate=function(s,i,l){if(!cm(i))throw Error(r(200));return um(null,s,i,!0,l)},Pi.hydrateRoot=function(s,i,l){if(!Sh(s))throw Error(r(405));var f=l!=null&&l.hydratedSources||null,g=!1,w="",M=kp;if(l!=null&&(l.unstable_strictMode===!0&&(g=!0),l.identifierPrefix!==void 0&&(w=l.identifierPrefix),l.onRecoverableError!==void 0&&(M=l.onRecoverableError)),i=jp(i,null,s,1,l??null,g,!1,w,M),s[yr]=i.current,ga(s),f)for(s=0;s<f.length;s++)l=f[s],g=l._getVersion,g=g(l._source),i.mutableSourceEagerHydrationData==null?i.mutableSourceEagerHydrationData=[l,g]:i.mutableSourceEagerHydrationData.push(l,g);return new lm(i)},Pi.render=function(s,i,l){if(!cm(i))throw Error(r(200));return um(null,s,i,!1,l)},Pi.unmountComponentAtNode=function(s){if(!cm(s))throw Error(r(40));return s._reactRootContainer?(Na(function(){um(null,null,s,!1,function(){s._reactRootContainer=null,s[yr]=null})}),!0):!1},Pi.unstable_batchedUpdates=Lu,Pi.unstable_renderSubtreeIntoContainer=function(s,i,l,f){if(!cm(l))throw Error(r(200));if(s==null||s._reactInternals===void 0)throw Error(r(38));return um(s,i,l,!1,f)},Pi.version="18.3.1-next-f1338f8080-20240426",Pi}var Rp;function hy(){if(Rp)return Ch.exports;Rp=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(),Ch.exports=Xv(),Ch.exports}var Lp;function Jv(){if(Lp)return fm;Lp=1;var e=hy();return fm.createRoot=e.createRoot,fm.hydrateRoot=e.hydrateRoot,fm}var Kv=Jv();const Zv=G_(Kv),Qv=3,ew=Number.MAX_SAFE_INTEGER;function _y(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function py(e){return Array.isArray(e)}function tw(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 nw(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function rw(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 Gu({kind:e,children:t}){return n.jsx("span",{className:`json-token ${e}`,children:t})}function sw(e){const t=JSON.stringify(e.value),r=t.length>96||t.includes("\\n")||t.includes("\\r")||t.includes("\\t"),[o,a]=h.useState(!r||e.expansion_mode==="unfolded");return h.useEffect(()=>{r&&a(e.expansion_mode==="unfolded")},[r,e.expansion_mode,e.expansion_version]),r?n.jsxs("span",{className:`json-string ${o?"open":"collapsed"}`,children:[n.jsx("button",{type:"button",className:"json-string__toggle",onClick:()=>a(c=>!c),"aria-label":o?"Collapse string value":"Expand string value","aria-expanded":o,children:o?"▾":"▸"}),o?n.jsx("span",{className:"json-token string json-string__value",children:t}):n.jsxs("button",{type:"button",className:"json-string__preview",onClick:()=>a(!0),"aria-label":"Expand string value",children:[n.jsx("span",{className:"json-token string json-string__preview_text",children:t}),n.jsx("span",{className:"json-string__suffix",children:"(...)"})]})]}):n.jsx(Gu,{kind:"string",children:t})}function iw(e,t,r){return e===null?n.jsx(Gu,{kind:"null",children:"null"}):typeof e=="string"?n.jsx(sw,{value:e,expansion_mode:t,expansion_version:r}):typeof e=="number"?n.jsx(Gu,{kind:"number",children:String(e)}):typeof e=="boolean"?n.jsx(Gu,{kind:"boolean",children:e?"true":"false"}):n.jsx(Gu,{kind:"string",children:JSON.stringify(String(e))})}function ow(e){return py(e)?e.length===1?"1 item":`${e.length} items`:_y(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function gy(e){const{label:t,value:r,depth:o,collapse_after_depth:a,expansion_mode:c,expansion_version:u,trailing_comma:d}=e,m=o*14,_=_y(r),p=py(r),x=_||p,v=o<a,[b,S]=h.useState(v);h.useEffect(()=>{S(v)},[v,u]);const j=t?n.jsxs(n.Fragment,{children:[n.jsx(Gu,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!x)return n.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:m},children:[j,iw(r,c,u),d?",":""]});const $=p?"[":"{",T=p?"]":"}",F=ow(r),B=b?`${$}`:`${$}…${T}${F?` (${F})`:""}`,I=p?r.map((U,te)=>({key:String(te),label:void 0,value:U})):Object.entries(r).map(([U,te])=>({key:U,label:U,value:te}));return n.jsxs("details",{className:"json-viewer__details",open:b,onToggle:U=>S(U.currentTarget.open),children:[n.jsxs("summary",{className:"json-viewer__summary",style:{paddingLeft:m},children:[j,n.jsx("span",{className:"json-viewer__caret","aria-hidden":"true",children:b?"▾":"▸"}),n.jsx("span",{className:"json-viewer__punct",children:B}),!b&&d?n.jsx("span",{className:"json-viewer__punct",children:","}):null]}),b?n.jsx("div",{className:"json-viewer__children",children:I.length===0?n.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:m},children:[n.jsx("span",{className:"json-viewer__punct",children:T}),d?",":""]}):n.jsxs(n.Fragment,{children:[I.map((U,te)=>{const K=te===I.length-1;return n.jsx(gy,{label:U.label,value:U.value,depth:o+1,collapse_after_depth:a,expansion_mode:c,expansion_version:u,trailing_comma:!K},`${o}:${t||"root"}:${U.key}`)}),n.jsxs("div",{className:"json-viewer__line",style:{paddingLeft:m},children:[n.jsx("span",{className:"json-viewer__punct",children:T}),d?",":""]})]})}):null]})}function yy(e){const{value:t,className:r,showCopy:o=!0}=e,[a,c]=h.useState({mode:"folded",version:0}),u=a.mode==="unfolded"?ew:Qv,d=h.useMemo(()=>typeof t=="string"?tw(t):t,[t]),m=h.useMemo(()=>nw(t),[t]),_=["json-viewer","run-details-output",r].filter(Boolean).join(" ");h.useEffect(()=>{c(x=>({mode:"folded",version:x.version+1}))},[d]);const p=()=>{c(x=>({mode:x.mode==="unfolded"?"folded":"unfolded",version:x.version+1}))};return n.jsxs("div",{className:_,children:[n.jsxs("div",{className:"json-viewer__toolbar",children:[n.jsx("button",{type:"button",className:"modal-button json-viewer__toggle-all",onClick:p,"aria-expanded":a.mode==="unfolded",children:a.mode==="unfolded"?"Fold all":"Unfold all"}),o?n.jsx("button",{type:"button",className:"modal-button json-viewer__copy",onClick:()=>void rw(m),children:"Copy"}):null]}),n.jsx("div",{className:"json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:n.jsx(gy,{value:d,depth:0,collapse_after_depth:u,expansion_mode:a.mode,expansion_version:a.version,trailing_comma:!1})})]})}function Ah(e){const t=[],r=String(e??"");let o=0,a="";const c=()=>{a&&(t.push(a),a="")};for(;o<r.length;){const u=r[o];if(u==="`"){const d=r.indexOf("`",o+1);if(d!==-1){c(),t.push(n.jsx("code",{children:r.slice(o+1,d)},`code:${o}`)),o=d+1;continue}}if(u==="*"&&r[o+1]==="*"){const d=r.indexOf("**",o+2);if(d!==-1){c(),t.push(n.jsx("strong",{children:r.slice(o+2,d)},`bold:${o}`)),o=d+2;continue}}a+=u,o+=1}return c(),t}function aw(e){return String(e??"").replace(/\r\n/g,`
|
|
41
|
-
`).replace(/\r/g,`
|
|
42
|
-
`).split(`
|
|
43
|
-
`)}function lw({text:e,className:t}){const r=aw(e),o=[];let a=0;for(;a<r.length;){const u=r[a],d=String(u??"");if(!d.trim()){a+=1;continue}if(d.trim().startsWith("```")){const v=d.trim().replace(/```/g,"").trim(),b=[];for(a+=1;a<r.length&&!String(r[a]??"").trim().startsWith("```");)b.push(String(r[a]??"")),a+=1;a<r.length&&(a+=1);const S=b.join(`
|
|
44
|
-
`);o.push(n.jsx("pre",{className:"mf-md_pre",children:n.jsx("code",{className:v?`language-${v}`:void 0,children:S})},`pre:${a}`));continue}const m=d.match(/^(#{1,3})\s+(.*)$/);if(m){const x=m[1].length,v=m[2]||"",b=Ah(v);x===1?o.push(n.jsx("h1",{children:b},`h1:${a}`)):x===2?o.push(n.jsx("h2",{children:b},`h2:${a}`)):o.push(n.jsx("h3",{children:b},`h3:${a}`)),a+=1;continue}const _=x=>{const v=x.trimStart();return v.startsWith("- ")||v.startsWith("* ")};if(_(d)){const x=[];for(;a<r.length&&_(String(r[a]??""));){const v=String(r[a]??"").trimStart();x.push(v.slice(2)),a+=1}o.push(n.jsx("ul",{className:"mf-md_ul",children:x.map((v,b)=>n.jsx("li",{children:Ah(v)},`li:${a}:${b}`))},`ul:${a}`));continue}const p=[];for(;a<r.length&&String(r[a]??"").trim();)p.push(String(r[a]??"")),a+=1;o.push(n.jsx("p",{className:"mf-md_p",children:p.map((x,v)=>n.jsxs(Ae.Fragment,{children:[Ah(x),v<p.length-1?n.jsx("br",{}):null]},`pl:${a}:${v}`))},`p:${a}`))}const c=["mf-md",t].filter(Boolean).join(" ");return n.jsx("div",{className:c,children:o})}async function cw(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 yi(e){return!e||typeof e!="object"?null:e}function c_(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 Pp(e){const t=yi(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 a=typeof t.name=="string"?String(t.name).trim():"";return{role:r,content:o,name:a||void 0}}function uw(e){if(Array.isArray(e)){if(e.length===0)return null;const r=[];for(const o of e){const a=Pp(o);if(!a)return null;r.push(a)}return r}const t=Pp(e);return t?[t]:null}function dw(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 c=JSON.parse(t);return c&&typeof c=="object"||Array.isArray(c)?c:null}catch{return null}}function fw(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 Op({text:e}){const t=String(e||""),r=dw(t);if(r!==null)return n.jsx(yy,{value:r});const o=t.trim();return o.startsWith("{")||o.startsWith("[")?n.jsx("pre",{className:"run-details-output",children:t||"(none)"}):t.includes(`
|
|
45
|
-
`)||fw(t)?n.jsx("div",{className:"run-details-output",children:n.jsx(lw,{text:t})}):n.jsx("pre",{className:"run-details-output",children:t||"(none)"})}function xy({value:e}){if(e==null)return n.jsx("pre",{className:"run-details-output",children:"(none)"});const t=uw(e);return t?n.jsx("div",{className:"mf-msg-list",children:t.map((r,o)=>n.jsxs("div",{className:"mf-msg",children:[n.jsxs("div",{className:"mf-msg-meta",children:[n.jsx("span",{className:`mf-msg-role ${r.role}`,children:r.role}),r.name?n.jsx("span",{className:"mf-msg-name",children:r.name}):null]}),n.jsx("div",{className:"mf-msg-content",children:n.jsx(Op,{text:r.content})})]},`${r.role}:${o}`))}):typeof e=="string"?n.jsx(Op,{text:e}):n.jsx(yy,{value:e})}function vy(e){const t=e.effect;return!t||typeof t!="object"?null:t}function ic(e){const t=vy(e);return(t&&typeof t.type=="string"?t.type:"")||"effect"}function Zm(e){const t=vy(e),r=t==null?void 0:t.payload;return!r||typeof r!="object"?null:r}function Y_(e){const t=e.result;return!t||typeof t!="object"?null:t}function wy(e){if(ic(e)!=="tool_calls")return[];const r=Y_(e),o=r&&Array.isArray(r.results)?r.results:null;if(!o)return[];const a=[];for(const c of o){const u=yi(c);if(!u)continue;const d=typeof u.name=="string"?u.name.trim():"";d&&a.push({call_id:typeof u.call_id=="string"?u.call_id:void 0,name:d,success:!!u.success,output:u.output,error:u.error})}return a}function by(e){if(ic(e)!=="tool_calls")return[];const r=Zm(e),o=r&&Array.isArray(r.tool_calls)?r.tool_calls:null;if(!o)return[];const a=[];for(const c of o){const u=yi(c);if(!u)continue;const d=typeof u.name=="string"?u.name.trim():"";if(!d)continue;const m=yi(u.args)||yi(u.arguments)||{};a.push({call_id:typeof u.call_id=="string"?u.call_id:void 0,name:d,args:m})}return a}function Qm(e){const t=e.error;if(typeof t=="string")return t.trim();const r=yi(t);if(r){const o=typeof r.message=="string"?r.message.trim():"",a=typeof r.stack=="string"?r.stack.trim():"";return o||a||""}return""}function jy(e){if(!e)return"";const t=e.reasoning;if(typeof t=="string")return t.trim();const r=yi(t);return r&&typeof r.text=="string"?r.text.trim():""}function Sy(e){const t=ic(e),r=Zm(e),o=Y_(e),a=(c,u)=>{const d=String(c||"").replace(/\s+/g," ").trim();return d?d.length<=u?d:`${d.slice(0,Math.max(0,u-1)).trimEnd()}…`:""};if(t==="llm_call"){const c=o==null?void 0:o.content,u=typeof c=="string"?c.replace(/\s+/g," ").trim():"",d=jy(o),m=Array.isArray(o==null?void 0:o.tool_calls)?o.tool_calls:null,p=!!(m&&m.length>0)?d||u:u||d;return a(p,220)}if(t==="tool_calls"){const c=o&&Array.isArray(o.results)?o.results:null;if(!c)return"";const u=c.filter(d=>{var m;return((m=yi(d))==null?void 0:m.success)===!1});return u.length>0?`${u.length} tool call(s) failed`:`${c.length} tool call(s) executed`}return t==="ask_user"&&r&&typeof r.prompt=="string"?String(r.prompt).trim():""}function Om(e){const t=typeof e.status=="string"?e.status:"unknown";return t==="failed"||Qm(e.step)?"failed":t}function mw(e){const t=e.map(r=>Om(r));return t.some(r=>r==="failed")?"failed":t.some(r=>r==="waiting")?"waiting":t.some(r=>r==="running")?"running":"completed"}function Mh(e){return e.filter(t=>!t.hidden)}function hw(e){const t=ic(e),r=Qm(e);return Mh(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 _w(e){const t=ic(e);return t==="llm_call"?"user":t==="tool_calls"?"tools":Qm(e)?"errors":"raw"}function pw(e){const t=new Map,r=Zm(e),o=r&&Array.isArray(r.tools)?r.tools:null;if(!o)return t;for(const a of o){const c=yi(a);if(!c)continue;const u=typeof c.name=="string"?c.name.trim():"";if(!u)continue;const m=(Array.isArray(c.parameters)?c.parameters:[]).map(_=>{const p=yi(_);return(p&&typeof p.id=="string"?p.id.trim():"")||""}).filter(Boolean);t.set(u,m)}return t}function ky(e,t,r){const o=Object.keys(t||{}),a=r&&r.length?r.filter(m=>o.includes(m)):[],c=o.filter(m=>!a.includes(m)).sort(),u=[...a,...c],d=u.slice(0,5).map(m=>{const _=t[m];return typeof _=="string"?`${m}=${JSON.stringify(c_(_,42))}`:typeof _=="number"||typeof _=="boolean"?`${m}=${String(_)}`:_==null?`${m}=null`:`${m}=${c_(JSON.stringify(_),42)}`});return`${e}(${d.join(", ")}${u.length>5?", …":""})`}function gw(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 Th({item:e,label:t,toolDefs:r,defaultOpen:o=!1}){const a=e.step,c=ic(a),u=hw(a),d=_w(a),[m,_]=h.useState(d),[p,x]=h.useState(!!o),v=Zm(a),b=Y_(a),S=Qm(a),j=gw(e),$=e.nodeId?String(e.nodeId):"",T=e.runId?String(e.runId):"",F=c==="tool_calls"?by(a):[],B=c==="tool_calls"?wy(a):[],I=F.map(pe=>ky(pe.name,pe.args,r.get(pe.name)||null)),te=(()=>{if(m==="raw")return a;if(m==="errors")return S||null;if(c==="llm_call"){const pe=v||{},Re=typeof pe.system_prompt=="string"?String(pe.system_prompt):"",W=typeof pe.prompt=="string"?String(pe.prompt):"",z=yi(b==null?void 0:b.metadata),P=z?yi(z._runtime_observability):null,G=P?yi(P.llm_generate_kwargs):null,H=G&&Array.isArray(G.messages)?G.messages:null,re=z?yi(z._provider_request):null,N=re?yi(re.payload):null,L=N&&Array.isArray(N.messages)?N.messages:null,q=Array.isArray(pe.messages)?pe.messages:[],C=H||L||q,X=C.filter(ie=>String((ie==null?void 0:ie.role)||"").trim()==="system"),se=C.filter(ie=>String((ie==null?void 0:ie.role)||"").trim()==="user");if(m==="system"){const ie=[],ye=Re.trim(),Le=!!ye&&X.some(Me=>typeof(Me==null?void 0:Me.content)=="string"&&String(Me.content).trim()===ye);return ye&&!Le&&ie.push({role:"system",name:"system_prompt",content:Re}),ie.push(...X),ie}if(m==="user"){const ie=[],ye=W.trim(),Le=!!ye&&se.some(Me=>typeof(Me==null?void 0:Me.content)=="string"&&String(Me.content).trim()===ye);return ye&&!Le&&ie.push({role:"user",name:"prompt",content:W}),ie.push(...se),ie}if(m==="tools")return pe.tools||[];if(m==="response"){const ie=b==null?void 0:b.content;if(typeof ie=="string"&&ie.trim())return ie;const ye=b==null?void 0:b.output;if(ye!==void 0)return ye;const Le=Array.isArray(b==null?void 0:b.tool_calls)?b.tool_calls:null;return Le&&Le.length?{tool_calls:Le}:b}if(m==="reasoning")return jy(b)||null}return c==="tool_calls"&&m==="tools"?{tool_calls:F,tool_signatures:I,results:B}:a})(),K=Sy(a),le=Om(e),ce=le==="completed"?"OK":le==="failed"?"ERROR":le==="waiting"?"WAITING":le.toUpperCase();return n.jsxs("details",{className:`agent-trace-entry ${le}`,open:p,onToggle:pe=>x(pe.currentTarget.open),children:[n.jsxs("summary",{className:"agent-trace-summary",children:[n.jsx("span",{className:`agent-trace-status ${le}`,children:ce}),n.jsx("span",{className:"agent-cycle-stage",children:t}),n.jsx("span",{className:"agent-trace-kind",children:c}),j?n.jsx("span",{className:"agent-trace-node",children:j}):null,$?n.jsx("span",{className:"agent-trace-node",children:$}):null,T?n.jsx("span",{className:"agent-trace-run",children:T}):null]}),K?n.jsx("div",{className:"agent-trace-preview",children:K}):null,n.jsxs("div",{className:"agent-trace-body",children:[n.jsx("div",{className:"agent-trace-tabs",children:u.map(pe=>n.jsx("button",{type:"button",className:`agent-trace-tab ${pe.id===m?"active":""}`,onClick:()=>_(pe.id),children:pe.label},pe.id))}),n.jsx(xy,{value:te})]})]})}function yw({acts:e}){const t=e.flatMap(c=>wy(c.step)),r=t.filter(c=>c.success===!1),o=r.length?`${r.length} error(s)`:t.length?`${t.length} tool result(s)`:"(none)",a=r.length?"failed":"completed";return n.jsxs("details",{className:`agent-trace-entry ${a}`,open:!1,children:[n.jsxs("summary",{className:"agent-trace-summary",children:[n.jsx("span",{className:`agent-trace-status ${a}`,children:r.length?"ERROR":"OK"}),n.jsx("span",{className:"agent-cycle-stage",children:"observe"}),n.jsx("span",{className:"agent-trace-kind",children:"OBSERVATIONS"}),n.jsx("span",{className:"agent-trace-preview-inline",children:o})]}),n.jsx("div",{className:"agent-observe-body",children:t.length===0?n.jsx("div",{className:"agent-observe-empty",children:"(no tool results)"}):n.jsx("div",{className:"agent-observe-results",children:t.map((c,u)=>{const d=c.success?"completed":"failed",m=c.success?"OK":"ERROR",_=c.success?c.output:c.error??c.output;return n.jsxs("details",{className:`agent-observe-result ${d}`,open:!1,children:[n.jsxs("summary",{className:"agent-observe-summary",children:[n.jsx("span",{className:`agent-trace-status ${d}`,children:m}),n.jsx("span",{className:"agent-observe-name",children:c.name}),c.call_id?n.jsx("span",{className:"agent-observe-callid",children:c.call_id}):null]}),n.jsx(xy,{value:_})]},`${c.name}:${c.call_id||""}:${u}`)})})})]})}function xw({items:e,subRunId:t,title:r,subtitle:o,onOpenSubRun:a,defaultOpenLatest:c=!0}){const u=h.useMemo(()=>{const x=Array.isArray(e)?e.slice():[];return x.sort((v,b)=>{const S=v.ts?new Date(v.ts).getTime():NaN,j=b.ts?new Date(b.ts).getTime():NaN;return Number.isFinite(S)&&Number.isFinite(j)?S-j:0}),x},[e]),d=h.useMemo(()=>{const x=[];let v=null,b=0;for(const S of u){const j=ic(S.step);if(j==="llm_call"){b+=1,v={id:`cycle:${S.runId}:${b}:${S.ts||""}`,index:b,items:[S],think:S,acts:[],others:[],status:Om(S),ts:S.ts},x.push(v);continue}v||(b+=1,v={id:`cycle:${S.runId}:${b}:${S.ts||""}`,index:b,items:[],think:null,acts:[],others:[],status:Om(S),ts:S.ts},x.push(v)),v.items.push(S),j==="tool_calls"?v.acts.push(S):v.others.push(S),v.status=mw(v.items)}return x},[u]),m=typeof r=="string"&&r.trim()?r.trim():"Agent calls",_=typeof o=="string"&&o.trim()?o.trim():"Live per-effect trace (LLM/tool calls).",p=typeof t=="string"?t.trim():"";return n.jsxs("div",{className:"agent-trace-panel",children:[n.jsxs("div",{className:"agent-trace-header",children:[n.jsx("div",{className:"agent-trace-title",children:m}),n.jsxs("div",{className:"agent-trace-subtitle",children:[_,p?n.jsxs("span",{className:"agent-trace-subrun",children:[" ","sub_run_id: ",p,n.jsx("button",{type:"button",className:"agent-trace-copy",onClick:x=>{x.stopPropagation(),cw(p)},title:`Copy sub_run_id: ${p}`,"aria-label":"Copy sub run id",children:"⧉"}),a?n.jsx("button",{type:"button",className:"agent-trace-open",onClick:x=>{x.stopPropagation(),a()},title:"Open sub-run",children:"Open"}):null]}):null]})]}),u.length===0?n.jsx("div",{className:"agent-trace-empty",children:"No trace entries yet."}):n.jsxs("div",{className:"agent-cycle-list",children:[n.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(),S=v==="completed"?"✓":v==="failed"?"✗":"",j=S?`${S} ${b}`:b,$=x.think?Sy(x.think.step):"",T=x.think?pw(x.think.step):new Map,B=x.acts.flatMap(U=>by(U.step)).map(U=>ky(U.name,U.args,T.get(U.name)||null)),I=c&&x.index===d.length;return n.jsxs("details",{className:`agent-cycle ${v}`,open:I,children:[n.jsxs("summary",{className:"agent-cycle-summary",children:[n.jsx("span",{className:`agent-trace-status ${v}`,children:j}),n.jsx("span",{className:"agent-cycle-label",children:"cycle"}),n.jsxs("span",{className:"agent-cycle-index",children:["#",x.index]}),B.length?n.jsxs("span",{className:"agent-trace-badges",children:[B.slice(0,3).map(U=>n.jsx("span",{className:"run-metric-badge metric-tool",title:U,children:c_(U,62)},U)),B.length>3?n.jsxs("span",{className:"run-metric-badge metric-tool",children:["+",B.length-3]}):null]}):null,n.jsx("span",{className:"agent-cycle-spacer"}),$?n.jsx("span",{className:"agent-cycle-preview",children:$}):null]}),n.jsxs("div",{className:"agent-cycle-body",children:[x.think?n.jsx(Th,{item:x.think,label:"think",toolDefs:T,defaultOpen:I}):null,x.acts.map(U=>n.jsx(Th,{item:U,label:"act",toolDefs:T},U.id)),n.jsx(yw,{acts:x.acts}),x.others.length?n.jsxs("div",{className:"agent-cycle-others",children:[n.jsx("div",{className:"agent-cycle-others-title",children:"other"}),x.others.map(U=>{const te=I&&ic(U.step)==="answer_user";return n.jsx(Th,{item:U,label:"other",toolDefs:T,defaultOpen:te},U.id)})]}):null]})]},x.id)})]})]})}function na(e){return typeof e=="string"?e.trim():""}function vw(e){var t;return na(e.run_id)||na((t=e.record)==null?void 0:t.run_id)}function u_(e){return na(e==null?void 0:e.node_id)}const ww=new Set(["reason","act","observe","thought","think"]);function d_(e){const t=na(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 ww.has(o)?r.slice(0,-1).join("::"):t}function Ny(e){var t;return na((t=e==null?void 0:e.effect)==null?void 0:t.type)}function bw(e){return na(e==null?void 0:e.status)||"unknown"}function Ip(e){return na(e==null?void 0:e.step_id)}function jw(e){return na(e==null?void 0:e.ended_at)||na(e==null?void 0:e.started_at)}function Sw(e){const t=new Map,r=new Map;for(const a of e){const c=d_(u_(a));if(!c)continue;const u=Ny(a);u==="llm_call"?t.set(c,(t.get(c)||0)+1):u==="tool_calls"&&r.set(c,(r.get(c)||0)+1)}const o=a=>{let c="",u=-1;for(const[d,m]of a)m>u&&(c=d,u=m);return c};return o(t)||o(r)||""}function kw(e,t){const r=na(t.run_id);if(!r)return{run_id:"",node_id:"",items:[]};const o=(Array.isArray(e)?e:[]).filter(b=>b&&b.record&&vw(b)===r).map(b=>({cursor:b.cursor,record:b.record})).sort((b,S)=>(b.cursor||0)-(S.cursor||0)),a=o.map(b=>b.record),c=d_(na(t.node_id)),u=c||Sw(a),d=new Set(["llm_call","tool_calls","ask_user","answer_user"]);let m=o.filter(b=>d.has(Ny(b.record)));c&&(m=m.filter(b=>d_(u_(b.record))===c));const _=new Map,p=[];for(const b of m){const S=Ip(b.record);if(!S){p.push(b);continue}const j=_.get(S);(!j||(b.cursor||0)>(j.cursor||0))&&_.set(S,b)}const v=[...p,...Array.from(_.values())].sort((b,S)=>(b.cursor||0)-(S.cursor||0)).map(b=>{const S=b.record,j=u_(S)||"(node?)",$=jw(S),T=Ip(S);return{id:`ledger:${r}:${b.cursor}:${T||""}`,runId:r,nodeId:j,ts:$||void 0,status:bw(S),step:S}});return{run_id:r,node_id:u,items:v}}const Nw=3,Cw=Number.MAX_SAFE_INTEGER;function Cy(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ey(e){return Array.isArray(e)}function Ew(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}async function $w(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 Yu({kind:e,children:t}){return n.jsx("span",{className:`pc-json-token ${e}`,children:t})}function Aw(e){const t=JSON.stringify(e.value),r=t.length>96||t.includes("\\n")||t.includes("\\r")||t.includes("\\t"),[o,a]=h.useState(!r||e.expansionMode==="unfolded");return h.useEffect(()=>{r&&a(e.expansionMode==="unfolded")},[r,e.expansionMode,e.expansionVersion]),r?n.jsxs("span",{className:`pc-json-string ${o?"open":"collapsed"}`,children:[n.jsx("button",{type:"button",className:"pc-json-string__toggle",onClick:()=>a(c=>!c),"aria-label":o?"Collapse string value":"Expand string value","aria-expanded":o,children:o?"▾":"▸"}),o?n.jsx("span",{className:"pc-json-token string pc-json-string__value",children:t}):n.jsxs("button",{type:"button",className:"pc-json-string__preview",onClick:()=>a(!0),"aria-label":"Expand string value",children:[n.jsx("span",{className:"pc-json-token string pc-json-string__preview_text",children:t}),n.jsx("span",{className:"pc-json-string__suffix",children:"(...)"})]})]}):n.jsx(Yu,{kind:"string",children:t})}function Mw(e,t,r){return e===null?n.jsx(Yu,{kind:"null",children:"null"}):typeof e=="string"?n.jsx(Aw,{value:e,expansionMode:t,expansionVersion:r}):typeof e=="number"?n.jsx(Yu,{kind:"number",children:String(e)}):typeof e=="boolean"?n.jsx(Yu,{kind:"boolean",children:e?"true":"false"}):n.jsx(Yu,{kind:"string",children:JSON.stringify(String(e))})}function Tw(e){return Ey(e)?e.length===1?"1 item":`${e.length} items`:Cy(e)?Object.keys(e).length===1?"1 key":`${Object.keys(e).length} keys`:""}function $y(e){const{label:t,value:r,depth:o,collapseAfterDepth:a,expansionMode:c,expansionVersion:u,trailingComma:d}=e,m=o*14,_=Cy(r),p=Ey(r),x=_||p,v=o<a,[b,S]=h.useState(v);h.useEffect(()=>{S(v)},[v,u]);const j=t?n.jsxs(n.Fragment,{children:[n.jsx(Yu,{kind:"key",children:JSON.stringify(t)}),": "]}):null;if(!x)return n.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:m},children:[j,Mw(r,c,u),d?",":""]});const $=p?"[":"{",T=p?"]":"}",F=Tw(r),B=b?`${$}`:`${$}…${T}${F?` (${F})`:""}`,I=p?r.map((U,te)=>({key:String(te),label:void 0,value:U})):Object.entries(r).map(([U,te])=>({key:U,label:U,value:te}));return n.jsxs("details",{className:"pc-json-viewer__details",open:b,onToggle:U=>S(U.currentTarget.open),children:[n.jsxs("summary",{className:"pc-json-viewer__summary",style:{paddingLeft:m},children:[j,n.jsx("span",{className:"pc-json-viewer__caret","aria-hidden":"true",children:b?"▾":"▸"}),n.jsx("span",{className:"pc-json-viewer__punct",children:B}),!b&&d?n.jsx("span",{className:"pc-json-viewer__punct",children:","}):null]}),b?n.jsx("div",{className:"pc-json-viewer__children",children:I.length===0?n.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:m},children:[n.jsx("span",{className:"pc-json-viewer__punct",children:T}),d?",":""]}):n.jsxs(n.Fragment,{children:[I.map((U,te)=>{const K=te===I.length-1;return n.jsx($y,{label:U.label,value:U.value,depth:o+1,collapseAfterDepth:a,expansionMode:c,expansionVersion:u,trailingComma:!K},`${o}:${t||"root"}:${U.key}`)}),n.jsxs("div",{className:"pc-json-viewer__line",style:{paddingLeft:m},children:[n.jsx("span",{className:"pc-json-viewer__punct",children:T}),d?",":""]})]})}):null]})}function ao(e){const{value:t,className:r,showCopy:o=!0}=e,[a,c]=h.useState({mode:"folded",version:0}),u=a.mode==="unfolded"?Cw:Nw,d=h.useMemo(()=>Ew(t),[t]),m=["pc-json-viewer",r].filter(Boolean).join(" ");h.useEffect(()=>{c(p=>({mode:"folded",version:p.version+1}))},[t]);const _=()=>{c(p=>({mode:p.mode==="unfolded"?"folded":"unfolded",version:p.version+1}))};return n.jsxs("div",{className:m,children:[n.jsxs("div",{className:"pc-json-viewer__toolbar",children:[n.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__toggle-all",onClick:_,"aria-expanded":a.mode==="unfolded",children:a.mode==="unfolded"?"Fold all":"Unfold all"}),o?n.jsx("button",{type:"button",className:"pc-btn pc-json-viewer__copy",onClick:()=>void $w(d),children:"Copy"}):null]}),n.jsx("div",{className:"pc-json-viewer__tree",role:"tree","aria-label":"JSON viewer",children:n.jsx($y,{value:t,depth:0,collapseAfterDepth:u,expansionMode:a.mode,expansionVersion:a.version,trailingComma:!1})})]})}function Kd(e,t){const r=String(e??"");if(!t||!t.needles.length)return[r];const o=[],a=r.toLowerCase();let c=0;for(;c<r.length;){let u=-1,d="";for(let p=0;p<t.needlesLower.length;p++){const x=t.needlesLower[p];if(!x)continue;const v=a.indexOf(x,c);if(v===-1)continue;const b=t.needles[p]||"";b&&(u===-1||v<u||v===u&&b.length>d.length)&&(u=v,d=b)}if(u===-1||!d){o.push(r.slice(c));break}u>c&&o.push(r.slice(c,u));const m=t.hits===0&&t.id?t.id:void 0,_=r.slice(u,u+d.length);o.push(n.jsx("span",{id:m,className:t.className,children:_},`hl:${t.hits}`)),t.hits+=1,c=u+d.length}return o}function f_(e){const t=String(e||"").trim();if(t&&/^(https?:|mailto:|tel:|#|\/)/i.test(t))return t}function al(e,t){const r=[],o=String(e??"");let a=0,c="";const u=()=>{if(c){for(const d of Kd(c,t))r.push(d);c=""}};for(;a<o.length;){const d=o[a];if(d==="!"&&o[a+1]==="["){const m=o.indexOf("]",a+2);if(m!==-1&&o[m+1]==="("){const _=o.indexOf(")",m+2);if(_!==-1){const p=o.slice(a+2,m),x=f_(o.slice(m+2,_));if(x){u(),r.push(n.jsxs("span",{className:"pc-md_image_inline",children:[n.jsx("img",{className:"pc-md_img",src:x,alt:p,loading:"lazy"}),p?n.jsx("span",{className:"pc-md_img_caption",children:t?Kd(p,t):p}):null]},`img:${a}`)),a=_+1;continue}}}}if(d==="["){const m=o.indexOf("]",a+1);if(m!==-1&&o[m+1]==="("){const _=o.indexOf(")",m+2);if(_!==-1){const p=o.slice(a+1,m),x=f_(o.slice(m+2,_));if(x){u(),r.push(n.jsx("a",{className:"pc-md_link",href:x,target:x.startsWith("#")||x.startsWith("/")?void 0:"_blank",rel:"noreferrer",children:al(p,t)},`link:${a}`)),a=_+1;continue}}}}if(d==="`"){const m=o.indexOf("`",a+1);if(m!==-1){u();const _=o.slice(a+1,m);r.push(n.jsx("code",{children:t?Kd(_,t):_},`code:${a}`)),a=m+1;continue}}if(d==="*"&&o[a+1]==="*"){const m=o.indexOf("**",a+2);if(m!==-1){u();const _=o.slice(a+2,m);r.push(n.jsx("strong",{children:t?Kd(_,t):_},`bold:${a}`)),a=m+2;continue}}if(d==="*"&&o[a+1]!=="*"){const m=o.indexOf("*",a+1);if(m!==-1){u();const _=o.slice(a+1,m);r.push(n.jsx("em",{children:t?Kd(_,t):_},`em:${a}`)),a=m+1;continue}}c+=d,a+=1}return u(),r}function zw(e){return String(e??"").replace(/\r\n/g,`
|
|
46
|
-
`).replace(/\r/g,`
|
|
47
|
-
`).split(`
|
|
48
|
-
`)}function Fp(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 Rw(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 ts({text:e,className:t,highlight:r,highlights:o,highlightClassName:a,highlightId:c}){const u=zw(e),d=[],m=[];Array.isArray(o)&&m.push(...o),typeof r=="string"&&r.trim()&&m.push(r);const _=Array.from(new Set(m.map(b=>String(b??"").trim()).filter(Boolean))).filter(b=>b.length>=4),p=_.length?{needles:_,needlesLower:_.map(b=>b.toLowerCase()),className:a||"pc-md_hl",id:c,hits:0}:null;let x=0;for(;x<u.length;){const b=String(u[x]??"");if(!b.trim()){x+=1;continue}const S=b.trim();if(S==="---"||S==="___"||S==="***"||/^(-{3,}|_{3,}|\*{3,})$/.test(S)){d.push(n.jsx("hr",{className:"pc-md_hr"},`hr:${x}`)),x+=1;continue}const j=b.match(/^\s*!\[([^\]]*)\]\(([^)]+)\)\s*$/);if(j){const I=f_(j[2]||"");if(I){const U=j[1]||"";d.push(n.jsxs("figure",{className:"pc-md_figure",children:[n.jsx("img",{className:"pc-md_img",src:I,alt:U,loading:"lazy"}),U?n.jsx("figcaption",{children:al(U,p)}):null]},`figure:${x}`)),x+=1;continue}}if(b.trim().startsWith("```")){const U=b.trim().replace(/```/g,"").trim(),te=[];for(x+=1;x<u.length&&!String(u[x]??"").trim().startsWith("```");)te.push(String(u[x]??"")),x+=1;x<u.length&&(x+=1);const K=te.join(`
|
|
49
|
-
`);d.push(n.jsx("pre",{className:"pc-md_pre",children:n.jsx("code",{className:U?`language-${U}`:void 0,children:K})},`pre:${x}`));continue}const $=b.match(/^(#{1,5})\s+(.*)$/);if($){const I=$[1].length,U=$[2]||"",te=al(U,p);I===1?d.push(n.jsx("h1",{children:te},`h1:${x}`)):I===2?d.push(n.jsx("h2",{children:te},`h2:${x}`)):I===3?d.push(n.jsx("h3",{children:te},`h3:${x}`)):I===4?d.push(n.jsx("h4",{children:te},`h4:${x}`)):d.push(n.jsx("h5",{children:te},`h5:${x}`)),x+=1;continue}if(b.trimStart().startsWith(">")){const I=[];for(;x<u.length&&String(u[x]??"").trimStart().startsWith(">");){const te=String(u[x]??"").trimStart();I.push(te.replace(/^>\s?/,"")),x+=1}d.push(n.jsx("blockquote",{className:"pc-md_quote",children:I.map((U,te)=>n.jsxs(Ae.Fragment,{children:[al(U,p),te<I.length-1?n.jsx("br",{}):null]},`q:${x}:${te}`))},`quote:${x}`));continue}if(b.includes("|")&&x+1<u.length&&Rw(String(u[x+1]??""))){const I=Fp(b),U=Math.max(1,I.length),te=[];for(x+=2;x<u.length;){const K=String(u[x]??"");if(!K.trim()||!K.includes("|"))break;const le=Fp(K),ce=[];for(let pe=0;pe<U;pe++)ce.push(le[pe]??"");te.push(ce),x+=1}d.push(n.jsx("div",{className:"pc-md_table_wrap",children:n.jsxs("table",{className:"pc-md_table",children:[n.jsx("thead",{children:n.jsx("tr",{children:I.slice(0,U).map((K,le)=>n.jsx("th",{children:al(K,p)},`th:${x}:${le}`))})}),n.jsx("tbody",{children:te.map((K,le)=>n.jsx("tr",{children:K.map((ce,pe)=>n.jsx("td",{children:al(ce,p)},`td:${x}:${le}:${pe}`))},`tr:${x}:${le}`))})]})},`table:${x}`));continue}const T=I=>/^\s*\d+\.\s+/.test(I);if(T(b)){const I=[];for(;x<u.length&&T(String(u[x]??""));){const U=String(u[x]??"");I.push(U.replace(/^\s*\d+\.\s+/,"")),x+=1}d.push(n.jsx("ol",{className:"pc-md_ol",children:I.map((U,te)=>n.jsx("li",{children:al(U,p)},`oli:${x}:${te}`))},`ol:${x}`));continue}const F=I=>{const U=I.trimStart();return U.startsWith("- ")||U.startsWith("* ")};if(F(b)){const I=[];for(;x<u.length&&F(String(u[x]??""));){const U=String(u[x]??"").trimStart();I.push(U.slice(2)),x+=1}d.push(n.jsx("ul",{className:"pc-md_ul",children:I.map((U,te)=>n.jsx("li",{children:al(U,p)},`li:${x}:${te}`))},`ul:${x}`));continue}const B=[];for(;x<u.length&&String(u[x]??"").trim();)B.push(String(u[x]??"")),x+=1;d.push(n.jsx("p",{className:"pc-md_p",children:B.map((I,U)=>n.jsxs(Ae.Fragment,{children:[al(I,p),U<B.length-1?n.jsx("br",{}):null]},`pl:${x}:${U}`))},`p:${x}`))}const v=["pc-md",t].filter(Boolean).join(" ");return n.jsx("div",{className:v,children:d})}function eh(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 Lw(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Pw(e){const t=String(e.role||"message").trim()||"message",r=String(e.title||"").trim(),o=String(e.ts||"").trim(),a=[t];return r&&a.push(r),o&&a.push(o),a.join(" · ")}function Ow(e){return e.endsWith(`
|
|
50
|
-
`)?e:`${e}
|
|
51
|
-
`}function Iw(e){return String(e||"").trimStart().startsWith("```")}function Fw(e,t){const o=[`# ${String((t==null?void 0:t.heading)||"Chat").trim()||"Chat"}`,""];for(const a of e){const c=Pw(a);o.push(`## ${c}`,"");const u=String(a.content||""),d=eh(u);d!==null&&!Iw(u)?o.push("```json",Lw(d).trimEnd(),"```",""):o.push(Ow(u).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 Qr(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 Dw(e){const t=String(e.filename||"").trim()||"export.txt",r=String(e.text||""),o=String(e.mime),a=new Blob([r],{type:o}),c=URL.createObjectURL(a),u=document.createElement("a");u.href=c,u.download=t,document.body.appendChild(u),u.click(),u.remove(),window.setTimeout(()=>URL.revokeObjectURL(c),1e3)}function Bw(e){const t=String(e.text??""),r=eh(t),o=["pc-chat-content",e.className].filter(Boolean).join(" ");return r!==null?n.jsx("div",{className:o,children:n.jsx(ao,{value:r,collapseAfterDepth:e.jsonCollapseAfterDepth})}):e.renderMarkdown?n.jsx("div",{className:o,children:e.renderMarkdown(t)}):n.jsx("div",{className:o,children:n.jsx(ts,{text:t})})}const Am=Ae.forwardRef(function(t,r){const o=typeof t.rows=="number"&&Number.isFinite(t.rows)?Math.max(1,Math.trunc(t.rows)):3,a=!!t.disabled,c=!!t.busy,u=!a&&!c&&!!String(t.value||"").trim();return n.jsxs("div",{className:["pc-composer",t.className].filter(Boolean).join(" "),children:[n.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:a,autoFocus:!!t.autoFocus,onKeyDown:d=>{d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),t.onSubmit())}}),n.jsxs("div",{className:"pc-composer__row",children:[n.jsx("div",{className:"pc-composer__actions",children:t.actions}),n.jsx("button",{type:"button",className:t.sendButtonClassName||"pc-btn",disabled:!u,onClick:()=>t.onSubmit(),children:c?t.busyLabel||"Thinking…":t.sendLabel||"Send"})]})]})}),Ay=[{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"]}];Ay.map(e=>({id:e.id,label:e.label}));function Uw(e){return`theme-${String(e||"").trim()||"dark"}`}function Ww(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(Uw(e))}catch{}}const m_=[{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}],h_=[{id:"compact",label:"Compact",density:.85},{id:"standard",label:"Standard",density:1},{id:"spacious",label:"Spacious",density:1.2}];function qw(e){const t=String(e).trim();return m_.find(r=>r.id===t)||m_[1]}function Hw(e){const t=String(e).trim();return h_.find(r=>r.id===t)||h_[1]}function Vw(e){try{const t=document.documentElement,r=qw(e.font_scale||"md"),o=Hw(e.header_density||"standard");t.style.setProperty("--font-scale",String(r.scale)),t.style.setProperty("--header-density",String(o.density))}catch{}}var Gw=hy();function Fu(...e){return e.filter(Boolean).join(" ")}function nd({value:e,options:t,placeholder:r="Select…",disabled:o=!1,loading:a=!1,searchable:c=!0,searchPlaceholder:u="Search…",allowCustom:d=!1,clearable:m=!1,minPopoverWidth:_=240,variant:p="panel",className:x,triggerClassName:v,customOptionLabel:b,validateCustomValue:S,onChange:j,renderOption:$,renderValue:T}){const F=h.useRef(null),B=h.useRef(null),I=h.useRef(null),[U,te]=h.useState(!1),[K,le]=h.useState(""),[ce,pe]=h.useState(0),[Re,W]=h.useState("bottom"),[z,P]=h.useState({left:0,top:0,width:0}),G=h.useMemo(()=>{const ve=String(e??"");return t.find(Pe=>Pe.value===ve)||null},[t,e]),H=h.useMemo(()=>(G==null?void 0:G.label)||String(e||"").trim()||"",[G,e]),re=h.useMemo(()=>{const ve=K.trim().toLowerCase();return ve?t.filter(Pe=>Pe.label.toLowerCase().includes(ve)||Pe.value.toLowerCase().includes(ve)):t},[t,K]),N=h.useMemo(()=>{if(!d)return null;const ve=K.trim();if(!ve||t.some(we=>we.value===ve))return null;const me=(S==null?void 0:S(ve,{options:t}))||"";return{value:ve,label:b?b(ve):`Use "${ve}"`,disabled:!!me,reason:me}},[d,b,t,K,S]),L=h.useMemo(()=>N?[N,...re]:re,[N,re]),q=h.useCallback(()=>{const ve=F.current;if(!ve)return;const Pe=ve.getBoundingClientRect(),me=Math.max(Pe.width,_),we=Math.max(8,Math.min(Pe.left,window.innerWidth-me-8)),Oe=window.innerHeight-Pe.bottom,qe=Pe.top,rt=Oe>=220||Oe>=qe?"bottom":"top";W(rt);const ke=rt==="bottom"?Pe.bottom+6:Pe.top-6;P({left:we,top:ke,width:me})},[_]),C=h.useCallback(()=>{te(!1),le("")},[]);h.useEffect(()=>{if(!U)return;q();const ve=()=>q();return window.addEventListener("resize",ve),window.addEventListener("scroll",ve,!0),()=>{window.removeEventListener("resize",ve),window.removeEventListener("scroll",ve,!0)}},[U,q]),h.useEffect(()=>{if(!U)return;const ve=Pe=>{var we,Oe;const me=Pe.target;me&&((we=F.current)!=null&&we.contains(me)||(Oe=B.current)!=null&&Oe.contains(me)||C())};return document.addEventListener("mousedown",ve,!0),()=>document.removeEventListener("mousedown",ve,!0)},[U,C]),h.useEffect(()=>{if(!U)return;const ve=Math.max(0,L.findIndex(Pe=>Pe.value===e));pe(ve===-1?0:ve),c&&setTimeout(()=>{var Pe;return(Pe=I.current)==null?void 0:Pe.focus()},0)},[U,c,e,L]);const X=ve=>{const Pe=L.find(me=>me.value===ve);Pe!=null&&Pe.disabled||(j(ve),C())},se=ve=>{o||(ve.key==="Enter"||ve.key===" "?(ve.preventDefault(),te(Pe=>!Pe)):ve.key==="ArrowDown"&&(ve.preventDefault(),te(!0)))},ie=ve=>{if(ve.key==="Escape"){ve.preventDefault(),C();return}if(ve.key==="ArrowDown"){ve.preventDefault(),pe(Pe=>Math.min(Pe+1,Math.max(0,L.length-1)));return}if(ve.key==="ArrowUp"){ve.preventDefault(),pe(Pe=>Math.max(Pe-1,0));return}if(ve.key==="Enter"){ve.preventDefault();const Pe=L[ce];Pe&&X(Pe.value)}},ye=!!String(e||"").trim(),Le=ye?H:r,Me=N!=null&&N.disabled?N.reason||"Unavailable":"",De=n.jsx("span",{className:Fu("af-select-value",!ye&&"af-select-value--placeholder"),children:a?"Loading…":Le}),We=T?T(G,String(e||"")):De;return n.jsxs("span",{className:Fu("af-select",p==="pin"?"af-select--pin":"af-select--panel",x),children:[n.jsxs("button",{ref:F,type:"button",className:Fu("af-select-trigger",v),disabled:o,onMouseDown:ve=>ve.stopPropagation(),onClick:ve=>{ve.stopPropagation(),!o&&te(Pe=>!Pe)},onKeyDown:se,"aria-haspopup":"listbox","aria-expanded":U,children:[We,m&&ye?n.jsx("span",{className:"af-select-clear",role:"button",tabIndex:-1,onMouseDown:ve=>{ve.preventDefault(),ve.stopPropagation()},onClick:ve=>{ve.preventDefault(),ve.stopPropagation(),j(""),C()},title:"Clear",children:"×"}):null,n.jsx("span",{className:Fu("af-select-caret",U&&"af-select-caret--open"),children:"▾"})]}),U?Gw.createPortal(n.jsxs("div",{ref:B,className:Fu("af-select-popover",Re==="top"&&"af-select-popover--top"),style:{position:"fixed",left:`${z.left}px`,top:`${z.top}px`,width:`${z.width}px`},onMouseDown:ve=>ve.stopPropagation(),onClick:ve=>ve.stopPropagation(),onWheel:ve=>ve.stopPropagation(),onKeyDown:ie,role:"listbox",tabIndex:-1,children:[c?n.jsxs("div",{className:"af-select-search",children:[n.jsx("input",{ref:I,className:"af-select-search-input",value:K,onChange:ve=>le(ve.target.value),placeholder:u,onKeyDown:ie,"aria-invalid":!!Me,"aria-describedby":Me?"af-select-custom-error":void 0}),Me?n.jsx("div",{id:"af-select-custom-error",className:"af-select-custom-error",role:"alert",children:Me}):null]}):null,n.jsx("div",{className:"af-select-options",children:a&&L.length===0?n.jsx("div",{className:"af-select-empty",children:"Loading…"}):L.length===0?n.jsx("div",{className:"af-select-empty",children:"No results"}):L.map((ve,Pe)=>{var ke;const me=ve.value===e,we=Pe===ce,Oe=String(ve.group||"").trim(),qe=Pe>0?String(((ke=L[Pe-1])==null?void 0:ke.group)||"").trim():"",rt=!!Oe&&Oe!==qe;return n.jsxs(Ae.Fragment,{children:[rt?n.jsx("div",{className:"af-select-group",children:Oe}):null,n.jsx("div",{className:Fu("af-select-option",me&&"af-select-option--selected",we&&"af-select-option--highlighted",ve.disabled&&"af-select-option--disabled"),title:ve.disabled?ve.reason||"Unavailable":void 0,onMouseEnter:()=>pe(Pe),onMouseDown:Fe=>{Fe.preventDefault(),Fe.stopPropagation()},onClick:()=>X(ve.value),"aria-disabled":ve.disabled?!0:void 0,children:$?$(ve,{selected:me,highlighted:we}):n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"af-select-option-label",children:[n.jsx("span",{children:ve.label}),ve.reason?n.jsx("small",{className:"af-select-option-reason",children:ve.reason}):null]}),me?n.jsx("span",{className:"af-select-check",children:"✓"}):null]})})]},ve.value)})})]}),document.body):null]})}function Yw(e){const t=new Set,r=[];for(const o of e||[]){if(!o||typeof o!="object")continue;const a=String(o.name||"").trim();!a||t.has(a)||(t.add(a),r.push({name:a,display_name:typeof o.display_name=="string"?o.display_name:void 0}))}return r.sort((o,a)=>o.name.localeCompare(a.name)),r}function Xw(e){const t=new Set,r=[];for(const o of e||[]){const a=String(o||"").trim();!a||t.has(a)||(t.add(a),r.push(a))}return r.sort(),r}function Jw(e){const t=e.disabled===!0,r=e.layout||"stack",o=e.allowGatewayDefault!==!1,a=String(e.gatewayDefaultLabel||"(gateway default)"),c=String(e.providerLabel||"Provider"),u=String(e.modelLabel||"Model"),d=String(e.providerPlaceholder||"(select)"),m=String(e.modelPlaceholder||"(select)"),_=String(e.provider||"").trim(),p=String(e.model||"").trim(),x=Yw(e.providers),v=Xw(e.models),b=t||!!e.loadingProviders,S=t||!!e.loadingModels,j=[...o?[{value:"",label:a}]:[],...x.map(T=>({value:T.name,label:T.display_name?`${T.display_name} (${T.name})`:T.name}))],$=[...o?[{value:"",label:a}]:[],...v.map(T=>({value:T,label:T}))];return n.jsxs("div",{className:e.className,style:r==="row"?{display:"flex",gap:"10px",flexWrap:"wrap",alignItems:"flex-start"}:{display:"flex",flexDirection:"column",gap:"10px"},children:[n.jsxs("div",{style:r==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[n.jsx("label",{children:c}),n.jsx(nd,{value:_,options:j,placeholder:o?a: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?n.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading providers…"}):null,e.providerError?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"12px",marginTop:"6px"},children:e.providerError}):null]}),n.jsxs("div",{style:r==="row"?{flex:"1 1 260px",minWidth:240}:void 0,children:[n.jsx("label",{children:u}),n.jsx(nd,{value:p,options:$,placeholder:o?a:m,disabled:S,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?n.jsx("div",{className:"mono muted",style:{fontSize:"12px",marginTop:"6px"},children:"Loading models…"}):null,e.modelError?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"12px",marginTop:"6px"},children:e.modelError}):null]})]})}function Kw(e){return e==="light"?"Light":"Dark"}function Zw(e){const t=e.themes&&e.themes.length?e.themes:Ay,r=e.showSwatches!==!1,o=e.variant||"panel",a=h.useMemo(()=>{const u={};for(const d of t)u[d.id]=d;return u},[t]),c=h.useMemo(()=>t.map(u=>({value:u.id,label:u.label,group:Kw(u.group)})),[t]);return n.jsx(nd,{value:e.value,options:c,placeholder:e.placeholder||"Select theme…",disabled:e.disabled===!0,searchable:!0,allowCustom:!1,clearable:!1,variant:o,className:e.className,triggerClassName:e.triggerClassName,onChange:u=>e.onChange(String(u||"").trim()),renderValue:(u,d)=>{const m=String(d||"").trim(),_=a[m],p=(_==null?void 0:_.label)||m||e.placeholder||"Select theme…",x=(_==null?void 0:_.swatches)||null,v=!m;return n.jsxs("span",{className:"af-theme-value",children:[n.jsx("span",{className:`af-theme-label ${v?"af-theme-label--placeholder":""}`.trim(),children:p}),r&&x?n.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:x.map((b,S)=>n.jsx("span",{className:"af-theme-swatch",style:{background:b}},`${m}:${S}`))}):null]})},renderOption:(u,d)=>{const m=String(u.value||"").trim(),_=a[m],p=(_==null?void 0:_.swatches)||null;return n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"af-theme-option-label",children:u.label}),n.jsxs("span",{className:"af-theme-option-right",children:[r&&p?n.jsx("span",{className:"af-theme-swatches","aria-hidden":"true",children:p.map((x,v)=>n.jsx("span",{className:"af-theme-swatch",style:{background:x}},`${m}:${v}`))}):null,d.selected?n.jsx("span",{className:"af-select-check",children:"✓"}):null]})]})}})}function Qw(e){const t=e.scales&&e.scales.length?e.scales:m_,r=e.variant||"panel",o=h.useMemo(()=>t.map(a=>({value:a.id,label:a.label})),[t]);return n.jsx(nd,{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:a=>e.onChange(String(a||"").trim())})}function eb(e){const t=e.densities&&e.densities.length?e.densities:h_,r=e.variant||"panel",o=h.useMemo(()=>t.map(a=>({value:a.id,label:a.label})),[t]);return n.jsx(nd,{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:a=>e.onChange(String(a||"").trim())})}function tb(e){switch(e){case"chat":return n.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 n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M12 5v14"}),n.jsx("path",{d:"M5 12h14"})]});case"history":return n.jsxs(n.Fragment,{children:[n.jsx("circle",{cx:"12",cy:"12",r:"9"}),n.jsx("path",{d:"M12 7v5l3 3"})]});case"refresh":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M21 12a9 9 0 0 0-15.5-6.4L3 8"}),n.jsx("path",{d:"M3 3v5h5"}),n.jsx("path",{d:"M3 12a9 9 0 0 0 15.5 6.4L21 16"}),n.jsx("path",{d:"M21 21v-5h-5"})]});case"settings":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M4 6h16"}),n.jsx("circle",{cx:"8",cy:"6",r:"2"}),n.jsx("path",{d:"M4 12h16"}),n.jsx("circle",{cx:"16",cy:"12",r:"2"}),n.jsx("path",{d:"M4 18h16"}),n.jsx("circle",{cx:"10",cy:"18",r:"2"})]});case"user":return n.jsxs(n.Fragment,{children:[n.jsx("circle",{cx:"12",cy:"8",r:"4"}),n.jsx("path",{d:"M4 21a8 8 0 0 1 16 0"})]});case"bot":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M12 2v3"}),n.jsx("rect",{x:"5",y:"6",width:"14",height:"14",rx:"3"}),n.jsx("circle",{cx:"9",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),n.jsx("circle",{cx:"15",cy:"13",r:"1",fill:"currentColor",stroke:"none"}),n.jsx("path",{d:"M9 17h6"})]});case"paperclip":return n.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 n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M12 14a3 3 0 0 0 3-3V5a3 3 0 0 0-6 0v6a3 3 0 0 0 3 3z"}),n.jsx("path",{d:"M19 11a7 7 0 0 1-14 0"}),n.jsx("path",{d:"M12 18v4"}),n.jsx("path",{d:"M8 22h8"})]});case"speaker":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),n.jsx("path",{d:"M15.5 8.5a5 5 0 0 1 0 7"}),n.jsx("path",{d:"M18 6a9 9 0 0 1 0 12"})]});case"pause":return n.jsxs(n.Fragment,{children:[n.jsx("rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"}),n.jsx("rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",fill:"currentColor",stroke:"none"})]});case"terminal":return n.jsxs(n.Fragment,{children:[n.jsx("rect",{x:"3",y:"4",width:"18",height:"16",rx:"2",ry:"2"}),n.jsx("path",{d:"M7 9l3 3-3 3"}),n.jsx("path",{d:"M12 15h5"})]});case"edit":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M12 20h9"}),n.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 n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),n.jsx("path",{d:"M7 10l5 5 5-5"}),n.jsx("path",{d:"M12 15V3"})]});case"loader":return n.jsx("path",{d:"M21 12a9 9 0 1 1-3.3-6.9"});case"info":return n.jsxs(n.Fragment,{children:[n.jsx("circle",{cx:"12",cy:"12",r:"10"}),n.jsx("path",{d:"M12 16v-4"}),n.jsx("circle",{cx:"12",cy:"8",r:"0.75",fill:"currentColor",stroke:"none"})]});case"warning":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M12 3l10 18H2L12 3z"}),n.jsx("path",{d:"M12 9v4"}),n.jsx("circle",{cx:"12",cy:"17",r:"0.75",fill:"currentColor",stroke:"none"})]});case"error":return n.jsxs(n.Fragment,{children:[n.jsx("circle",{cx:"12",cy:"12",r:"10"}),n.jsx("path",{d:"M15 9l-6 6"}),n.jsx("path",{d:"M9 9l6 6"})]});case"copy":return n.jsxs(n.Fragment,{children:[n.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),n.jsx("path",{d:"M5 15V5a2 2 0 0 1 2-2h10"})]});case"check":return n.jsx("path",{d:"M20 6L9 17l-5-5"});case"x":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M18 6L6 18"}),n.jsx("path",{d:"M6 6l12 12"})]});case"chevronDown":return n.jsx("path",{d:"M6 9l6 6 6-6"});case"chevronRight":return n.jsx("path",{d:"M9 18l6-6-6-6"});case"trash":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M3 6h18"}),n.jsx("path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),n.jsx("path",{d:"M6 6l1 16h10l1-16"}),n.jsx("path",{d:"M10 11v6"}),n.jsx("path",{d:"M14 11v6"})]});case"send":return n.jsxs(n.Fragment,{children:[n.jsx("path",{d:"M22 2L11 13"}),n.jsx("path",{d:"M22 2L15 22l-4-9-9-4 20-7z"})]});default:return null}}function hn({name:e,size:t=16,className:r,title:o,...a}){const c=o?void 0:!0;return n.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":c,role:o?"img":"presentation",...a,children:[o?n.jsx("title",{children:o}):null,tb(e)]})}function nb(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 rb(e){var S;const t=e.message,r=h.useMemo(()=>nb(t),[t.kind,t.level,t.role,t.title]),o=String(t.ts||"").trim(),a=o?new Date(o).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):"",[c,u]=h.useState("idle"),d=typeof e.onSpeakToggle=="function"&&r.variant==="assistant"&&!!String(t.content||"").trim(),m=d&&((S=e.getSpeakState)==null?void 0:S.call(e,t))||"idle",_=m==="loading"?"loader":m==="playing"?"pause":"speaker",p=m==="loading"?"Generating audio…":m==="playing"?"Pause":m==="paused"?"Resume":"Speak (TTS)",x=e.showCopy!==!1,v=Array.isArray(e.attachments)?e.attachments:[],b=Array.isArray(e.stats)?e.stats:[];return n.jsxs("div",{className:["pc-chat-item",`pc-chat-item--${r.variant}`,e.className].filter(Boolean).join(" "),children:[n.jsxs("div",{className:"pc-chat-header",children:[n.jsx("div",{className:"pc-chat-avatar","aria-hidden":"true",children:n.jsx(hn,{name:r.icon,size:14})}),n.jsx("span",{className:"pc-chat-role",children:r.label}),n.jsx("span",{className:"pc-chat-header-spacer"}),a?n.jsx("span",{className:"pc-chat-time",children:a}):null,n.jsxs("div",{className:"pc-chat-header-actions",children:[d?n.jsx("button",{className:"pc-chat-icon-btn",type:"button","aria-label":p,title:p,onClick:()=>{var j;return(j=e.onSpeakToggle)==null?void 0:j.call(e,t)},children:n.jsx(hn,{name:_,size:22})}):null,x?n.jsx("button",{className:`pc-chat-icon-btn ${c!=="idle"?`pc-chat-icon-btn--${c}`:""}`.trim(),type:"button","aria-label":"Copy message",title:c==="idle"?"Copy":c==="copied"?"Copied":"Copy failed",onClick:async()=>{const j=await Qr(String(t.content||""));u(j?"copied":"failed"),window.setTimeout(()=>u("idle"),900)},children:n.jsx(hn,{name:"copy",size:22})}):null]})]}),n.jsx("div",{className:"pc-chat-body",children:n.jsx(Bw,{text:String(t.content||""),renderMarkdown:e.renderMarkdown,jsonCollapseAfterDepth:e.jsonCollapseAfterDepth})}),v.length?n.jsx("div",{className:"pc-chat-attachments","aria-label":"Attachments",children:v.slice(0,24).map((j,$)=>{const T=String(j.label||"").trim()||"attachment",F=String(j.target||"").trim(),B=String(j.title||"").trim(),I=!!j.disabled||typeof j.onClick!="function";return n.jsxs("button",{type:"button",className:"pc-chat-attachment-chip",title:B||T,onClick:I?void 0:j.onClick,disabled:I,children:[n.jsx(hn,{name:"paperclip",size:14}),F?n.jsx("span",{className:`pc-chat-attachment-target pc-chat-attachment-target--${F}`,children:F}):null,n.jsx("span",{className:"pc-chat-attachment-name",children:T})]},j.id||`${T}:${$}`)})}):null,b.length?n.jsx("div",{className:"pc-chat-stats","aria-label":"Stats",children:b.slice(0,12).map((j,$)=>{const T=String(j.label||"").trim();if(!T)return null;const F=String(j.title||"").trim(),B=typeof j.onClick=="function";return n.jsxs("button",{type:"button",className:["pc-chat-stat",B?"pc-chat-stat--clickable":""].filter(Boolean).join(" "),title:F||void 0,onClick:B?()=>{var I;return(I=j.onClick)==null?void 0:I.call(j)}:void 0,disabled:!B,children:[j.icon?n.jsx("span",{className:"pc-chat-stat-icon","aria-hidden":"true",children:j.icon}):null,n.jsx("span",{className:"pc-chat-stat-label",children:T})]},j.id||`${T}:${$}`)})}):null]})}function sb(e,t){const r=Math.max(0,Math.trunc(t));return e.scrollHeight-e.scrollTop-e.clientHeight<=r}function Mm(e){const t=typeof e.autoScrollThresholdPx=="number"&&Number.isFinite(e.autoScrollThresholdPx)?e.autoScrollThresholdPx:120,r=e.autoScroll!==!1,o=h.useRef(null),a=h.useRef(null),[c,u]=h.useState(!0),d=h.useMemo(()=>Array.isArray(e.messages)?e.messages:[],[e.messages]);return h.useEffect(()=>{if(!r)return;const m=o.current;if(!m)return;const _=()=>{u(sb(m,t))};return m.addEventListener("scroll",_,{passive:!0}),_(),()=>m.removeEventListener("scroll",_)},[r,t]),h.useEffect(()=>{var m;r&&c&&((m=a.current)==null||m.scrollIntoView({block:"end"}))},[r,c,d.length]),n.jsxs("div",{ref:o,className:["pc-chat-thread",e.className].filter(Boolean).join(" "),children:[d.length?null:e.empty||null,d.map((m,_)=>n.jsx(rb,{message:m,...e.messageProps||{}},String(m.id||"")||String(m.ts||"")+":"+String(m.role||"")+":"+_)),n.jsx("div",{ref:a})]})}class Im{constructor(t){this._maxSize=Im._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=Im._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 ib(e){try{return new URL(String(e)),!0}catch{return!1}}function ob({baseUrl:e,endpoint:t}){const r=String(t||"/api/gateway/host/metrics/gpu");return ib(r)?r:e&&String(e).trim()?new URL(r,String(e)).toString():r}async function ab({token:e,getToken:t}){if(typeof t=="function"){const r=await t();return r==null?"":String(r)}return e==null?"":String(e)}function lb({token:e}){const t=String(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}function cb(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(c=>Number(c&&c.utilization_gpu_pct)).filter(c=>Number.isFinite(c));return o.length?o.reduce((c,u)=>c+u,0)/o.length:null}return null}async function ub({baseUrl:e,endpoint:t,token:r,getToken:o,signal:a,fetchImpl:c}={}){const u=ob({baseUrl:e,endpoint:t}),d=await ab({token:r,getToken:o}),m=c||globalThis.fetch;if(typeof m!="function")return{ok:!1,status:0,error:"fetch_unavailable",payload:null};let _;try{_=await m(u,{method:"GET",headers:{Accept:"application/json",...lb({token:d})},signal:a})}catch(x){return{ok:!1,status:0,error:"network_error",detail:x instanceof Error?x.message:String(x),payload:null}}let p=null;try{p=await _.json()}catch{p=null}return{ok:_.ok,status:_.status,error:_.ok?null:"http_error",payload:p}}const Zd=Object.freeze({tickMs:1500,historySize:20,endpoint:"/api/gateway/host/metrics/gpu",baseUrl:"",mode:"full"});function db(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function Dp(e,t,r){return Number.isFinite(e)?Math.min(r,Math.max(t,e)):t}function Bp(e,t){const r=Number(e);return Number.isFinite(r)?Math.floor(r):t}function zh(e,t=1){const r=Dp(Number(e)/100,0,1),o=Math.round(140-140*r),a=Dp(Number(t),0,1);return a>=1?`hsl(${o} 85% 55%)`:`hsl(${o} 85% 55% / ${a})`}function Up(e){const t={...Zd,...e||{}};return t.tickMs=Math.max(250,Bp(t.tickMs,Zd.tickMs)),t.historySize=Math.max(1,Math.min(200,Bp(t.historySize,Zd.historySize))),t.endpoint=String(t.endpoint||Zd.endpoint),t.baseUrl=String(t.baseUrl||""),t.mode=String(t.mode||Zd.mode).trim().toLowerCase(),t.mode!=="icon"&&(t.mode="full"),t}function fb(){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 mb{constructor(t,r={}){if(!t||typeof t!="object")throw new TypeError("target element is required");this._target=t,this._opts=Up(r),this._buffer=new Im(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=fb();const o=document.createElement("div");o.className=this._opts.mode==="icon"?"wrap icon":"wrap";const a=document.createElement("div");a.className="top";const c=document.createElement("div");c.className="label",c.textContent="GPU";const u=document.createElement("div");u.className="value muted",u.textContent="—",a.appendChild(c),a.appendChild(u);const d=document.createElement("div");d.className="bars",o.appendChild(a),o.appendChild(d),t.appendChild(r),t.appendChild(o),this._els={wrap:o,value:u,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=Up({...this._opts,...t||{}}),o=r.historySize!==this._opts.historySize,a=r.tickMs!==this._opts.tickMs,c=r.mode!==this._opts.mode;this._opts=r,c&&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()),a&&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:a}=this._els,c=this._buffer.values(),u=this._buffer.last(),d=Number.isFinite(u)?Math.max(0,Math.min(100,u)):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",zh(d,.95)),r.style.setProperty("--monitor-gpu-accent-glow",zh(d,.35))));const m=Array.from(a.children),_=Math.max(0,m.length-c.length),p=Math.max(2,a&&typeof a.clientHeight=="number"&&a.clientHeight>0?a.clientHeight:34);for(let x=0;x<m.length;x+=1){const v=m[x],b=x-_,S=b>=0?c[b]:null,j=Number.isFinite(S)?S:null,$=j==null?0:db(j/100),T=Math.max(2,Math.min(p,Math.round($*p)));v.style.height=`${T}px`,v.style.background=j==null?"":zh(j),v.className="bar",j==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 a=await ub({baseUrl:this._opts.baseUrl,endpoint:this._opts.endpoint,token:t,getToken:r,signal:this._abort.signal}),c=a&&a.payload,u=c&&typeof c=="object"?c.supported!==!1:!0,d=cb(c);if(!a.ok){if(this._buffer.push(null),this._render({error:!0}),a.status===401||a.status===403){const m=String(this._token||"").trim(),_=typeof this._getToken=="function";if(!o&&(!!m||_))return;this._stoppedForAuth=!0,this.stop()}else a.status===429&&(this.stop(),this._resumeTimer=setTimeout(()=>{this._resumeTimer=null,this._mounted&&this.start()},3e4));return}if(!u||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 hb(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 a=this._shadow||this;this._controller=new mb(a,{}),this._upgradeProperty("token"),this._upgradeProperty("getToken"),this._upgradeProperty("mode")}_upgradeProperty(a){if(!Object.prototype.hasOwnProperty.call(this,a))return;const c=this[a];try{delete this[a]}catch{}this[a]=c}connectedCallback(){this._controller.setOptions(this._readAttrs());const a=()=>{this.isConnected&&this._controller.start()};typeof queueMicrotask=="function"?queueMicrotask(a):Promise.resolve().then(a)}disconnectedCallback(){this._controller.destroy()}attributeChangedCallback(){this._controller.setOptions(this._readAttrs())}_readAttrs(){const a=this.getAttribute("tick-ms"),c=this.getAttribute("history-size"),u=this.getAttribute("endpoint"),d=this.getAttribute("base-url"),m=this.getAttribute("mode");return{...a!=null?{tickMs:a}:{},...c!=null?{historySize:c}:{},...u!=null?{endpoint:u}:{},...d!=null?{baseUrl:d}:{},...m!=null?{mode:m}:{}}}set token(a){this._controller.token=a}get token(){return this._controller.token}set getToken(a){this._controller.getToken=a}get getToken(){return this._controller.getToken}set tickMs(a){this._controller.setOptions({tickMs:a})}get tickMs(){return this._controller.options.tickMs}set historySize(a){this._controller.setOptions({historySize:a})}get historySize(){return this._controller.options.historySize}set endpoint(a){this._controller.setOptions({endpoint:a})}get endpoint(){return this._controller.options.endpoint}set baseUrl(a){this._controller.setOptions({baseUrl:a})}get baseUrl(){return this._controller.options.baseUrl}set mode(a){this._controller.setOptions({mode:a})}get mode(){return this._controller.options.mode}}globalThis.customElements.define(e,r)}class _b{constructor(){Xd(this,"_buffer","");Xd(this,"_current",{data_lines:[]})}push(t,r){for(this._buffer+=t;;){const o=this._buffer.indexOf(`
|
|
68
|
-
`);if(o===-1)return;const a=this._buffer.slice(0,o);this._buffer=this._buffer.slice(o+1);const c=a.endsWith("\r")?a.slice(0,-1):a;if(c.startsWith(":"))continue;if(c===""){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 u=c.indexOf(":"),d=u===-1?c:c.slice(0,u),m=u===-1?"":c.slice(u+1).trimStart();if(d==="id"){this._current.id=m;continue}if(d==="event"){this._current.event=m;continue}if(d==="data"){this._current.data_lines.push(m);continue}}}}function _t(e,t){const r=(e||"").trim().replace(/\/+$/,"");return r?`${r}${t}`:t}function pt(e){var o;const t=(e||"").trim(),r={};t&&(r.Authorization=`Bearer ${t}`);try{const a=(o=document.cookie.split(";").map(c=>c.trim()).find(c=>c.startsWith("abstractobserver_gateway_csrf=")))==null?void 0:o.slice(30);a&&(r["X-AbstractObserver-CSRF"]=decodeURIComponent(a))}catch{}return r}async function Rt(e){try{const t=await e.text();return t!=null&&t.trim()?t.trim():`${e.status}`}catch{return`${e.status}`}}class Rh{constructor(t){Xd(this,"_cfg");this._cfg={...t,base_url:(t.base_url||"").trim()}}async start_run(t,r,o){const a=String((o==null?void 0:o.bundle_id)||"").trim(),c=(o==null?void 0:o.session_id)===null||(o==null?void 0:o.session_id)===void 0?"":String(o.session_id||"").trim(),u=String(t||"").trim(),d={input_data:r||{}};a&&(d.bundle_id=a),u&&(d.flow_id=u),c&&(d.session_id=c);const m=await fetch(_t(this._cfg.base_url,"/api/gateway/runs/start"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!m.ok)throw new Error(`start_run failed: ${m.status}`);const _=await m.json(),p=_==null?void 0:_.run_id;if(typeof p!="string"||!p)throw new Error("start_run: missing run_id");return p}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 a={bundle_id:r,flow_id:o,input_data:(t==null?void 0:t.input_data)||{}},c=(t==null?void 0:t.start_at)===null||(t==null?void 0:t.start_at)===void 0?"":String(t.start_at||"").trim();c&&(a.start_at=c);const u=(t==null?void 0:t.interval)===null||(t==null?void 0:t.interval)===void 0?"":String(t.interval||"").trim();u&&(a.interval=u),typeof(t==null?void 0:t.repeat_count)=="number"&&Number.isFinite(t.repeat_count)&&(a.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&&(a.repeat_until=d),typeof(t==null?void 0:t.share_context)=="boolean"&&(a.share_context=!!t.share_context);const m=(t==null?void 0:t.session_id)===null||(t==null?void 0:t.session_id)===void 0?"":String(t.session_id||"").trim();m&&(a.session_id=m);const _=await fetch(_t(this._cfg.base_url,"/api/gateway/runs/schedule"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});if(!_.ok)throw new Error(`schedule_run failed: ${_.status}`);const p=await _.json(),x=p==null?void 0:p.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(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}`),{headers:{...pt(this._cfg.auth_token)}});if(!r.ok)throw new Error(`get_run failed: ${await Rt(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 a=new URLSearchParams;(r==null?void 0:r.include_subruns)===!1&&a.set("include_subruns","false"),(r==null?void 0:r.include_session)===!0&&a.set("include_session","true"),typeof(r==null?void 0:r.session_turn_limit)=="number"&&Number.isFinite(r.session_turn_limit)&&a.set("session_turn_limit",String(Math.max(1,Math.trunc(r.session_turn_limit)))),r!=null&&r.ledger_mode&&a.set("ledger_mode",String(r.ledger_mode)),typeof(r==null?void 0:r.ledger_max_items)=="number"&&Number.isFinite(r.ledger_max_items)&&a.set("ledger_max_items",String(Math.max(0,Math.trunc(r.ledger_max_items))));const c=_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/history_bundle?${a.toString()}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`get_run_history_bundle failed: ${await Rt(u)}`);return await u.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(),a=String((t==null?void 0:t.workflow_id)||"").trim(),c=String((t==null?void 0:t.session_id)||"").trim(),u=(t==null?void 0:t.root_only)===!0,d=new URLSearchParams;d.set("limit",String(r)),o&&d.set("status",o),a&&d.set("workflow_id",a),c&&d.set("session_id",c),u&&d.set("root_only","true"),typeof(t==null?void 0:t.include_ledger_len)=="boolean"&&d.set("include_ledger_len",String(t.include_ledger_len)),typeof(t==null?void 0:t.include_metrics)=="boolean"&&d.set("include_metrics",String(t.include_metrics)),typeof(t==null?void 0:t.include_drafts)=="boolean"&&d.set("include_drafts",String(t.include_drafts));const m=_t(this._cfg.base_url,`/api/gateway/runs?${d.toString()}`),_=await fetch(m,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`list_runs failed: ${await Rt(_)}`);return await _.json()}async list_processes(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/processes"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_processes failed: ${await Rt(t)}`);return await t.json()}async list_process_env_vars(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/processes/env"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_process_env_vars failed: ${await Rt(t)}`);return await t.json()}async update_process_env_vars(t){const r={},o=t!=null&&t.set&&typeof t.set=="object"?t.set:{},a=Array.isArray(t==null?void 0:t.unset)?t==null?void 0:t.unset:[];o&&Object.keys(o).length&&(r.set=o),a&&a.length&&(r.unset=a);const c=await fetch(_t(this._cfg.base_url,"/api/gateway/processes/env"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!c.ok)throw new Error(`update_process_env_vars failed: ${await Rt(c)}`);return await c.json()}async start_process(t){const r=String(t||"").trim(),o=await fetch(_t(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/start`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`start_process failed: ${await Rt(o)}`);return await o.json()}async stop_process(t){const r=String(t||"").trim(),o=await fetch(_t(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/stop`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`stop_process failed: ${await Rt(o)}`);return await o.json()}async restart_process(t){const r=String(t||"").trim(),o=await fetch(_t(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/restart`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`restart_process failed: ${await Rt(o)}`);return await o.json()}async redeploy_process(t){const r=String(t||"").trim(),o=await fetch(_t(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(r)}/redeploy`),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`redeploy_process failed: ${await Rt(o)}`);return await o.json()}async process_log_tail(t,r){const o=String(t||"").trim(),a=typeof(r==null?void 0:r.max_bytes)=="number"?Math.max(1024,Math.min(4e5,Math.floor(r.max_bytes))):8e4,c=_t(this._cfg.base_url,`/api/gateway/processes/${encodeURIComponent(o)}/logs/tail?max_bytes=${encodeURIComponent(String(a))}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`process_log_tail failed: ${await Rt(u)}`);return await u.json()}async audit_log_tail(t){const r=typeof(t==null?void 0:t.max_bytes)=="number"?Math.max(1024,Math.min(4e5,Math.floor(t.max_bytes))):8e4,o=_t(this._cfg.base_url,`/api/gateway/audit/tail?max_bytes=${encodeURIComponent(String(r))}`),a=await fetch(o,{headers:{...pt(this._cfg.auth_token)}});if(!a.ok)throw new Error(`audit_log_tail failed: ${await Rt(a)}`);return await a.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(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(r)}/input_data`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_run_input_data failed: ${await Rt(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 a=typeof(r==null?void 0:r.limit)=="number"?r.limit:200,c=typeof(r==null?void 0:r.offset)=="number"?Math.max(0,Math.floor(r.offset)):0,u=_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/artifacts?limit=${encodeURIComponent(String(a))}&offset=${encodeURIComponent(String(c))}`),d=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`list_run_artifacts failed: ${await Rt(d)}`);return await d.json()}async list_session_artifacts(t,r){const o=String(t||"").trim();if(!o)throw new Error("list_session_artifacts: session_id is required");const a=typeof(r==null?void 0:r.limit)=="number"?r.limit:200,c=typeof(r==null?void 0:r.offset)=="number"?Math.max(0,Math.floor(r.offset)):0,u=_t(this._cfg.base_url,`/api/gateway/sessions/${encodeURIComponent(o)}/artifacts?limit=${encodeURIComponent(String(a))}&offset=${encodeURIComponent(String(c))}`),d=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`list_session_artifacts failed: ${await Rt(d)}`);return await d.json()}async search_artifacts(t){const r=new URLSearchParams;r.set("scope",String((t==null?void 0:t.scope)||"all").trim()||"all");const o=String((t==null?void 0:t.session_id)||"").trim(),a=String((t==null?void 0:t.run_id)||"").trim(),c=String((t==null?void 0:t.modality)||"").trim(),u=String((t==null?void 0:t.artifact_kind)||"").trim(),d=String((t==null?void 0:t.semantic_kind)||"").trim(),m=String((t==null?void 0:t.render_kind)||"").trim(),_=String((t==null?void 0:t.workflow_id)||"").trim(),p=String((t==null?void 0:t.node_id)||"").trim(),x=String((t==null?void 0:t.content_type)||"").trim(),v=String((t==null?void 0:t.query)||"").trim(),b=String((t==null?void 0:t.tags)||"").trim(),S=String((t==null?void 0:t.cursor)||"").trim(),j=String((t==null?void 0:t.order_by)||"").trim(),$=String((t==null?void 0:t.order)||"").trim(),T=String((t==null?void 0:t.created_after)||"").trim(),F=String((t==null?void 0:t.created_before)||"").trim(),B=typeof(t==null?void 0:t.limit)=="number"?t.limit:500,I=typeof(t==null?void 0:t.offset)=="number"?Math.max(0,Math.floor(t.offset)):0;o&&r.set("session_id",o),a&&r.set("run_id",a),c&&r.set("modality",c),u&&r.set("artifact_kind",u),d&&r.set("semantic_kind",d),m&&r.set("render_kind",m),_&&r.set("workflow_id",_),p&&r.set("node_id",p),x&&r.set("content_type",x),v&&r.set("query",v),b&&r.set("tags",b),S&&r.set("cursor",S),j&&r.set("order_by",j),$&&r.set("order",$),T&&r.set("created_after",T),F&&r.set("created_before",F),t!=null&&t.include_stats&&r.set("include_stats","true"),r.set("limit",String(B)),r.set("offset",String(I));const U=await fetch(_t(this._cfg.base_url,`/api/gateway/artifacts/search?${r.toString()}`),{headers:{...pt(this._cfg.auth_token)}});if(!U.ok)throw new Error(`search_artifacts failed: ${await Rt(U)}`);return await U.json()}async artifact_stats(t){const r=new URLSearchParams;r.set("scope",String((t==null?void 0:t.scope)||"all").trim()||"all");for(const a of["session_id","run_id","modality","semantic_kind","render_kind","workflow_id","node_id","content_type","query","tags","created_after","created_before"]){const c=String((t==null?void 0:t[a])||"").trim();c&&r.set(a,c)}const o=await fetch(_t(this._cfg.base_url,`/api/gateway/artifacts/stats?${r.toString()}`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`artifact_stats failed: ${await Rt(o)}`);return await o.json()}async download_run_artifact_content(t,r,o){const a=String(t||"").trim(),c=String(r||"").trim();if(!a)throw new Error("download_run_artifact_content: run_id is required");if(!c)throw new Error("download_run_artifact_content: artifact_id is required");const u=String((o==null?void 0:o.access)||"").trim(),d=u?`?access=${encodeURIComponent(u)}`:"",m=_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(a)}/artifacts/${encodeURIComponent(c)}/content${d}`),_=await fetch(m,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`download_run_artifact_content failed: ${await Rt(_)}`);return await _.blob()}async get_ledger(t,r){const o=Number((r==null?void 0:r.after)||0),a=Number((r==null?void 0:r.limit)||0),c=_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger?after=${encodeURIComponent(String(o))}&limit=${encodeURIComponent(String(a))}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`get_ledger failed: ${u.status}`);const d=await u.json(),m=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:m,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),a=await fetch(_t(this._cfg.base_url,"/api/gateway/runs/ledger/batch"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify({runs:r,limit:o})});if(!a.ok)throw new Error(`get_ledger_batch failed: ${a.status}`);const c=await a.json(),d=(c&&typeof c=="object"?c:{}).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 a={include_subruns:(r==null?void 0:r.include_subruns)!==!1},c=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";c&&(a.provider=c);const u=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";u&&(a.model=u);const d=await fetch(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/summary`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});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 a={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)},c=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";c&&(a.provider=c);const u=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";u&&(a.model=u);const d=await fetch(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});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 a=r==null?void 0:r.audio_artifact;if(!a||typeof a!="object")throw new Error("audio_transcribe: audio_artifact is required");if(!String(a.$artifact||"").trim())throw new Error("audio_transcribe: audio_artifact.$artifact is required");const u={audio_artifact:a},d=String((r==null?void 0:r.language)||"").trim();d&&(u.language=d);const m=String((r==null?void 0:r.request_id)||"").trim();m&&(u.request_id=m);const _=await fetch(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/audio/transcribe`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`audio_transcribe failed: ${await Rt(_)}`);const p=await _.json(),x=String((p==null?void 0:p.text)||"");return{ok:!!(p!=null&&p.ok),run_id:String((p==null?void 0:p.run_id)||""),request_id:String((p==null?void 0:p.request_id)||""),text:x,transcript_artifact:p==null?void 0:p.transcript_artifact}}async voice_tts(t,r){const o=String(t||"").trim();if(!o)throw new Error("voice_tts: run_id is required");const a=String((r==null?void 0:r.text)||"").trim();if(!a)throw new Error("voice_tts: text is required");const c={text:a},u=String((r==null?void 0:r.voice)||"").trim();u&&(c.voice=u);const d=String((r==null?void 0:r.format)||"").trim();d&&(c.format=d);const m=String((r==null?void 0:r.request_id)||"").trim();m&&(c.request_id=m);const _=await fetch(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/voice/tts`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`voice_tts failed: ${await Rt(_)}`);const p=await _.json();return{ok:!!(p!=null&&p.ok),run_id:String((p==null?void 0:p.run_id)||""),request_id:String((p==null?void 0:p.request_id)||""),audio_artifact:p==null?void 0:p.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 a={include_subruns:(r==null?void 0:r.include_subruns)!==!1,messages:Array.isArray(r==null?void 0:r.messages)?r.messages:[]},c=typeof(r==null?void 0:r.provider)=="string"?String(r.provider).trim():"";c&&(a.provider=c);const u=typeof(r==null?void 0:r.model)=="string"?String(r.model).trim():"";u&&(a.model=u);const d=typeof(r==null?void 0:r.title)=="string"?String(r.title).trim():"";d&&(a.title=d);const m=await fetch(_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(o)}/chat_threads`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});if(!m.ok)throw new Error(`save_chat_thread failed: ${await Rt(m)}`);return await m.json()}async list_bundles(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/bundles"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_bundles failed: ${t.status}`);return await t.json()}async reload_bundles(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/bundles/reload"),{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`reload_bundles failed: ${t.status}`);return await t.json()}async upload_bundle(t,r){const o=(r==null?void 0:r.overwrite)===!0,a=(r==null?void 0:r.reload)!==!1,c=new FormData;c.set("overwrite",o?"true":"false"),c.set("reload",a?"true":"false"),c.set("file",t,t.name||"upload.flow");const u=await fetch(_t(this._cfg.base_url,"/api/gateway/bundles/upload"),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:c});if(!u.ok)throw new Error(`upload_bundle failed: ${await Rt(u)}`);return await u.json()}async attachments_upload(t,r,o){const a=String(t||"").trim();if(!a)throw new Error("attachments_upload: session_id is required");if(!r)throw new Error("attachments_upload: file is required");const c=String((o==null?void 0:o.filename)||"").trim()||String((r==null?void 0:r.name)||"").trim()||"upload.bin",u=String((o==null?void 0:o.content_type)||"").trim()||String((r==null?void 0:r.type)||"").trim(),d=new FormData;d.append("session_id",a),d.append("file",r,c),d.append("filename",c),u&&d.append("content_type",u);const m=await fetch(_t(this._cfg.base_url,"/api/gateway/attachments/upload"),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:d});if(!m.ok)throw new Error(`attachments_upload failed: ${await Rt(m)}`);const _=await m.json(),p=_==null?void 0:_.attachment;if(!p||typeof p!="object")throw new Error("attachments_upload: missing attachment");if(!String(p.$artifact||"").trim())throw new Error("attachments_upload: missing attachment.$artifact");return p}async remove_bundle(t,r){const o=String(t||"").trim();if(!o)throw new Error("remove_bundle: bundle_id is required");const a=new URLSearchParams,c=String((r==null?void 0:r.bundle_version)||"").trim();c&&a.set("bundle_version",c),a.set("reload",(r==null?void 0:r.reload)===!1?"false":"true");const u=_t(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}?${a.toString()}`),d=await fetch(u,{method:"DELETE",headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`remove_bundle failed: ${await Rt(d)}`);return await d.json()}async discovery_tools(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/discovery/tools"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`discovery_tools failed: ${t.status}`);return await t.json()}async discovery_providers(t){const r=(t==null?void 0:t.include_models)===!0,o=_t(this._cfg.base_url,`/api/gateway/discovery/providers?include_models=${encodeURIComponent(String(r))}`),a=await fetch(o,{headers:{...pt(this._cfg.auth_token)}});if(!a.ok)throw new Error(`discovery_providers failed: ${a.status}`);return await a.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(_t(this._cfg.base_url,`/api/gateway/discovery/providers/${encodeURIComponent(r)}/models`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`discovery_provider_models failed: ${o.status}`);return await o.json()}async get_bundle(t){const r=String(t||"").trim();if(!r)throw new Error("get_bundle: bundle_id is required");const o=await fetch(_t(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(r)}`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_bundle failed: ${o.status}`);return await o.json()}async get_bundle_flow(t,r){const o=String(t||"").trim(),a=String(r||"").trim();if(!o)throw new Error("get_bundle_flow: bundle_id is required");if(!a)throw new Error("get_bundle_flow: flow_id is required");const c=await fetch(_t(this._cfg.base_url,`/api/gateway/bundles/${encodeURIComponent(o)}/flows/${encodeURIComponent(a)}`),{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`get_bundle_flow failed: ${c.status}`);return await c.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(_t(this._cfg.base_url,`/api/gateway/workflows/${encodeURIComponent(r)}/flow`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_workflow_flow failed: ${o.status}`);return await o.json()}async submit_command(t){const r=await fetch(_t(this._cfg.base_url,"/api/gateway/commands"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(t)});if(!r.ok)throw new Error(`submit_command failed: ${r.status}`);return await r.json()}async kg_query(t){const r=String((t==null?void 0:t.scope)||"session").trim().toLowerCase(),o=String((t==null?void 0:t.order)||"desc").trim().toLowerCase(),a=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):500,c={scope:r,order:o,limit:a},u=String((t==null?void 0:t.run_id)||"").trim();u&&(c.run_id=u);const d=String((t==null?void 0:t.session_id)||"").trim();d&&(c.session_id=d);const m=String((t==null?void 0:t.owner_id)||"").trim();m&&(c.owner_id=m),t!=null&&t.all_owners&&(c.all_owners=!0);const _=String((t==null?void 0:t.subject)||"").trim();_&&(c.subject=_);const p=String((t==null?void 0:t.predicate)||"").trim();p&&(c.predicate=p);const x=String((t==null?void 0:t.object)||"").trim();x&&(c.object=x);const v=String((t==null?void 0:t.since)||"").trim();v&&(c.since=v);const b=String((t==null?void 0:t.until)||"").trim();b&&(c.until=b);const S=String((t==null?void 0:t.active_at)||"").trim();S&&(c.active_at=S);const j=String((t==null?void 0:t.query_text)||"").trim();j&&(c.query_text=j),typeof(t==null?void 0:t.min_score)=="number"&&Number.isFinite(t.min_score)&&(c.min_score=Number(t.min_score));const $=await fetch(_t(this._cfg.base_url,"/api/gateway/kg/query"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!$.ok)throw new Error(`kg_query failed: ${await Rt($)}`);return await $.json()}async list_bug_reports(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/reports/bugs"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_bug_reports failed: ${await Rt(t)}`);return await t.json()}async list_feature_requests(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/reports/features"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`list_feature_requests failed: ${await Rt(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(_t(this._cfg.base_url,`/api/gateway/reports/bugs/${encodeURIComponent(r)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_bug_report_content failed: ${await Rt(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(_t(this._cfg.base_url,`/api/gateway/reports/features/${encodeURIComponent(r)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`get_feature_request_content failed: ${await Rt(o)}`);return await o.json()}async email_list_accounts(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/email/accounts"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`email_list_accounts failed: ${await Rt(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 a=String((t==null?void 0:t.mailbox)||"").trim();a&&r.set("mailbox",a);const c=String((t==null?void 0:t.since)||"").trim();c&&r.set("since",c);const u=String((t==null?void 0:t.status)||"").trim();u&&r.set("status",u);const d=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):20;r.set("limit",String(d));const m=_t(this._cfg.base_url,`/api/gateway/email/messages?${r.toString()}`),_=await fetch(m,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_list_messages failed: ${await Rt(_)}`);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 a=new URLSearchParams,c=String((r==null?void 0:r.account)||"").trim();c&&a.set("account",c);const u=String((r==null?void 0:r.mailbox)||"").trim();u&&a.set("mailbox",u);const d=typeof(r==null?void 0:r.max_body_chars)=="number"&&Number.isFinite(r.max_body_chars)?Number(r.max_body_chars):2e4;a.set("max_body_chars",String(d));const m=_t(this._cfg.base_url,`/api/gateway/email/messages/${encodeURIComponent(o)}?${a.toString()}`),_=await fetch(m,{headers:{...pt(this._cfg.auth_token)}});if(!_.ok)throw new Error(`email_read_message failed: ${await Rt(_)}`);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(_t(this._cfg.base_url,"/api/gateway/email/send"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(t||{})});if(!o.ok)throw new Error(`email_send failed: ${await Rt(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(_t(this._cfg.base_url,"/api/gateway/triage/run"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(r)});if(!o.ok)throw new Error(`triage_run failed: ${await Rt(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 a=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):200;r.set("limit",String(a));const c=_t(this._cfg.base_url,`/api/gateway/triage/decisions?${r.toString()}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`list_triage_decisions failed: ${await Rt(u)}`);return await u.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 a=String((r==null?void 0:r.action)||"").trim();if(!a)throw new Error("apply_triage_decision: action is required");const c={action:a};if(a==="defer"){const d=r==null?void 0:r.defer_days;typeof d=="number"&&Number.isFinite(d)&&d>0&&(c.defer_days=Number(d))}const u=await fetch(_t(this._cfg.base_url,`/api/gateway/triage/decisions/${encodeURIComponent(o)}/apply`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!u.ok)throw new Error(`apply_triage_decision failed: ${await Rt(u)}`);return await u.json()}async backlog_list(t){const r=String(t||"").trim();if(!r)throw new Error("backlog_list: kind is required");const o=await fetch(_t(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}`),{headers:{...pt(this._cfg.auth_token)}});if(!o.ok)throw new Error(`backlog_list failed: ${await Rt(o)}`);return await o.json()}async backlog_content(t,r){const o=String(t||"").trim(),a=String(r||"").trim();if(!o)throw new Error("backlog_content: kind is required");if(!a)throw new Error("backlog_content: filename is required");const c=await fetch(_t(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(o)}/${encodeURIComponent(a)}/content`),{headers:{...pt(this._cfg.auth_token)}});if(!c.ok)throw new Error(`backlog_content failed: ${await Rt(c)}`);return await c.json()}async backlog_template(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/template"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_template failed: ${await Rt(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(),a=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(!a)throw new Error("backlog_move: filename is required");const c=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/move"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify({from_kind:r,to_kind:o,filename:a})});if(!c.ok)throw new Error(`backlog_move failed: ${await Rt(c)}`);return await c.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 c={content:String((t==null?void 0:t.content)??"")},u=String((t==null?void 0:t.expected_sha256)||"").trim();u&&(c.expected_sha256=u);const d=await fetch(_t(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/update`),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!d.ok)throw new Error(`backlog_update failed: ${await Rt(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(),a=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(!a)throw new Error("backlog_create: title is required");const c={kind:r,package:o,title:a},u=String((t==null?void 0:t.task_type)||"").trim();u&&(c.task_type=u);const d=String((t==null?void 0:t.summary)||"").trim();d&&(c.summary=d);const m=(t==null?void 0:t.content)==null?"":String((t==null?void 0:t.content)??"");m.trim()&&(c.content=m);const _=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/create"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(c)});if(!_.ok)throw new Error(`backlog_create failed: ${await Rt(_)}`);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 a=new URLSearchParams,c=String((t==null?void 0:t.execution_mode)||"").trim();c&&a.set("execution_mode",c);const u=_t(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/execute${a.toString()?`?${a.toString()}`:""}`),d=await fetch(u,{method:"POST",headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_execute failed: ${await Rt(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(u=>({kind:String((u==null?void 0:u.kind)||"").trim(),filename:String((u==null?void 0:u.filename)||"").trim()}))},a=String((t==null?void 0:t.execution_mode)||"").trim();a&&(o.execution_mode=a);const c=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/execute_batch"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!c.ok)throw new Error(`backlog_execute_batch failed: ${await Rt(c)}`);return await c.json()}async backlog_merge(t){const r=String((t==null?void 0:t.kind)||"").trim(),o=String((t==null?void 0:t.package)||"").trim(),a=String((t==null?void 0:t.title)||"").trim(),c=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(!a)throw new Error("backlog_merge: title is required");if(c.length<2)throw new Error("backlog_merge: at least 2 items are required");const u={kind:r,package:o,title:a,items:c.map(p=>({kind:String((p==null?void 0:p.kind)||"").trim(),filename:String((p==null?void 0:p.filename)||"").trim()}))},d=String((t==null?void 0:t.task_type)||"").trim();d&&(u.task_type=d);const m=String((t==null?void 0:t.summary)||"").trim();m&&(u.summary=m);const _=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/merge"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!_.ok)throw new Error(`backlog_merge failed: ${await Rt(_)}`);return await _.json()}async backlog_exec_config(){const t=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/exec/config"),{headers:{...pt(this._cfg.auth_token)}});if(!t.ok)throw new Error(`backlog_exec_config failed: ${await Rt(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 a=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):200;r.set("limit",String(a));const c=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests?${r.toString()}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`backlog_exec_requests failed: ${await Rt(u)}`);return await u.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 a=new URLSearchParams;(r==null?void 0:r.include_prompt)===!0&&a.set("include_prompt","true");const c=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(o)}?${a.toString()}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`backlog_exec_request failed: ${await Rt(u)}`);return await u.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 a={feedback:o},c=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/feedback`),u=await fetch(c,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});if(!u.ok)throw new Error(`backlog_exec_feedback failed: ${await Rt(u)}`);return await u.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 a=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/promote`),c=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!c.ok)throw new Error(`backlog_exec_promote failed: ${await Rt(c)}`);return await c.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=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/uat/deploy`),a=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:"{}"});if(!a.ok)throw new Error(`backlog_exec_deploy_uat failed: ${await Rt(a)}`);return await a.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,a=String((t==null?void 0:t.name)||"").trim();a&&o.set("name",a);const c=typeof(t==null?void 0:t.max_bytes)=="number"&&Number.isFinite(t.max_bytes)?Number(t.max_bytes):0;c>0&&o.set("max_bytes",String(Math.floor(c)));const u=_t(this._cfg.base_url,`/api/gateway/backlog/exec/requests/${encodeURIComponent(r)}/logs/tail?${o.toString()}`),d=await fetch(u,{headers:{...pt(this._cfg.auth_token)}});if(!d.ok)throw new Error(`backlog_exec_log_tail failed: ${await Rt(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 a=typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?Number(t.limit):600;r.set("limit",String(a));const c=_t(this._cfg.base_url,`/api/gateway/backlog/exec/active_items?${r.toString()}`),u=await fetch(c,{headers:{...pt(this._cfg.auth_token)}});if(!u.ok)throw new Error(`backlog_exec_active_items failed: ${await Rt(u)}`);return await u.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(),a=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(!a)throw new Error("backlog_upload_attachment: file is required");const c=(t==null?void 0:t.overwrite)===!0,u=new FormData;u.set("overwrite",c?"true":"false"),u.set("file",a,a.name||"attachment");const d=await fetch(_t(this._cfg.base_url,`/api/gateway/backlog/${encodeURIComponent(r)}/${encodeURIComponent(o)}/attachments/upload`),{method:"POST",headers:{...pt(this._cfg.auth_token)},body:u});if(!d.ok)throw new Error(`backlog_upload_attachment failed: ${await Rt(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(),a=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(!a)throw new Error("backlog_assist: title is required");const c=Array.isArray(t==null?void 0:t.messages)?t.messages:[],u={kind:r,package:o,title:a,messages:c},d=String((t==null?void 0:t.summary)||"").trim();d&&(u.summary=d);const m=(t==null?void 0:t.draft_markdown)==null?"":String(t.draft_markdown??"");m.trim()&&(u.draft_markdown=m);const _=String((t==null?void 0:t.provider)||"").trim();_&&(u.provider=_);const p=String((t==null?void 0:t.model)||"").trim();p&&(u.model=p);const x=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/assist"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(u)});if(!x.ok)throw new Error(`backlog_assist failed: ${await Rt(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(),a=String((t==null?void 0:t.package)||"").trim(),c=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(!a)throw new Error("backlog_maintain: package is required");if(!c)throw new Error("backlog_maintain: title is required");const u=Array.isArray(t==null?void 0:t.messages)?t.messages:[],d={kind:r,filename:o,package:a,title:c,messages:u},m=String((t==null?void 0:t.summary)||"").trim();m&&(d.summary=m);const _=(t==null?void 0:t.draft_markdown)==null?"":String(t.draft_markdown??"");_.trim()&&(d.draft_markdown=_);const p=String((t==null?void 0:t.provider)||"").trim();p&&(d.provider=p);const x=String((t==null?void 0:t.model)||"").trim();x&&(d.model=x);const v=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/maintain"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(d)});if(!v.ok)throw new Error(`backlog_maintain failed: ${await Rt(v)}`);return await v.json()}async backlog_advisor(t){const o={messages:Array.isArray(t==null?void 0:t.messages)?t.messages:[]},a=String((t==null?void 0:t.provider)||"").trim();a&&(o.provider=a);const c=String((t==null?void 0:t.model)||"").trim();c&&(o.model=c);const u=String((t==null?void 0:t.agent)||"").trim();u&&(o.agent=u),(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 m=String((t==null?void 0:t.focus_type)||"").trim();m&&(o.focus_type=m);const _=await fetch(_t(this._cfg.base_url,"/api/gateway/backlog/advisor"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(o)});if(!_.ok)throw new Error(`backlog_advisor failed: ${await Rt(_)}`);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 a={session_id:r,description:o},c=String((t==null?void 0:t.active_run_id)||"").trim();c&&(a.active_run_id=c);const u=String((t==null?void 0:t.workflow_id)||"").trim();u&&(a.workflow_id=u);const d=String((t==null?void 0:t.client)||"").trim();d&&(a.client=d);const m=String((t==null?void 0:t.client_version)||"").trim();m&&(a.client_version=m);const _=String((t==null?void 0:t.user_agent)||"").trim();_&&(a.user_agent=_);const p=String((t==null?void 0:t.url)||"").trim();p&&(a.url=p);const x=String((t==null?void 0:t.provider)||"").trim();x&&(a.provider=x);const v=String((t==null?void 0:t.model)||"").trim();v&&(a.model=v);const b=String((t==null?void 0:t.template)||"").trim();b&&(a.template=b);const S=t==null?void 0:t.context;S&&typeof S=="object"&&(a.context=S);const j=await fetch(_t(this._cfg.base_url,"/api/gateway/bugs/report"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});if(!j.ok)throw new Error(`bug_report_create failed: ${await Rt(j)}`);return await j.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 a={session_id:r,description:o},c=String((t==null?void 0:t.active_run_id)||"").trim();c&&(a.active_run_id=c);const u=String((t==null?void 0:t.workflow_id)||"").trim();u&&(a.workflow_id=u);const d=String((t==null?void 0:t.client)||"").trim();d&&(a.client=d);const m=String((t==null?void 0:t.client_version)||"").trim();m&&(a.client_version=m);const _=String((t==null?void 0:t.user_agent)||"").trim();_&&(a.user_agent=_);const p=String((t==null?void 0:t.url)||"").trim();p&&(a.url=p);const x=String((t==null?void 0:t.provider)||"").trim();x&&(a.provider=x);const v=String((t==null?void 0:t.model)||"").trim();v&&(a.model=v);const b=String((t==null?void 0:t.template)||"").trim();b&&(a.template=b);const S=t==null?void 0:t.context;S&&typeof S=="object"&&(a.context=S);const j=await fetch(_t(this._cfg.base_url,"/api/gateway/features/report"),{method:"POST",headers:{"Content-Type":"application/json",...pt(this._cfg.auth_token)},body:JSON.stringify(a)});if(!j.ok)throw new Error(`feature_report_create failed: ${await Rt(j)}`);return await j.json()}async stream_ledger(t,r){const o=Number((r==null?void 0:r.after)||0),a=r.on_step,c=r.signal,u=_t(this._cfg.base_url,`/api/gateway/runs/${encodeURIComponent(t)}/ledger/stream?after=${encodeURIComponent(String(o))}`),d=await fetch(u,{headers:{Accept:"text/event-stream",...pt(this._cfg.auth_token)},signal:c});if(!d.ok)throw new Error(`stream_ledger failed: ${d.status}`);if(!d.body)throw new Error("stream_ledger: response body is missing");const m=d.body.getReader(),_=new TextDecoder("utf-8"),p=new _b;for(;;){const{value:x,done:v}=await m.read();if(v)return;const b=_.decode(x,{stream:!0});p.push(b,S=>{if(!(S.event!=="step"||!S.data))try{const j=JSON.parse(S.data);j&&typeof j.cursor=="number"&&j.record&&a(j)}catch{}})}}}function es(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`id_${Date.now()}_${Math.random().toString(16).slice(2)}`}function pb(e){const t=(e||"").trim();return t?{Authorization:`Bearer ${t}`}:{}}class gb{constructor(t){Xd(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)||es()),a=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 c={jsonrpc:"2.0",id:es(),method:"tools/call",params:{name:r,arguments:a}},u=await fetch(this._cfg.url,{method:"POST",headers:{"Content-Type":"application/json",...pb(this._cfg.auth_token)},body:JSON.stringify(c)});if(!u.ok)return{call_id:o,name:r,success:!1,output:null,error:`Worker HTTP ${u.status}`};const d=await u.json().catch(()=>null),m=d==null?void 0:d.result,_=!!(m!=null&&m.isError),x=(Array.isArray(m==null?void 0:m.content)?m.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 Zo(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 mm(e){var c,u,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(((c=r==null?void 0:r.payload)==null?void 0:c.name)||((u=r==null?void 0:r.payload)==null?void 0:u.event_name)||"").trim();if(!o)return null;const a=(d=r==null?void 0:r.payload)==null?void 0:d.payload;return{name:o,payload:a}}function Af(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:[]}function rd(e){return String(e||"").trim().toLowerCase()}function th(e){return`${(e==null?void 0:e.filename)||""} ${(e==null?void 0:e.source_path)||""}`.trim().toLowerCase()}function mf(e,t){return t.some(r=>e.endsWith(r))}function yb(e){const t=(e==null?void 0:e.tags)||{};return[e==null?void 0:e.content_type,e==null?void 0:e.filename,e==null?void 0:e.source_path,e==null?void 0:e.modality,t.kind,t.type,t.source,t.format,t.content_format,t.name].map(r=>String(r||"").trim()).filter(Boolean).join(" ").toLowerCase()}function xb(e){const t=(e==null?void 0:e.tags)||{};return[e==null?void 0:e.content_type,e==null?void 0:e.filename,e==null?void 0:e.source_path,e==null?void 0:e.modality,e==null?void 0:e.semantic_kind,e==null?void 0:e.render_kind,e==null?void 0:e.task,t.semantic_kind,t.render_kind,t.kind,t.type,t.task,t.provider_task,t.source,t.format,t.content_format,t.name].map(r=>String(r||"").trim()).filter(Boolean).join(" ").toLowerCase()}function vb(e){const t=String(e||"").trimStart().slice(0,4096).toLowerCase();return t?!!(/^<!doctype\s+html\b/.test(t)||/^<html[\s>]/.test(t)||/<head[\s>][\s\S]*<\/head>/.test(t)||/<body[\s>][\s\S]*<\/body>/.test(t)||/<(?:article|main|section|div|p|h[1-6]|meta|title|script|style)\b[\s\S]*>/.test(t)&&/<\/(?:article|main|section|div|p|h[1-6]|title|script|style)>/.test(t)):!1}function My(e,t){var u,d,m,_,p;const r=rd(e==null?void 0:e.content_type),o=th(e),a=[e==null?void 0:e.semantic_kind,e==null?void 0:e.render_kind,e==null?void 0:e.task,(u=e==null?void 0:e.tags)==null?void 0:u.semantic_kind,(d=e==null?void 0:e.tags)==null?void 0:d.render_kind,(m=e==null?void 0:e.tags)==null?void 0:m.task,(_=e==null?void 0:e.tags)==null?void 0:_.kind,(p=e==null?void 0:e.tags)==null?void 0:p.type].map(x=>String(x||"").trim().toLowerCase()).filter(Boolean).join(" ");if(/(^|[^a-z0-9])(code|source_code|script|program|executable)([^a-z0-9]|$)/i.test(a)||r.includes("javascript")||r.includes("typescript")||r.includes("x-python")||r.includes("x-shellscript")||r.includes("x-rust")||r.includes("x-go")||r.includes("x-java")||r.includes("x-csrc")||r.includes("x-c++src")||mf(o,[".py",".js",".jsx",".ts",".tsx",".mjs",".cjs",".sh",".bash",".zsh",".go",".rs",".java",".c",".cc",".cpp",".h",".hpp",".cs",".php",".rb",".swift",".kt",".sql"]))return!0;const c=String(t||"").replace(/\r\n/g,`
|
|
70
|
-
`).replace(/\r/g,`
|
|
71
|
-
`).split(`
|
|
72
|
-
`);return Ty(c)}function wb(e){const r=String(e||"").replace(/\r\n/g,`
|
|
73
|
-
`).replace(/\r/g,`
|
|
74
|
-
`).split(`
|
|
75
|
-
`),o=r.findIndex(u=>/^Markdown Content:\s*$/i.test(u.trim()));if(o===-1)return null;const a=[];for(const u of r.slice(0,o)){const d=u.match(/^\s*([A-Za-z][A-Za-z0-9 /_-]{1,40}):\s*(.+?)\s*$/);d&&a.push({label:d[1].trim(),value:d[2].trim()})}const c=r.slice(o+1).join(`
|
|
76
|
-
`).trim();return!a.length&&!c?null:{metadata:a,body:c}}function bb(e){const t=e.map(r=>r.trim()).filter(Boolean).slice(0,8);if(t.length<2)return!1;for(const r of[","," ",";"]){const o=t.map(a=>a.split(r).length);if(o[0]>=3&&o.every(a=>Math.abs(a-o[0])<=1))return!0}return!1}function jb(e){const t=e.map(o=>o.trimEnd()).filter(Boolean).slice(0,20);if(!t.length)return!1;const r=t.filter(o=>/^(\[[^\]]+\]|\d{4}-\d{2}-\d{2}[t\s]|\w+:\s|traceback\b|error\b|warn\b|info\b)/i.test(o.trim())).length;return t.length>=4&&r/t.length>=.55?!0:Ty(e)}function Ty(e){const t=e.map(o=>o.trimEnd()).filter(Boolean).slice(0,20);if(!t.length)return!1;const r=t.filter(o=>/[{};]\s*$/.test(o)||/^\s*(import|export|const|let|var|function|class|def|if|for|while|return)\b/.test(o)).length;return t.length>=4&&r/t.length>=.55}function Sb(e){const t=String(e||"");if(!t.trim())return!1;const r=t.match(/\\[A-Za-z]{2,}\b/g)||[];if(r.length>=1&&/\\(?:setcctype|sectctype|documentclass|begin|end|maketitle|geq|leq|cite|ref|label)\b/.test(t)||r.length>=4)return!0;const a=t.replace(/\r\n/g,`
|
|
77
|
-
`).replace(/\r/g,`
|
|
78
|
-
`).split(`
|
|
79
|
-
`).map(m=>m.trim()).filter(Boolean).slice(0,80);if(a.length<12)return!1;const c=a.filter(m=>m.length<=28).length,u=a.filter(m=>/^[,.;:()†]+$/.test(m)).length;return a.filter(m=>/^(abstract\.?|introduction|references|appendix|figure\s+\d+|table\s+\d+)\b/i.test(m)).length>=2&&(c/a.length>=.45||u>=2)}function kb(e,t){var _;const r=String(t||""),o=yb(e);if(/(^|[^a-z0-9])(markdown|mdown)([^a-z0-9]|$)/i.test(o))return!0;if(!r.trim())return!1;if(/(^|\n)\s*Markdown Content:\s*(\n|$)/i.test(r)||r.includes("```")||/(^|\n)\s*#{1,6}\s+\S/.test(r)||/(^|\n)[ \t]*[-*][ \t]+\S/.test(r)||/(^|\n)[ \t]*\d+[\.)][ \t]+\S/.test(r)||/\*\*[^*\n][\s\S]*?\*\*/.test(r)||/\[[^\]\n]+\]\([^)]+\)/.test(r)||/(^|\n)\s*\|.+\|\s*(\n|$)/.test(r)&&/(^|\n)\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?\s*(\n|$)/.test(r))return!0;const a=r.replace(/\r\n/g,`
|
|
80
|
-
`).replace(/\r/g,`
|
|
81
|
-
`).split(`
|
|
82
|
-
`),c=a.map(p=>p.trim()).filter(Boolean);if(c.length<2||Sb(r)||bb(a)||jb(a))return!1;const u=((_=r.match(/[A-Za-z][A-Za-z'-]+/g))==null?void 0:_.length)||0,d=a.filter(p=>!p.trim()).length,m=c.filter(p=>/[A-Za-z]{3,}/.test(p)&&p.length>=12).length;return u>=24&&m>=2&&(d>=1||c[0].length<=140)}function Dc(e){const t=rd(e==null?void 0:e.modality),r=rd(e==null?void 0:e.content_type),o=th(e),a=xb(e);return t==="image"||r.startsWith("image/")||mf(o,[".png",".jpg",".jpeg",".gif",".webp",".bmp",".svg",".tif",".tiff",".heic"])?"image":t==="audio"||t==="voice"||t==="music"||t==="sound"||r.startsWith("audio/")||/(tts|stt|voice|music|sound|speech|audio)/i.test(a)||mf(o,[".wav",".mp3",".m4a",".aac",".flac",".ogg",".opus",".aiff",".mid",".midi"])?"audio":t==="video"||r.startsWith("video/")||mf(o,[".mp4",".mov",".webm",".mkv",".avi",".m4v"])?"video":!r||t==="text"||r.startsWith("text/")||r.includes("json")||r.includes("yaml")||r.includes("toml")||r.includes("xml")||r.includes("html")||r.includes("markdown")||r.includes("csv")||My(e,"")?"text":"binary"}function hf(e,t){const r=rd(e==null?void 0:e.content_type),o=th(e),a=String(t||"").trim();return r.includes("html")||o.endsWith(".html")||o.endsWith(".htm")||vb(t)?"html":My(e,t)?"code":r.includes("markdown")||o.endsWith(".md")||o.endsWith(".markdown")?"markdown":r.includes("json")||o.endsWith(".json")||o.endsWith(".jsonl")||(a.startsWith("{")||a.startsWith("["))&&eh(a)!==null?"json":kb(e,t)?"markdown":"text"}function X_(e,t=""){const r=Dc(e);if(r==="image"||r==="video")return r;if(r==="audio"){const o=(e==null?void 0:e.tags)||{},a=[e==null?void 0:e.semantic_kind,e==null?void 0:e.modality,e==null?void 0:e.task,o.semantic_kind,o.modality,o.kind,o.task,o.source,e==null?void 0:e.filename,e==null?void 0:e.source_path].map(c=>String(c||"").trim().toLowerCase()).filter(Boolean).join(" ");return/(^|[^a-z0-9])(voice|tts|speech)([^a-z0-9]|$)/i.test(a)?"voice":/(^|[^a-z0-9])(music|song|instrumental|t2m)([^a-z0-9]|$)/i.test(a)?"music":/(^|[^a-z0-9])(sound|sfx|recording)([^a-z0-9]|$)/i.test(a)?"sound":"audio"}if(r==="binary"){const o=rd(e==null?void 0:e.modality),a=rd(e==null?void 0:e.content_type),c=th(e);return o==="document"||a.includes("pdf")||mf(c,[".pdf",".doc",".docx",".ppt",".pptx",".xls",".xlsx"])?"document":"other"}return hf(e,t)}function Lh(e){var _,p;const t=String(e||"").replace(/\r\n/g,`
|
|
83
|
-
`).replace(/\r/g,`
|
|
84
|
-
`).trim();if(!t)return"";const r=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),o=t.match(/<!--[\s\S]*?-->|<!doctype\b[^>]*>|<!\[CDATA\[[\s\S]*?\]\]>|<\/?[A-Za-z][^>]*>|[^<]+/gi)||[t],a=[];let c=0,u="";const d=x=>" ".repeat(Math.max(0,x)),m=(x,v)=>{const b=x.match(/^(<\/?|<!)([^\s/>]+)([\s\S]*?)(\/?>)$/);if(!b||x.length<=120||x.startsWith("</")||x.startsWith("<!"))return[`${d(v)}${x.trim()}`];const S=(b[3]||"").trim();if(!S)return[`${d(v)}${x.trim()}`];const j=S.match(/[^\s="'<>`]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'<>`]+))?/g)||[S];return[`${d(v)}${b[1]}${b[2]}`,...j.map($=>`${d(v+1)}${$.trim()}`),`${d(v)}${b[4]}`]};for(const x of o){const v=String(x||"");if(!v.trim())continue;const b=v.trim().toLowerCase();if(b.startsWith("</")){const j=((_=b.match(/^<\/\s*([a-z0-9:-]+)/))==null?void 0:_[1])||"";u&&j===u&&(u=""),c=Math.max(0,c-1),a.push(`${d(c)}${v.trim()}`);continue}if(v.trimStart().startsWith("<")){a.push(...m(v,c));const j=((p=b.match(/^<\s*([a-z0-9:-]+)/))==null?void 0:p[1])||"";/\/>\s*$/.test(v)||b.startsWith("<!")||r.has(j)||(c+=1,(j==="script"||j==="style")&&(u=j));continue}if(u){const j=v.trim();j&&a.push(...j.split(`
|
|
85
|
-
`).map($=>`${d(c)}${$.trimEnd()}`));continue}const S=v.replace(/\s+/g," ").trim();S&&a.push(`${d(c)}${S}`)}return a.join(`
|
|
86
|
-
`)}const Nb={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"},Cb=[{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 Eb(){const[e,t]=h.useState(!0);return n.jsxs("div",{className:"pin-legend",children:[n.jsxs("button",{className:"pin-legend-toggle mono",type:"button",onClick:()=>t(r=>!r),title:"Pin Type Legend",children:[e?"?":"×"," Pin Types"]}),e?null:n.jsxs("div",{className:"pin-legend-content",children:[Cb.map(r=>n.jsxs("div",{className:"pin-legend-row",children:[n.jsx("span",{className:"pin-legend-shape",style:{color:Nb[r.type]},children:r.shape}),n.jsx("span",{className:"pin-legend-label mono",children:r.label}),n.jsx("span",{className:"pin-legend-desc mono",children:r.description})]},r.type)),n.jsxs("div",{className:"pin-legend-rules mono",children:[n.jsx("strong",{children:"Connection Rules:"}),n.jsxs("ul",{children:[n.jsx("li",{children:"Execution connects to Execution only"}),n.jsx("li",{children:'"Any" type accepts all data types'}),n.jsx("li",{children:"Same types always compatible"}),n.jsx("li",{children:"Array and Object are interchangeable"}),n.jsx("li",{children:'"Tools" is compatible with Array (specialized string[])'})]})]})]})]})}function Fn(e){return typeof e=="string"?e:e==null?"":String(e)}function Wp(e,t){const r=Fn(e).trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function zy(e){const t=Fn(e==null?void 0:e.targetHandle),r=Fn(e==null?void 0:e.sourceHandle);return!!(t==="exec-in"||r==="exec-out"||t.includes("exec")||r.includes("exec"))}function Ry(e){if(!e||typeof e!="object")return"";const t=e!=null&&e.data&&typeof e.data=="object"?e.data:{};return Fn((t==null?void 0:t.nodeType)||(e==null?void 0:e.type)||"").trim()}function Ly(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=Fn(r).trim();if(!o)return"";if(o.includes(":")){const a=o.split(":",2);if(a.length===2&&a[1])return a[1].trim()}return o}function $b(e){const t=Fn(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(Ry(o)==="on_flow_start"){const a=Fn(o==null?void 0:o.id).trim();if(a)return a}return""}function Ph(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 Qd(e,t){const r=Fn(e).trim(),o=Fn(t).trim();return o?r?`${r}::${o}`:o:""}function Ab(e){const t=e.root&&typeof e.root=="object"?e.root:{};if(!e.expand_subflows)return t;const r=[],o=[],a=new Set,c=(u,d,m,_)=>{if(!u||typeof u!="object"||r.length>=e.max_nodes||o.length>=e.max_edges)return;const p=Array.isArray(u.nodes)?u.nodes:[],x=Array.isArray(u.edges)?u.edges:[];for(const v of p){const b=Fn(v==null?void 0:v.id).trim();if(!b)continue;const S=Qd(d,b);if(!S||a.has(S))continue;const j=Ph(v),$={...v,id:S,position:{x:j.x+m.x,y:j.y+m.y}};if(r.push($),a.add(S),r.length>=e.max_nodes)break}for(const v of x){if(!zy(v))continue;const b=Fn(v==null?void 0:v.source).trim(),S=Fn(v==null?void 0:v.target).trim();if(!b||!S)continue;const j=Qd(d,b),$=Qd(d,S);if(!j||!$)continue;const T=Fn(v==null?void 0:v.id).trim(),F=T?`${j}->${$}::${T}`:`${j}->${$}`;if(o.push({...v,id:F,source:j,target:$}),o.length>=e.max_edges)break}if(!(_>=e.max_depth))for(const v of p){if(r.length>=e.max_nodes||o.length>=e.max_edges)return;if(Ry(v)!=="subflow")continue;const b=Ly(v);if(!b)continue;const S=e.flow_by_id[b];if(!S||typeof S!="object")continue;const j=Qd(d,Fn(v==null?void 0:v.id));if(!j)continue;const $=$b(S);if(!$)continue;const F=(Array.isArray(S.nodes)?S.nodes:[]).find(ce=>Fn(ce==null?void 0:ce.id).trim()===$)||null;if(!F)continue;const B=Ph(v),I=Ph(F),K={x:B.x+m.x+240-I.x,y:B.y+m.y+0-I.y},le=Qd(j,$);o.push({id:`${j}=>${le}`,source:j,target:le,sourceHandle:"exec-out",targetHandle:"exec-in"}),c(S,j,K,_+1)}};return c(t,"",{x:0,y:0},0),{...t,id:Fn(t.id),nodes:r,edges:o}}function Mb(e){const t=Fn(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 Tb(e){const t=e.nodes.filter(c=>e.keep_id(c.id)),r=new Set(t.map(c=>c.id)),o={};for(const c of e.edges)o[c.source]||(o[c.source]=[]),o[c.source].push(c.target);const a=new Map;for(const c of t){const u=new Set,d=(o[c.id]||[]).slice();for(;d.length;){const m=d.pop();if(!m||u.has(m))continue;if(u.add(m),r.has(m)){const p=`${c.id}->${m}`;a.has(p)||a.set(p,{id:p,source:c.id,target:m});continue}const _=o[m]||[];for(const p of _)u.has(p)||d.push(p);if(a.size>=e.max_edges)break}if(a.size>=e.max_edges)break}return{nodes:t,edges:Array.from(a.values())}}function qp(e,t){const a=Math.max(t.w*8,160),c=Math.max(t.h*8,120),u=Math.max(160,Math.min(a,e.w)),d=Math.max(120,Math.min(c,e.h));return{x:e.x,y:e.y,w:u,h:d}}function zb(e){const t=typeof e.now_ms=="number"?e.now_ms:Date.now(),r=e.flow,o=Fn(e.active_node_id),a=e.recent_nodes||{},c=e.visited_nodes||{},u=e.highlight_path===!0,d=typeof e.vertical_compact=="number"?Math.max(.4,Math.min(1,e.vertical_compact)):.78,{nodes:m,edges:_,bounds:p}=h.useMemo(()=>{const N=Ab({root:r||{},flow_by_id:e.flow_by_id||{},expand_subflows:e.expand_subflows===!0,max_depth:3,max_nodes:700,max_edges:900}),L=Array.isArray(N.nodes)?N.nodes:[],q=Array.isArray(N.edges)?N.edges:[];let C=[];for(const ke of L){const Fe=Fn(ke==null?void 0:ke.id).trim();if(!Fe)continue;const ot=ke!=null&&ke.position&&typeof ke.position=="object"?ke.position:{},Et=typeof ot.x=="number"?ot.x:0,Lt=typeof ot.y=="number"?ot.y:0,ae=ke!=null&&ke.data&&typeof ke.data=="object"?ke.data:{},Kt=Fn((ae==null?void 0:ae.label)||(ke==null?void 0:ke.label)||Fe)||Fe,un=Fn((ae==null?void 0:ae.nodeType)||(ke==null?void 0:ke.type)||"unknown")||"unknown",gn=Fn((ae==null?void 0:ae.headerColor)||(ke==null?void 0:ke.headerColor)||"")||"",Ne=ae!=null&&ae.eventConfig&&typeof ae.eventConfig=="object"?ae.eventConfig:null,de=Ne&&typeof Ne.schedule=="string"?Fn(Ne.schedule).trim():"",Ee=Ne&&typeof Ne.recurrent=="boolean"?!!Ne.recurrent:void 0,$t=un==="subflow"?Ly(ke):"",bt=de||Ee!==void 0||$t?{schedule:de||void 0,recurrent:Ee,subflow_id:$t||void 0}:void 0;C.push({id:Fe,x:Et,y:Lt,label:Kt,type:un,color:gn,meta:bt})}const X={};for(const ke of C)X[ke.id]=ke;let se=[];for(const ke of q){if(!zy(ke))continue;const Fe=Fn(ke==null?void 0:ke.source).trim(),ot=Fn(ke==null?void 0:ke.target).trim();!Fe||!ot||se.push({id:Fn((ke==null?void 0:ke.id)||`${Fe}->${ot}`),source:Fe,target:ot})}const ie=new Set(C.map(ke=>ke.id));if(se=se.filter(ke=>ie.has(ke.source)&&ie.has(ke.target)),e.simplify===!0){const Fe=Tb({nodes:C,edges:se,keep_id:ot=>{if(o&&ot===o)return!0;const Et=X[ot];if(!Et)return!1;const Lt=Fn(Et.type).trim().toLowerCase();return Lt==="on_flow_start"||Lt==="on_flow_end"||Lt==="subflow"?!0:!Mb(Lt)},max_edges:900});C=Fe.nodes,se=Fe.edges}if(e.prefer_vertical===!0&&C.length>=2){const ke=C.map(ae=>ae.x),Fe=C.map(ae=>ae.y),ot=Math.max(...ke)-Math.min(...ke),Et=Math.max(...Fe)-Math.min(...Fe);ot>=Et&&(C=C.map(ae=>({...ae,x:ae.y,y:ae.x})));const Lt=Math.min(...C.map(ae=>ae.y));C=C.map(ae=>({...ae,y:Lt+(ae.y-Lt)*d}))}const ye={};for(const ke of C)ye[ke.id]=ke;const Le=160,Me=56,De=Le/2,We=Me/2;let ve=0,Pe=0,me=0,we=0;C.length&&(ve=Math.min(...C.map(ke=>ke.x)),Pe=Math.min(...C.map(ke=>ke.y)),me=Math.max(...C.map(ke=>ke.x+Le)),we=Math.max(...C.map(ke=>ke.y+Me)));let Oe=0;if(se.length){const ke=new Set(se.map(Fe=>`${Fe.source}->${Fe.target}`));for(const Fe of se){if(!ke.has(`${Fe.target}->${Fe.source}`))continue;const ot=ye[Fe.source],Et=ye[Fe.target];if(!ot||!Et)continue;const Lt=ot.x+De,ae=ot.y+We,Kt=Et.x+De,un=Et.y+We,gn=Math.max(1,Math.hypot(Kt-Lt,un-ae)),Ne=Math.max(28,Math.min(72,gn*.14)),de=Math.min(200,Ne*3.5);de>Oe&&(Oe=de)}}const qe=60+Oe,rt={x:ve-qe,y:Pe-qe,w:me-ve+qe*2,h:we-Pe+qe*2,node_w:Le,node_h:Me};return{nodes:C,edges:se,bounds:rt}},[r,e.flow_by_id,e.expand_subflows,e.simplify,e.prefer_vertical,o,d]);if(!r)return n.jsx("div",{className:"graph_empty mono",children:"(no graph loaded)"});const x=h.useRef(null),[v,b]=h.useState(()=>({x:p.x,y:p.y,w:p.w,h:p.h})),S=h.useRef(v);S.current=v,h.useEffect(()=>{b({x:p.x,y:p.y,w:p.w,h:p.h})},[p.x,p.y,p.w,p.h]);const j=h.useRef(new Map),$=h.useRef(null),T=`${v.x} ${v.y} ${v.w} ${v.h}`,F={};for(const N of m)F[N.id]=N;const B=N=>{let L=Fn(N).trim();if(!L)return"";if(F[L])return L;for(;L.includes("::");)if(L=L.slice(0,Math.max(0,L.lastIndexOf("::"))),F[L])return L;return""},I=B(o),U={};for(const[N,L]of Object.entries(a)){if(typeof L!="number")continue;const q=B(N);q&&(U[q]=Math.max(U[q]||0,L))}const te={};if(u)for(const[N,L]of Object.entries(c)){if(typeof L!="number")continue;const q=B(N);q&&(te[q]=typeof te[q]=="number"?Math.min(te[q],L):L)}const K=Fn(e.schedule_next_in).trim(),le=Fn(e.schedule_interval).trim(),ce=e.node_last_ms&&typeof e.node_last_ms=="object"?e.node_last_ms:{},pe=N=>{try{const L=new Date(N),q=String(L.getHours()).padStart(2,"0"),C=String(L.getMinutes()).padStart(2,"0");return`${q}:${C}`}catch{return""}},Re=(N,L)=>{var se,ie;const q=Fn((se=N.meta)==null?void 0:se.schedule).trim();if(!(((ie=N.meta)==null?void 0:ie.recurrent)===!0))return L&&K?`next ${K}`:q&&q.length<=12&&!q.includes("T")?`in ${q}`:"scheduled";const X=q||le;return X?L&&K?`${X} • next ${K}`:`every ${X}`:L&&K?`next ${K}`:"scheduled"},W=N=>{var Le;const L=Fn((Le=N.meta)==null?void 0:Le.subflow_id).trim(),q=L&&e.flow_by_id?e.flow_by_id[L]:null,X=Fn(q==null?void 0:q.name).trim()||L||N.label||N.id,se=typeof ce[N.id]=="number"?Number(ce[N.id]):null,ie=se!==null?pe(se):"",ye=ie?`last ${ie}`:"subflow";return{label:X,sub:ye}},z=(N,L,q)=>{const C=q||S.current,X=x.current;if(!X)return{x:N,y:L};const se=X.getBoundingClientRect(),ie=se.width>0?(N-se.left)/se.width:0,ye=se.height>0?(L-se.top)/se.height:0;return{x:C.x+ie*C.w,y:C.y+ye*C.h}},P=(N,L,q)=>{const C=q||S.current,X=Math.max(.12,Math.min(8,L)),se=C.w*X,ie=C.h*X,ye=C.w>0?(N.x-C.x)/C.w:.5,Le=C.h>0?(N.y-C.y)/C.h:.5,Me=N.x-ye*se,De=N.y-Le*ie;b(qp({x:Me,y:De,w:se,h:ie},p))},G=(N,L,q)=>{const C=q||S.current,X=x.current;if(!X)return;const se=X.getBoundingClientRect(),ie=.88,ye=se.width>0?N/se.width*C.w*ie:0,Le=se.height>0?L/se.height*C.h*ie:0;b(Me=>qp({x:(q||Me).x-ye,y:(q||Me).y-Le,w:(q||Me).w,h:(q||Me).h},p))},H=h.useMemo(()=>{const N=new Set;for(const L of _)N.add(`${L.source}->${L.target}`);return N},[_]),re=(N,L,q,C)=>{const X=p.node_w,se=p.node_h,ie=Math.abs(q),ye=Math.abs(C);if(ie<1e-6&&ye<1e-6)return{x:N,y:L};const Le=ie>1e-6?X/2/ie:Number.POSITIVE_INFINITY,Me=ye>1e-6?se/2/ye:Number.POSITIVE_INFINITY,De=Math.min(Le,Me);return{x:N+q*De,y:L+C*De}};return n.jsxs("div",{className:"graph_wrap",children:[n.jsxs("div",{className:"graph_corner",children:[n.jsxs("div",{className:"graph_corner_buttons",children:[n.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>b({x:p.x,y:p.y,w:p.w,h:p.h}),title:"Recenter",children:"⤢"}),n.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>{const N=x.current;if(!N)return;const L=N.getBoundingClientRect(),q=z(L.left+L.width/2,L.top+L.height/2);P(q,.84)},title:"Zoom in",children:"+"}),n.jsx("button",{className:"btn graph_corner_btn",type:"button",onClick:()=>{const N=x.current;if(!N)return;const L=N.getBoundingClientRect(),q=z(L.left+L.width/2,L.top+L.height/2);P(q,1.18)},title:"Zoom out",children:"−"})]}),n.jsx(Eb,{})]}),n.jsxs("svg",{ref:x,className:"graph_svg",viewBox:T,role:"img","aria-label":"Workflow execution graph",onWheel:N=>{N.preventDefault();const L=z(N.clientX,N.clientY),q=typeof N.deltaY=="number"?N.deltaY:0,C=typeof N.deltaMode=="number"?Number(N.deltaMode):0,X=C===1?q*24:C===2?q*800:q,se=45e-5*1.15*1.1;let ie=Math.exp(X*se);ie=Math.max(.86,Math.min(1.16,ie)),P(L,ie)},onPointerDown:N=>{var q,C;(C=(q=N.currentTarget).setPointerCapture)==null||C.call(q,N.pointerId),j.current.set(N.pointerId,{x:N.clientX,y:N.clientY});const L=Array.from(j.current.values());if(L.length===1)$.current={mode:"pan",start_view:S.current,start_client:{x:N.clientX,y:N.clientY},start_dist:0,anchor_svg:{x:0,y:0}};else if(L.length>=2){const X=L[0],se=L[1],ie=X.x-se.x,ye=X.y-se.y,Le=Math.max(1,Math.hypot(ie,ye)),Me={x:(X.x+se.x)/2,y:(X.y+se.y)/2},De=S.current;$.current={mode:"pinch",start_view:De,start_client:Me,start_dist:Le,anchor_svg:z(Me.x,Me.y,De)}}},onPointerMove:N=>{if(!j.current.has(N.pointerId))return;j.current.set(N.pointerId,{x:N.clientX,y:N.clientY});const L=$.current;if(!L)return;const q=Array.from(j.current.values());if(L.mode==="pan"&&q.length===1){const C=N.clientX-L.start_client.x,X=N.clientY-L.start_client.y;G(C,X,L.start_view)}else if(L.mode==="pinch"&&q.length>=2){const C=q[0],X=q[1],se=C.x-X.x,ie=C.y-X.y,ye=Math.max(1,Math.hypot(se,ie)),Le=L.start_dist/ye;P(L.anchor_svg,Le,L.start_view)}},onPointerUp:N=>{j.current.delete(N.pointerId),j.current.size===0&&($.current=null)},onPointerCancel:N=>{j.current.delete(N.pointerId),j.current.size===0&&($.current=null)},children:[n.jsxs("defs",{children:[n.jsx("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"8",markerHeight:"8",orient:"auto-start-reverse",children:n.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:"rgba(148,163,184,0.55)"})}),n.jsxs("filter",{id:"glow",children:[n.jsx("feGaussianBlur",{stdDeviation:"3",result:"coloredBlur"}),n.jsxs("feMerge",{children:[n.jsx("feMergeNode",{in:"coloredBlur"}),n.jsx("feMergeNode",{in:"SourceGraphic"})]})]})]}),_.map(N=>{const L=F[N.source],q=F[N.target];if(!L||!q)return null;const C=L.x+p.node_w/2,X=L.y+p.node_h/2,se=q.x+p.node_w/2,ie=q.y+p.node_h/2,ye=se-C,Le=ie-X,Me=re(C,X,ye,Le),De=re(se,ie,-ye,-Le),We=N.source!==N.target&&H.has(`${N.target}->${N.source}`),ve=Math.max(1,Math.hypot(ye,Le)),Pe=-Le/ve,me=ye/ve,we=String(N.source)<String(N.target)?1:-1,qe=Math.abs(ye)>=Math.abs(Le)?ye>=0:Le>=0,rt=!We||qe,ke=Math.max(28,Math.min(72,ve*.14)),Fe=Math.min(200,ke*3.5),ot=We&&!rt?Fe*we:0,Et=(Me.x+De.x)/2+Pe*ot,Lt=(Me.y+De.y)/2+me*ot,ae=We&&!rt?`M ${Me.x} ${Me.y} Q ${Et} ${Lt} ${De.x} ${De.y}`:`M ${Me.x} ${Me.y} L ${De.x} ${De.y}`,Kt=u&&te&&te[N.source]!==void 0&&te[N.target]!==void 0;return n.jsx("path",{d:ae,className:`graph_edge ${Kt?"visited":""}`,markerEnd:"url(#arrow)",fill:"none"},N.id)}),m.map(N=>{const q=(typeof U[N.id]=="number"?U[N.id]:0)>t,C=I&&N.id===I,X=u&&te&&te[N.id]!==void 0,se=`graph_node ${C?"active":q?"recent":""} ${X?"visited":""}`,ie=N.color||"rgba(255,255,255,0.16)";let ye=N.label||N.id,Le=N.type;if(N.type==="on_schedule")Le=Re(N,!!C);else if(N.type==="subflow"){const We=W(N);ye=We.label,Le=We.sub}const Me=Wp(ye,22),De=Wp(Le,22);return n.jsxs("g",{className:se,transform:`translate(${N.x}, ${N.y})`,children:[n.jsx("rect",{className:"graph_node_bg",width:p.node_w,height:p.node_h,rx:12,ry:12}),n.jsx("rect",{className:"graph_node_bar",width:p.node_w,height:6,rx:12,ry:12,fill:ie}),n.jsx("text",{className:"graph_node_label",x:12,y:28,children:Me}),n.jsx("text",{className:"graph_node_type",x:12,y:46,children:De}),N.type==="on_schedule"?n.jsx("text",{className:"graph_node_icon",x:p.node_w-18,y:18,children:"⏰"}):null]},N.id)})]})]})}function Rb(){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 Lb(){if(typeof window>"u")return!1;const e=window;return!!(e!=null&&e.AudioContext||e!=null&&e.webkitAudioContext)}function Pb(){const e=window.MediaRecorder,t=o=>{var a;try{return!!((a=e==null?void 0:e.isTypeSupported)!=null&&a.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 Ob(e,t){var a;const r=t.slice(0),o=(a=e.decodeAudioData)==null?void 0:a.bind(e);if(typeof o!="function")throw new Error("decodeAudioData not available");try{const c=o(r);if(c&&typeof c.then=="function")return await c}catch{}return await new Promise((c,u)=>{try{o(r,c,u)}catch(d){u(d)}})}function Py(e){const t=G=>{var H;return(H=e.on_error)==null?void 0:H.call(e,G)},r=h.useMemo(()=>Lb(),[]),o=h.useMemo(()=>Rb(),[]),[a,c]=h.useState({key:"",status:"idle"}),u=h.useRef(""),d=h.useRef(""),m=h.useRef(null),_=h.useRef(null),p=h.useRef(null),x=h.useRef(null),v=h.useRef(0),b=h.useRef(0),S=()=>{try{const G=globalThis,H=(G==null?void 0:G.AudioContext)||(G==null?void 0:G.webkitAudioContext);if(!H)return null;if(!m.current){const L=new H,q=L.createGain();q.gain.value=1,q.connect(L.destination),m.current=L,_.current=q}const re=m.current,N=_.current;if(!re||!N)return null;try{re.state==="suspended"&&re.resume()}catch{}return{ctx:re,gain:N}}catch{return null}},j=()=>{const G=p.current;if(p.current=null,!!G){try{G.onended=null}catch{}try{G.stop()}catch{}try{G.disconnect()}catch{}}},$=()=>{j(),d.current="",u.current="",x.current=null,v.current=0,b.current=0,c({key:"",status:"idle"})};h.useEffect(()=>()=>{var G,H;$();try{(G=_.current)==null||G.disconnect()}catch{}try{(H=m.current)==null||H.close()}catch{}m.current=null,_.current=null,x.current=null},[]);const T=async(G,H,re)=>{const N=S();if(!N)throw new Error("TTS playback is not supported in this browser");const{ctx:L,gain:q}=N;try{L.state==="suspended"&&await L.resume()}catch{}j();const C=L.createBufferSource();C.buffer=H,C.connect(q);const X=Number.isFinite(Number(H.duration))?Number(H.duration):0,se=Math.max(0,Math.min(Number(re||0),X>0?Math.max(0,X-.01):0));b.current=L.currentTime-se,v.current=se,p.current=C,u.current=G,C.onended=()=>{p.current===C&&(p.current=null,v.current=0,b.current=0,u.current="",c({key:"",status:"idle"}))},C.start(0,se),c({key:G,status:"playing"})},F=async(G,H)=>{const re=String(G||"").trim(),N=String(H||"").trim();if(!re||!N)return;const L=e.gateway,q=String(e.run_id||"").trim();if(!L){t==null||t("Connect to the gateway first.");return}if(!q){t==null||t("Voice store not available (missing run_id).");return}const C=S();if(!C){t==null||t("TTS playback is not supported in this browser.");return}const X=a.key===re;if(X&&a.status==="playing"){const se=Math.max(0,C.ctx.currentTime-Number(b.current||0));v.current=se,j(),c({key:re,status:"paused"});return}if(X&&a.status==="paused"){const se=x.current;if(se){t==null||t("");try{await T(re,se,v.current)}catch(ie){t==null||t(String((ie==null?void 0:ie.message)||ie||"TTS play failed")),c({key:"",status:"idle"})}return}}if(!(X&&a.status==="loading")){j(),x.current=null,v.current=0,b.current=0,u.current=re,d.current=re,c({key:re,status:"loading"}),t==null||t("");try{const se=await L.voice_tts(q,{text:N,request_id:es()}),ie=se==null?void 0:se.audio_artifact,ye=ie&&typeof ie=="object"&&!Array.isArray(ie)?String(ie.$artifact||"").trim():"";if(!ye)throw new Error("TTS failed: missing audio artifact");const Me=await(await L.download_run_artifact_content(q,ye)).arrayBuffer();if(d.current!==re)return;const De=await Ob(C.ctx,Me);if(d.current!==re)return;x.current=De,v.current=0,await T(re,De,0)}catch(se){d.current===re&&(d.current="",u.current="",c({key:"",status:"idle"})),t==null||t(String((se==null?void 0:se.message)||se||"TTS failed"))}}},[B,I]=h.useState(!1),[U,te]=h.useState(!1),K=h.useRef(null),le=h.useRef(null),ce=h.useRef([]),pe=h.useRef("");function Re(){var G,H;try{(H=(G=K.current)==null?void 0:G.getTracks)==null||H.call(G).forEach(re=>{try{re.stop()}catch{}})}catch{}K.current=null}h.useEffect(()=>()=>{var G,H;try{(H=(G=le.current)==null?void 0:G.stop)==null||H.call(G)}catch{}le.current=null,Re()},[]);async function W(G,H){var q;if(t==null||t(""),!G||!G.size||U)return;const re=e.gateway,N=String(e.session_id||"").trim(),L=String(e.run_id||"").trim();if(!re){t==null||t("Connect to the gateway first.");return}if(!N){t==null||t("Voice input unavailable (missing session_id).");return}if(!L){t==null||t("Voice input unavailable (missing run_id).");return}te(!0);try{const C=String(H||G.type||"").toLowerCase(),X=C.includes("mp4")?"m4a":C.includes("ogg")?"ogg":C.includes("wav")?"wav":"webm",se=new File([G],`recording.${X}`,{type:C||"audio/webm"}),ie=await re.attachments_upload(N,se,{filename:se.name,content_type:se.type}),ye=await re.audio_transcribe(L,{audio_artifact:ie,request_id:es()}),Le=String((ye==null?void 0:ye.text)||"").trim();Le&&((q=e.on_transcript)==null||q.call(e,Le))}catch(C){t==null||t(String((C==null?void 0:C.message)||C||"Transcription failed"))}finally{te(!1)}}async function z(){if(t==null||t(""),!o){t==null||t("Voice recording is not supported in this browser (MediaRecorder/getUserMedia unavailable).");return}if(!U&&!(B||le.current)){ce.current=[];try{const G=await navigator.mediaDevices.getUserMedia({audio:!0});K.current=G;const H=Pb();pe.current=H;const re=H?new MediaRecorder(G,{mimeType:H}):new MediaRecorder(G);le.current=re,re.ondataavailable=N=>{try{N!=null&&N.data&&ce.current.push(N.data)}catch{}},re.onerror=()=>{t==null||t("Recording failed.")},re.onstop=()=>{I(!1),Re(),le.current=null;try{const N=new Blob(ce.current,{type:pe.current||""});W(N,pe.current)}catch(N){t==null||t(String((N==null?void 0:N.message)||N||"Failed to build recording"))}},re.start(),I(!0)}catch(G){Re(),le.current=null,I(!1);const H=String((G==null?void 0:G.message)||G||"Failed to access microphone");t==null||t(H.toLowerCase().includes("permission")?`Microphone permission denied: ${H}`:H)}}}function P(){const G=le.current;if(!(!B||!G)){le.current=null,I(!1);try{G.stop()}catch(H){t==null||t(String((H==null?void 0:H.message)||H||"Failed to stop recording"))}}}return h.useEffect(()=>{if(!B)return;const G=()=>P();return window.addEventListener("pointerup",G),window.addEventListener("pointercancel",G),()=>{window.removeEventListener("pointerup",G),window.removeEventListener("pointercancel",G)}},[B]),{tts_supported:r,tts_playback:a,toggle_tts:F,stop_tts:$,voice_ptt_supported:o,voice_ptt_recording:B,voice_ptt_busy:U,start_voice_ptt_recording:z,stop_voice_ptt_recording:P}}function Oh(e,t){const r=String(e||"").replace(/\r/g,"").trim();if(!r)return"";const a=(r.split(`
|
|
87
|
-
`,1)[0]||"").trim();return a.length<=t?a:`${a.slice(0,Math.max(0,t-1))}…`}function Ib(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 Oy(e){const t=String(e||"").trim();if(!t)return"";const r=t.match(/^(?:\/bin\/)?(?:zsh|bash)\s+-lc\s+([\s\S]+)$/);return r?Ib(String(r[1]||"").trim()):t}function Fb(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,a=o&&typeof o.item=="object"?o.item:null;if(a&&String(a.type||"").trim()==="command_execution"){const c=String(a.status||"").trim().toLowerCase();if(c==="failed")return"error";const u=a.exit_code,d=typeof u=="number"?u:Number.isFinite(Number(u))?Number(u):null;if(d!=null)return d===0?"ok":"error";if(c==="completed")return"ok"}return"info"}function Db(e,t){var _;const r=t&&typeof t=="object"?t:{},o=r.item&&typeof r.item=="object"?r.item:null,a=o?String(o.type||"").trim():"",c=o?String(o.text||"").trim():"",u=o?String(o.command||"").trim():"",d=o&&Array.isArray(o.items)?o.items:[],m=String((r==null?void 0:r.message)||((_=r==null?void 0:r.error)==null?void 0:_.message)||"").trim();if(a==="command_execution"&&u)return Oy(u)||u;if(a==="todo_list"&&d.length>0){const p=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(),S=p>1?` (+${p-1})`:"",j=p>0?` (${x}/${p})`:"",$=b?`todo: ${b}${S}`:`todo list (${p})`;return Oh(`${$}${j}`,96)}return c?Oh(c,96)||c:m?Oh(m,96)||m:a||String(e||"").trim()||"event"}function Hp(e){const t=new Date(e),r=o=>String(o).padStart(2,"0");return`${r(t.getHours())}:${r(t.getMinutes())}`}function Bb(e){var o,a,c;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,(a=t.item)==null?void 0:a.created_at,(c=t.item)==null?void 0:c.timestamp];for(const u of r)if(u!=null){if(typeof u=="number"&&Number.isFinite(u)){const d=u>1e11?u:u*1e3;return Hp(d)}if(typeof u=="string"){const d=u.trim();if(!d)continue;const m=Date.parse(d.replace(/(\.\d{3})\d+/,"$1"));if(Number.isFinite(m))return Hp(m)}}return null}function Vp(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 Iy(e){const t=e.disabled===!0,r=h.useMemo(()=>Vp(e.options||[]),[e.options]),o=h.useMemo(()=>Vp(e.value||[]),[e.value]),[a,c]=h.useState(!1),[u,d]=h.useState(""),m=h.useMemo(()=>{const x=u.trim().toLowerCase();return x?r.filter(v=>v.toLowerCase().includes(x)):r},[r,u]),_=h.useMemo(()=>new Set(o),[o]),p=typeof e.max_list_height_px=="number"?e.max_list_height_px:220;return n.jsxs("div",{className:"multi_select",children:[n.jsxs("div",{className:"multi_select_row",children:[n.jsxs("button",{className:"btn",type:"button",onClick:()=>c(x=>!x),disabled:t||!r.length,"aria-expanded":a,children:[a?"Hide":"Select"," • ",o.length>0?`${o.length} of ${r.length}`:e.placeholder||"(none)"]}),n.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange(r.slice()),disabled:t||!r.length||o.length===r.length,title:"Select all",children:"All"}),n.jsx("button",{className:"btn",type:"button",onClick:()=>e.onChange([]),disabled:t||o.length===0,title:"Clear selection",children:"Clear"})]}),o.length>0?n.jsx("div",{className:"multi_select_chips",children:o.map(x=>n.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:n.jsx("span",{className:"multi_select_chip_x",children:"×"})]},x))}):null,a?n.jsxs("div",{className:"multi_select_panel",children:[n.jsx("input",{className:"mono",value:u,onChange:x=>d(String(x.target.value||"")),placeholder:"filter…",disabled:t}),n.jsxs("div",{className:"multi_select_list",style:{maxHeight:`${p}px`},children:[m.map(x=>{const v=_.has(x);return n.jsxs("label",{className:`multi_select_item mono ${v?"checked":""}`,children:[n.jsx("input",{type:"checkbox",checked:v,disabled:t,onChange:b=>{const S=new Set(_);b.target.checked?S.add(x):S.delete(x),e.onChange(Array.from(S.values()))}}),n.jsx("span",{children:x})]},x)}),m.length?null:n.jsx("div",{className:"mono muted",children:"(no matches)"})]})]}):null]})}function gi({open:e,title:t,children:r,actions:o,variant:a="default",onClose:c}){if(h.useEffect(()=>{if(!e)return;const d=m=>{m.key==="Escape"&&c()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[e,c]),!e)return null;const u=a==="fullscreen";return n.jsx("div",{className:`modal_backdrop${u?" fullscreen":""}`,onMouseDown:d=>{d.target===d.currentTarget&&c()},children:n.jsxs("div",{className:`modal_panel${u?" fullscreen":""}`,children:[n.jsxs("div",{className:"modal_header",children:[n.jsx("div",{className:"modal_title",children:t}),n.jsx("button",{className:"btn",onClick:c,children:"Close"})]}),n.jsx("div",{className:"modal_body",children:r}),o?n.jsx("div",{className:"modal_footer",children:o}):null]})})}function $a(e){return e!=="processing"&&e!=="failed"}function _f(e){const t=String(e||"").trim().toLowerCase();return t==="bug"||t==="feature"||t==="task"?t:"task"}function Fy(e){return e.toUpperCase()}function Gp(e){return e==="bug"?"danger":e==="feature"?"ok":"task"}function Dy(e){const t=String(e||"").trim();return t.replace(/^\[(bug|feature|task)\]\s*/i,"").trim()||t}function Aa(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function Ih(e){return typeof(e==null?void 0:e.parsed)=="boolean"?!!e.parsed:typeof e.item_id=="number"&&e.item_id>0}function Ub(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 __(e=new Date){const t=d=>String(d).padStart(2,"0"),r=-e.getTimezoneOffset(),o=r>=0?"+":"-",a=Math.abs(r),c=t(Math.floor(a/60)),u=t(a%60);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())} ${o}${c}${u}`}function Wb(e){try{return JSON.parse(e)}catch{return null}}function Yp(e,t){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}function qb(e){const t=String(e||"").replace(/\r/g,"").trim();if(!t)return"";const r=t.split(`
|
|
88
|
-
`),o=[];for(const a of r){const c=String(a||"");if(!c.trim()){if(o.length)break;continue}if(o.push(c),o.length>=6)break}return o.join(`
|
|
89
|
-
`).trim()}function Fh(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 hm(e){if(!Number.isFinite(e))return"";const t=Math.max(0,Math.floor(e/1e3)),r=t%60,o=Math.floor(t/60),a=o%60,c=Math.floor(o/60),u=c%24,d=Math.floor(c/24);return d>0?`${d}d ${u}h`:c>0?`${c}h ${a}m`:o>0?`${o}m ${r}s`:`${t}s`}async function p_(e){const t=String(e||""),r=new TextEncoder().encode(t),o=globalThis.crypto;if(!o||!o.subtle||typeof o.subtle.digest!="function")return"";const a=await o.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(a)).map(c=>c.toString(16).padStart(2,"0")).join("")}const Hb=/^[a-zA-Z0-9_-]+$/;function Xp(e){return Hb.test(String(e||"").trim())}async function Vb(e){const t=String(e).trim();if(!t)throw new Error("session_id is required");if(Xp(t)){const o=`session_memory_${t}`;if(Xp(o))return o}return`session_memory_sha_${(await p_(t)).slice(0,32)}`}function Gb(e){const t=()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia(e).matches,[r,o]=h.useState(t);return h.useEffect(()=>{var u;if(typeof window>"u"||typeof window.matchMedia!="function")return;const a=window.matchMedia(e),c=()=>o(a.matches);return c(),typeof a.addEventListener=="function"?a.addEventListener("change",c):(u=a.addListener)==null||u.call(a,c),()=>{var d;typeof a.removeEventListener=="function"?a.removeEventListener("change",c):(d=a.removeListener)==null||d.call(a,c)}},[e]),r}function Yb(e,t){const r=String(t.package_name).trim()||"{Package}",o=Dy(String(t.title||"").trim()||"{Title}"),a=String(t.summary||"").trim(),c=_f(t.task_type),u=`# {ID}-${r}: [${Fy(c)}] ${o}`.trim();let d=String(e||"");d=d.split("{Package}").join(r).split("{Title}").join(o);const m=d.split(/\r?\n/);let _=!1;for(let S=0;S<m.length;S+=1){const j=String(m[S]||"");if(j.trim().startsWith("# ")){m[S]=u,_=!0;break}if(j.trim())break}_||(m.unshift("",u),m.shift());const p=`> Created: ${String(t.created_at||"").trim()}`.trim();let x=!1;for(let S=0;S<Math.min(m.length,40);S+=1)if(String(m[S]||"").trim().toLowerCase().startsWith("> created:")){m[S]=p,x=!0;break}if(!x){const S=m.length>1&&!String(m[1]||"").trim()?2:1;m.splice(S,0,p,"")}const v=`> Type: ${c}`.trim();let b=!1;for(let S=0;S<Math.min(m.length,60);S+=1)if(String(m[S]||"").trim().toLowerCase().startsWith("> type:")){m[S]=v,b=!0;break}if(!b){let S=-1;for(let j=0;j<Math.min(m.length,60);j+=1)if(String(m[j]||"").trim().toLowerCase().startsWith("> created:")){S=j;break}if(S>=0){const j=S+1;j<m.length&&!String(m[j]||"").trim()?m.splice(j,0,v):m.splice(j,0,v,"")}else{const j=m.length>1&&!String(m[1]||"").trim()?2:1;m.splice(j,0,v,"")}}if(a){for(let S=0;S<m.length;S+=1)if(String(m[S]||"").trim().toLowerCase()==="## summary"){let j=S+1;for(;j<m.length&&!String(m[j]||"").trim();)j+=1;(j<m.length?String(m[j]||""):"").trim().toLowerCase().startsWith("one paragraph describing")?m[j]=a:m.splice(S+1,0,a,"");break}}return d=m.join(`
|
|
90
|
-
`),d.endsWith(`
|
|
91
|
-
`)||(d+=`
|
|
92
|
-
`),d}function Xl(e){return String(e||"").split(/\r?\n/).map(t=>t.trim()).filter(Boolean)}function Xb(e){const t=String(e.package_name||"").trim()||"{Package}",r=Dy(String(e.title||"").trim()||"{Title}"),o=_f(e.task_type),a=String(e.created_at||"").trim()||__(),c=String(e.diagram||"").trim(),u=String(e.context||"").trim(),d=[];return d.push(`# {ID}-${t}: [${Fy(o)}] ${r}`),d.push(""),d.push(`> Created: ${a}`),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(c||`ASCII diagram of the system change.
|
|
93
|
-
Show inputs/outputs and where code lives.`),d.push("```"),d.push(""),d.push("## Context"),d.push(u||"(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(m=>`- ${m}`)):d.push("- "),d.push(""),d.push("### Excluded"),e.excluded.length?d.push(...e.excluded.map(m=>`- ${m}`)):d.push("- "),d.push(""),d.push("## Implementation Plan"),e.plan.length?d.push(...e.plan.map((m,_)=>`${_+1}. ${m}`)):d.push("1. "),d.push(""),d.push("## Dependencies"),e.dependencies.length?d.push(...e.dependencies.map(m=>`- ${m}`)):d.push("- Related backlog items / ADRs"),d.push(""),d.push("## Acceptance Criteria"),e.acceptance.length?d.push(...e.acceptance.map(m=>`- [ ] ${m}`)):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(m=>` - \`${m}\``)):d.push(" - `...`"),d.push("- Level B:"),e.tests_b.length?d.push(...e.tests_b.map(m=>` - \`${m}\``)):d.push(" - `...`"),d.push("- Level C (optional / opt-in):"),e.tests_c.length?d.push(...e.tests_c.map(m=>` - \`${m}\``)):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(m=>` - ${m}`))),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(`
|
|
94
|
-
`)}function Jp(e,t){const r=t.map(m=>String(m||"").trim()).filter(Boolean);if(!r.length)return e;const o=String(e||"").split(/\r?\n/),a=o.map(m=>m.toLowerCase()),c=a.findIndex(m=>m.trim()==="## related");if(c<0)return`${String(e||"").trimEnd()}
|
|
95
|
-
|
|
96
|
-
## Related
|
|
97
|
-
- Attachments:
|
|
98
|
-
${r.map(_=>` - ${_}`).join(`
|
|
99
|
-
`)}
|
|
100
|
-
`;let u=-1;for(let m=c+1;m<o.length;m+=1){const _=a[m].trim();if(_.startsWith("## ")||_.startsWith("---"))break;if(_.startsWith("- attachments:")){u=m;break}}const d=["- Attachments:",...r.map(m=>` - ${m}`)];if(u>=0){let m=u+1;for(;m<o.length&&a[m].trim().startsWith(" -");)m+=1;o.splice(m,0,...r.map(_=>` - ${_}`))}else{let m=c+1;for(let _=c+1;_<o.length;_+=1){const p=a[_].trim();if(p.startsWith("## ")||p.startsWith("---")){m=_;break}m=_+1}o.splice(m,0,...d,"")}return o.join(`
|
|
101
|
-
`)}function Jb(e){var uc;const t=e.gateway,r=e.gateway_connected,o=String(e.maintenance_ai_provider||"").trim(),a=String(e.maintenance_ai_model||"").trim(),c=String(e.backlog_advisor_agent||"").trim(),[u,d]=h.useState("planned"),m=Gb("(max-width: 900px)"),[_,p]=h.useState("list"),[x,v]=h.useState([]),[b,S]=h.useState(!1),[j,$]=h.useState(""),[T,F]=h.useState([]),[B,I]=h.useState(""),[U,te]=h.useState("all"),[K,le]=h.useState(null),[ce,pe]=h.useState(""),[Re,W]=h.useState(""),[z,P]=h.useState(!1),[G,H]=h.useState(""),[re,N]=h.useState(!1),[L,q]=h.useState(""),[C,X]=h.useState(!1),[se,ie]=h.useState(""),[ye,Le]=h.useState(!1),[Me,De]=h.useState(""),[We,ve]=h.useState([]),[Pe,me]=h.useState(""),[we,Oe]=h.useState(!1),[qe,rt]=h.useState(""),[ke,Fe]=h.useState(!1),[ot,Et]=h.useState([]),[Lt,ae]=h.useState(""),[Kt,un]=h.useState(!1),[gn,Ne]=h.useState(""),[de,Ee]=h.useState(!1),[$t,bt]=h.useState([]),Xt=h.useRef(null),Dn=h.useRef(null),ln=String(e.voice_session_id||"").trim()||"abstractobserver_backlog_advisor",[yn,Tn]=h.useState(""),[xn,ir]=h.useState("");h.useEffect(()=>{(async()=>{try{const A=await Vb(ln);Tn(A)}catch{Tn("")}})()},[ln]);const Qt=Py({gateway:r?t:null,session_id:ln,run_id:yn,on_error:ir,on_transcript:A=>{const Z=String(A||"").trim();Z&&(ae(Y=>{const ge=String(Y||"");return ge.trim()?`${ge.trimEnd()}
|
|
102
|
-
${Z}`:Z}),window.setTimeout(()=>{var Y;return(Y=Xt.current)==null?void 0:Y.focus()},0))}}),Mr=h.useRef(null),[ps,Rn]=h.useState(!1),[he,Ce]=h.useState(""),[gt,dt]=h.useState([]),[kt,Tt]=h.useState(!1),[qt,Dt]=h.useState(null),[_n,Ot]=h.useState("uat"),[vn,dn]=h.useState([]),[nn,on]=h.useState(!1),[Gt,at]=h.useState(!1),[jn,Bn]=h.useState(""),[Ln,Un]=h.useState("uat"),[lr,dr]=h.useState(!1),[br,rs]=h.useState(""),[gs,Ds]=h.useState("framework"),[Ao,co]=h.useState("task"),[ys,En]=h.useState(""),[Fi,Di]=h.useState(!1),[Tr,er]=h.useState(""),[ct,Ct]=h.useState(null),[an,jr]=h.useState(!1),[Es,zr]=h.useState(""),[Rr,sa]=h.useState([]),[ss,fr]=h.useState(!1),[qr,Jn]=h.useState(""),[Te,$s]=h.useState(null),[Xe,Pn]=h.useState(null),[mr,Lr]=h.useState(!1),[Pr,Or]=h.useState(""),[uo,en]=h.useState(""),[is,As]=h.useState(!1),[xi,hr]=h.useState(""),[or,ni]=h.useState("events"),[Bs,ri]=h.useState(""),[Cn,Sr]=h.useState(!1),[xs,vs]=h.useState(""),[si,ws]=h.useState(!1),[_r,ia]=h.useState(!0),bs=h.useRef(null),vi=h.useRef(!0),[wi,bi]=h.useState(!1),[Bi,fo]=h.useState(""),[Us,ji]=h.useState([]),[Hr,ii]=h.useState(""),[mo,ho]=h.useState("events"),[js,O]=h.useState(""),[ue,ze]=h.useState(!1),[Ie,Be]=h.useState(""),[ut,At]=h.useState(!1),[zt,Pt]=h.useState(""),rn=h.useRef(null),[sn,ar]=h.useState("tasks"),[ft,wn]=h.useState(!1),[pr,zn]=h.useState(""),[os,Vr]=h.useState(!1),[_o,$n]=h.useState(""),[kr,oc]=h.useState("proposed"),[hl,za]=h.useState("feature"),[oa,Yc]=h.useState("framework"),[Ui,Xc]=h.useState(""),[aa,Mo]=h.useState(""),[la,Wi]=h.useState(""),[_l,To]=h.useState(""),[Si,qi]=h.useState(!1),[pl,gl]=h.useState(""),[ca,Ra]=h.useState(""),[ac,yl]=h.useState(""),[La,Jc]=h.useState(""),[xl,Kc]=h.useState(""),[vl,ua]=h.useState(""),[zo,wl]=h.useState(""),[da,lc]=h.useState(""),[fa,po]=h.useState(""),[oi,Ro]=h.useState(""),[Lo,ma]=h.useState([]),[Pa,Oa]=h.useState(!1),[ki,go]=h.useState(""),[ha,Hi]=h.useState([]),[Zc,Ia]=h.useState(""),[Po,Fa]=h.useState(!1),An=u==="processing"||u==="failed"||u==="completed"&&sn==="runs";h.useEffect(()=>{m&&p("list")},[m,u,sn]),h.useEffect(()=>{if(!ke)return;const A=Z=>{Z.key==="Escape"&&Fe(!1)};return window.addEventListener("keydown",A),setTimeout(()=>{var Z;return(Z=Xt.current)==null?void 0:Z.focus()},0),()=>window.removeEventListener("keydown",A)},[ke]);const Nr=h.useMemo(()=>{if(or!=="events")return null;const A=String(Bs||""),Z=A.split(/\r?\n/).filter(je=>String(je||"").trim().length>0),Y=[];let ge=0;for(let je=0;je<Z.length;je+=1){const st=String(Z[je]||"").trim(),Ge=Wb(st);if(!Ge||typeof Ge!="object"){ge+=1,Y.push({idx:je,type:"raw",payload:null,raw:st});continue}const nt=String(Ge.type||Ge.event||"event");Y.push({idx:je,type:nt,payload:Ge,raw:st})}return{total:Z.length,bad:ge,events:Y,raw:A}},[Bs,or]),Cr=h.useMemo(()=>{if(!Nr)return null;let A=0,Z=0,Y=0,ge=0,je=0;for(const Ge of Nr.events){const nt=Ge.payload,lt=nt&&typeof nt.usage=="object"?nt.usage:null;lt&&(Number.isFinite(Number(lt.input_tokens))&&(A+=Number(lt.input_tokens)),Number.isFinite(Number(lt.cached_input_tokens))&&(Z+=Number(lt.cached_input_tokens)),Number.isFinite(Number(lt.output_tokens))&&(Y+=Number(lt.output_tokens)));const pn=nt&&typeof nt.item=="object"?nt.item:null;pn&&String(pn.type||"").trim()==="command_execution"&&(ge+=1,String(pn.status||"").trim().toLowerCase()==="failed"&&(je+=1))}return{has_tokens:A>0||Y>0||Z>0,input_tokens:A,cached_input_tokens:Z,output_tokens:Y,total_tokens:A+Y,command_count:ge,command_fail_count:je}},[Nr]),Vi=h.useMemo(()=>{const A=Fh(Te==null?void 0:Te.created_at),Z=Fh(Te==null?void 0:Te.started_at),Y=Fh(Te==null?void 0:Te.finished_at),ge=Date.now(),je=String((Te==null?void 0:Te.status)||"").trim().toLowerCase(),st=Y??(je==="running"?ge:null),Ge=Y!=null,nt=A!=null&&Z!=null?Math.max(0,Z-A):null,lt=Z!=null&&st!=null?Math.max(0,st-Z):null,pn=A!=null&&st!=null?Math.max(0,st-A):null,Vn=!Ge&&A!=null?Math.max(0,ge-A):null;return{is_done:Ge,queue_delay_ms:nt,run_ms:lt,total_ms:pn,age_ms:Vn}},[Te==null?void 0:Te.created_at,Te==null?void 0:Te.started_at,Te==null?void 0:Te.finished_at,Te==null?void 0:Te.status]);function bl(A){return A==="processing"?"queued,running,awaiting_qa":A==="failed"?"failed":A==="completed"&&sn==="runs"?"completed,promoted":""}function Da(A,Z){const Y=A&&typeof A=="object"?A:{},ge=Y.backlog&&typeof Y.backlog=="object"?Y.backlog:{},je=Y.result&&typeof Y.result=="object"?Y.result:{},st=Y.executor&&typeof Y.executor=="object"?Y.executor:{},Ge=String(je.last_message||"").trim(),nt=String(Y.target_model||st.model||"").trim(),lt=String(Y.target_reasoning_effort||st.reasoning_effort||"").trim();return{request_id:Z,status:String(Y.status||"unknown"),created_at:Y.created_at??null,started_at:Y.started_at??null,finished_at:Y.finished_at??null,backlog_relpath:ge.relpath??null,backlog_kind:ge.kind??null,backlog_filename:ge.filename??null,target_agent:Y.target_agent??null,target_model:nt||null,target_reasoning_effort:lt||null,executor_type:st.type??null,ok:typeof je.ok=="boolean"?je.ok:null,exit_code:typeof je.exit_code=="number"?je.exit_code:je.exit_code??null,error:typeof je.error=="string"?je.error:je.error??null,run_dir_relpath:Y.run_dir_relpath??null,last_message:Ge?Ge.slice(0,1200):null}}async function _a(A){const Z=A||($a(u)?u:"planned"),Y=await t.backlog_list(Z);let ge=Array.isArray(Y==null?void 0:Y.items)?Y.items:[];if(Z==="planned")try{const je=await t.backlog_exec_active_items({status:"queued,running,awaiting_qa",limit:1200}),st=Array.isArray(je==null?void 0:je.items)?je.items:[],Ge=new Set(st.filter(lt=>String((lt==null?void 0:lt.kind)||"").trim()==="planned").map(lt=>String((lt==null?void 0:lt.filename)||"").trim()).filter(Boolean)),nt=Array.from(Ge);nt.sort(),F(nt),Ge.size&&(ge=ge.filter(lt=>!Ge.has(String(lt.filename||"").trim())))}catch{F([])}else F([]);return v(ge),K&&A===void 0&&!ge.some(je=>je.filename===K.filename)&&(le(null),pe(""),W(""),H(""),X(!1),ie(""),De("")),ge}async function Ws(A){if(ss)return Rr;Jn(""),fr(!0);const Z=A||u;try{const Y=bl(Z),ge=await t.backlog_exec_requests({status:Y,limit:200}),je=Array.isArray(ge==null?void 0:ge.requests)?ge.requests:[];if(sa(je),Z==="processing"&&(Te!=null&&Te.request_id)&&!je.some(st=>st.request_id===Te.request_id))try{const st=await t.backlog_exec_request(Te.request_id),Ge=st==null?void 0:st.payload,nt=String((Ge==null?void 0:Ge.status)||"").trim().toLowerCase();nt==="failed"?d("failed"):(nt==="completed"||nt==="promoted")&&(ar("runs"),d("completed")),(nt==="failed"||nt==="completed"||nt==="promoted")&&(Pn(Ge),$s(Da(Ge,Te.request_id)))}catch{}if(Te!=null&&Te.request_id){const st=je.find(Ge=>Ge.request_id===Te.request_id)||null;st&&$s(st)}return je}catch(Y){return sa([]),Jn(String((Y==null?void 0:Y.message)||Y||"Failed to load backlog exec requests")),[]}finally{fr(!1)}}async function tr(){if(r){if(An){await Ws();return}if(!b){$(""),S(!0);try{await _a()}catch(A){v([]),$(String((A==null?void 0:A.message)||A||"Failed to load backlog list"))}finally{S(!1)}}}}h.useEffect(()=>{tr()},[u,sn,r]),h.useEffect(()=>{if(u!=="planned"){dn([]);return}const A=new Set(x.map(Z=>String(Z.filename||"").trim()).filter(Boolean));dn(Z=>Z.filter(Y=>A.has(Y)))},[u,x]),h.useEffect(()=>{ft&&r&&Wa()},[ft,r]),h.useEffect(()=>{kt&&r&&vo()},[kt,r]),h.useEffect(()=>{nn&&r&&vo()},[nn,r]),h.useEffect(()=>{r&&An&&vo()},[An,r]),h.useEffect(()=>{if(!r||!An)return;const Z=setInterval(()=>void Ws(u),u==="processing"?2e3:5e3);return()=>clearInterval(Z)},[u,sn,r,An,Te==null?void 0:Te.request_id]),h.useEffect(()=>{r&&An&&Te!=null&&Te.request_id&&ci({request_id:Te.request_id,name:or})},[Te==null?void 0:Te.request_id,or,An,r]),h.useEffect(()=>{vi.current=!0},[Te==null?void 0:Te.request_id,or]),h.useEffect(()=>{if(!bs.current||!vi.current)return;const Z=window.requestAnimationFrame(()=>{const Y=bs.current;Y&&(Y.scrollTop=Y.scrollHeight)});return()=>window.cancelAnimationFrame(Z)},[Bs,or,Te==null?void 0:Te.request_id]),h.useEffect(()=>{if(!r||!An||!(Te!=null&&Te.request_id))return;const A=String(Te.status||"").trim().toLowerCase();if(A!=="running"&&_r!==!0)return;const Y=setInterval(()=>{ci({request_id:Te.request_id,name:or})},A==="running"?1500:2500);return()=>clearInterval(Y)},[Te==null?void 0:Te.request_id,Te==null?void 0:Te.status,or,An,r,_r]),h.useEffect(()=>{p("list"),An?K&&(le(null),pe(""),W(""),H(""),X(!1),ie(""),De(""),ve([]),me(""),Oe(!1),rt(""),Rn(!1),Ce(""),dt([])):Te&&($s(null),Pn(null),Or(""),ri(""),vs(""),ws(!1))},[An]);async function as(A,Z){const Y=(Z==null?void 0:Z.kind)||($a(u)?u:"planned");le(A),m&&p("detail"),X(!1),ie(""),De(""),ve([]),me(""),Oe(!1),rt(""),Rn(!1),Ce(""),dt([]),q(""),pe(""),W(""),H(""),P(!0);try{const ge=await t.backlog_content(Y,A.filename),je=String((ge==null?void 0:ge.content)||"");pe(je),W(await p_(je))}catch(ge){H(String((ge==null?void 0:ge.message)||ge||"Failed to load backlog item"))}finally{P(!1)}}const yo=h.useMemo(()=>{const A=String(B||"").trim().toLowerCase(),Z=String(U||"all").trim().toLowerCase();return x.filter(Y=>Z&&Z!=="all"&&_f(Y.task_type)!==Z?!1:A?`${Y.item_id||""} ${Y.package||""} ${Y.title||""} ${Y.task_type||""} ${Y.summary||""} ${Y.filename||""}`.toLowerCase().includes(A):!0)},[x,B,U]),nr=h.useMemo(()=>{if(u!=="planned")return[];const A=new Set(vn.map(Y=>String(Y||"").trim()).filter(Boolean)),Z=x.filter(Y=>A.has(String(Y.filename||"").trim()));return Z.sort((Y,ge)=>String(Y.filename||"").localeCompare(String(ge.filename||""))),Z},[x,vn,u]),xo=h.useMemo(()=>{const A=String(B||"").trim().toLowerCase();return A?Rr.filter(Z=>`${Z.request_id||""} ${Z.status||""} ${Z.backlog_filename||""} ${Z.backlog_relpath||""} ${Z.target_model||""} ${Z.target_reasoning_effort||""} ${Z.error||""} ${Z.last_message||""}`.toLowerCase().includes(A)):Rr},[Rr,B]);async function ai(A){if(K&&$a(u)&&!re){q(""),N(!0);try{await t.backlog_move({from_kind:u,to_kind:A,filename:K.filename}),d(A),I("");const Y=(await _a(A)).find(ge=>ge.filename===K.filename)||null;le(Y),pe(""),W(""),H(""),Y&&await as(Y,{kind:A})}catch(Z){q(String((Z==null?void 0:Z.message)||Z||"Backlog move failed"))}finally{N(!1)}}}async function Ms(){if(K&&$a(u)&&!ye){De(""),Le(!0);try{const A=await t.backlog_update({kind:u,filename:K.filename,content:se,expected_sha256:Re||null}),Z=se.endsWith(`
|
|
103
|
-
`)?se:`${se}
|
|
104
|
-
`;pe(Z),W(String((A==null?void 0:A.sha256)||"")),X(!1),await tr()}catch(A){De(String((A==null?void 0:A.message)||A||"Save failed"))}finally{Le(!1)}}}async function vo(){if(!r)return null;if(an)return ct;zr(""),jr(!0);try{const A=await t.backlog_exec_config();return Ct(A),A}catch(A){const Z=String((A==null?void 0:A.message)||A||"Failed to load backlog exec config");return zr(Z),Ct(null),null}finally{jr(!1)}}async function Gi(A){if(r){$s(A),m&&p("detail"),Pn(null),Or(""),Lr(!0),hr(""),en(""),ri(""),vs(""),ws(!1);try{const Z=await t.backlog_exec_request(A.request_id);Pn((Z==null?void 0:Z.payload)??null)}catch(Z){Or(String((Z==null?void 0:Z.message)||Z||"Failed to load request"))}finally{Lr(!1)}}}async function li(){if(!r)return;const A=String((Te==null?void 0:Te.request_id)||"").trim();if(!A||is)return;const Z=String(uo||"");if(!Z.trim()){hr("Feedback is required.");return}hr(""),As(!0);try{const Y=await t.backlog_exec_feedback({request_id:A,feedback:Z}),ge=(Y==null?void 0:Y.payload)??null;Pn(ge),ge&&$s(Da(ge,A)),en(""),d("processing"),await Ws("processing")}catch(Y){hr(String((Y==null?void 0:Y.message)||Y||"Failed to send feedback"))}finally{As(!1)}}async function Ni(){if(!r)return;const A=String((Te==null?void 0:Te.request_id)||"").trim();if(A&&!is){hr(""),As(!0);try{const Z=await t.backlog_exec_promote({request_id:A,redeploy:!0}),Y=(Z==null?void 0:Z.payload)??null;Pn(Y),Y&&$s(Da(Y,A)),en(""),ar("runs"),d("completed"),await Ws("completed"),await Ws("processing")}catch(Z){hr(String((Z==null?void 0:Z.message)||Z||"Failed to promote to prod"));try{const Y=await t.backlog_exec_request(A),ge=(Y==null?void 0:Y.payload)??null;Pn(ge),ge&&$s(Da(ge,A))}catch{}}finally{As(!1)}}}async function Er(){if(!r)return;const A=String((Te==null?void 0:Te.request_id)||"").trim();if(A&&!is){hr(""),As(!0);try{const Z=await t.backlog_exec_deploy_uat({request_id:A}),Y=(Z==null?void 0:Z.payload)??null;Pn(Y),Y&&$s(Da(Y,A)),d("processing"),await Ws("processing")}catch(Z){hr(String((Z==null?void 0:Z.message)||Z||"Failed to deploy to UAT"))}finally{As(!1)}}}async function ci(A){if(!r)return;const Z=String((A==null?void 0:A.request_id)||(Te==null?void 0:Te.request_id)||"").trim();if(!Z)return;const Y=(A==null?void 0:A.name)||or,ge=typeof(A==null?void 0:A.max_bytes)=="number"&&Number.isFinite(A.max_bytes)?Number(A.max_bytes):16e4;if(!Cn){vs(""),Sr(!0);try{const je=await t.backlog_exec_log_tail({request_id:Z,name:String(Y),max_bytes:ge});ri(String((je==null?void 0:je.content)||"")),ws(!!(je!=null&&je.truncated))}catch(je){vs(String((je==null?void 0:je.message)||je||"Failed to load logs"))}finally{Sr(!1)}}}function Oo(A){if(!A||typeof A!="object")return"";const Z=A.$artifact;return typeof Z=="string"?Z.trim():""}async function Ci(A){var ge;if(!r)return;const Z=String((A==null?void 0:A.request_id)||Hr||"").trim();if(!Z)return;const Y=(A==null?void 0:A.name)||mo;if(!ue){Be(""),ze(!0),At(!1);try{const je=await t.backlog_exec_request(Z),st=je==null?void 0:je.payload,Ge=(ge=st==null?void 0:st.result)==null?void 0:ge.ledger,nt=String((Ge==null?void 0:Ge.ledger_run_id)||"").trim(),lt=Ge==null?void 0:Ge.log_artifacts,pn=lt?lt[String(Y)]:null,Vn=Oo(pn);if(nt&&Vn){const ui=await(await t.download_run_artifact_content(nt,Vn)).text();O(ui);return}const Zn=await t.backlog_exec_log_tail({request_id:Z,name:String(Y),max_bytes:4e5});O(String((Zn==null?void 0:Zn.content)||"")),At(!!(Zn!=null&&Zn.truncated)),Zn!=null&&Zn.truncated&&Be("Legacy fallback: log is truncated (this exec request predates ledger log capture).")}catch(je){Be(String((je==null?void 0:je.message)||je||"Failed to load execution log"))}finally{ze(!1)}}}async function qs(A){if(!r)return;const Z=String(A||"").trim();if(Z){bi(!0),fo(Z),ji([]),ii(""),ho("events"),O(""),Be(""),At(!1),Pt("");try{const Y=await t.backlog_exec_requests({status:"completed,failed",limit:500}),je=(Array.isArray(Y==null?void 0:Y.requests)?Y.requests:[]).filter(Ge=>String(Ge.backlog_filename||"").trim()===Z);if(je.sort((Ge,nt)=>{const lt=String(Ge.finished_at||Ge.started_at||Ge.created_at||"");return String(nt.finished_at||nt.started_at||nt.created_at||"").localeCompare(lt)}),ji(je),!je.length){Be("No execution logs found for this backlog item.");return}const st=String(je[0].request_id||"").trim();ii(st),await Ci({request_id:st,name:"events"}),setTimeout(()=>{var Ge;return(Ge=rn.current)==null?void 0:Ge.focus()},0)}catch(Y){Be(String((Y==null?void 0:Y.message)||Y||"Failed to load execution logs"))}}}function Io(A){const Z=String(zt||"");if(!Z)return;const Y=String(js||"");if(!Y)return;const ge=rn.current;if(!ge)return;const je=typeof ge.selectionStart=="number"?ge.selectionStart:0,st=typeof ge.selectionEnd=="number"?ge.selectionEnd:0;let Ge=-1;if(A===1){const nt=Math.min(Y.length,Math.max(0,st));Ge=Y.indexOf(Z,nt),Ge<0&&nt>0&&(Ge=Y.indexOf(Z,0))}else{const nt=Math.min(Y.length,Math.max(0,je-1));Ge=Y.lastIndexOf(Z,nt),Ge<0&&nt<Y.length-1&&(Ge=Y.lastIndexOf(Z,Y.length))}if(!(Ge<0))try{ge.focus(),ge.setSelectionRange(Ge,Ge+Z.length)}catch{}}async function Ba(){if(qt&&!re){q(""),N(!0);try{const A=ct||await vo();if(!A){q("Could not load gateway exec config.");return}const Z=A.runner_alive!==!1,Y=A.codex_available!==!1;if(A.runner_enabled!==!0){q("Backlog exec runner is disabled on this gateway.");return}if(!Z){q(A.runner_error?`Backlog exec runner not running: ${A.runner_error}`:"Backlog exec runner is not running.");return}if(!Y){const lt=String(A.codex_bin||"codex");q(`Codex not found on gateway: ${lt}`);return}if(A.can_execute!==!0){q("Backlog exec is not available on this gateway (misconfigured executor).");return}const ge=await t.backlog_execute({kind:qt.kind,filename:qt.filename,execution_mode:_n}),je=String((ge==null?void 0:ge.request_id)||"").trim();if(!je)throw new Error("No request_id returned");Tt(!1),Dt(null),d("processing"),ar("tasks"),I(""),le(null),pe(""),W(""),H(""),X(!1),ie(""),De(""),ve([]),me(""),Oe(!1),rt(""),Rn(!1),Ce(""),dt([]);const st={request_id:je,status:"queued"};$s(st),Pn(null),Or("");const nt=(await Ws("processing")).find(lt=>lt.request_id===je)||null;nt?await Gi(nt):await Gi(st)}catch(A){q(String((A==null?void 0:A.message)||A||"Execute failed"))}finally{N(!1)}}}async function Ts(){if(!Gt&&nr.length){if(nr.length<2){Bn("Select at least 2 planned backlog items.");return}Bn(""),at(!0);try{const A=ct||await vo();if(!A){Bn("Could not load gateway exec config.");return}const Z=A.runner_alive!==!1,Y=A.codex_available!==!1;if(A.runner_enabled!==!0){Bn("Backlog exec runner is disabled on this gateway.");return}if(!Z){Bn(A.runner_error?`Backlog exec runner not running: ${A.runner_error}`:"Backlog exec runner is not running.");return}if(!Y){const lt=String(A.codex_bin||"codex");Bn(`Codex not found on gateway: ${lt}`);return}if(A.can_execute!==!0){Bn("Backlog exec is not available on this gateway (misconfigured executor).");return}const ge=await t.backlog_execute_batch({items:nr.map(lt=>({kind:"planned",filename:lt.filename})),execution_mode:Ln}),je=String((ge==null?void 0:ge.request_id)||"").trim();if(!je)throw new Error("No request_id returned");on(!1),dn([]),d("processing"),ar("tasks"),I(""),le(null),pe(""),W(""),H(""),X(!1),ie(""),De("");const st={request_id:je,status:"queued"};$s(st),Pn(null),Or("");const nt=(await Ws("processing")).find(lt=>lt.request_id===je)||null;nt?await Gi(nt):await Gi(st)}catch(A){Bn(String((A==null?void 0:A.message)||A||"Execute batch failed"))}finally{at(!1)}}}async function Yi(){if(Fi)return;if(nr.length<2){er("Select at least 2 planned backlog items.");return}const A=br.trim();if(!A){er("Title is required.");return}const Z=gs.trim().toLowerCase();if(!Z){er("Package is required.");return}er(""),Di(!0);try{const Y=await t.backlog_merge({kind:"planned",package:Z,title:A,task_type:Ao,summary:ys.trim()||null,items:nr.map(nt=>({kind:"planned",filename:nt.filename}))}),ge=String((Y==null?void 0:Y.kind)||"").trim(),je=String((Y==null?void 0:Y.filename)||"").trim();if(!ge||!je)throw new Error("Merge succeeded but returned an invalid response");dr(!1),rs(""),En(""),dn([]),d(ge),I("");const Ge=(await _a(ge)).find(nt=>nt.filename===je)||null;Ge&&await as(Ge,{kind:ge})}catch(Y){er(String((Y==null?void 0:Y.message)||Y||"Merge failed"))}finally{Di(!1)}}function zs(){oc("proposed"),za("feature"),Yc("framework"),Xc(""),Mo(""),Wi(""),To(""),qi(!1),gl(""),Ra(""),yl(""),Jc(""),Kc(""),ua(""),wl(""),lc(""),po(""),Ro(""),ma([]),Oa(!1),go(""),Hi([]),Ia(""),Fa(!1)}async function Ua(){const A=String(pr||"").trim();if(A)return A;if(os)return"";$n(""),Vr(!0);try{const Z=await t.backlog_template(),Y=String((Z==null?void 0:Z.content)||"");return zn(Y),Y}catch(Z){return $n(String((Z==null?void 0:Z.message)||Z||"Failed to load backlog template")),""}finally{Vr(!1)}}async function Wa(A){if(!r)return;const Z=(A==null?void 0:A.force)===!0;if(!Z&&la.trim())return;const Y=await Ua();if(!Y.trim())return;const ge=String(oa||"").trim().toLowerCase()||"{Package}",je=__(),st=Yb(Y,{package_name:ge,title:Ui,task_type:hl,summary:aa,created_at:je});Wi(Ge=>Z||!String(Ge||"").trim()?st:Ge)}function jl(A){if(la.trim()&&!globalThis.confirm("Overwrite the current draft markdown with a guided draft?"))return;const Z=String(oa||"").trim().toLowerCase()||"{Package}",Y=__(),ge=Xb({package_name:Z,title:Ui,task_type:hl,summary:aa,diagram:pl,context:ca,included:Xl(ac),excluded:Xl(La),plan:Xl(xl),dependencies:Xl(vl),acceptance:Xl(zo),tests_a:Xl(da),tests_b:Xl(fa),tests_c:Xl(oi),created_at:Y,attachments:[]});Wi(ge)}async function qa(){var Z;if(Si)return;To(""),qi(!0),go("");let A="";try{const Y=String(oa||"").trim().toLowerCase(),ge=await t.backlog_create({kind:kr,package:Y,title:Ui,task_type:hl,summary:aa||null,content:la||null}),je=String((ge==null?void 0:ge.kind)||"").trim(),st=String((ge==null?void 0:ge.filename)||"").trim(),Ge=[...Lo||[]];if(je&&st&&Ge.length){Oa(!0);try{const pn=[];for(const Vn of Ge){const Zn=await t.backlog_upload_attachment({kind:je,filename:st,file:Vn,overwrite:!1}),Sn=String(((Z=Zn==null?void 0:Zn.stored)==null?void 0:Z.relpath)||"").trim();Sn&&pn.push(Sn)}if(pn.length){const Vn=await t.backlog_content(je,st),Zn=String((Vn==null?void 0:Vn.content)||""),Sn=await p_(Zn),ui=Jp(Zn,pn);await t.backlog_update({kind:je,filename:st,content:ui,expected_sha256:Sn||null})}}catch(pn){A=String((pn==null?void 0:pn.message)||pn||"Attachment upload failed"),go(A)}finally{Oa(!1)}}wn(!1),zs(),je&&d(je);const lt=(await _a(je)).find(pn=>pn.filename===st)||null;lt&&await as(lt,{kind:je}),A&&q(`Created task, but attachments failed: ${A}`)}catch(Y){To(String((Y==null?void 0:Y.message)||Y||"Create failed"))}finally{qi(!1)}}async function Xi(){if(Po)return;To("");const A=Zc.trim();if(!A)return;if(!Ui.trim()){To("Title is required before using AI assist.");return}const Z=String(oa||"").trim().toLowerCase();if(!Z){To("Package is required before using AI assist.");return}const Y={id:es(),role:"user",content:A,ts:new Date().toISOString()},ge=[...ha,Y];Hi(ge),Ia(""),Fa(!0);try{const je=await t.backlog_assist({kind:kr,package:Z,title:Ui,summary:aa||null,draft_markdown:la||null,messages:ge.map(nt=>({role:nt.role,content:nt.content})),provider:o||null,model:a||null}),st=String((je==null?void 0:je.reply)||"").trim(),Ge=String((je==null?void 0:je.draft_markdown)||"").trim();st&&Hi(nt=>[...nt,{id:es(),role:"assistant",content:st,ts:new Date().toISOString()}]),Ge&&Wi(Ge)}catch(je){To(String((je==null?void 0:je.message)||je||"AI assist failed"))}finally{Fa(!1)}}async function Fo(A){var Z;if(K&&$a(u)&&A.length&&r&&!ps){Ce(""),Rn(!0);try{const Y=[];for(const ge of A){const je=await t.backlog_upload_attachment({kind:u,filename:K.filename,file:ge,overwrite:!1}),st=String(((Z=je==null?void 0:je.stored)==null?void 0:Z.relpath)||"").trim();st&&Y.push(st)}Y.length&&(dt(ge=>[...Y,...ge].slice(0,12)),ie(ge=>Jp(String(ge||""),Y)))}catch(Y){Ce(String((Y==null?void 0:Y.message)||Y||"Attachment upload failed"))}finally{Rn(!1)}}}async function Sl(){if(we||!K||!$a(u)||!r)return;if(!(u==="planned"||u==="proposed"||u==="recurrent"||u==="deprecated")){rt("Maintenance chat is only available for planned/proposed/recurrent/deprecated items.");return}rt("");const Z=Pe.trim();if(!Z)return;const Y={id:es(),role:"user",content:Z,ts:new Date().toISOString()},ge=[...We,Y];ve(ge),me(""),Oe(!0);try{const je=Ub(K);if(!je)throw new Error("Backlog item missing package (cannot maintain)");const st=await t.backlog_maintain({kind:u,filename:K.filename,package:je,title:K.title||K.filename,summary:K.summary||null,draft_markdown:se||null,messages:ge.map(lt=>({role:lt.role,content:lt.content})),provider:o||null,model:a||null}),Ge=String((st==null?void 0:st.reply)||"").trim(),nt=String((st==null?void 0:st.draft_markdown)||"").trim();Ge&&ve(lt=>[...lt,{id:es(),role:"assistant",content:Ge,ts:new Date().toISOString()}]),nt&&ie(nt)}catch(je){rt(String((je==null?void 0:je.message)||je||"Maintenance AI failed"))}finally{Oe(!1)}}async function cc(){if(Kt||!r)return;if(Qt.voice_ptt_busy){ir("Wait for transcription to finish.");return}Ne(""),ir("");const A=Lt.trim();if(!A)return;const Z={id:es(),role:"user",content:A,ts:new Date().toISOString()},Y=[...ot,Z];Et(Y),ae(""),un(!0);try{const ge=await t.backlog_advisor({messages:Y.map(nt=>({role:nt.role,content:nt.content})),provider:o||null,model:a||null,agent:c||null,include_trace:de,focus_kind:u,focus_type:U}),je=de&&Array.isArray(ge==null?void 0:ge.tool_trace)?ge.tool_trace:[],st=String((ge==null?void 0:ge.run_id)||"").trim(),Ge=String((ge==null?void 0:ge.reply)||"").trim();if(de&&je.length){const nt={id:es(),role:"system",title:"Tool execution",level:"info",ts:new Date().toISOString(),content:JSON.stringify({run_id:st||null,tool_trace:je},null,2)};Et(lt=>[...lt,nt])}Ge&&Et(nt=>[...nt,{id:es(),role:"assistant",content:Ge,ts:new Date().toISOString()}])}catch(ge){Ne(String((ge==null?void 0:ge.message)||ge||"Backlog advisor failed"))}finally{un(!1)}}async function Qc(A){var Ge;const Z=Array.from(A||[]);if(!Z.length)return;const Y=[],ge=[],je=6,st=2e4;for(const nt of Z.slice(0,je)){const lt=String((nt==null?void 0:nt.name)||"").trim()||"attachment";ge.push(lt);try{const pn=await nt.text(),Vn=pn.length>st?`${pn.slice(0,st)}
|
|
105
|
-
…(truncated)…
|
|
106
|
-
`:pn;Y.push(`[attached file: ${lt}]
|
|
107
|
-
|
|
108
|
-
\`\`\`
|
|
109
|
-
${Vn}
|
|
110
|
-
\`\`\``)}catch{Y.push(`[attached file: ${lt}] (unreadable in browser)`)}}bt(nt=>[...ge,...nt].slice(0,12)),ae(nt=>{const lt=String(nt||"").trim(),pn=Y.join(`
|
|
111
|
-
|
|
112
|
-
`);return lt?`${lt}
|
|
113
|
-
|
|
114
|
-
${pn}`:pn});try{(Ge=Xt.current)==null||Ge.focus()}catch{}}function pa(A){const Z=String(A.id||A.ts||"").trim(),Y=String(A.content||"").trim();!Z||!Y||(ir(""),Qt.toggle_tts(Z,Y))}function eu(A){const Z=String(A.id||A.ts||"").trim(),Y=Qt.tts_playback;return!Z||!Y.key||Y.key!==Z?"idle":Y.status}function kl(){Qt.stop_voice_ptt_recording(),Qt.stop_tts()}const Ha=K&&Ih(K)?_f(K.task_type):null,Kn=!!(K&&u==="planned"),Nl=!!(K&&u==="proposed"),Cl=!!(K&&u==="planned"),ga=!!(K&&$a(u)&&u!=="deprecated"&&u!=="trash"),tu=!!(K&&$a(u)&&u!=="trash"),El=!!(K&&u==="trash"),Va=!!(K&&u==="deprecated"),Ga=!m||_==="list",Ei=!m||_==="detail";return n.jsxs("div",{className:"page backlog_page",children:[n.jsxs("div",{className:"page_inner",children:[n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"title",children:[n.jsx("h1",{children:"Backlog"}),r&&ct?n.jsxs("span",{className:"badge",style:{background:ct.runner_alive?"rgba(34, 197, 94, 0.14)":"rgba(239, 68, 68, 0.14)",borderColor:ct.runner_alive?"rgba(34, 197, 94, 0.35)":"rgba(239, 68, 68, 0.35)"},title:ct.codex_model||ct.codex_reasoning_effort?`codex: ${String(ct.codex_model||"").trim()||"?"}${ct.codex_reasoning_effort?` (reasoning ${ct.codex_reasoning_effort})`:""}`:void 0,children:["exec worker ",ct.runner_alive?"on":"off",!m&&ct.codex_model?` · ${ct.codex_model}`:"",!m&&ct.codex_reasoning_effort?` · ${ct.codex_reasoning_effort}`:""]}):null]}),n.jsxs("div",{className:"row backlog_toolbar",style:{alignItems:"center",justifyContent:"space-between"},children:[n.jsxs("div",{className:"tab_bar backlog_tabs",style:{paddingBottom:0,borderBottom:"none"},children:[n.jsx("button",{className:`tab ${u==="processing"?"active":""}`,onClick:()=>d("processing"),children:"Processing"}),n.jsx("button",{className:`tab ${u==="planned"?"active":""}`,onClick:()=>d("planned"),children:"Planned"}),n.jsx("button",{className:`tab ${u==="proposed"?"active":""}`,onClick:()=>d("proposed"),children:"Proposed"}),n.jsx("button",{className:`tab ${u==="recurrent"?"active":""}`,onClick:()=>d("recurrent"),children:"Recurrent"}),n.jsx("button",{className:`tab ${u==="completed"?"active":""}`,onClick:()=>d("completed"),children:"Completed"}),n.jsx("button",{className:`tab ${u==="failed"?"active":""}`,onClick:()=>d("failed"),children:"Failed"}),n.jsx("button",{className:`tab ${u==="deprecated"?"active":""}`,onClick:()=>d("deprecated"),children:"Deprecated"}),n.jsx("button",{className:`tab ${u==="trash"?"active":""}`,onClick:()=>d("trash"),children:"Trash"})]}),n.jsxs("div",{className:"row backlog_toolbar_actions",style:{gap:"8px",justifyContent:"flex-end"},children:[n.jsxs("button",{className:"btn btn_icon",onClick:()=>wn(!0),disabled:!r,title:"New task","aria-label":"New task",children:[n.jsx(hn,{name:"plus",size:16}),n.jsx("span",{className:"btn_label",children:"New"})]}),n.jsxs("button",{className:`btn btn_icon ${(An?ss:b)?"is_loading":""}`,onClick:()=>void tr(),disabled:!r||(An?ss:b),title:"Refresh","aria-label":"Refresh",children:[n.jsx(hn,{name:"refresh",size:16}),n.jsx("span",{className:"btn_label",children:An?ss?"Refreshing":"Refresh":b?"Refreshing":"Refresh"})]})]})]}),n.jsx("div",{className:`row backlog_filters ${u==="completed"?"backlog_filters_completed":""}`,style:{marginTop:"10px",alignItems:u==="completed"?"flex-start":"center",justifyContent:"space-between"},children:u==="completed"?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"backlog_filters_left",children:n.jsx("div",{className:"field backlog_search_field",children:n.jsx("input",{value:B,onChange:A=>I(A.target.value),placeholder:An?"Search exec requests (id/status/backlog/error…)":"Search backlog (id/title/package/filename…)"})})}),n.jsxs("div",{className:"backlog_filters_right",children:[n.jsxs("div",{className:"tab_bar backlog_completed_view_tabs",style:{paddingBottom:0,borderBottom:"none"},children:[n.jsx("button",{className:`tab ${sn==="tasks"?"active":""}`,onClick:()=>ar("tasks"),children:"Tasks"}),n.jsx("button",{className:`tab ${sn==="runs"?"active":""}`,onClick:()=>ar("runs"),children:"Runs"})]}),n.jsxs("div",{className:"backlog_completed_meta_row",children:[An?null:n.jsx("div",{className:"field backlog_type_filter_field",children:n.jsxs("select",{value:U,onChange:A=>te(A.target.value),title:"Filter by type",children:[n.jsx("option",{value:"all",children:"all"}),n.jsx("option",{value:"task",children:"task"}),n.jsx("option",{value:"bug",children:"bug"}),n.jsx("option",{value:"feature",children:"feature"})]})}),n.jsx("div",{className:"mono muted backlog_count",style:{fontSize:"var(--font-size-sm)"},children:An?`${xo.length}/${Rr.length}`:`${yo.length}/${x.length}`})]})]})]}):n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"field backlog_search_field",children:n.jsx("input",{value:B,onChange:A=>I(A.target.value),placeholder:An?"Search exec requests (id/status/backlog/error…)":"Search backlog (id/title/package/filename…)"})}),An?null:n.jsx("div",{className:"field backlog_type_filter_field",children:n.jsxs("select",{value:U,onChange:A=>te(A.target.value),title:"Filter by type",children:[n.jsx("option",{value:"all",children:"all"}),n.jsx("option",{value:"task",children:"task"}),n.jsx("option",{value:"bug",children:"bug"}),n.jsx("option",{value:"feature",children:"feature"})]})}),n.jsx("div",{className:"mono muted backlog_count",style:{fontSize:"var(--font-size-sm)"},children:An?`${xo.length}/${Rr.length}`:`${yo.length}/${x.length}`})]})}),!An&&u==="planned"&&T.length?n.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."," ",n.jsx("button",{className:"btn",style:{padding:"4px 10px",marginLeft:"6px"},onClick:()=>d("processing"),disabled:!r,children:"View processing"})]}):null,!An&&u==="planned"?n.jsxs("details",{style:{marginTop:"10px"},children:[n.jsx("summary",{className:"mono muted",style:{cursor:"pointer",fontSize:"var(--font-size-sm)"},children:"Batch actions (shared context)"}),n.jsxs("div",{style:{marginTop:"10px"},children:[n.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."}),n.jsx("div",{style:{marginTop:"10px"},children:n.jsx(Iy,{options:x.map(A=>String(A.filename||"").trim()).filter(Boolean),value:vn,disabled:!r||b,placeholder:"(no items selected)",onChange:A=>dn(A)})}),n.jsxs("div",{className:"row",style:{gap:"8px",marginTop:"10px",flexWrap:"wrap"},children:[n.jsx("button",{className:"btn primary",disabled:!r||nr.length<2,onClick:()=>{Bn(""),Un("uat"),on(!0)},children:"Execute batch"}),n.jsx("button",{className:"btn",disabled:!r||nr.length<2,onClick:()=>{const A=(()=>{const Z=nr.map(ge=>String(ge.package||"").trim()).filter(Boolean);if(!Z.length)return"framework";const Y=Z[0];return Z.every(ge=>ge===Y)?Y:"framework"})();Ds(A),co("task"),rs(`Master backlog (${nr.length} items)`),En(""),er(""),dr(!0)},children:"Merge → master"})]})]})]}):null,!An&&j?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:j}):null,An&&qr?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:qr}):null,!An&&!j&&!b&&!x.length?n.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,An&&!qr&&!ss&&!Rr.length?n.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:"No exec requests found."}):null]}),n.jsxs("div",{className:"inbox_layout",children:[Ga?n.jsx("div",{className:"card inbox_sidebar",children:n.jsx("div",{className:"inbox_list",children:An?xo.length?xo.map(A=>{const Z=(Te==null?void 0:Te.request_id)===A.request_id,Y=String(A.status||"").trim().toLowerCase(),ge=Y==="completed"||Y==="promoted"?"ok":Y==="failed"?"danger":Y==="running"?"info":Y==="queued"||Y==="awaiting_qa"?"warn":"muted";return n.jsxs("button",{className:`inbox_item ${Z?"active":""}`,onClick:()=>void Gi(A),children:[n.jsxs("div",{className:"inbox_item_title",children:[n.jsx("span",{className:`chip ${ge} mono`,children:Y||"unknown"}),n.jsx("span",{className:"item_title_text",children:Aa(A.backlog_filename||A.backlog_relpath||"request",56)})]}),n.jsx("div",{className:"inbox_item_meta mono muted",children:Aa(A.request_id,80)}),A.error?n.jsx("div",{className:"inbox_item_meta mono",style:{color:"rgba(239, 68, 68, 0.9)"},children:Aa(A.error,180)}):null]},`exec:${A.request_id}`)}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No requests."}):yo.length?yo.map(A=>{const Z=(K==null?void 0:K.filename)===A.filename,Y=Ih(A),ge=_f(A.task_type);return n.jsxs("button",{className:`inbox_item ${Z?"active":""}`,onClick:()=>void as(A),children:[n.jsxs("div",{className:"inbox_item_title",children:[Y?null:n.jsx("span",{className:"pill unparsed",children:"unparsed"}),A.item_id?n.jsxs("span",{className:"chip info mono",children:["#",A.item_id]}):null,Y?n.jsx("span",{className:`chip ${Gp(ge)} mono`,children:ge}):null,A.package?n.jsx("span",{className:"chip muted mono",children:A.package}):null,n.jsx("span",{className:"item_title_text",children:Aa(A.title||A.filename,56)})]}),A.summary?n.jsx("div",{className:"item_summary_text",children:n.jsx(ts,{text:qb(A.summary),className:"backlog_summary_md"})}):null,n.jsx("div",{className:"inbox_item_meta mono muted",children:A.filename})]},`${u}:${A.filename}`)}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No items."})})}):null,Ei?n.jsx("div",{className:"card inbox_viewer",children:An?Te?n.jsxs("div",{className:"inbox_detail",children:[n.jsxs("div",{className:"inbox_detail_header",children:[n.jsxs("div",{className:"inbox_detail_title",children:[n.jsx("span",{className:"mono",style:{fontWeight:700},children:Te.backlog_filename||Te.backlog_relpath||Te.request_id}),(()=>{const A=String(Te.status||"").trim().toLowerCase(),Z=A==="completed"||A==="promoted"?"ok":A==="failed"?"danger":A==="running"?"info":A==="queued"||A==="awaiting_qa"?"warn":"muted";return n.jsx("span",{className:`chip mono ${Z}`,children:A||"unknown"})})(),n.jsx("span",{className:"chip mono muted",children:Aa(Te.request_id,16)})]}),n.jsxs("div",{className:"inbox_detail_actions",children:[m?n.jsx("button",{className:"btn",onClick:()=>p("list"),disabled:mr,children:"Back"}):null,n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(Te.request_id),disabled:mr,"aria-label":"Copy request id",title:"Copy request id",children:[n.jsx(hn,{name:"copy",size:16}),m?null:"Copy request id"]}),Te.backlog_relpath?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(Te.backlog_relpath||""),disabled:mr,"aria-label":"Copy backlog path",title:"Copy backlog path",children:[n.jsx(hn,{name:"copy",size:16}),m?null:"Copy backlog path"]}):null,(()=>{var Y;const Z=(Array.isArray((Y=Xe==null?void 0:Xe.backlog_queue)==null?void 0:Y.items)?Xe.backlog_queue.items:[]).map(ge=>String((ge==null?void 0:ge.relpath)||"").trim()).filter(Boolean);return Z.length?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(Z.join(`
|
|
115
|
-
`)),disabled:mr,"aria-label":"Copy backlog paths",title:"Copy backlog paths",children:[n.jsx(hn,{name:"copy",size:16}),m?null:"Copy backlog paths"]}):null})(),Te.run_dir_relpath?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(Te.run_dir_relpath||""),disabled:mr,"aria-label":"Copy run dir",title:"Copy run dir",children:[n.jsx(hn,{name:"copy",size:16}),m?null:"Copy run dir"]}):null]})]}),n.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[Te.created_at?`created ${new Date(Te.created_at).toLocaleString()}`:"",Te.started_at?` • started ${new Date(Te.started_at).toLocaleString()}`:"",Te.finished_at?` • finished ${new Date(Te.finished_at).toLocaleString()}`:""]}),Te.error?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Te.error}):null,Pr?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Pr}):null,n.jsx("div",{style:{marginTop:"12px"},children:mr?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):n.jsxs(n.Fragment,{children:[(()=>{if(String(Te.status||"").trim().toLowerCase()!=="awaiting_qa")return null;const Z=String((Xe==null?void 0:Xe.execution_mode)||"").trim().toLowerCase()||"uat",Y=String((Xe==null?void 0:Xe.candidate_relpath)||"").trim(),ge=String((Xe==null?void 0:Xe.candidate_patch_relpath)||"").trim(),je=String((Xe==null?void 0:Xe.candidate_manifest_relpath)||"").trim(),st=String((Xe==null?void 0:Xe.uat_current_relpath)||"").trim(),Ge=String((Xe==null?void 0:Xe.uat_lock_owner_request_id)||"").trim(),nt=!!(Xe!=null&&Xe.uat_lock_acquired),lt=!!(Xe!=null&&Xe.uat_pending),pn=(Xe==null?void 0:Xe.uat_deploy)??null,Vn=String((Xe==null?void 0:Xe.uat_deploy_error)||"").trim(),Zn=Xe==null?void 0:Xe.attempt,Sn=(Xe==null?void 0:Xe.promotion_report)??null,ui=!!(Sn!=null&&Sn.blocked),Gr=String((Sn==null?void 0:Sn.reason)||"").trim(),Hs=Array.isArray(Sn==null?void 0:Sn.conflicts)?(Sn==null?void 0:Sn.conflicts).slice(0,8):[],Vs=typeof(Sn==null?void 0:Sn.conflicts_total)=="number"?Number(Sn.conflicts_total):Hs.length;let Yr="",Rs="";const yr=[];try{const In=pn==null?void 0:pn.processes;if(In&&typeof In=="object"&&!Array.isArray(In)){typeof In.status=="string"&&(Yr=String(In.status||"").trim()),typeof In.reason=="string"&&(Rs=String(In.reason||"").trim());for(const[Ya,$l]of Object.entries(In)){if(!$l||typeof $l!="object"||Array.isArray($l))continue;const Gs=$l.probe;!Gs||typeof Gs!="object"||Gs.ok===!1&&yr.push(String(Ya))}}}catch{}return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_title",children:"QA decision"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"mode:"})," ",Z]}),typeof Zn=="number"?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"attempt:"})," ",Zn]}):null,Y?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"candidate:"})," ",Y]}):null,je?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"manifest:"})," ",je]}):null,ge?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"patch:"})," ",ge]}):null,st?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"uat_current:"})," ",st]}):null,Z==="uat"&&Ge?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"uat_lock:"})," ",Ge,nt?" (owned)":lt?" (pending)":""]}):null]}),Z==="inplace"?n.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."}):Z==="uat"&<&&Ge&&!nt?n.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT currently points to ",Aa(Ge,16),". Click “Restart UAT” to switch the shared UAT stack to this request."]}):Z==="uat"&&nt?n.jsxs(n.Fragment,{children:[n.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`"}),n.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."}),yr.length?n.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 ",yr.slice(0,4).join(", "),yr.length>4?"…":"",". Click “Restart UAT” and check process logs."]}):null]}):null,Z==="uat"&&Yr==="skipped"&&Rs==="process_manager_disabled"?n.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,Vn?n.jsxs("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:["UAT deploy failed: ",Vn]}):null,ui&&Gr==="conflicts"?n.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 (",Vs," conflict",Vs===1?"":"s","). Use “Iterate” to re-run the request on top of current prod, or resolve conflicts manually.",Hs.length?n.jsx("ul",{style:{marginTop:"8px",paddingLeft:"18px"},children:Hs.map((In,Ya)=>n.jsxs("li",{children:[String((In==null?void 0:In.repo)||""),"/",String((In==null?void 0:In.path)||"")," (",String((In==null?void 0:In.reason)||"conflict"),")"]},`c:${Ya}`))}):null]}):null,n.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"6px",marginTop:"8px"},children:[ge?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(ge),disabled:is,children:[n.jsx(hn,{name:"copy",size:16}),"Copy patch path"]}):null,je?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(je),disabled:is,children:[n.jsx(hn,{name:"copy",size:16}),"Copy manifest path"]}):null,Y?n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(Y),disabled:is,children:[n.jsx(hn,{name:"copy",size:16}),"Copy candidate path"]}):null]}),n.jsx("div",{style:{marginTop:"10px"},children:n.jsx("textarea",{value:uo,onChange:In=>en(In.target.value),rows:3,placeholder:"QA feedback (what to change / fix)…",style:{width:"100%",resize:"vertical",minHeight:"72px"},disabled:is})}),xi?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:xi}):null,n.jsxs("div",{className:"row",style:{flexWrap:"wrap",gap:"8px",marginTop:"10px"},children:[Z==="uat"?n.jsx("button",{className:"btn",onClick:()=>void Er(),disabled:is,children:"Restart UAT"}):null,n.jsx("button",{className:"btn primary",onClick:()=>void Ni(),disabled:is,children:Z==="inplace"?"Approve (finalize)":"Approve → promote to prod"}),n.jsx("button",{className:"btn",onClick:()=>void li(),disabled:is,children:"Iterate (send feedback)"})]}),n.jsx("div",{className:"section_divider"})]})})(),(()=>{if(String(Te.status||"").trim().toLowerCase()!=="promoted")return null;const Z=String((Xe==null?void 0:Xe.promoted_at)||"").trim(),Y=(Xe==null?void 0:Xe.promotion)??null,ge=(Xe==null?void 0:Xe.promotion_report)??null,je=typeof(Y==null?void 0:Y.copied)=="number"?Number(Y==null?void 0:Y.copied):null,st=typeof(Y==null?void 0:Y.deleted)=="number"?Number(Y==null?void 0:Y.deleted):null,Ge=String((Y==null?void 0:Y.manifest_sha256)||"").trim(),nt=String((Y==null?void 0:Y.mode)||"").trim(),lt=(ge==null?void 0:ge.redeploy)??null,pn=String((lt==null?void 0:lt.status)||"").trim(),Vn=String((lt==null?void 0:lt.reason)||"").trim(),Zn=String((ge==null?void 0:ge.redeploy_error)||"").trim();return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_title",children:"Promotion"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[Z?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"promoted_at:"})," ",new Date(Z).toLocaleString()]}):null,nt?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"mode:"})," ",nt]}):null,Ge?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"manifest_sha256:"})," ",Ge.slice(0,16),"…"]}):null,je!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"files_copied:"})," ",je]}):null,st!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"files_deleted:"})," ",st]}):null,pn?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"redeploy:"})," ",pn,Vn?` (${Vn})`:""]}):null,Zn?n.jsxs("div",{style:{color:"rgba(239, 68, 68, 0.9)"},children:[n.jsx("span",{className:"mono muted",children:"redeploy_error:"})," ",Zn]}):null]}),n.jsx("div",{className:"section_divider"})]})})(),n.jsx("div",{className:"section_title",children:"Execution"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"status:"})," ",Te.status||"unknown"]}),Te.executor_type?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"executor:"})," ",Te.executor_type]}):null,Te.target_agent?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"target_agent:"})," ",Te.target_agent]}):null,Te.target_model?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"model:"})," ",Te.target_model,Te.target_reasoning_effort?` (reasoning ${Te.target_reasoning_effort})`:""]}):null,Te.exit_code!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"exit_code:"})," ",String(Te.exit_code)]}):null,Te.run_dir_relpath?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"run_dir:"})," ",Te.run_dir_relpath]}):null,Vi.age_ms!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"age:"})," ",hm(Vi.age_ms)]}):null,Vi.queue_delay_ms!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"queue_delay:"})," ",hm(Vi.queue_delay_ms)]}):null,Vi.run_ms!=null?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"run_time:"})," ",hm(Vi.run_ms)]}):null,Vi.total_ms!=null&&Vi.is_done?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"total_time:"})," ",hm(Vi.total_ms)]}):null,Cr?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"commands:"})," ",Cr.command_count.toLocaleString(),Cr.command_fail_count?` (${Cr.command_fail_count.toLocaleString()} failed)`:""]}):null,n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"tokens:"})," ",Cr!=null&&Cr.has_tokens?n.jsxs(n.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()]}):n.jsx("span",{className:"mono muted",children:or==="events"?"n/a":'select "events"'})]})]}),(()=>{const A=Xe&&typeof Xe.promotion=="object"?Xe.promotion:null;if(!A)return null;const Z=Xe&&typeof Xe.promotion_report=="object"?Xe.promotion_report:null,Y=String((A==null?void 0:A.mode)||"").trim(),ge=(A==null?void 0:A.copied)!=null?String(A.copied):"",je=(A==null?void 0:A.deleted)!=null?String(A.deleted):"",st=String((A==null?void 0:A.manifest_sha256)||"").trim(),Ge=Z&&typeof Z.redeploy=="object"?Z.redeploy:null,nt=Ge?String(Ge.status||"").trim():"";return n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Promotion"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[Y?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"mode:"})," ",Y]}):null,ge?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"copied:"})," ",ge," files"]}):null,je?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"deleted:"})," ",je," files"]}):null,st?n.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[n.jsxs("div",{style:{minWidth:"180px"},children:[n.jsx("span",{className:"mono muted",children:"manifest_sha256:"})," ",st.slice(0,16),"…"]}),n.jsxs("button",{className:"btn btn_icon",onClick:()=>Qr(st),disabled:is,children:[n.jsx(hn,{name:"copy",size:16}),"Copy sha"]})]}):null,nt?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"redeploy:"})," ",nt]}):null]})]})})(),(()=>{var Y;const Z=(Array.isArray((Y=Xe==null?void 0:Xe.backlog_queue)==null?void 0:Y.items)?Xe.backlog_queue.items:[]).map(ge=>String((ge==null?void 0:ge.relpath)||"").trim()).filter(Boolean);return Z.length?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Backlog queue"}),n.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:Z.map(ge=>n.jsx("div",{children:ge},`bq:${ge}`))})]}):null})(),(()=>{var Z;const A=String(((Z=Xe==null?void 0:Xe.result)==null?void 0:Z.last_message)||Te.last_message||"").trim();return A?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Last message"}),n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:A})]}):null})(),n.jsx("div",{className:"section_divider"}),n.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",gap:"8px",marginTop:"8px"},children:[n.jsx("div",{className:"section_title",style:{marginTop:0},children:"Live logs"}),n.jsxs("div",{style:{display:"flex",gap:"6px",alignItems:"center",justifyContent:"flex-end",flexWrap:"wrap"},children:[n.jsxs("select",{value:or,onChange:A=>ni(A.target.value),children:[n.jsx("option",{value:"events",children:"events"}),n.jsx("option",{value:"stderr",children:"stderr"}),n.jsx("option",{value:"last_message",children:"last message"})]}),n.jsx("button",{className:`btn ${_r?"primary":""}`,onClick:()=>ia(A=>!A),disabled:!(Te!=null&&Te.request_id),children:_r?"Auto on":"Auto off"}),n.jsxs("button",{className:`btn btn_icon ${Cn?"is_loading":""}`,onClick:()=>void ci(),disabled:Cn||!(Te!=null&&Te.request_id),"aria-label":"Refresh logs",title:"Refresh logs",children:[n.jsx(hn,{name:"refresh",size:16}),m?null:Cn?"Loading…":"Refresh"]})]})]}),xs?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:xs}):null,!xs&&si?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"(tail truncated)"}):null,or==="events"&&Nr?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"exec_log_scroll",ref:bs,onScroll:A=>{vi.current=Yp(A.currentTarget,12)},children:Nr.events.length===0?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"(no events yet)"}):Nr.events.map(A=>{var Rs;const Z=A.payload,Y=Z&&typeof Z.item=="object"?Z.item:null,ge=Y?String(Y.type||"").trim():"",je=Y?String(Y.id||"").trim():"",st=Z?String(Z.thread_id||"").trim():"",Ge=Fb(A.type,Z),nt=Ge==="error"?"danger":Ge==="ok"?"ok":"info",lt=Bb(Z),pn=Db(A.type,Z),Vn=String((Z==null?void 0:Z.message)||((Rs=Z==null?void 0:Z.error)==null?void 0:Rs.message)||"").trim(),Zn=Y?String(Y.text||"").trim():"",Sn=Y?String(Y.command||"").trim():"",ui=Y?String(Y.status||"").trim():"",Gr=Y&&Y.exit_code!=null?String(Y.exit_code):"",Hs=Y?String(Y.aggregated_output||"").trim():"",Vs=Y&&Array.isArray(Y.items)?Y.items:[],Yr=Sn?Oy(Sn)||Sn:"";return n.jsxs("details",{className:`exec_event ${Ge}`,children:[n.jsxs("summary",{className:"exec_event_summary",children:[lt?n.jsx("span",{className:"exec_event_when mono muted",children:lt}):null,lt?n.jsx("span",{className:"exec_event_sep mono muted",children:"|"}):null,n.jsx("span",{className:"exec_event_main mono",title:pn,children:pn}),n.jsx("span",{className:`chip mono ${nt}`,children:ge||A.type}),Gr?n.jsxs("span",{className:"mono muted exec_event_right",children:["exit=",Gr]}):null]}),n.jsxs("div",{className:"exec_event_body",children:[n.jsxs("div",{className:"row exec_event_meta",children:[n.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:A.type}),je?n.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:je}):null,st?n.jsxs("span",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["thread ",Aa(st,18)]}):null]}),Vn?n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Vn}):null,Vs&&Vs.length>0?n.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Vs.map((yr,In)=>n.jsxs("div",{children:[(yr&&yr.completed)===!0?"✓":"○"," ",String((yr==null?void 0:yr.text)||"").trim()]},`${A.idx}-todo-${In}`))}):null,Sn?n.jsxs("div",{style:{marginTop:"8px"},children:[n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["command_execution ",ui?`(${ui})`:""," ",Gr?`exit=${Gr}`:""]}),n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Yr})]}):null,Hs?n.jsxs("details",{style:{marginTop:"8px"},children:[n.jsxs("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:["output (",Hs.length.toLocaleString()," chars)"]}),n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Hs})]}):null,Zn?n.jsx("div",{style:{marginTop:"8px"},children:n.jsx(ts,{text:Zn})}):null]})]},`${je||A.idx}-${A.type}`)})}),n.jsxs("details",{style:{marginTop:"8px"},children:[n.jsxs("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:["Raw JSONL",Nr.bad?` (${Nr.bad} unparsable line(s))`:""]}),n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)",marginTop:"8px",maxHeight:"240px",overflow:"auto"},children:Nr.raw||""})]})]}):n.jsx("div",{className:"exec_log_scroll",ref:bs,onScroll:A=>{vi.current=Yp(A.currentTarget,12)},children:n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",fontSize:"var(--font-size-sm)"},children:(()=>{var Z;if(String(Bs||"").trim())return Bs;if(or==="last_message"){const Y=String(((Z=Xe==null?void 0:Xe.result)==null?void 0:Z.last_message)||Te.last_message||"").trim();if(Y)return Y;const ge=String(Te.status||"").trim().toLowerCase();return ge==="queued"||ge==="running"?"(last message is written when the run finishes — use events for live output)":"(no last message yet)"}return or==="stderr"?"(no stderr yet)":"(no logs yet)"})()})}),(uc=Xe==null?void 0:Xe.result)!=null&&uc.logs?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Logs"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[Xe.result.logs.events_relpath?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"events:"})," ",Xe.result.logs.events_relpath]}):null,Xe.result.logs.stderr_relpath?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"stderr:"})," ",Xe.result.logs.stderr_relpath]}):null,Xe.result.logs.last_message_relpath?n.jsxs("div",{children:[n.jsx("span",{className:"mono muted",children:"last_message:"})," ",Xe.result.logs.last_message_relpath]}):null]})]}):null]})})]}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an exec request."}):K?n.jsxs("div",{className:"inbox_detail",children:[n.jsxs("div",{className:"inbox_detail_header",children:[n.jsxs("div",{className:"inbox_detail_title",children:[n.jsx("span",{className:"mono",style:{fontWeight:700},children:K.title||K.filename}),K.item_id?n.jsxs("span",{className:"chip mono muted",children:["#",K.item_id]}):null,K.package?n.jsx("span",{className:"chip mono muted",children:K.package}):null,Ha?n.jsx("span",{className:`chip ${Gp(Ha)} mono`,children:Ha}):null,Ih(K)?null:n.jsx("span",{className:"chip mono muted",children:"unparsed"}),n.jsxs("span",{className:"chip mono muted backlog_path_chip",children:[n.jsx("span",{className:"mono",children:K.filename}),n.jsx("button",{className:"chip_icon_btn",type:"button",onClick:()=>Qr(`docs/backlog/${String(u)}/${K.filename}`),"aria-label":"Copy path",title:"Copy path",disabled:re,children:n.jsx(hn,{name:"copy",size:14})})]})]}),n.jsxs("div",{className:"inbox_detail_actions",children:[m?n.jsx("button",{className:"btn",onClick:()=>p("list"),disabled:re,children:"Back"}):null,u==="completed"&&sn==="tasks"?n.jsx("button",{className:"btn",onClick:()=>void qs(K.filename),disabled:re||!r,children:"Execution log"}):null,Kn?n.jsx("button",{className:"btn primary",onClick:()=>{q(""),Ot("uat"),Dt({kind:"planned",filename:K.filename,title:K.title||K.filename}),Tt(!0)},disabled:re,children:"Execute"}):null,Nl?n.jsx("button",{className:"btn primary",onClick:()=>void ai("planned"),disabled:re,children:"Elevate → planned"}):null,Cl?n.jsx("button",{className:"btn",onClick:()=>void ai("proposed"),disabled:re,children:"Downgrade → proposed"}):null,Va?n.jsx("button",{className:"btn",onClick:()=>void ai("proposed"),disabled:re,children:"Restore → proposed"}):null,El?n.jsx("button",{className:"btn",onClick:()=>void ai("proposed"),disabled:re,children:"Restore → proposed"}):null,ga?n.jsx("button",{className:"btn",onClick:()=>void ai("deprecated"),disabled:re,children:"Deprecate"}):null,tu?n.jsxs("button",{className:"btn btn_icon",onClick:()=>void ai("trash"),disabled:re,"aria-label":"Trash",title:"Trash",children:[n.jsx(hn,{name:"trash",size:16}),m?null:"Trash"]}):null,C?n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>X(!1),disabled:ye,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void Ms(),disabled:ye,children:ye?"Saving…":"Save"})]}):n.jsxs("button",{className:"btn btn_icon",onClick:()=>{X(!0),ie(ce),De(""),ve([]),me(""),rt(""),Ce(""),dt([])},disabled:z||ye,"aria-label":"Edit",title:"Edit",children:[n.jsx(hn,{name:"edit",size:16}),m?null:"Edit"]})]})]}),n.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[String(u),Re?` • sha ${Aa(Re,10)}`:""]}),L?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:L}):null,Me?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:Me}):null,G?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:G}):null,z?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):C?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"field",style:{marginTop:"8px"},children:n.jsx("textarea",{value:se,onChange:A=>ie(A.target.value),rows:18,className:"mono"})}),n.jsxs("div",{className:"backlog_edit_sticky",children:[n.jsx("div",{className:"section_title",style:{marginTop:0},children:"Maintenance AI (chat)"}),n.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)."}),n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)",marginTop:"6px"},children:["Using:"," ",n.jsxs("span",{className:"mono",children:[o||"(gateway default)"," / ",a||"(gateway default)"]})]}),n.jsxs("div",{className:"row",style:{marginTop:"10px",justifyContent:"space-between",gap:"10px",flexWrap:"wrap"},children:[n.jsx("input",{ref:Mr,type:"file",multiple:!0,style:{display:"none"},onChange:A=>{const Z=Array.from(A.target.files||[]);Z.length&&(Fo(Z),A.currentTarget.value="")}}),n.jsx("button",{type:"button",className:"btn",onClick:()=>{var A;return(A=Mr.current)==null?void 0:A.click()},disabled:!r||!K||!$a(u)||ps,children:ps?"Uploading…":"Attach files"}),gt.length?n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["Last attached: ",gt[0]]}):null]}),he?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:he}):null,n.jsx("div",{className:"section_divider",style:{marginTop:"10px"}}),n.jsx(Mm,{messages:We,className:"backlog_chat_thread_small",empty:n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages yet."})}),n.jsx("div",{style:{marginTop:"10px"},children:n.jsx(Am,{value:Pe,onChange:me,onSubmit:()=>void Sl(),placeholder:"Message to maintainer (e.g. improve acceptance criteria…)",disabled:!r||we||!K||!$a(u),busy:we,rows:3,sendButtonClassName:"btn primary"})}),qe?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:qe}):null]})]}):ce?n.jsx(ts,{text:ce}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No content loaded."})]}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a backlog item."})}):null]})]}),n.jsxs(gi,{open:kt,title:"Execute backlog item?",onClose:()=>{Tt(!1),Dt(null)},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{Tt(!1),Dt(null)},disabled:re,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void Ba(),disabled:re||an||!qt||(ct==null?void 0:ct.can_execute)!==!0,children:re?"Executing…":"Execute"})]}),children:[n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:["Target:"," ",n.jsx("span",{className:"mono",style:{fontWeight:700},children:qt?qt.title:"(unknown)"})]}),n.jsxs("div",{style:{marginTop:"10px"},children:[n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:"Execution mode"}),n.jsxs("select",{className:"input",value:_n,onChange:A=>Ot(A.target.value),disabled:re,style:{width:"100%"},children:[n.jsx("option",{value:"uat",children:"UAT (staged, safe)"}),n.jsx("option",{value:"inplace",children:"Inplace (dangerous, edits prod)"})]}),_n==="inplace"?n.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."}):n.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."})]}),an?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!an&&(ct==null?void 0:ct.can_execute)!==!0?n.jsxs("div",{style:{marginTop:"10px"},children:[n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:(ct==null?void 0:ct.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(ct==null?void 0:ct.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(ct==null?void 0:ct.codex_available)===!1?`Codex not found on gateway: ${String((ct==null?void 0:ct.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),ct!=null&&ct.runner_error?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:ct.runner_error}):null,n.jsxs("details",{style:{marginTop:"8px"},children:[n.jsx("summary",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",cursor:"pointer"},children:"Setup"}),n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:[n.jsx("div",{children:"Docs: `docs/backlog/README.md`"}),n.jsx("div",{style:{marginTop:"6px"},children:"Required env (example):"}),n.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(`
|
|
116
|
-
`)}),n.jsx("button",{className:"btn",style:{marginTop:"8px"},onClick:()=>Qr(["ABSTRACTGATEWAY_BACKLOG_EXEC_RUNNER=1","ABSTRACTGATEWAY_BACKLOG_EXECUTOR=codex_cli","ABSTRACTGATEWAY_BACKLOG_CODEX_BIN=codex","ABSTRACTGATEWAY_BACKLOG_CODEX_MODEL=gpt-5.2"].join(`
|
|
117
|
-
`)),children:"Copy setup"})]})]})]}):null,Es?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Es}):null,L?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:L}):null]}),n.jsxs(gi,{open:nn,title:"Execute batch (single context)?",onClose:()=>{on(!1),Bn("")},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{on(!1),Bn("")},disabled:Gt,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void Ts(),disabled:Gt||an||nr.length<2||(ct==null?void 0:ct.can_execute)!==!0,children:Gt?"Executing…":"Execute batch"})]}),children:[n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:["Items:"," ",n.jsx("span",{className:"mono",style:{fontWeight:700},children:nr.length})]}),n.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."}),n.jsxs("div",{style:{marginTop:"10px"},children:[n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"6px"},children:"Execution mode"}),n.jsxs("select",{className:"input",value:Ln,onChange:A=>Un(A.target.value),disabled:Gt,style:{width:"100%"},children:[n.jsx("option",{value:"uat",children:"UAT (staged, safe)"}),n.jsx("option",{value:"inplace",children:"Inplace (dangerous, edits prod)"})]}),Ln==="inplace"?n.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."}):n.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."})]}),nr.length?n.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:nr.map(A=>n.jsxs("div",{children:["- docs/backlog/planned/",A.filename]},`batchitem:${A.filename}`))}):null,an?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Checking worker…"}):null,!an&&(ct==null?void 0:ct.can_execute)!==!0?n.jsxs("div",{style:{marginTop:"10px"},children:[n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:(ct==null?void 0:ct.runner_enabled)!==!0?"Backlog exec runner is disabled on this gateway.":(ct==null?void 0:ct.runner_alive)===!1?"Backlog exec runner is not running on this gateway.":(ct==null?void 0:ct.codex_available)===!1?`Codex not found on gateway: ${String((ct==null?void 0:ct.codex_bin)||"codex")}`:"Backlog exec is not available on this gateway."}),ct!=null&&ct.runner_error?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:ct.runner_error}):null]}):null,Es?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Es}):null,jn?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:jn}):null]}),n.jsxs(gi,{open:lr,title:"Merge planned items into master backlog?",onClose:()=>{dr(!1),er("")},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{dr(!1),er("")},disabled:Fi,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void Yi(),disabled:Fi||nr.length<2||!br.trim()||!gs.trim(),children:Fi?"Merging…":"Create master"})]}),children:[n.jsxs("div",{className:"row",style:{gap:"10px",flexWrap:"wrap"},children:[n.jsx("div",{className:"col",style:{minWidth:220},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Package"}),n.jsx("input",{value:gs,onChange:A=>Ds(A.target.value),placeholder:"framework"})]})}),n.jsx("div",{className:"col",style:{minWidth:220},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Type"}),n.jsxs("select",{value:Ao,onChange:A=>co(A.target.value),children:[n.jsx("option",{value:"task",children:"task"}),n.jsx("option",{value:"feature",children:"feature"}),n.jsx("option",{value:"bug",children:"bug"})]})]})})]}),n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Title"}),n.jsx("input",{value:br,onChange:A=>rs(A.target.value),placeholder:"Master backlog"})]}),n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Summary (optional)"}),n.jsx("textarea",{value:ys,onChange:A=>En(A.target.value),rows:3})]}),nr.length?n.jsxs("div",{style:{marginTop:"10px"},children:[n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Referenced backlog items:"}),n.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:nr.map(A=>n.jsxs("div",{children:["- docs/backlog/planned/",A.filename]},`mergeitem:${A.filename}`))})]}):null,Tr?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Tr}):null]}),n.jsx(gi,{open:wi,title:Bi?`Execution log — ${Bi}`:"Execution log",variant:"fullscreen",onClose:()=>{bi(!1),fo(""),ji([]),ii(""),O(""),Be(""),At(!1),Pt("")},children:n.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[n.jsxs("div",{className:"row",style:{alignItems:"flex-end",gap:"10px",flexWrap:"wrap"},children:[n.jsx("div",{className:"col",style:{minWidth:420,flex:"0 0 auto"},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Execution"}),n.jsxs("select",{value:Hr,onChange:A=>{const Z=String(A.target.value||"").trim();ii(Z),O(""),Be(""),At(!1),Z&&Ci({request_id:Z,name:mo}),setTimeout(()=>{var Y;return(Y=rn.current)==null?void 0:Y.focus()},0)},disabled:ue||!Us.length,children:[Us.length?null:n.jsx("option",{value:"",children:"(none)"}),Us.map(A=>{const Z=String(A.finished_at||A.started_at||A.created_at||"").trim(),Y=Z?`${Z} • ${Aa(A.request_id,16)} • ${String(A.status||"").trim()}`:`${Aa(A.request_id,16)} • ${String(A.status||"").trim()}`;return n.jsx("option",{value:A.request_id,children:Y},`execfull:${A.request_id}`)})]})]})}),n.jsx("div",{className:"col",style:{minWidth:180,flex:"0 0 auto"},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Log"}),n.jsxs("select",{value:mo,onChange:A=>{const Z=A.target.value;ho(Z),O(""),Be(""),At(!1),Hr&&Ci({request_id:Hr,name:Z}),setTimeout(()=>{var Y;return(Y=rn.current)==null?void 0:Y.focus()},0)},disabled:ue||!Hr,children:[n.jsx("option",{value:"events",children:"events"}),n.jsx("option",{value:"stderr",children:"stderr"}),n.jsx("option",{value:"last_message",children:"last_message"})]})]})}),n.jsx("div",{className:"col",style:{minWidth:240,flex:"1 1 240px"},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Search"}),n.jsx("input",{value:zt,onChange:A=>Pt(A.target.value),placeholder:"Find…",onKeyDown:A=>{A.key==="Enter"&&(A.preventDefault(),Io(A.shiftKey?-1:1))}})]})}),n.jsxs("div",{className:"col",style:{flex:"0 0 auto",display:"flex",gap:"6px"},children:[n.jsx("button",{className:"btn",onClick:()=>Io(-1),disabled:!zt.trim()||!js.trim(),children:"Prev"}),n.jsx("button",{className:"btn",onClick:()=>Io(1),disabled:!zt.trim()||!js.trim(),children:"Next"}),n.jsx("button",{className:"btn",onClick:()=>void Ci(),disabled:ue||!Hr,children:ue?"Loading…":"Refresh"}),n.jsx("button",{className:"btn",onClick:()=>Qr(js),disabled:!js.trim(),children:"Copy"})]})]}),Ie?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"10px"},children:Ie}):null,!Ie&&ut?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"10px"},children:"Showing only the tail of this log."}):null,n.jsx("div",{style:{flex:"1 1 auto",marginTop:"10px"},children:n.jsx("textarea",{ref:rn,value:js||"(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"}})})]})}),n.jsxs(gi,{open:ft,title:"New backlog task",onClose:()=>{wn(!1),zs()},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{wn(!1),zs()},disabled:Si||Po,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void qa(),disabled:Si||!Ui.trim()||!oa.trim(),children:Si?"Creating…":"Create"})]}),children:[n.jsxs("div",{className:"row",children:[n.jsx("div",{className:"col",style:{minWidth:220},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Kind"}),n.jsxs("select",{value:kr,onChange:A=>oc(A.target.value),children:[n.jsx("option",{value:"proposed",children:"proposed"}),n.jsx("option",{value:"planned",children:"planned"}),n.jsx("option",{value:"recurrent",children:"recurrent"})]})]})}),n.jsx("div",{className:"col",style:{minWidth:220},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Type"}),n.jsxs("select",{value:hl,onChange:A=>za(A.target.value),children:[n.jsx("option",{value:"feature",children:"feature"}),n.jsx("option",{value:"bug",children:"bug"}),n.jsx("option",{value:"task",children:"task"})]})]})}),n.jsx("div",{className:"col",style:{minWidth:220},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Package"}),n.jsx("input",{value:oa,onChange:A=>Yc(A.target.value),placeholder:"framework"})]})})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Title"}),n.jsx("input",{value:Ui,onChange:A=>Xc(A.target.value),placeholder:"Short descriptive title"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Summary (optional)"}),n.jsx("textarea",{value:aa,onChange:A=>Mo(A.target.value),rows:3,placeholder:"One paragraph summary"})]}),n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Guided fields (optional)"}),n.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."}),n.jsx("div",{style:{marginTop:"8px"},children:n.jsxs("details",{children:[n.jsx("summary",{className:"mono",style:{cursor:"pointer"},children:"Show guided fields"}),n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Diagram (ASCII)"}),n.jsx("textarea",{value:pl,onChange:A=>gl(A.target.value),rows:4,className:"mono",placeholder:"(optional) ascii diagram"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Context"}),n.jsx("textarea",{value:ca,onChange:A=>Ra(A.target.value),rows:4,placeholder:"Why is this needed? Link to evidence (reports, discussions, etc.)."})]}),n.jsxs("div",{className:"row",children:[n.jsx("div",{className:"col",style:{minWidth:260},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Scope: Included (1 per line)"}),n.jsx("textarea",{value:ac,onChange:A=>yl(A.target.value),rows:4,className:"mono",placeholder:"..."})]})}),n.jsx("div",{className:"col",style:{minWidth:260},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Scope: Excluded (1 per line)"}),n.jsx("textarea",{value:La,onChange:A=>Jc(A.target.value),rows:4,className:"mono",placeholder:"..."})]})})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Implementation Plan (1 per line)"}),n.jsx("textarea",{value:xl,onChange:A=>Kc(A.target.value),rows:4,className:"mono",placeholder:"..."})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Dependencies (1 per line)"}),n.jsx("textarea",{value:vl,onChange:A=>ua(A.target.value),rows:3,className:"mono",placeholder:"Related backlog items / ADRs / external libs…"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Acceptance Criteria (1 per line)"}),n.jsx("textarea",{value:zo,onChange:A=>wl(A.target.value),rows:4,className:"mono",placeholder:"..."})]}),n.jsxs("div",{className:"row",children:[n.jsx("div",{className:"col",style:{minWidth:260},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Testing Level A (1 per line)"}),n.jsx("textarea",{value:da,onChange:A=>lc(A.target.value),rows:3,className:"mono",placeholder:"cd pkg && pytest -q ..."})]})}),n.jsx("div",{className:"col",style:{minWidth:260},children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Testing Level B (1 per line)"}),n.jsx("textarea",{value:fa,onChange:A=>po(A.target.value),rows:3,className:"mono",placeholder:"run local gateway + manual verification..."})]})})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Testing Level C (1 per line)"}),n.jsx("textarea",{value:oi,onChange:A=>Ro(A.target.value),rows:2,className:"mono",placeholder:"(optional / opt-in)"})]}),n.jsx("div",{className:"row",style:{marginTop:"10px",justifyContent:"flex-end"},children:n.jsx("button",{className:"btn",onClick:()=>jl(),disabled:Si||Po,children:"Generate draft from guided fields"})})]})}),n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Attachments (optional)"}),n.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."}),n.jsx("div",{className:"field",style:{marginTop:"8px"},children:n.jsx("input",{type:"file",multiple:!0,onChange:A=>{const Z=Array.from(A.target.files||[]);Z.length&&(ma(Y=>[...Y,...Z]),A.currentTarget.value="")}})}),Lo.length?n.jsx("div",{className:"mono",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:Lo.map((A,Z)=>n.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",marginTop:"4px"},children:[n.jsxs("span",{className:"mono muted",style:{paddingRight:"10px"},children:[A.name," (",Math.round(A.size/1024)," KB)"]}),n.jsx("button",{className:"btn",onClick:()=>ma(Y=>Y.filter((ge,je)=>je!==Z)),disabled:Si||Pa,children:"Remove"})]},`${A.name}_${A.size}_${Z}`))}):null,Pa?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Uploading attachments…"}):null,ki?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:ki}):null,n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Draft (Markdown)"}),n.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."}),os?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Loading template…"}):null,_o?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:_o}):null,n.jsx("div",{className:"row",style:{marginTop:"10px",justifyContent:"flex-end",gap:"8px"},children:n.jsx("button",{className:"btn",onClick:()=>{la.trim()&&!globalThis.confirm("Reset the draft markdown to the backlog template?")||Wa({force:!0})},disabled:Si||Po||os||!r,children:"Reset from template"})}),n.jsx("div",{className:"field",children:n.jsx("textarea",{value:la,onChange:A=>Wi(A.target.value),rows:10,className:"mono",placeholder:"(optional) full markdown draft"})}),n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"AI Assist (chat)"}),n.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."}),n.jsx(Mm,{messages:ha,className:"backlog_chat_thread_small",empty:n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages yet."})}),n.jsx("div",{style:{marginTop:"10px"},children:n.jsx(Am,{value:Zc,onChange:Ia,onSubmit:()=>void Xi(),placeholder:"Message to AI (e.g. refine acceptance criteria…)",disabled:!r||!Ui.trim(),busy:Po,rows:3,sendButtonClassName:"btn primary"})}),_l?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:_l}):null]}),n.jsx("button",{className:`advisor_toggle ${ke?"open":""}`,onClick:()=>{Fe(A=>{const Z=!A;return Z||kl(),Z})},title:"Open backlog advisor (read-only)","aria-label":"Open backlog advisor",children:n.jsx("span",{className:"advisor_toggle_label",children:"Advisor"})}),ke?n.jsx("div",{className:"drawer_backdrop",onMouseDown:A=>{A.target===A.currentTarget&&(kl(),Fe(!1))},children:n.jsxs("div",{className:"drawer_panel",children:[n.jsxs("div",{className:"drawer_header",children:[n.jsxs("div",{className:"col",style:{gap:2},children:[n.jsx("div",{className:"drawer_title",children:"Backlog advisor"}),n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:["Read-only. Agent: ",c||"basic-agent"," • Using: ",o||"(gateway default)"," / ",a||"(gateway default)"]})]}),n.jsxs("div",{className:"row",style:{gap:8,justifyContent:"flex-end"},children:[n.jsxs("button",{className:`btn btn_icon ${de?"primary":""}`,onClick:()=>Ee(A=>!A),disabled:Kt,title:de?"Hide tool execution":"Show tool execution","aria-label":de?"Hide tool execution":"Show tool execution",children:[n.jsx(hn,{name:"terminal",size:16}),m?null:de?"Tools on":"Tools"]}),n.jsx("button",{className:"btn",onClick:()=>Et([]),disabled:Kt||!ot.length,children:"Clear"}),n.jsx("button",{className:"btn",onClick:()=>{kl(),Fe(!1)},children:"Close"})]})]}),n.jsxs("div",{className:"drawer_body",children:[n.jsx(Mm,{messages:ot,className:"drawer_chat_thread",messageProps:Qt.tts_supported&&r&&yn.trim()?{onSpeakToggle:pa,getSpeakState:eu,jsonCollapseAfterDepth:4}:{jsonCollapseAfterDepth:4},empty:n.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?”"})}),n.jsxs("div",{className:"drawer_footer",children:[n.jsx("input",{ref:Dn,type:"file",multiple:!0,style:{display:"none"},onChange:A=>{const Z=Array.from(A.currentTarget.files||[]);A.currentTarget.value="",Z.length&&Qc(Z)}}),n.jsx(Am,{ref:Xt,value:Lt,onChange:ae,onSubmit:()=>void cc(),placeholder:"Message to backlog advisor…",disabled:!r,busy:Kt||Qt.voice_ptt_busy,rows:3,sendButtonClassName:"btn primary",busyLabel:Qt.voice_ptt_busy?"Transcribing…":"Thinking…",actions:n.jsxs(n.Fragment,{children:[n.jsxs("button",{className:`btn btn_icon voice_btn${Qt.voice_ptt_recording?" danger":""}`,type:"button",disabled:!r||!yn.trim()||Kt||Qt.voice_ptt_busy||!Qt.voice_ptt_supported,title:Qt.voice_ptt_supported?Qt.voice_ptt_busy?"Transcribing…":Qt.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:A=>{var Z,Y;if(!(!r||!yn.trim()||Kt||Qt.voice_ptt_busy||!Qt.voice_ptt_supported)){A.preventDefault();try{(Y=(Z=A.currentTarget)==null?void 0:Z.setPointerCapture)==null||Y.call(Z,A.pointerId)}catch{}Qt.start_voice_ptt_recording()}},onPointerUp:A=>{A.preventDefault(),Qt.stop_voice_ptt_recording()},onPointerCancel:A=>{A.preventDefault(),Qt.stop_voice_ptt_recording()},children:[n.jsx(hn,{name:Qt.voice_ptt_recording?"x":"mic",size:16}),m?null:Qt.voice_ptt_busy?"Transcribing…":Qt.voice_ptt_recording?"Recording…":"Voice"]}),n.jsxs("button",{className:"btn btn_icon",type:"button",onClick:()=>{var A;return(A=Dn.current)==null?void 0:A.click()},disabled:Kt,title:"Attach a local file to your message","aria-label":"Attach file",children:[n.jsx(hn,{name:"paperclip",size:16}),m?null:"Attach"]})]})}),$t.length?n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["Last attached: ",$t[0]]}):null,gn?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:gn}):null,xn?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:xn}):null,r?null:n.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 Fs(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=Fs(e[r]))!==""&&(t+=(t&&" ")+o);else for(let r in e)e[r]&&(t+=(t&&" ")+r);return t}var Dh={exports:{}},Bh={},Uh={exports:{}},Wh={};/**
|
|
118
|
-
* @license React
|
|
119
|
-
* use-sync-external-store-shim.production.js
|
|
120
|
-
*
|
|
121
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
122
|
-
*
|
|
123
|
-
* This source code is licensed under the MIT license found in the
|
|
124
|
-
* LICENSE file in the root directory of this source tree.
|
|
125
|
-
*/var Kp;function Kb(){if(Kp)return Wh;Kp=1;var e=$f();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,a=e.useEffect,c=e.useLayoutEffect,u=e.useDebugValue;function d(x,v){var b=v(),S=o({inst:{value:b,getSnapshot:v}}),j=S[0].inst,$=S[1];return c(function(){j.value=b,j.getSnapshot=v,m(j)&&$({inst:j})},[x,b,v]),a(function(){return m(j)&&$({inst:j}),x(function(){m(j)&&$({inst:j})})},[x]),u(b),b}function m(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 p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?_:d;return Wh.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,Wh}var Zp;function Zb(){return Zp||(Zp=1,Uh.exports=Kb()),Uh.exports}/**
|
|
126
|
-
* @license React
|
|
127
|
-
* use-sync-external-store-shim/with-selector.production.js
|
|
128
|
-
*
|
|
129
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
130
|
-
*
|
|
131
|
-
* This source code is licensed under the MIT license found in the
|
|
132
|
-
* LICENSE file in the root directory of this source tree.
|
|
133
|
-
*/var Qp;function Qb(){if(Qp)return Bh;Qp=1;var e=$f(),t=Zb();function r(_,p){return _===p&&(_!==0||1/_===1/p)||_!==_&&p!==p}var o=typeof Object.is=="function"?Object.is:r,a=t.useSyncExternalStore,c=e.useRef,u=e.useEffect,d=e.useMemo,m=e.useDebugValue;return Bh.useSyncExternalStoreWithSelector=function(_,p,x,v,b){var S=c(null);if(S.current===null){var j={hasValue:!1,value:null};S.current=j}else j=S.current;S=d(function(){function T(te){if(!F){if(F=!0,B=te,te=v(te),b!==void 0&&j.hasValue){var K=j.value;if(b(K,te))return I=K}return I=te}if(K=I,o(B,te))return K;var le=v(te);return b!==void 0&&b(K,le)?(B=te,K):(B=te,I=le)}var F=!1,B,I,U=x===void 0?null:x;return[function(){return T(p())},U===null?void 0:function(){return T(U())}]},[p,x,v,b]);var $=a(_,S[0],S[1]);return u(function(){j.hasValue=!0,j.value=$},[$]),m($),$},Bh}var eg;function e0(){return eg||(eg=1,Dh.exports=Qb()),Dh.exports}var t0=e0();const n0=G_(t0),r0={},tg=e=>{let t;const r=new Set,o=(p,x)=>{const v=typeof p=="function"?p(t):p;if(!Object.is(v,t)){const b=t;t=x??(typeof v!="object"||v===null)?v:Object.assign({},t,v),r.forEach(S=>S(t,b))}},a=()=>t,m={setState:o,getState:a,getInitialState:()=>_,subscribe:p=>(r.add(p),()=>r.delete(p)),destroy:()=>{(r0?"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,a,m);return m},s0=e=>e?tg(e):tg,{useDebugValue:i0}=Ae,{useSyncExternalStoreWithSelector:o0}=n0,a0=e=>e;function By(e,t=a0,r){const o=o0(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,r);return i0(o),o}const ng=(e,t)=>{const r=s0(e),o=(a,c=t)=>By(r,a,c);return Object.assign(o,r),o},l0=(e,t)=>e?ng(e,t):ng;function Cs(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,a]of e)if(!Object.is(a,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 c0={value:()=>{}};function nh(){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 Tm(r)}function Tm(e){this._=e}function u0(e,t){return e.trim().split(/^|\s+/).map(function(r){var o="",a=r.indexOf(".");if(a>=0&&(o=r.slice(a+1),r=r.slice(0,a)),r&&!t.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:o}})}Tm.prototype=nh.prototype={constructor:Tm,on:function(e,t){var r=this._,o=u0(e+"",r),a,c=-1,u=o.length;if(arguments.length<2){for(;++c<u;)if((a=(e=o[c]).type)&&(a=d0(r[a],e.name)))return a;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++c<u;)if(a=(e=o[c]).type)r[a]=rg(r[a],e.name,t);else if(t==null)for(a in r)r[a]=rg(r[a],e.name,null);return this},copy:function(){var e={},t=this._;for(var r in t)e[r]=t[r].slice();return new Tm(e)},call:function(e,t){if((a=arguments.length-2)>0)for(var r=new Array(a),o=0,a,c;o<a;++o)r[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(c=this._[e],o=0,a=c.length;o<a;++o)c[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],a=0,c=o.length;a<c;++a)o[a].value.apply(t,r)}};function d0(e,t){for(var r=0,o=e.length,a;r<o;++r)if((a=e[r]).name===t)return a.value}function rg(e,t,r){for(var o=0,a=e.length;o<a;++o)if(e[o].name===t){e[o]=c0,e=e.slice(0,o).concat(e.slice(o+1));break}return r!=null&&e.push({name:t,value:r}),e}var g_="http://www.w3.org/1999/xhtml";const sg={svg:"http://www.w3.org/2000/svg",xhtml:g_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function rh(e){var t=e+="",r=t.indexOf(":");return r>=0&&(t=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),sg.hasOwnProperty(t)?{space:sg[t],local:e}:e}function f0(e){return function(){var t=this.ownerDocument,r=this.namespaceURI;return r===g_&&t.documentElement.namespaceURI===g_?t.createElement(e):t.createElementNS(r,e)}}function m0(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Uy(e){var t=rh(e);return(t.local?m0:f0)(t)}function h0(){}function J_(e){return e==null?h0:function(){return this.querySelector(e)}}function _0(e){typeof e!="function"&&(e=J_(e));for(var t=this._groups,r=t.length,o=new Array(r),a=0;a<r;++a)for(var c=t[a],u=c.length,d=o[a]=new Array(u),m,_,p=0;p<u;++p)(m=c[p])&&(_=e.call(m,m.__data__,p,c))&&("__data__"in m&&(_.__data__=m.__data__),d[p]=_);return new lo(o,this._parents)}function p0(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function g0(){return[]}function Wy(e){return e==null?g0:function(){return this.querySelectorAll(e)}}function y0(e){return function(){return p0(e.apply(this,arguments))}}function x0(e){typeof e=="function"?e=y0(e):e=Wy(e);for(var t=this._groups,r=t.length,o=[],a=[],c=0;c<r;++c)for(var u=t[c],d=u.length,m,_=0;_<d;++_)(m=u[_])&&(o.push(e.call(m,m.__data__,_,u)),a.push(m));return new lo(o,a)}function qy(e){return function(){return this.matches(e)}}function Hy(e){return function(t){return t.matches(e)}}var v0=Array.prototype.find;function w0(e){return function(){return v0.call(this.children,e)}}function b0(){return this.firstElementChild}function j0(e){return this.select(e==null?b0:w0(typeof e=="function"?e:Hy(e)))}var S0=Array.prototype.filter;function k0(){return Array.from(this.children)}function N0(e){return function(){return S0.call(this.children,e)}}function C0(e){return this.selectAll(e==null?k0:N0(typeof e=="function"?e:Hy(e)))}function E0(e){typeof e!="function"&&(e=qy(e));for(var t=this._groups,r=t.length,o=new Array(r),a=0;a<r;++a)for(var c=t[a],u=c.length,d=o[a]=[],m,_=0;_<u;++_)(m=c[_])&&e.call(m,m.__data__,_,c)&&d.push(m);return new lo(o,this._parents)}function Vy(e){return new Array(e.length)}function $0(){return new lo(this._enter||this._groups.map(Vy),this._parents)}function Fm(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Fm.prototype={constructor:Fm,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 A0(e){return function(){return e}}function M0(e,t,r,o,a,c){for(var u=0,d,m=t.length,_=c.length;u<_;++u)(d=t[u])?(d.__data__=c[u],o[u]=d):r[u]=new Fm(e,c[u]);for(;u<m;++u)(d=t[u])&&(a[u]=d)}function T0(e,t,r,o,a,c,u){var d,m,_=new Map,p=t.length,x=c.length,v=new Array(p),b;for(d=0;d<p;++d)(m=t[d])&&(v[d]=b=u.call(m,m.__data__,d,t)+"",_.has(b)?a[d]=m:_.set(b,m));for(d=0;d<x;++d)b=u.call(e,c[d],d,c)+"",(m=_.get(b))?(o[d]=m,m.__data__=c[d],_.delete(b)):r[d]=new Fm(e,c[d]);for(d=0;d<p;++d)(m=t[d])&&_.get(v[d])===m&&(a[d]=m)}function z0(e){return e.__data__}function R0(e,t){if(!arguments.length)return Array.from(this,z0);var r=t?T0:M0,o=this._parents,a=this._groups;typeof e!="function"&&(e=A0(e));for(var c=a.length,u=new Array(c),d=new Array(c),m=new Array(c),_=0;_<c;++_){var p=o[_],x=a[_],v=x.length,b=L0(e.call(p,p&&p.__data__,_,o)),S=b.length,j=d[_]=new Array(S),$=u[_]=new Array(S),T=m[_]=new Array(v);r(p,x,j,$,T,b,t);for(var F=0,B=0,I,U;F<S;++F)if(I=j[F]){for(F>=B&&(B=F+1);!(U=$[B])&&++B<S;);I._next=U||null}}return u=new lo(u,o),u._enter=d,u._exit=m,u}function L0(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function P0(){return new lo(this._exit||this._groups.map(Vy),this._parents)}function O0(e,t,r){var o=this.enter(),a=this,c=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(a=t(a),a&&(a=a.selection())),r==null?c.remove():r(c),o&&a?o.merge(a).order():a}function I0(e){for(var t=e.selection?e.selection():e,r=this._groups,o=t._groups,a=r.length,c=o.length,u=Math.min(a,c),d=new Array(a),m=0;m<u;++m)for(var _=r[m],p=o[m],x=_.length,v=d[m]=new Array(x),b,S=0;S<x;++S)(b=_[S]||p[S])&&(v[S]=b);for(;m<a;++m)d[m]=r[m];return new lo(d,this._parents)}function F0(){for(var e=this._groups,t=-1,r=e.length;++t<r;)for(var o=e[t],a=o.length-1,c=o[a],u;--a>=0;)(u=o[a])&&(c&&u.compareDocumentPosition(c)^4&&c.parentNode.insertBefore(u,c),c=u);return this}function D0(e){e||(e=B0);function t(x,v){return x&&v?e(x.__data__,v.__data__):!x-!v}for(var r=this._groups,o=r.length,a=new Array(o),c=0;c<o;++c){for(var u=r[c],d=u.length,m=a[c]=new Array(d),_,p=0;p<d;++p)(_=u[p])&&(m[p]=_);m.sort(t)}return new lo(a,this._parents).order()}function B0(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function U0(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function W0(){return Array.from(this)}function q0(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var o=e[t],a=0,c=o.length;a<c;++a){var u=o[a];if(u)return u}return null}function H0(){let e=0;for(const t of this)++e;return e}function V0(){return!this.node()}function G0(e){for(var t=this._groups,r=0,o=t.length;r<o;++r)for(var a=t[r],c=0,u=a.length,d;c<u;++c)(d=a[c])&&e.call(d,d.__data__,c,a);return this}function Y0(e){return function(){this.removeAttribute(e)}}function X0(e){return function(){this.removeAttributeNS(e.space,e.local)}}function J0(e,t){return function(){this.setAttribute(e,t)}}function K0(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Z0(e,t){return function(){var r=t.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function Q0(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 ej(e,t){var r=rh(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?X0:Y0:typeof t=="function"?r.local?Q0:Z0:r.local?K0:J0)(r,t))}function Gy(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function tj(e){return function(){this.style.removeProperty(e)}}function nj(e,t,r){return function(){this.style.setProperty(e,t,r)}}function rj(e,t,r){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,r)}}function sj(e,t,r){return arguments.length>1?this.each((t==null?tj:typeof t=="function"?rj:nj)(e,t,r??"")):sd(this.node(),e)}function sd(e,t){return e.style.getPropertyValue(t)||Gy(e).getComputedStyle(e,null).getPropertyValue(t)}function ij(e){return function(){delete this[e]}}function oj(e,t){return function(){this[e]=t}}function aj(e,t){return function(){var r=t.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function lj(e,t){return arguments.length>1?this.each((t==null?ij:typeof t=="function"?aj:oj)(e,t)):this.node()[e]}function Yy(e){return e.trim().split(/^|\s+/)}function K_(e){return e.classList||new Xy(e)}function Xy(e){this._node=e,this._names=Yy(e.getAttribute("class")||"")}Xy.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 Jy(e,t){for(var r=K_(e),o=-1,a=t.length;++o<a;)r.add(t[o])}function Ky(e,t){for(var r=K_(e),o=-1,a=t.length;++o<a;)r.remove(t[o])}function cj(e){return function(){Jy(this,e)}}function uj(e){return function(){Ky(this,e)}}function dj(e,t){return function(){(t.apply(this,arguments)?Jy:Ky)(this,e)}}function fj(e,t){var r=Yy(e+"");if(arguments.length<2){for(var o=K_(this.node()),a=-1,c=r.length;++a<c;)if(!o.contains(r[a]))return!1;return!0}return this.each((typeof t=="function"?dj:t?cj:uj)(r,t))}function mj(){this.textContent=""}function hj(e){return function(){this.textContent=e}}function _j(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function pj(e){return arguments.length?this.each(e==null?mj:(typeof e=="function"?_j:hj)(e)):this.node().textContent}function gj(){this.innerHTML=""}function yj(e){return function(){this.innerHTML=e}}function xj(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function vj(e){return arguments.length?this.each(e==null?gj:(typeof e=="function"?xj:yj)(e)):this.node().innerHTML}function wj(){this.nextSibling&&this.parentNode.appendChild(this)}function bj(){return this.each(wj)}function jj(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Sj(){return this.each(jj)}function kj(e){var t=typeof e=="function"?e:Uy(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Nj(){return null}function Cj(e,t){var r=typeof e=="function"?e:Uy(e),o=t==null?Nj:typeof t=="function"?t:J_(t);return this.select(function(){return this.insertBefore(r.apply(this,arguments),o.apply(this,arguments)||null)})}function Ej(){var e=this.parentNode;e&&e.removeChild(this)}function $j(){return this.each(Ej)}function Aj(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Mj(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Tj(e){return this.select(e?Mj:Aj)}function zj(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Rj(e){return function(t){e.call(this,t,this.__data__)}}function Lj(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 Pj(e){return function(){var t=this.__on;if(t){for(var r=0,o=-1,a=t.length,c;r<a;++r)c=t[r],(!e.type||c.type===e.type)&&c.name===e.name?this.removeEventListener(c.type,c.listener,c.options):t[++o]=c;++o?t.length=o:delete this.__on}}}function Oj(e,t,r){return function(){var o=this.__on,a,c=Rj(t);if(o){for(var u=0,d=o.length;u<d;++u)if((a=o[u]).type===e.type&&a.name===e.name){this.removeEventListener(a.type,a.listener,a.options),this.addEventListener(a.type,a.listener=c,a.options=r),a.value=t;return}}this.addEventListener(e.type,c,r),a={type:e.type,name:e.name,value:t,listener:c,options:r},o?o.push(a):this.__on=[a]}}function Ij(e,t,r){var o=Lj(e+""),a,c=o.length,u;if(arguments.length<2){var d=this.node().__on;if(d){for(var m=0,_=d.length,p;m<_;++m)for(a=0,p=d[m];a<c;++a)if((u=o[a]).type===p.type&&u.name===p.name)return p.value}return}for(d=t?Oj:Pj,a=0;a<c;++a)this.each(d(o[a],t,r));return this}function Zy(e,t,r){var o=Gy(e),a=o.CustomEvent;typeof a=="function"?a=new a(t,r):(a=o.document.createEvent("Event"),r?(a.initEvent(t,r.bubbles,r.cancelable),a.detail=r.detail):a.initEvent(t,!1,!1)),e.dispatchEvent(a)}function Fj(e,t){return function(){return Zy(this,e,t)}}function Dj(e,t){return function(){return Zy(this,e,t.apply(this,arguments))}}function Bj(e,t){return this.each((typeof t=="function"?Dj:Fj)(e,t))}function*Uj(){for(var e=this._groups,t=0,r=e.length;t<r;++t)for(var o=e[t],a=0,c=o.length,u;a<c;++a)(u=o[a])&&(yield u)}var Qy=[null];function lo(e,t){this._groups=e,this._parents=t}function Mf(){return new lo([[document.documentElement]],Qy)}function Wj(){return this}lo.prototype=Mf.prototype={constructor:lo,select:_0,selectAll:x0,selectChild:j0,selectChildren:C0,filter:E0,data:R0,enter:$0,exit:P0,join:O0,merge:I0,selection:Wj,order:F0,sort:D0,call:U0,nodes:W0,node:q0,size:H0,empty:V0,each:G0,attr:ej,style:sj,property:lj,classed:fj,text:pj,html:vj,raise:bj,lower:Sj,append:kj,insert:Cj,remove:$j,clone:Tj,datum:zj,on:Ij,dispatch:Bj,[Symbol.iterator]:Uj};function Eo(e){return typeof e=="string"?new lo([[document.querySelector(e)]],[document.documentElement]):new lo([[e]],Qy)}function qj(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Qo(e,t){if(e=qj(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 a=t.getBoundingClientRect();return[e.clientX-a.left-t.clientLeft,e.clientY-a.top-t.clientTop]}}return[e.pageX,e.pageY]}const Hj={passive:!1},pf={capture:!0,passive:!1};function qh(e){e.stopImmediatePropagation()}function Ku(e){e.preventDefault(),e.stopImmediatePropagation()}function ex(e){var t=e.document.documentElement,r=Eo(e).on("dragstart.drag",Ku,pf);"onselectstart"in t?r.on("selectstart.drag",Ku,pf):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function tx(e,t){var r=e.document.documentElement,o=Eo(e).on("dragstart.drag",null);t&&(o.on("click.drag",Ku,pf),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 _m=e=>()=>e;function y_(e,{sourceEvent:t,subject:r,target:o,identifier:a,active:c,x:u,y:d,dx:m,dy:_,dispatch:p}){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:a,enumerable:!0,configurable:!0},active:{value:c,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:d,enumerable:!0,configurable:!0},dx:{value:m,enumerable:!0,configurable:!0},dy:{value:_,enumerable:!0,configurable:!0},_:{value:p}})}y_.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Vj(e){return!e.ctrlKey&&!e.button}function Gj(){return this.parentNode}function Yj(e,t){return t??{x:e.x,y:e.y}}function Xj(){return navigator.maxTouchPoints||"ontouchstart"in this}function Jj(){var e=Vj,t=Gj,r=Yj,o=Xj,a={},c=nh("start","drag","end"),u=0,d,m,_,p,x=0;function v(I){I.on("mousedown.drag",b).filter(o).on("touchstart.drag",$).on("touchmove.drag",T,Hj).on("touchend.drag touchcancel.drag",F).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function b(I,U){if(!(p||!e.call(this,I,U))){var te=B(this,t.call(this,I,U),I,U,"mouse");te&&(Eo(I.view).on("mousemove.drag",S,pf).on("mouseup.drag",j,pf),ex(I.view),qh(I),_=!1,d=I.clientX,m=I.clientY,te("start",I))}}function S(I){if(Ku(I),!_){var U=I.clientX-d,te=I.clientY-m;_=U*U+te*te>x}a.mouse("drag",I)}function j(I){Eo(I.view).on("mousemove.drag mouseup.drag",null),tx(I.view,_),Ku(I),a.mouse("end",I)}function $(I,U){if(e.call(this,I,U)){var te=I.changedTouches,K=t.call(this,I,U),le=te.length,ce,pe;for(ce=0;ce<le;++ce)(pe=B(this,K,I,U,te[ce].identifier,te[ce]))&&(qh(I),pe("start",I,te[ce]))}}function T(I){var U=I.changedTouches,te=U.length,K,le;for(K=0;K<te;++K)(le=a[U[K].identifier])&&(Ku(I),le("drag",I,U[K]))}function F(I){var U=I.changedTouches,te=U.length,K,le;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),K=0;K<te;++K)(le=a[U[K].identifier])&&(qh(I),le("end",I,U[K]))}function B(I,U,te,K,le,ce){var pe=c.copy(),Re=Qo(ce||te,U),W,z,P;if((P=r.call(I,new y_("beforestart",{sourceEvent:te,target:v,identifier:le,active:u,x:Re[0],y:Re[1],dx:0,dy:0,dispatch:pe}),K))!=null)return W=P.x-Re[0]||0,z=P.y-Re[1]||0,function G(H,re,N){var L=Re,q;switch(H){case"start":a[le]=G,q=u++;break;case"end":delete a[le],--u;case"drag":Re=Qo(N||re,U),q=u;break}pe.call(H,I,new y_(H,{sourceEvent:re,subject:P,target:v,identifier:le,active:q,x:Re[0]+W,y:Re[1]+z,dx:Re[0]-L[0],dy:Re[1]-L[1],dispatch:pe}),K)}}return v.filter=function(I){return arguments.length?(e=typeof I=="function"?I:_m(!!I),v):e},v.container=function(I){return arguments.length?(t=typeof I=="function"?I:_m(I),v):t},v.subject=function(I){return arguments.length?(r=typeof I=="function"?I:_m(I),v):r},v.touchable=function(I){return arguments.length?(o=typeof I=="function"?I:_m(!!I),v):o},v.on=function(){var I=c.on.apply(c,arguments);return I===c?v:I},v.clickDistance=function(I){return arguments.length?(x=(I=+I)*I,v):Math.sqrt(x)},v}function Z_(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function nx(e,t){var r=Object.create(e.prototype);for(var o in t)r[o]=t[o];return r}function Tf(){}var gf=.7,Dm=1/gf,Zu="\\s*([+-]?\\d+)\\s*",yf="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ma="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kj=/^#([0-9a-f]{3,8})$/,Zj=new RegExp(`^rgb\\(${Zu},${Zu},${Zu}\\)$`),Qj=new RegExp(`^rgb\\(${Ma},${Ma},${Ma}\\)$`),eS=new RegExp(`^rgba\\(${Zu},${Zu},${Zu},${yf}\\)$`),tS=new RegExp(`^rgba\\(${Ma},${Ma},${Ma},${yf}\\)$`),nS=new RegExp(`^hsl\\(${yf},${Ma},${Ma}\\)$`),rS=new RegExp(`^hsla\\(${yf},${Ma},${Ma},${yf}\\)$`),ig={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};Z_(Tf,xf,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:og,formatHex:og,formatHex8:sS,formatHsl:iS,formatRgb:ag,toString:ag});function og(){return this.rgb().formatHex()}function sS(){return this.rgb().formatHex8()}function iS(){return rx(this).formatHsl()}function ag(){return this.rgb().formatRgb()}function xf(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=Kj.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?lg(t):r===3?new Oi(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?pm(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?pm(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=Zj.exec(e))?new Oi(t[1],t[2],t[3],1):(t=Qj.exec(e))?new Oi(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=eS.exec(e))?pm(t[1],t[2],t[3],t[4]):(t=tS.exec(e))?pm(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=nS.exec(e))?dg(t[1],t[2]/100,t[3]/100,1):(t=rS.exec(e))?dg(t[1],t[2]/100,t[3]/100,t[4]):ig.hasOwnProperty(e)?lg(ig[e]):e==="transparent"?new Oi(NaN,NaN,NaN,0):null}function lg(e){return new Oi(e>>16&255,e>>8&255,e&255,1)}function pm(e,t,r,o){return o<=0&&(e=t=r=NaN),new Oi(e,t,r,o)}function oS(e){return e instanceof Tf||(e=xf(e)),e?(e=e.rgb(),new Oi(e.r,e.g,e.b,e.opacity)):new Oi}function x_(e,t,r,o){return arguments.length===1?oS(e):new Oi(e,t,r,o??1)}function Oi(e,t,r,o){this.r=+e,this.g=+t,this.b=+r,this.opacity=+o}Z_(Oi,x_,nx(Tf,{brighter(e){return e=e==null?Dm:Math.pow(Dm,e),new Oi(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?gf:Math.pow(gf,e),new Oi(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Oi(Bc(this.r),Bc(this.g),Bc(this.b),Bm(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:cg,formatHex:cg,formatHex8:aS,formatRgb:ug,toString:ug}));function cg(){return`#${Ic(this.r)}${Ic(this.g)}${Ic(this.b)}`}function aS(){return`#${Ic(this.r)}${Ic(this.g)}${Ic(this.b)}${Ic((isNaN(this.opacity)?1:this.opacity)*255)}`}function ug(){const e=Bm(this.opacity);return`${e===1?"rgb(":"rgba("}${Bc(this.r)}, ${Bc(this.g)}, ${Bc(this.b)}${e===1?")":`, ${e})`}`}function Bm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Bc(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ic(e){return e=Bc(e),(e<16?"0":"")+e.toString(16)}function dg(e,t,r,o){return o<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new ea(e,t,r,o)}function rx(e){if(e instanceof ea)return new ea(e.h,e.s,e.l,e.opacity);if(e instanceof Tf||(e=xf(e)),!e)return new ea;if(e instanceof ea)return e;e=e.rgb();var t=e.r/255,r=e.g/255,o=e.b/255,a=Math.min(t,r,o),c=Math.max(t,r,o),u=NaN,d=c-a,m=(c+a)/2;return d?(t===c?u=(r-o)/d+(r<o)*6:r===c?u=(o-t)/d+2:u=(t-r)/d+4,d/=m<.5?c+a:2-c-a,u*=60):d=m>0&&m<1?0:u,new ea(u,d,m,e.opacity)}function lS(e,t,r,o){return arguments.length===1?rx(e):new ea(e,t,r,o??1)}function ea(e,t,r,o){this.h=+e,this.s=+t,this.l=+r,this.opacity=+o}Z_(ea,lS,nx(Tf,{brighter(e){return e=e==null?Dm:Math.pow(Dm,e),new ea(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?gf:Math.pow(gf,e),new ea(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,a=2*r-o;return new Oi(Hh(e>=240?e-240:e+120,a,o),Hh(e,a,o),Hh(e<120?e+240:e-120,a,o),this.opacity)},clamp(){return new ea(fg(this.h),gm(this.s),gm(this.l),Bm(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=Bm(this.opacity);return`${e===1?"hsl(":"hsla("}${fg(this.h)}, ${gm(this.s)*100}%, ${gm(this.l)*100}%${e===1?")":`, ${e})`}`}}));function fg(e){return e=(e||0)%360,e<0?e+360:e}function gm(e){return Math.max(0,Math.min(1,e||0))}function Hh(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 sx=e=>()=>e;function cS(e,t){return function(r){return e+r*t}}function uS(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 dS(e){return(e=+e)==1?ix:function(t,r){return r-t?uS(t,r,e):sx(isNaN(t)?r:t)}}function ix(e,t){var r=t-e;return r?cS(e,r):sx(isNaN(e)?t:e)}const mg=(function e(t){var r=dS(t);function o(a,c){var u=r((a=x_(a)).r,(c=x_(c)).r),d=r(a.g,c.g),m=r(a.b,c.b),_=ix(a.opacity,c.opacity);return function(p){return a.r=u(p),a.g=d(p),a.b=m(p),a.opacity=_(p),a+""}}return o.gamma=e,o})(1);function Ql(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var v_=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Vh=new RegExp(v_.source,"g");function fS(e){return function(){return e}}function mS(e){return function(t){return e(t)+""}}function hS(e,t){var r=v_.lastIndex=Vh.lastIndex=0,o,a,c,u=-1,d=[],m=[];for(e=e+"",t=t+"";(o=v_.exec(e))&&(a=Vh.exec(t));)(c=a.index)>r&&(c=t.slice(r,c),d[u]?d[u]+=c:d[++u]=c),(o=o[0])===(a=a[0])?d[u]?d[u]+=a:d[++u]=a:(d[++u]=null,m.push({i:u,x:Ql(o,a)})),r=Vh.lastIndex;return r<t.length&&(c=t.slice(r),d[u]?d[u]+=c:d[++u]=c),d.length<2?m[0]?mS(m[0].x):fS(t):(t=m.length,function(_){for(var p=0,x;p<t;++p)d[(x=m[p]).i]=x.x(_);return d.join("")})}var hg=180/Math.PI,w_={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ox(e,t,r,o,a,c){var u,d,m;return(u=Math.sqrt(e*e+t*t))&&(e/=u,t/=u),(m=e*r+t*o)&&(r-=e*m,o-=t*m),(d=Math.sqrt(r*r+o*o))&&(r/=d,o/=d,m/=d),e*o<t*r&&(e=-e,t=-t,m=-m,u=-u),{translateX:a,translateY:c,rotate:Math.atan2(t,e)*hg,skewX:Math.atan(m)*hg,scaleX:u,scaleY:d}}var ym;function _S(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?w_:ox(t.a,t.b,t.c,t.d,t.e,t.f)}function pS(e){return e==null||(ym||(ym=document.createElementNS("http://www.w3.org/2000/svg","g")),ym.setAttribute("transform",e),!(e=ym.transform.baseVal.consolidate()))?w_:(e=e.matrix,ox(e.a,e.b,e.c,e.d,e.e,e.f))}function ax(e,t,r,o){function a(_){return _.length?_.pop()+" ":""}function c(_,p,x,v,b,S){if(_!==x||p!==v){var j=b.push("translate(",null,t,null,r);S.push({i:j-4,x:Ql(_,x)},{i:j-2,x:Ql(p,v)})}else(x||v)&&b.push("translate("+x+t+v+r)}function u(_,p,x,v){_!==p?(_-p>180?p+=360:p-_>180&&(_+=360),v.push({i:x.push(a(x)+"rotate(",null,o)-2,x:Ql(_,p)})):p&&x.push(a(x)+"rotate("+p+o)}function d(_,p,x,v){_!==p?v.push({i:x.push(a(x)+"skewX(",null,o)-2,x:Ql(_,p)}):p&&x.push(a(x)+"skewX("+p+o)}function m(_,p,x,v,b,S){if(_!==x||p!==v){var j=b.push(a(b)+"scale(",null,",",null,")");S.push({i:j-4,x:Ql(_,x)},{i:j-2,x:Ql(p,v)})}else(x!==1||v!==1)&&b.push(a(b)+"scale("+x+","+v+")")}return function(_,p){var x=[],v=[];return _=e(_),p=e(p),c(_.translateX,_.translateY,p.translateX,p.translateY,x,v),u(_.rotate,p.rotate,x,v),d(_.skewX,p.skewX,x,v),m(_.scaleX,_.scaleY,p.scaleX,p.scaleY,x,v),_=p=null,function(b){for(var S=-1,j=v.length,$;++S<j;)x[($=v[S]).i]=$.x(b);return x.join("")}}}var gS=ax(_S,"px, ","px)","deg)"),yS=ax(pS,", ",")",")"),xS=1e-12;function _g(e){return((e=Math.exp(e))+1/e)/2}function vS(e){return((e=Math.exp(e))-1/e)/2}function wS(e){return((e=Math.exp(2*e))-1)/(e+1)}const bS=(function e(t,r,o){function a(c,u){var d=c[0],m=c[1],_=c[2],p=u[0],x=u[1],v=u[2],b=p-d,S=x-m,j=b*b+S*S,$,T;if(j<xS)T=Math.log(v/_)/t,$=function(K){return[d+K*b,m+K*S,_*Math.exp(t*K*T)]};else{var F=Math.sqrt(j),B=(v*v-_*_+o*j)/(2*_*r*F),I=(v*v-_*_-o*j)/(2*v*r*F),U=Math.log(Math.sqrt(B*B+1)-B),te=Math.log(Math.sqrt(I*I+1)-I);T=(te-U)/t,$=function(K){var le=K*T,ce=_g(U),pe=_/(r*F)*(ce*wS(t*le+U)-vS(U));return[d+pe*b,m+pe*S,_*ce/_g(t*le+U)]}}return $.duration=T*1e3*t/Math.SQRT2,$}return a.rho=function(c){var u=Math.max(.001,+c),d=u*u,m=d*d;return e(u,d,m)},a})(Math.SQRT2,2,4);var id=0,df=0,ef=0,lx=1e3,Um,ff,Wm=0,qc=0,sh=0,vf=typeof performance=="object"&&performance.now?performance:Date,cx=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Q_(){return qc||(cx(jS),qc=vf.now()+sh)}function jS(){qc=0}function qm(){this._call=this._time=this._next=null}qm.prototype=ux.prototype={constructor:qm,restart:function(e,t,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?Q_():+r)+(t==null?0:+t),!this._next&&ff!==this&&(ff?ff._next=this:Um=this,ff=this),this._call=e,this._time=r,b_()},stop:function(){this._call&&(this._call=null,this._time=1/0,b_())}};function ux(e,t,r){var o=new qm;return o.restart(e,t,r),o}function SS(){Q_(),++id;for(var e=Um,t;e;)(t=qc-e._time)>=0&&e._call.call(void 0,t),e=e._next;--id}function pg(){qc=(Wm=vf.now())+sh,id=df=0;try{SS()}finally{id=0,NS(),qc=0}}function kS(){var e=vf.now(),t=e-Wm;t>lx&&(sh-=t,Wm=e)}function NS(){for(var e,t=Um,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:Um=r);ff=e,b_(o)}function b_(e){if(!id){df&&(df=clearTimeout(df));var t=e-qc;t>24?(e<1/0&&(df=setTimeout(pg,e-vf.now()-sh)),ef&&(ef=clearInterval(ef))):(ef||(Wm=vf.now(),ef=setInterval(kS,lx)),id=1,cx(pg))}}function gg(e,t,r){var o=new qm;return t=t==null?0:+t,o.restart(a=>{o.stop(),e(a+t)},t,r),o}var CS=nh("start","end","cancel","interrupt"),ES=[],dx=0,yg=1,j_=2,zm=3,xg=4,S_=5,Rm=6;function ih(e,t,r,o,a,c){var u=e.__transition;if(!u)e.__transition={};else if(r in u)return;$S(e,r,{name:t,index:o,group:a,on:CS,tween:ES,time:c.time,delay:c.delay,duration:c.duration,ease:c.ease,timer:null,state:dx})}function ep(e,t){var r=ra(e,t);if(r.state>dx)throw new Error("too late; already scheduled");return r}function Ta(e,t){var r=ra(e,t);if(r.state>zm)throw new Error("too late; already running");return r}function ra(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function $S(e,t,r){var o=e.__transition,a;o[t]=r,r.timer=ux(c,0,r.time);function c(_){r.state=yg,r.timer.restart(u,r.delay,r.time),r.delay<=_&&u(_-r.delay)}function u(_){var p,x,v,b;if(r.state!==yg)return m();for(p in o)if(b=o[p],b.name===r.name){if(b.state===zm)return gg(u);b.state===xg?(b.state=Rm,b.timer.stop(),b.on.call("interrupt",e,e.__data__,b.index,b.group),delete o[p]):+p<t&&(b.state=Rm,b.timer.stop(),b.on.call("cancel",e,e.__data__,b.index,b.group),delete o[p])}if(gg(function(){r.state===zm&&(r.state=xg,r.timer.restart(d,r.delay,r.time),d(_))}),r.state=j_,r.on.call("start",e,e.__data__,r.index,r.group),r.state===j_){for(r.state=zm,a=new Array(v=r.tween.length),p=0,x=-1;p<v;++p)(b=r.tween[p].value.call(e,e.__data__,r.index,r.group))&&(a[++x]=b);a.length=x+1}}function d(_){for(var p=_<r.duration?r.ease.call(null,_/r.duration):(r.timer.restart(m),r.state=S_,1),x=-1,v=a.length;++x<v;)a[x].call(e,p);r.state===S_&&(r.on.call("end",e,e.__data__,r.index,r.group),m())}function m(){r.state=Rm,r.timer.stop(),delete o[t];for(var _ in o)return;delete e.__transition}}function Lm(e,t){var r=e.__transition,o,a,c=!0,u;if(r){t=t==null?null:t+"";for(u in r){if((o=r[u]).name!==t){c=!1;continue}a=o.state>j_&&o.state<S_,o.state=Rm,o.timer.stop(),o.on.call(a?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete r[u]}c&&delete e.__transition}}function AS(e){return this.each(function(){Lm(this,e)})}function MS(e,t){var r,o;return function(){var a=Ta(this,e),c=a.tween;if(c!==r){o=r=c;for(var u=0,d=o.length;u<d;++u)if(o[u].name===t){o=o.slice(),o.splice(u,1);break}}a.tween=o}}function TS(e,t,r){var o,a;if(typeof r!="function")throw new Error;return function(){var c=Ta(this,e),u=c.tween;if(u!==o){a=(o=u).slice();for(var d={name:t,value:r},m=0,_=a.length;m<_;++m)if(a[m].name===t){a[m]=d;break}m===_&&a.push(d)}c.tween=a}}function zS(e,t){var r=this._id;if(e+="",arguments.length<2){for(var o=ra(this.node(),r).tween,a=0,c=o.length,u;a<c;++a)if((u=o[a]).name===e)return u.value;return null}return this.each((t==null?MS:TS)(r,e,t))}function tp(e,t,r){var o=e._id;return e.each(function(){var a=Ta(this,o);(a.value||(a.value={}))[t]=r.apply(this,arguments)}),function(a){return ra(a,o).value[t]}}function fx(e,t){var r;return(typeof t=="number"?Ql:t instanceof xf?mg:(r=xf(t))?(t=r,mg):hS)(e,t)}function RS(e){return function(){this.removeAttribute(e)}}function LS(e){return function(){this.removeAttributeNS(e.space,e.local)}}function PS(e,t,r){var o,a=r+"",c;return function(){var u=this.getAttribute(e);return u===a?null:u===o?c:c=t(o=u,r)}}function OS(e,t,r){var o,a=r+"",c;return function(){var u=this.getAttributeNS(e.space,e.local);return u===a?null:u===o?c:c=t(o=u,r)}}function IS(e,t,r){var o,a,c;return function(){var u,d=r(this),m;return d==null?void this.removeAttribute(e):(u=this.getAttribute(e),m=d+"",u===m?null:u===o&&m===a?c:(a=m,c=t(o=u,d)))}}function FS(e,t,r){var o,a,c;return function(){var u,d=r(this),m;return d==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),m=d+"",u===m?null:u===o&&m===a?c:(a=m,c=t(o=u,d)))}}function DS(e,t){var r=rh(e),o=r==="transform"?yS:fx;return this.attrTween(e,typeof t=="function"?(r.local?FS:IS)(r,o,tp(this,"attr."+e,t)):t==null?(r.local?LS:RS)(r):(r.local?OS:PS)(r,o,t))}function BS(e,t){return function(r){this.setAttribute(e,t.call(this,r))}}function US(e,t){return function(r){this.setAttributeNS(e.space,e.local,t.call(this,r))}}function WS(e,t){var r,o;function a(){var c=t.apply(this,arguments);return c!==o&&(r=(o=c)&&US(e,c)),r}return a._value=t,a}function qS(e,t){var r,o;function a(){var c=t.apply(this,arguments);return c!==o&&(r=(o=c)&&BS(e,c)),r}return a._value=t,a}function HS(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=rh(e);return this.tween(r,(o.local?WS:qS)(o,t))}function VS(e,t){return function(){ep(this,e).delay=+t.apply(this,arguments)}}function GS(e,t){return t=+t,function(){ep(this,e).delay=t}}function YS(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?VS:GS)(t,e)):ra(this.node(),t).delay}function XS(e,t){return function(){Ta(this,e).duration=+t.apply(this,arguments)}}function JS(e,t){return t=+t,function(){Ta(this,e).duration=t}}function KS(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?XS:JS)(t,e)):ra(this.node(),t).duration}function ZS(e,t){if(typeof t!="function")throw new Error;return function(){Ta(this,e).ease=t}}function QS(e){var t=this._id;return arguments.length?this.each(ZS(t,e)):ra(this.node(),t).ease}function ek(e,t){return function(){var r=t.apply(this,arguments);if(typeof r!="function")throw new Error;Ta(this,e).ease=r}}function tk(e){if(typeof e!="function")throw new Error;return this.each(ek(this._id,e))}function nk(e){typeof e!="function"&&(e=qy(e));for(var t=this._groups,r=t.length,o=new Array(r),a=0;a<r;++a)for(var c=t[a],u=c.length,d=o[a]=[],m,_=0;_<u;++_)(m=c[_])&&e.call(m,m.__data__,_,c)&&d.push(m);return new dl(o,this._parents,this._name,this._id)}function rk(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,r=e._groups,o=t.length,a=r.length,c=Math.min(o,a),u=new Array(o),d=0;d<c;++d)for(var m=t[d],_=r[d],p=m.length,x=u[d]=new Array(p),v,b=0;b<p;++b)(v=m[b]||_[b])&&(x[b]=v);for(;d<o;++d)u[d]=t[d];return new dl(u,this._parents,this._name,this._id)}function sk(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 ik(e,t,r){var o,a,c=sk(t)?ep:Ta;return function(){var u=c(this,e),d=u.on;d!==o&&(a=(o=d).copy()).on(t,r),u.on=a}}function ok(e,t){var r=this._id;return arguments.length<2?ra(this.node(),r).on.on(e):this.each(ik(r,e,t))}function ak(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}function lk(){return this.on("end.remove",ak(this._id))}function ck(e){var t=this._name,r=this._id;typeof e!="function"&&(e=J_(e));for(var o=this._groups,a=o.length,c=new Array(a),u=0;u<a;++u)for(var d=o[u],m=d.length,_=c[u]=new Array(m),p,x,v=0;v<m;++v)(p=d[v])&&(x=e.call(p,p.__data__,v,d))&&("__data__"in p&&(x.__data__=p.__data__),_[v]=x,ih(_[v],t,r,v,_,ra(p,r)));return new dl(c,this._parents,t,r)}function uk(e){var t=this._name,r=this._id;typeof e!="function"&&(e=Wy(e));for(var o=this._groups,a=o.length,c=[],u=[],d=0;d<a;++d)for(var m=o[d],_=m.length,p,x=0;x<_;++x)if(p=m[x]){for(var v=e.call(p,p.__data__,x,m),b,S=ra(p,r),j=0,$=v.length;j<$;++j)(b=v[j])&&ih(b,t,r,j,v,S);c.push(v),u.push(p)}return new dl(c,u,t,r)}var dk=Mf.prototype.constructor;function fk(){return new dk(this._groups,this._parents)}function mk(e,t){var r,o,a;return function(){var c=sd(this,e),u=(this.style.removeProperty(e),sd(this,e));return c===u?null:c===r&&u===o?a:a=t(r=c,o=u)}}function mx(e){return function(){this.style.removeProperty(e)}}function hk(e,t,r){var o,a=r+"",c;return function(){var u=sd(this,e);return u===a?null:u===o?c:c=t(o=u,r)}}function _k(e,t,r){var o,a,c;return function(){var u=sd(this,e),d=r(this),m=d+"";return d==null&&(m=d=(this.style.removeProperty(e),sd(this,e))),u===m?null:u===o&&m===a?c:(a=m,c=t(o=u,d))}}function pk(e,t){var r,o,a,c="style."+t,u="end."+c,d;return function(){var m=Ta(this,e),_=m.on,p=m.value[c]==null?d||(d=mx(t)):void 0;(_!==r||a!==p)&&(o=(r=_).copy()).on(u,a=p),m.on=o}}function gk(e,t,r){var o=(e+="")=="transform"?gS:fx;return t==null?this.styleTween(e,mk(e,o)).on("end.style."+e,mx(e)):typeof t=="function"?this.styleTween(e,_k(e,o,tp(this,"style."+e,t))).each(pk(this._id,e)):this.styleTween(e,hk(e,o,t),r).on("end.style."+e,null)}function yk(e,t,r){return function(o){this.style.setProperty(e,t.call(this,o),r)}}function xk(e,t,r){var o,a;function c(){var u=t.apply(this,arguments);return u!==a&&(o=(a=u)&&yk(e,u,r)),o}return c._value=t,c}function vk(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,xk(e,t,r??""))}function wk(e){return function(){this.textContent=e}}function bk(e){return function(){var t=e(this);this.textContent=t??""}}function jk(e){return this.tween("text",typeof e=="function"?bk(tp(this,"text",e)):wk(e==null?"":e+""))}function Sk(e){return function(t){this.textContent=e.call(this,t)}}function kk(e){var t,r;function o(){var a=e.apply(this,arguments);return a!==r&&(t=(r=a)&&Sk(a)),t}return o._value=e,o}function Nk(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,kk(e))}function Ck(){for(var e=this._name,t=this._id,r=hx(),o=this._groups,a=o.length,c=0;c<a;++c)for(var u=o[c],d=u.length,m,_=0;_<d;++_)if(m=u[_]){var p=ra(m,t);ih(m,e,r,_,u,{time:p.time+p.delay+p.duration,delay:0,duration:p.duration,ease:p.ease})}return new dl(o,this._parents,e,r)}function Ek(){var e,t,r=this,o=r._id,a=r.size();return new Promise(function(c,u){var d={value:u},m={value:function(){--a===0&&c()}};r.each(function(){var _=Ta(this,o),p=_.on;p!==e&&(t=(e=p).copy(),t._.cancel.push(d),t._.interrupt.push(d),t._.end.push(m)),_.on=t}),a===0&&c()})}var $k=0;function dl(e,t,r,o){this._groups=e,this._parents=t,this._name=r,this._id=o}function hx(){return++$k}var ol=Mf.prototype;dl.prototype={constructor:dl,select:ck,selectAll:uk,selectChild:ol.selectChild,selectChildren:ol.selectChildren,filter:nk,merge:rk,selection:fk,transition:Ck,call:ol.call,nodes:ol.nodes,node:ol.node,size:ol.size,empty:ol.empty,each:ol.each,on:ok,attr:DS,attrTween:HS,style:gk,styleTween:vk,text:jk,textTween:Nk,remove:lk,tween:zS,delay:YS,duration:KS,ease:QS,easeVarying:tk,end:Ek,[Symbol.iterator]:ol[Symbol.iterator]};function Ak(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Mk={time:null,delay:0,duration:250,ease:Ak};function Tk(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 zk(e){var t,r;e instanceof dl?(t=e._id,e=e._name):(t=hx(),(r=Mk).time=Q_(),e=e==null?null:e+"");for(var o=this._groups,a=o.length,c=0;c<a;++c)for(var u=o[c],d=u.length,m,_=0;_<d;++_)(m=u[_])&&ih(m,e,t,_,u,r||Tk(m,t));return new dl(o,this._parents,e,t)}Mf.prototype.interrupt=AS;Mf.prototype.transition=zk;const xm=e=>()=>e;function Rk(e,{sourceEvent:t,target:r,transform:o,dispatch:a}){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:a}})}function ll(e,t,r){this.k=e,this.x=t,this.y=r}ll.prototype={constructor:ll,scale:function(e){return e===1?this:new ll(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new ll(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 cl=new ll(1,0,0);ll.prototype;function Gh(e){e.stopImmediatePropagation()}function tf(e){e.preventDefault(),e.stopImmediatePropagation()}function Lk(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Pk(){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 vg(){return this.__zoom||cl}function Ok(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ik(){return navigator.maxTouchPoints||"ontouchstart"in this}function Fk(e,t,r){var o=e.invertX(t[0][0])-r[0][0],a=e.invertX(t[1][0])-r[1][0],c=e.invertY(t[0][1])-r[0][1],u=e.invertY(t[1][1])-r[1][1];return e.translate(a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a),u>c?(c+u)/2:Math.min(0,c)||Math.max(0,u))}function _x(){var e=Lk,t=Pk,r=Fk,o=Ok,a=Ik,c=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],d=250,m=bS,_=nh("start","zoom","end"),p,x,v,b=500,S=150,j=0,$=10;function T(P){P.property("__zoom",vg).on("wheel.zoom",le,{passive:!1}).on("mousedown.zoom",ce).on("dblclick.zoom",pe).filter(a).on("touchstart.zoom",Re).on("touchmove.zoom",W).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}T.transform=function(P,G,H,re){var N=P.selection?P.selection():P;N.property("__zoom",vg),P!==N?U(P,G,H,re):N.interrupt().each(function(){te(this,arguments).event(re).start().zoom(null,typeof G=="function"?G.apply(this,arguments):G).end()})},T.scaleBy=function(P,G,H,re){T.scaleTo(P,function(){var N=this.__zoom.k,L=typeof G=="function"?G.apply(this,arguments):G;return N*L},H,re)},T.scaleTo=function(P,G,H,re){T.transform(P,function(){var N=t.apply(this,arguments),L=this.__zoom,q=H==null?I(N):typeof H=="function"?H.apply(this,arguments):H,C=L.invert(q),X=typeof G=="function"?G.apply(this,arguments):G;return r(B(F(L,X),q,C),N,u)},H,re)},T.translateBy=function(P,G,H,re){T.transform(P,function(){return r(this.__zoom.translate(typeof G=="function"?G.apply(this,arguments):G,typeof H=="function"?H.apply(this,arguments):H),t.apply(this,arguments),u)},null,re)},T.translateTo=function(P,G,H,re,N){T.transform(P,function(){var L=t.apply(this,arguments),q=this.__zoom,C=re==null?I(L):typeof re=="function"?re.apply(this,arguments):re;return r(cl.translate(C[0],C[1]).scale(q.k).translate(typeof G=="function"?-G.apply(this,arguments):-G,typeof H=="function"?-H.apply(this,arguments):-H),L,u)},re,N)};function F(P,G){return G=Math.max(c[0],Math.min(c[1],G)),G===P.k?P:new ll(G,P.x,P.y)}function B(P,G,H){var re=G[0]-H[0]*P.k,N=G[1]-H[1]*P.k;return re===P.x&&N===P.y?P:new ll(P.k,re,N)}function I(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function U(P,G,H,re){P.on("start.zoom",function(){te(this,arguments).event(re).start()}).on("interrupt.zoom end.zoom",function(){te(this,arguments).event(re).end()}).tween("zoom",function(){var N=this,L=arguments,q=te(N,L).event(re),C=t.apply(N,L),X=H==null?I(C):typeof H=="function"?H.apply(N,L):H,se=Math.max(C[1][0]-C[0][0],C[1][1]-C[0][1]),ie=N.__zoom,ye=typeof G=="function"?G.apply(N,L):G,Le=m(ie.invert(X).concat(se/ie.k),ye.invert(X).concat(se/ye.k));return function(Me){if(Me===1)Me=ye;else{var De=Le(Me),We=se/De[2];Me=new ll(We,X[0]-De[0]*We,X[1]-De[1]*We)}q.zoom(null,Me)}})}function te(P,G,H){return!H&&P.__zooming||new K(P,G)}function K(P,G){this.that=P,this.args=G,this.active=0,this.sourceEvent=null,this.extent=t.apply(P,G),this.taps=0}K.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,G){return this.mouse&&P!=="mouse"&&(this.mouse[1]=G.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=G.invert(this.touch0[0])),this.touch1&&P!=="touch"&&(this.touch1[1]=G.invert(this.touch1[0])),this.that.__zoom=G,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(P){var G=Eo(this.that).datum();_.call(P,this.that,new Rk(P,{sourceEvent:this.sourceEvent,target:T,transform:this.that.__zoom,dispatch:_}),G)}};function le(P,...G){if(!e.apply(this,arguments))return;var H=te(this,G).event(P),re=this.__zoom,N=Math.max(c[0],Math.min(c[1],re.k*Math.pow(2,o.apply(this,arguments)))),L=Qo(P);if(H.wheel)(H.mouse[0][0]!==L[0]||H.mouse[0][1]!==L[1])&&(H.mouse[1]=re.invert(H.mouse[0]=L)),clearTimeout(H.wheel);else{if(re.k===N)return;H.mouse=[L,re.invert(L)],Lm(this),H.start()}tf(P),H.wheel=setTimeout(q,S),H.zoom("mouse",r(B(F(re,N),H.mouse[0],H.mouse[1]),H.extent,u));function q(){H.wheel=null,H.end()}}function ce(P,...G){if(v||!e.apply(this,arguments))return;var H=P.currentTarget,re=te(this,G,!0).event(P),N=Eo(P.view).on("mousemove.zoom",X,!0).on("mouseup.zoom",se,!0),L=Qo(P,H),q=P.clientX,C=P.clientY;ex(P.view),Gh(P),re.mouse=[L,this.__zoom.invert(L)],Lm(this),re.start();function X(ie){if(tf(ie),!re.moved){var ye=ie.clientX-q,Le=ie.clientY-C;re.moved=ye*ye+Le*Le>j}re.event(ie).zoom("mouse",r(B(re.that.__zoom,re.mouse[0]=Qo(ie,H),re.mouse[1]),re.extent,u))}function se(ie){N.on("mousemove.zoom mouseup.zoom",null),tx(ie.view,re.moved),tf(ie),re.event(ie).end()}}function pe(P,...G){if(e.apply(this,arguments)){var H=this.__zoom,re=Qo(P.changedTouches?P.changedTouches[0]:P,this),N=H.invert(re),L=H.k*(P.shiftKey?.5:2),q=r(B(F(H,L),re,N),t.apply(this,G),u);tf(P),d>0?Eo(this).transition().duration(d).call(U,q,re,P):Eo(this).call(T.transform,q,re,P)}}function Re(P,...G){if(e.apply(this,arguments)){var H=P.touches,re=H.length,N=te(this,G,P.changedTouches.length===re).event(P),L,q,C,X;for(Gh(P),q=0;q<re;++q)C=H[q],X=Qo(C,this),X=[X,this.__zoom.invert(X),C.identifier],N.touch0?!N.touch1&&N.touch0[2]!==X[2]&&(N.touch1=X,N.taps=0):(N.touch0=X,L=!0,N.taps=1+!!p);p&&(p=clearTimeout(p)),L&&(N.taps<2&&(x=X[0],p=setTimeout(function(){p=null},b)),Lm(this),N.start())}}function W(P,...G){if(this.__zooming){var H=te(this,G).event(P),re=P.changedTouches,N=re.length,L,q,C,X;for(tf(P),L=0;L<N;++L)q=re[L],C=Qo(q,this),H.touch0&&H.touch0[2]===q.identifier?H.touch0[0]=C:H.touch1&&H.touch1[2]===q.identifier&&(H.touch1[0]=C);if(q=H.that.__zoom,H.touch1){var se=H.touch0[0],ie=H.touch0[1],ye=H.touch1[0],Le=H.touch1[1],Me=(Me=ye[0]-se[0])*Me+(Me=ye[1]-se[1])*Me,De=(De=Le[0]-ie[0])*De+(De=Le[1]-ie[1])*De;q=F(q,Math.sqrt(Me/De)),C=[(se[0]+ye[0])/2,(se[1]+ye[1])/2],X=[(ie[0]+Le[0])/2,(ie[1]+Le[1])/2]}else if(H.touch0)C=H.touch0[0],X=H.touch0[1];else return;H.zoom("touch",r(B(q,C,X),H.extent,u))}}function z(P,...G){if(this.__zooming){var H=te(this,G).event(P),re=P.changedTouches,N=re.length,L,q;for(Gh(P),v&&clearTimeout(v),v=setTimeout(function(){v=null},b),L=0;L<N;++L)q=re[L],H.touch0&&H.touch0[2]===q.identifier?delete H.touch0:H.touch1&&H.touch1[2]===q.identifier&&delete H.touch1;if(H.touch1&&!H.touch0&&(H.touch0=H.touch1,delete H.touch1),H.touch0)H.touch0[1]=this.__zoom.invert(H.touch0[0]);else if(H.end(),H.taps===2&&(q=Qo(q,this),Math.hypot(x[0]-q[0],x[1]-q[1])<$)){var C=Eo(this).on("dblclick.zoom");C&&C.apply(this,arguments)}}}return T.wheelDelta=function(P){return arguments.length?(o=typeof P=="function"?P:xm(+P),T):o},T.filter=function(P){return arguments.length?(e=typeof P=="function"?P:xm(!!P),T):e},T.touchable=function(P){return arguments.length?(a=typeof P=="function"?P:xm(!!P),T):a},T.extent=function(P){return arguments.length?(t=typeof P=="function"?P:xm([[+P[0][0],+P[0][1]],[+P[1][0],+P[1][1]]]),T):t},T.scaleExtent=function(P){return arguments.length?(c[0]=+P[0],c[1]=+P[1],T):[c[0],c[1]]},T.translateExtent=function(P){return arguments.length?(u[0][0]=+P[0][0],u[1][0]=+P[1][0],u[0][1]=+P[0][1],u[1][1]=+P[1][1],T):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},T.constrain=function(P){return arguments.length?(r=P,T):r},T.duration=function(P){return arguments.length?(d=+P,T):d},T.interpolate=function(P){return arguments.length?(m=P,T):m},T.on=function(){var P=_.on.apply(_,arguments);return P===_?T:P},T.clickDistance=function(P){return arguments.length?(j=(P=+P)*P,T):Math.sqrt(j)},T.tapDistance=function(P){return arguments.length?($=+P,T):$},T}const oh=h.createContext(null),Dk=oh.Provider,fl={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.`},px=fl.error001();function ur(e,t){const r=h.useContext(oh);if(r===null)throw new Error(px);return By(r,e,t)}const _s=()=>{const e=h.useContext(oh);if(e===null)throw new Error(px);return h.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},Bk=e=>e.userSelectionActive?"none":"all";function wf({position:e,children:t,className:r,style:o,...a}){const c=ur(Bk),u=`${e}`.split("-");return Ae.createElement("div",{className:Fs(["react-flow__panel",r,...u]),style:{...o,pointerEvents:c},...a},t)}function Uk({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:Ae.createElement(wf,{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"},Ae.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const Wk=({x:e,y:t,label:r,labelStyle:o={},labelShowBg:a=!0,labelBgStyle:c={},labelBgPadding:u=[2,4],labelBgBorderRadius:d=2,children:m,className:_,...p})=>{const x=h.useRef(null),[v,b]=h.useState({x:0,y:0,width:0,height:0}),S=Fs(["react-flow__edge-textwrapper",_]);return h.useEffect(()=>{if(x.current){const j=x.current.getBBox();b({x:j.x,y:j.y,width:j.width,height:j.height})}},[r]),typeof r>"u"||!r?null:Ae.createElement("g",{transform:`translate(${e-v.width/2} ${t-v.height/2})`,className:S,visibility:v.width?"visible":"hidden",...p},a&&Ae.createElement("rect",{width:v.width+2*u[0],x:-u[0],y:-u[1],height:v.height+2*u[1],className:"react-flow__edge-textbg",style:c,rx:d,ry:d}),Ae.createElement("text",{className:"react-flow__edge-text",y:v.height/2,dy:"0.3em",ref:x,style:o},r),m)};var qk=h.memo(Wk);const np=e=>({width:e.offsetWidth,height:e.offsetHeight}),od=(e,t=0,r=1)=>Math.min(Math.max(e,t),r),rp=(e={x:0,y:0},t)=>({x:od(e.x,t[0][0],t[1][0]),y:od(e.y,t[0][1],t[1][1])}),wg=(e,t,r)=>e<t?od(Math.abs(e-t),1,50)/50:e>r?-od(Math.abs(e-r),1,50)/50:0,gx=(e,t)=>{const r=wg(e.x,35,t.width-35)*20,o=wg(e.y,35,t.height-35)*20;return[r,o]},yx=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},xx=(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)}),bf=({x:e,y:t,width:r,height:o})=>({x:e,y:t,x2:e+r,y2:t+o}),vx=({x:e,y:t,x2:r,y2:o})=>({x:e,y:t,width:r-e,height:o-t}),bg=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Hk=(e,t)=>vx(xx(bf(e),bf(t))),k_=(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)},Vk=e=>$o(e.width)&&$o(e.height)&&$o(e.x)&&$o(e.y),$o=e=>!isNaN(e)&&isFinite(e),ns=Symbol.for("internals"),wx=["Enter"," ","Escape"],Gk=(e,t)=>{},Yk=e=>"nativeEvent"in e;function N_(e){var a,c;const t=Yk(e)?e.nativeEvent:e,r=((c=(a=t.composedPath)==null?void 0:a.call(t))==null?void 0:c[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 bx=e=>"clientX"in e,sc=(e,t)=>{var c,u;const r=bx(e),o=r?e.clientX:(c=e.touches)==null?void 0:c[0].clientX,a=r?e.clientY:(u=e.touches)==null?void 0:u[0].clientY;return{x:o-((t==null?void 0:t.left)??0),y:a-((t==null?void 0:t.top)??0)}},Hm=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},zf=({id:e,path:t,labelX:r,labelY:o,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_,style:p,markerEnd:x,markerStart:v,interactionWidth:b=20})=>Ae.createElement(Ae.Fragment,null,Ae.createElement("path",{id:e,style:p,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:x,markerStart:v}),b&&Ae.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:b,className:"react-flow__edge-interaction"}),a&&$o(r)&&$o(o)?Ae.createElement(qk,{x:r,y:o,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_}):null);zf.displayName="BaseEdge";function nf(e,t,r){return r===void 0?r:o=>{const a=t().edges.find(c=>c.id===e);a&&r(o,{...a})}}function jx({sourceX:e,sourceY:t,targetX:r,targetY:o}){const a=Math.abs(r-e)/2,c=r<e?r+a:r-a,u=Math.abs(o-t)/2,d=o<t?o+u:o-u;return[c,d,a,u]}function Sx({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:u,targetControlY:d}){const m=e*.125+a*.375+u*.375+r*.125,_=t*.125+c*.375+d*.375+o*.125,p=Math.abs(m-e),x=Math.abs(_-t);return[m,_,p,x]}var Hc;(function(e){e.Strict="strict",e.Loose="loose"})(Hc||(Hc={}));var Fc;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Fc||(Fc={}));var jf;(function(e){e.Partial="partial",e.Full="full"})(jf||(jf={}));var tc;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(tc||(tc={}));var Sf;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Sf||(Sf={}));var It;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(It||(It={}));function jg({pos:e,x1:t,y1:r,x2:o,y2:a}){return e===It.Left||e===It.Right?[.5*(t+o),r]:[t,.5*(r+a)]}function kx({sourceX:e,sourceY:t,sourcePosition:r=It.Bottom,targetX:o,targetY:a,targetPosition:c=It.Top}){const[u,d]=jg({pos:r,x1:e,y1:t,x2:o,y2:a}),[m,_]=jg({pos:c,x1:o,y1:a,x2:e,y2:t}),[p,x,v,b]=Sx({sourceX:e,sourceY:t,targetX:o,targetY:a,sourceControlX:u,sourceControlY:d,targetControlX:m,targetControlY:_});return[`M${e},${t} C${u},${d} ${m},${_} ${o},${a}`,p,x,v,b]}const sp=h.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:a=It.Bottom,targetPosition:c=It.Top,label:u,labelStyle:d,labelShowBg:m,labelBgStyle:_,labelBgPadding:p,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:j})=>{const[$,T,F]=kx({sourceX:e,sourceY:t,sourcePosition:a,targetX:r,targetY:o,targetPosition:c});return Ae.createElement(zf,{path:$,labelX:T,labelY:F,label:u,labelStyle:d,labelShowBg:m,labelBgStyle:_,labelBgPadding:p,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:j})});sp.displayName="SimpleBezierEdge";const Sg={[It.Left]:{x:-1,y:0},[It.Right]:{x:1,y:0},[It.Top]:{x:0,y:-1},[It.Bottom]:{x:0,y:1}},Xk=({source:e,sourcePosition:t=It.Bottom,target:r})=>t===It.Left||t===It.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},kg=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Jk({source:e,sourcePosition:t=It.Bottom,target:r,targetPosition:o=It.Top,center:a,offset:c}){const u=Sg[t],d=Sg[o],m={x:e.x+u.x*c,y:e.y+u.y*c},_={x:r.x+d.x*c,y:r.y+d.y*c},p=Xk({source:m,sourcePosition:t,target:_}),x=p.x!==0?"x":"y",v=p[x];let b=[],S,j;const $={x:0,y:0},T={x:0,y:0},[F,B,I,U]=jx({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(u[x]*d[x]===-1){S=a.x||F,j=a.y||B;const K=[{x:S,y:m.y},{x:S,y:_.y}],le=[{x:m.x,y:j},{x:_.x,y:j}];u[x]===v?b=x==="x"?K:le:b=x==="x"?le:K}else{const K=[{x:m.x,y:_.y}],le=[{x:_.x,y:m.y}];if(x==="x"?b=u.x===v?le:K:b=u.y===v?K:le,t===o){const z=Math.abs(e[x]-r[x]);if(z<=c){const P=Math.min(c-1,c-z);u[x]===v?$[x]=(m[x]>e[x]?-1:1)*P:T[x]=(_[x]>r[x]?-1:1)*P}}if(t!==o){const z=x==="x"?"y":"x",P=u[x]===d[z],G=m[z]>_[z],H=m[z]<_[z];(u[x]===1&&(!P&&G||P&&H)||u[x]!==1&&(!P&&H||P&&G))&&(b=x==="x"?K:le)}const ce={x:m.x+$.x,y:m.y+$.y},pe={x:_.x+T.x,y:_.y+T.y},Re=Math.max(Math.abs(ce.x-b[0].x),Math.abs(pe.x-b[0].x)),W=Math.max(Math.abs(ce.y-b[0].y),Math.abs(pe.y-b[0].y));Re>=W?(S=(ce.x+pe.x)/2,j=b[0].y):(S=b[0].x,j=(ce.y+pe.y)/2)}return[[e,{x:m.x+$.x,y:m.y+$.y},...b,{x:_.x+T.x,y:_.y+T.y},r],S,j,I,U]}function Kk(e,t,r,o){const a=Math.min(kg(e,t)/2,kg(t,r)/2,o),{x:c,y:u}=t;if(e.x===c&&c===r.x||e.y===u&&u===r.y)return`L${c} ${u}`;if(e.y===u){const _=e.x<r.x?-1:1,p=e.y<r.y?1:-1;return`L ${c+a*_},${u}Q ${c},${u} ${c},${u+a*p}`}const d=e.x<r.x?1:-1,m=e.y<r.y?-1:1;return`L ${c},${u+a*m}Q ${c},${u} ${c+a*d},${u}`}function C_({sourceX:e,sourceY:t,sourcePosition:r=It.Bottom,targetX:o,targetY:a,targetPosition:c=It.Top,borderRadius:u=5,centerX:d,centerY:m,offset:_=20}){const[p,x,v,b,S]=Jk({source:{x:e,y:t},sourcePosition:r,target:{x:o,y:a},targetPosition:c,center:{x:d,y:m},offset:_});return[p.reduce(($,T,F)=>{let B="";return F>0&&F<p.length-1?B=Kk(p[F-1],T,p[F+1],u):B=`${F===0?"M":"L"}${T.x} ${T.y}`,$+=B,$},""),x,v,b,S]}const ah=h.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_,style:p,sourcePosition:x=It.Bottom,targetPosition:v=It.Top,markerEnd:b,markerStart:S,pathOptions:j,interactionWidth:$})=>{const[T,F,B]=C_({sourceX:e,sourceY:t,sourcePosition:x,targetX:r,targetY:o,targetPosition:v,borderRadius:j==null?void 0:j.borderRadius,offset:j==null?void 0:j.offset});return Ae.createElement(zf,{path:T,labelX:F,labelY:B,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_,style:p,markerEnd:b,markerStart:S,interactionWidth:$})});ah.displayName="SmoothStepEdge";const ip=h.memo(e=>{var t;return Ae.createElement(ah,{...e,pathOptions:h.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(t=e.pathOptions)==null?void 0:t.offset])})});ip.displayName="StepEdge";function Zk({sourceX:e,sourceY:t,targetX:r,targetY:o}){const[a,c,u,d]=jx({sourceX:e,sourceY:t,targetX:r,targetY:o});return[`M ${e},${t}L ${r},${o}`,a,c,u,d]}const op=h.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_,style:p,markerEnd:x,markerStart:v,interactionWidth:b})=>{const[S,j,$]=Zk({sourceX:e,sourceY:t,targetX:r,targetY:o});return Ae.createElement(zf,{path:S,labelX:j,labelY:$,label:a,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:m,labelBgBorderRadius:_,style:p,markerEnd:x,markerStart:v,interactionWidth:b})});op.displayName="StraightEdge";function vm(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Ng({pos:e,x1:t,y1:r,x2:o,y2:a,c}){switch(e){case It.Left:return[t-vm(t-o,c),r];case It.Right:return[t+vm(o-t,c),r];case It.Top:return[t,r-vm(r-a,c)];case It.Bottom:return[t,r+vm(a-r,c)]}}function Nx({sourceX:e,sourceY:t,sourcePosition:r=It.Bottom,targetX:o,targetY:a,targetPosition:c=It.Top,curvature:u=.25}){const[d,m]=Ng({pos:r,x1:e,y1:t,x2:o,y2:a,c:u}),[_,p]=Ng({pos:c,x1:o,y1:a,x2:e,y2:t,c:u}),[x,v,b,S]=Sx({sourceX:e,sourceY:t,targetX:o,targetY:a,sourceControlX:d,sourceControlY:m,targetControlX:_,targetControlY:p});return[`M${e},${t} C${d},${m} ${_},${p} ${o},${a}`,x,v,b,S]}const Vm=h.memo(({sourceX:e,sourceY:t,targetX:r,targetY:o,sourcePosition:a=It.Bottom,targetPosition:c=It.Top,label:u,labelStyle:d,labelShowBg:m,labelBgStyle:_,labelBgPadding:p,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,pathOptions:j,interactionWidth:$})=>{const[T,F,B]=Nx({sourceX:e,sourceY:t,sourcePosition:a,targetX:r,targetY:o,targetPosition:c,curvature:j==null?void 0:j.curvature});return Ae.createElement(zf,{path:T,labelX:F,labelY:B,label:u,labelStyle:d,labelShowBg:m,labelBgStyle:_,labelBgPadding:p,labelBgBorderRadius:x,style:v,markerEnd:b,markerStart:S,interactionWidth:$})});Vm.displayName="BezierEdge";const ap=h.createContext(null),Qk=ap.Provider;ap.Consumer;const eN=()=>h.useContext(ap),tN=e=>"id"in e&&"source"in e&&"target"in e,nN=({source:e,sourceHandle:t,target:r,targetHandle:o})=>`reactflow__edge-${e}${t||""}-${r}${o||""}`,E_=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`,rN=(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)),sN=(e,t)=>{if(!e.source||!e.target)return t;let r;return tN(e)?r={...e}:r={...e,id:nN(e)},rN(r,t)?t:t.concat(r)},$_=({x:e,y:t},[r,o,a],c,[u,d])=>{const m={x:(e-r)/a,y:(t-o)/a};return c?{x:u*Math.round(m.x/u),y:d*Math.round(m.y/d)}:m},Cx=({x:e,y:t},[r,o,a])=>({x:e*a+r,y:t*a+o}),Uc=(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],a={x:e.position.x-r,y:e.position.y-o};return{...a,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-o}:a}},lh=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((o,a)=>{const{x:c,y:u}=Uc(a,t).positionAbsolute;return xx(o,bf({x:c,y:u,width:a.width||0,height:a.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return vx(r)},Ex=(e,t,[r,o,a]=[0,0,1],c=!1,u=!1,d=[0,0])=>{const m={x:(t.x-r)/a,y:(t.y-o)/a,width:t.width/a,height:t.height/a},_=[];return e.forEach(p=>{const{width:x,height:v,selectable:b=!0,hidden:S=!1}=p;if(u&&!b||S)return!1;const{positionAbsolute:j}=Uc(p,d),$={x:j.x,y:j.y,width:x||0,height:v||0},T=k_(m,$),F=typeof x>"u"||typeof v>"u"||x===null||v===null,B=c&&T>0,I=(x||0)*(v||0);(F||B||T>=I||p.dragging)&&_.push(p)}),_},$x=(e,t)=>{const r=e.map(o=>o.id);return t.filter(o=>r.includes(o.source)||r.includes(o.target))},Ax=(e,t,r,o,a,c=.1)=>{const u=t/(e.width*(1+c)),d=r/(e.height*(1+c)),m=Math.min(u,d),_=od(m,o,a),p=e.x+e.width/2,x=e.y+e.height/2,v=t/2-p*_,b=r/2-x*_;return{x:v,y:b,zoom:_}},Pc=(e,t=0)=>e.transition().duration(t);function Cg(e,t,r,o){return(t[r]||[]).reduce((a,c)=>{var u,d;return`${e.id}-${c.id}-${r}`!==o&&a.push({id:c.id||null,type:r,nodeId:e.id,x:(((u=e.positionAbsolute)==null?void 0:u.x)??0)+c.x+c.width/2,y:(((d=e.positionAbsolute)==null?void 0:d.y)??0)+c.y+c.height/2}),a},[])}function iN(e,t,r,o,a,c){const{x:u,y:d}=sc(e),_=t.elementsFromPoint(u,d).find(S=>S.classList.contains("react-flow__handle"));if(_){const S=_.getAttribute("data-nodeid");if(S){const j=lp(void 0,_),$=_.getAttribute("data-handleid"),T=c({nodeId:S,id:$,type:j});if(T){const F=a.find(B=>B.nodeId===S&&B.type===j&&B.id===$);return{handle:{id:$,type:j,nodeId:S,x:(F==null?void 0:F.x)||r.x,y:(F==null?void 0:F.y)||r.y},validHandleResult:T}}}}let p=[],x=1/0;if(a.forEach(S=>{const j=Math.sqrt((S.x-r.x)**2+(S.y-r.y)**2);if(j<=o){const $=c(S);j<=x&&(j<x?p=[{handle:S,validHandleResult:$}]:j===x&&p.push({handle:S,validHandleResult:$}),x=j)}}),!p.length)return{handle:null,validHandleResult:Mx()};if(p.length===1)return p[0];const v=p.some(({validHandleResult:S})=>S.isValid),b=p.some(({handle:S})=>S.type==="target");return p.find(({handle:S,validHandleResult:j})=>b?S.type==="target":v?j.isValid:!0)||p[0]}const oN={source:null,target:null,sourceHandle:null,targetHandle:null},Mx=()=>({handleDomNode:null,isValid:!1,connection:oN,endHandle:null});function Tx(e,t,r,o,a,c,u){const d=a==="target",m=u.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),_={...Mx(),handleDomNode:m};if(m){const p=lp(void 0,m),x=m.getAttribute("data-nodeid"),v=m.getAttribute("data-handleid"),b=m.classList.contains("connectable"),S=m.classList.contains("connectableend"),j={source:d?x:r,sourceHandle:d?v:o,target:d?r:x,targetHandle:d?o:v};_.connection=j,b&&S&&(t===Hc.Strict?d&&p==="source"||!d&&p==="target":x!==r||v!==o)&&(_.endHandle={nodeId:x,handleId:v,type:p},_.isValid=c(j))}return _}function aN({nodes:e,nodeId:t,handleId:r,handleType:o}){return e.reduce((a,c)=>{if(c[ns]){const{handleBounds:u}=c[ns];let d=[],m=[];u&&(d=Cg(c,u,"source",`${t}-${r}-${o}`),m=Cg(c,u,"target",`${t}-${r}-${o}`)),a.push(...d,...m)}return a},[])}function lp(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Yh(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function lN(e,t){let r=null;return t?r="valid":e&&!t&&(r="invalid"),r}function zx({event:e,handleId:t,nodeId:r,onConnect:o,isTarget:a,getState:c,setState:u,isValidConnection:d,edgeUpdaterType:m,onEdgeUpdateEnd:_}){const p=yx(e.target),{connectionMode:x,domNode:v,autoPanOnConnect:b,connectionRadius:S,onConnectStart:j,panBy:$,getNodes:T,cancelConnection:F}=c();let B=0,I;const{x:U,y:te}=sc(e),K=p==null?void 0:p.elementFromPoint(U,te),le=lp(m,K),ce=v==null?void 0:v.getBoundingClientRect();if(!ce||!le)return;let pe,Re=sc(e,ce),W=!1,z=null,P=!1,G=null;const H=aN({nodes:T(),nodeId:r,handleId:t,handleType:le}),re=()=>{if(!b)return;const[q,C]=gx(Re,ce);$({x:q,y:C}),B=requestAnimationFrame(re)};u({connectionPosition:Re,connectionStatus:null,connectionNodeId:r,connectionHandleId:t,connectionHandleType:le,connectionStartHandle:{nodeId:r,handleId:t,type:le},connectionEndHandle:null}),j==null||j(e,{nodeId:r,handleId:t,handleType:le});function N(q){const{transform:C}=c();Re=sc(q,ce);const{handle:X,validHandleResult:se}=iN(q,p,$_(Re,C,!1,[1,1]),S,H,ie=>Tx(ie,x,r,t,a?"target":"source",d,p));if(I=X,W||(re(),W=!0),G=se.handleDomNode,z=se.connection,P=se.isValid,u({connectionPosition:I&&P?Cx({x:I.x,y:I.y},C):Re,connectionStatus:lN(!!I,P),connectionEndHandle:se.endHandle}),!I&&!P&&!G)return Yh(pe);z.source!==z.target&&G&&(Yh(pe),pe=G,G.classList.add("connecting","react-flow__handle-connecting"),G.classList.toggle("valid",P),G.classList.toggle("react-flow__handle-valid",P))}function L(q){var C,X;(I||G)&&z&&P&&(o==null||o(z)),(X=(C=c()).onConnectEnd)==null||X.call(C,q),m&&(_==null||_(q)),Yh(pe),F(),cancelAnimationFrame(B),W=!1,P=!1,z=null,G=null,p.removeEventListener("mousemove",N),p.removeEventListener("mouseup",L),p.removeEventListener("touchmove",N),p.removeEventListener("touchend",L)}p.addEventListener("mousemove",N),p.addEventListener("mouseup",L),p.addEventListener("touchmove",N),p.addEventListener("touchend",L)}const Eg=()=>!0,cN=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),uN=(e,t,r)=>o=>{const{connectionStartHandle:a,connectionEndHandle:c,connectionClickStartHandle:u}=o;return{connecting:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.handleId)===t&&(a==null?void 0:a.type)===r||(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.handleId)===t&&(c==null?void 0:c.type)===r,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===t&&(u==null?void 0:u.type)===r}},Rx=h.forwardRef(({type:e="source",position:t=It.Top,isValidConnection:r,isConnectable:o=!0,isConnectableStart:a=!0,isConnectableEnd:c=!0,id:u,onConnect:d,children:m,className:_,onMouseDown:p,onTouchStart:x,...v},b)=>{var ce,pe;const S=u||null,j=e==="target",$=_s(),T=eN(),{connectOnClick:F,noPanClassName:B}=ur(cN,Cs),{connecting:I,clickConnecting:U}=ur(uN(T,S,e),Cs);T||(pe=(ce=$.getState()).onError)==null||pe.call(ce,"010",fl.error010());const te=Re=>{const{defaultEdgeOptions:W,onConnect:z,hasDefaultEdges:P}=$.getState(),G={...W,...Re};if(P){const{edges:H,setEdges:re}=$.getState();re(sN(G,H))}z==null||z(G),d==null||d(G)},K=Re=>{if(!T)return;const W=bx(Re);a&&(W&&Re.button===0||!W)&&zx({event:Re,handleId:S,nodeId:T,onConnect:te,isTarget:j,getState:$.getState,setState:$.setState,isValidConnection:r||$.getState().isValidConnection||Eg}),W?p==null||p(Re):x==null||x(Re)},le=Re=>{const{onClickConnectStart:W,onClickConnectEnd:z,connectionClickStartHandle:P,connectionMode:G,isValidConnection:H}=$.getState();if(!T||!P&&!a)return;if(!P){W==null||W(Re,{nodeId:T,handleId:S,handleType:e}),$.setState({connectionClickStartHandle:{nodeId:T,type:e,handleId:S}});return}const re=yx(Re.target),N=r||H||Eg,{connection:L,isValid:q}=Tx({nodeId:T,id:S,type:e},G,P.nodeId,P.handleId||null,P.type,N,re);q&&te(L),z==null||z(Re),$.setState({connectionClickStartHandle:null})};return Ae.createElement("div",{"data-handleid":S,"data-nodeid":T,"data-handlepos":t,"data-id":`${T}-${S}-${e}`,className:Fs(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",B,_,{source:!j,target:j,connectable:o,connectablestart:a,connectableend:c,connecting:U,connectionindicator:o&&(a&&!I||c&&I)}]),onMouseDown:K,onTouchStart:K,onClick:F?le:void 0,ref:b,...v},m)});Rx.displayName="Handle";var Gm=h.memo(Rx);const Lx=({data:e,isConnectable:t,targetPosition:r=It.Top,sourcePosition:o=It.Bottom})=>Ae.createElement(Ae.Fragment,null,Ae.createElement(Gm,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label,Ae.createElement(Gm,{type:"source",position:o,isConnectable:t}));Lx.displayName="DefaultNode";var A_=h.memo(Lx);const Px=({data:e,isConnectable:t,sourcePosition:r=It.Bottom})=>Ae.createElement(Ae.Fragment,null,e==null?void 0:e.label,Ae.createElement(Gm,{type:"source",position:r,isConnectable:t}));Px.displayName="InputNode";var Ox=h.memo(Px);const Ix=({data:e,isConnectable:t,targetPosition:r=It.Top})=>Ae.createElement(Ae.Fragment,null,Ae.createElement(Gm,{type:"target",position:r,isConnectable:t}),e==null?void 0:e.label);Ix.displayName="OutputNode";var Fx=h.memo(Ix);const cp=()=>null;cp.displayName="GroupNode";const dN=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected)}),wm=e=>e.id;function fN(e,t){return Cs(e.selectedNodes.map(wm),t.selectedNodes.map(wm))&&Cs(e.selectedEdges.map(wm),t.selectedEdges.map(wm))}const Dx=h.memo(({onSelectionChange:e})=>{const t=_s(),{selectedNodes:r,selectedEdges:o}=ur(dN,fN);return h.useEffect(()=>{const a={nodes:r,edges:o};e==null||e(a),t.getState().onSelectionChange.forEach(c=>c(a))},[r,o,e]),null});Dx.displayName="SelectionListener";const mN=e=>!!e.onSelectionChange;function hN({onSelectionChange:e}){const t=ur(mN);return e||t?Ae.createElement(Dx,{onSelectionChange:e}):null}const _N=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 Du(e,t){h.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function Nn(e,t,r){h.useEffect(()=>{typeof t<"u"&&r({[e]:t})},[t])}const pN=({nodes:e,edges:t,defaultNodes:r,defaultEdges:o,onConnect:a,onConnectStart:c,onConnectEnd:u,onClickConnectStart:d,onClickConnectEnd:m,nodesDraggable:_,nodesConnectable:p,nodesFocusable:x,edgesFocusable:v,edgesUpdatable:b,elevateNodesOnSelect:S,minZoom:j,maxZoom:$,nodeExtent:T,onNodesChange:F,onEdgesChange:B,elementsSelectable:I,connectionMode:U,snapGrid:te,snapToGrid:K,translateExtent:le,connectOnClick:ce,defaultEdgeOptions:pe,fitView:Re,fitViewOptions:W,onNodesDelete:z,onEdgesDelete:P,onNodeDrag:G,onNodeDragStart:H,onNodeDragStop:re,onSelectionDrag:N,onSelectionDragStart:L,onSelectionDragStop:q,noPanClassName:C,nodeOrigin:X,rfId:se,autoPanOnConnect:ie,autoPanOnNodeDrag:ye,onError:Le,connectionRadius:Me,isValidConnection:De,nodeDragThreshold:We})=>{const{setNodes:ve,setEdges:Pe,setDefaultNodesAndEdges:me,setMinZoom:we,setMaxZoom:Oe,setTranslateExtent:qe,setNodeExtent:rt,reset:ke}=ur(_N,Cs),Fe=_s();return h.useEffect(()=>{const ot=o==null?void 0:o.map(Et=>({...Et,...pe}));return me(r,ot),()=>{ke()}},[]),Nn("defaultEdgeOptions",pe,Fe.setState),Nn("connectionMode",U,Fe.setState),Nn("onConnect",a,Fe.setState),Nn("onConnectStart",c,Fe.setState),Nn("onConnectEnd",u,Fe.setState),Nn("onClickConnectStart",d,Fe.setState),Nn("onClickConnectEnd",m,Fe.setState),Nn("nodesDraggable",_,Fe.setState),Nn("nodesConnectable",p,Fe.setState),Nn("nodesFocusable",x,Fe.setState),Nn("edgesFocusable",v,Fe.setState),Nn("edgesUpdatable",b,Fe.setState),Nn("elementsSelectable",I,Fe.setState),Nn("elevateNodesOnSelect",S,Fe.setState),Nn("snapToGrid",K,Fe.setState),Nn("snapGrid",te,Fe.setState),Nn("onNodesChange",F,Fe.setState),Nn("onEdgesChange",B,Fe.setState),Nn("connectOnClick",ce,Fe.setState),Nn("fitViewOnInit",Re,Fe.setState),Nn("fitViewOnInitOptions",W,Fe.setState),Nn("onNodesDelete",z,Fe.setState),Nn("onEdgesDelete",P,Fe.setState),Nn("onNodeDrag",G,Fe.setState),Nn("onNodeDragStart",H,Fe.setState),Nn("onNodeDragStop",re,Fe.setState),Nn("onSelectionDrag",N,Fe.setState),Nn("onSelectionDragStart",L,Fe.setState),Nn("onSelectionDragStop",q,Fe.setState),Nn("noPanClassName",C,Fe.setState),Nn("nodeOrigin",X,Fe.setState),Nn("rfId",se,Fe.setState),Nn("autoPanOnConnect",ie,Fe.setState),Nn("autoPanOnNodeDrag",ye,Fe.setState),Nn("onError",Le,Fe.setState),Nn("connectionRadius",Me,Fe.setState),Nn("isValidConnection",De,Fe.setState),Nn("nodeDragThreshold",We,Fe.setState),Du(e,ve),Du(t,Pe),Du(j,we),Du($,Oe),Du(le,qe),Du(T,rt),null},$g={display:"none"},gN={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Bx="react-flow__node-desc",Ux="react-flow__edge-desc",yN="react-flow__aria-live",xN=e=>e.ariaLiveMessage;function vN({rfId:e}){const t=ur(xN);return Ae.createElement("div",{id:`${yN}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:gN},t)}function wN({rfId:e,disableKeyboardA11y:t}){return Ae.createElement(Ae.Fragment,null,Ae.createElement("div",{id:`${Bx}-${e}`,style:$g},"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."," "),Ae.createElement("div",{id:`${Ux}-${e}`,style:$g},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&Ae.createElement(vN,{rfId:e}))}var kf=(e=null,t={actInsideInputWithModifier:!0})=>{const[r,o]=h.useState(!1),a=h.useRef(!1),c=h.useRef(new Set([])),[u,d]=h.useMemo(()=>{if(e!==null){const _=(Array.isArray(e)?e:[e]).filter(x=>typeof x=="string").map(x=>x.split("+")),p=_.reduce((x,v)=>x.concat(...v),[]);return[_,p]}return[[],[]]},[e]);return h.useEffect(()=>{const m=typeof document<"u"?document:null,_=(t==null?void 0:t.target)||m;if(e!==null){const p=b=>{if(a.current=b.ctrlKey||b.metaKey||b.shiftKey,(!a.current||a.current&&!t.actInsideInputWithModifier)&&N_(b))return!1;const j=Mg(b.code,d);c.current.add(b[j]),Ag(u,c.current,!1)&&(b.preventDefault(),o(!0))},x=b=>{if((!a.current||a.current&&!t.actInsideInputWithModifier)&&N_(b))return!1;const j=Mg(b.code,d);Ag(u,c.current,!0)?(o(!1),c.current.clear()):c.current.delete(b[j]),b.key==="Meta"&&c.current.clear(),a.current=!1},v=()=>{c.current.clear(),o(!1)};return _==null||_.addEventListener("keydown",p),_==null||_.addEventListener("keyup",x),window.addEventListener("blur",v),()=>{_==null||_.removeEventListener("keydown",p),_==null||_.removeEventListener("keyup",x),window.removeEventListener("blur",v)}}},[e,o]),r};function Ag(e,t,r){return e.filter(o=>r||o.length===t.size).some(o=>o.every(a=>t.has(a)))}function Mg(e,t){return t.includes(e)?"code":"key"}function Wx(e,t,r,o){var u,d;if(!e.parentNode)return r;const a=t.get(e.parentNode),c=Uc(a,o);return Wx(a,t,{x:(r.x??0)+c.x,y:(r.y??0)+c.y,z:(((u=a[ns])==null?void 0:u.z)??0)>(r.z??0)?((d=a[ns])==null?void 0:d.z)??0:r.z??0},o)}function qx(e,t,r){e.forEach(o=>{var a;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:c,y:u,z:d}=Wx(o,e,{...o.position,z:((a=o[ns])==null?void 0:a.z)??0},t);o.positionAbsolute={x:c,y:u},o[ns].z=d,r!=null&&r[o.id]&&(o[ns].isParent=!0)}})}function Xh(e,t,r,o){const a=new Map,c={},u=o?1e3:0;return e.forEach(d=>{var v;const m=($o(d.zIndex)?d.zIndex:0)+(d.selected?u:0),_=t.get(d.id),p={...d,positionAbsolute:{x:d.position.x,y:d.position.y}};d.parentNode&&(c[d.parentNode]=!0);const x=(_==null?void 0:_.type)&&(_==null?void 0:_.type)!==d.type;Object.defineProperty(p,ns,{enumerable:!1,value:{handleBounds:x||(v=_==null?void 0:_[ns])==null?void 0:v.handleBounds,z:m}}),a.set(d.id,p)}),qx(a,r,c),a}function Hx(e,t={}){const{getNodes:r,width:o,height:a,minZoom:c,maxZoom:u,d3Zoom:d,d3Selection:m,fitViewOnInitDone:_,fitViewOnInit:p,nodeOrigin:x}=e(),v=t.initial&&!_&&p;if(d&&m&&(v||!t.initial)){const S=r().filter($=>{var F;const T=t.includeHiddenNodes?$.width&&$.height:!$.hidden;return(F=t.nodes)!=null&&F.length?T&&t.nodes.some(B=>B.id===$.id):T}),j=S.every($=>$.width&&$.height);if(S.length>0&&j){const $=lh(S,x),{x:T,y:F,zoom:B}=Ax($,o,a,t.minZoom??c,t.maxZoom??u,t.padding??.1),I=cl.translate(T,F).scale(B);return typeof t.duration=="number"&&t.duration>0?d.transform(Pc(m,t.duration),I):d.transform(m,I),!0}}return!1}function bN(e,t){return e.forEach(r=>{const o=t.get(r.id);o&&t.set(o.id,{...o,[ns]:o[ns],selected:r.selected})}),new Map(t)}function jN(e,t){return t.map(r=>{const o=e.find(a=>a.id===r.id);return o&&(r.selected=o.selected),r})}function bm({changedNodes:e,changedEdges:t,get:r,set:o}){const{nodeInternals:a,edges:c,onNodesChange:u,onEdgesChange:d,hasDefaultNodes:m,hasDefaultEdges:_}=r();e!=null&&e.length&&(m&&o({nodeInternals:bN(e,a)}),u==null||u(e)),t!=null&&t.length&&(_&&o({edges:jN(t,c)}),d==null||d(t))}const Bu=()=>{},SN={zoomIn:Bu,zoomOut:Bu,zoomTo:Bu,getZoom:()=>1,setViewport:Bu,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Bu,fitBounds:Bu,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},kN=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),NN=()=>{const e=_s(),{d3Zoom:t,d3Selection:r}=ur(kN,Cs);return h.useMemo(()=>r&&t?{zoomIn:a=>t.scaleBy(Pc(r,a==null?void 0:a.duration),1.2),zoomOut:a=>t.scaleBy(Pc(r,a==null?void 0:a.duration),1/1.2),zoomTo:(a,c)=>t.scaleTo(Pc(r,c==null?void 0:c.duration),a),getZoom:()=>e.getState().transform[2],setViewport:(a,c)=>{const[u,d,m]=e.getState().transform,_=cl.translate(a.x??u,a.y??d).scale(a.zoom??m);t.transform(Pc(r,c==null?void 0:c.duration),_)},getViewport:()=>{const[a,c,u]=e.getState().transform;return{x:a,y:c,zoom:u}},fitView:a=>Hx(e.getState,a),setCenter:(a,c,u)=>{const{width:d,height:m,maxZoom:_}=e.getState(),p=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:_,x=d/2-a*p,v=m/2-c*p,b=cl.translate(x,v).scale(p);t.transform(Pc(r,u==null?void 0:u.duration),b)},fitBounds:(a,c)=>{const{width:u,height:d,minZoom:m,maxZoom:_}=e.getState(),{x:p,y:x,zoom:v}=Ax(a,u,d,m,_,(c==null?void 0:c.padding)??.1),b=cl.translate(p,x).scale(v);t.transform(Pc(r,c==null?void 0:c.duration),b)},project:a=>{const{transform:c,snapToGrid:u,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"),$_(a,c,u,d)},screenToFlowPosition:a=>{const{transform:c,snapToGrid:u,snapGrid:d,domNode:m}=e.getState();if(!m)return a;const{x:_,y:p}=m.getBoundingClientRect(),x={x:a.x-_,y:a.y-p};return $_(x,c,u,d)},flowToScreenPosition:a=>{const{transform:c,domNode:u}=e.getState();if(!u)return a;const{x:d,y:m}=u.getBoundingClientRect(),_=Cx(a,c);return{x:_.x+d,y:_.y+m}},viewportInitialized:!0}:SN,[t,r])};function up(){const e=NN(),t=_s(),r=h.useCallback(()=>t.getState().getNodes().map(j=>({...j})),[]),o=h.useCallback(j=>t.getState().nodeInternals.get(j),[]),a=h.useCallback(()=>{const{edges:j=[]}=t.getState();return j.map($=>({...$}))},[]),c=h.useCallback(j=>{const{edges:$=[]}=t.getState();return $.find(T=>T.id===j)},[]),u=h.useCallback(j=>{const{getNodes:$,setNodes:T,hasDefaultNodes:F,onNodesChange:B}=t.getState(),I=$(),U=typeof j=="function"?j(I):j;if(F)T(U);else if(B){const te=U.length===0?I.map(K=>({type:"remove",id:K.id})):U.map(K=>({item:K,type:"reset"}));B(te)}},[]),d=h.useCallback(j=>{const{edges:$=[],setEdges:T,hasDefaultEdges:F,onEdgesChange:B}=t.getState(),I=typeof j=="function"?j($):j;if(F)T(I);else if(B){const U=I.length===0?$.map(te=>({type:"remove",id:te.id})):I.map(te=>({item:te,type:"reset"}));B(U)}},[]),m=h.useCallback(j=>{const $=Array.isArray(j)?j:[j],{getNodes:T,setNodes:F,hasDefaultNodes:B,onNodesChange:I}=t.getState();if(B){const te=[...T(),...$];F(te)}else if(I){const U=$.map(te=>({item:te,type:"add"}));I(U)}},[]),_=h.useCallback(j=>{const $=Array.isArray(j)?j:[j],{edges:T=[],setEdges:F,hasDefaultEdges:B,onEdgesChange:I}=t.getState();if(B)F([...T,...$]);else if(I){const U=$.map(te=>({item:te,type:"add"}));I(U)}},[]),p=h.useCallback(()=>{const{getNodes:j,edges:$=[],transform:T}=t.getState(),[F,B,I]=T;return{nodes:j().map(U=>({...U})),edges:$.map(U=>({...U})),viewport:{x:F,y:B,zoom:I}}},[]),x=h.useCallback(({nodes:j,edges:$})=>{const{nodeInternals:T,getNodes:F,edges:B,hasDefaultNodes:I,hasDefaultEdges:U,onNodesDelete:te,onEdgesDelete:K,onNodesChange:le,onEdgesChange:ce}=t.getState(),pe=(j||[]).map(G=>G.id),Re=($||[]).map(G=>G.id),W=F().reduce((G,H)=>{const re=!pe.includes(H.id)&&H.parentNode&&G.find(L=>L.id===H.parentNode);return(typeof H.deletable=="boolean"?H.deletable:!0)&&(pe.includes(H.id)||re)&&G.push(H),G},[]),z=B.filter(G=>typeof G.deletable=="boolean"?G.deletable:!0),P=z.filter(G=>Re.includes(G.id));if(W||P){const G=$x(W,z),H=[...P,...G],re=H.reduce((N,L)=>(N.includes(L.id)||N.push(L.id),N),[]);if((U||I)&&(U&&t.setState({edges:B.filter(N=>!re.includes(N.id))}),I&&(W.forEach(N=>{T.delete(N.id)}),t.setState({nodeInternals:new Map(T)}))),re.length>0&&(K==null||K(H),ce&&ce(re.map(N=>({id:N,type:"remove"})))),W.length>0&&(te==null||te(W),le)){const N=W.map(L=>({id:L.id,type:"remove"}));le(N)}}},[]),v=h.useCallback(j=>{const $=Vk(j),T=$?null:t.getState().nodeInternals.get(j.id);return!$&&!T?[null,null,$]:[$?j:bg(T),T,$]},[]),b=h.useCallback((j,$=!0,T)=>{const[F,B,I]=v(j);return F?(T||t.getState().getNodes()).filter(U=>{if(!I&&(U.id===B.id||!U.positionAbsolute))return!1;const te=bg(U),K=k_(te,F);return $&&K>0||K>=F.width*F.height}):[]},[]),S=h.useCallback((j,$,T=!0)=>{const[F]=v(j);if(!F)return!1;const B=k_(F,$);return T&&B>0||B>=F.width*F.height},[]);return h.useMemo(()=>({...e,getNodes:r,getNode:o,getEdges:a,getEdge:c,setNodes:u,setEdges:d,addNodes:m,addEdges:_,toObject:p,deleteElements:x,getIntersectingNodes:b,isNodeIntersecting:S}),[e,r,o,a,c,u,d,m,_,p,x,b,S])}const CN={actInsideInputWithModifier:!1};var EN=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const r=_s(),{deleteElements:o}=up(),a=kf(e,CN),c=kf(t);h.useEffect(()=>{if(a){const{edges:u,getNodes:d}=r.getState(),m=d().filter(p=>p.selected),_=u.filter(p=>p.selected);o({nodes:m,edges:_}),r.setState({nodesSelectionActive:!1})}},[a]),h.useEffect(()=>{r.setState({multiSelectionActive:c})},[c])};function $N(e){const t=_s();h.useEffect(()=>{let r;const o=()=>{var c,u;if(!e.current)return;const a=np(e.current);(a.height===0||a.width===0)&&((u=(c=t.getState()).onError)==null||u.call(c,"004",fl.error004())),t.setState({width:a.width||500,height:a.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 dp={position:"absolute",width:"100%",height:"100%",top:0,left:0},AN=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,jm=e=>({x:e.x,y:e.y,zoom:e.k}),Uu=(e,t)=>e.target.closest(`.${t}`),Tg=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),zg=e=>{const t=e.ctrlKey&&Hm()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},MN=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),TN=({onMove:e,onMoveStart:t,onMoveEnd:r,onPaneContextMenu:o,zoomOnScroll:a=!0,zoomOnPinch:c=!0,panOnScroll:u=!1,panOnScrollSpeed:d=.5,panOnScrollMode:m=Fc.Free,zoomOnDoubleClick:_=!0,elementsSelectable:p,panOnDrag:x=!0,defaultViewport:v,translateExtent:b,minZoom:S,maxZoom:j,zoomActivationKeyCode:$,preventScrolling:T=!0,children:F,noWheelClassName:B,noPanClassName:I})=>{const U=h.useRef(),te=_s(),K=h.useRef(!1),le=h.useRef(!1),ce=h.useRef(null),pe=h.useRef({x:0,y:0,zoom:0}),{d3Zoom:Re,d3Selection:W,d3ZoomHandler:z,userSelectionActive:P}=ur(MN,Cs),G=kf($),H=h.useRef(0),re=h.useRef(!1),N=h.useRef();return $N(ce),h.useEffect(()=>{if(ce.current){const L=ce.current.getBoundingClientRect(),q=_x().scaleExtent([S,j]).translateExtent(b),C=Eo(ce.current).call(q),X=cl.translate(v.x,v.y).scale(od(v.zoom,S,j)),se=[[0,0],[L.width,L.height]],ie=q.constrain()(X,se,b);q.transform(C,ie),q.wheelDelta(zg),te.setState({d3Zoom:q,d3Selection:C,d3ZoomHandler:C.on("wheel.zoom"),transform:[ie.x,ie.y,ie.k],domNode:ce.current.closest(".react-flow")})}},[]),h.useEffect(()=>{W&&Re&&(u&&!G&&!P?W.on("wheel.zoom",L=>{if(Uu(L,B))return!1;L.preventDefault(),L.stopImmediatePropagation();const q=W.property("__zoom").k||1,C=Hm();if(L.ctrlKey&&c&&C){const We=Qo(L),ve=zg(L),Pe=q*Math.pow(2,ve);Re.scaleTo(W,Pe,We,L);return}const X=L.deltaMode===1?20:1;let se=m===Fc.Vertical?0:L.deltaX*X,ie=m===Fc.Horizontal?0:L.deltaY*X;!C&&L.shiftKey&&m!==Fc.Vertical&&(se=L.deltaY*X,ie=0),Re.translateBy(W,-(se/q)*d,-(ie/q)*d,{internal:!0});const ye=jm(W.property("__zoom")),{onViewportChangeStart:Le,onViewportChange:Me,onViewportChangeEnd:De}=te.getState();clearTimeout(N.current),re.current||(re.current=!0,t==null||t(L,ye),Le==null||Le(ye)),re.current&&(e==null||e(L,ye),Me==null||Me(ye),N.current=setTimeout(()=>{r==null||r(L,ye),De==null||De(ye),re.current=!1},150))},{passive:!1}):typeof z<"u"&&W.on("wheel.zoom",function(L,q){if(!T||Uu(L,B))return null;L.preventDefault(),z.call(this,L,q)},{passive:!1}))},[P,u,m,W,Re,z,G,c,T,B,t,e,r]),h.useEffect(()=>{Re&&Re.on("start",L=>{var X,se;if(!L.sourceEvent||L.sourceEvent.internal)return null;H.current=(X=L.sourceEvent)==null?void 0:X.button;const{onViewportChangeStart:q}=te.getState(),C=jm(L.transform);K.current=!0,pe.current=C,((se=L.sourceEvent)==null?void 0:se.type)==="mousedown"&&te.setState({paneDragging:!0}),q==null||q(C),t==null||t(L.sourceEvent,C)})},[Re,t]),h.useEffect(()=>{Re&&(P&&!K.current?Re.on("zoom",null):P||Re.on("zoom",L=>{var C;const{onViewportChange:q}=te.getState();if(te.setState({transform:[L.transform.x,L.transform.y,L.transform.k]}),le.current=!!(o&&Tg(x,H.current??0)),(e||q)&&!((C=L.sourceEvent)!=null&&C.internal)){const X=jm(L.transform);q==null||q(X),e==null||e(L.sourceEvent,X)}}))},[P,Re,e,x,o]),h.useEffect(()=>{Re&&Re.on("end",L=>{if(!L.sourceEvent||L.sourceEvent.internal)return null;const{onViewportChangeEnd:q}=te.getState();if(K.current=!1,te.setState({paneDragging:!1}),o&&Tg(x,H.current??0)&&!le.current&&o(L.sourceEvent),le.current=!1,(r||q)&&AN(pe.current,L.transform)){const C=jm(L.transform);pe.current=C,clearTimeout(U.current),U.current=setTimeout(()=>{q==null||q(C),r==null||r(L.sourceEvent,C)},u?150:0)}})},[Re,u,x,r,o]),h.useEffect(()=>{Re&&Re.filter(L=>{const q=G||a,C=c&&L.ctrlKey;if((x===!0||Array.isArray(x)&&x.includes(1))&&L.button===1&&L.type==="mousedown"&&(Uu(L,"react-flow__node")||Uu(L,"react-flow__edge")))return!0;if(!x&&!q&&!u&&!_&&!c||P||!_&&L.type==="dblclick"||Uu(L,B)&&L.type==="wheel"||Uu(L,I)&&(L.type!=="wheel"||u&&L.type==="wheel"&&!G)||!c&&L.ctrlKey&&L.type==="wheel"||!q&&!u&&!C&&L.type==="wheel"||!x&&(L.type==="mousedown"||L.type==="touchstart")||Array.isArray(x)&&!x.includes(L.button)&&(L.type==="mousedown"||L.type==="touchstart"))return!1;const X=Array.isArray(x)&&x.includes(L.button)||!L.button||L.button<=1;return(!L.ctrlKey||L.type==="wheel")&&X})},[P,Re,a,c,u,_,x,p,G]),Ae.createElement("div",{className:"react-flow__renderer",ref:ce,style:dp},F)},zN=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function RN(){const{userSelectionActive:e,userSelectionRect:t}=ur(zN,Cs);return e&&t?Ae.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 Rg(e,t){const r=e.find(o=>o.id===t.parentNode);if(r){const o=t.position.x+t.width-r.width,a=t.position.y+t.height-r.height;if(o>0||a>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),a>0&&(r.style.height+=a),t.position.x<0){const c=Math.abs(t.position.x);r.position.x=r.position.x-c,r.style.width+=c,t.position.x=0}if(t.position.y<0){const c=Math.abs(t.position.y);r.position.y=r.position.y-c,r.style.height+=c,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function LN(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,a)=>{const c=e.filter(d=>d.id===a.id);if(c.length===0)return o.push(a),o;const u={...a};for(const d of c)if(d)switch(d.type){case"select":{u.selected=d.selected;break}case"position":{typeof d.position<"u"&&(u.position=d.position),typeof d.positionAbsolute<"u"&&(u.positionAbsolute=d.positionAbsolute),typeof d.dragging<"u"&&(u.dragging=d.dragging),u.expandParent&&Rg(o,u);break}case"dimensions":{typeof d.dimensions<"u"&&(u.width=d.dimensions.width,u.height=d.dimensions.height),typeof d.updateStyle<"u"&&(u.style={...u.style||{},...d.dimensions}),typeof d.resizing=="boolean"&&(u.resizing=d.resizing),u.expandParent&&Rg(o,u);break}case"remove":return o}return o.push(u),o},r)}function PN(e,t){return LN(e,t)}const ec=(e,t)=>({id:e,type:"select",selected:t});function Xu(e,t){return e.reduce((r,o)=>{const a=t.includes(o.id);return!o.selected&&a?(o.selected=!0,r.push(ec(o.id,!0))):o.selected&&!a&&(o.selected=!1,r.push(ec(o.id,!1))),r},[])}const Jh=(e,t)=>r=>{r.target===t.current&&(e==null||e(r))},ON=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),Vx=h.memo(({isSelecting:e,selectionMode:t=jf.Full,panOnDrag:r,onSelectionStart:o,onSelectionEnd:a,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:m,onPaneMouseMove:_,onPaneMouseLeave:p,children:x})=>{const v=h.useRef(null),b=_s(),S=h.useRef(0),j=h.useRef(0),$=h.useRef(),{userSelectionActive:T,elementsSelectable:F,dragging:B}=ur(ON,Cs),I=()=>{b.setState({userSelectionActive:!1,userSelectionRect:null}),S.current=0,j.current=0},U=z=>{c==null||c(z),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},te=z=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){z.preventDefault();return}u==null||u(z)},K=d?z=>d(z):void 0,le=z=>{const{resetSelectedElements:P,domNode:G}=b.getState();if($.current=G==null?void 0:G.getBoundingClientRect(),!F||!e||z.button!==0||z.target!==v.current||!$.current)return;const{x:H,y:re}=sc(z,$.current);P(),b.setState({userSelectionRect:{width:0,height:0,startX:H,startY:re,x:H,y:re}}),o==null||o(z)},ce=z=>{const{userSelectionRect:P,nodeInternals:G,edges:H,transform:re,onNodesChange:N,onEdgesChange:L,nodeOrigin:q,getNodes:C}=b.getState();if(!e||!$.current||!P)return;b.setState({userSelectionActive:!0,nodesSelectionActive:!1});const X=sc(z,$.current),se=P.startX??0,ie=P.startY??0,ye={...P,x:X.x<se?X.x:se,y:X.y<ie?X.y:ie,width:Math.abs(X.x-se),height:Math.abs(X.y-ie)},Le=C(),Me=Ex(G,ye,re,t===jf.Partial,!0,q),De=$x(Me,H).map(ve=>ve.id),We=Me.map(ve=>ve.id);if(S.current!==We.length){S.current=We.length;const ve=Xu(Le,We);ve.length&&(N==null||N(ve))}if(j.current!==De.length){j.current=De.length;const ve=Xu(H,De);ve.length&&(L==null||L(ve))}b.setState({userSelectionRect:ye})},pe=z=>{if(z.button!==0)return;const{userSelectionRect:P}=b.getState();!T&&P&&z.target===v.current&&(U==null||U(z)),b.setState({nodesSelectionActive:S.current>0}),I(),a==null||a(z)},Re=z=>{T&&(b.setState({nodesSelectionActive:S.current>0}),a==null||a(z)),I()},W=F&&(e||T);return Ae.createElement("div",{className:Fs(["react-flow__pane",{dragging:B,selection:e}]),onClick:W?void 0:Jh(U,v),onContextMenu:Jh(te,v),onWheel:Jh(K,v),onMouseEnter:W?void 0:m,onMouseDown:W?le:void 0,onMouseMove:W?ce:_,onMouseUp:W?pe:void 0,onMouseLeave:W?Re:p,ref:v,style:dp},x,Ae.createElement(RN,null))});Vx.displayName="Pane";function Gx(e,t){if(!e.parentNode)return!1;const r=t.get(e.parentNode);return r?r.selected?!0:Gx(r,t):!1}function Lg(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 IN(e,t,r,o){return Array.from(e.values()).filter(a=>(a.selected||a.id===o)&&(!a.parentNode||!Gx(a,e))&&(a.draggable||t&&typeof a.draggable>"u")).map(a=>{var c,u;return{id:a.id,position:a.position||{x:0,y:0},positionAbsolute:a.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((c=a.positionAbsolute)==null?void 0:c.x)??0),y:r.y-(((u=a.positionAbsolute)==null?void 0:u.y)??0)},delta:{x:0,y:0},extent:a.extent,parentNode:a.parentNode,width:a.width,height:a.height,expandParent:a.expandParent}})}function FN(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function Yx(e,t,r,o,a=[0,0],c){const u=FN(e,e.extent||o);let d=u;if(e.extent==="parent"&&!e.expandParent)if(e.parentNode&&e.width&&e.height){const p=r.get(e.parentNode),{x,y:v}=Uc(p,a).positionAbsolute;d=p&&$o(x)&&$o(v)&&$o(p.width)&&$o(p.height)?[[x+e.width*a[0],v+e.height*a[1]],[x+p.width-e.width+e.width*a[0],v+p.height-e.height+e.height*a[1]]]:d}else c==null||c("005",fl.error005()),d=u;else if(e.extent&&e.parentNode&&e.extent!=="parent"){const p=r.get(e.parentNode),{x,y:v}=Uc(p,a).positionAbsolute;d=[[e.extent[0][0]+x,e.extent[0][1]+v],[e.extent[1][0]+x,e.extent[1][1]+v]]}let m={x:0,y:0};if(e.parentNode){const p=r.get(e.parentNode);m=Uc(p,a).positionAbsolute}const _=d&&d!=="parent"?rp(t,d):t;return{position:{x:_.x-m.x,y:_.y-m.y},positionAbsolute:_}}function Kh({nodeId:e,dragItems:t,nodeInternals:r}){const o=t.map(a=>({...r.get(a.id),position:a.position,positionAbsolute:a.positionAbsolute}));return[e?o.find(a=>a.id===e):o[0],o]}const Pg=(e,t,r,o)=>{const a=t.querySelectorAll(e);if(!a||!a.length)return null;const c=Array.from(a),u=t.getBoundingClientRect(),d={x:u.width*o[0],y:u.height*o[1]};return c.map(m=>{const _=m.getBoundingClientRect();return{id:m.getAttribute("data-handleid"),position:m.getAttribute("data-handlepos"),x:(_.left-u.left-d.x)/r,y:(_.top-u.top-d.y)/r,...np(m)}})};function rf(e,t,r){return r===void 0?r:o=>{const a=t().nodeInternals.get(e);a&&r(o,{...a})}}function M_({id:e,store:t,unselect:r=!1,nodeRef:o}){const{addSelectedNodes:a,unselectNodesAndEdges:c,multiSelectionActive:u,nodeInternals:d,onError:m}=t.getState(),_=d.get(e);if(!_){m==null||m("012",fl.error012(e));return}t.setState({nodesSelectionActive:!1}),_.selected?(r||_.selected&&u)&&(c({nodes:[_],edges:[]}),requestAnimationFrame(()=>{var p;return(p=o==null?void 0:o.current)==null?void 0:p.blur()})):a([e])}function DN(){const e=_s();return h.useCallback(({sourceEvent:r})=>{const{transform:o,snapGrid:a,snapToGrid:c}=e.getState(),u=r.touches?r.touches[0].clientX:r.clientX,d=r.touches?r.touches[0].clientY:r.clientY,m={x:(u-o[0])/o[2],y:(d-o[1])/o[2]};return{xSnapped:c?a[0]*Math.round(m.x/a[0]):m.x,ySnapped:c?a[1]*Math.round(m.y/a[1]):m.y,...m}},[])}function Zh(e){return(t,r,o)=>e==null?void 0:e(t,o)}function Xx({nodeRef:e,disabled:t=!1,noDragClassName:r,handleSelector:o,nodeId:a,isSelectable:c,selectNodesOnDrag:u}){const d=_s(),[m,_]=h.useState(!1),p=h.useRef([]),x=h.useRef({x:null,y:null}),v=h.useRef(0),b=h.useRef(null),S=h.useRef({x:0,y:0}),j=h.useRef(null),$=h.useRef(!1),T=h.useRef(!1),F=DN();return h.useEffect(()=>{if(e!=null&&e.current){const B=Eo(e.current),I=({x:K,y:le})=>{const{nodeInternals:ce,onNodeDrag:pe,onSelectionDrag:Re,updateNodePositions:W,nodeExtent:z,snapGrid:P,snapToGrid:G,nodeOrigin:H,onError:re}=d.getState();x.current={x:K,y:le};let N=!1,L={x:0,y:0,x2:0,y2:0};if(p.current.length>1&&z){const C=lh(p.current,H);L=bf(C)}if(p.current=p.current.map(C=>{const X={x:K-C.distance.x,y:le-C.distance.y};G&&(X.x=P[0]*Math.round(X.x/P[0]),X.y=P[1]*Math.round(X.y/P[1]));const se=[[z[0][0],z[0][1]],[z[1][0],z[1][1]]];p.current.length>1&&z&&!C.extent&&(se[0][0]=C.positionAbsolute.x-L.x+z[0][0],se[1][0]=C.positionAbsolute.x+(C.width??0)-L.x2+z[1][0],se[0][1]=C.positionAbsolute.y-L.y+z[0][1],se[1][1]=C.positionAbsolute.y+(C.height??0)-L.y2+z[1][1]);const ie=Yx(C,X,ce,se,H,re);return N=N||C.position.x!==ie.position.x||C.position.y!==ie.position.y,C.position=ie.position,C.positionAbsolute=ie.positionAbsolute,C}),!N)return;W(p.current,!0,!0),_(!0);const q=a?pe:Zh(Re);if(q&&j.current){const[C,X]=Kh({nodeId:a,dragItems:p.current,nodeInternals:ce});q(j.current,C,X)}},U=()=>{if(!b.current)return;const[K,le]=gx(S.current,b.current);if(K!==0||le!==0){const{transform:ce,panBy:pe}=d.getState();x.current.x=(x.current.x??0)-K/ce[2],x.current.y=(x.current.y??0)-le/ce[2],pe({x:K,y:le})&&I(x.current)}v.current=requestAnimationFrame(U)},te=K=>{var H;const{nodeInternals:le,multiSelectionActive:ce,nodesDraggable:pe,unselectNodesAndEdges:Re,onNodeDragStart:W,onSelectionDragStart:z}=d.getState();T.current=!0;const P=a?W:Zh(z);(!u||!c)&&!ce&&a&&((H=le.get(a))!=null&&H.selected||Re()),a&&c&&u&&M_({id:a,store:d,nodeRef:e});const G=F(K);if(x.current=G,p.current=IN(le,pe,G,a),P&&p.current){const[re,N]=Kh({nodeId:a,dragItems:p.current,nodeInternals:le});P(K.sourceEvent,re,N)}};if(t)B.on(".drag",null);else{const K=Jj().on("start",le=>{const{domNode:ce,nodeDragThreshold:pe}=d.getState();pe===0&&te(le);const Re=F(le);x.current=Re,b.current=(ce==null?void 0:ce.getBoundingClientRect())||null,S.current=sc(le.sourceEvent,b.current)}).on("drag",le=>{var W,z;const ce=F(le),{autoPanOnNodeDrag:pe,nodeDragThreshold:Re}=d.getState();if(!$.current&&T.current&&pe&&($.current=!0,U()),!T.current){const P=ce.xSnapped-(((W=x==null?void 0:x.current)==null?void 0:W.x)??0),G=ce.ySnapped-(((z=x==null?void 0:x.current)==null?void 0:z.y)??0);Math.sqrt(P*P+G*G)>Re&&te(le)}(x.current.x!==ce.xSnapped||x.current.y!==ce.ySnapped)&&p.current&&T.current&&(j.current=le.sourceEvent,S.current=sc(le.sourceEvent,b.current),I(ce))}).on("end",le=>{if(T.current&&(_(!1),$.current=!1,T.current=!1,cancelAnimationFrame(v.current),p.current)){const{updateNodePositions:ce,nodeInternals:pe,onNodeDragStop:Re,onSelectionDragStop:W}=d.getState(),z=a?Re:Zh(W);if(ce(p.current,!1,!1),z){const[P,G]=Kh({nodeId:a,dragItems:p.current,nodeInternals:pe});z(le.sourceEvent,P,G)}}}).filter(le=>{const ce=le.target;return!le.button&&(!r||!Lg(ce,`.${r}`,e))&&(!o||Lg(ce,o,e))});return B.call(K),()=>{B.on(".drag",null)}}}},[e,t,r,o,c,d,a,u,F]),m}function Jx(){const e=_s();return h.useCallback(r=>{const{nodeInternals:o,nodeExtent:a,updateNodePositions:c,getNodes:u,snapToGrid:d,snapGrid:m,onError:_,nodesDraggable:p}=e.getState(),x=u().filter(F=>F.selected&&(F.draggable||p&&typeof F.draggable>"u")),v=d?m[0]:5,b=d?m[1]:5,S=r.isShiftPressed?4:1,j=r.x*v*S,$=r.y*b*S,T=x.map(F=>{if(F.positionAbsolute){const B={x:F.positionAbsolute.x+j,y:F.positionAbsolute.y+$};d&&(B.x=m[0]*Math.round(B.x/m[0]),B.y=m[1]*Math.round(B.y/m[1]));const{positionAbsolute:I,position:U}=Yx(F,B,o,a,void 0,_);F.position=U,F.positionAbsolute=I}return F});c(T,!0,!1)},[])}const Qu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var sf=e=>{const t=({id:r,type:o,data:a,xPos:c,yPos:u,xPosOrigin:d,yPosOrigin:m,selected:_,onClick:p,onMouseEnter:x,onMouseMove:v,onMouseLeave:b,onContextMenu:S,onDoubleClick:j,style:$,className:T,isDraggable:F,isSelectable:B,isConnectable:I,isFocusable:U,selectNodesOnDrag:te,sourcePosition:K,targetPosition:le,hidden:ce,resizeObserver:pe,dragHandle:Re,zIndex:W,isParent:z,noDragClassName:P,noPanClassName:G,initialized:H,disableKeyboardA11y:re,ariaLabel:N,rfId:L,hasHandleBounds:q})=>{const C=_s(),X=h.useRef(null),se=h.useRef(K),ie=h.useRef(le),ye=h.useRef(o),Le=B||F||p||x||v||b,Me=Jx(),De=rf(r,C.getState,x),We=rf(r,C.getState,v),ve=rf(r,C.getState,b),Pe=rf(r,C.getState,S),me=rf(r,C.getState,j),we=rt=>{const{nodeDragThreshold:ke}=C.getState();if(B&&(!te||!F||ke>0)&&M_({id:r,store:C,nodeRef:X}),p){const Fe=C.getState().nodeInternals.get(r);Fe&&p(rt,{...Fe})}},Oe=rt=>{if(!N_(rt))if(wx.includes(rt.key)&&B){const ke=rt.key==="Escape";M_({id:r,store:C,unselect:ke,nodeRef:X})}else!re&&F&&_&&Object.prototype.hasOwnProperty.call(Qu,rt.key)&&(C.setState({ariaLiveMessage:`Moved selected node ${rt.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~c}, y: ${~~u}`}),Me({x:Qu[rt.key].x,y:Qu[rt.key].y,isShiftPressed:rt.shiftKey}))};h.useEffect(()=>()=>{X.current&&(pe==null||pe.unobserve(X.current))},[]),h.useEffect(()=>{if(X.current&&!ce){const rt=X.current;(!H||!q)&&(pe==null||pe.unobserve(rt),pe==null||pe.observe(rt))}},[ce,H,q]),h.useEffect(()=>{const rt=ye.current!==o,ke=se.current!==K,Fe=ie.current!==le;X.current&&(rt||ke||Fe)&&(rt&&(ye.current=o),ke&&(se.current=K),Fe&&(ie.current=le),C.getState().updateNodeDimensions([{id:r,nodeElement:X.current,forceUpdate:!0}]))},[r,o,K,le]);const qe=Xx({nodeRef:X,disabled:ce||!F,noDragClassName:P,handleSelector:Re,nodeId:r,isSelectable:B,selectNodesOnDrag:te});return ce?null:Ae.createElement("div",{className:Fs(["react-flow__node",`react-flow__node-${o}`,{[G]:F},T,{selected:_,selectable:B,parent:z,dragging:qe}]),ref:X,style:{zIndex:W,transform:`translate(${d}px,${m}px)`,pointerEvents:Le?"all":"none",visibility:H?"visible":"hidden",...$},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:De,onMouseMove:We,onMouseLeave:ve,onContextMenu:Pe,onClick:we,onDoubleClick:me,onKeyDown:U?Oe:void 0,tabIndex:U?0:void 0,role:U?"button":void 0,"aria-describedby":re?void 0:`${Bx}-${L}`,"aria-label":N},Ae.createElement(Qk,{value:r},Ae.createElement(e,{id:r,data:a,type:o,xPos:c,yPos:u,selected:_,isConnectable:I,sourcePosition:K,targetPosition:le,dragging:qe,dragHandle:Re,zIndex:W})))};return t.displayName="NodeWrapper",h.memo(t)};const BN=e=>{const t=e.getNodes().filter(r=>r.selected);return{...lh(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function UN({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:r}){const o=_s(),{width:a,height:c,x:u,y:d,transformString:m,userSelectionActive:_}=ur(BN,Cs),p=Jx(),x=h.useRef(null);if(h.useEffect(()=>{var S;r||(S=x.current)==null||S.focus({preventScroll:!0})},[r]),Xx({nodeRef:x}),_||!a||!c)return null;const v=e?S=>{const j=o.getState().getNodes().filter($=>$.selected);e(S,j)}:void 0,b=S=>{Object.prototype.hasOwnProperty.call(Qu,S.key)&&p({x:Qu[S.key].x,y:Qu[S.key].y,isShiftPressed:S.shiftKey})};return Ae.createElement("div",{className:Fs(["react-flow__nodesselection","react-flow__container",t]),style:{transform:m}},Ae.createElement("div",{ref:x,className:"react-flow__nodesselection-rect",onContextMenu:v,tabIndex:r?void 0:-1,onKeyDown:r?void 0:b,style:{width:a,height:c,top:d,left:u}}))}var WN=h.memo(UN);const qN=e=>e.nodesSelectionActive,Kx=({children:e,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:c,onPaneScroll:u,deleteKeyCode:d,onMove:m,onMoveStart:_,onMoveEnd:p,selectionKeyCode:x,selectionOnDrag:v,selectionMode:b,onSelectionStart:S,onSelectionEnd:j,multiSelectionKeyCode:$,panActivationKeyCode:T,zoomActivationKeyCode:F,elementsSelectable:B,zoomOnScroll:I,zoomOnPinch:U,panOnScroll:te,panOnScrollSpeed:K,panOnScrollMode:le,zoomOnDoubleClick:ce,panOnDrag:pe,defaultViewport:Re,translateExtent:W,minZoom:z,maxZoom:P,preventScrolling:G,onSelectionContextMenu:H,noWheelClassName:re,noPanClassName:N,disableKeyboardA11y:L})=>{const q=ur(qN),C=kf(x),X=kf(T),se=X||pe,ie=X||te,ye=C||v&&se!==!0;return EN({deleteKeyCode:d,multiSelectionKeyCode:$}),Ae.createElement(TN,{onMove:m,onMoveStart:_,onMoveEnd:p,onPaneContextMenu:c,elementsSelectable:B,zoomOnScroll:I,zoomOnPinch:U,panOnScroll:ie,panOnScrollSpeed:K,panOnScrollMode:le,zoomOnDoubleClick:ce,panOnDrag:!C&&se,defaultViewport:Re,translateExtent:W,minZoom:z,maxZoom:P,zoomActivationKeyCode:F,preventScrolling:G,noWheelClassName:re,noPanClassName:N},Ae.createElement(Vx,{onSelectionStart:S,onSelectionEnd:j,onPaneClick:t,onPaneMouseEnter:r,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:c,onPaneScroll:u,panOnDrag:se,isSelecting:!!ye,selectionMode:b},e,q&&Ae.createElement(WN,{onSelectionContextMenu:H,noPanClassName:N,disableKeyboardA11y:L})))};Kx.displayName="FlowRenderer";var HN=h.memo(Kx);function VN(e){return ur(h.useCallback(r=>e?Ex(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function GN(e){const t={input:sf(e.input||Ox),default:sf(e.default||A_),output:sf(e.output||Fx),group:sf(e.group||cp)},r={},o=Object.keys(e).filter(a=>!["input","default","output","group"].includes(a)).reduce((a,c)=>(a[c]=sf(e[c]||A_),a),r);return{...t,...o}}const YN=({x:e,y:t,width:r,height:o,origin:a})=>!r||!o?{x:e,y:t}:a[0]<0||a[1]<0||a[0]>1||a[1]>1?{x:e,y:t}:{x:e-r*a[0],y:t-o*a[1]},XN=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),Zx=e=>{const{nodesDraggable:t,nodesConnectable:r,nodesFocusable:o,elementsSelectable:a,updateNodeDimensions:c,onError:u}=ur(XN,Cs),d=VN(e.onlyRenderVisibleElements),m=h.useRef(),_=h.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const p=new ResizeObserver(x=>{const v=x.map(b=>({id:b.target.getAttribute("data-id"),nodeElement:b.target,forceUpdate:!0}));c(v)});return m.current=p,p},[]);return h.useEffect(()=>()=>{var p;(p=m==null?void 0:m.current)==null||p.disconnect()},[]),Ae.createElement("div",{className:"react-flow__nodes",style:dp},d.map(p=>{var U,te,K;let x=p.type||"default";e.nodeTypes[x]||(u==null||u("003",fl.error003(x)),x="default");const v=e.nodeTypes[x]||e.nodeTypes.default,b=!!(p.draggable||t&&typeof p.draggable>"u"),S=!!(p.selectable||a&&typeof p.selectable>"u"),j=!!(p.connectable||r&&typeof p.connectable>"u"),$=!!(p.focusable||o&&typeof p.focusable>"u"),T=e.nodeExtent?rp(p.positionAbsolute,e.nodeExtent):p.positionAbsolute,F=(T==null?void 0:T.x)??0,B=(T==null?void 0:T.y)??0,I=YN({x:F,y:B,width:p.width??0,height:p.height??0,origin:e.nodeOrigin});return Ae.createElement(v,{key:p.id,id:p.id,className:p.className,style:p.style,type:x,data:p.data,sourcePosition:p.sourcePosition||It.Bottom,targetPosition:p.targetPosition||It.Top,hidden:p.hidden,xPos:F,yPos:B,xPosOrigin:I.x,yPosOrigin:I.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!p.selected,isDraggable:b,isSelectable:S,isConnectable:j,isFocusable:$,resizeObserver:_,dragHandle:p.dragHandle,zIndex:((U=p[ns])==null?void 0:U.z)??0,isParent:!!((te=p[ns])!=null&&te.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!p.width&&!!p.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:p.ariaLabel,hasHandleBounds:!!((K=p[ns])!=null&&K.handleBounds)})}))};Zx.displayName="NodeRenderer";var JN=h.memo(Zx);const KN=(e,t,r)=>r===It.Left?e-t:r===It.Right?e+t:e,ZN=(e,t,r)=>r===It.Top?e-t:r===It.Bottom?e+t:e,Og="react-flow__edgeupdater",Ig=({position:e,centerX:t,centerY:r,radius:o=10,onMouseDown:a,onMouseEnter:c,onMouseOut:u,type:d})=>Ae.createElement("circle",{onMouseDown:a,onMouseEnter:c,onMouseOut:u,className:Fs([Og,`${Og}-${d}`]),cx:KN(t,o,e),cy:ZN(r,o,e),r:o,stroke:"transparent",fill:"transparent"}),QN=()=>!0;var Wu=e=>{const t=({id:r,className:o,type:a,data:c,onClick:u,onEdgeDoubleClick:d,selected:m,animated:_,label:p,labelStyle:x,labelShowBg:v,labelBgStyle:b,labelBgPadding:S,labelBgBorderRadius:j,style:$,source:T,target:F,sourceX:B,sourceY:I,targetX:U,targetY:te,sourcePosition:K,targetPosition:le,elementsSelectable:ce,hidden:pe,sourceHandleId:Re,targetHandleId:W,onContextMenu:z,onMouseEnter:P,onMouseMove:G,onMouseLeave:H,edgeUpdaterRadius:re,onEdgeUpdate:N,onEdgeUpdateStart:L,onEdgeUpdateEnd:q,markerEnd:C,markerStart:X,rfId:se,ariaLabel:ie,isFocusable:ye,isUpdatable:Le,pathOptions:Me,interactionWidth:De})=>{const We=h.useRef(null),[ve,Pe]=h.useState(!1),[me,we]=h.useState(!1),Oe=_s(),qe=h.useMemo(()=>`url('#${E_(X,se)}')`,[X,se]),rt=h.useMemo(()=>`url('#${E_(C,se)}')`,[C,se]);if(pe)return null;const ke=bt=>{var xn;const{edges:Xt,addSelectedEdges:Dn,unselectNodesAndEdges:ln,multiSelectionActive:yn}=Oe.getState(),Tn=Xt.find(ir=>ir.id===r);Tn&&(ce&&(Oe.setState({nodesSelectionActive:!1}),Tn.selected&&yn?(ln({nodes:[],edges:[Tn]}),(xn=We.current)==null||xn.blur()):Dn([r])),u&&u(bt,Tn))},Fe=nf(r,Oe.getState,d),ot=nf(r,Oe.getState,z),Et=nf(r,Oe.getState,P),Lt=nf(r,Oe.getState,G),ae=nf(r,Oe.getState,H),Kt=(bt,Xt)=>{if(bt.button!==0)return;const{edges:Dn,isValidConnection:ln}=Oe.getState(),yn=Xt?F:T,Tn=(Xt?W:Re)||null,xn=Xt?"target":"source",ir=ln||QN,Qt=Xt,Mr=Dn.find(he=>he.id===r);we(!0),L==null||L(bt,Mr,xn);const ps=he=>{we(!1),q==null||q(he,Mr,xn)};zx({event:bt,handleId:Tn,nodeId:yn,onConnect:he=>N==null?void 0:N(Mr,he),isTarget:Qt,getState:Oe.getState,setState:Oe.setState,isValidConnection:ir,edgeUpdaterType:xn,onEdgeUpdateEnd:ps})},un=bt=>Kt(bt,!0),gn=bt=>Kt(bt,!1),Ne=()=>Pe(!0),de=()=>Pe(!1),Ee=!ce&&!u,$t=bt=>{var Xt;if(wx.includes(bt.key)&&ce){const{unselectNodesAndEdges:Dn,addSelectedEdges:ln,edges:yn}=Oe.getState();bt.key==="Escape"?((Xt=We.current)==null||Xt.blur(),Dn({edges:[yn.find(xn=>xn.id===r)]})):ln([r])}};return Ae.createElement("g",{className:Fs(["react-flow__edge",`react-flow__edge-${a}`,o,{selected:m,animated:_,inactive:Ee,updating:ve}]),onClick:ke,onDoubleClick:Fe,onContextMenu:ot,onMouseEnter:Et,onMouseMove:Lt,onMouseLeave:ae,onKeyDown:ye?$t:void 0,tabIndex:ye?0:void 0,role:ye?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":ie===null?void 0:ie||`Edge from ${T} to ${F}`,"aria-describedby":ye?`${Ux}-${se}`:void 0,ref:We},!me&&Ae.createElement(e,{id:r,source:T,target:F,selected:m,animated:_,label:p,labelStyle:x,labelShowBg:v,labelBgStyle:b,labelBgPadding:S,labelBgBorderRadius:j,data:c,style:$,sourceX:B,sourceY:I,targetX:U,targetY:te,sourcePosition:K,targetPosition:le,sourceHandleId:Re,targetHandleId:W,markerStart:qe,markerEnd:rt,pathOptions:Me,interactionWidth:De}),Le&&Ae.createElement(Ae.Fragment,null,(Le==="source"||Le===!0)&&Ae.createElement(Ig,{position:K,centerX:B,centerY:I,radius:re,onMouseDown:un,onMouseEnter:Ne,onMouseOut:de,type:"source"}),(Le==="target"||Le===!0)&&Ae.createElement(Ig,{position:le,centerX:U,centerY:te,radius:re,onMouseDown:gn,onMouseEnter:Ne,onMouseOut:de,type:"target"})))};return t.displayName="EdgeWrapper",h.memo(t)};function e1(e){const t={default:Wu(e.default||Vm),straight:Wu(e.bezier||op),step:Wu(e.step||ip),smoothstep:Wu(e.step||ah),simplebezier:Wu(e.simplebezier||sp)},r={},o=Object.keys(e).filter(a=>!["default","bezier"].includes(a)).reduce((a,c)=>(a[c]=Wu(e[c]||Vm),a),r);return{...t,...o}}function Fg(e,t,r=null){const o=((r==null?void 0:r.x)||0)+t.x,a=((r==null?void 0:r.y)||0)+t.y,c=(r==null?void 0:r.width)||t.width,u=(r==null?void 0:r.height)||t.height;switch(e){case It.Top:return{x:o+c/2,y:a};case It.Right:return{x:o+c,y:a+u/2};case It.Bottom:return{x:o+c/2,y:a+u};case It.Left:return{x:o,y:a+u/2}}}function Dg(e,t){return e?e.length===1||!t?e[0]:t&&e.find(r=>r.id===t)||null:null}const t1=(e,t,r,o,a,c)=>{const u=Fg(r,e,t),d=Fg(c,o,a);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y}};function n1({sourcePos:e,targetPos:t,sourceWidth:r,sourceHeight:o,targetWidth:a,targetHeight:c,width:u,height:d,transform:m}){const _={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+r,t.x+a),y2:Math.max(e.y+o,t.y+c)};_.x===_.x2&&(_.x2+=1),_.y===_.y2&&(_.y2+=1);const p=bf({x:(0-m[0])/m[2],y:(0-m[1])/m[2],width:u/m[2],height:d/m[2]}),x=Math.max(0,Math.min(p.x2,_.x2)-Math.max(p.x,_.x)),v=Math.max(0,Math.min(p.y2,_.y2)-Math.max(p.y,_.y));return Math.ceil(x*v)>0}function Bg(e){var o,a,c,u,d;const t=((o=e==null?void 0:e[ns])==null?void 0:o.handleBounds)||null,r=t&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((a=e==null?void 0:e.positionAbsolute)==null?void 0:a.x)<"u"&&typeof((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.y)<"u";return[{x:((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.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 r1=[{level:0,isMaxLevel:!0,edges:[]}];function s1(e,t,r=!1){let o=-1;const a=e.reduce((u,d)=>{var p,x;const m=$o(d.zIndex);let _=m?d.zIndex:0;if(r){const v=t.get(d.target),b=t.get(d.source),S=d.selected||(v==null?void 0:v.selected)||(b==null?void 0:b.selected),j=Math.max(((p=b==null?void 0:b[ns])==null?void 0:p.z)||0,((x=v==null?void 0:v[ns])==null?void 0:x.z)||0,1e3);_=(m?d.zIndex:0)+(S?j:0)}return u[_]?u[_].push(d):u[_]=[d],o=_>o?_:o,u},{}),c=Object.entries(a).map(([u,d])=>{const m=+u;return{edges:d,level:m,isMaxLevel:m===o}});return c.length===0?r1:c}function i1(e,t,r){const o=ur(h.useCallback(a=>e?a.edges.filter(c=>{const u=t.get(c.source),d=t.get(c.target);return(u==null?void 0:u.width)&&(u==null?void 0:u.height)&&(d==null?void 0:d.width)&&(d==null?void 0:d.height)&&n1({sourcePos:u.positionAbsolute||{x:0,y:0},targetPos:d.positionAbsolute||{x:0,y:0},sourceWidth:u.width,sourceHeight:u.height,targetWidth:d.width,targetHeight:d.height,width:a.width,height:a.height,transform:a.transform})}):a.edges,[e,t]));return s1(o,t,r)}const o1=({color:e="none",strokeWidth:t=1})=>Ae.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),a1=({color:e="none",strokeWidth:t=1})=>Ae.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Ug={[Sf.Arrow]:o1,[Sf.ArrowClosed]:a1};function l1(e){const t=_s();return h.useMemo(()=>{var a,c;return Object.prototype.hasOwnProperty.call(Ug,e)?Ug[e]:((c=(a=t.getState()).onError)==null||c.call(a,"009",fl.error009(e)),null)},[e])}const c1=({id:e,type:t,color:r,width:o=12.5,height:a=12.5,markerUnits:c="strokeWidth",strokeWidth:u,orient:d="auto-start-reverse"})=>{const m=l1(t);return m?Ae.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:c,orient:d,refX:"0",refY:"0"},Ae.createElement(m,{color:r,strokeWidth:u})):null},u1=({defaultColor:e,rfId:t})=>r=>{const o=[];return r.edges.reduce((a,c)=>([c.markerStart,c.markerEnd].forEach(u=>{if(u&&typeof u=="object"){const d=E_(u,t);o.includes(d)||(a.push({id:d,color:u.color||e,...u}),o.push(d))}}),a),[]).sort((a,c)=>a.id.localeCompare(c.id))},Qx=({defaultColor:e,rfId:t})=>{const r=ur(h.useCallback(u1({defaultColor:e,rfId:t}),[e,t]),(o,a)=>!(o.length!==a.length||o.some((c,u)=>c.id!==a[u].id)));return Ae.createElement("defs",null,r.map(o=>Ae.createElement(c1,{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})))};Qx.displayName="MarkerDefinitions";var d1=h.memo(Qx);const f1=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}),ev=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:r,rfId:o,edgeTypes:a,noPanClassName:c,onEdgeUpdate:u,onEdgeContextMenu:d,onEdgeMouseEnter:m,onEdgeMouseMove:_,onEdgeMouseLeave:p,onEdgeClick:x,edgeUpdaterRadius:v,onEdgeDoubleClick:b,onEdgeUpdateStart:S,onEdgeUpdateEnd:j,children:$})=>{const{edgesFocusable:T,edgesUpdatable:F,elementsSelectable:B,width:I,height:U,connectionMode:te,nodeInternals:K,onError:le}=ur(f1,Cs),ce=i1(t,K,r);return I?Ae.createElement(Ae.Fragment,null,ce.map(({level:pe,edges:Re,isMaxLevel:W})=>Ae.createElement("svg",{key:pe,style:{zIndex:pe},width:I,height:U,className:"react-flow__edges react-flow__container"},W&&Ae.createElement(d1,{defaultColor:e,rfId:o}),Ae.createElement("g",null,Re.map(z=>{const[P,G,H]=Bg(K.get(z.source)),[re,N,L]=Bg(K.get(z.target));if(!H||!L)return null;let q=z.type||"default";a[q]||(le==null||le("011",fl.error011(q)),q="default");const C=a[q]||a.default,X=te===Hc.Strict?N.target:(N.target??[]).concat(N.source??[]),se=Dg(G.source,z.sourceHandle),ie=Dg(X,z.targetHandle),ye=(se==null?void 0:se.position)||It.Bottom,Le=(ie==null?void 0:ie.position)||It.Top,Me=!!(z.focusable||T&&typeof z.focusable>"u"),De=typeof u<"u"&&(z.updatable||F&&typeof z.updatable>"u");if(!se||!ie)return le==null||le("008",fl.error008(se,z)),null;const{sourceX:We,sourceY:ve,targetX:Pe,targetY:me}=t1(P,se,ye,re,ie,Le);return Ae.createElement(C,{key:z.id,id:z.id,className:Fs([z.className,c]),type:q,data:z.data,selected:!!z.selected,animated:!!z.animated,hidden:!!z.hidden,label:z.label,labelStyle:z.labelStyle,labelShowBg:z.labelShowBg,labelBgStyle:z.labelBgStyle,labelBgPadding:z.labelBgPadding,labelBgBorderRadius:z.labelBgBorderRadius,style:z.style,source:z.source,target:z.target,sourceHandleId:z.sourceHandle,targetHandleId:z.targetHandle,markerEnd:z.markerEnd,markerStart:z.markerStart,sourceX:We,sourceY:ve,targetX:Pe,targetY:me,sourcePosition:ye,targetPosition:Le,elementsSelectable:B,onEdgeUpdate:u,onContextMenu:d,onMouseEnter:m,onMouseMove:_,onMouseLeave:p,onClick:x,edgeUpdaterRadius:v,onEdgeDoubleClick:b,onEdgeUpdateStart:S,onEdgeUpdateEnd:j,rfId:o,ariaLabel:z.ariaLabel,isFocusable:Me,isUpdatable:De,pathOptions:"pathOptions"in z?z.pathOptions:void 0,interactionWidth:z.interactionWidth})})))),$):null};ev.displayName="EdgeRenderer";var m1=h.memo(ev);const h1=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function _1({children:e}){const t=ur(h1);return Ae.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function p1(e){const t=up(),r=h.useRef(!1);h.useEffect(()=>{!r.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),r.current=!0)},[e,t.viewportInitialized])}const g1={[It.Left]:It.Right,[It.Right]:It.Left,[It.Top]:It.Bottom,[It.Bottom]:It.Top},tv=({nodeId:e,handleType:t,style:r,type:o=tc.Bezier,CustomComponent:a,connectionStatus:c})=>{var te,K,le;const{fromNode:u,handleId:d,toX:m,toY:_,connectionMode:p}=ur(h.useCallback(ce=>({fromNode:ce.nodeInternals.get(e),handleId:ce.connectionHandleId,toX:(ce.connectionPosition.x-ce.transform[0])/ce.transform[2],toY:(ce.connectionPosition.y-ce.transform[1])/ce.transform[2],connectionMode:ce.connectionMode}),[e]),Cs),x=(te=u==null?void 0:u[ns])==null?void 0:te.handleBounds;let v=x==null?void 0:x[t];if(p===Hc.Loose&&(v=v||(x==null?void 0:x[t==="source"?"target":"source"])),!u||!v)return null;const b=d?v.find(ce=>ce.id===d):v[0],S=b?b.x+b.width/2:(u.width??0)/2,j=b?b.y+b.height/2:u.height??0,$=(((K=u.positionAbsolute)==null?void 0:K.x)??0)+S,T=(((le=u.positionAbsolute)==null?void 0:le.y)??0)+j,F=b==null?void 0:b.position,B=F?g1[F]:null;if(!F||!B)return null;if(a)return Ae.createElement(a,{connectionLineType:o,connectionLineStyle:r,fromNode:u,fromHandle:b,fromX:$,fromY:T,toX:m,toY:_,fromPosition:F,toPosition:B,connectionStatus:c});let I="";const U={sourceX:$,sourceY:T,sourcePosition:F,targetX:m,targetY:_,targetPosition:B};return o===tc.Bezier?[I]=Nx(U):o===tc.Step?[I]=C_({...U,borderRadius:0}):o===tc.SmoothStep?[I]=C_(U):o===tc.SimpleBezier?[I]=kx(U):I=`M${$},${T} ${m},${_}`,Ae.createElement("path",{d:I,fill:"none",className:"react-flow__connection-path",style:r})};tv.displayName="ConnectionLine";const y1=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function x1({containerStyle:e,style:t,type:r,component:o}){const{nodeId:a,handleType:c,nodesConnectable:u,width:d,height:m,connectionStatus:_}=ur(y1,Cs);return!(a&&c&&d&&u)?null:Ae.createElement("svg",{style:e,width:d,height:m,className:"react-flow__edges react-flow__connectionline react-flow__container"},Ae.createElement("g",{className:Fs(["react-flow__connection",_])},Ae.createElement(tv,{nodeId:a,handleType:c,style:t,type:r,CustomComponent:o,connectionStatus:_})))}function Wg(e,t){return h.useRef(null),_s(),h.useMemo(()=>t(e),[e])}const nv=({nodeTypes:e,edgeTypes:t,onMove:r,onMoveStart:o,onMoveEnd:a,onInit:c,onNodeClick:u,onEdgeClick:d,onNodeDoubleClick:m,onEdgeDoubleClick:_,onNodeMouseEnter:p,onNodeMouseMove:x,onNodeMouseLeave:v,onNodeContextMenu:b,onSelectionContextMenu:S,onSelectionStart:j,onSelectionEnd:$,connectionLineType:T,connectionLineStyle:F,connectionLineComponent:B,connectionLineContainerStyle:I,selectionKeyCode:U,selectionOnDrag:te,selectionMode:K,multiSelectionKeyCode:le,panActivationKeyCode:ce,zoomActivationKeyCode:pe,deleteKeyCode:Re,onlyRenderVisibleElements:W,elementsSelectable:z,selectNodesOnDrag:P,defaultViewport:G,translateExtent:H,minZoom:re,maxZoom:N,preventScrolling:L,defaultMarkerColor:q,zoomOnScroll:C,zoomOnPinch:X,panOnScroll:se,panOnScrollSpeed:ie,panOnScrollMode:ye,zoomOnDoubleClick:Le,panOnDrag:Me,onPaneClick:De,onPaneMouseEnter:We,onPaneMouseMove:ve,onPaneMouseLeave:Pe,onPaneScroll:me,onPaneContextMenu:we,onEdgeUpdate:Oe,onEdgeContextMenu:qe,onEdgeMouseEnter:rt,onEdgeMouseMove:ke,onEdgeMouseLeave:Fe,edgeUpdaterRadius:ot,onEdgeUpdateStart:Et,onEdgeUpdateEnd:Lt,noDragClassName:ae,noWheelClassName:Kt,noPanClassName:un,elevateEdgesOnSelect:gn,disableKeyboardA11y:Ne,nodeOrigin:de,nodeExtent:Ee,rfId:$t})=>{const bt=Wg(e,GN),Xt=Wg(t,e1);return p1(c),Ae.createElement(HN,{onPaneClick:De,onPaneMouseEnter:We,onPaneMouseMove:ve,onPaneMouseLeave:Pe,onPaneContextMenu:we,onPaneScroll:me,deleteKeyCode:Re,selectionKeyCode:U,selectionOnDrag:te,selectionMode:K,onSelectionStart:j,onSelectionEnd:$,multiSelectionKeyCode:le,panActivationKeyCode:ce,zoomActivationKeyCode:pe,elementsSelectable:z,onMove:r,onMoveStart:o,onMoveEnd:a,zoomOnScroll:C,zoomOnPinch:X,zoomOnDoubleClick:Le,panOnScroll:se,panOnScrollSpeed:ie,panOnScrollMode:ye,panOnDrag:Me,defaultViewport:G,translateExtent:H,minZoom:re,maxZoom:N,onSelectionContextMenu:S,preventScrolling:L,noDragClassName:ae,noWheelClassName:Kt,noPanClassName:un,disableKeyboardA11y:Ne},Ae.createElement(_1,null,Ae.createElement(m1,{edgeTypes:Xt,onEdgeClick:d,onEdgeDoubleClick:_,onEdgeUpdate:Oe,onlyRenderVisibleElements:W,onEdgeContextMenu:qe,onEdgeMouseEnter:rt,onEdgeMouseMove:ke,onEdgeMouseLeave:Fe,onEdgeUpdateStart:Et,onEdgeUpdateEnd:Lt,edgeUpdaterRadius:ot,defaultMarkerColor:q,noPanClassName:un,elevateEdgesOnSelect:!!gn,disableKeyboardA11y:Ne,rfId:$t},Ae.createElement(x1,{style:F,type:T,component:B,containerStyle:I})),Ae.createElement("div",{className:"react-flow__edgelabel-renderer"}),Ae.createElement(JN,{nodeTypes:bt,onNodeClick:u,onNodeDoubleClick:m,onNodeMouseEnter:p,onNodeMouseMove:x,onNodeMouseLeave:v,onNodeContextMenu:b,selectNodesOnDrag:P,onlyRenderVisibleElements:W,noPanClassName:un,noDragClassName:ae,disableKeyboardA11y:Ne,nodeOrigin:de,nodeExtent:Ee,rfId:$t})))};nv.displayName="GraphView";var v1=h.memo(nv);const T_=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Jl={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:T_,nodeExtent:T_,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Hc.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:Gk,isValidConnection:void 0},w1=()=>l0((e,t)=>({...Jl,setNodes:r=>{const{nodeInternals:o,nodeOrigin:a,elevateNodesOnSelect:c}=t();e({nodeInternals:Xh(r,o,a,c)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:o={}}=t();e({edges:r.map(a=>({...o,...a}))})},setDefaultNodesAndEdges:(r,o)=>{const a=typeof r<"u",c=typeof o<"u",u=a?Xh(r,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:c?o:[],hasDefaultNodes:a,hasDefaultEdges:c})},updateNodeDimensions:r=>{const{onNodesChange:o,nodeInternals:a,fitViewOnInit:c,fitViewOnInitDone:u,fitViewOnInitOptions:d,domNode:m,nodeOrigin:_}=t(),p=m==null?void 0:m.querySelector(".react-flow__viewport");if(!p)return;const x=window.getComputedStyle(p),{m22:v}=new window.DOMMatrixReadOnly(x.transform),b=r.reduce((j,$)=>{const T=a.get($.id);if(T){const F=np($.nodeElement);!!(F.width&&F.height&&(T.width!==F.width||T.height!==F.height||$.forceUpdate))&&(a.set(T.id,{...T,[ns]:{...T[ns],handleBounds:{source:Pg(".source",$.nodeElement,v,_),target:Pg(".target",$.nodeElement,v,_)}},...F}),j.push({id:T.id,type:"dimensions",dimensions:F}))}return j},[]);qx(a,_);const S=u||c&&!u&&Hx(t,{initial:!0,...d});e({nodeInternals:new Map(a),fitViewOnInitDone:S}),(b==null?void 0:b.length)>0&&(o==null||o(b))},updateNodePositions:(r,o=!0,a=!1)=>{const{triggerNodeChanges:c}=t(),u=r.map(d=>{const m={id:d.id,type:"position",dragging:a};return o&&(m.positionAbsolute=d.positionAbsolute,m.position=d.position),m});c(u)},triggerNodeChanges:r=>{const{onNodesChange:o,nodeInternals:a,hasDefaultNodes:c,nodeOrigin:u,getNodes:d,elevateNodesOnSelect:m}=t();if(r!=null&&r.length){if(c){const _=PN(r,d()),p=Xh(_,a,u,m);e({nodeInternals:p})}o==null||o(r)}},addSelectedNodes:r=>{const{multiSelectionActive:o,edges:a,getNodes:c}=t();let u,d=null;o?u=r.map(m=>ec(m,!0)):(u=Xu(c(),r),d=Xu(a,[])),bm({changedNodes:u,changedEdges:d,get:t,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:o,edges:a,getNodes:c}=t();let u,d=null;o?u=r.map(m=>ec(m,!0)):(u=Xu(a,r),d=Xu(c(),[])),bm({changedNodes:d,changedEdges:u,get:t,set:e})},unselectNodesAndEdges:({nodes:r,edges:o}={})=>{const{edges:a,getNodes:c}=t(),u=r||c(),d=o||a,m=u.map(p=>(p.selected=!1,ec(p.id,!1))),_=d.map(p=>ec(p.id,!1));bm({changedNodes:m,changedEdges:_,get:t,set:e})},setMinZoom:r=>{const{d3Zoom:o,maxZoom:a}=t();o==null||o.scaleExtent([r,a]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:o,minZoom:a}=t();o==null||o.scaleExtent([a,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(),c=o().filter(d=>d.selected).map(d=>ec(d.id,!1)),u=r.filter(d=>d.selected).map(d=>ec(d.id,!1));bm({changedNodes:c,changedEdges:u,get:t,set:e})},setNodeExtent:r=>{const{nodeInternals:o}=t();o.forEach(a=>{a.positionAbsolute=rp(a.position,r)}),e({nodeExtent:r,nodeInternals:new Map(o)})},panBy:r=>{const{transform:o,width:a,height:c,d3Zoom:u,d3Selection:d,translateExtent:m}=t();if(!u||!d||!r.x&&!r.y)return!1;const _=cl.translate(o[0]+r.x,o[1]+r.y).scale(o[2]),p=[[0,0],[a,c]],x=u==null?void 0:u.constrain()(_,p,m);return u.transform(d,x),o[0]!==x.x||o[1]!==x.y||o[2]!==x.k},cancelConnection:()=>e({connectionNodeId:Jl.connectionNodeId,connectionHandleId:Jl.connectionHandleId,connectionHandleType:Jl.connectionHandleType,connectionStatus:Jl.connectionStatus,connectionStartHandle:Jl.connectionStartHandle,connectionEndHandle:Jl.connectionEndHandle}),reset:()=>e({...Jl})}),Object.is),fp=({children:e})=>{const t=h.useRef(null);return t.current||(t.current=w1()),Ae.createElement(Dk,{value:t.current},e)};fp.displayName="ReactFlowProvider";const rv=({children:e})=>h.useContext(oh)?Ae.createElement(Ae.Fragment,null,e):Ae.createElement(fp,null,e);rv.displayName="ReactFlowWrapper";const b1={input:Ox,default:A_,output:Fx,group:cp},j1={default:Vm,straight:op,step:ip,smoothstep:ah,simplebezier:sp},S1=[0,0],k1=[15,15],N1={x:0,y:0,zoom:1},C1={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},sv=h.forwardRef(({nodes:e,edges:t,defaultNodes:r,defaultEdges:o,className:a,nodeTypes:c=b1,edgeTypes:u=j1,onNodeClick:d,onEdgeClick:m,onInit:_,onMove:p,onMoveStart:x,onMoveEnd:v,onConnect:b,onConnectStart:S,onConnectEnd:j,onClickConnectStart:$,onClickConnectEnd:T,onNodeMouseEnter:F,onNodeMouseMove:B,onNodeMouseLeave:I,onNodeContextMenu:U,onNodeDoubleClick:te,onNodeDragStart:K,onNodeDrag:le,onNodeDragStop:ce,onNodesDelete:pe,onEdgesDelete:Re,onSelectionChange:W,onSelectionDragStart:z,onSelectionDrag:P,onSelectionDragStop:G,onSelectionContextMenu:H,onSelectionStart:re,onSelectionEnd:N,connectionMode:L=Hc.Strict,connectionLineType:q=tc.Bezier,connectionLineStyle:C,connectionLineComponent:X,connectionLineContainerStyle:se,deleteKeyCode:ie="Backspace",selectionKeyCode:ye="Shift",selectionOnDrag:Le=!1,selectionMode:Me=jf.Full,panActivationKeyCode:De="Space",multiSelectionKeyCode:We=Hm()?"Meta":"Control",zoomActivationKeyCode:ve=Hm()?"Meta":"Control",snapToGrid:Pe=!1,snapGrid:me=k1,onlyRenderVisibleElements:we=!1,selectNodesOnDrag:Oe=!0,nodesDraggable:qe,nodesConnectable:rt,nodesFocusable:ke,nodeOrigin:Fe=S1,edgesFocusable:ot,edgesUpdatable:Et,elementsSelectable:Lt,defaultViewport:ae=N1,minZoom:Kt=.5,maxZoom:un=2,translateExtent:gn=T_,preventScrolling:Ne=!0,nodeExtent:de,defaultMarkerColor:Ee="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:bt=!0,panOnScroll:Xt=!1,panOnScrollSpeed:Dn=.5,panOnScrollMode:ln=Fc.Free,zoomOnDoubleClick:yn=!0,panOnDrag:Tn=!0,onPaneClick:xn,onPaneMouseEnter:ir,onPaneMouseMove:Qt,onPaneMouseLeave:Mr,onPaneScroll:ps,onPaneContextMenu:Rn,children:he,onEdgeUpdate:Ce,onEdgeContextMenu:gt,onEdgeDoubleClick:dt,onEdgeMouseEnter:kt,onEdgeMouseMove:Tt,onEdgeMouseLeave:qt,onEdgeUpdateStart:Dt,onEdgeUpdateEnd:_n,edgeUpdaterRadius:Ot=10,onNodesChange:vn,onEdgesChange:dn,noDragClassName:nn="nodrag",noWheelClassName:on="nowheel",noPanClassName:Gt="nopan",fitView:at=!1,fitViewOptions:jn,connectOnClick:Bn=!0,attributionPosition:Ln,proOptions:Un,defaultEdgeOptions:lr,elevateNodesOnSelect:dr=!0,elevateEdgesOnSelect:br=!1,disableKeyboardA11y:rs=!1,autoPanOnConnect:gs=!0,autoPanOnNodeDrag:Ds=!0,connectionRadius:Ao=20,isValidConnection:co,onError:ys,style:En,id:Fi,nodeDragThreshold:Di,...Tr},er)=>{const ct=Fi||"1";return Ae.createElement("div",{...Tr,style:{...En,...C1},ref:er,className:Fs(["react-flow",a]),"data-testid":"rf__wrapper",id:Fi},Ae.createElement(rv,null,Ae.createElement(v1,{onInit:_,onMove:p,onMoveStart:x,onMoveEnd:v,onNodeClick:d,onEdgeClick:m,onNodeMouseEnter:F,onNodeMouseMove:B,onNodeMouseLeave:I,onNodeContextMenu:U,onNodeDoubleClick:te,nodeTypes:c,edgeTypes:u,connectionLineType:q,connectionLineStyle:C,connectionLineComponent:X,connectionLineContainerStyle:se,selectionKeyCode:ye,selectionOnDrag:Le,selectionMode:Me,deleteKeyCode:ie,multiSelectionKeyCode:We,panActivationKeyCode:De,zoomActivationKeyCode:ve,onlyRenderVisibleElements:we,selectNodesOnDrag:Oe,defaultViewport:ae,translateExtent:gn,minZoom:Kt,maxZoom:un,preventScrolling:Ne,zoomOnScroll:$t,zoomOnPinch:bt,zoomOnDoubleClick:yn,panOnScroll:Xt,panOnScrollSpeed:Dn,panOnScrollMode:ln,panOnDrag:Tn,onPaneClick:xn,onPaneMouseEnter:ir,onPaneMouseMove:Qt,onPaneMouseLeave:Mr,onPaneScroll:ps,onPaneContextMenu:Rn,onSelectionContextMenu:H,onSelectionStart:re,onSelectionEnd:N,onEdgeUpdate:Ce,onEdgeContextMenu:gt,onEdgeDoubleClick:dt,onEdgeMouseEnter:kt,onEdgeMouseMove:Tt,onEdgeMouseLeave:qt,onEdgeUpdateStart:Dt,onEdgeUpdateEnd:_n,edgeUpdaterRadius:Ot,defaultMarkerColor:Ee,noDragClassName:nn,noWheelClassName:on,noPanClassName:Gt,elevateEdgesOnSelect:br,rfId:ct,disableKeyboardA11y:rs,nodeOrigin:Fe,nodeExtent:de}),Ae.createElement(pN,{nodes:e,edges:t,defaultNodes:r,defaultEdges:o,onConnect:b,onConnectStart:S,onConnectEnd:j,onClickConnectStart:$,onClickConnectEnd:T,nodesDraggable:qe,nodesConnectable:rt,nodesFocusable:ke,edgesFocusable:ot,edgesUpdatable:Et,elementsSelectable:Lt,elevateNodesOnSelect:dr,minZoom:Kt,maxZoom:un,nodeExtent:de,onNodesChange:vn,onEdgesChange:dn,snapToGrid:Pe,snapGrid:me,connectionMode:L,translateExtent:gn,connectOnClick:Bn,defaultEdgeOptions:lr,fitView:at,fitViewOptions:jn,onNodesDelete:pe,onEdgesDelete:Re,onNodeDragStart:K,onNodeDrag:le,onNodeDragStop:ce,onSelectionDrag:P,onSelectionDragStart:z,onSelectionDragStop:G,noPanClassName:Gt,nodeOrigin:Fe,rfId:ct,autoPanOnConnect:gs,autoPanOnNodeDrag:Ds,onError:ys,connectionRadius:Ao,isValidConnection:co,nodeDragThreshold:Di}),Ae.createElement(hN,{onSelectionChange:W}),he,Ae.createElement(Uk,{proOptions:Un,position:Ln}),Ae.createElement(wN,{rfId:ct,disableKeyboardA11y:rs})))});sv.displayName="ReactFlow";const iv=({id:e,x:t,y:r,width:o,height:a,style:c,color:u,strokeColor:d,strokeWidth:m,className:_,borderRadius:p,shapeRendering:x,onClick:v,selected:b})=>{const{background:S,backgroundColor:j}=c||{},$=u||S||j;return Ae.createElement("rect",{className:Fs(["react-flow__minimap-node",{selected:b},_]),x:t,y:r,rx:p,ry:p,width:o,height:a,fill:$,stroke:d,strokeWidth:m,shapeRendering:x,onClick:v?T=>v(T,e):void 0})};iv.displayName="MiniMapNode";var E1=h.memo(iv);const $1=e=>e.nodeOrigin,A1=e=>e.getNodes().filter(t=>!t.hidden&&t.width&&t.height),Qh=e=>e instanceof Function?e:()=>e;function M1({nodeStrokeColor:e="transparent",nodeColor:t="#e2e2e2",nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a=2,nodeComponent:c=E1,onClick:u}){const d=ur(A1,Cs),m=ur($1),_=Qh(t),p=Qh(e),x=Qh(r),v=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return Ae.createElement(Ae.Fragment,null,d.map(b=>{const{x:S,y:j}=Uc(b,m).positionAbsolute;return Ae.createElement(c,{key:b.id,x:S,y:j,width:b.width,height:b.height,style:b.style,selected:b.selected,className:x(b),color:_(b),borderRadius:o,strokeColor:p(b),strokeWidth:a,shapeRendering:v,onClick:u,id:b.id})}))}var T1=h.memo(M1);const z1=200,R1=150,L1=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?Hk(lh(t,e.nodeOrigin),r):r,rfId:e.rfId}},P1="react-flow__minimap-desc";function ov({style:e,className:t,nodeStrokeColor:r="transparent",nodeColor:o="#e2e2e2",nodeClassName:a="",nodeBorderRadius:c=5,nodeStrokeWidth:u=2,nodeComponent:d,maskColor:m="rgb(240, 240, 240, 0.6)",maskStrokeColor:_="none",maskStrokeWidth:p=1,position:x="bottom-right",onClick:v,onNodeClick:b,pannable:S=!1,zoomable:j=!1,ariaLabel:$="React Flow mini map",inversePan:T=!1,zoomStep:F=10,offsetScale:B=5}){const I=_s(),U=h.useRef(null),{boundingRect:te,viewBB:K,rfId:le}=ur(L1,Cs),ce=(e==null?void 0:e.width)??z1,pe=(e==null?void 0:e.height)??R1,Re=te.width/ce,W=te.height/pe,z=Math.max(Re,W),P=z*ce,G=z*pe,H=B*z,re=te.x-(P-te.width)/2-H,N=te.y-(G-te.height)/2-H,L=P+H*2,q=G+H*2,C=`${P1}-${le}`,X=h.useRef(0);X.current=z,h.useEffect(()=>{if(U.current){const ye=Eo(U.current),Le=We=>{const{transform:ve,d3Selection:Pe,d3Zoom:me}=I.getState();if(We.sourceEvent.type!=="wheel"||!Pe||!me)return;const we=-We.sourceEvent.deltaY*(We.sourceEvent.deltaMode===1?.05:We.sourceEvent.deltaMode?1:.002)*F,Oe=ve[2]*Math.pow(2,we);me.scaleTo(Pe,Oe)},Me=We=>{const{transform:ve,d3Selection:Pe,d3Zoom:me,translateExtent:we,width:Oe,height:qe}=I.getState();if(We.sourceEvent.type!=="mousemove"||!Pe||!me)return;const rt=X.current*Math.max(1,ve[2])*(T?-1:1),ke={x:ve[0]-We.sourceEvent.movementX*rt,y:ve[1]-We.sourceEvent.movementY*rt},Fe=[[0,0],[Oe,qe]],ot=cl.translate(ke.x,ke.y).scale(ve[2]),Et=me.constrain()(ot,Fe,we);me.transform(Pe,Et)},De=_x().on("zoom",S?Me:null).on("zoom.wheel",j?Le:null);return ye.call(De),()=>{ye.on("zoom",null)}}},[S,j,T,F]);const se=v?ye=>{const Le=Qo(ye);v(ye,{x:Le[0],y:Le[1]})}:void 0,ie=b?(ye,Le)=>{const Me=I.getState().nodeInternals.get(Le);b(ye,Me)}:void 0;return Ae.createElement(wf,{position:x,style:e,className:Fs(["react-flow__minimap",t]),"data-testid":"rf__minimap"},Ae.createElement("svg",{width:ce,height:pe,viewBox:`${re} ${N} ${L} ${q}`,role:"img","aria-labelledby":C,ref:U,onClick:se},$&&Ae.createElement("title",{id:C},$),Ae.createElement(T1,{onClick:ie,nodeColor:o,nodeStrokeColor:r,nodeBorderRadius:c,nodeClassName:a,nodeStrokeWidth:u,nodeComponent:d}),Ae.createElement("path",{className:"react-flow__minimap-mask",d:`M${re-H},${N-H}h${L+H*2}v${q+H*2}h${-L-H*2}z
|
|
134
|
-
M${K.x},${K.y}h${K.width}v${K.height}h${-K.width}z`,fill:m,fillRule:"evenodd",stroke:_,strokeWidth:p,pointerEvents:"none"})))}ov.displayName="MiniMap";var O1=h.memo(ov);function I1(){return Ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},Ae.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function F1(){return Ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Ae.createElement("path",{d:"M0 0h32v4.2H0z"}))}function D1(){return Ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Ae.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 B1(){return Ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Ae.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 U1(){return Ae.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},Ae.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 Ju=({children:e,className:t,...r})=>Ae.createElement("button",{type:"button",className:Fs(["react-flow__controls-button",t]),...r},e);Ju.displayName="ControlButton";const W1=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),av=({style:e,showZoom:t=!0,showFitView:r=!0,showInteractive:o=!0,fitViewOptions:a,onZoomIn:c,onZoomOut:u,onFitView:d,onInteractiveChange:m,className:_,children:p,position:x="bottom-left"})=>{const v=_s(),[b,S]=h.useState(!1),{isInteractive:j,minZoomReached:$,maxZoomReached:T}=ur(W1,Cs),{zoomIn:F,zoomOut:B,fitView:I}=up();if(h.useEffect(()=>{S(!0)},[]),!b)return null;const U=()=>{F(),c==null||c()},te=()=>{B(),u==null||u()},K=()=>{I(a),d==null||d()},le=()=>{v.setState({nodesDraggable:!j,nodesConnectable:!j,elementsSelectable:!j}),m==null||m(!j)};return Ae.createElement(wf,{className:Fs(["react-flow__controls",_]),position:x,style:e,"data-testid":"rf__controls"},t&&Ae.createElement(Ae.Fragment,null,Ae.createElement(Ju,{onClick:U,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:T},Ae.createElement(I1,null)),Ae.createElement(Ju,{onClick:te,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:$},Ae.createElement(F1,null))),r&&Ae.createElement(Ju,{className:"react-flow__controls-fitview",onClick:K,title:"fit view","aria-label":"fit view"},Ae.createElement(D1,null)),o&&Ae.createElement(Ju,{className:"react-flow__controls-interactive",onClick:le,title:"toggle interactivity","aria-label":"toggle interactivity"},j?Ae.createElement(U1,null):Ae.createElement(B1,null)),p)};av.displayName="Controls";var q1=h.memo(av),ta;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(ta||(ta={}));function H1({color:e,dimensions:t,lineWidth:r}){return Ae.createElement("path",{stroke:e,strokeWidth:r,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function V1({color:e,radius:t}){return Ae.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const G1={[ta.Dots]:"#91919a",[ta.Lines]:"#eee",[ta.Cross]:"#e2e2e2"},Y1={[ta.Dots]:1,[ta.Lines]:1,[ta.Cross]:6},X1=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function lv({id:e,variant:t=ta.Dots,gap:r=20,size:o,lineWidth:a=1,offset:c=2,color:u,style:d,className:m}){const _=h.useRef(null),{transform:p,patternId:x}=ur(X1,Cs),v=u||G1[t],b=o||Y1[t],S=t===ta.Dots,j=t===ta.Cross,$=Array.isArray(r)?r:[r,r],T=[$[0]*p[2]||1,$[1]*p[2]||1],F=b*p[2],B=j?[F,F]:T,I=S?[F/c,F/c]:[B[0]/c,B[1]/c];return Ae.createElement("svg",{className:Fs(["react-flow__background",m]),style:{...d,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:_,"data-testid":"rf__background"},Ae.createElement("pattern",{id:x+e,x:p[0]%T[0],y:p[1]%T[1],width:T[0],height:T[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${I[0]},-${I[1]})`},S?Ae.createElement(V1,{color:v,radius:F/c}):Ae.createElement(H1,{dimensions:B,color:v,lineWidth:a})),Ae.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${x+e})`}))}lv.displayName="Background";var J1=h.memo(lv);function cv(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,a=typeof r.y=="number"&&Number.isFinite(r.y)?r.y:null,c=typeof r.zoom=="number"&&Number.isFinite(r.zoom)?r.zoom:null;if(o===null||a===null||c===null)return null;const u=typeof t.maxAbsTranslate=="number"&&Number.isFinite(t.maxAbsTranslate)?Math.abs(t.maxAbsTranslate):1e6;if(Math.abs(o)>u||Math.abs(a)>u)return null;const d=typeof t.minZoom=="number"&&Number.isFinite(t.minZoom)?t.minZoom:.025,m=typeof t.maxZoom=="number"&&Number.isFinite(t.maxZoom)?t.maxZoom:6,_=Math.min(d,m),p=Math.max(d,m);return{x:o,y:a,zoom:Math.min(p,Math.max(_,c))}}function Ym(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 K1(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(),a=t.slice(r+1).toLowerCase();if(o==="ex"){const c=a.indexOf("-"),u=c>0?a.slice(0,c):a;return u==="person"?"person":u==="org"?"org":u==="concept"?"concept":u==="claim"?"claim":u==="event"?"event":u==="doc"?"doc":u==="thing"?"thing":"entity"}return o==="schema"||o==="skos"||o==="dcterms"||o==="rdf"||o==="cito"?"vocab":"entity"}function Z1(e){const t=String(e||"").trim();if(!t)return"";const r=t.indexOf(":");if(r<=0||r>=t.length-1)return Ym(t);const o=t.slice(0,r).toLowerCase(),a=t.slice(r+1);if(o==="ex"){const c=a.indexOf("-");if(c>0&&c<a.length-1)return a.slice(c+1)}return Ym(t)}function z_(e){const o=Math.max(1,Math.ceil(Math.sqrt(e.length))),a={};for(let c=0;c<e.length;c++){const u=Math.floor(c/o),d=c%o;a[e[c]]={x:d*240,y:u*120}}return a}function R_(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 uv(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 Q1(e,t){const r={},o=e.length;if(!o)return r;const a=Math.max(260,Math.sqrt(o)*150),c=t%360*Math.PI/180;for(let u=0;u<o;u++){const d=c+2*Math.PI*u/o;r[e[u]]={x:a*Math.cos(d),y:a*Math.sin(d)}}return r}function qg(e,t,r){var S;const o={};if(!e.length)return o;const a=new Map;for(const j of e)a.set(j,new Set);for(const j of t){const $=String((j==null?void 0:j.source)||"").trim(),T=String((j==null?void 0:j.target)||"").trim();if(!$||!T||$===T)continue;const F=a.get($),B=a.get(T);F&&F.add(T),B&&B.add($)}let c=e[0],u=-1;for(const j of e){const $=((S=a.get(j))==null?void 0:S.size)??0;($>u||$===u&&j.localeCompare(c)<0)&&(c=j,u=$)}const d=new Map,m=[];for(d.set(c,0),m.push(c);m.length;){const j=m.shift(),$=d.get(j)??0,T=Array.from(a.get(j)??[]);T.sort((F,B)=>F.localeCompare(B));for(const F of T)d.has(F)||(d.set(F,$+1),m.push(F))}let _=0;for(const j of d.values())_=Math.max(_,j);for(const j of e)d.has(j)||d.set(j,_+1);const p=new Map;for(const j of e){const $=d.get(j)??0,T=p.get($);T?T.push(j):p.set($,[j])}const x=Array.from(p.keys()).sort((j,$)=>j-$),v=260,b=r%360*Math.PI/180;for(const j of x){const $=p.get(j)||[];if($.sort((I,U)=>I.localeCompare(U)),j===0){if($.length===1)o[$[0]]={x:0,y:0};else for(let U=0;U<$.length;U++){const te=b+2*Math.PI*U/$.length;o[$[U]]={x:80*Math.cos(te),y:80*Math.sin(te)}}continue}const T=v*j,F=$.length;if(F===1){o[$[0]]={x:T,y:0};continue}const B=b+j*.35;for(let I=0;I<F;I++){const U=B+2*Math.PI*I/F;o[$[I]]={x:T*Math.cos(U),y:T*Math.sin(U)}}}return o}function Vu(e,t={}){const r=t.kind??"grid",o=typeof t.seed=="number"&&Number.isFinite(t.seed)?Math.trunc(t.seed):0,a=e.nodes.map(c=>c.id);if(r==="grid")return z_(a);if(r==="circle")return Q1(a,o);if(r==="radial")return qg(a,e.edges,o);if(r==="force"){const c=qg(a,e.edges,o),u=uv(o||1),d=Math.max(10,Math.min(42,Math.sqrt(a.length)*2.75)),m={};for(const _ of a){const p=c[_]||{x:0,y:0};m[_]={x:p.x+(u()-.5)*d,y:p.y+(u()-.5)*d}}return m}return z_(a)}function eC(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 tC(e,t={}){const r=!!(t.groupEdges??!0),o=Math.max(1,t.maxEdgeLabelPredicates??3),a=eC(e),c=new Set;for(const v of a){const b=String(v.subject||"").trim(),S=String(v.object||"").trim();b&&c.add(b),S&&c.add(S)}const u=Array.from(c);u.sort((v,b)=>v.localeCompare(b));const d=z_(u),m=u.map(v=>({id:v,type:"default",data:{label:Z1(v),kind:K1(v)},position:d[v]||{x:0,y:0}})),_=new Map,p=(v,b)=>{const S=String(v.subject||"").trim(),j=String(v.object||"").trim(),$=String(v.predicate||"").trim();return r?`edge:${S}:${j}`:`edge:${b}:${S}:${$}:${j}`};for(let v=0;v<a.length;v++){const b=a[v],S=p(b,v),j=_.get(S);j?j.push(b):_.set(S,[b])}const x=[];for(const[v,b]of _.entries()){const S=b[0],j=String(S.subject||"").trim(),$=String(S.object||"").trim();if(!j||!$)continue;const T=new Map;for(const K of b){const le=String(K.predicate||"").trim();le&&T.set(le,(T.get(le)||0)+1)}const F=Array.from(T.entries());F.sort((K,le)=>le[1]-K[1]||K[0].localeCompare(le[0]));const I=F.slice(0,o).map(([K,le])=>le>1?`${Ym(K)}×${le}`:Ym(K)).join(" | "),U=F.length>o?` +${F.length-o}`:"",te=`${I}${U}`.trim();x.push({id:v,source:j,target:$,label:te,animated:!1,data:{assertions:b,predicateSummary:te}})}return{nodes:m,edges:x}}function nC(e,t,r,o={}){const a=o.directed!==!1,c=String(t||"").trim(),u=String(r||"").trim();if(!c||!u)return null;if(c===u)return{nodeIds:[c],edgeIds:[]};const d=new Map,m=(j,$,T)=>{const F=d.get(j);F?F.push({to:$,edgeId:T}):d.set(j,[{to:$,edgeId:T}])};for(const j of e.edges)m(j.source,j.target,j.id),a||m(j.target,j.source,j.id);const _=[c],p=new Map,x=new Map;for(p.set(c,null),x.set(c,null);_.length;){const j=_.shift(),$=d.get(j)||[];for(const T of $)if(!p.has(T.to)){if(p.set(T.to,j),x.set(T.to,T.edgeId),T.to===u){_.length=0;break}_.push(T.to)}}if(!p.has(u))return null;const v=[],b=[];let S=u;for(;S;){v.push(S);const j=x.get(S);j&&b.push(j),S=p.get(S)||null}return v.reverse(),b.reverse(),{nodeIds:v,edgeIds:b}}const Hg={seed:1,dt:1,springLength:240,springStrength:.03,repulsionStrength:9e3,centeringStrength:.003,damping:.85,maxSpeed:90,maxRepulsionNodes:320};function Sm(e,t={}){const r={...Hg,...t,seed:typeof t.seed=="number"&&Number.isFinite(t.seed)?Math.trunc(t.seed):Hg.seed},o=e.nodes.map(b=>b.id),a=o.length,c=new Float64Array(2*a),u=new Float64Array(2*a),d=new Float64Array(2*a),m=new Map;for(let b=0;b<a;b++)m.set(o[b],b);const _=t.positions??Vu(e,{kind:"force",seed:r.seed}),p=uv(r.seed||1),x=Math.max(8,Math.min(38,Math.sqrt(a)*2.25));for(let b=0;b<a;b++){const S=o[b],j=_[S],$=typeof(j==null?void 0:j.x)=="number"&&Number.isFinite(j.x)?j.x:(p()-.5)*500,T=typeof(j==null?void 0:j.y)=="number"&&Number.isFinite(j.y)?j.y:(p()-.5)*500;c[2*b]=$+(p()-.5)*x,c[2*b+1]=T+(p()-.5)*x,u[2*b]=0,u[2*b+1]=0}const v=[];for(const b of e.edges){const S=m.get(String((b==null?void 0:b.source)||"").trim()),j=m.get(String((b==null?void 0:b.target)||"").trim());typeof S!="number"||typeof j!="number"||S===j||v.push(S,j)}return{nodeIds:o,pos:c,vel:u,acc:d,edges:new Uint32Array(v),options:r,tick:0}}function rC(e,t=1){const r=e.nodeIds.length;if(!r)return;const o=e.options,a=o.dt;for(let c=0;c<Math.max(1,Math.trunc(t));c++){if(e.acc.fill(0),r<=o.maxRepulsionNodes){const b=o.repulsionStrength;for(let S=0;S<r;S++){const j=e.pos[2*S],$=e.pos[2*S+1];for(let T=S+1;T<r;T++){const F=e.pos[2*T]-j,B=e.pos[2*T+1]-$,I=F*F+B*B+1e-6,U=1/Math.sqrt(I),te=b/I,K=te*F*U,le=te*B*U;e.acc[2*S]-=K,e.acc[2*S+1]-=le,e.acc[2*T]+=K,e.acc[2*T+1]+=le}}}const d=o.springLength,m=o.springStrength,_=e.edges;for(let b=0;b<_.length;b+=2){const S=_[b],j=_[b+1],$=e.pos[2*S],T=e.pos[2*S+1],F=e.pos[2*j],B=e.pos[2*j+1],I=F-$,U=B-T,te=I*I+U*U+1e-6,K=Math.sqrt(te),le=m*(K-d),ce=le*I/K,pe=le*U/K;e.acc[2*S]+=ce,e.acc[2*S+1]+=pe,e.acc[2*j]-=ce,e.acc[2*j+1]-=pe}const p=o.centeringStrength;for(let b=0;b<r;b++)e.acc[2*b]+=-p*e.pos[2*b],e.acc[2*b+1]+=-p*e.pos[2*b+1];const x=o.damping,v=o.maxSpeed;for(let b=0;b<r;b++){let S=(e.vel[2*b]+e.acc[2*b]*a)*x,j=(e.vel[2*b+1]+e.acc[2*b+1]*a)*x;const $=Math.sqrt(S*S+j*j);if($>v){const T=v/$;S*=T,j*=T}e.vel[2*b]=S,e.vel[2*b+1]=j,e.pos[2*b]+=S*a,e.pos[2*b+1]+=j*a}e.tick+=1}}function sC(e){const t=e.nodeIds.length;if(!t)return 0;let r=0;for(let o=0;o<t;o++){const a=e.vel[2*o],c=e.vel[2*o+1];r+=Math.sqrt(a*a+c*c)}return r/t}function iC(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 Vg(e,t="session"){const r=String(e??"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function oC(){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 aC(){return n.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[n.jsx("rect",{x:"3",y:"3",width:"3",height:"3",rx:"1"}),n.jsx("rect",{x:"3",y:"7",width:"3",height:"3",rx:"1"}),n.jsx("rect",{x:"3",y:"11",width:"3",height:"3",rx:"1"}),n.jsx("rect",{x:"8",y:"3.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"}),n.jsx("rect",{x:"8",y:"7.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"}),n.jsx("rect",{x:"8",y:"11.5",width:"6",height:"2",rx:"1",fill:"none",strokeWidth:"1.4"})]})}function dv(e,t,r,o){const a=typeof e=="number"&&Number.isFinite(e)?e:o;return Math.min(r,Math.max(t,a))}function of(e){const t=dv(e,.6,2.4,1),r=240*t,o=9e3*t*t;return{springLength:r,repulsionStrength:o}}const Nf="abstractuic_amx_saved_layouts_v1",L_=.025,P_=6,fv=1e6;function mp(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function O_(e,t="grid"){const r=String(e??"").trim().toLowerCase();return r==="grid"||r==="circle"||r==="radial"||r==="force"?r:t}function lC(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 Gg(e){const t=mp();if(!t)return null;const r=String(e??"").trim();if(!r)return null;try{const o=t.getItem(Nf);if(!o)return null;const a=JSON.parse(o),c=a&&typeof a=="object"&&!Array.isArray(a)?a:null;if(!c)return null;const u=c[r],d=u&&typeof u=="object"&&!Array.isArray(u)?u:null;if(!d)return null;const m=d.version===1?1:null;if(m===null)return null;const _=O_(d.kind,"grid"),p=typeof d.seed=="number"&&Number.isFinite(d.seed)?Math.trunc(d.seed):R_(r),x=d.positions&&typeof d.positions=="object"&&!Array.isArray(d.positions)?d.positions:null,v={};if(x)for(const[j,$]of Object.entries(x)){const T=lC($);T&&(v[String(j)]=T)}const b=cv(d.viewport,{minZoom:L_,maxZoom:P_,maxAbsTranslate:fv})??void 0,S=typeof d.saved_at=="string"&&d.saved_at.trim()?d.saved_at.trim():"";return{version:m,kind:_,seed:p,positions:v,viewport:b,saved_at:S}}catch{return null}}function cC(e,t){const r=mp();if(!r)return;const o=String(e??"").trim();if(o)try{const a=r.getItem(Nf),c=a?JSON.parse(a):null,u=c&&typeof c=="object"&&!Array.isArray(c)?{...c}:{};u[o]=t,r.setItem(Nf,JSON.stringify(u))}catch{}}function uC(e){const t=mp();if(!t)return;const r=String(e??"").trim();if(r)try{const o=t.getItem(Nf);if(!o)return;const a=JSON.parse(o),c=a&&typeof a=="object"&&!Array.isArray(a)?{...a}:null;if(!c||!(r in c))return;delete c[r],t.setItem(Nf,JSON.stringify(c))}catch{}}function dC(e){const t=String(e??"").trim();if(!t)return;const r=Number(t);if(Number.isFinite(r))return r}function e_(e,t){const r=!!(t!=null&&t.allowZero),o=!!(t!=null&&t.allowNegativeOne),a=String(e??"").trim();if(!a)return;const c=Number(a);if(!Number.isFinite(c))return;const u=Math.trunc(c);if(o&&u===-1)return-1;if(!(!r&&u<=0)&&!(r&&u<0))return u}function fC(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,a=[];return r&&a.push(`recall_level=${r}`),o&&(typeof o.limit=="number"&&a.push(`limit=${o.limit}`),typeof o.min_score=="number"&&a.push(`min_score=${o.min_score}`),typeof o.max_input_tokens=="number"&&a.push(`max_input_tokens=${o.max_input_tokens}`)),a.length?a.join(" · "):null}function mC(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 a=typeof e.confidence=="number"&&Number.isFinite(e.confidence)?e.confidence:null;a!==null&&t.push(`confidence=${a.toFixed(3)}`);const c=e.provenance&&typeof e.provenance=="object"&&!Array.isArray(e.provenance)?e.provenance:null;if(c){const _=typeof c.writer_run_id=="string"?c.writer_run_id.trim():"",p=typeof c.writer_workflow_id=="string"?c.writer_workflow_id.trim():"";_&&t.push(`writer_run_id=${_}`),p&&t.push(`writer_workflow_id=${p}`)}const u=e.attributes&&typeof e.attributes=="object"&&!Array.isArray(e.attributes)?e.attributes:null,d=u&&u._retrieval&&typeof u._retrieval=="object"&&!Array.isArray(u._retrieval)?u._retrieval:null,m=d&&typeof d.score=="number"&&Number.isFinite(d.score)?d.score:null;return m!==null&&t.push(`score=${m.toFixed(3)}`),t.length?t.join(" · "):null}function hC(e,t){const r=String(e??""),o=String(t??"").trim();if(!o)return r;const a=r.toLowerCase().indexOf(o.toLowerCase());if(a<0)return r;const c=r.slice(0,a),u=r.slice(a,a+o.length),d=r.slice(a+o.length);return n.jsxs(n.Fragment,{children:[c,n.jsx("span",{className:"amx-hl",children:u}),d]})}function af(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 _C(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 lf(e){const t=_C(e);if(t===null)return"";const r=new Date(t),o=r.getUTCFullYear(),a=String(r.getUTCMonth()+1).padStart(2,"0"),c=String(r.getUTCDate()).padStart(2,"0"),u=String(r.getUTCHours()).padStart(2,"0"),d=String(r.getUTCMinutes()).padStart(2,"0");return`${o}/${a}/${c} ${u}:${d}`}function mv(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 t_(e,t){const r=String(e??"").trim().toLowerCase();return!!(r&&t.has(r))}function pC(e,t={}){const r=Math.max(1,t.maxPredicates??3),o=new Map;for(const m of e){const _=String((m==null?void 0:m.predicate)||"").trim();_&&o.set(_,(o.get(_)||0)+1)}const a=Array.from(o.entries());a.sort((m,_)=>_[1]-m[1]||m[0].localeCompare(_[0]));const u=a.slice(0,r).map(([m,_])=>{const p=mv(m);return _>1?`${p}×${_}`:p}).join(" | "),d=a.length>r?` +${a.length-r}`:"";return`${u}${d}`.trim()}function gC({resetKey:e,queryMode:t,items:r,activeMemoryText:o,packets:a,packetsVersion:c,packedCount:u,dropped:d,estimatedTokens:m,effort:_,warnings:p,onQuery:x,onItemsReplace:v,onOpenSpan:b,onOpenTranscript:S}){var js;const j=h.useRef(null),$=h.useMemo(()=>{const O=r==null?void 0:r[0],ue=r==null?void 0:r[r.length-1],ze=O?`${O.subject}|${O.predicate}|${O.object}`:"",Ie=ue?`${ue.subject}|${ue.predicate}|${ue.object}`:"";return`${(r==null?void 0:r.length)||0}:${ze}:${Ie}`},[r]),T=String(e??$),F=t==="replace"?"replace":"override",[B,I]=h.useState(null),[U,te]=h.useState(null),[K,le]=h.useState(!1),[ce,pe]=h.useState(""),[Re,W]=h.useState(!1),[z,P]=h.useState("");h.useEffect(()=>{I(null),te(null),pe(""),le(!1),P(""),W(!1)},[T]);const[G,H]=h.useState(""),[re,N]=h.useState(!0),[L,q]=h.useState(!1),[C,X]=h.useState(!0),[se]=h.useState(()=>({compact:oC(),show:!1})),ie=se.compact,[ye,Le]=h.useState(se.show),[Me,De]=h.useState(!1),We=T,ve=h.useMemo(()=>R_(We),[We]),[Pe,me]=h.useState("grid"),[we,Oe]=h.useState(ve),[qe,rt]=h.useState(!1),[ke,Fe]=h.useState(1),ot=h.useRef(null),Et=h.useRef(null),Lt=h.useRef(!1),[ae,Kt]=h.useState(0),un=h.useRef(null),gn=h.useRef(0),Ne=h.useRef(0),de=h.useRef(0),Ee=h.useRef(0),[$t,bt]=h.useState(!1),[Xt,Dn]=h.useState(""),[ln,yn]=h.useState({}),Tn=h.useRef({});h.useEffect(()=>{Tn.current=ln},[ln]);const[xn,ir]=h.useState(""),[Qt,Mr]=h.useState(""),ps=h.useMemo(()=>{var ue;const O=(ue=r==null?void 0:r[0])==null?void 0:ue.scope;return Vg(O,"session")},[r]),[Rn,he]=h.useState(ps),[Ce,gt]=h.useState("standard"),[dt,kt]=h.useState(""),[Tt,qt]=h.useState(""),[Dt,_n]=h.useState(""),[Ot,vn]=h.useState(""),[dn,nn]=h.useState(""),[on,Gt]=h.useState(""),[at,jn]=h.useState(""),[Bn,Ln]=h.useState("qwen/qwen3-next-80b");h.useEffect(()=>{he(ps)},[T]);const Un=Array.isArray(r)?r:[],lr=typeof o=="string"?o:"",dr=Array.isArray(a)?a:[],br=typeof c=="number"?c:void 0,rs=typeof u=="number"?u:void 0,gs=typeof d=="number"?d:void 0,Ds=typeof m=="number"?m:void 0,Ao=_,co=p,ys=F==="override"&&(B!=null&&B.items)&&Array.isArray(B.items)?B.items:Un,En=typeof(B==null?void 0:B.active_memory_text)=="string"&&B.active_memory_text.trim()?B.active_memory_text:lr,Fi=(B==null?void 0:B.effort)??Ao,Di=(B==null?void 0:B.warnings)??co,Tr=h.useMemo(()=>new Set(["rdf:type","schema:name","skos:preflabel","skos:altlabel","dcterms:title","dcterms:identifier"]),[]),er=h.useMemo(()=>C?ys:(ys||[]).filter(O=>!t_(O==null?void 0:O.predicate,Tr)),[ys,C,Tr]),ct=h.useMemo(()=>tC(ys,{groupEdges:re}),[ys,re]),Ct=h.useMemo(()=>{if(C)return ct;const O=[];for(const ue of ct.edges){const Ie=(ue&&ue.data&&Array.isArray(ue.data.assertions)?ue.data.assertions:[]).filter(ut=>!t_(ut==null?void 0:ut.predicate,Tr));if(!Ie.length)continue;const Be=pC(Ie);O.push({...ue,label:Be,data:{...ue.data,assertions:Ie,predicateSummary:Be}})}return{nodes:ct.nodes,edges:O}},[ct,C,Tr]),an=h.useMemo(()=>Ct.nodes.map(O=>O.id),[Ct.nodes]),jr=h.useMemo(()=>{const O=an[0]||"",ue=an[an.length-1]||"";return`${an.length}:${O}:${ue}`},[an]),Es=h.useMemo(()=>{var ue;const O=new Map;for(const ze of Ct.nodes)O.set(ze.id,String(((ue=ze.data)==null?void 0:ue.label)||ze.id));return O},[Ct.nodes]),zr=h.useMemo(()=>{var ue;const O=new Map;for(const ze of Ct.nodes)O.set(ze.id,String(((ue=ze.data)==null?void 0:ue.kind)||""));return O},[Ct.nodes]),Rr=G.trim().toLowerCase(),sa=h.useMemo(()=>{var ue;if(!Rr)return new Set;const O=new Set;for(const ze of Ct.nodes){const Ie=String(ze.id||"").toLowerCase(),Be=String(((ue=ze.data)==null?void 0:ue.label)||"").toLowerCase();(Ie.includes(Rr)||Be.includes(Rr))&&O.add(ze.id)}return O},[Ct.nodes,Rr]),ss=h.useCallback((O,ue)=>{const ze={};for(const Ie of an){const Be=O[Ie]||ue[Ie];ze[Ie]=Be?{x:Be.x,y:Be.y}:{x:0,y:0}}return ze},[an]);h.useEffect(()=>{yn(O=>{const ue=Vu(Ct,{kind:Pe,seed:we}),ze={};for(const Ie of an){const Be=O[Ie]||ue[Ie];ze[Ie]=Be?{x:Be.x,y:Be.y}:{x:0,y:0}}return ze})},[Ct,Pe,we,an,jr]),h.useEffect(()=>{if(!Lt.current)return;const O=j.current;if(!(!O||typeof O.fitView!="function")&&an.length){Lt.current=!1;try{O.fitView({padding:.2,duration:0})}catch{try{O.fitView({padding:.2})}catch{}}}},[an.length,jr,ln]),h.useEffect(()=>{rt(!1),ot.current=null,Et.current=null,Lt.current=!1,gn.current=0,Ne.current=0,de.current=0;const O=Gg(We);if(O&&Object.keys(O.positions||{}).length){if(me(O.kind),Oe(O.seed),bt(!0),Dn(O.saved_at||""),O.viewport){Et.current=O.viewport;const Be=j.current;if(Be&&typeof Be.setViewport=="function"){try{Be.setViewport(O.viewport,{duration:0})}catch{try{Be.setViewport(O.viewport)}catch{}}Et.current=null}}else Lt.current=!0;const Ie=Vu(Ct,{kind:O.kind,seed:O.seed});yn(ss(O.positions,Ie));return}bt(!1),Dn("");const ue=R_(We);Oe(ue);const ze=Vu(Ct,{kind:Pe,seed:ue});yn(ze),Pe==="force"&&Ct.nodes.length>0&&Ct.nodes.length<=320&&(ot.current=Sm(Ct,{seed:ue,positions:ze,...of(ke)}),rt(!0))},[We]);const fr=h.useMemo(()=>{const O=String(xn||"").trim(),ue=String(Qt||"").trim();return!O||!ue?null:nC(Ct,O,ue,{directed:L})},[Ct,xn,Qt,L]),qr=!!(fr&&String(xn||"").trim()&&String(Qt||"").trim()),Jn=h.useMemo(()=>{const O=String(xn||"").trim(),ue=String(Qt||"").trim();if(!O||!ue)return null;const ze=L,Ie=new Map,Be=(zt,Pt)=>{const rn=Ie.get(zt);rn?rn.push(Pt):Ie.set(zt,[Pt])};for(const zt of Ct.edges)Be(zt.source,zt.target),ze||Be(zt.target,zt.source);const ut=new Set,At=[];for(ut.add(O),At.push(O);At.length;){const zt=At.shift(),Pt=Ie.get(zt)||[];for(const rn of Pt)ut.has(rn)||(ut.add(rn),At.push(rn))}return{reachableFromStart:ut.size,endReachable:ut.has(ue),nodes:Ct.nodes.length,edges:Ct.edges.length,assertions:er.length}},[L,Ct.edges,Ct.nodes.length,Qt,xn,er.length]),Te=h.useMemo(()=>new Set((fr==null?void 0:fr.nodeIds)||[]),[fr]),$s=h.useMemo(()=>new Set((fr==null?void 0:fr.edgeIds)||[]),[fr]),[Xe,Pn]=h.useState(""),[mr,Lr]=h.useState(""),Pr=!!(String(Xe||"").trim()||String(mr||"").trim()),Or=h.useMemo(()=>{const O=new Set,ue=new Set,ze=String(Xe||"").trim(),Ie=String(mr||"").trim();if(ze){O.add(ze);for(const Be of Ct.edges)(Be.source===ze||Be.target===ze)&&(ue.add(Be.id),O.add(Be.source),O.add(Be.target));return{nodes:O,edges:ue}}if(Ie){const Be=Ct.edges.find(ut=>ut.id===Ie);Be&&(ue.add(Be.id),O.add(Be.source),O.add(Be.target))}return{nodes:O,edges:ue}},[Ct.edges,mr,Xe]);h.useEffect(()=>{Pn(""),Lr(""),ir(""),Mr("")},[T]);const[uo,en]=h.useState(!1);h.useEffect(()=>{en(!1)},[T]),h.useEffect(()=>{qe||(ot.current=null)},[qe]),h.useEffect(()=>{if(Pe!=="force")return;const O=ot.current;if(!O)return;const ue=of(ke);O.options.springLength=ue.springLength,O.options.repulsionStrength=ue.repulsionStrength},[Pe,ke]),h.useEffect(()=>{Pe!=="force"&&qe&&rt(!1)},[Pe,qe]),h.useEffect(()=>{if(!qe||Pe!=="force"||Ct.nodes.length===0||typeof window>"u"||typeof window.requestAnimationFrame!="function")return;ot.current||(ot.current=Sm(Ct,{seed:we,positions:Tn.current,...of(ke)}));let O=0,ue=0,ze=0;const Ie=Ct.nodes.length<=140?2:1,Be=1600,ut=.08,At=zt=>{if(O=window.requestAnimationFrame(At),zt-ue<33)return;ue=zt;const Pt=ot.current;if(!Pt){rt(!1);return}rC(Pt,Ie),ze+=Ie,yn(iC(Pt)),(sC(Pt)<=ut||ze>=Be)&&rt(!1)};return O=window.requestAnimationFrame(At),()=>{window.cancelAnimationFrame(O)}},[Ct,Pe,qe,we]);const is=h.useMemo(()=>Ct.nodes.map(O=>{var wn;const ue=Te.has(O.id),ze=sa.has(O.id),Ie=Xe===O.id,Be=Pr&&Or.nodes.has(O.id),ut=af((wn=O.data)==null?void 0:wn.kind),At="rgba(34, 211, 238, 0.88)",zt=ze?"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=ue?"rgba(168, 85, 247, 0.9)":ze?At:ut.stroke,rn=Ie?"0 0 0 2px rgba(255,255,255,0.20), 0 18px 46px rgba(0,0,0,0.55)":Be?"0 0 0 1px rgba(96, 165, 250, 0.28), 0 12px 34px rgba(0,0,0,0.45)":void 0,sn=zt&&rn?`${zt}, ${rn}`:rn||zt||void 0,ar=ue?"rgba(168, 85, 247, 0.10)":ze?"rgba(34, 211, 238, 0.08)":ut.bg,ft=qr?ue||Ie?1:.16:Pr?Be||Ie?1:.1:1;return{...O,position:ln[O.id]?{x:ln[O.id].x,y:ln[O.id].y}:O.position,style:{...O.style||{},border:`1px solid ${Pt}`,borderRadius:10,background:ar,color:"rgba(255,255,255,0.92)",opacity:ft,padding:8,fontSize:12,boxShadow:sn,width:180,cursor:"pointer"}}}),[Ct.nodes,qr,sa,ln,Xe,Te,Pr,Or.nodes]),As=h.useMemo(()=>Ct.edges.map(O=>{const ue=$s.has(O.id),ze=mr===O.id,Ie=Pr&&Or.edges.has(O.id),Be=ue?"rgba(168, 85, 247, 0.9)":Pr?Ie||ze?"rgba(96, 165, 250, 0.55)":"rgba(255,255,255,0.14)":"rgba(255,255,255,0.18)",ut=ue?2.75:Pr?Ie||ze?2.25:1.25:1.5,At=ze?"drop-shadow(0 0 10px rgba(168, 85, 247, 0.25))":void 0,zt=ue?"rgba(168, 85, 247, 0.9)":qr?"rgba(255,255,255,0.10)":"rgba(255,255,255,0.28)",Pt=qr?ue||ze?1:.1:Pr?Ie||ze?1:.08:1,rn=qr?ue||ze?1:0:Pr?Ie||ze?1:0:1,sn=qr?ue||ze?String(O.label||""):"":String(O.label||"");return{...O,label:sn,style:{...O.style||{},stroke:Be,strokeWidth:ut,filter:At,opacity:Pt},animated:!1,markerEnd:{type:Sf.ArrowClosed,color:zt,width:20,height:20},labelShowBg:!0,labelBgPadding:[6,3],labelBgBorderRadius:10,labelBgStyle:{fill:`rgba(0, 0, 0, ${.38*rn})`,stroke:`rgba(255, 255, 255, ${.14*rn})`,strokeWidth:1},labelStyle:{fill:`rgba(255, 255, 255, ${.92*rn})`,fontSize:10,fontWeight:600,letterSpacing:.2,textTransform:"lowercase"}}}),[Ct.edges,qr,mr,$s,Pr,Or.edges]),xi=h.useMemo(()=>{if(!mr)return[];const O=Ct.edges.find(ze=>ze.id===mr),ue=O&&O.data&&Array.isArray(O.data.assertions)?O.data.assertions:[];return Array.isArray(ue)?ue:[]},[Ct.edges,mr]),hr=h.useMemo(()=>mr&&Ct.edges.find(O=>O.id===mr)||null,[Ct.edges,mr]),or=h.useMemo(()=>{const O=String(Xe||"").trim();return O?ys.filter(ue=>!ue||typeof ue!="object"||!(ue.subject===O||ue.object===O)?!1:C?!0:!t_(ue.predicate,Tr)):[]},[ys,Xe,C,Tr]),ni=h.useMemo(()=>mr?xi:or,[xi,mr,or]),Bs=h.useMemo(()=>{const O=new Map;for(const ue of ni){if(!ue||typeof ue!="object")continue;const ze=ue.provenance&&typeof ue.provenance=="object"&&!Array.isArray(ue.provenance)?ue.provenance:null,Ie=ze&&typeof ze.span_id=="string"?ze.span_id.trim():"",Be=ze&&typeof ze.writer_run_id=="string"?ze.writer_run_id.trim():"",ut=typeof ue.owner_id=="string"?ue.owner_id.trim():"",At=Be||ut;if(!At||!Ie)continue;const zt=`${At}|${Ie}`,Pt=O.get(zt),rn=typeof ue.observed_at=="string"?ue.observed_at.trim():"";Pt?(Pt.count+=1,rn&&(!Pt.last_observed_at||rn>Pt.last_observed_at)&&(Pt.last_observed_at=rn,Pt.last_observed_at_fmt=lf(rn),Pt.assertion=ue)):O.set(zt,{span_run_id:At,span_id:Ie,writer_run_id:Be,count:1,last_observed_at:rn,last_observed_at_fmt:lf(rn),assertion:ue})}return Array.from(O.values()).sort((ue,ze)=>String(ze.last_observed_at||"").localeCompare(String(ue.last_observed_at||"")))},[ni]),ri=h.useMemo(()=>{const O=new Map;for(const ue of ni){if(!ue||typeof ue!="object")continue;const ze=ue.provenance&&typeof ue.provenance=="object"&&!Array.isArray(ue.provenance)?ue.provenance:null,Ie=ze&&typeof ze.span_id=="string"?ze.span_id.trim():"",Be=ze&&typeof ze.writer_run_id=="string"?ze.writer_run_id.trim():"";if(!Be||Ie)continue;const ut=O.get(Be),At=typeof ue.observed_at=="string"?ue.observed_at.trim():"";ut?(ut.count+=1,At&&(!ut.last_observed_at||At>ut.last_observed_at)&&(ut.last_observed_at=At,ut.last_observed_at_fmt=lf(At),ut.assertion=ue)):O.set(Be,{run_id:Be,count:1,last_observed_at:At,last_observed_at_fmt:lf(At),assertion:ue})}return Array.from(O.values()).sort((ue,ze)=>String(ze.last_observed_at||"").localeCompare(String(ue.last_observed_at||"")))},[ni]),Cn=h.useCallback(O=>{const ue=String(O.run_id||"").trim(),ze=typeof O.span_id=="string"?String(O.span_id).trim():"";if(ue){if(S){try{S({run_id:ue,span_id:ze||void 0,assertion:O.assertion})}catch{}return}if(b&&ze)try{b({run_id:ue,span_id:ze,assertion:O.assertion})}catch{}}},[b,S]),Sr=h.useCallback(async O=>{const ue=String(O??"");if(ue)try{await navigator.clipboard.writeText(ue)}catch{}},[]),xs=h.useCallback(()=>{const O=j.current;if(!(!O||typeof O.fitView!="function")){if(Xe&&typeof O.getNode=="function"){const ue=O.getNode(Xe);if(ue){O.fitView({nodes:[ue],padding:.55,duration:350});return}}O.fitView({padding:.2,duration:350})}},[Xe]),vs=h.useCallback(O=>{const ue=O.kind,ze=Math.trunc(O.seed);rt(!1),ot.current=null,Et.current=null,me(ue),Oe(ze);const Ie=Vu(Ct,{kind:ue,seed:ze});yn(Ie),ue==="force"&&(O.autoPlay??!0)&&Ct.nodes.length>0&&Ct.nodes.length<=320&&(ot.current=Sm(Ct,{seed:ze,positions:Ie,...of(ke)}),rt(!0))},[Ct,ke]),si=h.useCallback(()=>{if(Pe==="force"){if(qe){rt(!1);return}ot.current=Sm(Ct,{seed:we,positions:Tn.current,...of(ke)}),rt(!0)}},[Ct,Pe,qe,we,ke]);h.useEffect(()=>()=>{typeof window>"u"||typeof window.cancelAnimationFrame=="function"&&Ee.current&&window.cancelAnimationFrame(Ee.current)},[]);const ws=h.useCallback(()=>{const O=j.current;if(!O||typeof O.getViewport!="function"||!an.length)return null;const ue=un.current;if(!ue)return null;const ze=ue.getBoundingClientRect();if(!Number.isFinite(ze.width)||!Number.isFinite(ze.height)||ze.width<64||ze.height<64)return null;const Ie=O.getViewport(),Be=typeof(Ie==null?void 0:Ie.zoom)=="number"&&Number.isFinite(Ie.zoom)?Ie.zoom:null,ut=typeof(Ie==null?void 0:Ie.x)=="number"&&Number.isFinite(Ie.x)?Ie.x:null,At=typeof(Ie==null?void 0:Ie.y)=="number"&&Number.isFinite(Ie.y)?Ie.y:null;if(Be===null||ut===null||At===null||Be<=0)return null;const zt=140,Pt=Math.min(an.length,180),rn=Tn.current;let sn=0,ar=0;for(const ft of an){const wn=rn[ft];if(!wn||!Number.isFinite(wn.x)||!Number.isFinite(wn.y))continue;ar+=1;const pr=[{x:wn.x,y:wn.y},{x:wn.x+90,y:wn.y+24}];for(const zn of pr){const os=zn.x*Be+ut,Vr=zn.y*Be+At;if(os>-zt&&os<ze.width+zt&&Vr>-zt&&Vr<ze.height+zt)return!1}if(sn++,sn>=Pt)break}return ar?!0:null},[an]),_r=h.useCallback(O=>{typeof window>"u"||typeof window.requestAnimationFrame!="function"||Ee.current||(Ee.current=window.requestAnimationFrame(()=>{Ee.current=0;const ue=ws();if(ue===null){if(de.current>=12)return;de.current+=1,window.setTimeout(()=>_r(`${O}:probe`),120);return}if(ue!==!0){de.current=0,Ne.current=0;return}de.current=0;const ze=j.current;if(ze&&typeof ze.fitView=="function")try{ze.fitView({padding:.2,duration:0})}catch{try{ze.fitView({padding:.2})}catch{}}if(Ne.current+=1,Ne.current>=4&&gn.current<1){Ne.current=0,gn.current+=1,Kt(Ie=>Ie+1);return}Ne.current<8&&window.setTimeout(()=>_r(`${O}:retry`),220)}))},[ws]);h.useEffect(()=>{Ne.current=0,gn.current=0,de.current=0,_r("mount")},[T,_r]),h.useEffect(()=>{_r("graph change")},[jr,_r]),h.useEffect(()=>{const O=un.current;if(!O||typeof window>"u"||typeof ResizeObserver!="function")return;const ue=new ResizeObserver(()=>_r("resize"));return ue.observe(O),()=>ue.disconnect()},[_r]);const ia=h.useCallback(()=>{const O=new Date().toISOString(),ue={};for(const At of an){const zt=Tn.current[At];zt&&typeof zt.x=="number"&&typeof zt.y=="number"&&(ue[At]={x:zt.x,y:zt.y})}const ze=j.current,Ie=ze&&typeof ze.toObject=="function"?ze.toObject():null,Be=Ie&&Ie.viewport?Ie.viewport:ze&&typeof ze.getViewport=="function"?ze.getViewport():null,ut=cv(Be,{minZoom:L_,maxZoom:P_,maxAbsTranslate:fv})??void 0;cC(We,{version:1,kind:Pe,seed:we,positions:ue,viewport:ut,saved_at:O}),bt(!0),Dn(O),rt(!1)},[We,Pe,we,an]),bs=h.useCallback(()=>{const O=Gg(We);if(!O)return;rt(!1),ot.current=null,me(O.kind),Oe(O.seed),bt(!0),Dn(O.saved_at||""),Et.current=O.viewport||null,Lt.current=!O.viewport;const ue=Vu(Ct,{kind:O.kind,seed:O.seed});if(yn(ss(O.positions,ue)),O.viewport){const ze=j.current;if(ze&&typeof ze.setViewport=="function"){try{ze.setViewport(O.viewport,{duration:0})}catch{try{ze.setViewport(O.viewport)}catch{}}Et.current=null}}},[ss,Ct,We]),vi=h.useCallback(()=>{uC(We),bt(!1),Dn("")},[We]),wi=h.useCallback(O=>{if(!Array.isArray(O)||O.length===0)return;let ue=!1;yn(ze=>{let Ie=ze,Be=!1;for(const ut of O){const At=ut&&typeof ut=="object"&&"id"in ut&&typeof ut.id=="string"?String(ut.id):"",zt=(ut==null?void 0:ut.type)==="position"?ut==null?void 0:ut.position:null;At&&zt&&typeof zt.x=="number"&&typeof zt.y=="number"&&(Be||(Ie={...ze},Be=!0),Ie[At]={x:zt.x,y:zt.y},ut!=null&&ut.dragging&&(ue=!0))}return Be?Ie:ze}),ue&&qe&&rt(!1)},[qe]),bi=h.useMemo(()=>{const O=new Map;for(const ue of Ct.edges)O.set(ue.id,ue);return O},[Ct.edges]),Bi=h.useMemo(()=>{var Ie;if(!fr)return[];const O=fr.nodeIds||[],ue=fr.edgeIds||[],ze=[];for(let Be=0;Be<Math.min(O.length-1,ue.length);Be++){const ut=O[Be],At=O[Be+1],zt=ue[Be],Pt=bi.get(zt),rn=String(((Ie=Pt==null?void 0:Pt.data)==null?void 0:Ie.predicateSummary)||(Pt==null?void 0:Pt.label)||"").trim(),sn=Pt&&Pt.source===ut&&Pt.target===At?"forward":Pt&&Pt.source===At&&Pt.target===ut?"reverse":"unknown";ze.push({from:ut,to:At,edgeId:zt,predicate:rn,dir:sn})}return ze},[bi,fr]),fo=h.useCallback(async()=>{if(x){pe(""),P(""),le(!0);try{const O=dC(dn),ue=e_(on,{allowZero:!0,allowNegativeOne:!0}),ze=e_(at,{allowZero:!0}),Ie=await x({scope:Rn,owner_id:void 0,recall_level:Ce,query_text:dt||void 0,subject:Tt||void 0,predicate:Dt||void 0,object:Ot||void 0,min_score:O,limit:ue,max_input_tokens:ze,model:Bn||void 0});I(Ie),te("live query"),F==="replace"&&v&&Ie&&Array.isArray(Ie.items)&&v(Ie.items,{kind:"live query",result:Ie})}catch(O){const ue=O instanceof Error?O.message:String(O);pe(ue||"Query failed")}finally{le(!1)}}},[on,at,dn,Bn,Ot,v,x,Dt,F,dt,Ce,Rn,Tt]),Us=h.useCallback(async()=>{if(!x)return;const O=String(xn||"").trim(),ue=String(Qt||"").trim();if(!O||!ue)return;const ze=Math.max(200,e_(on)??80),Ie=60;P(""),pe(""),W(!0);try{const Be=[],ut=new Set,At=ft=>{if(!ft||typeof ft!="object"||typeof ft.subject!="string"||typeof ft.predicate!="string"||typeof ft.object!="string")return;const wn=`${ft.subject}|${ft.predicate}|${ft.object}|${String(ft.observed_at||"")}|${String(ft.scope||"")}|${String(ft.owner_id||"")}`;ut.has(wn)||(ut.add(wn),Be.push(ft))};for(const ft of ys)At(ft);const zt=L,Pt=new Set,rn=[O],sn=new Set([O]),ar=async ft=>{const wn=await x({scope:Rn,recall_level:Ce,min_score:0,limit:ze,subject:ft,query_text:void 0,max_input_tokens:0,model:void 0});if(wn&&Array.isArray(wn.items)){for(const pr of wn.items)if(At(pr),typeof pr.subject=="string"&&pr.subject.trim()===ft&&typeof pr.object=="string"){const zn=pr.object.trim();zn&&!sn.has(zn)&&(sn.add(zn),rn.push(zn))}}if(!zt){const pr=await x({scope:Rn,recall_level:Ce,min_score:0,limit:ze,object:ft,query_text:void 0,max_input_tokens:0,model:void 0});if(pr&&Array.isArray(pr.items)){for(const zn of pr.items)if(At(zn),typeof zn.object=="string"&&zn.object.trim()===ft&&typeof zn.subject=="string"){const os=zn.subject.trim();os&&!sn.has(os)&&(sn.add(os),rn.push(os))}}}};for(;rn.length&&Pt.size<Ie&&!sn.has(ue);){const ft=rn.shift();!ft||Pt.has(ft)||(Pt.add(ft),await ar(ft))}I({ok:!0,count:Be.length,items:Be,active_memory_text:En,raw:{expanded_for_path:!0,expanded_nodes:Pt.size,discovered_nodes:sn.size,merged:Be.length,directed:zt}}),te("expanded neighborhood"),F==="replace"&&v&&v(Be,{kind:"expanded neighborhood",result:{ok:!0,count:Be.length,items:Be,active_memory_text:En,raw:{expanded_for_path:!0,expanded_nodes:Pt.size,discovered_nodes:sn.size,merged:Be.length,directed:zt}}})}catch(Be){const ut=Be instanceof Error?Be.message:String(Be);P(ut||"Expand neighborhood failed")}finally{W(!1)}},[L,En,ys,on,v,x,Qt,xn,F,Ce,Rn]),ji=h.useCallback(()=>{I(null),te(null),pe(""),le(!1),P(""),W(!1),ir(""),Mr(""),Pn(""),Lr("")},[]),Hr="Search KG",ii=Ct.nodes.length,mo=Ct.edges.length,ho=er.length;return n.jsxs("div",{className:"amx-root",children:[n.jsxs("div",{className:"amx-left",children:[n.jsx("div",{className:"amx-graphbar",role:"toolbar","aria-label":"Graph layout controls",children:n.jsxs("div",{className:"amx-graphbar-row",children:[n.jsx("span",{className:"amx-graphbar-title",children:"layout"}),n.jsxs("select",{value:Pe,onChange:O=>me(O_(O.target.value,Pe)),disabled:!an.length,children:[n.jsx("option",{value:"grid",children:"grid (deterministic)"}),n.jsx("option",{value:"radial",children:"radial (bfs)"}),n.jsx("option",{value:"circle",children:"circle"}),n.jsx("option",{value:"force",children:"force (simulation)"})]}),Pe==="force"?n.jsxs("label",{className:"amx-graphbar-spread",children:[n.jsx("span",{className:"amx-graphbar-title",children:"spread"}),n.jsx("input",{type:"range",min:"0.7",max:"2.2",step:"0.1",value:ke,onChange:O=>Fe(dv(Number(O.target.value),.7,2.2,1))}),n.jsxs("span",{className:"amx-small",children:[ke.toFixed(1),"×"]})]}):null,n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>vs({kind:Pe,seed:we}),disabled:!an.length,children:"Apply"}),n.jsx("button",{type:"button",className:"amx-btn",onClick:si,disabled:!an.length||Pe!=="force",children:qe?"Pause simulation":"Play simulation"})]})}),n.jsxs("div",{className:"amx-graph","aria-label":"Knowledge graph",ref:un,children:[n.jsx(fp,{children:n.jsxs(sv,{nodes:is,edges:As,defaultViewport:{x:0,y:0,zoom:1},minZoom:L_,maxZoom:P_,onInit:O=>{j.current=O;const ue=Et.current;if(ue&&typeof O.setViewport=="function")try{O.setViewport(ue,{duration:0})}catch{try{O.setViewport(ue)}catch{}}if(Lt.current&&typeof O.fitView=="function")try{O.fitView({padding:.2,duration:0})}catch{try{O.fitView({padding:.2})}catch{}}Et.current=null,Lt.current=!1,_r("init")},nodesDraggable:!0,nodesConnectable:!1,elementsSelectable:!0,onNodesChange:wi,onNodeClick:(O,ue)=>{Lr(""),Pn(ue.id)},onEdgeClick:(O,ue)=>{Pn(""),Lr(ue.id)},onPaneClick:()=>{Pn(""),Lr("")},children:[n.jsx(q1,{className:"amx-flow-controls",children:n.jsx(Ju,{type:"button",className:`amx-control-legend ${Me?"amx-control-legend-active":""}`,onClick:()=>De(O=>!O),title:Me?"Hide node color legend":"Show node color legend","aria-label":Me?"Hide node color legend":"Show node color legend",children:n.jsx(aC,{})})}),n.jsx(wf,{position:"bottom-right",className:"amx-panel-bottom-right",children:n.jsx("div",{className:"amx-panel-toggles",children:n.jsx("button",{type:"button",className:"amx-minimap-toggle",onClick:()=>Le(O=>!O),title:ye?"Hide minimap preview":"Show minimap preview","aria-label":ye?"Hide minimap preview":"Show minimap preview",children:ye?"minimap on":"minimap off"})})}),ye?n.jsx(O1,{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:ie?120:160,height:ie?80:110,marginBottom:56},nodeColor:O=>{var ue;return af((ue=O.data)==null?void 0:ue.kind).minimap}}):null,Me?n.jsxs(wf,{position:"bottom-left",className:"amx-legend-panel",children:[n.jsx("div",{className:"amx-legend-title",children:"node colors"}),n.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:O,label:ue})=>n.jsx("span",{className:"amx-legend-item",style:{borderColor:af(O).stroke},children:ue},O))})]}):null,n.jsx(J1,{gap:20,size:1,color:"rgba(255,255,255,0.06)"})]})},ae),n.jsxs("details",{className:"amx-panel amx-controls",children:[n.jsxs("summary",{children:[n.jsx("span",{className:"amx-controls-title",children:Hr}),n.jsxs("span",{className:"amx-small",children:[ho," assertions · ",ii," nodes · ",mo," edges"]})]}),n.jsxs("div",{className:"amx-toolbar",style:{marginTop:10},children:[n.jsxs("div",{className:"amx-toolbar-grid",children:[n.jsxs("label",{children:["search / highlight",n.jsx("input",{value:G,onChange:O=>H(O.target.value),placeholder:"filter nodes by id/label"})]}),n.jsxs("label",{children:["group edges",n.jsxs("select",{value:String(re),onChange:O=>N(O.target.value==="true"),children:[n.jsx("option",{value:"true",children:"group (subject→object)"}),n.jsx("option",{value:"false",children:"no grouping"})]})]}),n.jsxs("label",{children:["view",n.jsxs("select",{value:String(C),onChange:O=>X(O.target.value==="true"),children:[n.jsx("option",{value:"true",children:"all assertions"}),n.jsx("option",{value:"false",children:"hide rdf:type / labels"})]})]}),n.jsxs("label",{children:["path mode",n.jsxs("select",{value:String(L),onChange:O=>q(O.target.value==="true"),children:[n.jsx("option",{value:"false",children:"undirected"}),n.jsx("option",{value:"true",children:"directed"})]})]})]}),n.jsxs("details",{className:"amx-details",children:[n.jsx("summary",{children:"layout"}),n.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[n.jsxs("label",{children:["layout",n.jsxs("select",{value:Pe,onChange:O=>me(O_(O.target.value,Pe)),children:[n.jsx("option",{value:"grid",children:"grid (deterministic)"}),n.jsx("option",{value:"radial",children:"radial (bfs)"}),n.jsx("option",{value:"circle",children:"circle"}),n.jsx("option",{value:"force",children:"force (simulation)"})]})]}),n.jsxs("label",{children:["seed",n.jsx("input",{type:"number",step:"1",value:we,onChange:O=>Oe(Math.trunc(Number(O.target.value||0)||0))})]})]}),n.jsxs("div",{className:"amx-actions",style:{marginTop:10},children:[n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>vs({kind:Pe,seed:we}),disabled:!an.length,children:"Apply layout"}),Pe==="force"?n.jsx("button",{type:"button",className:"amx-btn",onClick:si,disabled:!an.length,children:qe?"Pause simulation":"Play simulation"}):null,n.jsx("button",{type:"button",className:"amx-btn",onClick:ia,disabled:!an.length,children:"Save layout"}),$t?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",className:"amx-btn",onClick:bs,children:"Load saved"}),n.jsx("button",{type:"button",className:"amx-btn",onClick:vi,children:"Clear saved"})]}):null]}),n.jsxs("div",{className:"amx-small",style:{marginTop:10,opacity:.9},children:["Drag nodes to adjust manually; use ",n.jsx("span",{className:"amx-mono",children:"Save layout"})," for a stable, replayable view.",$t?n.jsxs("span",{children:[" ","(saved",Xt?`: ${Xt}`:"",")"]}):n.jsx("span",{children:" (no saved layout)"})]})]}),n.jsxs("details",{className:"amx-details",children:[n.jsx("summary",{children:"path"}),n.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[n.jsxs("label",{children:["path start",n.jsxs("select",{value:xn,onChange:O=>ir(O.target.value),children:[n.jsx("option",{value:"",children:"(none)"}),an.map(O=>n.jsx("option",{value:O,children:(()=>{const ue=Es.get(O)||O;return ue===O?ue:`${ue} (${O})`})()},O))]})]}),n.jsxs("label",{children:["path end",n.jsxs("select",{value:Qt,onChange:O=>Mr(O.target.value),children:[n.jsx("option",{value:"",children:"(none)"}),an.map(O=>n.jsx("option",{value:O,children:(()=>{const ue=Es.get(O)||O;return ue===O?ue:`${ue} (${O})`})()},O))]})]})]}),fr?n.jsx("div",{className:"amx-small",style:{marginTop:10},children:Bi.map((O,ue)=>{const ze=Es.get(O.from)||O.from,Ie=Es.get(O.to)||O.to,Be=O.dir==="reverse"?" ← ":" → ",ut=O.predicate?` (${O.predicate})`:"";return n.jsxs("div",{children:[ue===0?n.jsx("span",{children:ze}):null,Be,n.jsxs("span",{children:[Ie,ut]})]},`${O.edgeId}:${ue}`)})}):xn&&Qt?n.jsxs("div",{className:"amx-small",style:{marginTop:10,opacity:.9},children:["No path found in the current subgraph (",(Jn==null?void 0:Jn.assertions)??ho," assertions · ",(Jn==null?void 0:Jn.nodes)??Ct.nodes.length," nodes ·"," ",(Jn==null?void 0:Jn.edges)??Ct.edges.length," edges). Start reaches ",(Jn==null?void 0:Jn.reachableFromStart)??0," nodes.",x?n.jsx("div",{style:{marginTop:10},children:n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Us(),disabled:Re,children:Re?"Expanding…":"Expand neighborhood"})}):null]}):n.jsx("div",{className:"amx-small",style:{marginTop:10},children:"(no path)"})]}),n.jsxs("details",{className:"amx-details",children:[n.jsx("summary",{children:"query"}),n.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[n.jsxs("label",{children:["query_text (semantic)",n.jsx("input",{value:dt,onChange:O=>kt(O.target.value),placeholder:"e.g. emotion chip"})]}),n.jsxs("label",{children:["subject (exact)",n.jsx("input",{value:Tt,onChange:O=>qt(O.target.value),placeholder:"e.g. ex:person-data"})]}),n.jsxs("label",{children:["predicate (exact)",n.jsx("input",{value:Dt,onChange:O=>_n(O.target.value),placeholder:"e.g. schema:about"})]}),n.jsxs("label",{children:["object (exact)",n.jsx("input",{value:Ot,onChange:O=>vn(O.target.value),placeholder:"e.g. ex:concept-emotion-chip"})]}),n.jsxs("label",{children:["min_score",n.jsx("input",{type:"number",step:"any",value:dn,onChange:O=>nn(O.target.value),placeholder:"(auto)"})]}),n.jsxs("label",{children:["limit",n.jsx("input",{type:"number",min:"-1",step:"1",value:on,onChange:O=>Gt(O.target.value),placeholder:"0/-1 = unlimited (if supported)"})]})]})]}),n.jsxs("details",{className:"amx-details",children:[n.jsx("summary",{children:"advanced"}),n.jsxs("div",{className:"amx-toolbar-grid",style:{marginTop:10},children:[n.jsxs("label",{children:["scope",n.jsxs("select",{value:Rn,onChange:O=>he(Vg(O.target.value,Rn)),children:[n.jsx("option",{value:"run",children:"run"}),n.jsx("option",{value:"session",children:"session"}),n.jsx("option",{value:"global",children:"global"}),n.jsx("option",{value:"all",children:"all"})]})]}),n.jsxs("label",{children:["recall level",n.jsxs("select",{value:Ce,onChange:O=>gt(O.target.value||"standard"),children:[n.jsx("option",{value:"urgent",children:"urgent"}),n.jsx("option",{value:"standard",children:"standard"}),n.jsx("option",{value:"deep",children:"deep"})]})]}),n.jsxs("label",{children:["max_input_tokens",n.jsx("input",{type:"number",min:"0",step:"1",value:at,onChange:O=>jn(O.target.value),placeholder:"(auto)"})]}),n.jsxs("label",{children:["model (budgeting)",n.jsx("input",{value:Bn,onChange:O=>Ln(O.target.value),placeholder:"qwen/qwen3-next-80b"})]})]})]}),n.jsxs("div",{className:"amx-actions",children:[n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void fo(),disabled:!x||K,children:K?"Querying…":"Query store"}),n.jsx("button",{type:"button",className:"amx-btn",onClick:ji,disabled:!B&&!ce&&!K,children:"Reset to step output"}),B?n.jsxs("span",{className:"amx-small",children:["showing: ",U||"live query"]}):n.jsx("span",{className:"amx-small",children:"showing: step output"}),ce?n.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:ce}):null,z?n.jsx("span",{className:"amx-small",style:{color:"rgba(255, 80, 80, 0.95)"},children:z}):null]})]})]})]})]}),n.jsxs("div",{className:"amx-right",children:[n.jsxs("div",{className:"amx-panel",children:[n.jsx("h3",{children:"Details"}),n.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 O=fC(Fi);return O?n.jsx("div",{className:"amx-small",style:{marginBottom:8,opacity:.9},children:O}):null})(),(()=>{const O=Di;if(!O)return null;const ue=typeof O=="string"?O:Array.isArray(O)?O.map(ze=>String(ze)).join(" · "):JSON.stringify(O);return!ue||!ue.trim()?null:n.jsx("div",{className:"amx-small",style:{marginBottom:8,color:"rgba(255, 180, 90, 0.95)"},children:ue})})(),n.jsx("div",{className:"amx-small",style:{marginBottom:8,opacity:.9},children:(()=>{const O=(B==null?void 0:B.packets_version)??br,ue=(B==null?void 0:B.packed_count)??rs,ze=(B==null?void 0:B.dropped)??gs,Ie=(B==null?void 0:B.estimated_tokens)??Ds,Be=[];return typeof O=="number"&&Be.push(`packets_v${O}`),typeof ue=="number"&&Be.push(`packed=${ue}`),typeof ze=="number"&&Be.push(`dropped=${ze}`),typeof Ie=="number"&&Be.push(`est_tokens=${Ie}`),Be.length?Be.join(" · "):"No packetization stats (set max_input_tokens > 0)."})()}),n.jsx("div",{className:"amx-active-memory",children:hC(En||"(empty)",G)}),(()=>{const O=B!=null&&B.packets&&Array.isArray(B.packets)?B.packets:dr;return!Array.isArray(O)||O.length===0?null:n.jsxs("div",{style:{marginTop:10},children:[n.jsxs("button",{type:"button",className:"amx-btn",onClick:()=>en(ue=>!ue),children:[uo?"Hide":"Show"," packets (",O.length,")"]}),uo?n.jsx("div",{className:"amx-list",style:{marginTop:10},children:O.slice(0,120).map((ue,ze)=>{const Ie=ue&&typeof ue=="object"&&!Array.isArray(ue)?ue:null,Be=Ie&&typeof Ie.statement=="string"?Ie.statement:typeof ue=="string"?ue:"",ut=Ie&&(typeof Ie.retrieval_score=="number"||typeof Ie.retrieval_score=="string")?Ie.retrieval_score:null,At=Ie&&typeof Ie.observed_at=="string"?Ie.observed_at:null;return n.jsxs("div",{className:"amx-item",children:[n.jsx("div",{className:"amx-mono",children:Be||"(packet)"}),At||ut!==null?n.jsxs("div",{className:"amx-small",children:[At?`[${At}]`:null,At&&ut!==null?" ":null,ut!==null?`score:${ut}`:null]}):null]},ze)})}):null]})})(),n.jsx("div",{style:{marginTop:14,marginBottom:12,borderTop:"1px solid rgba(255,255,255,0.08)"}}),n.jsx("div",{className:"amx-small",style:{marginBottom:8,fontWeight:700,opacity:.9},children:"Inspect"}),n.jsx("div",{className:"amx-small",style:{marginBottom:8},children:"Click a node or edge to inspect its assertions."}),Xe?n.jsxs("div",{className:"amx-item",style:{marginBottom:10,display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[n.jsxs("div",{style:{minWidth:0},children:[n.jsx("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:Es.get(Xe)||Xe}),n.jsxs("div",{className:"amx-small",children:["kind=",zr.get(Xe)||"entity"," · id=",Xe]})]}),n.jsxs("div",{className:"amx-actions",children:[n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Sr(Xe),children:"Copy id"}),n.jsx("button",{type:"button",className:"amx-btn",onClick:xs,children:"Focus"})]})]}):hr&&hr.source&&hr.target?n.jsxs("div",{className:"amx-item",style:{marginBottom:10,display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[n.jsxs("div",{style:{minWidth:0},children:[n.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:[hr.source," —",String(hr.label||((js=hr.data)==null?void 0:js.predicateSummary)||"").trim()||"?","→ ",hr.target]}),n.jsxs("div",{className:"amx-small",children:["edge_id=",hr.id]})]}),n.jsxs("div",{className:"amx-actions",children:[n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>void Sr(hr.id),children:"Copy id"}),n.jsx("button",{type:"button",className:"amx-btn",onClick:xs,children:"Fit"})]})]}):n.jsx("div",{className:"amx-small",style:{marginBottom:10,opacity:.9},children:"(no selection)"}),n.jsx("div",{className:"amx-list",children:ni.slice(0,80).map((O,ue)=>{const ze=String(O.subject||"").trim(),Ie=String(O.predicate||"").trim(),Be=String(O.object||"").trim(),ut=Es.get(ze)||ze,At=Es.get(Be)||Be,zt=zr.get(ze)||"entity",Pt=zr.get(Be)||"entity",rn=af(zt),sn=af(Pt),ar=lf(O.observed_at),ft=mC(O),wn=O.provenance&&typeof O.provenance=="object"&&!Array.isArray(O.provenance)?O.provenance:null,pr=wn&&typeof wn.span_id=="string"?wn.span_id.trim():"",zn=wn&&typeof wn.writer_run_id=="string"?wn.writer_run_id.trim():"",os=typeof O.owner_id=="string"?O.owner_id.trim():"",Vr=zn||os,_o=!!((S||b)&&pr&&Vr),$n=!!(S&&zn&&!pr),kr=_o||$n;return n.jsxs("div",{className:"amx-item amx-triple-card",children:[n.jsxs("div",{className:"amx-triple-row",children:[n.jsx("button",{type:"button",className:"amx-term",style:{borderColor:rn.stroke,background:rn.bg},title:ze,onClick:()=>{ze&&(Lr(""),Pn(ze))},children:ut||ze||"(subject)"}),n.jsx("span",{className:"amx-arrow",children:"—"}),n.jsx("span",{className:"amx-predicate",title:Ie,children:mv(Ie)||"(predicate)"}),n.jsx("span",{className:"amx-arrow",children:"→"}),n.jsx("button",{type:"button",className:"amx-term",style:{borderColor:sn.stroke,background:sn.bg},title:Be,onClick:()=>{Be&&(Lr(""),Pn(Be))},children:At||Be||"(object)"})]}),n.jsxs("div",{className:"amx-triple-meta",children:[ar?n.jsxs("span",{className:"amx-small",title:String(O.observed_at||""),children:["[",ar,"]"]}):null,ft?n.jsx("span",{className:"amx-small",children:ft}):null]}),pr||zn?n.jsxs("div",{className:"amx-triple-actions",children:[pr?n.jsxs("span",{className:"amx-small",children:["span:",pr]}):null,zn?n.jsxs("span",{className:"amx-small",children:["run:",zn]}):null,kr?n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>{if(_o&&pr&&Vr){Cn({run_id:Vr,span_id:pr,assertion:O});return}$n&&zn&&Cn({run_id:zn,assertion:O})},children:"Open transcript"}):null]}):null]},ue)})})]}),n.jsxs("div",{className:"amx-panel",children:[n.jsx("h3",{children:"Transcript"}),n.jsx("div",{className:"amx-small",style:{marginBottom:8},children:"Pivot from a triple to its provenance transcript (span/note artifact, or run input fallback)."}),Bs.length?n.jsxs("div",{style:{marginBottom:12},children:[n.jsx("div",{className:"amx-small",style:{marginBottom:6,opacity:.85},children:"spans"}),n.jsx("div",{className:"amx-list",style:{maxHeight:320},children:Bs.slice(0,60).map(O=>n.jsxs("div",{className:"amx-item",style:{display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[n.jsxs("div",{style:{minWidth:0},children:[n.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:["span:",O.span_id]}),n.jsxs("div",{className:"amx-small",children:["run_id=",O.span_run_id," · assertions=",O.count,O.last_observed_at_fmt?` · last=[${O.last_observed_at_fmt}]`:""]})]}),b||S?n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>Cn({run_id:O.span_run_id,span_id:O.span_id,assertion:O.assertion}),children:"Open transcript"}):null]},`${O.span_run_id}|${O.span_id}`))})]}):null,S&&ri.length?n.jsxs("div",{style:{marginBottom:12},children:[n.jsx("div",{className:"amx-small",style:{marginBottom:6,opacity:.85},children:"runs (fallback)"}),n.jsx("div",{className:"amx-list",style:{maxHeight:240},children:ri.slice(0,40).map(O=>n.jsxs("div",{className:"amx-item",style:{display:"flex",justifyContent:"space-between",gap:10,alignItems:"center"},children:[n.jsxs("div",{style:{minWidth:0},children:[n.jsxs("div",{className:"amx-mono",style:{fontSize:11,opacity:.95},children:["run:",O.run_id]}),n.jsxs("div",{className:"amx-small",children:["assertions=",O.count,O.last_observed_at_fmt?` · last=[${O.last_observed_at_fmt}]`:""]})]}),n.jsx("button",{type:"button",className:"amx-btn",onClick:()=>Cn({run_id:O.run_id,assertion:O.assertion}),children:"Open transcript"})]},O.run_id))})]}):null,!Bs.length&&!(S&&ri.length)?n.jsx("div",{className:"amx-small",children:"(no provenance)"}):null]})]})]})}function n_(e,t="session"){const r=String(e||"").trim().toLowerCase();return r==="run"||r==="session"||r==="global"||r==="all"?r:t}function Zl(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 Oc(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"),a=String(t.getUTCDate()).padStart(2,"0"),c=String(t.getUTCHours()).padStart(2,"0"),u=String(t.getUTCMinutes()).padStart(2,"0");return`${r}/${o}/${a} ${c}:${u}`}function yC(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=Zl(t);return r!==null?Oc(r):t}function hp(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,`
|
|
135
|
-
`).replace(/\\n/g,`
|
|
136
|
-
`).replace(/\\t/g," "):""}function hv(e){return String(e??"").replace(/[*_`~]/g,"")}function km(e,t){const r=!!(t!=null&&t.strip_punct),o=hp(e);let a=hv(o).replace(/\s+/g," ").trim().toLowerCase();return r&&(a=a.replace(/[^\p{L}\p{N}\s]+/gu,"").replace(/\s+/g," ").trim()),a}function Nm(e,t){const r=String(t??"").trim();if(!r)return!1;const o=km(r,{strip_punct:!1});if(!o)return!1;if(km(String(e??""),{strip_punct:!1}).includes(o))return!0;const c=km(r,{strip_punct:!0});return c?km(String(e??""),{strip_punct:!0}).includes(c):!1}function Yg(e){const t=hp(e).trim();if(!t)return[];const r=[],o=u=>{const d=String(u??"").replace(/\s+/g," ").trim();d&&(d.length<6||r.includes(d)||r.push(d))},a=t.search(/[`*_~]/);if(a>0){const u=t.slice(0,a);u.replace(/\s+/g," ").trim().length>=10&&o(u)}const c=[/`([^`]+)`/g,/\*\*([^*]+)\*\*/g,/__([^_]+)__/g,/\*([^*]+)\*/g,/_([^_]+)_/g];for(const u of c){let d;for(;(d=u.exec(t))!==null;){const m=String(d[1]??"").trim();m&&o(m)}}return o(hv(t)),r}function xC(e){const t=String(e??"").replace(/\r\n/g,`
|
|
137
|
-
`).replace(/\r/g,`
|
|
138
|
-
`);if(!t)return null;const r=t.split(`
|
|
139
|
-
`);let o;const a=[],c=[];let u=null,d=[],m=!1;const _=()=>{if(!u)return;const v=d.join(`
|
|
140
|
-
`).trim();v&&c.push({role:u,lines:[v]}),u=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 S=v.match(/^\s*(USER|ASSISTANT|SYSTEM)\s*:\s*(.*)$/i);if(S){m=!0,_();const j=String(S[1]||"").trim().toLowerCase();u=j==="user"?"user":j==="assistant"?"assistant":"system";const $=String(S[2]??"");d=$?[$]:[];continue}u?d.push(v):a.push(v)}if(_(),!m||!c.length)return null;const p=a.join(`
|
|
141
|
-
`).trim(),x={messages:[]};o&&(x.created_at=o),p&&x.messages.push({role:"system",content:p});for(const v of c)x.messages.push({role:v.role,content:v.lines.join(`
|
|
142
|
-
`)});return x.messages.length?x:null}function Xg(e,t){const r=String(e||""),o=String(t||"");return o>r?o:r}function Jg(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(),a=String((e==null?void 0:e.observed_at)||"").trim(),c=String((e==null?void 0:e.scope)||"").trim(),u=String((e==null?void 0:e.owner_id)||"").trim();return`${t}|${r}|${o}|${a}|${c}|${u}`}function vC(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(),a=String((e==null?void 0:e.object)||"").trim(),c=String((e==null?void 0:e.scope)||"").trim(),u=String((e==null?void 0:e.owner_id)||"").trim(),d=[];c&&d.push(`scope=${c}`),u&&d.push(`owner=${u}`);const m=d.length?` (${d.join(", ")})`:"";return`${t?`[${t}] `:""}${r} --${o}--> ${a}${m}`}function wC({gateway:e,selected_run_id:t,selected_session_id:r}){const[o,a]=h.useState(String(t||"").trim()),[c,u]=h.useState(String(r||"").trim()),[d,m]=h.useState("all"),_=d==="all",[p,x]=h.useState(!0),[v,b]=h.useState(750),[S,j]=h.useState(5e3),[$,T]=h.useState([]),[F,B]=h.useState(void 0),[I,U]=h.useState(""),[te,K]=h.useState(!1),[le,ce]=h.useState([]),[pe,Re]=h.useState(!1),[W,z]=h.useState(!1),[P,G]=h.useState(""),[H,re]=h.useState(""),[N,L]=h.useState(""),[q,C]=h.useState(""),[X,se]=h.useState("artifact"),[ie,ye]=h.useState(null),[Le,Me]=h.useState(""),[De,We]=h.useState(null),ve=h.useRef(!1),Pe=h.useMemo(()=>{const he=De,Ce=he!=null&&he.attributes&&typeof he.attributes=="object"&&!Array.isArray(he.attributes)?he.attributes:null;return(Ce&&typeof Ce.evidence_quote=="string"?String(Ce.evidence_quote):"").trim()},[De]),me=h.useMemo(()=>{const he=ie,Ce=he&&typeof he=="object"&&!Array.isArray(he)?he:null,gt=Ce&&typeof Ce.note=="string"?String(Ce.note):"";return hp(gt).trim()},[ie]),we=h.useMemo(()=>{const he=ie&&typeof ie=="object"&&!Array.isArray(ie)?ie:null,Ce=he&&Array.isArray(he.messages)?he.messages:null;return Array.isArray(Ce)?Ce:null},[ie]),Oe=h.useMemo(()=>{const he=me,Ce=Pe;return!he||!Ce?!1:Nm(he,Ce)},[Pe,me]),qe=h.useMemo(()=>{const he=we,Ce=Pe;if(!he||!Ce)return[];const gt=[];for(let dt=0;dt<Math.min(he.length,500);dt++){const kt=he[dt],Tt=(kt==null?void 0:kt.content)==null?"":String(kt.content);Nm(Tt,Ce)&>.push(dt)}return gt},[Pe,we]),rt=h.useMemo(()=>new Set(qe),[qe]),ke=qe.length?qe[0]:null,Fe=h.useCallback(he=>{const Ce=document.getElementById(`source_msg_${he}`);Ce&&typeof Ce.scrollIntoView=="function"&&Ce.scrollIntoView({block:"center",behavior:"smooth"})},[]),ot=h.useCallback(()=>{const he=document.getElementById("source_note_hit_0")||document.getElementById("source_note_msg_hit_0");he&&typeof he.scrollIntoView=="function"&&he.scrollIntoView({block:"center",behavior:"smooth"})},[]);h.useEffect(()=>{if(pe&&!(W||P)&&!ve.current){if(ke!==null){ve.current=!0,window.setTimeout(()=>Fe(ke),0);return}if(Oe){ve.current=!0,window.setTimeout(()=>ot(),0);return}}},[Fe,ot,P,ke,W,Oe,pe]);const Et=h.useRef(new Set),Lt=h.useRef(""),ae=h.useRef(null),Kt=h.useRef(null);h.useEffect(()=>{a(String(t||"").trim())},[t]),h.useEffect(()=>{u(String(r||"").trim())},[r]);const un=h.useMemo(()=>{const he=String(o||"").trim(),Ce=String(c||"").trim();return`mindmap:${d}:${he}:${Ce}`},[o,c,d]),gn=h.useMemo(()=>{let he=null,Ce=null;for(const gt of $){const dt=Zl(gt==null?void 0:gt.observed_at);dt!==null&&(he=he===null?dt:Math.min(he,dt),Ce=Ce===null?dt:Math.max(Ce,dt))}return{min_ms:he,max_ms:Ce}},[$]),Ne=1e3,de=h.useMemo(()=>{const he=gn.min_ms,Ce=gn.max_ms;if(typeof he!="number"||typeof Ce!="number"||!Number.isFinite(he)||!Number.isFinite(Ce))return null;if(Ce<=he)return{min_ms:he,max_ms:he,real_max_ms:Ce};const gt=he+Math.ceil((Ce-he)/Ne)*Ne;return{min_ms:he,max_ms:gt,real_max_ms:Ce}},[gn.max_ms,gn.min_ms]),[Ee,$t]=h.useState(!0),[bt,Xt]=h.useState(null);h.useEffect(()=>{Ee&&de&&Xt(de.max_ms)},[Ee,de]);const Dn=h.useMemo(()=>{const he=typeof bt=="number"?bt:null;return he===null?$:$.filter(Ce=>{const gt=Zl(Ce==null?void 0:Ce.observed_at);return gt===null?!0:gt<=he})},[$,bt]),ln=h.useCallback((he,Ce)=>{const gt=Array.isArray(he)?he:[],dt=String(Lt.current||"").trim(),kt=new Set,Tt=[];let qt="";for(const Dt of gt){if(!Dt||typeof Dt!="object"||typeof Dt.subject!="string"||typeof Dt.predicate!="string"||typeof Dt.object!="string")continue;const _n=Jg(Dt);if(kt.has(_n))continue;kt.add(_n),Tt.push(Dt);const Ot=String(Dt.observed_at||"").trim();Ot&&(qt=Xg(qt,Ot))}T(Tt),B(Ce==null?void 0:Ce.warnings),Et.current=kt,Lt.current=qt||dt},[]),yn=h.useCallback(async he=>{const Ce=n_(he.scope,"session"),gt=String(he.subject||"").trim(),dt=String(he.predicate||"").trim(),kt=String(he.object||"").trim(),Tt=String(he.since||"").trim(),qt=String(he.until||"").trim(),Dt=String(he.active_at||"").trim(),_n=String(he.query_text||"").trim(),Ot=typeof he.min_score=="number"&&Number.isFinite(he.min_score)?Number(he.min_score):void 0,vn=he.order==="asc"?"asc":"desc",dn=typeof he.limit=="number"&&Number.isFinite(he.limit)?Number(he.limit):0,nn=String(o||"").trim(),on=String(c||"").trim(),Gt={scope:Ce,all_owners:_,limit:dn,order:vn};gt&&(Gt.subject=gt),dt&&(Gt.predicate=dt),kt&&(Gt.object=kt),Tt&&(Gt.since=Tt),qt&&(Gt.until=qt),Dt&&(Gt.active_at=Dt),_n&&(Gt.query_text=_n),typeof Ot=="number"&&(Gt.min_score=Ot),_||(Ce==="run"?nn&&(Gt.run_id=nn):Ce==="session"?on?Gt.session_id=on:nn&&(Gt.run_id=nn):Ce==="all"&&(nn?Gt.run_id=nn:on&&(Gt.session_id=on)));try{const at=await e.kg_query(Gt),jn=Array.isArray(at==null?void 0:at.items)?at.items:[],Bn=at==null?void 0:at.warnings;return{ok:(at==null?void 0:at.ok)!==!1,count:Number((at==null?void 0:at.count)||jn.length),items:jn,warnings:Bn,raw:at}}catch(at){const jn=at instanceof Error?at.message:String(at);if(jn.includes("Run '")&&jn.includes("not found")&&!on&&(Ce==="session"||Ce==="all")&&nn){const Ln=await e.kg_query({...Gt,run_id:void 0,session_id:nn}),Un=Array.isArray(Ln==null?void 0:Ln.items)?Ln.items:[],lr=Ln==null?void 0:Ln.warnings;return{ok:(Ln==null?void 0:Ln.ok)!==!1,count:Number((Ln==null?void 0:Ln.count)||Un.length),items:Un,warnings:lr,raw:Ln}}throw new Error(jn||"KG query failed")}},[_,e,o,c]),Tn=h.useCallback(async he=>{var dt;const Ce=String(he.run_id||"").trim(),gt=String(he.span_id||"").trim();if(!(!Ce||!gt)){Re(!0),z(!0),G(""),L(Ce),C(gt),se("artifact"),re(`source span:${gt}`),ye(null),Me(""),We(he.assertion&&typeof he.assertion=="object"?he.assertion:null),ve.current=!1;try{const kt=[Ce],Tt=typeof((dt=he.assertion)==null?void 0:dt.owner_id)=="string"?String(he.assertion.owner_id).trim():"";Tt&&Tt!==Ce&&kt.push(Tt);let qt=null,Dt=null;for(const _n of kt)try{Dt=await(await e.download_run_artifact_content(_n,gt)).text(),_n!==Ce&&L(_n);break}catch(Ot){qt=Ot instanceof Error?Ot.message:String(Ot)}if(Dt==null)throw new Error(qt||"Failed to load source span");Me(Dt);try{const _n=JSON.parse(Dt);ye(_n)}catch{ye(null)}}catch(kt){const Tt=kt instanceof Error?kt.message:String(kt);G(Tt||"Failed to load source span")}finally{z(!1)}}},[e]),xn=h.useCallback(async he=>{const Ce=String(he.run_id||"").trim();if(!Ce)return null;try{const gt=await e.list_run_artifacts(Ce,{limit:200}),kt=(Array.isArray(gt==null?void 0:gt.items)?gt.items:[]).map(Ot=>{const vn=typeof(Ot==null?void 0:Ot.artifact_id)=="string"?String(Ot.artifact_id).trim():"",dn=Ot!=null&&Ot.tags&&typeof Ot.tags=="object"&&!Array.isArray(Ot.tags)?Ot.tags:null,nn=dn&&typeof dn.kind=="string"?String(dn.kind).trim():"";return{artifact_id:vn,kind:nn}}).filter(Ot=>!!(Ot.artifact_id&&(Ot.kind==="conversation_span"||Ot.kind==="memory_note")));if(!kt.length)return null;if(kt.length===1)return kt[0].artifact_id;const Tt=he.assertion,qt=Tt!=null&&Tt.attributes&&typeof Tt.attributes=="object"&&!Array.isArray(Tt.attributes)?Tt.attributes:null,_n=(qt&&typeof qt.evidence_quote=="string"?String(qt.evidence_quote):"").trim();if(!_n)return null;for(const Ot of kt.slice(0,10))try{const dn=await(await e.download_run_artifact_content(Ce,Ot.artifact_id)).text(),nn=JSON.parse(dn);if(nn&&typeof nn=="object"){const on=typeof nn.note=="string"?String(nn.note):"";if(on&&on.includes(_n))return Ot.artifact_id;const Gt=Array.isArray(nn.messages)?nn.messages:null;if(Gt){for(const at of Gt.slice(0,200))if(((at==null?void 0:at.content)==null?"":String(at.content)).includes(_n))return Ot.artifact_id}}}catch{}}catch{}return null},[e]),ir=h.useCallback(async he=>{const Ce=String(he.run_id||"").trim();if(Ce){Re(!0),z(!0),G(""),L(Ce),C(""),se("run_input"),re(`transcript run:${Ce}`),ye(null),Me(""),We(he.assertion&&typeof he.assertion=="object"?he.assertion:null),ve.current=!1;try{const gt=await xn({run_id:Ce,assertion:he.assertion});if(gt){await Tn({run_id:Ce,span_id:gt,assertion:he.assertion});return}const dt=await e.get_run_input_data(Ce),kt=dt&&typeof dt=="object"&&!Array.isArray(dt)?dt.input_data:null,Tt={kind:"run_input_data",run_id:Ce};if(dt&&typeof(dt==null?void 0:dt.workflow_id)=="string"&&(Tt.workflow_id=String(dt.workflow_id)),kt&&typeof kt=="object"&&!Array.isArray(kt)){const qt=kt.context,_n=(qt&&typeof qt=="object"&&Array.isArray(qt.messages)?qt.messages:null)||(Array.isArray(kt.messages)?kt.messages:null);Array.isArray(_n)&&(Tt.messages=_n);const Ot=["text","prompt","task","message"];for(const vn of Ot){const dn=kt[vn];if(typeof dn=="string"&&dn.trim()){Tt.note=dn.trim();break}}Tt.input_data=kt}!Tt.messages&&!Tt.note&&(Tt.note=JSON.stringify(kt??dt??{},null,2));try{const qt=await e.get_run(Ce),Dt=qt&&typeof(qt==null?void 0:qt.created_at)=="string"?String(qt.created_at):"";Dt&&(Tt.created_at=Dt)}catch{}ye(Tt),Me(JSON.stringify(dt,null,2))}catch(gt){const dt=gt instanceof Error?gt.message:String(gt);G(dt||"Failed to load run input transcript")}finally{z(!1)}}},[e,Tn,xn]),Qt=h.useCallback(async()=>{U(""),K(!0);try{const he=d==="all"?"all":d,Ce=await yn({scope:he,limit:0,order:"desc"});ln(Ce.items||[],{warnings:Ce.warnings}),ae.current={scope:he}}catch(he){const Ce=he instanceof Error?he.message:String(he);U(Ce||"Load failed")}finally{K(!1)}},[yn,ln,d]);h.useEffect(()=>{$.length||Qt()},[]);const Mr=h.useCallback(async he=>{const Ce=n_(he.scope,"session");return Kt.current=he,await yn({scope:Ce,subject:he.subject,predicate:he.predicate,object:he.object,query_text:he.query_text,min_score:he.min_score,since:he.since,until:he.until,active_at:he.active_at,limit:typeof he.limit=="number"?he.limit:0,order:"desc"})},[yn]),ps=h.useCallback((he,Ce)=>{var gt;if((Ce==null?void 0:Ce.kind)==="live query"){const dt=Kt.current;dt&&(ae.current={scope:n_(dt.scope,"session"),subject:typeof dt.subject=="string"?dt.subject:void 0,predicate:typeof dt.predicate=="string"?dt.predicate:void 0,object:typeof dt.object=="string"?dt.object:void 0})}ln(he,{warnings:(gt=Ce==null?void 0:Ce.result)==null?void 0:gt.warnings})},[ln]),Rn=h.useCallback(async()=>{const he=ae.current;if(!he)return;const Ce=String(Lt.current||"").trim(),gt=await yn({scope:he.scope,subject:he.subject,predicate:he.predicate,object:he.object,since:Ce||void 0,order:"asc",limit:0}),dt=Array.isArray(gt.items)?gt.items:[];if(!dt.length)return;const Tt=Date.now()+Math.max(250,Math.min(2e4,S)),qt=Et.current,Dt=[],_n=[];let Ot=String(Lt.current||"").trim();for(const vn of dt){if(!vn||typeof vn!="object"||typeof vn.subject!="string"||typeof vn.predicate!="string"||typeof vn.object!="string")continue;const dn=Jg(vn);if(qt.has(dn))continue;qt.add(dn),Dt.push(vn),_n.push({id:dn,assertion:vn,expires_at_ms:Tt});const nn=String(vn.observed_at||"").trim();nn&&(Ot=Xg(Ot,nn))}Dt.length&&(Lt.current=Ot,T(vn=>{const dn=vn.concat(Dt);return dn.sort((nn,on)=>String((on==null?void 0:on.observed_at)||"").localeCompare(String((nn==null?void 0:nn.observed_at)||""))),dn}),ce(vn=>{const dn=vn.concat(_n);return dn.sort((nn,on)=>on.expires_at_ms-nn.expires_at_ms),dn.slice(0,30)}))},[S,yn]);return h.useEffect(()=>{if(!p)return;let he=!1,Ce=null;const gt=async()=>{if(!he){try{await Rn()}catch{}he||(Ce=window.setTimeout(()=>void gt(),Math.max(250,Math.min(6e4,v))))}};return gt(),()=>{he=!0,Ce!==null&&window.clearTimeout(Ce)}},[p,v,Rn]),h.useEffect(()=>{if(!le.length)return;const he=window.setInterval(()=>{const Ce=Date.now();ce(gt=>gt.filter(dt=>dt.expires_at_ms>Ce))},250);return()=>window.clearInterval(he)},[le.length]),n.jsxs("div",{className:"mindmap_root",children:[n.jsxs("div",{className:"mindmap_bar",children:[n.jsx("button",{className:"btn",onClick:()=>void Qt(),disabled:te,children:te?"Loading…":"Load snapshot"}),n.jsxs("label",{className:"field_inline",children:[n.jsx("span",{className:"mono muted",children:"source"}),n.jsxs("select",{value:d,onChange:he=>{const Ce=String(he.target.value||"").trim();(Ce==="all"||Ce==="global"||Ce==="session"||Ce==="run")&&m(Ce)},children:[n.jsx("option",{value:"all",children:"all memory"}),n.jsx("option",{value:"global",children:"global"}),n.jsx("option",{value:"session",children:"session"}),n.jsx("option",{value:"run",children:"run"})]})]}),n.jsxs("label",{className:"field_inline",children:[n.jsx("span",{className:"mono muted",children:"live"}),n.jsx("input",{type:"checkbox",checked:p,onChange:he=>x(!!he.target.checked)})]}),d==="session"?n.jsxs("label",{className:"field_inline",children:[n.jsx("span",{className:"mono muted",children:"session_id"}),n.jsx("input",{className:"mono",value:c,onChange:he=>u(String(he.target.value||"")),placeholder:"(required)"})]}):null,d==="run"?n.jsxs("label",{className:"field_inline",children:[n.jsx("span",{className:"mono muted",children:"run_id"}),n.jsx("input",{className:"mono",value:o,onChange:he=>a(String(he.target.value||"")),placeholder:"(required)"})]}):null,n.jsxs("details",{className:"mindmap_details",children:[n.jsx("summary",{className:"mono muted",children:"advanced"}),n.jsx("div",{className:"mindmap_advanced",children:n.jsxs("div",{className:"field_inline",children:[n.jsx("span",{className:"mono muted",style:{width:84},children:"poll_ms"}),n.jsx("input",{type:"number",min:250,max:6e4,step:50,value:v,onChange:he=>b(Math.max(250,Number(he.target.value||0)||750))}),n.jsx("span",{className:"mono muted",children:"highlight_ms"}),n.jsx("input",{type:"number",min:250,max:2e4,step:250,value:S,onChange:he=>j(Math.max(250,Number(he.target.value||0)||5e3))})]})})]})]}),I?n.jsx("div",{className:"mindmap_error mono",children:I}):null,n.jsxs("div",{className:"mindmap_explorer",children:[n.jsx(gC,{title:"mindmap",resetKey:un,queryMode:"replace",items:Dn,warnings:F,onQuery:Mr,onItemsReplace:ps,onOpenSpan:({run_id:he,span_id:Ce,assertion:gt})=>{Tn({run_id:he,span_id:Ce,assertion:gt})},onOpenTranscript:({run_id:he,span_id:Ce,assertion:gt})=>{const dt=String(he||"").trim(),kt=typeof Ce=="string"?String(Ce).trim():"";dt&&(kt?Tn({run_id:dt,span_id:kt,assertion:gt}):ir({run_id:dt,assertion:gt}))}},un),le.length?n.jsxs("div",{className:"mindmap_recent mindmap_overlay mindmap_overlay_recent",children:[n.jsx("div",{className:"mindmap_recent_title mono muted",children:"new assertions"}),n.jsx("div",{className:"mindmap_recent_list",children:le.slice().sort((he,Ce)=>Ce.expires_at_ms-he.expires_at_ms).slice(0,12).map(he=>n.jsx("div",{className:"mindmap_recent_item mono",children:vC(he.assertion)},he.id))})]}):null,de?n.jsx("div",{className:"mindmap_timeline mindmap_overlay mindmap_overlay_timeline",children:n.jsxs("div",{className:"mindmap_timeline_row",children:[n.jsx("div",{className:"mindmap_timeline_label mono muted",children:Oc(Math.min(typeof bt=="number"?bt:de.max_ms,de.real_max_ms))}),n.jsx("input",{className:"mindmap_slider",type:"range",min:de.min_ms,max:de.max_ms,step:Ne,value:typeof bt=="number"?bt:de.max_ms,onChange:he=>{const Ce=Number(he.target.value||0);Xt(Ce),$t(Ce>=de.max_ms)}}),n.jsxs("div",{className:"mindmap_timeline_counts mono muted",children:[Dn.length.toLocaleString(),"/",$.length.toLocaleString()]})]})}):null]}),n.jsxs(gi,{open:pe,title:H||"source",onClose:()=>{Re(!1)},children:[W?n.jsx("div",{className:"mono muted",children:"Loading…"}):null,P?n.jsx("div",{className:"mindmap_error mono",children:P}):null,!W&&!P?n.jsxs("div",{className:"source_span",children:[(()=>{const he=De;if(!he)return null;const Ce=String(he.subject||"").trim(),gt=String(he.predicate||"").trim(),dt=String(he.object||"").trim(),kt=Oc(Zl(he.observed_at)),Tt=he.attributes&&typeof he.attributes=="object"&&!Array.isArray(he.attributes)?he.attributes:null,qt=Tt&&typeof Tt.evidence_quote=="string"?String(Tt.evidence_quote):"",Dt=Tt&&typeof Tt.original_context=="string"?String(Tt.original_context):"";return n.jsxs("div",{className:"source_header",children:[n.jsxs("div",{className:"mono source_triple",title:`${Ce} --${gt}--> ${dt}`,children:[Ce," ",n.jsxs("span",{className:"muted",children:["—",gt,"→"]})," ",dt," ",kt?n.jsxs("span",{className:"muted",children:["[",kt,"]"]}):null]}),qt?n.jsxs("div",{className:"source_evidence",children:[n.jsx("div",{className:"mono muted",style:{fontSize:11,marginBottom:6},children:"evidence_quote"}),n.jsx("pre",{className:"mono source_evidence_quote",children:qt}),Dt?n.jsxs("details",{className:"source_evidence_more",children:[n.jsx("summary",{className:"mono muted",children:"original_context"}),n.jsx("pre",{className:"mono source_evidence_quote",children:Dt})]}):null]}):null]})})(),n.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["run_id=",N," · ",X==="artifact"?`span_id=${q}`:"source=input_data"]}),n.jsxs("div",{className:"source_actions",children:[ke!==null?n.jsx("button",{className:"btn",onClick:()=>Fe(ke),children:"Jump to evidence"}):null,ke===null&&Oe?n.jsx("button",{className:"btn",onClick:()=>ot(),children:"Jump to evidence"}):null]}),(()=>{const he=ie,Ce=he&&typeof he=="object"&&!Array.isArray(he)?he:null,gt=we,dt=me,kt=Ce&&typeof Ce.created_at=="string"?String(Ce.created_at):"",Tt=kt?Zl(kt):null,qt=Tt!==null?Oc(Tt):kt,Dt=Ce&&Ce.span&&typeof Ce.span=="object"&&!Array.isArray(Ce.span)?Ce.span:null,_n=Dt&&typeof Dt.from_timestamp=="string"?String(Dt.from_timestamp):"",Ot=Dt&&typeof Dt.to_timestamp=="string"?String(Dt.to_timestamp):"",vn=_n?Zl(_n):null,dn=Ot?Zl(Ot):null,nn=vn!==null&&dn!==null?`${Oc(vn)} → ${Oc(dn)}`:"";if(dt){const on=xC(dt);if(on){const Gt=Pe,at=Gt?on.messages.findIndex(Un=>Nm(Un.content,Gt)):-1,jn=Gt?Yg(Gt):[],Bn=on.created_at||kt,Ln=Bn?yC(Bn):kt?qt:"";return n.jsx("div",{className:"source_chat",children:on.messages.map((Un,lr)=>{const dr=Un.role,br=!!(Gt&&Nm(Un.content,Gt)),rs=dr==="user"?"USER":dr==="assistant"?"ASSISTANT":"SYSTEM";return n.jsxs("div",{id:lr===at?"source_note_msg_hit_0":void 0,className:`source_msg source_${dr} ${br?"source_match":""}`,children:[n.jsxs("div",{className:"source_msg_meta mono muted",children:[n.jsxs("span",{children:["#",lr+1," · ",rs,br?n.jsx("span",{className:"source_match_badge",children:"evidence"}):null]}),Ln?n.jsx("span",{title:Bn||"",children:Ln}):null]}),n.jsx("div",{className:"source_msg_body",children:n.jsx(ts,{text:Un.content,highlights:br&&jn.length?jn:void 0,highlightClassName:"source_note_hit",highlightId:lr===at?"source_note_hit_0":void 0})})]},`note_msg:${lr}`)})})}return n.jsxs("div",{className:"source_note",children:[kt?n.jsx("div",{className:"mono muted",style:{marginBottom:10},children:n.jsxs("span",{title:kt,children:["created_at=",qt]})}):null,n.jsx(ts,{text:dt,highlights:Pe?Yg(Pe):void 0,highlightClassName:"source_note_hit",highlightId:"source_note_hit_0"})]})}if(gt){const on=new Map;for(const at of gt){const jn=typeof(at==null?void 0:at.role)=="string"?String(at.role):"unknown";on.set(jn,(on.get(jn)||0)+1)}const Gt=Array.from(on.entries()).sort((at,jn)=>jn[1]-at[1]||at[0].localeCompare(jn[0])).map(([at,jn])=>`${at}×${jn}`).join(" · ");return n.jsxs("div",{className:"source_chat",children:[kt?n.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:[n.jsxs("span",{title:kt,children:["created_at=",qt]})," · messages=",gt.length]}):null,nn?n.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["span=",nn]}):null,Gt?n.jsxs("div",{className:"mono muted",style:{marginBottom:10},children:["participants: ",Gt]}):null,gt.slice(0,200).map((at,jn)=>{var gs,Ds;const Bn=typeof(at==null?void 0:at.role)=="string"?String(at.role):"unknown",Ln=(at==null?void 0:at.content)==null?"":String(at.content),Un=typeof(at==null?void 0:at.timestamp)=="string"?String(at.timestamp):"",lr=Un?Zl(Un):null,dr=lr!==null?Oc(lr):Un,br=typeof(at==null?void 0:at.message_id)=="string"?String(at.message_id):typeof((gs=at==null?void 0:at.metadata)==null?void 0:gs.message_id)=="string"?String(at.metadata.message_id):typeof((Ds=at==null?void 0:at.metadata)==null?void 0:Ds.id)=="string"?String(at.metadata.id):"",rs=rt.has(jn);return n.jsxs("div",{id:`source_msg_${jn}`,className:`source_msg source_${Bn} ${rs?"source_match":""}`,children:[n.jsxs("div",{className:"source_msg_meta mono muted",children:[n.jsxs("span",{children:["#",jn+1," · ",Bn,rs?n.jsx("span",{className:"source_match_badge",children:"evidence"}):null,br?n.jsx("span",{className:"source_msg_id",children:br}):null]}),Un?n.jsx("span",{title:Un,children:dr}):null]}),n.jsx("div",{className:"source_msg_body",children:n.jsx(ts,{text:Ln})})]},jn)})]})}return n.jsx("pre",{className:"mono source_raw",style:{whiteSpace:"pre-wrap",wordBreak:"break-word"},children:(typeof he=="string"?he:Le)||"(empty)"})})()]}):null]})]})}function r_(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function bC(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 Kg(e){const t=r=>{const o=String((r==null?void 0:r.id)||"").trim(),a=o.endsWith("_uat")?o.slice(0,-4):o;return a==="gateway"?0:a==="build"?1:a==="abstractobserver"?2:a==="abstractcode_web"?3:a==="abstractflow_backend"?4:a==="abstractflow_frontend"?5:10};return[...e||[]].sort((r,o)=>{const a=t(r),c=t(o);if(a!==c)return a-c;const u=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 u<d?-1:u>d?1:0})}function jC(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 SC({gateway:e,gateway_connected:t}){const[r,o]=h.useState("prod"),[a,c]=h.useState(null),[u,d]=h.useState([]),[m,_]=h.useState(!1),[p,x]=h.useState(""),[v,b]=h.useState(!1),[S,j]=h.useState(null),[$,T]=h.useState([]),[F,B]=h.useState(!1),[I,U]=h.useState(""),[te,K]=h.useState({}),[le,ce]=h.useState(!1),[pe,Re]=h.useState(null),[W,z]=h.useState(""),[P,G]=h.useState(""),[H,re]=h.useState(!1),N=h.useRef(null),L=h.useMemo(()=>Kg(u.filter(me=>!String((me==null?void 0:me.id)||"").trim().endsWith("_uat"))),[u]),q=h.useMemo(()=>Kg(u.filter(me=>String((me==null?void 0:me.id)||"").trim().endsWith("_uat"))),[u]),C=r==="uat"?q:L,X=h.useCallback(async()=>{if(t){_(!0),x("");try{const me=await e.list_processes();c(!!(me!=null&&me.enabled));const we=Array.isArray(me==null?void 0:me.processes)?me.processes:[];d(we)}catch(me){x(String((me==null?void 0:me.message)||me||"Failed to list processes"))}finally{_(!1)}}},[e,t]),se=h.useCallback(async()=>{if(t){B(!0),U("");try{const me=await e.list_process_env_vars();j(!!(me!=null&&me.enabled));const we=Array.isArray(me==null?void 0:me.vars)?me.vars:[];T(we);const Oe=String((me==null?void 0:me.error)||"").trim();Oe&&U(Oe)}catch(me){U(String((me==null?void 0:me.message)||me||"Failed to list env vars"))}finally{B(!1)}}},[e,t]),ie=h.useCallback(async()=>{if(!t)return;const me=pe;if(me){re(!0);try{const we=await e.process_log_tail(String(me.id||""),{max_bytes:16e4}),Oe=String((we==null?void 0:we.content)||""),qe=typeof(we==null?void 0:we.bytes)=="number"?Number(we.bytes):0,rt=!!(we!=null&&we.truncated),ke=String((we==null?void 0:we.log_relpath)||"");z(Oe),G(`${qe.toLocaleString()} bytes${rt?" (tail)":""}${ke?` • ${ke}`:""}`)}catch(we){z(""),G(""),x(String((we==null?void 0:we.message)||we||"Failed to read logs"))}finally{re(!1)}}},[e,t,pe]),ye=h.useCallback(async me=>{Re(me),ce(!0)},[]),Le=h.useCallback(()=>{ce(!1),Re(null),z(""),G("")},[]);h.useEffect(()=>{t&&X()},[t,X]),h.useEffect(()=>{if(!t||r==="env"||!v)return;const me=window.setInterval(()=>void X(),2e3);return()=>window.clearInterval(me)},[t,r,v,X]),h.useEffect(()=>{t&&r==="env"&&se()},[t,r,se]),h.useEffect(()=>{if(t&&le)return ie(),N.current&&window.clearInterval(N.current),N.current=window.setInterval(()=>void ie(),1500),()=>{N.current&&window.clearInterval(N.current),N.current=null}},[t,le,ie]);async function Me(me,we){x("");try{we==="start"?await e.start_process(me.id):we==="stop"?await e.stop_process(me.id):we==="restart"?await e.restart_process(me.id):we==="redeploy"&&await e.redeploy_process(me.id),await X()}catch(Oe){x(String((Oe==null?void 0:Oe.message)||Oe||`Failed to ${we}`))}}async function De(me){const we=String(me||"").trim();if(we){U("");try{const Oe=String((te==null?void 0:te[we])??""),qe=await e.update_process_env_vars({set:{[we]:Oe}});j(!!(qe!=null&&qe.enabled)),T(Array.isArray(qe==null?void 0:qe.vars)?qe.vars:[]),K(ke=>({...ke||{},[we]:""}));const rt=String((qe==null?void 0:qe.error)||"").trim();rt&&U(rt)}catch(Oe){U(String((Oe==null?void 0:Oe.message)||Oe||"Failed to set env var"))}}}async function We(me){const we=String(me||"").trim();if(we){U("");try{const Oe=await e.update_process_env_vars({unset:[we]});j(!!(Oe!=null&&Oe.enabled)),T(Array.isArray(Oe==null?void 0:Oe.vars)?Oe.vars:[]),K(rt=>({...rt||{},[we]:""}));const qe=String((Oe==null?void 0:Oe.error)||"").trim();qe&&U(qe)}catch(Oe){U(String((Oe==null?void 0:Oe.message)||Oe||"Failed to unset env var"))}}}const ve=a===null?"…":a?"enabled":"disabled",Pe=S===null?"…":S?"enabled":"disabled";return n.jsx("div",{className:"page page_scroll",children:n.jsxs("div",{className:"page_inner constrained",children:[n.jsxs("div",{className:"card",children:[n.jsxs("div",{className:"title",children:[n.jsx("h1",{children:"Process manager"}),n.jsxs("div",{style:{display:"flex",gap:"8px",flexWrap:"wrap",marginTop:"10px"},children:[n.jsx("button",{className:`nav_tab ${r==="prod"?"active":""}`,onClick:()=>o("prod"),children:"Production"}),n.jsx("button",{className:`nav_tab ${r==="uat"?"active":""}`,onClick:()=>o("uat"),children:"UAT"}),n.jsx("button",{className:`nav_tab ${r==="env"?"active":""}`,onClick:()=>o("env"),children:"ENV"})]})]}),t?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"mono muted",style:{marginTop:"6px"},children:["Process manager: ",ve]}),r!=="env"&&a===!1?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"hint"}),n.jsx("span",{className:"mono",children:"server"})]}),n.jsxs("div",{className:"body mono",children:["To manage processes, set ",n.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_ENABLE_PROCESS_MANAGER=1"})," and"," ",n.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_TRIAGE_REPO_ROOT"})," (your AbstractFramework checkout root) on the gateway host."]})]}):null,r!=="env"?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[n.jsxs("button",{className:`btn btn_icon ${m?"is_loading":""}`,onClick:()=>void X(),disabled:!t||m,children:[n.jsx(hn,{name:"refresh",size:16}),m?"Refreshing…":"Refresh"]}),n.jsxs("label",{className:"btn",style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[n.jsx("input",{type:"checkbox",checked:v,onChange:me=>b(!!me.target.checked)}),"auto"]})]}),p?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:"processes"})]}),n.jsx("div",{className:"body mono",children:p})]}):null,n.jsx("div",{style:{marginTop:"12px"},children:C.map(me=>{const we=String(me.id||"").trim(),Oe=String(me.label||we).trim()||we,qe=bC(String(me.status||"")),ke=String(me.status||"").trim().toLowerCase()==="running",Fe=Array.isArray(me==null?void 0:me.actions)?me.actions.map(Xt=>String(Xt||"").trim()):[],ot=Fe.includes("start"),Et=Fe.includes("stop"),Lt=Fe.includes("restart"),ae=Fe.includes("redeploy"),Kt=Fe.includes("logs"),un=typeof(me==null?void 0:me.pid)=="number"?Number(me.pid):null,gn=String((me==null?void 0:me.url)||"").trim(),Ne=String((me==null?void 0:me.description)||"").trim(),de=String((me==null?void 0:me.last_error)||"").trim(),Ee=typeof(me==null?void 0:me.exit_code)=="number"?Number(me.exit_code):null,$t=[];un&&$t.push(`pid ${un}`),Ee!==null&&$t.push(`exit ${Ee}`);const bt=$t.join(" • ");return n.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:we}),n.jsx("span",{className:`tag ${qe.cls}`,children:qe.label})]}),n.jsxs("div",{className:"body",children:[n.jsx("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:"10px",flexWrap:"wrap"},children:n.jsxs("div",{children:[n.jsx("div",{style:{fontWeight:700},children:Oe}),Ne?n.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:r_(Ne,220)}):null,bt?n.jsx("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:bt}):null,gn?n.jsx("div",{className:"mono muted",style:{marginTop:bt?"4px":"6px",fontSize:"var(--font-size-sm)"},children:ke?n.jsx("a",{href:gn,target:"_blank",rel:"noreferrer",className:"mono",style:{opacity:.95},children:gn}):n.jsx("span",{className:"mono",children:gn})}):null]})}),de?n.jsx("div",{className:"mono",style:{marginTop:"8px",color:"var(--error)"},children:r_(de,360)}):null,n.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[ot?n.jsx("button",{className:"btn primary",onClick:()=>void Me(me,"start"),disabled:m,children:"Start"}):null,Et?n.jsx("button",{className:"btn danger",onClick:()=>void Me(me,"stop"),disabled:m,children:"Stop"}):null,Lt?n.jsx("button",{className:"btn",onClick:()=>void Me(me,"restart"),disabled:m,children:"Restart"}):null,ae?n.jsx("button",{className:"btn",onClick:()=>void Me(me,"redeploy"),disabled:m,children:"Redeploy"}):null,Kt?n.jsx("button",{className:"btn",onClick:()=>void ye(me),disabled:m,children:"Logs"}):null]})]})]},we)})})]}):n.jsxs(n.Fragment,{children:[n.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, …)."}),n.jsxs("div",{className:"mono muted",style:{marginTop:"6px"},children:["Env vars: ",Pe]}),S===!1?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"hint"}),n.jsx("span",{className:"mono",children:"server"})]}),n.jsxs("div",{className:"body mono",children:["Set ",n.jsx("span",{className:"mono",children:"ABSTRACTGATEWAY_ENABLE_PROCESS_MANAGER=1"})," on the gateway host."]})]}):null,n.jsx("div",{className:"actions",style:{marginTop:"10px"},children:n.jsxs("button",{className:`btn btn_icon ${F?"is_loading":""}`,onClick:()=>void se(),disabled:!t||F,children:[n.jsx(hn,{name:"refresh",size:16}),F?"Refreshing…":"Refresh"]})}),I?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:"env"})]}),n.jsx("div",{className:"body mono",children:I})]}):null,n.jsxs("div",{style:{marginTop:"12px"},children:[$.map(me=>{const we=String((me==null?void 0:me.key)||"").trim();if(!we)return null;const Oe=String((me==null?void 0:me.label)||we).trim()||we,qe=String((me==null?void 0:me.description)||"").trim(),rt=String((me==null?void 0:me.source)||"").trim(),ke=!!(me!=null&&me.secret),Fe=String((me==null?void 0:me.updated_at)||"").trim(),ot=jC(rt),Et=String((te==null?void 0:te[we])??"");return n.jsxs("div",{className:"log_item",style:{marginBottom:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:we}),n.jsx("span",{className:`chip mono ${ot.cls}`,children:ot.label})]}),n.jsxs("div",{className:"body",children:[n.jsx("div",{style:{fontWeight:700},children:Oe}),qe?n.jsx("div",{className:"mono muted",style:{marginTop:"4px"},children:r_(qe,280)}):null,Fe?n.jsxs("div",{className:"mono muted",style:{marginTop:"6px",fontSize:"var(--font-size-sm)"},children:["updated ",Fe]}):null,n.jsxs("div",{className:"actions",style:{marginTop:"10px",alignItems:"center"},children:[n.jsx("input",{className:"input",value:Et,onChange:Lt=>K(ae=>({...ae||{},[we]:String(Lt.target.value||"")})),placeholder:ke?"••••••••":"value",type:ke?"password":"text",style:{flex:"1 1 320px",minWidth:"220px"},autoComplete:"off",spellCheck:!1}),n.jsx("button",{className:"btn primary",onClick:()=>void De(we),disabled:F,children:"Set"}),n.jsx("button",{className:"btn",onClick:()=>void We(we),disabled:F,children:"Unset"})]})]})]},`env:${we}`)}),$.length?null:n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No env vars available (process manager must be enabled)."})]})]})]}):n.jsxs("div",{className:"mono muted",children:["Not connected. Open"," ",n.jsx("span",{className:"mono",style:{opacity:.9},children:"Settings"})," ","to connect to a gateway."]})]}),le&&pe?n.jsxs(gi,{open:le,title:`${String(pe.label||pe.id||"logs").trim()||"Logs"}`,onClose:Le,children:[n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:P}),n.jsxs("div",{className:"actions",style:{marginTop:"10px"},children:[n.jsxs("button",{className:`btn btn_icon ${H?"is_loading":""}`,onClick:()=>void ie(),disabled:H,children:[n.jsx(hn,{name:"refresh",size:16}),H?"Refreshing…":"Refresh"]}),n.jsxs("button",{className:"btn btn_icon",onClick:()=>{try{navigator.clipboard.writeText(W||"")}catch{}},disabled:!W,children:[n.jsx(hn,{name:"copy",size:16}),"Copy"]})]}),n.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:W||"(no logs yet)"})]}):null]})})}function Zg(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function cf(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function s_(e){const t=String(e||"").split(/[,\n]/g).map(r=>r.trim()).filter(Boolean);return t.length<=1?t[0]||"":t}function kC(e){const t=e.gateway,[r,o]=h.useState([]),[a,c]=h.useState(""),[u,d]=h.useState(""),[m,_]=h.useState(""),[p,x]=h.useState("7d"),[v,b]=h.useState("unread"),[S,j]=h.useState(25),[$,T]=h.useState(!1),[F,B]=h.useState(!1),[I,U]=h.useState(!1),[te,K]=h.useState(!1),[le,ce]=h.useState(""),[pe,Re]=h.useState(""),[W,z]=h.useState(""),[P,G]=h.useState([]),[H,re]=h.useState(""),[N,L]=h.useState(null),[q,C]=h.useState(!1),[X,se]=h.useState(""),[ie,ye]=h.useState(""),[Le,Me]=h.useState(""),[De,We]=h.useState(""),[ve,Pe]=h.useState(""),me=e.enabled,we=h.useMemo(()=>(Array.isArray(r)?r:[]).map(Ee=>({account:String((Ee==null?void 0:Ee.account)||"").trim(),can_read:(Ee==null?void 0:Ee.can_read)!==!1,can_send:(Ee==null?void 0:Ee.can_send)!==!1,label:""})).filter(Ee=>!!Ee.account),[r]),Oe=h.useMemo(()=>{const de=String(u||"").trim();return de&&we.find(Ee=>Ee.account===de)||null},[we,u]),qe=!!(Oe!=null&&Oe.can_read),rt=!!(Oe!=null&&Oe.can_send),ke=h.useMemo(()=>we.map(de=>{const Ee=de.can_read?de.can_send?"":" (read-only)":" (send-only)";return{...de,label:`${de.account}${Ee}`}}),[we]);async function Fe(){if(me){ce(""),T(!0);try{const de=await t.email_list_accounts();o(Array.isArray(de==null?void 0:de.accounts)?de.accounts:[]),c(String((de==null?void 0:de.default_account)||"").trim())}catch(de){ce(String((de==null?void 0:de.message)||de||"Failed to list email accounts")),o([]),c("")}finally{T(!1)}}}h.useEffect(()=>{Fe()},[me]),h.useEffect(()=>{if(!me)return;const de=String(u||"").trim();if(de&&we.some($t=>$t.account===de))return;const Ee=String(localStorage.getItem("abstractobserver_email_account")||"").trim();if(Ee&&we.some($t=>$t.account===Ee)){d(Ee);return}if(a&&we.some($t=>$t.account===a)){d(a);return}we.length&&d(we[0].account)},[me,u,a,we]),h.useEffect(()=>{const de=String(u||"").trim();de&&localStorage.setItem("abstractobserver_email_account",de)},[u]);async function ot(){if(!me)return;const de=String(u||"").trim();if(de){if(!qe){ce("Selected account is not allowed to read email."),G([]),re(""),L(null);return}ce(""),B(!0);try{const Ee=await t.email_list_messages({account:de,mailbox:String(m||"").trim()||void 0,since:String(p||"").trim()||void 0,status:v,limit:S});G(Array.isArray(Ee==null?void 0:Ee.messages)?Ee.messages:[]),String(H||"").trim()&&!Array.isArray(Ee==null?void 0:Ee.messages)&&(re(""),L(null))}catch(Ee){ce(String((Ee==null?void 0:Ee.message)||Ee||"Failed to list emails")),G([]),re(""),L(null)}finally{B(!1)}}}h.useEffect(()=>{me&&String(u||"").trim()&&ot()},[me,u]);async function Et(de){if(!me)return;const Ee=String(u||"").trim(),$t=String(de||"").trim();if(!(!Ee||!$t)&&qe){re($t),L(null),Re(""),U(!0);try{const bt=await t.email_read_message($t,{account:Ee,mailbox:String(m||"").trim()||void 0,max_body_chars:2e4});L(bt)}catch(bt){Re(String((bt==null?void 0:bt.message)||bt||"Failed to read email"))}finally{U(!1)}}}function Lt(de){z(""),se(String((de==null?void 0:de.to)||"").trim()),ye(""),Me(""),We(String((de==null?void 0:de.subject)||"").trim()),Pe(String((de==null?void 0:de.body)||"")),C(!0)}function ae(){if(!N)return;const de=String((N==null?void 0:N.from)||"").trim(),Ee=String((N==null?void 0:N.subject)||"").trim(),$t=Ee.toLowerCase().startsWith("re:")?Ee:`Re: ${Ee||"(no subject)"}`,bt=String((N==null?void 0:N.body_text)||"").trim(),Xt=`
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
On ${Zg((N==null?void 0:N.date)||"")}, ${de} wrote:
|
|
146
|
-
|
|
147
|
-
${bt}`;Lt({to:de,subject:$t,body:Xt})}async function Kt(){if(!me||te)return;const de=String(u||"").trim();if(de){if(!rt){z("Selected account is not allowed to send email.");return}z(""),K(!0);try{const Ee=s_(X);if(!Ee)throw new Error("to is required");const $t=String(De||"").trim();if(!$t)throw new Error("subject is required");const bt=String(ve||"").trim();if(!bt)throw new Error("body is required");await t.email_send({account:de,to:Ee,subject:$t,body_text:bt,cc:s_(ie),bcc:s_(Le)}),C(!1),se(""),ye(""),Me(""),We(""),Pe(""),await ot()}catch(Ee){z(String((Ee==null?void 0:Ee.message)||Ee||"Failed to send email"))}finally{K(!1)}}}const un=h.useMemo(()=>{const de=String(H||"").trim();return de&&P.find(Ee=>String((Ee==null?void 0:Ee.uid)||"").trim()===de)||null},[P,H]),gn=String((N==null?void 0:N.body_text)||"").trim()||String((N==null?void 0:N.body_html)||"").trim(),Ne=String((N==null?void 0:N.body_text)||"").trim()?"Body (text)":String((N==null?void 0:N.body_html)||"").trim()?"Body (html, raw)":"Body";return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"inbox_layout",children:[n.jsxs("div",{className:"card inbox_sidebar",children:[n.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between"},children:[n.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center"},children:[n.jsx("select",{value:u,onChange:de=>d(String(de.target.value||"")),disabled:!me||$,children:ke.length?ke.map(de=>n.jsx("option",{value:de.account,children:de.label},de.account)):n.jsx("option",{value:"",children:"(no accounts)"})}),n.jsx("button",{className:"btn",onClick:()=>void Fe(),disabled:!me||$,children:$?"Loading…":"Accounts"})]}),n.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[n.jsx("button",{className:"btn",onClick:()=>void ot(),disabled:!me||F||!String(u||"").trim()||!qe,children:F?"Refreshing…":"Refresh"}),n.jsx("button",{className:"btn primary",onClick:()=>Lt(),disabled:!me||!String(u||"").trim()||!rt,children:"Compose"})]})]}),n.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[n.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"1 1 120px"},children:[n.jsx("label",{children:"Since"}),n.jsx("input",{value:p,onChange:de=>x(String(de.target.value||"")),placeholder:"7d"})]}),n.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"0 0 120px"},children:[n.jsx("label",{children:"Status"}),n.jsxs("select",{value:v,onChange:de=>b(String(de.target.value||"all")),children:[n.jsx("option",{value:"all",children:"all"}),n.jsx("option",{value:"unread",children:"unread"}),n.jsx("option",{value:"read",children:"read"})]})]}),n.jsxs("div",{className:"field",style:{margin:0,minWidth:120,flex:"0 0 120px"},children:[n.jsx("label",{children:"Limit"}),n.jsx("input",{value:String(S),onChange:de=>j(Number(de.target.value||"0")||25),inputMode:"numeric",placeholder:"25"})]}),n.jsxs("div",{className:"field",style:{margin:0,minWidth:160,flex:"1 1 160px"},children:[n.jsx("label",{children:"Mailbox"}),n.jsx("input",{value:m,onChange:de=>_(String(de.target.value||"")),placeholder:"INBOX"})]}),n.jsx("div",{className:"row",style:{gap:"8px",alignItems:"center",marginTop:"18px"},children:n.jsx("button",{className:"btn",onClick:()=>void ot(),disabled:!me||F||!String(u||"").trim()||!qe,children:"Apply"})})]}),le?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:le}):null,n.jsx("div",{className:"inbox_list",children:P.length?P.map(de=>{const Ee=String((de==null?void 0:de.uid)||"").trim(),$t=!!Ee&&Ee===String(H||"").trim(),bt=String((de==null?void 0:de.subject)||"").trim()||"(no subject)",Xt=String((de==null?void 0:de.from)||"").trim(),Dn=String((de==null?void 0:de.date)||"").trim(),ln=!!(de!=null&&de.seen);return n.jsxs("button",{className:`inbox_item ${$t?"active":""}`,onClick:()=>void Et(Ee),children:[n.jsxs("div",{className:"inbox_item_title",children:[n.jsx("span",{className:`pill ${ln?"approved":"pending"}`,children:ln?"read":"unread"}),n.jsx("span",{className:"item_title_text",children:cf(bt,52)})]}),n.jsx("div",{className:"inbox_item_meta mono muted",children:cf(Xt,60)||"(from?)"}),n.jsxs("div",{className:"inbox_item_meta mono muted",children:[cf(Dn,36)||"(date?)"," • uid ",cf(Ee,10)]})]},Ee||Math.random())}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No messages."})})]}),n.jsx("div",{className:"card inbox_viewer",children:H?I?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading email…"}):pe?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:pe}):N?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between",gap:"8px",flexWrap:"wrap"},children:[n.jsxs("div",{className:"row",style:{gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[n.jsx("div",{className:"mono",style:{fontWeight:700},children:String((N==null?void 0:N.subject)||"").trim()||"(no subject)"}),n.jsx("span",{className:"pill muted",children:String((N==null?void 0:N.account)||"").trim()||u}),n.jsx("span",{className:"pill muted",children:String((N==null?void 0:N.mailbox)||"").trim()||"(mailbox?)"}),n.jsxs("span",{className:"pill muted",children:["uid ",cf(String((N==null?void 0:N.uid)||H),12)]})]}),n.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[n.jsx("button",{className:"btn",onClick:()=>Qr(String((N==null?void 0:N.message_id)||"")),disabled:!String((N==null?void 0:N.message_id)||"").trim(),title:"Copy Message-ID",children:"Copy msg-id"}),n.jsx("button",{className:"btn",onClick:()=>Qr(String(H||"")),disabled:!String(H||"").trim(),title:"Copy UID",children:"Copy uid"}),n.jsx("button",{className:"btn primary",onClick:()=>ae(),disabled:!rt||!String((N==null?void 0:N.from)||"").trim(),children:"Reply"})]})]}),n.jsx("div",{className:"section_divider"}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"From"}),n.jsx("div",{className:"mono",children:String((N==null?void 0:N.from)||"").trim()||"(from?)"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"To"}),n.jsx("div",{className:"mono",children:String((N==null?void 0:N.to)||"").trim()||"(to?)"})]}),String((N==null?void 0:N.cc)||"").trim()?n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Cc"}),n.jsx("div",{className:"mono",children:String((N==null?void 0:N.cc)||"").trim()})]}):null,n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Date"}),n.jsx("div",{className:"mono",children:Zg(String((N==null?void 0:N.date)||(un==null?void 0:un.date)||"").trim())||String((N==null?void 0:N.date)||(un==null?void 0:un.date)||"").trim()||"(date?)"})]}),Array.isArray(N==null?void 0:N.attachments)&&N.attachments.length?n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Attachments"}),n.jsx("div",{className:"mono",children:N.attachments.map((de,Ee)=>n.jsxs("div",{children:[String((de==null?void 0:de.filename)||"").trim()||"(file?)"," ",n.jsx("span",{className:"muted",children:String((de==null?void 0:de.content_type)||"").trim()?`(${String((de==null?void 0:de.content_type)||"").trim()})`:""})]},`${(de==null?void 0:de.filename)||""}:${Ee}`))})]}):null,n.jsx("div",{className:"section_divider"}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:Ne}),n.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:gn||"(empty)"})]})]}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an email to read."}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select an email to read."})})]}),n.jsxs(gi,{open:q,title:`Compose (${String(u||"").trim()||"account"})`,onClose:()=>{te||C(!1)},actions:n.jsxs("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:[W?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginRight:"auto"},children:W}):null,n.jsx("button",{className:"btn",onClick:()=>C(!1),disabled:te,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void Kt(),disabled:te,children:te?"Sending…":"Send"})]}),children:[n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"To"}),n.jsx("input",{value:X,onChange:de=>se(String(de.target.value||"")),placeholder:"you@example.com"})]}),n.jsxs("div",{className:"row",style:{gap:"10px",flexWrap:"wrap"},children:[n.jsxs("div",{className:"field",style:{flex:"1 1 220px"},children:[n.jsx("label",{children:"Cc"}),n.jsx("input",{value:ie,onChange:de=>ye(String(de.target.value||"")),placeholder:"(optional)"})]}),n.jsxs("div",{className:"field",style:{flex:"1 1 220px"},children:[n.jsx("label",{children:"Bcc"}),n.jsx("input",{value:Le,onChange:de=>Me(String(de.target.value||"")),placeholder:"(optional)"})]})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Subject"}),n.jsx("input",{value:De,onChange:de=>We(String(de.target.value||"")),placeholder:"Subject"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Body (text)"}),n.jsx("textarea",{value:ve,onChange:de=>Pe(String(de.target.value||"")),placeholder:"Write your message…"})]}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xs)"},children:"Tip: separate multiple recipients with commas or newlines."})]})]})}function Qg(e){const t=String(e||"").trim();if(!t)return"";const r=t.split("/").filter(Boolean);return r.length?r[r.length-1]:""}function Cm(e){const t=String(e||"").trim();if(!t)return"";const r=Date.parse(t);return Number.isFinite(r)?new Date(r).toLocaleString():t}function qu(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function NC(e){const t=e.gateway,r=!!e.enable_triage,[o,a]=h.useState(r?"messages":"email"),[c,u]=h.useState([]),[d,m]=h.useState([]),[_,p]=h.useState([]),[x,v]=h.useState(!1),[b,S]=h.useState(""),[j,$]=h.useState(null),[T,F]=h.useState(""),[B,I]=h.useState(!1),[U,te]=h.useState(""),[K,le]=h.useState("pending"),[ce,pe]=h.useState(null),[Re,W]=h.useState(""),[z,P]=h.useState(null),[G,H]=h.useState(""),[re,N]=h.useState(!1),[L,q]=h.useState(!1),[C,X]=h.useState(""),[se,ie]=h.useState(""),ye=!!se,[Le,Me]=h.useState(""),[De,We]=h.useState(""),[ve,Pe]=h.useState(""),[me,we]=h.useState(!1),Oe=e.gateway_connected;h.useEffect(()=>{!r&&o!=="email"&&a("email")},[r,o]);const qe=h.useMemo(()=>o==="bugs"?c:o==="features"?d:[],[o,c,d]);h.useEffect(()=>{o==="email"&&(S(""),v(!1))},[o]);async function rt(){const Ne=await t.list_bug_reports();u(Array.isArray(Ne==null?void 0:Ne.items)?Ne.items:[])}async function ke(){const Ne=await t.list_feature_requests();m(Array.isArray(Ne==null?void 0:Ne.items)?Ne.items:[])}async function Fe(){const Ne=await t.list_triage_decisions({status:K||void 0,limit:500}),de=Array.isArray(Ne==null?void 0:Ne.decisions)?Ne.decisions:[];p(de),ce&&!de.some(Ee=>Ee.decision_id===ce.decision_id)&&(pe(null),W(""),P(null),H(""))}async function ot(){if(Oe&&r&&o!=="email"){S(""),v(!0);try{o==="bugs"?await rt():o==="features"?await ke():await Fe()}catch(Ne){S(String((Ne==null?void 0:Ne.message)||Ne||"Refresh failed"))}finally{v(!1)}}}h.useEffect(()=>{ot()},[o,Oe,K,r]);async function Et(Ne){$(Ne),F(""),te(""),I(!0);try{if(Ne.report_type==="bug"){const de=await t.get_bug_report_content(Ne.filename);F(String((de==null?void 0:de.content)||""))}else{const de=await t.get_feature_request_content(Ne.filename);F(String((de==null?void 0:de.content)||""))}}catch(de){te(String((de==null?void 0:de.message)||de||"Failed to load report"))}finally{I(!1)}}async function Lt(Ne){pe(Ne),W(""),P(null),H("");const de=Qg(Ne.report_relpath);if(de)try{if(Ne.report_type==="bug"){const Ee=await t.get_bug_report_content(de);W(String((Ee==null?void 0:Ee.content)||""))}else if(Ne.report_type==="feature"){const Ee=await t.get_feature_request_content(de);W(String((Ee==null?void 0:Ee.content)||""))}}catch(Ee){H(String((Ee==null?void 0:Ee.message)||Ee||"Failed to load report"))}}async function ae(Ne){H(""),P(null);const de=String(Ne.draft_relpath||"").trim();if(!de)return;const Ee=Qg(de);if(Ee)try{const $t=await t.backlog_content("proposed",Ee);P($t)}catch($t){H(String(($t==null?void 0:$t.message)||$t||"Failed to load draft (is repo root configured on gateway?)"))}}async function Kt(Ne,de){if(ce&&!re){H(""),N(!0);try{const Ee=await t.apply_triage_decision(ce.decision_id,{action:Ne,defer_days:de??null});await Fe();const $t=String(K||"").trim().toLowerCase(),bt=String((Ee==null?void 0:Ee.status)||"").trim().toLowerCase();if(!(!$t||$t===bt))pe(null),W(""),P(null);else if(pe(Ee),String(Ee.draft_relpath||"").trim())try{await ae(Ee)}catch{}}catch(Ee){H(String((Ee==null?void 0:Ee.message)||Ee||"Decision action failed"))}finally{N(!1)}}}async function un(){if(!L){S(""),q(!0);try{const Ne=await t.triage_run({write_drafts:!1,enable_llm:!1});X(`Scanned ${(Ne==null?void 0:Ne.reports)??0} report(s); updated ${(Ne==null?void 0:Ne.updated_decisions)??0} decision(s).`),await Fe()}catch(Ne){S(String((Ne==null?void 0:Ne.message)||Ne||"Triage failed"))}finally{q(!1)}}}h.useEffect(()=>{ye&&(Pe(""),We(""),we(!1),Me(String(e.default_session_id||"").trim()))},[ye,e.default_session_id]);async function gn(){var Ne,de;if(se&&!me){Pe(""),we(!0);try{const Ee=String(Le||"").trim();if(!Ee)throw new Error("session_id is required");const $t=String(De||"").trim();if(!$t)throw new Error("description is required");const bt={session_id:Ee,description:$t,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(((Ne=globalThis==null?void 0:globalThis.navigator)==null?void 0:Ne.userAgent)||""),url:String(((de=globalThis==null?void 0:globalThis.location)==null?void 0:de.href)||"")};if(se==="bug"){const Xt=await t.bug_report_create(bt),Dn=String((Xt==null?void 0:Xt.filename)||"").trim();ie(""),a("bugs");const ln=await t.list_bug_reports(),yn=Array.isArray(ln==null?void 0:ln.items)?ln.items:[];u(yn);const Tn=yn.find(xn=>xn.filename===Dn)||null;Tn&&await Et(Tn)}else{const Xt=await t.feature_report_create(bt),Dn=String((Xt==null?void 0:Xt.filename)||"").trim();ie(""),a("features");const ln=await t.list_feature_requests(),yn=Array.isArray(ln==null?void 0:ln.items)?ln.items:[];m(yn);const Tn=yn.find(xn=>xn.filename===Dn)||null;Tn&&await Et(Tn)}}catch(Ee){Pe(String((Ee==null?void 0:Ee.message)||Ee||"Failed to create report"))}finally{we(!1)}}}return n.jsxs("div",{className:"page",children:[n.jsxs("div",{className:"page_inner",children:[n.jsxs("div",{className:"card",children:[n.jsx("div",{className:"title",children:n.jsx("h1",{children:"Inbox"})}),n.jsxs("div",{className:"row",style:{alignItems:"center",justifyContent:"space-between"},children:[n.jsx("div",{className:"tab_bar",style:{paddingBottom:0,borderBottom:"none"},children:r?n.jsxs(n.Fragment,{children:[n.jsx("button",{className:`tab ${o==="messages"?"active":""}`,onClick:()=>a("messages"),children:"Messages"}),n.jsx("button",{className:`tab ${o==="email"?"active":""}`,onClick:()=>a("email"),children:"Email"}),n.jsx("button",{className:`tab ${o==="bugs"?"active":""}`,onClick:()=>a("bugs"),children:"Bugs"}),n.jsx("button",{className:`tab ${o==="features"?"active":""}`,onClick:()=>a("features"),children:"Features"})]}):n.jsx("button",{className:`tab ${o==="email"?"active":""}`,onClick:()=>a("email"),children:"Email"})}),n.jsx("div",{className:"row",style:{gap:"8px",justifyContent:"flex-end"},children:r?n.jsxs(n.Fragment,{children:[o==="messages"?n.jsxs(n.Fragment,{children:[n.jsxs("select",{value:K,onChange:Ne=>le(String(Ne.target.value)),title:"Filter triage decisions by status",children:[n.jsx("option",{value:"pending",children:"pending"}),n.jsx("option",{value:"approved",children:"approved"}),n.jsx("option",{value:"deferred",children:"deferred"}),n.jsx("option",{value:"rejected",children:"rejected"}),n.jsx("option",{value:"",children:"all"})]}),n.jsx("button",{className:"btn",onClick:()=>void ot(),disabled:!Oe||x,children:x?"Refreshing…":"Refresh"}),n.jsx("button",{className:"btn primary",onClick:()=>void un(),disabled:!Oe||L,children:L?"Running…":"Run triage"})]}):o==="email"?null:n.jsx("button",{className:"btn",onClick:()=>void ot(),disabled:!Oe||x,children:x?"Refreshing…":"Refresh"}),n.jsx("button",{className:"btn",onClick:()=>ie("bug"),disabled:!Oe,children:"File bug"}),n.jsx("button",{className:"btn",onClick:()=>ie("feature"),disabled:!Oe,children:"File feature"})]}):null})]}),r&&o!=="email"&&C?n.jsx("div",{className:"mono muted",style:{marginTop:"8px",fontSize:"var(--font-size-sm)"},children:C}):null,r&&o!=="email"&&b?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",marginTop:"8px",fontSize:"var(--font-size-sm)"},children:b}):null]}),o==="email"?n.jsx(kC,{gateway:t,enabled:Oe}):n.jsxs("div",{className:"inbox_layout",children:[n.jsx("div",{className:"card inbox_sidebar",children:o==="messages"?n.jsx("div",{className:"inbox_list",children:_.length?_.map(Ne=>{const de=(ce==null?void 0:ce.decision_id)===Ne.decision_id,Ee=Array.isArray(Ne.missing_fields)?Ne.missing_fields.length:0;return n.jsxs("button",{className:`inbox_item ${de?"active":""}`,onClick:()=>void Lt(Ne),children:[n.jsxs("div",{className:"inbox_item_title",children:[n.jsx("span",{className:`pill ${String(Ne.status||"").toLowerCase()}`,children:String(Ne.status||"pending")}),n.jsx("span",{className:"mono",children:Ne.report_type}),n.jsx("span",{className:"mono muted",children:qu(Ne.decision_id,10)})]}),n.jsxs("div",{className:"inbox_item_meta mono muted",children:[Ee?`${Ee} missing`:"complete"," • ",Cm(Ne.updated_at||Ne.created_at)||"(time?)"]}),n.jsx("div",{className:"inbox_item_meta mono",children:qu(Ne.report_relpath||"",46)})]},Ne.decision_id)}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No decisions."})}):n.jsx("div",{className:"inbox_list",children:qe.length?qe.map(Ne=>{const de=(j==null?void 0:j.filename)===Ne.filename&&(j==null?void 0:j.report_type)===Ne.report_type,Ee=String(Ne.triage_status||"").trim().toLowerCase();return n.jsxs("button",{className:`inbox_item ${de?"active":""}`,onClick:()=>void Et(Ne),children:[n.jsxs("div",{className:"inbox_item_title",children:[Ee?n.jsx("span",{className:`pill ${Ee}`,children:Ee}):null,n.jsx("span",{className:"mono",children:qu(Ne.title||Ne.filename,46)})]}),n.jsxs("div",{className:"inbox_item_meta mono muted",children:[Cm(Ne.created_at)||"(time?)"," • ",Ne.session_id?qu(Ne.session_id,12):"session?"]}),n.jsx("div",{className:"inbox_item_meta mono",children:Ne.filename})]},Ne.relpath)}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No reports."})})}),n.jsx("div",{className:"card inbox_viewer",children:o==="messages"?ce?n.jsxs("div",{className:"inbox_detail",children:[n.jsxs("div",{className:"inbox_detail_header",children:[n.jsxs("div",{className:"inbox_detail_title",children:[n.jsx("span",{className:"mono",style:{fontWeight:700},children:"Triage decision"}),n.jsx("span",{className:"chip mono muted",children:ce.report_type}),n.jsx("span",{className:"chip mono muted",children:ce.status}),n.jsx("span",{className:"chip mono muted",children:qu(ce.decision_id,16)})]}),n.jsxs("div",{className:"inbox_detail_actions",children:[n.jsx("button",{className:"btn",onClick:()=>{Qr(ce.report_relpath||"")},children:"Copy report path"}),ce.draft_relpath?n.jsx("button",{className:"btn",onClick:()=>void ae(ce),children:"Load draft"}):null,n.jsx("button",{className:"btn primary",onClick:()=>void Kt("approve"),disabled:re,children:"Approve"}),n.jsx("button",{className:"btn",onClick:()=>void Kt("defer",1),disabled:re,children:"Defer 1d"}),n.jsx("button",{className:"btn",onClick:()=>void Kt("defer",7),disabled:re,children:"Defer 7d"}),n.jsx("button",{className:"btn",onClick:()=>void Kt("reject"),disabled:re,children:"Reject"})]})]}),n.jsxs("div",{className:"inbox_detail_meta mono muted",style:{fontSize:"var(--font-size-sm)"},children:[ce.updated_at?`updated ${Cm(ce.updated_at)}`:null,ce.created_at?`${ce.updated_at?" • ":""}created ${Cm(ce.created_at)}`:null,ce.defer_until?` • defer until ${ce.defer_until}`:null]}),G?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:G}):null,n.jsxs("div",{className:"row",style:{gap:"12px"},children:[n.jsxs("div",{className:"col",style:{minWidth:240},children:[n.jsx("div",{className:"section_title",children:"Missing fields"}),ce.missing_fields&&ce.missing_fields.length?n.jsx("ul",{className:"inbox_list_ul mono",children:ce.missing_fields.map(Ne=>n.jsx("li",{children:Ne},Ne))}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"None."}),n.jsx("div",{className:"section_title",style:{marginTop:"10px"},children:"Possible duplicates"}),ce.duplicates&&ce.duplicates.length?n.jsx("ul",{className:"inbox_list_ul mono",children:ce.duplicates.slice(0,20).map((Ne,de)=>{const Ee=String((Ne==null?void 0:Ne.title)||(Ne==null?void 0:Ne.ref)||(Ne==null?void 0:Ne.kind)||"duplicate").trim(),$t=typeof(Ne==null?void 0:Ne.score)=="number"&&Number.isFinite(Ne.score)?` (score ${Ne.score.toFixed(2)})`:"";return n.jsxs("li",{children:[Ee,$t]},`${Ee}_${de}`)})}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"None."})]}),n.jsxs("div",{className:"col",style:{minWidth:240},children:[n.jsx("div",{className:"section_title",children:"Draft"}),ce.draft_relpath?n.jsxs("div",{className:"mono",style:{fontSize:"var(--font-size-sm)"},children:[n.jsx("div",{className:"mono muted",children:"path"}),n.jsx("div",{className:"mono",children:ce.draft_relpath})]}):n.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)."})]})]}),z?n.jsxs("div",{className:"inbox_markdown",children:[n.jsx("div",{className:"section_title",children:"Draft content"}),n.jsx(ts,{text:String(z.content||"")})]}):null,n.jsxs("div",{className:"inbox_markdown",children:[n.jsx("div",{className:"section_title",children:"Source report"}),Re?n.jsx(ts,{text:Re}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No report preview loaded."})]})]}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a decision."}):j?n.jsxs("div",{className:"inbox_detail",children:[n.jsxs("div",{className:"inbox_detail_header",children:[n.jsxs("div",{className:"inbox_detail_title",children:[n.jsx("span",{className:"mono",style:{fontWeight:700},children:j.report_type==="bug"?"Bug report":"Feature request"}),j.triage_status?n.jsx("span",{className:`pill ${j.triage_status}`,children:j.triage_status}):null,n.jsx("span",{className:"chip mono muted",children:j.filename}),j.session_id?n.jsx("span",{className:"chip mono muted",children:qu(j.session_id,16)}):null]}),n.jsx("div",{className:"inbox_detail_actions",children:n.jsx("button",{className:"btn",onClick:()=>{Qr(j.relpath||"")},children:"Copy path"})})]}),U?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:U}):null,B?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading…"}):T?n.jsx(ts,{text:T}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No content loaded."})]}):n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Select a report."})})]})]}),n.jsxs(gi,{open:ye,title:se==="bug"?"File bug report":"File feature request",onClose:()=>ie(""),actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>ie(""),disabled:me,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:()=>void gn(),disabled:me,children:me?"Submitting…":"Submit"})]}),children:[n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Session ID"}),n.jsx("input",{value:Le,onChange:Ne=>Me(Ne.target.value),placeholder:"session id (required)"}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"This correlates runs + attachments (via the session memory run)."})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:se==="bug"?"Bug description":"Feature description"}),n.jsx("textarea",{value:De,onChange:Ne=>We(Ne.target.value),placeholder:se==="bug"?"What is broken? What did you expect?":"What do you want to be able to do?",rows:6})]}),ve?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:ve}):null]})]})}function ch(e){const t=String(e||"").trim().toLowerCase();return t==="completed"||t==="failed"||t==="cancelled"}function I_(e){const t=String(e||"").trim();if(!t)return null;const r=Date.parse(t);return Number.isFinite(r)?r:null}function CC(e){return String((e==null?void 0:e.started_at)||(e==null?void 0:e.created_at)||"").trim()}function EC(e){const t=String((e==null?void 0:e.status)||"").trim();return ch(t)?String((e==null?void 0:e.finished_at)||(e==null?void 0:e.updated_at)||"").trim():""}function $C(e,t=Date.now()){const r=I_(CC(e));if(r===null)return-1;const o=I_(EC(e));return Math.max(0,(o!==null?o:t)-r)}function _p(e){const t=e==null?void 0:e.waiting;return t&&typeof t=="object"?t:null}function _v(e){const t=_p(e);return String((t==null?void 0:t.reason)||(e==null?void 0:e.waiting_reason)||"").trim().toLowerCase()}function ey(e){return e?String(e.prompt||"").trim()||Array.isArray(e.choices)&&e.choices.length>0?!0:e.allow_free_text!==!1&&String(e.reason||"").trim().toLowerCase()==="user":!1}function AC(e){const t=e.map(r=>String((r==null?void 0:r.name)||"tool").trim()).filter(Boolean);return t.length?`${t.slice(0,3).join(", ")}${t.length>3?` +${t.length-3}`:""}`:""}function pp(e){const t=String((e==null?void 0:e.status)||"").trim().toLowerCase();if(ch(t)||t!=="waiting")return"none";const r=_p(e),o=_v(e);return Af(r).length?"tool_approval":o==="until"?"scheduled":o==="subworkflow"?"subworkflow":o==="event"?ey(r)?"user_response":"external_event":o==="user"||ey(r)?"user_response":"unknown_wait"}function MC(e){const t=_p(e),r=Af(t),o=pp(e);return o==="tool_approval"?`Tool approval: ${AC(r)||"tool call"}`:o==="user_response"?Array.isArray(t==null?void 0:t.choices)&&t.choices.length>0?"Choice required":"User response needed":o==="scheduled"?"Scheduled wait":o==="subworkflow"?"Waiting for subworkflow":o==="external_event"?"Waiting for external event":o==="unknown_wait"?"Waiting, context unclear":""}function TC(e){const t=pp(e);if(t==="tool_approval")return"Review the tool request, then approve, reject, or cancel the whole run.";if(t==="user_response")return"Answer the workflow request. Submit resumes only this wait.";if(t==="scheduled")return"No response is needed. The run resumes when the scheduled time arrives or it is manually resumed.";if(t==="subworkflow")return"No direct response is needed. Inspect the child workflow or cancel the parent run.";if(t==="external_event")return"No direct response is available here. Inspect the ledger or the event source.";if(t==="unknown_wait")return"No clear prompt was provided. Review the input and recent ledger before taking action.";const r=String((e==null?void 0:e.status)||"").trim().toLowerCase();return r==="failed"?"Open the ledger, artifacts, or logs to inspect the failure.":r==="running"?"Watch the ledger/provider traces or cancel the workflow if it should stop.":ch(r)?"Open the ledger and artifacts for the final outcome.":"Open the run to inspect current activity."}function ty(e){const t=e==null?void 0:e.error;if(!t)return"";if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}function zC(e,t={}){const r=t.now_ms??Date.now(),o=t.workflow_label??"",a=String(e.status||"unknown").trim().toLowerCase()||"unknown",c=pp(e),u=ch(a),d=$C(e,r),m=I_(e.updated_at||e.created_at)??0,_=a==="running"&&d>=14400*1e3,p=MC(e)||ty(e)||(e.current_node?`Current node: ${e.current_node}`:a==="running"?"Running":u?"Terminal":"No current activity reported");let x="all";c==="tool_approval"?x="tool_approval":c==="user_response"?x="user_wait":c==="scheduled"||c==="subworkflow"||c==="external_event"?x="scheduled":a==="failed"?x="failed":a==="running"?x="running":u&&(x="finished");const v=c==="tool_approval"?0:c==="user_response"?1:c==="unknown_wait"?2:a==="failed"?3:_?4:a==="running"?5:c!=="none"?6:u?8:7,b=c==="tool_approval"||c==="user_response",S=c==="tool_approval"?"Open approval":c==="user_response"?"Open wait":"Open Observe",j=[e.run_id,e.workflow_id,o,e.session_id,e.parent_run_id,e.status,e.current_node,_v(e),p,ty(e)].join(" ").toLowerCase();return{run:e,run_id:String(e.run_id||"").trim(),status:a,wait_kind:c,queue:x,attention_rank:v,reason:p,expected_action:TC(e),action_label:S,search_text:j,is_terminal:u,needs_user_action:b,is_stale:_,duration_ms:d,updated_ms:m}}function RC(e,t={}){const r=t.now_ms??Date.now(),o=t.workflow_label_by_id??{};return e.map(a=>zC(a,{now_ms:r,workflow_label:o[String(a.workflow_id||"")]||String(a.workflow_id||"")}))}function LC(e){const t={attention:0,user_wait:0,tool_approval:0,running:0,failed:0,scheduled:0,finished:0,all:e.length};for(const r of e)t[r.queue]+=1,r.queue!=="finished"&&(r.needs_user_action||r.status==="failed"||r.is_stale||r.wait_kind==="unknown_wait")&&(t.attention+=1);return t}function PC(e,t){const r=t.queue,a=(t.query??"").trim().toLowerCase();return e.filter(c=>{if(r==="attention"){if(!(c.needs_user_action||c.status==="failed"||c.is_stale||c.wait_kind==="unknown_wait"))return!1}else if(r!=="all"&&c.queue!==r)return!1;return!a||c.search_text.includes(a)})}function OC(e,t){const r=[...e];return r.sort((o,a)=>{if(t==="recent")return a.updated_ms-o.updated_ms;if(t==="oldest")return o.updated_ms-a.updated_ms;if(t==="duration")return a.duration_ms-o.duration_ms;if(t==="tokens")return(Number(a.run.tokens_total||0)||0)-(Number(o.run.tokens_total||0)||0);if(t==="workflow")return String(o.run.workflow_id||"").localeCompare(String(a.run.workflow_id||""));const c=o.attention_rank-a.attention_rank;return c!==0?c:a.updated_ms-o.updated_ms}),r}const IC=/^\s*<runtime_metadata>\s*([\s\S]*?)\s*<\/runtime_metadata>\s*/i;function uh(e){const t=typeof e=="string"?e:String(e??""),r=IC.exec(t);if(!r)return{text:t.trim(),metadata:null,stripped:!1};let o=null;try{const a=JSON.parse(String(r[1]||"").trim());a&&typeof a=="object"&&!Array.isArray(a)&&(o=a)}catch{o=null}return{text:t.slice(r[0].length).trim(),metadata:o,stripped:!0}}function gp(...e){const t={};for(const r of e)if(!(!r||typeof r!="object"||Array.isArray(r)))for(const[o,a]of Object.entries(r))a==null||String(a).trim()===""||(t[o]=a);return Object.keys(t).length?t:null}function FC(e){const t=typeof e=="string"?e.trim():"";if(!t)return null;const r=Date.parse(t);return Number.isFinite(r)?r:null}function DC(e){const t=Date.now(),r=e.getTime(),o=t-r,a=Math.floor(o/1e3),c=Math.floor(a/60),u=Math.floor(c/60),d=Math.floor(u/24);return a<60?"Just now":c<60?`${c}m ago`:u<24?`${u}h ago`:d<=3?`${d}d ago`:e.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function pv(e){const t=FC(e);return t===null?"—":DC(new Date(t))}function BC(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}function gv(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(),a=!!e.is_scheduled||t&&t.startsWith("scheduled:"),c=!!e.paused,u={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 a&&c?{label:"Suspended",cls:"scheduled"}:r==="waiting"&&a?{label:"Scheduled",cls:"scheduled"}:r==="running"&&a&&o==="until"?{label:"Scheduled",cls:"scheduled"}:u[r]||{label:e.status||"Unknown",cls:"muted"}}function yv(e,t){const r=String(e||"").trim();if(r){const o=t[r];if(o){const c=o.split(/[·:]/);return c.length>1?c[c.length-1].trim():o.trim()}const a=r.indexOf(":");if(a>0)return r.slice(a+1).trim()||r.slice(0,a).trim();if(/[a-z]/i.test(r))return r}return"(unknown workflow)"}function UC({run:e,workflow_label_by_id:t,selected:r,onClick:o}){const a=typeof e.workflow_id=="string"?String(e.workflow_id):"",c=typeof e.schedule_target_workflow_id=="string"?String(e.schedule_target_workflow_id):"",u=c.trim()?c:a,d=yv(u,t),m=gv(e),_=pv(e.updated_at||e.created_at),p=typeof e.ledger_len=="number"&&e.ledger_len>0?e.ledger_len:null,x=!!e.is_scheduled||a&&a.startsWith("scheduled:"),v=String(e.schedule_interval||"").trim(),b=[];x&&b.push(v?`every ${v}`:"scheduled"),p!==null&&b.push(`${p} steps`);const S=b.join(" • ");return n.jsxs("button",{className:`run_card ${r?"selected":""}`,onClick:o,type:"button",children:[n.jsxs("div",{className:"run_card_header",children:[n.jsx("span",{className:"run_card_name",children:d}),n.jsx("span",{className:`run_card_status ${m.cls}`,children:m.label})]}),n.jsxs("div",{className:"run_card_time",children:[n.jsx("span",{children:_}),n.jsx("span",{className:"run_card_sep",children:"•"}),n.jsx("span",{className:"mono",children:BC(e.run_id,8)})]}),S?n.jsx("div",{className:"run_card_meta",children:S}):null]})}function WC({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):"",a=o.trim()?o:r,c=yv(a,t),u=gv(e),d=pv(e.updated_at||e.created_at);return n.jsxs("div",{className:"run_selected_badge",children:[n.jsx("span",{className:"run_selected_name",children:c}),n.jsx("span",{className:`run_selected_status ${u.cls}`,children:u.label}),n.jsx("span",{className:"run_selected_time",children:d})]})}function qC({runs:e,selected_run_id:t,workflow_label_by_id:r,disabled:o,loading:a,onSelect:c}){const[u,d]=h.useState(!1),[m,_]=h.useState(""),[p,x]=h.useState(null),v=h.useRef(null),b=h.useRef(null);h.useEffect(()=>{if(!u)return;const $=T=>{v.current&&(v.current.contains(T.target)||d(!1))};return window.addEventListener("mousedown",$),()=>window.removeEventListener("mousedown",$)},[u]),h.useEffect(()=>{if(!u)return;const $=()=>{if(!b.current)return;const T=b.current.getBoundingClientRect(),F=12,B=Math.min(720,window.innerWidth-F*2);let I=T.left,U=Math.max(T.width,B);U>window.innerWidth-F*2&&(U=window.innerWidth-F*2),I+U>window.innerWidth-F&&(I=Math.max(F,window.innerWidth-F-U)),I<F&&(I=F);const te=320,K=520,le=window.innerHeight-T.bottom-F,ce=T.top-F,pe=le<te&&ce>le;let Re=Math.max(te,pe?ce:le);Re=Math.min(Re,K,window.innerHeight-F*2);let W=pe?T.top-8-Re:T.bottom+8;W=Math.min(W,window.innerHeight-F-Re),W=Math.max(F,W),x({left:I,width:U,height:Re,top:W})};return $(),window.addEventListener("resize",$),window.addEventListener("scroll",$,!0),()=>{window.removeEventListener("resize",$),window.removeEventListener("scroll",$,!0)}},[u]);const S=h.useMemo(()=>{const $=String(t||"").trim();return $?e.find(T=>String(T.run_id||"").trim()===$)||{run_id:$}:null},[e,t]),j=h.useMemo(()=>{const $=String(m||"").trim().toLowerCase();return $?e.filter(T=>{const F=String(T.run_id||"").toLowerCase(),B=typeof T.workflow_id=="string"?String(T.workflow_id).toLowerCase():"",I=typeof T.schedule_target_workflow_id=="string"?String(T.schedule_target_workflow_id).toLowerCase():"",U=B?String(r[String(T.workflow_id)]||"").toLowerCase():"",te=I?String(r[String(T.schedule_target_workflow_id)]||"").toLowerCase():"",K=typeof T.status=="string"?String(T.status).toLowerCase():"";return F.includes($)||B.includes($)||U.includes($)||I.includes($)||te.includes($)||K.includes($)}):e},[e,m,r]);return n.jsxs("div",{className:"run_picker",ref:v,children:[n.jsxs("button",{className:"run_picker_btn",ref:b,onClick:()=>{o||d($=>!$)},disabled:o,type:"button",children:[a?n.jsx("span",{className:"muted",children:"Loading runs…"}):S?n.jsx(WC,{run:S,workflow_label_by_id:r}):n.jsx("span",{className:"run_picker_placeholder",children:"Select a run to observe"}),n.jsx("span",{className:"run_picker_chevron",children:u?"▲":"▼"})]}),u?n.jsxs("div",{className:"run_picker_panel",style:p?{left:`${p.left}px`,width:`${p.width}px`,height:`${p.height}px`,top:`${p.top}px`}:void 0,children:[n.jsx("div",{className:"run_picker_header",children:n.jsx("input",{className:"run_picker_filter",value:m,onChange:$=>_($.target.value),placeholder:"Search runs by name, status..."})}),n.jsx("div",{className:"run_picker_grid",children:j.length?j.map($=>{const T=String($.run_id||"").trim();if(!T)return null;const F=String(t||"").trim()===T;return n.jsx(UC,{run:$,workflow_label_by_id:r,selected:F,onClick:()=>{d(!1),c(T)}},T)}):n.jsxs("div",{className:"run_picker_empty",children:[n.jsx("span",{className:"run_picker_empty_icon",children:"◇"}),n.jsx("span",{children:"No runs found"})]})})]}):null]})}const Em=500,F_="http://127.0.0.1:8080";function xv(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 a=String(o).trim().toLowerCase();return["1","true","yes","on"].includes(a)?!0:["0","false","no","off"].includes(a)?!1:(console.warn(`#FALLBACK: ui_config.${e}="${o}" is not a boolean; defaulting to ${t?"true":"false"}.`),t)}const Kl=xv("enable_backlog"),HC=xv("enable_inbox_triage");function mn(){return new Date().toISOString()}function ny(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function hs(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 i_(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 uf(e){const t=String(e||"").trim();return t.startsWith("abstractcode.")?`abstract.${t.slice(13)}`:t}function o_(e){const t=String(e||"").trim();return t.startsWith("abstract.")||t.startsWith("abstractcode.")}function VC(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 GC(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 m=d.data&&typeof d.data=="object"?d.data:{};if(String(m.nodeType||d.type||"").trim()==="on_flow_start"){r=d;break}}if(!r)return[];const o=r.data&&typeof r.data=="object"?r.data:{},a=Array.isArray(o.outputs)?o.outputs:[],c=o.pinDefaults&&typeof o.pinDefaults=="object"?o.pinDefaults:{},u=[];for(const d of a){if(!d||typeof d!="object")continue;const m=String(d.id||"").trim();if(!m)continue;const _=String(d.type||"").trim();if(_==="execution"||m==="exec-out"||m==="exec")continue;const p=String(d.label||m).trim()||m,x={id:m,label:p,type:_||"unknown"};c&&Object.prototype.hasOwnProperty.call(c,m)&&(x.default=c[m]),u.push(x)}return u}function Ft(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,c=String(e||"").replace(/\r\n/g,`
|
|
148
|
-
`).replace(/\r/g,`
|
|
149
|
-
`).split(`
|
|
150
|
-
`),u=c.slice(0,Math.max(1,o)).join(`
|
|
151
|
-
`),d=c.length>o,m=u.length>r?`${u.slice(0,Math.max(0,r-1))}…`:u;return d&&m===u?`${u}…`:m}function D_(e){if(e==null)return"";if(typeof e=="string")return e.trim();if(Array.isArray(e))return e.map(t=>D_(t)).filter(Boolean).join(`
|
|
152
|
-
`).trim();if(typeof e=="object"){const t=e.text??e.content??e.message??e.value;if(t!==e){const r=D_(t);if(r)return r}}return""}function vv(e){const t=uh(D_(e));return{text:t.text,runtime_metadata:t.metadata}}function YC(e){var o,a;if(!e)return{text:"",runtime_metadata:null};const t=typeof e.prompt=="string"?String(e.prompt).trim():"";if(t){const c=uh(t);return{text:c.text,runtime_metadata:c.metadata}}const r=[(o=e.context)==null?void 0:o.messages,e.messages,e.conversation,e.history].filter(Array.isArray);for(const c of r)for(let u=c.length-1;u>=0;u-=1){const d=c[u],m=String((d==null?void 0:d.role)||(d==null?void 0:d.speaker)||"").trim().toLowerCase();if(m&&m!=="user"&&m!=="human")continue;const _=vv((d==null?void 0:d.content)??(d==null?void 0:d.text)??d);if(_.text)return{text:_.text,runtime_metadata:gp(_.runtime_metadata,d!=null&&d.runtime_metadata&&typeof d.runtime_metadata=="object"?d.runtime_metadata:null,(a=d==null?void 0:d.metadata)!=null&&a.runtime_metadata&&typeof d.metadata.runtime_metadata=="object"?d.metadata.runtime_metadata:null)}}return{text:"",runtime_metadata:null}}function XC(e){var a,c;const t=String((e==null?void 0:e.status)||"").trim(),r=String(((a=e==null?void 0:e.effect)==null?void 0:a.type)||"").trim(),o=(c=e==null?void 0:e.effect)!=null&&c.payload&&typeof e.effect.payload=="object"?String(e.effect.payload.name||"").trim():"";return r==="emit_event"&&o?o:r||t||"record"}function wv(e){if(!e||typeof e!="object")return"Ledger record";const t=String(e.node_id||"").trim(),r=String(e.status||"").trim(),o=XC(e),a=Zo(e);if(a){const c=String(a.reason||"").trim();if(String(a.prompt||"").trim())return`${t||"node"} is waiting for a response`;if(c)return`${t||"node"} is waiting (${c})`}return e.error?`${t||"node"} failed`:r==="completed"?`${t||"node"} completed ${o}`:r==="running"?`${t||"node"} started ${o}`:r==="waiting"?`${t||"node"} is waiting`:[t,r,o].filter(Boolean).join(" · ")||"Ledger record"}function JC(e,t){const r=String((e==null?void 0:e.message)||e||"Discovery failed");if(/\b401\b/.test(r)){const o=String(t.gateway_user||"").trim();return o?`Gateway authentication failed for user '${o}'. Check the Gateway token or clear the user field to use direct local auth. (${r})`:`Gateway authentication failed. Enter a Gateway user/token for browser-session auth, or a direct dev token if your local Gateway requires one. (${r})`}return r}function KC(e,t=6){var c,u;if(!e)return[];const o=[(c=e.context)==null?void 0:c.messages,e.messages,e.conversation,e.history].filter(Array.isArray).find(d=>d.length)||[],a=[];for(const d of o){const m=String((d==null?void 0:d.role)||(d==null?void 0:d.speaker)||(d==null?void 0:d.author)||"").trim().toLowerCase()||"message",_=vv((d==null?void 0:d.content)??(d==null?void 0:d.text)??(d==null?void 0:d.message)??d),p=_.text;if(!p)continue;const x=String((d==null?void 0:d.ts)||(d==null?void 0:d.timestamp)||(d==null?void 0:d.created_at)||(d==null?void 0:d.time)||"").trim(),v=gp(_.runtime_metadata,d!=null&&d.runtime_metadata&&typeof d.runtime_metadata=="object"?d.runtime_metadata:null,(u=d==null?void 0:d.metadata)!=null&&u.runtime_metadata&&typeof d.metadata.runtime_metadata=="object"?d.metadata.runtime_metadata:null);a.push({role:m,text:p,ts:x,runtime_metadata:v})}return a.slice(Math.max(0,a.length-Math.max(1,t)))}function bv(e){const t=String(e||"").trim().toLowerCase().replace(/\s+/g," ");return t==="please respond:"||t==="please respond"||t==="type response..."||t==="type response"}function ZC(e){const t=e.map(r=>String((r==null?void 0:r.name)||"tool").trim()).filter(Boolean);return t.length?`${t.slice(0,3).join(", ")}${t.length>3?` +${t.length-3}`:""}`:""}function jv(e){const t=String((e==null?void 0:e.name)||"").trim().toLowerCase(),r=e!=null&&e.arguments&&typeof e.arguments=="object"?e.arguments:{},o=String((r==null?void 0:r.command)||(r==null?void 0:r.cmd)||(r==null?void 0:r.shell)||"").trim().toLowerCase(),a=[];return(t.includes("execute_command")||t.includes("terminal")||o)&&a.push("Shell"),/[;&|]?\s*(rm|rmdir|mv|chmod|chown|sudo)\b/.test(o)&&a.push("Destructive risk"),/(^|\s)(curl|wget|scp|ssh|nc|ncat|ftp)\b/.test(o)&&a.push("Network"),/(^|\s)(cat|sed|rg|grep|ls|find|pwd)\b/.test(o)&&!/[>|]\s*\S/.test(o)&&a.push("Read path"),/[>|]\s*\S|(^|\s)(tee|touch|mkdir|cp)\b/.test(o)&&a.push("Filesystem write"),a.length||a.push("Tool call"),Array.from(new Set(a)).slice(0,4)}function yp(e,t){const r=String((e==null?void 0:e.reason)||"").trim().toLowerCase(),o=ZC(t);return t.length?`Approval required: ${o||"tool call"}`:r==="user"?"Waiting for your answer":r==="event"?"Waiting for a user response event":r==="subworkflow"?"Waiting for a subworkflow":r==="until"?"Scheduled wait":r?`Waiting: ${r}`:"Waiting for input"}function Sv(e,t){return t.length?"Review the requested tool call, then approve and execute it, approve without local execution, reject it, or cancel the whole run.":(Array.isArray(e==null?void 0:e.choices)?(e==null?void 0:e.choices)||[]:[]).length?"Select one of the allowed responses, then submit it to resume this run.":(e==null?void 0:e.allow_free_text)===!1?"This wait does not allow free text. Use the available response control or inspect the ledger.":String((e==null?void 0:e.prompt)||"").trim()?"Answer the workflow question below. Submitting resumes only this wait.":"No explicit question was emitted. Inspect the original request and recent ledger context before responding."}function kv(e,t){const r=String((e==null?void 0:e.prompt)||"").trim(),o=uh(r),a=YC(t);return o.text&&!bv(o.text)?{text:o.text,runtime_metadata:o.metadata}:a.text?a:{text:o.text||r,runtime_metadata:o.metadata}}function QC(e,t){return kv(e,t).text}function e2(e,t){return e||String(t||"").trim()||{}}function Vt(e,t){const r=String(e||"");return r.length<=t?r:`${r.slice(0,Math.max(0,t-1))}…`}const t2=/^[a-zA-Z0-9_-]+$/;function ry(e){return t2.test(String(e||"").trim())}async function n2(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 a=await o.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(a)).map(c=>c.toString(16).padStart(2,"0")).join("")}async function sy(e){const t=String(e||"").trim();if(!t)throw new Error("session_id is required");if(ry(t)){const o=`session_memory_${t}`;if(ry(o))return o}return`session_memory_sha_${(await n2(t)).slice(0,32)}`}function a_(e){const t=String(e||"").trim();return t&&t.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")||"untitled"}function Hu(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):hs(e,320),r=typeof e.duration=="number"?Number(e.duration):-1;return{text:t,duration:r}}return{text:hs(e,320),duration:-1}}function dh(e){var u,d,m,_,p,x,v,b,S;if(!e||typeof e!="object")return"";const t=String(((u=e==null?void 0:e.effect)==null?void 0:u.type)||"").trim(),r=e==null?void 0:e.result,o=j=>typeof j=="string"?j.trim():j==null?"":typeof j=="number"||typeof j=="boolean"?String(j):"",a=j=>{if(!j||typeof j!="object")return"";const $=j,T=[$.response,$.answer,$.message,$.text,$.content];for(const F of T){const B=o(F);if(B)return B}return""};if(t==="answer_user"){const j=o(r==null?void 0:r.message)||o((d=r==null?void 0:r.output)==null?void 0:d.message)||o((m=r==null?void 0:r.output)==null?void 0:m.response)||o((p=(_=e==null?void 0:e.effect)==null?void 0:_.payload)==null?void 0:p.message)||o((v=(x=e==null?void 0:e.effect)==null?void 0:x.payload)==null?void 0:v.text)||o((S=(b=e==null?void 0:e.effect)==null?void 0:b.payload)==null?void 0:S.content);if(j)return j}if(t==="llm_call"){const j=a(r)||o(r==null?void 0:r.output)||a(r==null?void 0:r.output)||o(r==null?void 0:r.response);if(j)return j}return o(r==null?void 0:r.output)||a(r==null?void 0:r.output)||a(r)||o(r==null?void 0:r.response)}const iy=new Set(["abstract.status","abstract.summary","abstract.chat"]);function r2(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!iy.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&&iy.has(t))}if(String(e.status||"").trim()==="waiting"){const c=Zo(e.data),u=String((c==null?void 0:c.reason)||"").trim();return!!(u==="user"||u==="event"||Af(c).length)}return!!dh(e.data)}function s2(){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)||F_),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:F_,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 i2(e){localStorage.setItem("abstractobserver_settings",JSON.stringify({...e,auth_token:""}))}function Pm(e){var a;const t=String((e==null?void 0:e.node_id)||""),r=String((e==null?void 0:e.status)||""),o=String(((a=e==null?void 0:e.effect)==null?void 0:a.type)||"");return`${t||"(node?)"} • ${r||"(status?)"} • ${o||"(effect?)"}`}function o2(e){return!!(e&&String(e.status||"")==="waiting")}function On(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 a2(e){const t=Date.now()-e,r=Math.floor(t/1e3),o=Math.floor(r/60),a=Math.floor(o/60),c=Math.floor(a/24);return r<60?"just now":o<60?`${o}m ago`:a<24?`${a}h ago`:c<=3?`${c}d ago`:new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"})}function ul(e){const t=On(e);return t===null?"—":a2(t)}function oy(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),a=Math.floor(o/24),c=t%60,u=r%60,d=o%24;return a>0?`${a}d ${d}h`:o>0?`${o}h ${u}m`:r>0?`${r}m ${c}s`:`${t}s`}function fh(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"—";const t=Math.floor(e/1e3),r=t%60,o=Math.floor(t/60),a=o%60,c=Math.floor(o/60),u=c%24,d=Math.floor(c/24);return d>0?`${d}d ${u}h`:c>0?`${c}h ${a}m`:o>0?`${o}m ${r}s`:`${Math.max(0,t)}s`}function Vc(e){const t=String(e||"").trim().toLowerCase();return t==="completed"||t==="failed"||t==="cancelled"}function ed(e){const t=String(e||"").trim().toLowerCase();return t==="running"||t==="waiting"}function nc(e){return String((e==null?void 0:e.started_at)||(e==null?void 0:e.created_at)||"").trim()}function Nv(e){const t=String((e==null?void 0:e.status)||"").trim();return Vc(t)?String((e==null?void 0:e.finished_at)||(e==null?void 0:e.updated_at)||"").trim():""}function Gc(e,t=Date.now()){const r=l2(e,t);return fh(r)}function l2(e,t=Date.now()){const r=On(nc(e));if(r===null)return-1;const o=On(Nv(e));return Math.max(0,(o!==null?o:t)-r)}function Ii(e){const t=On(e);return t===null?"—":new Date(t).toLocaleString()}function c2(e){if(!e||typeof e!="object"||Array.isArray(e))return[];const t=[],r=(a,c)=>{const u=String(c??"").trim();u&&(t.some(d=>d.label===a&&d.value===u)||t.push({label:a,value:u}))},o=String(e.display??"").trim().replace(/^\[/,"").replace(/\]$/,"");return r("time",o||e.local_datetime),r("tz",e.timezone),r("country",e.country),r("user",e.user),t}function B_(e){const t=c2(e.metadata);return t.length?n.jsx("div",{className:"runtime_metadata_chips","aria-label":"Runtime metadata",children:t.map(r=>n.jsxs("span",{className:"chip mono muted",children:[r.label,": ",r.value]},`${r.label}:${r.value}`))}):null}function Hn(...e){for(const t of e){const r=String(t??"").trim();if(r)return r}return""}function Cv(e){var r,o;const t=[];for(const a of e||[]){const c=a.record;if(String(((r=c==null?void 0:c.effect)==null?void 0:r.type)||"").trim()!=="llm_call")continue;const d=(o=c==null?void 0:c.effect)!=null&&o.payload&&typeof c.effect.payload=="object"?c.effect.payload:{},m=c!=null&&c.result&&typeof c.result=="object"?c.result:{},_=(m==null?void 0:m.usage)||(m==null?void 0:m.token_usage)||{},p=typeof d.prompt=="string"?d.prompt:Array.isArray(d.messages)?hs(d.messages,1800):"",x=typeof m.content=="string"?m.content:typeof m.response=="string"?m.response:typeof c.result=="string"?String(c.result):"",v=On(c.started_at),b=On(c.ended_at),S=Number(_.prompt_tokens??_.input_tokens??0)||0,j=Number(_.completion_tokens??_.output_tokens??0)||0;t.push({id:`${String(a.run_id||c.run_id||"")}:${a.cursor}`,cursor:Number(a.cursor||0),ts:String(c.ended_at||c.started_at||""),run_id:String(a.run_id||c.run_id||"").trim(),node_id:String(c.node_id||"").trim(),provider:String(d.provider||m.provider||m.runtime_provider||"").trim(),model:String(d.model||m.model||m.runtime_model||"").trim(),prompt_preview:Ft(p,{max_chars:1200,max_lines:10}),response_preview:Ft(x,{max_chars:1200,max_lines:10}),missing_response:!String(x||"").trim(),tokens:{prompt:S,completion:j,total:Number(_.total_tokens??S+j)||0},duration_ms:v!==null&&b!==null?Math.max(0,b-v):typeof m.gen_time=="number"?Number(m.gen_time)*1e3:null,status:String(c.status||"").trim(),error:c.error?hs(c.error,500):"",raw:c})}return t.sort((a,c)=>(On(c.ts)??0)-(On(a.ts)??0))}function u2(...e){for(const t of e){const r=Number(t);if(Number.isFinite(r))return r}return null}function Ev(e){return e!=null&&e.ref&&typeof e.ref=="object"?e.ref:e!=null&&e.artifact_ref&&typeof e.artifact_ref=="object"?e.artifact_ref:e!=null&&e.artifact&&typeof e.artifact=="object"?e.artifact:{}}function ay(e){const t=Ev(e),r=e!=null&&e.metadata&&typeof e.metadata=="object"?e.metadata:e!=null&&e.meta&&typeof e.meta=="object"?e.meta:{},o=e!=null&&e.tags&&typeof e.tags=="object"?e.tags:{},a=Hn(e==null?void 0:e.modality,t==null?void 0:t.modality,r==null?void 0:r.modality,o.modality).toLowerCase();if(a)return a;const c=Hn(e==null?void 0:e.content_type,e==null?void 0:e.mime_type,e==null?void 0:e.mime,t==null?void 0:t.content_type,t==null?void 0:t.mime_type,t==null?void 0:t.mime,r==null?void 0:r.content_type,o.content_type).toLowerCase();return c.startsWith("image/")?"image":c.startsWith("audio/")?"audio":c.startsWith("video/")?"video":c.includes("pdf")?"document":c.startsWith("text/")||c.includes("json")||c.includes("markdown")||c.includes("csv")?"text":"artifact"}function d2(e){return!e||typeof e!="object"?{}:e.artifact_envelope_v1&&typeof e.artifact_envelope_v1=="object"?e.artifact_envelope_v1:e.envelope&&typeof e.envelope=="object"?e.envelope:e}function $v(e,t){if(!e||typeof e!="object")return null;const r=d2(e),o=Ev(e),a=e!=null&&e.metadata&&typeof e.metadata=="object"?e.metadata:e!=null&&e.meta&&typeof e.meta=="object"?e.meta:{},c=r!=null&&r.descriptor&&typeof r.descriptor=="object"?r.descriptor:e!=null&&e.descriptor&&typeof e.descriptor=="object"?e.descriptor:{},u=Hn(r.artifact_id,e.artifact_id,e.$artifact,e.id,o.artifact_id,o.$artifact,o.id,a.artifact_id,a.$artifact);if(!u)return null;const d={...o.tags&&typeof o.tags=="object"?o.tags:{},...a.tags&&typeof a.tags=="object"?a.tags:{},...r.tags&&typeof r.tags=="object"?r.tags:{},...e.tags&&typeof e.tags=="object"?e.tags:{}},m={};for(const[I,U]of Object.entries(d)){const te=String(I||"").trim();te&&(m[te]=String(U??""))}const _=Hn(r.filename,e.filename,o.filename,a.filename,m.filename,m.name,e.name,o.name),p=Hn(r.source_path,e.source_path,o.source_path,a.source_path,e.path,o.path,m.path,m.source_path,m.file_path),x=Hn(r.content_type,e.content_type,e.mime_type,e.mime,o.content_type,o.mime_type,o.mime,a.content_type,m.content_type),v=Hn(r.render_kind,c.render_kind,e.render_kind,m.render_kind),b=Hn(r.semantic_kind,c.semantic_kind,e.semantic_kind,m.semantic_kind,m.artifact_type),S=r.access&&typeof r.access=="object"?r.access:e.access&&typeof e.access=="object"?e.access:{},j=r.producer&&typeof r.producer=="object"?r.producer:e.producer&&typeof e.producer=="object"?e.producer:c.producer&&typeof c.producer=="object"?c.producer:{},$=r.provenance&&typeof r.provenance=="object"?r.provenance:e.provenance&&typeof e.provenance=="object"?e.provenance:c.provenance&&typeof c.provenance=="object"?c.provenance:{},T=r.generation&&typeof r.generation=="object"?r.generation:e.generation&&typeof e.generation=="object"?e.generation:c.generation&&typeof c.generation=="object"?c.generation:{},F=r.media&&typeof r.media=="object"?r.media:e.media&&typeof e.media=="object"?e.media:c.media&&typeof c.media=="object"?c.media:{},B=r.links&&typeof r.links=="object"?r.links:e.links&&typeof e.links=="object"?e.links:c.links&&typeof c.links=="object"?c.links:{};return{artifact_id:u,run_id:Hn(r.run_id,e.run_id,o.run_id,a.run_id,m.run_id,$.run_id),content_type:x,modality:Hn(r.modality,e.modality,c.modality,m.modality)||ay({...e,ref:o,metadata:a,tags:m}),semantic_kind:b||ay({...e,ref:o,metadata:a,tags:m}),render_kind:v||X_({content_type:x,filename:_,source_path:p,modality:Hn(r.modality,e.modality,m.modality),tags:m}),task:Hn(r.task,c.task,e.task,m.task,m.provider_task),classification_source:Hn(r.classification_source,c.classification_source,e.classification_source),session_id:Hn(r.session_id,c.session_id,e.session_id,m.session_id),workflow_id:Hn(r.workflow_id,c.workflow_id,e.workflow_id,m.workflow_id,m.workflow),node_id:Hn(r.node_id,c.node_id,e.node_id,m.node_id,m.node),step_id:Hn(r.step_id,c.step_id,e.step_id,m.step_id),effect_id:Hn(r.effect_id,c.effect_id,e.effect_id,m.effect_id,m.effect_idempotency_key),turn_id:Hn(r.turn_id,c.turn_id,e.turn_id,m.turn_id,m.turn),ledger_cursor:Hn(r.ledger_cursor,c.ledger_cursor,e.ledger_cursor,m.ledger_cursor,m.step_cursor),parent_run_id:Hn(r.parent_run_id,c.parent_run_id,e.parent_run_id,m.parent_run_id),actor_id:Hn(r.actor_id,c.actor_id,e.actor_id,m.actor_id),title:Hn(r.title,e.title,m.title,m.label,m.name),created_at:Hn(r.created_at,e.created_at,o.created_at,a.created_at,m.created_at),size_bytes:u2(r.size_bytes,e.size_bytes,o.size_bytes,a.size_bytes,m.size_bytes),filename:_,source_path:p,sha256:Hn(r.sha256,e.sha256,o.sha256,a.sha256,m.sha256),tags:m,producer:j,provenance:$,generation:T,media:F,source_refs:Array.isArray(r.source_refs)?r.source_refs:Array.isArray(e.source_refs)?e.source_refs:[],access:S,links:B,available_actions:Array.isArray(r.available_actions)?r.available_actions.map(String):Array.isArray(e.available_actions)?e.available_actions.map(String):[],provider_trace_available:!!(r.provider_trace_available??e.provider_trace_available),audit_available:!!(r.audit_available??e.audit_available),legacy_inferred:!!((r.legacy_inferred??e.legacy_inferred)||/(?:legacy|inferred|runtime_tags|runtime_mime)/i.test(Hn(r.classification_source,c.classification_source,e.classification_source))),descriptor:c,source:t,raw:e}}function Cf(e){return e.filename||e.title||(e.source_path?e.source_path.split("/").filter(Boolean).slice(-1)[0]:"")||Vt(e.artifact_id,16)}function f2(e,t){if(t==="type")return td(e);if(t==="run")return e.run_id||"(no run)";if(t==="turn")return Xm(e);if(t==="node")return Wc(e)||"(node unknown)";if(t==="workflow")return xp(e)||"(workflow unknown)";if(t==="location"){const a=(e.source_path||e.filename||"").split("/").filter(Boolean);return a.length>1?a.slice(0,-1).join("/"):"(root)"}if(t==="source")return Ef(e)||e.source||"artifact";const r=On(e.created_at);return r===null?"(unknown time)":new Date(r).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function xp(e){const t=(e==null?void 0:e.tags)||{};return String((e==null?void 0:e.workflow_id)||t.workflow_id||t.workflow||"").trim()}function Wc(e){const t=(e==null?void 0:e.tags)||{},r=String((e==null?void 0:e.node_id)||t.node_id||t.node||(e==null?void 0:e.step_id)||t.step_id||"").trim();if(r)return r;const a=String((e==null?void 0:e.source_path)||t.path||"").trim().match(/(?:^|[._:/-])(node-[A-Za-z0-9_-]+)/);return a!=null&&a[1]?String(a[1]):""}function Xm(e){const t=(e==null?void 0:e.tags)||{},r=String((e==null?void 0:e.turn_id)||t.turn_id||t.turn||t.cycle||(e==null?void 0:e.ledger_cursor)||t.ledger_cursor||t.step_cursor||"").trim();if(r)return`turn ${r}`;const o=Wc(e),a=On(e==null?void 0:e.created_at),c=a===null?"unknown time":new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),u=e!=null&&e.run_id?Vt(String(e.run_id),10):"unknown run";return o?`${u} · ${o} · ${c}`:`${u} · ${c}`}function U_(e){if(!e)return"provenance unavailable";const t=[],r=xp(e),o=Wc(e),a=Ef(e),c=vp(e);return r&&t.push(r),o&&t.push(o),a&&t.push(a),c&&t.push(c),t.length?t.join(" · "):"provenance unavailable"}function rc(e){if(typeof e!="number"||!Number.isFinite(e)||e<0)return"—";const t=["B","KB","MB","GB","TB"];let r=e,o=0;for(;r>=1024&&o<t.length-1;)r/=1024,o+=1;const a=o===0?0:r>=10?1:2;return`${r.toFixed(a)} ${t[o]}`}function td(e){const t=String((e==null?void 0:e.semantic_kind)||(e==null?void 0:e.modality)||"").trim().toLowerCase(),r=String((e==null?void 0:e.render_kind)||"").trim().toLowerCase(),o=t||r||"artifact";return{voice:"Voice",music:"Music",sound:"Sound",recording:"Recording",audio:"Unclassified audio",image:"Image",video:"Video",markdown:"Markdown",html:"HTML",json:"JSON",document:"Document",code:"Code",text:"Text",binary:"Other",artifact:"Other"}[o]||o.replace(/[_-]+/g," ").replace(/\b\w/g,c=>c.toUpperCase())}function m2(e){return e==="html"?"HTML":e==="json"?"JSON":e==="audio"?"Unclassified audio":e==="code"?"Code":e.slice(0,1).toUpperCase()+e.slice(1)}function h2(e){const t=Date.now();if(e==="hour")return new Date(t-3600*1e3).toISOString();if(e==="week")return new Date(t-10080*60*1e3).toISOString();if(e==="month")return new Date(t-720*60*60*1e3).toISOString();if(e==="today"){const r=new Date(t);return new Date(r.getFullYear(),r.getMonth(),r.getDate()).toISOString()}return""}function _2(e){return e==="oldest"?{order_by:"created_at",order:"asc"}:e==="size_desc"?{order_by:"size_bytes",order:"desc"}:e==="size_asc"?{order_by:"size_bytes",order:"asc"}:e==="last_access"?{order_by:"last_accessed_at",order:"desc"}:e==="turn"?{order_by:"turn",order:"asc"}:e==="type"?{order_by:"semantic_kind",order:"asc"}:{order_by:"created_at",order:"desc"}}function ly(e){const t=e!=null&&e.stats&&typeof e.stats=="object"?e.stats:{},r=t!=null&&t.facets&&typeof t.facets=="object"?t.facets:e!=null&&e.facets&&typeof e.facets=="object"?e.facets:{};return r&&typeof r=="object"?r:{}}function p2(e){const t=Ii(e.created_at),r=ul(e.created_at);return t==="—"?"Created —":`${t}${r&&r!=="—"?` (${r})`:""}`}function cy(e){var a;const t=e.tags||{},r=String(((a=e.access)==null?void 0:a.last_accessed_at)||t.last_accessed_at||t.accessed_at||t.updated_at||e.created_at||"").trim(),o=Ii(r);return o==="—"?"—":o}function W_(e){const t=e.tags||{},r=String(e.title||t.title||t.name||t.label||e.filename||"").trim();if(r)return r;const o=String(e.source_path||t.path||"").trim();if(o)return o.split("/").filter(Boolean).slice(-1)[0]||o;const a=Ef(e),c=td(e);return a?`${c} ${a}`:`${c} artifact`}function Ef(e){var r;const t=e.tags||{};return String(e.task||((r=e.provenance)==null?void 0:r.source)||t.task||t.kind||t.source||e.source||"").trim()}function vp(e){var o,a,c,u,d,m,_,p;if(!e)return"";const t=Hn((o=e.producer)==null?void 0:o.provider,(a=e.producer)==null?void 0:a.provider_id,(c=e.provenance)==null?void 0:c.provider,(u=e.generation)==null?void 0:u.provider),r=Hn((d=e.producer)==null?void 0:d.model,(m=e.producer)==null?void 0:m.model_id,(_=e.provenance)==null?void 0:_.model,(p=e.generation)==null?void 0:p.model);return t&&r?`${t} / ${r}`:t||r}function Av(e){var t,r,o,a;return e?Hn((t=e.generation)==null?void 0:t.prompt,(r=e.generation)==null?void 0:r.input,(o=e.generation)==null?void 0:o.text,(a=e.provenance)==null?void 0:a.prompt):""}function q_(e){if(!e)return"";const t=e.media||{},r=Number(t.duration_s??t.duration_seconds??t.duration),o=Number(t.width??t.image_width??t.video_width),a=Number(t.height??t.image_height??t.video_height),c=Number(t.sample_rate??t.sample_rate_hz),u=Number(t.channels);if(Number.isFinite(r)&&r>0){const m=[`${r>=60?`${Math.floor(r/60)}m ${Math.round(r%60)}s`:`${r.toFixed(r>=10?1:2)}s`}`];return Number.isFinite(c)&&c>0&&m.push(`${Math.round(c/1e3)} kHz`),Number.isFinite(u)&&u>0&&m.push(`${u} ch`),m.join(" · ")}if(Number.isFinite(o)&&Number.isFinite(a)&&o>0&&a>0)return`${Math.round(o)} x ${Math.round(a)}`;const d=Number(t.page_count??t.pages);return Number.isFinite(d)&&d>0?`${Math.round(d)} pages`:""}function uy(e){return e.source_path||e.filename||""}function Jm(e,t,r){const o=e.run_id&&t[e.run_id]||null;if(!o)return e;const a=oo(o,r),c={...e.tags||{}};return a&&!c.workflow&&(c.workflow=a),a&&!c.workflow_id&&(c.workflow_id=a),{...e,workflow_id:e.workflow_id||a,tags:c}}function Km(e,t,r,o=""){const a=Jm(e,t,r),c=X_(a,o);return{json:"JSON",html:"HTML",markdown:"Markdown",code:"Code",voice:"Voice",music:"Music",sound:"Sound",audio:"Unclassified audio",image:"Image",video:"Video",document:"Document",text:"Text",other:"Other"}[c]||td(a)}function dy(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 g2(){try{const t=String(window.location.hash||"").replace(/^#/,"").split("/").filter(Boolean),r=t.length?String(t[t.length-1]||"").trim():"";if(dy(r))return r;const a=String(window.location.pathname||"").split("/").filter(Boolean),c=a.length?String(a[a.length-1]||"").trim():"";if(dy(c))return c}catch{}return""}function y2(){try{const e="abstractobserver_session_id_v1",t=window.sessionStorage.getItem(e);if(t&&t.trim())return t.trim();const r=globalThis.crypto,a=`obs_${r&&typeof r.randomUUID=="function"?r.randomUUID():`${Math.random().toString(16).slice(2)}_${Date.now().toString(16)}`}`;return window.sessionStorage.setItem(e,a),a}catch{return""}}function x2(){var rl,Au,Rd,em,Hl,Tc,Mu,Ld,Pd,Od,Tu,zu,Kr,Ti,Xo,Id,Fd,zi,Dd,so,tm,Bd,Ud,Wd,qd,nm,zc,Ru,hi,Mn,Br,wr,Zr,ei;const[e,t]=h.useState("observe");h.useEffect(()=>{!Kl&&(e==="backlog"||e==="processes")&&t("observe")},[e,Kl]);const[r,o]=h.useState(()=>s2()),a=typeof window<"u"&&((rl=window.__ABSTRACT_UI_CONFIG__)==null?void 0:rl.monitor_gpu)===!0,c=h.useRef(null),[u,d]=h.useState(""),[m,_]=h.useState(""),[p,x]=h.useState(()=>g2()),[v,b]=h.useState(""),[S,j]=h.useState(""),[$,T]=h.useState("{}"),[F]=h.useState(()=>y2()),[B,I]=h.useState(null),[U,te]=h.useState(!1),[K,le]=h.useState(""),[ce,pe]=h.useState(!1),[Re,W]=h.useState(""),[z,P]=h.useState(!1),[G,H]=h.useState([]),[re,N]=h.useState([]),[L,q]=h.useState([]),[C,X]=h.useState(!1),[se,ie]=h.useState(!1),[ye,Le]=h.useState([]),[Me,De]=h.useState([]),[We,ve]=h.useState({}),[Pe,me]=h.useState(!1),[we,Oe]=h.useState(!1),[qe,rt]=h.useState(!1),[ke,Fe]=h.useState([]),[ot,Et]=h.useState([]),Lt=h.useRef(0),[ae,Kt]=h.useState(null),[un,gn]=h.useState(""),[Ne,de]=h.useState(""),[Ee,$t]=h.useState(!1),[bt,Xt]=h.useState(!1),Dn=h.useRef(null),[ln,yn]=h.useState({}),[Tn,xn]=h.useState({}),[ir,Qt]=h.useState("now"),[Mr,ps]=h.useState(""),[Rn,he]=h.useState("once"),[Ce,gt]=h.useState(1),[dt,kt]=h.useState("days"),[Tt,qt]=h.useState(2),[Dt,_n]=h.useState(""),[Ot,vn]=h.useState("23:59"),[dn,nn]=h.useState(!0),[on,Gt]=h.useState(!1),[at,jn]=h.useState(""),[Bn,Ln]=h.useState(!0),[Un,lr]=h.useState(""),[dr,br]=h.useState(!1),[rs,gs]=h.useState(!1),[Ds,Ao]=h.useState(6),[co,ys]=h.useState("standard"),[En,Fi]=h.useState(""),[Di,Tr]=h.useState(""),[er,ct]=h.useState(!1),[Ct,an]=h.useState(!1),[jr,Es]=h.useState("pause"),[zr,Rr]=h.useState(""),[sa,ss]=h.useState(""),[fr,qr]=h.useState(""),Jn=h.useRef(null),Te=h.useRef(null),[$s,Xe]=h.useState(!1),Pn=h.useRef(null),[mr,Lr]=h.useState(""),[Pr,Or]=h.useState(""),[uo,en]=h.useState(""),[is,As]=h.useState(""),[xi,hr]=h.useState(""),[or,ni]=h.useState(!1),[Bs,ri]=h.useState("idle"),[Cn,Sr]=h.useState([]),xs=h.useRef(null),[vs,si]=h.useState(!1),[ws,_r]=h.useState(""),[ia,bs]=h.useState(""),[vi,wi]=h.useState(""),[bi,Bi]=h.useState([]),[fo,Us]=h.useState(!1),[ji,Hr]=h.useState(""),[ii,mo]=h.useState(""),[ho,js]=h.useState(!1),[O,ue]=h.useState(""),ze=h.useMemo(()=>{if(!Cn.length)return"";try{return JSON.stringify(Cn.map(y=>({role:y.role,content:y.content,ts:y.ts})))}catch{return"1"}},[Cn]),Ie=h.useMemo(()=>Cn.length?vi?ze!==vi:!0:!1,[ze,Cn.length,vi]),Be=h.useMemo(()=>bi.map(y=>{const k=String(y.title||"").trim()||`Chat ${String(y.thread_id||"").slice(0,8)}`,E=String(y.created_at||"").trim(),R=E?E.replace("T"," ").slice(0,19):"",V=String(y.run_id||"").trim()?String(y.run_id).slice(0,8):"",J=[k,R&&`(${R})`,V&&`run ${V}`].filter(Boolean).join(" • ");return{value:String(y.thread_id||""),label:J}}),[bi]);h.useEffect(()=>{a&&hb()},[a]),h.useEffect(()=>{if(!a)return;const y=c.current;y&&(y.token=r.gateway_auth_mode==="direct"&&r.auth_token||"")},[a,r.auth_token,r.gateway_auth_mode]);const[ut,At]=h.useState([]),[zt,Pt]=h.useState({}),[rn,sn]=h.useState({}),[ar,ft]=h.useState(""),[wn,pr]=h.useState(""),[zn,os]=h.useState("all"),[Vr,_o]=h.useState("status"),[$n,kr]=h.useState("overview"),[oc,hl]=h.useState(null),[za,oa]=h.useState(""),[Yc,Ui]=h.useState(!1),[Xc,aa]=h.useState(""),[Mo,la]=h.useState(!0),[Wi,_l]=h.useState("steps"),[To,Si]=h.useState(""),[qi,pl]=h.useState(""),[gl,ca]=h.useState([]),[Ra,ac]=h.useState(!1),[yl,La]=h.useState(""),[Jc,xl]=h.useState(!1),[Kc,vl]=h.useState(""),[ua,zo]=h.useState(""),[wl,da]=h.useState(""),[lc,fa]=h.useState(!1),[po,oi]=h.useState(""),[Ro,Lo]=h.useState(null),[ma,Pa]=h.useState({}),[Oa,ki]=h.useState(!1),[go,ha]=h.useState(""),[Hi,Zc]=h.useState(!1),[Ia,Po]=h.useState(!1),[Fa,An]=h.useState(()=>Date.now()),[Nr,Cr]=h.useState(""),[Vi,bl]=h.useState({}),[Da,_a]=h.useState({}),Ws=h.useRef([]),tr=h.useRef(null),as=h.useRef(""),yo=h.useRef({}),nr=h.useRef({}),xo=h.useRef({}),ai=h.useRef(new Set),[Ms,vo]=h.useState([]),Gi=h.useRef(""),li=h.useRef({}),Ni=h.useRef(null),Er=h.useRef(null),ci=h.useRef(0),Oo=h.useRef({}),Ci=h.useRef(!1),qs=h.useRef(new Set),[Io,Ba]=h.useState(""),[Ts,Yi]=h.useState(""),zs=h.useRef(""),[Ua,Wa]=h.useState(!1),[jl,qa]=h.useState(""),Xi=()=>({artifact_id:"",kind:"binary",render_kind:"",text:"",url:"",loading:!1,error:""}),[Fo,Sl]=h.useState("activity"),[cc,Qc]=h.useState([]),[pa,eu]=h.useState(0),[kl,Ha]=h.useState(0),[Kn,Nl]=h.useState({}),[Cl,ga]=h.useState({}),[tu,El]=h.useState(!1),[Va,Ga]=h.useState(""),[Ei,uc]=h.useState(""),[A,Z]=h.useState("all"),[Y,ge]=h.useState(""),[je,st]=h.useState([]),[Ge,nt]=h.useState("all"),[lt,pn]=h.useState("type"),[Vn,Zn]=h.useState("newest"),[Sn,ui]=h.useState(""),[Gr,Hs]=h.useState(""),[Vs,Yr]=h.useState(""),[Rs,yr]=h.useState(0),[In,Ya]=h.useState(()=>Xi()),[$l,Gs]=h.useState(!1),[Al,Ml]=h.useState(""),[nu,Do]=h.useState(""),[$r,Ji]=h.useState(""),[Qn,rr]=h.useState("text"),[ya,Ir]=h.useState(null),[Ys,Ki]=h.useState(!1),[Xa,Xr]=h.useState(""),[Tl,ad]=h.useState(""),[ld,dc]=h.useState(""),[ru,wo]=h.useState(!1),[fc,su]=h.useState(""),[mc,mh]=h.useState("run_ledger"),[xa,zl]=h.useState(""),[Rl,Ll]=h.useState([]),[iu,Xs]=h.useState(""),[$i,va]=h.useState(!1),[Bo,Zi]=h.useState(""),mt=h.useMemo(()=>new Rh({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]),hc=h.useMemo(()=>r.worker_url.trim()?new gb({url:r.worker_url.trim(),auth_token:r.worker_token}):null,[r.worker_url,r.worker_token]);async function ou(y=!1){const k=u.trim();if(!(!k||!z)&&!(!y&&za===k&&oc)){Ui(!0),aa("");try{const E=await mt.get_run_history_bundle(k,{include_subruns:!0,include_session:!0,session_turn_limit:100,ledger_mode:"tail",ledger_max_items:500});hl(E),oa(k)}catch(E){aa(String((E==null?void 0:E.message)||E||"Failed to load replay bundle"))}finally{Ui(!1)}}}h.useEffect(()=>{$n==="replay"&&ou(!1)},[$n,u,z]);const ls=ke.length?ke[ke.length-1].record:null,tn=h.useMemo(()=>Zo(ls),[ls]),Gn=h.useMemo(()=>{const y=S.trim();if(!B||!y||String(B.bundle_id||"").trim()&&String(B.bundle_id||"").trim()!==y)return null;const k=Array.isArray(B.entrypoints)?B.entrypoints:[];if(!k.length)return null;const E=v.trim();if(E)return k.find(V=>String(V.flow_id||"").trim()===E)||null;if(k.length===1)return k[0];const R=String(B.default_entrypoint||"").trim();return R&&k.find(V=>String(V.flow_id||"").trim()===R)||null},[B,S,v]),sr=h.useMemo(()=>{const y=Gn==null?void 0:Gn.inputs;return Array.isArray(y)?y:[]},[Gn]),Ai=h.useMemo(()=>GC(Ro),[Ro]),Ja=h.useMemo(()=>sr.length?sr:Ai,[sr,Ai]),cd=h.useMemo(()=>{const y=typeof(ae==null?void 0:ae.workflow_id)=="string"?String(ae.workflow_id):"",k=i_(y);if(k&&B&&String(B.bundle_id||"").trim()===k.bundle_id){const V=(Array.isArray(B.entrypoints)?B.entrypoints:[]).find(J=>String((J==null?void 0:J.flow_id)||"").trim()===k.flow_id);if(V&&V.node_index&&typeof V.node_index=="object")return V.node_index}const E=Gn==null?void 0:Gn.node_index;return E&&typeof E=="object"?E:{}},[ae,B,Gn]);h.useEffect(()=>{i2(r)},[r]),h.useEffect(()=>{Ww(r.theme)},[r.theme]),h.useEffect(()=>{Vw({font_scale:r.font_scale,header_density:r.header_density})},[r.font_scale,r.header_density]),h.useEffect(()=>()=>{Ni.current&&Ni.current.abort(),Er.current&&Er.current.abort(),Jn.current&&window.clearTimeout(Jn.current),Te.current&&window.clearTimeout(Te.current),tr.current&&window.clearTimeout(tr.current),Pn.current&&window.clearTimeout(Pn.current)},[]),h.useEffect(()=>{var y;r.auto_connect_gateway&&(!r.gateway_url.trim()&&typeof window<"u"&&!((y=window.location)!=null&&y.origin)||bo())},[r.auto_connect_gateway]);const Jt=h.useMemo(()=>{const y=$.trim();if(!y)return{};try{const k=JSON.parse(y);return typeof k!="object"||k===null||Array.isArray(k)?null:k}catch{return null}},[$]),ud=typeof(Jt==null?void 0:Jt.prompt)=="string"?String(Jt.prompt):"",au=typeof(Jt==null?void 0:Jt.provider)=="string"?String(Jt.provider):"",lu=typeof(Jt==null?void 0:Jt.model)=="string"?String(Jt.model):"",Rf=typeof(Jt==null?void 0:Jt.workspace_root)=="string"?String(Jt.workspace_root):"",Ka=typeof(Jt==null?void 0:Jt.workspace_access_mode)=="string"?String(Jt.workspace_access_mode):"",dd=h.useMemo(()=>{const y=Jt==null?void 0:Jt.workspace_allowed_paths;return Array.isArray(y)?y.map(k=>String(k||"").trim()).filter(Boolean).join(`
|
|
153
|
-
`):typeof y=="string"?String(y):""},[Jt]),hh=h.useMemo(()=>{const y=Jt==null?void 0:Jt.workspace_ignored_paths;return Array.isArray(y)?y.map(k=>String(k||"").trim()).filter(Boolean).join(`
|
|
154
|
-
`):typeof y=="string"?String(y):""},[Jt]),_c=Ja.length>0&&!!S.trim(),Pl=y=>{const k=String(y||"").trim().toLowerCase();return k==="object"||k==="memory"||k==="assertion"||k==="assertions"||k==="any"};h.useEffect(()=>{xn({})},[S,v]),h.useEffect(()=>{Jt!==null&&yn(y=>{const k={};for(const E of Ja){if(!E||typeof E!="object")continue;const R=String(E.id||"").trim();if(!R)continue;const V=String(E.type||"").trim();if(!Pl(V))continue;if(String(Tn[R]||"").trim()){k[R]=typeof y[R]=="string"?y[R]:"";continue}const ne=Jt==null?void 0:Jt[R];ne===void 0?k[R]="":k[R]=ny(ne)}return k})},[Ja,Jt,Tn]);const Lf=S.trim()&&v.trim()?`${S.trim()}:${v.trim()}`:"",Js=h.useMemo(()=>{const y={};for(const k of G){const E=String(k.workflow_id||"").trim(),R=String(k.label||"").trim();E&&R&&(y[E]=R)}return y},[G]),Ol=h.useMemo(()=>{const y=new Set;for(const k of Array.isArray(Me)?Me:[]){const E=String((k==null?void 0:k.name)||"").trim();E&&y.add(E)}return Array.from(y).sort()},[Me]),Pf=h.useMemo(()=>{const y=[];for(const k of Array.isArray(Me)?Me:[]){const E=String((k==null?void 0:k.name)||"").trim();if(!E)continue;const R=String((k==null?void 0:k.display_name)||"").trim();y.push({name:E,display_name:R||void 0})}return y},[Me]),cu=h.useMemo(()=>{const y=new Set;for(const k of ye||[]){if(!k||typeof k!="object")continue;const E=String(k.name||"").trim();E&&y.add(E)}return Array.from(y).sort()},[ye]),pc=h.useMemo(()=>{const y=r.maintenance_ai_provider.trim();if(!y)return{models:[],error:""};const k=We[y];return k?{models:(Array.isArray(k.models)?k.models:[]).map(R=>String(R||"").trim()).filter(Boolean),error:String(k.error||"")}:{models:[],error:""}},[We,r.maintenance_ai_provider]),wa=r.maintenance_ai_provider.trim(),fd=!!(wa&&z&&!Object.prototype.hasOwnProperty.call(We,wa));h.useEffect(()=>{const y=au.trim();if(!y||We[y]||li.current[y])return;li.current[y]=!0;let k=!1;return(async()=>{try{const R=await mt.discovery_provider_models(y);if(k)return;const V=Array.isArray(R==null?void 0:R.models)?R.models:[],J=typeof(R==null?void 0:R.error)=="string"?String(R.error):"";ve(ne=>({...ne,[y]:{models:V,error:J||void 0}}))}catch(R){if(k)return;ve(V=>({...V,[y]:{models:[],error:String((R==null?void 0:R.message)||R||"Failed to load models")}}))}finally{delete li.current[y]}})(),()=>{k=!0}},[au,We,mt]),h.useEffect(()=>{const y=r.maintenance_ai_provider.trim();if(!y||!z||We[y]||li.current[y])return;li.current[y]=!0;let k=!1;return(async()=>{try{const R=await mt.discovery_provider_models(y);if(k)return;const V=Array.isArray(R==null?void 0:R.models)?R.models:[],J=typeof(R==null?void 0:R.error)=="string"?String(R.error):"";ve(ne=>({...ne,[y]:{models:V,error:J||void 0}}))}catch(R){if(k)return;ve(V=>({...V,[y]:{models:[],error:String((R==null?void 0:R.message)||R||"Failed to load models")}}))}finally{delete li.current[y]}})(),()=>{k=!0}},[r.maintenance_ai_provider,We,mt,z]);function xr(y,k){const E=String(y||"").trim();if(!E)return;let R={};try{const V=JSON.parse($||"{}");typeof V=="object"&&V!==null&&!Array.isArray(V)&&(R=V)}catch{R={}}if(k==null){delete R[E],T(JSON.stringify(R,null,2));return}if(typeof k=="string"){const V=String(k||"").trim();V?R[E]=V:delete R[E]}else if(Array.isArray(k)){const V=k.map(J=>J).filter(J=>J!=null);V.length?R[E]=V:delete R[E]}else R[E]=k;T(JSON.stringify(R,null,2))}async function uu(y){const k=String(y||"").trim();if(!k)return le("Missing bundle_id"),null;le(""),te(!0);try{const E=await mt.get_bundle(k);return I(E),Wn({ts:mn(),kind:"info",title:`Loaded bundle ${k}`}),E}catch(E){return I(null),le(String((E==null?void 0:E.message)||E||"Failed to load bundle")),null}finally{te(!1)}}function gc(y){const k=[],E=Array.isArray(y==null?void 0:y.items)?y.items:[];for(const R of E){const V=String((R==null?void 0:R.bundle_id)||"").trim();if(!V)continue;const J=Array.isArray(R==null?void 0:R.entrypoints)?R.entrypoints:[];if(J.length)for(const ne of J){const ee=String((ne==null?void 0:ne.flow_id)||"").trim();if(!ee)continue;const $e=`${V}:${ee}`,D=String((ne==null?void 0:ne.name)||"").trim(),_e=D?`${V} · ${D}`:`${V} · ${ee}`,Ue=String((ne==null?void 0:ne.description)||"").trim();k.push({workflow_id:$e,bundle_id:V,flow_id:ee,label:_e,description:Ue||void 0})}}return k.sort((R,V)=>R.label.localeCompare(V.label)),k}async function cs(y=mt,k){if(!(C&&!(k!=null&&k.force))){X(!0);try{const E=$e=>$e.map(D=>{var _e,Ue,Qe,Je,it,Ze;return{run_id:String((D==null?void 0:D.run_id)||"").trim(),workflow_id:typeof(D==null?void 0:D.workflow_id)=="string"?String(D.workflow_id):(D==null?void 0:D.workflow_id)??null,status:typeof(D==null?void 0:D.status)=="string"?String(D.status):"",created_at:typeof(D==null?void 0:D.created_at)=="string"?String(D.created_at):(D==null?void 0:D.created_at)??null,updated_at:typeof(D==null?void 0:D.updated_at)=="string"?String(D.updated_at):(D==null?void 0:D.updated_at)??null,ledger_len:typeof(D==null?void 0:D.ledger_len)=="number"?Number(D.ledger_len):(D==null?void 0:D.ledger_len)??null,parent_run_id:typeof(D==null?void 0:D.parent_run_id)=="string"?String(D.parent_run_id):(D==null?void 0:D.parent_run_id)??null,session_id:typeof(D==null?void 0:D.session_id)=="string"?String(D.session_id):(D==null?void 0:D.session_id)??null,is_scheduled:typeof(D==null?void 0:D.is_scheduled)=="boolean"?!!D.is_scheduled:(D==null?void 0:D.is_scheduled)??null,paused:typeof(D==null?void 0:D.paused)=="boolean"?!!D.paused:(D==null?void 0:D.paused)??null,waiting_reason:typeof((_e=D==null?void 0:D.waiting)==null?void 0:_e.reason)=="string"?String(D.waiting.reason):((Ue=D==null?void 0:D.waiting)==null?void 0:Ue.reason)??null,schedule_interval:typeof((Qe=D==null?void 0:D.schedule)==null?void 0:Qe.interval)=="string"?String(D.schedule.interval).trim():((Je=D==null?void 0:D.schedule)==null?void 0:Je.interval)??null,schedule_target_workflow_id:typeof((it=D==null?void 0:D.schedule)==null?void 0:it.target_workflow_id)=="string"?String(D.schedule.target_workflow_id).trim():((Ze=D==null?void 0:D.schedule)==null?void 0:Ze.target_workflow_id)??null,current_node:typeof(D==null?void 0:D.current_node)=="string"?String(D.current_node).trim():(D==null?void 0:D.current_node)??null,llm_calls:typeof(D==null?void 0:D.llm_calls)=="number"?Number(D.llm_calls):(D==null?void 0:D.llm_calls)??null,tool_calls:typeof(D==null?void 0:D.tool_calls)=="number"?Number(D.tool_calls):(D==null?void 0:D.tool_calls)??null,tokens_total:typeof(D==null?void 0:D.tokens_total)=="number"?Number(D.tokens_total):(D==null?void 0:D.tokens_total)??null,error:(D==null?void 0:D.error)??null,waiting:(D==null?void 0:D.waiting)??null}}).filter(D=>!!D.run_id),[R,V]=await Promise.all([y.list_runs({limit:200,root_only:!0,include_metrics:!0}),y.list_runs({limit:500,root_only:!1,include_metrics:!0})]),J=Array.isArray(R==null?void 0:R.items)?R.items:[],ne=Array.isArray(V==null?void 0:V.items)?V.items:[],ee=E(J).filter($e=>!String($e.parent_run_id||"").trim());N(ee),q(E(ne).filter($e=>!!$e.run_id))}catch(E){Wn({ts:mn(),kind:"error",title:"Refresh runs failed",preview:Ft(String((E==null?void 0:E.message)||E||""))})}finally{X(!1)}}}async function Mi(){var V;const y=String(r.gateway_user||"").trim(),k=String(r.auth_token||"").trim();if(!y)throw new Error("Gateway user is required for hosted sign-in.");if(!k){const J=await fetch("/api/connection/gateway",{headers:{Accept:"application/json"}}),ne=await J.json().catch(async()=>({detail:await J.text().catch(()=>"")})),ee=((V=ne==null?void 0:ne.gateway)==null?void 0:V.principal)||(ne==null?void 0:ne.principal)||{},$e=String((ee==null?void 0:ee.user_id)||"").trim();if(J.ok&&(ne==null?void 0:ne.ok)!==!1&&$e===y)return;throw new Error("Gateway token is required to create a browser session.")}const E=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:y,gateway_token:k,persist:r.gateway_remember!==!1})}),R=await E.json().catch(async()=>({detail:await E.text().catch(()=>"")}));if(!E.ok||(R==null?void 0:R.ok)===!1)throw new Error(String((R==null?void 0:R.detail)||(R==null?void 0:R.error)||`Gateway sign-in failed (${E.status})`))}async function bo(){var y,k,E,R;W(""),P(!1),pe(!0);try{const V=String(r.gateway_url||"").trim();if(V){const Ue=V.toLowerCase();if(!Ue.startsWith("http://")&&!Ue.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(((y=window==null?void 0:window.location)==null?void 0:y.protocol)||"")==="https:"&&Ue.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 Je=new URL(V),it=String(((k=window==null?void 0:window.location)==null?void 0:k.hostname)||"").trim().toLowerCase(),Ze=String(Je.hostname||"").trim().toLowerCase(),xt=Yt=>Yt==="localhost"||Yt==="127.0.0.1"||Yt==="::1";if(xt(Ze)&&it&&!xt(it))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(Qe){throw new Error(String((Qe==null?void 0:Qe.message)||Qe||"Invalid Gateway URL"))}}const J=!!String(r.gateway_user||"").trim(),ne=J?new Rh({base_url:"",auth_token:""}):new Rh({base_url:V,auth_token:r.auth_token});J?(await Mi(),o(Ue=>({...Ue,gateway_auth_mode:"session",auth_token:""}))):o(Ue=>({...Ue,gateway_auth_mode:"direct"}));const ee=await ne.list_bundles(),$e=gc(ee);H($e);try{await cs(ne)}catch(Ue){N([]),Wn({ts:mn(),kind:"error",title:"Discovery runs failed",preview:Ft(String((Ue==null?void 0:Ue.message)||Ue||""))})}const[D,_e]=await Promise.allSettled([ne.discovery_tools(),ne.discovery_providers({include_models:!1})]);if(D.status==="fulfilled"){const Ue=Array.isArray((E=D.value)==null?void 0:E.items)?D.value.items:[];Le(Ue)}else Le([]),Wn({ts:mn(),kind:"error",title:"Discovery tools failed",preview:Ft(String(D.reason||""))});if(_e.status==="fulfilled"){const Ue=Array.isArray((R=_e.value)==null?void 0:R.items)?_e.value.items:[];De(Ue)}else De([]),Wn({ts:mn(),kind:"error",title:"Discovery providers failed",preview:Ft(String(_e.reason||""))});ve({}),P(!0),Wn({ts:mn(),kind:"info",title:"Gateway discovery loaded",preview:Ft(`workflows: ${$e.length}`)})}catch(V){W(JC(V,r))}finally{pe(!1)}}async function md(){if(!(se||ce)){ie(!0);try{await mt.reload_bundles();const y=await mt.list_bundles(),k=gc(y);H(k),Wn({ts:mn(),kind:"info",title:"Bundles reloaded",preview:Ft(`workflows: ${k.length}`)})}catch(y){const k=String((y==null?void 0:y.message)||y||"Bundle reload failed");Wn({ts:mn(),kind:"error",title:"Bundle reload failed",preview:Ft(k),data:{error:k}})}finally{ie(!1)}}}async function Of(y){if(bt||ce||!z)return;const k=y;if(k){Xt(!0),ft("");try{const E=await mt.upload_bundle(k,{overwrite:!1,reload:!0});Wn({ts:mn(),kind:"info",title:"Bundle uploaded",preview:Ft(String((E==null?void 0:E.bundle_ref)||""))});const R=await mt.list_bundles(),V=gc(R);H(V)}catch(E){const R=String((E==null?void 0:E.message)||E||"Upload failed");ft(R),Wn({ts:mn(),kind:"error",title:"Upload .flow failed",preview:Ft(R),data:{error:R}})}finally{Xt(!1);try{Dn.current&&(Dn.current.value="")}catch{}}}}function Uo(){fetch("/api/connection/gateway",{method:"DELETE"}).catch(()=>{}),Ar(),j(""),b(""),oi(""),I(null),le(""),te(!1),H([]),N([]),Le([]),De([]),ve({}),W(""),P(!1),o(y=>({...y,auth_token:""})),Wn({ts:mn(),kind:"info",title:"Gateway disconnected"})}async function Ks(y){const k=String(y??"");if(k){try{await navigator.clipboard.writeText(k),cr("Copied to clipboard",2);return}catch{}try{const E=document.createElement("textarea");E.value=k,E.style.position="fixed",E.style.left="-9999px",E.style.top="0",E.style.opacity="0",document.body.appendChild(E),E.focus(),E.select(),document.execCommand("copy"),document.body.removeChild(E),cr("Copied to clipboard",2)}catch{cr("Copy failed",2)}}}h.useEffect(()=>{const y=u.trim();if(!Pe||!y)return;let k=!1;const E=async()=>{try{const V=await mt.get_run(y);k||Kt(V)}catch{}};E();const R=window.setInterval(E,2e3);return()=>{k=!0,window.clearInterval(R)}},[Pe,u,mt]);const Fr=h.useMemo(()=>{const y=ae==null?void 0:ae.session_id;return typeof y=="string"?y.trim():y==null?"":String(y||"").trim()},[ae]),Za=h.useMemo(()=>{const y=String(Fr||"").trim();return y||String(F||"").trim()},[Fr,F]);h.useEffect(()=>{if(!z||!Za){hr(""),As("");return}(async()=>{try{const y=await sy(Za);hr(y)}catch{hr("")}})()},[z,Za]);const Yn=Py({gateway:z?mt:null,session_id:Za,run_id:xi,on_error:As,on_transcript:y=>{const k=String(y||"").trim();k&&(Or(E=>{const R=String(E||"");return R.trim()?`${R.trimEnd()}
|
|
155
|
-
${k}`:k}),window.setTimeout(()=>{var E;return(E=xs.current)==null?void 0:E.focus()},0))}});function Wo(y,k){try{const E=URL.createObjectURL(y),R=document.createElement("a");R.href=E,R.download=k||"download",R.rel="noreferrer",document.body.appendChild(R),R.click(),document.body.removeChild(R),window.setTimeout(()=>URL.revokeObjectURL(E),5e3)}catch{}}async function yc(){if(!Ra){if(!z||!Fr){pl(""),ca([]),La("");return}ac(!0),La("");try{const y=await sy(Fr);pl(y);const k=await mt.list_run_artifacts(y,{limit:800}),R=(Array.isArray(k==null?void 0:k.items)?k.items:[]).filter(V=>{const J=V==null?void 0:V.tags;return J&&typeof J=="object"&&String(J.kind||"").trim()==="attachment"});ca(R)}catch(y){const k=String((y==null?void 0:y.message)||y||"Failed to load session attachments"),E=k.toLowerCase();k.includes("404")||E.includes("session_memory_")&&E.includes("not found")||E.includes('"detail"')&&E.includes("not found")&&E.includes("session_memory_")?(ca([]),La("")):(ca([]),La(k)),pl("")}finally{ac(!1)}}}async function If(y){const k=String(qi||"").trim();if(!k){cr("No session attachment store yet",2);return}const E=String((y==null?void 0:y.artifact_id)||"").trim();if(!E)return;const R=y!=null&&y.tags&&typeof y.tags=="object"?y.tags:{},V=String(R.filename||"").trim(),J=String(R.path||"").trim(),ne=V||(J?J.split("/").pop():"")||E,ee=a_(ne);try{const $e=await mt.download_run_artifact_content(k,E,{access:"download"});Wo($e,ee),cr("Downloaded attachment",2)}catch($e){cr(String(($e==null?void 0:$e.message)||$e||"Download failed"),3)}}async function du(y){const k=String(qi||"").trim(),E=String((y==null?void 0:y.artifact_id)||"").trim();if(!k||!E)return;const R=y!=null&&y.tags&&typeof y.tags=="object"?y.tags:{},V=String(R.filename||"").trim(),J=String(R.path||"").trim(),ne=J?`@${J}`:V||E,ee=typeof(y==null?void 0:y.size_bytes)=="number"?Number(y.size_bytes):null,$e=String((y==null?void 0:y.content_type)||R.content_type||"").trim().toLowerCase();if(vl(ne),zo(""),da(""),xl(!0),typeof ee=="number"&&ee>1e6){zo(`(Attachment is ${ee.toLocaleString()} bytes; download to view.)`);return}if(!(!$e||$e.startsWith("text/")||$e.includes("json")||$e.includes("yaml")||$e.includes("toml")||$e.includes("xml"))){zo(`(Binary attachment: ${$e||"unknown"}; download to view.)`);return}fa(!0);try{const Ue=await(await mt.download_run_artifact_content(k,E,{access:"download"})).text(),Qe=14e3,Je=Ue.length>Qe?`${Ue.slice(0,Math.max(0,Qe-1))}…`:Ue;zo(Je)}catch(_e){da(String((_e==null?void 0:_e.message)||_e||"Preview failed"))}finally{fa(!1)}}async function hd(y){const k=String((y==null?void 0:y.run_id)||"").trim(),E=String((y==null?void 0:y.artifact_id)||"").trim();if(!k||!E){cr("Artifact download needs a run id",3);return}const R=Cf(y)||E;try{const V=await mt.download_run_artifact_content(k,E,{access:"preview"});Wo(V,a_(R)),cr("Downloaded artifact",2)}catch(V){cr(String((V==null?void 0:V.message)||V||"Download failed"),3)}}async function xc(y){const k=String((y==null?void 0:y.run_id)||"").trim(),E=String((y==null?void 0:y.artifact_id)||"").trim();if(!k||!E){cr("Artifact preview needs a run id",3);return}const R=Cf(y),V=String((y==null?void 0:y.content_type)||"").trim().toLowerCase(),J=Dc(y),ee=J==="text"&&hf(y,"")==="html"?window.open("about:blank","_blank"):null;if(ee&&(ee.document.write('<!doctype html><title>Loading artifact preview...</title><body style="font:14px system-ui;padding:24px">Loading artifact preview...</body>'),ee.document.close()),Ml(R||E),Do(""),Xr(""),rr(J),Ir(y),Gs(!0),$r&&(URL.revokeObjectURL($r),Ji("")),J==="binary"){Do(`(Binary artifact: ${V||"unknown"}; download to view.)`);return}if(J==="text"&&typeof y.size_bytes=="number"&&y.size_bytes>15e5){Do(`(Text artifact is ${y.size_bytes.toLocaleString()} bytes; download to view.)`);return}Ki(!0);try{const $e=await mt.download_run_artifact_content(k,E,{access:"preview"});if(J==="text"){const D=await $e.text(),_e=hf(y,D);if(_e==="html"){const Qe=new Blob([D],{type:V.includes("html")?String(y.content_type||"text/html"):"text/html;charset=utf-8"}),Je=URL.createObjectURL(Qe),it=ee||window.open("about:blank","_blank");if(it){it.location.href=Je,Gs(!1),Ir(null),Do(""),Ki(!1),setTimeout(()=>URL.revokeObjectURL(Je),300*1e3),cr("Opened HTML preview",2);return}URL.revokeObjectURL(Je),Xr("Browser blocked opening the HTML page. Showing highlighted source instead.")}else ee&&ee.close();const Ue=_e==="json"?15e5:_e==="markdown"?25e4:_e==="html"?3e5:22e3;Do(D.length>Ue&&_e!=="text"?`${rc(y.size_bytes??D.length)} ${_e.toUpperCase()} artifact. Download to inspect it.`:D.length>Ue?`${D.slice(0,Math.max(0,Ue-1))}…`:D)}else ee&&ee.close(),Ji(URL.createObjectURL($e))}catch($e){ee&&ee.close(),Xr(String(($e==null?void 0:$e.message)||$e||"Preview failed"))}finally{Ki(!1)}}h.useEffect(()=>()=>{$r&&URL.revokeObjectURL($r)},[$r]);async function Qi(y){const k=String(y.artifact_id||"").trim(),E=String(y.run_id||"").trim(),R=Dc(y);if(!E||!k)return{artifact_id:k,kind:R,render_kind:"",text:"Preview needs artifact run metadata.",url:"",loading:!1,error:""};if(R==="binary")return{artifact_id:k,kind:R,render_kind:"",text:`Preview unavailable for ${y.content_type||y.modality||"this artifact"}. Download to inspect it.`,url:"",loading:!1,error:""};if(R==="text"&&typeof y.size_bytes=="number"&&y.size_bytes>5e5)return{artifact_id:k,kind:R,render_kind:"",text:`${rc(y.size_bytes)} text artifact. Use Preview for a larger view or Download to inspect locally.`,url:"",loading:!1,error:""};try{const V=await mt.download_run_artifact_content(E,k,{access:"preview"});if(R==="text"){const J=await V.text(),ne=hf(y,J),ee=ne==="json"?5e5:ne==="markdown"?12e4:ne==="html"?3e5:8e3;return{artifact_id:k,kind:R,render_kind:ne,text:J.length>ee&&ne!=="text"?`${rc(y.size_bytes??J.length)} ${ne.toUpperCase()} artifact. Use Larger preview or Download to inspect it.`:J.length>ee?`${J.slice(0,Math.max(0,ee-1))}…`:J,url:"",loading:!1,error:""}}return{artifact_id:k,kind:R,render_kind:"",text:"",url:URL.createObjectURL(V),loading:!1,error:""}}catch(V){return{artifact_id:k,kind:R,render_kind:"",text:"",url:"",loading:!1,error:String((V==null?void 0:V.message)||V||"Preview failed")}}}async function vc(y){if(In.url&&URL.revokeObjectURL(In.url),!y){Ya(Xi());return}const k=String(y.artifact_id||"").trim(),E=Dc(y);Ya({artifact_id:k,kind:E,render_kind:"",text:"",url:"",loading:!0,error:""}),Ya(await Qi(y))}h.useEffect(()=>{yc()},[mt,z,Fr]);function Wn(y){const k=String(y.id||"").trim()||es();At(E=>[{...y,id:k},...E].slice(0,800))}function cr(y,k){qr(y),Te.current&&window.clearTimeout(Te.current),Xe(!1),window.requestAnimationFrame(()=>Xe(!0)),Te.current=window.setTimeout(()=>{Xe(!1),Te.current=null},1500),Jn.current&&(window.clearTimeout(Jn.current),Jn.current=null),k>0&&(Jn.current=window.setTimeout(()=>{qr(""),Jn.current=null},Math.max(1,k)*1e3))}function Ls(y,k){const E=String(y||"").trim(),R=String(k||"").trim();if(!R)return"";const V=E?String(yo.current[E]||"").trim():"";return V?`${V}::${R}`:R}function ba(y,k,E){const R=String(y||"").trim(),V=String(k||"").trim(),J=String(E||"").trim();if(!R||!V||!J)return;const ne=Ls(R,V);ne&&(yo.current[J]=ne,nr.current[J]=R,xo.current[J]={parent_run_id:R,parent_node_id:V},ai.current.has(J)||(ai.current.add(J),vo(ee=>ee.includes(J)?ee:[...ee,J])))}function wc(y){const k=String(y||"").trim();if(!k)return;const E=Date.now(),R=as.current;as.current=k,An(E),bl(V=>{const J={};for(const[D,_e]of Object.entries(V))typeof _e=="number"&&_e>E&&(J[D]=_e);J[k]=Math.max(J[k]||0,E+2e3),R&&R!==k&&(J[R]=Math.max(J[R]||0,E+2e3));const ne=Object.keys(J);if(ne.length<=200)return J;const ee=ne.sort((D,_e)=>(J[_e]||0)-(J[D]||0)).slice(0,200),$e={};for(const D of ee)$e[D]=J[D]||0;return $e}),_a(V=>{if(typeof V[k]=="number")return V;const J={...V,[k]:E};if(Ws.current.push(k),Ws.current.length>8e3){const ne=Ws.current.splice(0,1500);for(const ee of ne)delete J[ee]}return J}),tr.current&&window.clearTimeout(tr.current),tr.current=window.setTimeout(()=>{const V=Date.now();bl(J=>{const ne={};for(const[ee,$e]of Object.entries(J))typeof $e=="number"&&$e>V&&(ne[ee]=$e);return ne}),An(V),tr.current=null},2200)}function fu(y){var Je,it;Lt.current=y.cursor,Fe(Ze=>[...Ze,{cursor:y.cursor,record:y.record}]),u.trim()&&qs.current.add(`${u.trim()}:${y.cursor}`);const k=mm(y.record),E=k&&k.name?uf(k.name):"",R=y.record,V=typeof(R==null?void 0:R.node_id)=="string"?R.node_id:"",J=typeof(R==null?void 0:R.status)=="string"?R.status:"",ne=typeof((Je=R==null?void 0:R.effect)==null?void 0:Je.type)=="string"?R.effect.type:"",ee=typeof(R==null?void 0:R.run_id)=="string"?R.run_id:"",$e=ee||u.trim();if(E==="abstract.status"&&$e===u.trim()){const{text:Ze,duration:xt}=Hu(k==null?void 0:k.payload);cr(Ze,xt)}const D=V?Ls($e,V):"";if(J==="waiting"){const Ze=Zo(R);if(String((Ze==null?void 0:Ze.reason)||"").trim()==="subworkflow"){const Yt=typeof((it=Ze==null?void 0:Ze.details)==null?void 0:it.sub_run_id)=="string"?String(Ze.details.sub_run_id):"";Yt&&V&&ba($e,V,Yt)}}if(V&&(wc(Ls($e,V)),J==="waiting"||J==="running")){const Ze=Ls($e,V);Ze&&(as.current=Ze,Cr(Ze))}let _e="step",Ue=D||V||"(node?)",Qe="";if(k&&k.name&&o_(k.name))_e=E==="abstract.message"?"message":"event",Ue=E||k.name,Qe=Ft(Hu(k==null?void 0:k.payload).text);else if(R!=null&&R.error)_e="error",Ue="error",Qe=Ft(hs(R.error,360));else if(J==="waiting"){const Ze=Zo(R),xt=String((Ze==null?void 0:Ze.reason)||"").trim();Qe=Ft(xt?`waiting • ${xt}`:"waiting")}else R!=null&&R.result?Qe=Ft(hs(R.result,360)):ne?Qe=Ft(ne):Qe=Ft(Pm(R));Wn({id:`step:${ee||u.trim()||"?"}:${y.cursor}`,ts:String((R==null?void 0:R.ended_at)||(R==null?void 0:R.started_at)||mn()),kind:_e,title:Ue,preview:Qe,data:R,cursor:y.cursor,run_id:ee||u.trim()||void 0,node_id:D||V,status:J,effect_type:ne,emit_name:E||(k==null?void 0:k.name)||void 0})}function gr(y,k){var it,Ze;ci.current=Math.max(ci.current,k.cursor);const E=`${y}:${k.cursor}`;if(!!qs.current.has(E))return;qs.current.add(E),Et(xt=>[...xt,{run_id:y,cursor:k.cursor,record:k.record}]);const V=mm(k.record),J=V&&V.name?uf(V.name):"",ne=k.record,ee=typeof(ne==null?void 0:ne.node_id)=="string"?ne.node_id:"",$e=ee?Ls(y,ee):"",D=typeof(ne==null?void 0:ne.status)=="string"?ne.status:"",_e=typeof((it=ne==null?void 0:ne.effect)==null?void 0:it.type)=="string"?ne.effect.type:"";if(D==="waiting"){const xt=Zo(ne);if(String((xt==null?void 0:xt.reason)||"").trim()==="subworkflow"){const cn=typeof((Ze=xt==null?void 0:xt.details)==null?void 0:Ze.sub_run_id)=="string"?String(xt.details.sub_run_id):"";cn&&ee&&ba(y,ee,cn),cn&&zs.current.trim()===String(y||"").trim()&&(zs.current=cn,Yi(cn))}}if(ee&&(wc(Ls(y,ee)),D==="waiting"||D==="running")){const xt=Ls(y,ee);xt&&(as.current=xt,Cr(xt))}if((D==="completed"||D==="failed")&&zs.current.trim()===String(y||"").trim()){const xt=String(nr.current[String(y||"").trim()]||"").trim();xt&&xt!==u.trim()?(zs.current=xt,Yi(xt)):(zs.current="",Yi(""))}if(J==="abstract.status"&&y===u.trim()){const{text:xt,duration:Yt}=Hu(V==null?void 0:V.payload);cr(xt,Yt)}let Ue="step",Qe=$e||ee||"(node?)",Je="";if(V&&V.name&&o_(V.name))Ue=J==="abstract.message"?"message":"event",Qe=`subrun • ${J||V.name}`,Je=Ft(Hu(V==null?void 0:V.payload).text);else if(ne!=null&&ne.error)Ue="error",Qe="error",Je=Ft(hs(ne.error,360));else if(D==="waiting"){const xt=Zo(ne),Yt=String((xt==null?void 0:xt.reason)||"").trim();Je=Ft(Yt?`waiting • ${Yt}`:"waiting")}else ne!=null&&ne.result?Je=Ft(hs(ne.result,360)):_e?Je=Ft(_e):Je=Ft(Pm(ne));Wn({id:`step:${y}:${k.cursor}`,ts:String((ne==null?void 0:ne.ended_at)||(ne==null?void 0:ne.started_at)||mn()),kind:Ue,title:Qe,preview:Je,data:ne,cursor:k.cursor,run_id:y,node_id:$e||ee,status:D,effect_type:_e,emit_name:J||(V==null?void 0:V.name)||""})}function mu(y,k){var Ze,xt;const E=String(y||"").trim();if(!E)return;const R=`${E}:${k.cursor}`;if(!!qs.current.has(R))return;qs.current.add(R),Et(Yt=>[...Yt,{run_id:E,cursor:k.cursor,record:k.record}]);const J=mm(k.record),ne=J&&J.name?uf(J.name):"",ee=k.record,$e=typeof(ee==null?void 0:ee.node_id)=="string"?ee.node_id:"",D=$e?Ls(E,$e):"",_e=typeof(ee==null?void 0:ee.status)=="string"?ee.status:"",Ue=typeof((Ze=ee==null?void 0:ee.effect)==null?void 0:Ze.type)=="string"?ee.effect.type:"";if(_e==="waiting"){const Yt=Zo(ee);if(String((Yt==null?void 0:Yt.reason)||"").trim()==="subworkflow"){const Ye=typeof((xt=Yt==null?void 0:Yt.details)==null?void 0:xt.sub_run_id)=="string"?String(Yt.details.sub_run_id):"";Ye&&$e&&ba(E,$e,Ye)}}if($e&&(wc(Ls(E,$e)),_e==="waiting"||_e==="running")){const Yt=Ls(E,$e);Yt&&(as.current=Yt,Cr(Yt))}if(ne==="abstract.status"&&E===u.trim()){const{text:Yt,duration:cn}=Hu(J==null?void 0:J.payload);cr(Yt,cn)}let Qe="step",Je=D||$e||"(node?)",it="";if(J&&J.name&&o_(J.name))Qe=ne==="abstract.message"?"message":"event",Je=`subrun • ${ne||J.name}`,it=Ft(Hu(J==null?void 0:J.payload).text);else if(ee!=null&&ee.error)Qe="error",Je="error",it=Ft(hs(ee.error,360));else if(_e==="waiting"){const Yt=Zo(ee),cn=String((Yt==null?void 0:Yt.reason)||"").trim();it=Ft(cn?`waiting • ${cn}`:"waiting")}else ee!=null&&ee.result?it=Ft(hs(ee.result,360)):Ue?it=Ft(Ue):it=Ft(Pm(ee));Wn({id:`step:${E}:${k.cursor}`,ts:String((ee==null?void 0:ee.ended_at)||(ee==null?void 0:ee.started_at)||mn()),kind:Qe,title:Je,preview:it,data:ee,cursor:k.cursor,run_id:E,node_id:D||$e,status:_e,effect_type:Ue,emit_name:ne||(J==null?void 0:J.name)||""})}async function hu(y,k){let E=k.after;for(;;){const R=await mt.get_ledger(y,{after:E,limit:200}),V=Array.isArray(R.items)?R.items:[];if(!V.length)return Lt.current=E,E;const J=E;for(let ne=0;ne<V.length;ne++){const ee=V[ne];fu({cursor:J+ne+1,record:ee})}E=typeof R.next_after=="number"?R.next_after:E}}async function ja(y){var J,ne;const k=String(y||"").trim();ft(""),Oe(!0),me(!1),Fe([]),Lt.current=0,Et([]),qs.current=new Set,At([]),Pt({}),sn({}),_l("steps"),Si(""),qr(""),Kt(null),Lr(""),Cr(""),as.current="",bl({}),_a({}),Ws.current=[],An(Date.now()),yo.current=k?{[k]:""}:{},nr.current={},xo.current={},ai.current=new Set,vo([]),Gi.current="",zs.current="",Yi(""),Oo.current={},tr.current&&window.clearTimeout(tr.current),tr.current=null,Pn.current&&window.clearTimeout(Pn.current),Pn.current=null,Ni.current&&Ni.current.abort(),Er.current&&Er.current.abort(),Er.current=null,ci.current=0,Ba("");const E=new AbortController;Ni.current=E;let R=!1;try{let ee="",$e="";try{const D=await mt.get_run(k);Kt(D);const _e=typeof(D==null?void 0:D.workflow_id)=="string"?String(D.workflow_id):"",Ue=i_(_e);Ue&&(ee=Ue.bundle_id,$e=Ue.flow_id)}catch{}try{const D=await mt.get_run_input_data(k);typeof(D==null?void 0:D.bundle_id)=="string"&&(ee=String(D.bundle_id||"").trim()||ee),typeof(D==null?void 0:D.flow_id)=="string"&&($e=String(D.flow_id||"").trim()||$e);const _e=D&&typeof D.input_data=="object"&&D.input_data&&!Array.isArray(D.input_data)?D.input_data:null;_e&&T(JSON.stringify(_e,null,2))}catch{}ee&&$e&&(j(ee),b($e),oi($e),await uu(ee)),await hu(k,{after:0});try{const D=await mt.get_run_history_bundle(k,{include_subruns:!0,include_session:!1,ledger_mode:"tail",ledger_max_items:1}),_e=D&&typeof D=="object"?D.ledgers:null,Qe=(_e&&typeof _e=="object"?Object.keys(_e):[]).map(Je=>String(Je||"").trim()).filter(Boolean).filter(Je=>Je!==k);if(Qe.length){for(const Je of Qe)ai.current.add(Je);vo(Je=>Array.from(new Set([...Je,...Qe])));try{const Je=typeof((J=_e==null?void 0:_e[k])==null?void 0:J.total)=="number"?Number(_e[k].total):0;let it="",Ze=-1;for(const xt of Qe){const Yt=typeof((ne=_e==null?void 0:_e[xt])==null?void 0:ne.total)=="number"?Number(_e[xt].total):0;Yt>Ze&&(it=xt,Ze=Yt)}it&&Ze>Math.max(Je*3,Je+20)&&(zs.current=it,Yi(it))}catch{}}}catch{}me(!0),Wn({ts:mn(),kind:"info",title:`Attached to run ${k}`,data:{run_id:k}}),R=!0}catch(ee){const $e=String((ee==null?void 0:ee.message)||ee||"unknown error");ft($e),Wn({ts:mn(),kind:"error",title:"Connection error",preview:Ft($e),data:{error:$e}}),me(!1)}finally{Oe(!1)}if(!R||E.signal.aborted)return;(async()=>{let ee=250;for(;!E.signal.aborted;){try{const $e=await hu(k,{after:Lt.current});await mt.stream_ledger(k,{after:$e,on_step:fu,signal:E.signal})}catch($e){if(E.signal.aborted)break;const D=String(($e==null?void 0:$e.message)||$e||"stream error");Wn({ts:mn(),kind:"error",title:"Ledger stream error (will retry)",preview:Ft(D),data:{error:D}})}if(E.signal.aborted)break;await new Promise($e=>setTimeout($e,ee)),ee=Math.min(5e3,Math.floor(ee*1.6))}})()}async function _u(){const y=v.trim(),k=S.trim();if(!y||!k){const E="Select a workflow first (Start Workflow → pick a workflow).";return ft(E),E}ft(""),Oe(!0);try{let E={};const R=$.trim();if(R)try{if(E=JSON.parse(R),typeof E!="object"||E===null||Array.isArray(E))throw new Error("input_data must be a JSON object")}catch(D){const _e=`Invalid input_data JSON: ${String((D==null?void 0:D.message)||D)}`;return ft(_e),_e}const V=(Ja||[]).find(D=>D&&typeof D=="object"&&D.id==="prompt"),J=V&&typeof V=="object"&&Object.prototype.hasOwnProperty.call(V,"default"),ne=E==null?void 0:E.prompt,ee=typeof ne=="string"?ne.trim():"";if(V&&!J&&!ee){const D="Missing required input_data.prompt";return ft(D),D}const $e=await mt.start_run(y,E,{bundle_id:k,session_id:String(F||"").trim()||null});return _($e),d($e),gn(""),await ja($e),cs(),null}catch(E){const R=String((E==null?void 0:E.message)||E||"start failed");return ft(R),R}finally{Oe(!1)}}async function _d(y){const k=v.trim(),E=S.trim();if(!k||!E){const R="Select a workflow first (Start Workflow → pick a workflow).";return ft(R),R}if(Ee)return"Schedule already in progress";de(""),ft(""),$t(!0),Oe(!0);try{let R={};const V=$.trim();if(V)try{if(R=JSON.parse(V),typeof R!="object"||R===null||Array.isArray(R))throw new Error("input_data must be a JSON object")}catch(et){const ht=`Invalid input_data JSON: ${String((et==null?void 0:et.message)||et)}`;return de(ht),ht}const J=(Ja||[]).find(et=>et&&typeof et=="object"&&et.id==="prompt"),ne=J&&typeof J=="object"&&Object.prototype.hasOwnProperty.call(J,"default"),ee=R==null?void 0:R.prompt,$e=typeof ee=="string"?ee.trim():"";if(J&&!ne&&!$e){const et="Missing required input_data.prompt";return de(et),et}let D=null,_e=null;if(y.start_mode==="now")D="now",_e=new Date;else{const et=String(y.start_at_local||"").trim();if(!et){const Ht="Pick a start date/time (or choose 'now').";return de(Ht),Ht}const ht=new Date(et);if(!Number.isFinite(ht.getTime())){const Ht="Invalid start date/time";return de(Ht),Ht}D=ht.toISOString(),_e=new Date(D)}const Ue=Number.isFinite(y.every_n)?y.every_n:1,Qe=Math.max(1,Math.min(1e4,Math.floor(Ue))),Je=String(y.every_unit||"").trim();let it="1d";Je==="minutes"?it=`${Qe}m`:Je==="hours"?it=`${Qe}h`:Je==="days"?it=`${Qe}d`:Je==="weeks"?it=`${Qe*7}d`:Je==="months"&&(it=`${Qe*30}d`);const Ze=y.repeat_mode,xt=Ze==="once"?null:it,Yt=Ze==="count"?Math.max(1,Math.floor(Number.isFinite(y.repeat_count)?y.repeat_count:1)):null;let cn=null;if(Ze==="until"){const et=String(y.repeat_until_date_local||"").trim(),ht=String(y.repeat_until_time_local||"").trim()||"23:59";if(!et){const jt="Pick an end date (Until).";return de(jt),jt}const Ht=new Date(`${et}T${ht}`);if(!Number.isFinite(Ht.getTime())){const jt="Invalid end date/time";return de(jt),jt}if(cn=Ht.toISOString(),_e&&Number.isFinite(_e.getTime())&&Ht.getTime()<_e.getTime()){const jt="End date must be after the start date.";return de(jt),jt}}const Ye=await mt.schedule_run({bundle_id:E,flow_id:k,input_data:R,start_at:D,interval:xt,repeat_count:Yt,repeat_until:cn,share_context:!!y.share_context,session_id:String(F||"").trim()||null});return _(Ye),d(Ye),de(""),await ja(Ye),cs(),null}catch(R){const V=String((R==null?void 0:R.message)||R||"schedule failed");return de(V),ft(V),V}finally{Oe(!1),$t(!1)}}async function Qa(){gn(""),de("");const k=ir!=="now"||Rn!=="once"?await _d({start_mode:ir,start_at_local:Mr,repeat_mode:Rn,every_n:Ce,every_unit:dt,repeat_count:Tt,repeat_until_date_local:Dt,repeat_until_time_local:Ot,share_context:dn}):await _u();k&&gn(k)}async function Xn(y,k){const E=String(y||"").trim();if(!E)return;ft("");const R=String((k==null?void 0:k.root_run_id)||E).trim()||E;_(R),d(E),await ja(E)}h.useEffect(()=>{const y=String(p||"").trim();if(!y)return;let k=!1;return(async()=>{try{if(z||await bo(),k)return;await Xn(y)}catch(E){k||ft(String((E==null?void 0:E.message)||E||"Failed to attach run from URL"))}finally{k||x("")}})(),()=>{k=!0}},[p]);function Ar(){Ni.current&&Ni.current.abort(),Ni.current=null,Er.current&&Er.current.abort(),Er.current=null,ci.current=0,Ba(""),d(""),_(""),yo.current={},nr.current={},xo.current={},ai.current=new Set,vo([]),Gi.current="",zs.current="",Yi(""),Oo.current={},Lr(""),tr.current&&window.clearTimeout(tr.current),tr.current=null,Pn.current&&window.clearTimeout(Pn.current),Pn.current=null,me(!1),Oe(!1),rt(!1),Lt.current=0,Fe([]),Et([]),qs.current=new Set,Kt(null),At([]),Pt({}),Cr(""),as.current="",bl({}),_a({}),Ws.current=[],An(Date.now()),cr("",-1),ft(""),Wa(!1),qa(""),Sr([]),Or(""),en(""),ni(!1),si(!1),_r(""),bs(""),wi(""),Bi([]),Us(!1),Hr(""),mo(""),js(!1),ue("")}h.useEffect(()=>{Sr([]),Or(""),en(""),ni(!1),si(!1),_r(""),bs(""),wi(""),Bi([]),Us(!1),Hr(""),mo(""),js(!1),ue("")},[u]),h.useEffect(()=>{$n==="chat"&&u.trim()&&z&&el()},[$n,u,z,ae==null?void 0:ae.workflow_id]);async function Dr(y,k,E){const R=String(y||"").trim();if(!R)return ft("Missing run_id"),"Missing run_id";ft("");try{const V={},J=String((E==null?void 0:E.reason)||"").trim();J&&(V.reason=J),await mt.submit_command({command_id:es(),run_id:R,type:k,payload:V,client_id:"web_pwa"}),Wn({ts:mn(),kind:"info",title:`${k} submitted`,preview:J?`reason: ${J}`:"",data:{run_id:R,type:k,reason:J}});try{if(R===u.trim()){const ne=await mt.get_run(R);Kt(ne)}}catch{}return cs(mt,{force:!0}),window.setTimeout(()=>void cs(mt,{force:!0}),900),window.setTimeout(()=>void cs(mt,{force:!0}),2400),null}catch(V){const J=String((V==null?void 0:V.message)||V||`${k} failed`);return ft(J),J}}async function bc(y,k){return Dr(u.trim(),y,k)}async function jc(y,k="Stopped from AbstractObserver"){const E=String(y||"").trim();if(!E||!window.confirm(`Cancel run ${Vt(E,24)}?`))return;await Dr(E,"cancel",{reason:k})||cr("Cancel submitted",2)}async function Sc(){var E;const y=u.trim();if(!y){ft("Select a run first.");return}if(!z){ft("Connect to the gateway first.");return}if(qe)return;const k=String(((E=ae==null?void 0:ae.waiting)==null?void 0:E.reason)||"").trim().toLowerCase()||String(Jr||"").trim().toLowerCase();if(!Qs||fi||Ho||qo.toLowerCase()!=="waiting"||k!=="until"){ft("This run is not a scheduled wait that can be triggered now.");return}ft(""),rt(!0);try{const R={payload:{mode:"run_now",requested_at:mn()}},V=String(Zs||"").trim();V&&(R.wait_key=V),await mt.submit_command({command_id:es(),run_id:y,type:"resume",payload:R,client_id:"web_pwa"}),Wn({ts:mn(),kind:"info",title:"Scheduled run triggered",preview:Ft(`run ${y}`),data:{run_id:y,until:eo||null}});try{const J=await mt.get_run(y);Kt(J)}catch{}}catch(R){ft(String((R==null?void 0:R.message)||R||"Failed to trigger scheduled run"))}finally{rt(!1)}}async function _h(y){const k=u.trim();if(!k)return ft("Missing run_id"),"Missing run_id";if(dr)return"Schedule update already in progress";const E=String(y.interval||"").trim();if(!/^\s*(\d+(?:\.\d+)?)\s*(ms|s|m|h|d)\s*$/i.test(E)){const V="Invalid interval (expected like '20m', '1h', '0.5s', '250ms')";return lr(V),V}lr(""),ft(""),br(!0),Oe(!0);try{await mt.submit_command({command_id:es(),run_id:k,type:"update_schedule",payload:{interval:E,apply_immediately:y.apply_immediately!==!1},client_id:"web_pwa"}),Wn({ts:mn(),kind:"info",title:"Schedule updated",preview:Ft(`interval: ${E}`),data:{interval:E},run_id:k});try{const V=await mt.get_run(k);Kt(V)}catch{}return null}catch(V){const J=String((V==null?void 0:V.message)||V||"update_schedule failed");return lr(J),ft(J),J}finally{Oe(!1),br(!1)}}async function Ss(y){const k=u.trim();if(!k)return ft("Missing run_id"),"Missing run_id";if(er)return"Compaction already in progress";const E=typeof(y==null?void 0:y.preserve_recent)=="number"?y.preserve_recent:Ds,R=Math.max(0,Math.min(500,Math.floor(Number.isFinite(E)?E:6))),V=(y==null?void 0:y.compression_mode)||co,J=String((y==null?void 0:y.focus)??En??"").trim();Tr(""),ft(""),ct(!0),Oe(!0);try{const ne={preserve_recent:R,compression_mode:V};return J&&(ne.focus=J),await mt.submit_command({command_id:es(),run_id:k,type:"compact_memory",payload:ne,client_id:"web_pwa"}),Wn({ts:mn(),kind:"info",title:"Compaction requested",preview:Ft(`mode: ${V} • preserve_recent: ${R}`),data:ne,run_id:k}),null}catch(ne){const ee=String((ne==null?void 0:ne.message)||ne||"compact_memory failed");return Tr(ee),ft(ee),ee}finally{Oe(!1),ct(!1)}}async function pu(){const y=u.trim();if(!y){qa("Missing run_id");return}if(!Ua){qa(""),Wa(!0);try{const k=r.maintenance_ai_provider.trim(),E=r.maintenance_ai_model.trim();await mt.generate_run_summary(y,{provider:k||void 0,model:E||void 0,include_subruns:!0}),Wn({ts:mn(),kind:"info",title:"Summary generation requested",preview:Ft(`run ${y}`)})}catch(k){qa(String((k==null?void 0:k.message)||k||"Failed to generate summary"))}finally{Wa(!1)}}}async function pd(){const y=u.trim();if(!y){en("Select a run first.");return}if(!z){en("Connect to the gateway first.");return}const k=Pr.trim();if(!k||or)return;if(Yn.voice_ptt_busy){As("Wait for transcription to finish.");return}en(""),As(""),ni(!0);const R={id:`local:${es()}`,role:"user",content:k,ts:mn()};Sr(V=>[...V,R]),Or("");try{const V=[...Cn,R].slice(-20).map(_e=>({role:_e.role,content:_e.content})),J=r.maintenance_ai_provider.trim(),ne=r.maintenance_ai_model.trim(),ee=await mt.run_chat(y,{provider:J||void 0,model:ne||void 0,include_subruns:!0,messages:V}),$e=String((ee==null?void 0:ee.answer)||"").trim()||"(empty response)",D=String((ee==null?void 0:ee.generated_at)||"").trim()||mn();Sr(_e=>[..._e,{id:`local:${es()}`,role:"assistant",content:$e,ts:D}])}catch(V){en(String((V==null?void 0:V.message)||V||"Chat failed")),Sr(J=>[...J,{id:`local:${es()}`,role:"assistant",content:"(error: failed to generate answer)",ts:mn()}])}finally{ni(!1)}}function gd(y){const k=String(y.id||y.ts||"").trim(),E=String(y.content||"").trim();!k||!E||(As(""),Yn.toggle_tts(k,E))}function jo(y){const k=String(y.id||y.ts||"").trim(),E=Yn.tts_playback;return!k||!E.key||E.key!==k?"idle":E.status}function di(y){if(!Cn.length)return;const k=u.trim(),E=k?`Run ${k}`:"Chat",R=Fw(Cn.map(V=>({role:V.role,content:V.content,ts:V.ts})),{heading:E});if(y==="download"){const V=new Date().toISOString().slice(0,19).replace(/[:T]/g,"-"),J=`abstractobserver-chat-${a_(k||"run")}-${V}.md`;Dw({filename:J,text:R,mime:"text/markdown;charset=utf-8"});return}(async()=>{const V=await Qr(R);ri(V?"copied":"failed"),window.setTimeout(()=>ri("idle"),900)})()}async function el(){const y=typeof(ae==null?void 0:ae.workflow_id)=="string"?String(ae.workflow_id).trim():"";if(!y){Bi([]);return}if(z&&!fo){Hr(""),Us(!0);try{const k=await mt.list_runs({limit:200,workflow_id:y,root_only:!0}),E=Array.isArray(k==null?void 0:k.items)?k.items:[],R=[];for(const D of E){const _e=typeof(D==null?void 0:D.run_id)=="string"?String(D.run_id).trim():"";if(!_e)continue;const Ue=typeof(D==null?void 0:D.ledger_len)=="number"?Number(D.ledger_len):0;R.push({run_id:_e,ledger_len:Number.isFinite(Ue)?Ue:0})}if(!R.length){Bi([]);return}const V=400,J=R.map(D=>({run_id:D.run_id,after:Math.max(0,(D.ledger_len||0)-V)})),ne=await mt.get_ledger_batch({runs:J,limit:V}),ee=[],$e=new Set;for(const D of R){const _e=ne!=null&&ne.runs&&typeof ne.runs=="object"?ne.runs[D.run_id]:null,Ue=Array.isArray(_e==null?void 0:_e.items)?_e.items:[];for(const Qe of Ue){const Je=Qe==null?void 0:Qe.effect;if(!Je||typeof Je!="object"||String(Je.type||"")!=="emit_event")continue;const it=Je.payload;if(!it||typeof it!="object"||String(it.name||"")!=="abstract.chat.thread")continue;const Ze=it.payload;if(!Ze||typeof Ze!="object")continue;const xt=typeof Ze.thread_id=="string"?String(Ze.thread_id).trim():"";if(!xt||$e.has(xt))continue;$e.add(xt);const Yt=typeof Ze.created_at=="string"?String(Ze.created_at):"",cn=typeof Ze.title=="string"?String(Ze.title):"",Ye=typeof Ze.workflow_id=="string"?String(Ze.workflow_id):y,et=typeof Ze.run_id=="string"?String(Ze.run_id):D.run_id,ht=typeof Ze.provider=="string"?String(Ze.provider):"",Ht=typeof Ze.model=="string"?String(Ze.model):"",jt=typeof Ze.message_count=="number"?Number(Ze.message_count):null,bn=Ze.chat_artifact,ti=bn&&typeof bn=="object"&&typeof bn.$artifact=="string"?String(bn.$artifact):"";ti&&ee.push({thread_id:xt,created_at:Yt,title:cn||`Chat ${xt.slice(0,8)}`,run_id:et,workflow_id:Ye,message_count:jt,provider:ht,model:Ht,artifact_id:ti})}}ee.sort((D,_e)=>String(_e.created_at||"").localeCompare(String(D.created_at||""))),Bi(ee)}catch(k){Hr(String((k==null?void 0:k.message)||k||"Failed to load saved discussions"))}finally{Us(!1)}}}async function yd(){const y=u.trim();if(!y){_r("Select a run first.");return}if(!z){_r("Connect to the gateway first.");return}if(Cn.length&&!vs){_r(""),si(!0);try{const k=r.maintenance_ai_provider.trim(),E=r.maintenance_ai_model.trim(),R=await mt.save_chat_thread(y,{provider:k||void 0,model:E||void 0,include_subruns:!0,messages:Cn.map(ne=>({role:ne.role,content:ne.content,ts:ne.ts}))}),V=typeof(R==null?void 0:R.created_at)=="string"?String(R.created_at):mn();bs(V);try{const ne=JSON.stringify(Cn.map(ee=>({role:ee.role,content:ee.content,ts:ee.ts})));wi(ne)}catch{wi("1")}typeof(R==null?void 0:R.thread_id)=="string"&&String(R.thread_id).trim()&&mo(String(R.thread_id).trim());const J=!!(R!=null&&R.duplicate);cr(J?"Already saved":"Saved discussion",2),await el()}catch(k){_r(String((k==null?void 0:k.message)||k||"Failed to save discussion"))}finally{si(!1)}}}async function xd(){const y=String(ii||"").trim();if(!y)return;const k=bi.find(V=>String(V.thread_id||"").trim()===y)||null;if(!k){ue("Saved discussion not found (refresh list).");return}if(!z){ue("Connect to the gateway first.");return}if(ho)return;const E=Cn.length>0,R=(()=>{if(!E)return!1;if(!vi)return!0;try{return JSON.stringify(Cn.map(J=>({role:J.role,content:J.content,ts:J.ts})))!==vi}catch{return!0}})();if(!(E&&R&&!window.confirm("Replace the current chat with the selected saved discussion? Unsaved changes will be lost."))){ue(""),js(!0);try{const J=await(await mt.download_run_artifact_content(k.run_id,k.artifact_id)).text(),ne=JSON.parse(J),ee=Array.isArray(ne==null?void 0:ne.messages)?ne.messages:[],$e=typeof(ne==null?void 0:ne.created_at)=="string"?String(ne.created_at):String(k.created_at||""),D=[];for(let _e=0;_e<ee.length;_e++){const Ue=ee[_e];if(!Ue||typeof Ue!="object")continue;const Qe=String(Ue.role||"").trim()==="assistant"?"assistant":"user",Je=typeof Ue.content=="string"?String(Ue.content):"";if(!Je.trim())continue;const it=typeof Ue.ts=="string"?String(Ue.ts):$e||mn();D.push({id:`thread:${y}:${_e}`,role:Qe,content:Je.trim(),ts:it})}Sr(D),Or(""),en(""),_r(""),bs($e||"");try{const _e=JSON.stringify(D.map(Ue=>({role:Ue.role,content:Ue.content,ts:Ue.ts})));wi(_e)}catch{wi("1")}cr("Loaded discussion",2)}catch(V){ue(String((V==null?void 0:V.message)||V||"Failed to load saved discussion"))}finally{js(!1)}}}async function kc(y){const k=u.trim(),E=String((tn==null?void 0:tn.wait_key)||"").trim();if(!k||!E){ft("No active wait to resume");return}if(String((tn==null?void 0:tn.reason)||"").trim()==="subworkflow"){ft("This run is waiting on a subworkflow; attach to the child run instead of resuming manually.");return}ft(""),rt(!0);try{await mt.submit_command({command_id:es(),run_id:k,type:"resume",payload:{wait_key:E,payload:y||{}},client_id:"web_pwa"}),Wn({ts:mn(),kind:"info",title:"Resume submitted",preview:Ft(`wait_key: ${E}`),data:{wait_key:E,payload:y||{}}}),Lr(E);try{const R=await mt.get_run(k);Kt(R)}catch{}cs(mt,{force:!0}),window.setTimeout(()=>void cs(mt,{force:!0}),900),window.setTimeout(()=>void cs(mt,{force:!0}),2400),Pn.current&&window.clearTimeout(Pn.current),Pn.current=window.setTimeout(()=>{Lr(R=>R===E?"":R)},2e3)}catch(R){ft(String((R==null?void 0:R.message)||R||"resume failed"))}finally{rt(!1)}}async function Ff(y){if(!hc){ft("No worker configured");return}if(!qe){ft(""),rt(!0);try{const k=[];for(const E of y){const R=await hc.call_tool(E);k.push(R)}await kc({mode:"executed",results:k})}finally{rt(!1)}}}const tl=h.useMemo(()=>Af(tn),[tn]),Zs=String((tn==null?void 0:tn.wait_key)||"").trim(),Jr=String((tn==null?void 0:tn.reason)||"").trim(),eo=typeof(tn==null?void 0:tn.until)=="string"?String(tn.until):"",qo=typeof(ae==null?void 0:ae.status)=="string"?String(ae.status):"",Ho=!!(ae!=null&&ae.paused),fi=qo==="completed"||qo==="failed"||qo==="cancelled",Df=Jr==="until"&&!!eo,Il=!fi&&o2(ls)&&(!!Zs||Df),gu=Jr==="user",yu=Jr==="event"?uf(VC(Zs)):"",vd=Jr==="event"&&yu==="abstract.ask",Bf=tl.length>0,wd=Il&&Zs&&(gu||vd||Bf)&&mr!==Zs,Sa=typeof((Au=tn==null?void 0:tn.details)==null?void 0:Au.sub_run_id)=="string"?String(tn.details.sub_run_id):"",Fl={run_id:u.trim(),workflow_id:typeof(ae==null?void 0:ae.workflow_id)=="string"?String(ae.workflow_id):null,status:qo,created_at:typeof(ae==null?void 0:ae.created_at)=="string"?String(ae.created_at):null,updated_at:typeof(ae==null?void 0:ae.updated_at)=="string"?String(ae.updated_at):null,session_id:typeof(ae==null?void 0:ae.session_id)=="string"?String(ae.session_id):null,current_node:typeof(ae==null?void 0:ae.current_node)=="string"?String(ae.current_node):null},xu=ke.slice(-10).map(y=>{var k,E,R,V,J,ne;return{cursor:y.cursor,node_id:String(((k=y.record)==null?void 0:k.node_id)||"").trim(),status:String(((E=y.record)==null?void 0:E.status)||"").trim(),effect_type:String(((V=(R=y.record)==null?void 0:R.effect)==null?void 0:V.type)||"").trim(),ts:String(((J=y.record)==null?void 0:J.ended_at)||((ne=y.record)==null?void 0:ne.started_at)||"").trim(),summary:wv(y.record)}}),bd=yp(tn,tl),Uf=Sv(tn,tl),jd=kv(tn,Jt),Dl=jd.text,Wf=jd.runtime_metadata,vu=String((tn==null?void 0:tn.prompt)||"").trim(),qf=KC(Jt,6),Hf=!!(vu&&bv(vu)),wu=!!(vu&&!Hf),Vf=wu?"Question from workflow":Dl&&Dl!==vu?"Closest prior user request":"Request context",bu=e2(Jt,$),ph=!!$.trim(),mi=ae!=null&&ae.schedule&&typeof ae.schedule=="object"?ae.schedule:null,Bl=typeof(mi==null?void 0:mi.interval)=="string"?String(mi.interval).trim():"",to=typeof(mi==null?void 0:mi.share_context)=="boolean"?!!mi.share_context:null,ju=typeof(mi==null?void 0:mi.repeat_count)=="number"?Number(mi.repeat_count):null,Qs=!!(ae!=null&&ae.is_scheduled)||!!mi||typeof(ae==null?void 0:ae.workflow_id)=="string"&&String(ae.workflow_id).startsWith("scheduled:"),Su=Qs&&!!Bl,Sd=Qs?Ho?"Resume schedule":"Suspend schedule":qo==="running"&&!Ho?"Pause":"Resume",kd=Qs?Ho?"resume":"pause":Sd==="Pause"?"pause":"resume",Nd=Qs?!u.trim()||we||qe||fi:!u.trim()||we||qe||fi||kd==="resume"&&!Ho,Ul=Qs&&!Ho&&!fi&&!we&&!qe&&qo.toLowerCase()==="waiting"&&(String(((Rd=ae==null?void 0:ae.waiting)==null?void 0:Rd.reason)||"").trim().toLowerCase()==="until"||Jr==="until")&&!!String(eo||"").trim(),Ps=(em=ae==null?void 0:ae.limits)==null?void 0:em.tokens,nl=typeof(Ps==null?void 0:Ps.pct)=="number"?Number(Ps.pct):null,Gf=Ps==null?void 0:Ps.estimated_used,Cd=(Ps==null?void 0:Ps.max_input_tokens)??(Ps==null?void 0:Ps.max_tokens),Bt=h.useMemo(()=>{var cn;const y={};for(const Ye of ye||[]){if(!Ye||typeof Ye!="object")continue;const et=String(Ye.name||"").trim();et&&(y[et]=Ye)}const k=Ye=>{const et=y[String(Ye||"").trim()],ht=et&&typeof et=="object"?et.toolset:"";return typeof ht=="string"?ht.trim():""},E=Ye=>Ye==null?"":typeof Ye=="boolean"?Ye?"true":"false":typeof Ye=="number"?String(Ye):typeof Ye=="string"?Ft(Ye,{max_chars:160,max_lines:2}):Ft(hs(Ye,160),{max_chars:160,max_lines:2}),R=(Ye,et)=>{const ht=String(Ye||"").trim(),Ht=et&&typeof et=="object"?et:{},jt=y[ht],bn=jt&&typeof jt=="object"?jt.parameters:null,ti=Object.keys(bn&&typeof bn=="object"?bn:Ht),io=[],_i=new Set;for(const Ur of ti)typeof Ur!="string"||!Ur.trim()||_i.has(Ur)||(_i.add(Ur),Object.prototype.hasOwnProperty.call(Ht,Ur)&&io.push([Ur,Ht[Ur]]));for(const Ur of Object.keys(Ht))_i.has(Ur)||io.push([Ur,Ht[Ur]]);return io},V=(Ye,et)=>{const ht=R(Ye,et);return ht.length?E(ht[0][1]):""},J=(Ye,et)=>{const ht=String(Ye||"").trim()||"tool",jt=R(ht,et).slice(0,2);if(!jt.length)return`${ht}()`;if(jt.length===1)return`${ht}(${E(jt[0][1])})`;const bn=jt.map(([ti,io])=>`${ti}=${E(io)}`).join(", ");return`${ht}(${bn})`},ne=Ye=>{var Lu,Na,Pu;const et={steps:Ye.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},ht=[],Ht=[],jt=[],bn=new Set,ti=[],io=[];let _i=null,Ur=null;const ka=yt=>{if(!yt||typeof yt!="object")return"";const No=yt.prompt;if(typeof No=="string"&&No.trim())return No.trim();const sl=yt.messages;if(Array.isArray(sl))for(let Ri=sl.length-1;Ri>=0;Ri--){const pi=sl[Ri];if(!pi||typeof pi!="object"||String(pi.role||"")!=="user")continue;const Vl=pi.content;if(typeof Vl=="string"&&Vl.trim())return Vl.trim()}return""},rm=yt=>yt==null?"":typeof yt=="string"?Ft(yt,{max_chars:2400,max_lines:32}):Ft(ny(yt),{max_chars:2400,max_lines:32});for(const yt of Ye){const No=typeof(yt==null?void 0:yt.run_id)=="string"?String(yt.run_id):"",sl=typeof(yt==null?void 0:yt.node_id)=="string"?String(yt.node_id):"",Ri=String((yt==null?void 0:yt.ended_at)||(yt==null?void 0:yt.started_at)||"").trim(),pi=On(Ri);pi!==null&&((_i===null||pi<_i)&&(_i=pi),(Ur===null||pi>Ur)&&(Ur=pi)),yt!=null&&yt.error&&(et.errors+=1);const Vl=typeof((Lu=yt==null?void 0:yt.effect)==null?void 0:Lu.type)=="string"?String(yt.effect.type):"";if(Vl==="llm_call"){et.llm_calls+=1;const vr=(Na=yt==null?void 0:yt.effect)==null?void 0:Na.payload,fn=yt!=null&&yt.result&&typeof yt.result=="object"?yt.result.usage||yt.result.token_usage:null;let Is=0,Co=0,Ko=0;fn&&typeof fn=="object"&&(Is=Number(fn.prompt_tokens??fn.input_tokens??0),Co=Number(fn.completion_tokens??fn.output_tokens??0),Ko=Number(fn.total_tokens??Is+Co),Number.isFinite(Is)&&(et.prompt_tokens+=Is),Number.isFinite(Co)&&(et.completion_tokens+=Co),Number.isFinite(Ko)&&(et.total_tokens+=Ko));const Li=vr&&typeof vr=="object"&&typeof vr.provider=="string"?String(vr.provider):"",Ou=vr&&typeof vr=="object"&&typeof vr.model=="string"?String(vr.model):"",Iu=ka(vr),il=yt!=null&&yt.result&&typeof yt.result=="object"&&typeof yt.result.content=="string"?String(yt.result.content):yt!=null&&yt.result&&typeof yt.result=="object"&&typeof yt.result.response=="string"?String(yt.result.response):typeof(yt==null?void 0:yt.result)=="string"?String(yt.result):"",ms=!String(il||"").trim();ms&&(et.llm_missing_responses+=1),io.length<80&&io.push({ts:Ri,run_id:No,node_id:sl,provider:Li,model:Ou,prompt_preview:Ft(Iu,{max_chars:1800,max_lines:24}),response_preview:Ft(String(il||""),{max_chars:1800,max_lines:24}),missing_response:ms,tokens:{prompt:Number.isFinite(Is)?Is:0,completion:Number.isFinite(Co)?Co:0,total:Number.isFinite(Ko)?Ko:0}})}if(Vl!=="tool_calls")continue;et.tool_calls_effects+=1;const Hd=(Pu=yt==null?void 0:yt.effect)==null?void 0:Pu.payload,Vd=Hd&&typeof Hd=="object"?Hd.tool_calls:null,Rc=Array.isArray(Vd)?Vd:[];if(!Rc.length)continue;et.tool_calls+=Rc.length;const Ca=yt!=null&&yt.result&&typeof yt.result=="object"?yt.result.results:null,Gd=Array.isArray(Ca)?Ca:[],Jo=new Map;for(const vr of Gd){if(!vr||typeof vr!="object")continue;const fn=String(vr.call_id||vr.id||"").trim();fn&&!Jo.has(fn)&&Jo.set(fn,vr)}for(let vr=0;vr<Rc.length;vr++){const fn=Rc[vr];if(!fn||typeof fn!="object")continue;const Is=String(fn.name||"").trim();if(!Is)continue;bn.add(Is);const Co=fn.arguments,Ko=String(fn.call_id||fn.id||"").trim(),Li=Ko&&Jo.has(Ko)?Jo.get(Ko):vr<Gd.length?Gd[vr]:null,Ou=Li&&typeof Li=="object"&&typeof Li.success=="boolean"?!!Li.success:null,Iu=Li&&typeof Li=="object"?Li.output:null,il=Li&&typeof Li=="object"?Li.error:null;ti.length<240&&ti.push({ts:Ri,run_id:No,node_id:sl,name:Is,signature:J(Is,Co),success:Ou,output_preview:rm(Iu),error:typeof il=="string"||il?String(il):""});const ms=k(Is),Ea=V(Is,Co);ms==="files"&&Ea?ht.push({tool:Is,file_path:Ea,run_id:No,ts:Ri}):ms==="system"&&Ea?Ht.push({command:Ea,run_id:No,ts:Ri}):ms==="web"&&Ea&&jt.push({tool:Is,value:Ea,run_id:No,ts:Ri})}}return et.unique_tools=bn.size,_i!==null&&(et.started_at=new Date(_i).toISOString()),Ur!==null&&(et.ended_at=new Date(Ur).toISOString()),_i!==null&&Ur!==null&&(et.duration_s=Math.max(0,Math.round((Ur-_i)/1e3))),{stats:et,files:ht,commands:Ht,web:jt,tools_used:Array.from(bn).sort(),tool_calls_detail:ti,llm_calls_detail:io}},ee=[],$e={},D=u.trim(),_e=Ye=>{if(!Ye)return;ee.push(Ye);const ht=(typeof(Ye==null?void 0:Ye.run_id)=="string"?String(Ye.run_id||"").trim():"")||D||"unknown";$e[ht]||($e[ht]=[]),$e[ht].push(Ye)};for(const Ye of ke)Ye&&Ye.record&&_e(Ye.record);for(const Ye of ot)Ye&&Ye.record&&_e(Ye.record);const Ue=ne(ee),Qe={};for(const[Ye,et]of Object.entries($e))Qe[Ye]=ne(et);const Je=Ms.map(Ye=>{const et=String(Ye||"").trim();if(!et)return null;const ht=String(nr.current[et]||"").trim(),Ht=xo.current[et],jt=Ht?String(Ht.parent_node_id||"").trim():"";return{run_id:et,parent_run_id:ht,parent_node_id:jt,digest:Qe[et]||null}}).filter(Boolean);Je.sort((Ye,et)=>Ye.run_id<et.run_id?-1:Ye.run_id>et.run_id?1:0);let it=null;for(const Ye of ke){const et=Ye.record,ht=mm(et);if((ht&&ht.name?uf(ht.name):"")!=="abstract.summary")continue;const jt=ht!=null&&ht.payload&&typeof ht.payload=="object"?ht.payload:{},bn=typeof(jt==null?void 0:jt.text)=="string"?String(jt.text):"";bn.trim()&&(it={cursor:Ye.cursor,ts:String((et==null?void 0:et.ended_at)||(et==null?void 0:et.started_at)||""),text:bn,provider:typeof(jt==null?void 0:jt.provider)=="string"?String(jt.provider):void 0,model:typeof(jt==null?void 0:jt.model)=="string"?String(jt.model):void 0,generated_at:typeof(jt==null?void 0:jt.generated_at)=="string"?String(jt.generated_at):void 0,source:jt==null?void 0:jt.source})}const Ze=it?On(it.generated_at||it.ts):null;let xt=null;for(const Ye of ee){if((typeof((cn=Ye==null?void 0:Ye.effect)==null?void 0:cn.type)=="string"?String(Ye.effect.type):"")==="emit_event")continue;const ht=String((Ye==null?void 0:Ye.ended_at)||(Ye==null?void 0:Ye.started_at)||"").trim(),Ht=On(ht);Ht!==null&&(xt===null||Ht>xt)&&(xt=Ht)}const Yt=Ze!==null&&xt!==null?xt>Ze:!1;return{overall:Ue,per_run:Qe,subruns:Je,latest_summary:it,summary_outdated:Yt}},[ke,ot,u,Ms,ye]);h.useEffect(()=>{zs.current=Ts.trim()},[Ts]),h.useEffect(()=>{const y=u.trim(),k=Sa.trim();if(!(Pe&&Jr==="subworkflow"&&!!k&&k!==y)){Gi.current="",Ts.trim()&&Yi("");return}Gi.current!==k&&(Gi.current=k,zs.current=k,Yi(k))},[Pe,u,Jr,Sa,Ts]),h.useEffect(()=>{Pa({})},[S]);const Ed=h.useMemo(()=>((Array.isArray(B==null?void 0:B.entrypoints)?B==null?void 0:B.entrypoints:[])||[]).map(k=>String((k==null?void 0:k.flow_id)||"").trim()).filter(Boolean),[B]),So=h.useMemo(()=>{const y=String((ae==null?void 0:ae.workflow_id)||"").trim();return Pe&&y.startsWith("scheduled:")?y:""},[Pe,ae==null?void 0:ae.workflow_id]),Yf=h.useMemo(()=>{var ne;if(!Pe||!u.trim()||!So.trim())return Nr;const y=String((ae==null?void 0:ae.status)||"").trim().toLowerCase(),k=String((ae==null?void 0:ae.current_node)||"").trim();if(y!=="waiting"&&y!=="running"||!k)return Nr;const E=Ls(u.trim(),k);if(!E)return Nr;const R=String(Jr||((ne=ae==null?void 0:ae.waiting)==null?void 0:ne.reason)||"").trim().toLowerCase(),V=typeof(ls==null?void 0:ls.node_id)=="string"?String(ls.node_id).trim():"",J=typeof(ls==null?void 0:ls.status)=="string"?String(ls.status).trim().toLowerCase():"";return y==="waiting"&&R==="until"||!Nr.trim()||(J==="waiting"||J==="running")&&!V?E:Nr},[Pe,u,So,ae==null?void 0:ae.status,ae==null?void 0:ae.current_node,(Hl=ae==null?void 0:ae.waiting)==null?void 0:Hl.reason,Jr,Nr,ls]),gh=h.useMemo(()=>{const y={},k=u.trim(),E=(R,V)=>{if(!V)return;const J=typeof(V==null?void 0:V.node_id)=="string"?String(V.node_id).trim():"";if(!J)return;const ne=Ls(R,J);if(!ne)return;const ee=String((V==null?void 0:V.ended_at)||(V==null?void 0:V.started_at)||"").trim(),$e=On(ee);$e!==null&&(y[ne]=Math.max(y[ne]||0,$e))};for(const R of ke)R&&R.record&&E(k,R.record);for(const R of ot)R&&R.record&&E(String(R.run_id||"").trim(),R.record);return y},[ke,ot,u,Ms]);h.useEffect(()=>{var E;if(!Pe||!u.trim()||!So.trim())return;const y=String((ae==null?void 0:ae.current_node)||"").trim();!y||String(((E=ae==null?void 0:ae.waiting)==null?void 0:E.reason)||"").trim()==="subworkflow"||wc(Ls(u.trim(),y))},[Pe,u,So,ae==null?void 0:ae.current_node,(Tc=ae==null?void 0:ae.waiting)==null?void 0:Tc.reason]),h.useEffect(()=>{const y=String((Gn==null?void 0:Gn.flow_id)||"").trim();y&&(po.trim()||oi(y))},[Gn,po]),h.useEffect(()=>{const y=So.trim(),k=S.trim(),E=po.trim();if(y){let V=!1;return ki(!0),ha(""),mt.get_workflow_flow(y).then(J=>{if(V)return;const ne=J==null?void 0:J.flow;Lo(ne&&typeof ne=="object"?ne:null)}).catch(J=>{V||(Lo(null),ha(String((J==null?void 0:J.message)||J||"Failed to load workflow flow")))}).finally(()=>{V||ki(!1)}),()=>{V=!0}}if(!k||!E){Lo(null),ha(""),ki(!1);return}let R=!1;return ki(!0),ha(""),mt.get_bundle_flow(k,E).then(V=>{if(R)return;const J=V==null?void 0:V.flow,ne=J&&typeof J=="object"?J:null;Lo(ne),ne&&Pa(ee=>({...ee,[E]:ne}))}).catch(V=>{R||(Lo(null),ha(String((V==null?void 0:V.message)||V||"Failed to load flow")))}).finally(()=>{R||ki(!1)}),()=>{R=!0}},[So,S,po,mt]),h.useEffect(()=>{const y=S.trim();if(!Hi||!y||!Ro)return;let k=!1;const E=3,R=D=>{const _e=Array.isArray(D==null?void 0:D.nodes)?D.nodes:[],Ue=[];for(const Qe of _e){const Je=Qe!=null&&Qe.data&&typeof Qe.data=="object"?Qe.data:{};if(String((Je==null?void 0:Je.nodeType)||(Qe==null?void 0:Qe.type)||"").trim()!=="subflow")continue;const Ze=(Je==null?void 0:Je.subflowId)||(Je==null?void 0:Je.flowId),xt=typeof Ze=="string"?Ze.trim():"";xt&&Ue.push(xt.includes(":")?xt.split(":",2)[1]:xt)}return Ue},V=new Set,J=new Set,ne=(D,_e)=>{if(!(!D||_e>=E))for(const Ue of R(D)){const Qe=String(Ue||"").trim();if(!Qe||V.has(Qe))continue;V.add(Qe),J.add(Qe);const Je=ma[Qe];Je&&ne(Je,_e+1)}};ne(Ro,0);const ee=Array.from(J).filter(D=>!ma[D]).slice(0,20);return ee.length?((async()=>{for(const D of ee){if(k)return;try{const _e=await mt.get_bundle_flow(y,D),Ue=_e==null?void 0:_e.flow,Qe=Ue&&typeof Ue=="object"?Ue:null;if(!Qe)continue;Pa(Je=>Je[D]?Je:{...Je,[D]:Qe})}catch{}}})(),()=>{k=!0}):void 0},[Hi,S,Ro,ma,mt]);const Os=h.useMemo(()=>{const k=(Array.isArray(B==null?void 0:B.flows)?B==null?void 0:B.flows:[]).map(E=>String(E||"").trim()).filter(Boolean);return k.length?Array.from(new Set(k)).sort():Array.from(new Set(Ed)).sort()},[B,Ed]);h.useEffect(()=>{fi&&Nr.trim()&&(Cr(""),as.current="")},[fi,u,Nr]),h.useEffect(()=>{const y=Ts.trim(),k=u.trim();if(!(Pe&&!!y&&y!==k)){Er.current&&Er.current.abort(),Er.current=null,ci.current=0,Io&&Ba("");return}if(Io===y)return;Er.current&&Er.current.abort();const R=new AbortController;Er.current=R,ci.current=0,Ba(y),Wn({ts:mn(),kind:"info",title:`Following run ${y} (status/events)`});let V=250;return(async()=>{for(;!R.signal.aborted;){try{await mt.stream_ledger(y,{after:ci.current,on_step:ne=>gr(y,ne),signal:R.signal});return}catch(ne){if(R.signal.aborted)break;const ee=String((ne==null?void 0:ne.message)||ne||"stream error");Wn({ts:mn(),kind:"error",title:"Child ledger stream error (will retry)",preview:Ft(ee),data:{child_run_id:y,error:ee}})}if(R.signal.aborted)break;await new Promise(ne=>setTimeout(ne,V)),V=Math.min(5e3,Math.floor(V*1.6))}})(),()=>{R.abort()}},[Pe,Ts,u,mt,Io]),h.useEffect(()=>{if(!Pe||!u.trim())return;let y=!1;const k=async()=>{if(!y&&!Ci.current&&Ms.length){Ci.current=!0;try{const R=Ms.map(ee=>String(ee||"").trim()).filter(Boolean);if(!R.length)return;const V=R.map(ee=>({run_id:ee,after:Number(Oo.current[ee]||0)})),J=await mt.get_ledger_batch({runs:V,limit:200}),ne=J&&typeof J=="object"?J.runs:{};for(const ee of R){if(y)return;const $e=ne&&typeof ne=="object"?ne[ee]:null,D=Array.isArray($e==null?void 0:$e.items)?$e.items:[],_e=typeof($e==null?void 0:$e.next_after)=="number"?$e.next_after:Number(Oo.current[ee]||0),Ue=Number(Oo.current[ee]||0);for(let Qe=0;Qe<D.length;Qe++){const Je=D[Qe];mu(ee,{cursor:Ue+Qe+1,record:Je})}Oo.current[ee]=_e}}catch(R){if(y)return;Wn({ts:mn(),kind:"error",title:"Subrun digest poll failed",preview:Ft(String((R==null?void 0:R.message)||R||""))})}finally{Ci.current=!1}}};k();const E=window.setInterval(()=>void k(),2e3);return()=>{y=!0,window.clearInterval(E),Ci.current=!1}},[Pe,u,Ms,mt]);const us=h.useMemo(()=>Mo?ut.filter(r2):ut,[Mo,ut]),no=h.useMemo(()=>{const y=u.trim(),k=[];for(const E of ke)!E||!E.record||k.push({run_id:y,cursor:E.cursor,record:E.record});for(const E of ot)!E||!E.record||k.push({run_id:String(E.run_id||"").trim(),cursor:E.cursor,record:E.record});return k},[ke,ot,u]),Nc=h.useMemo(()=>{var k,E,R;const y={};for(const V of no){const J=String(V.run_id||((k=V.record)==null?void 0:k.run_id)||"").trim();!J||String(((R=(E=V.record)==null?void 0:E.effect)==null?void 0:R.type)||"").trim()!=="llm_call"||(y[J]=(y[J]||0)+1)}return y},[no]),Xf=h.useMemo(()=>{const y=Ts.trim();if(y)return y;let k="",E=-1;for(const[R,V]of Object.entries(Nc))V>E&&(k=R,E=V);return k||u.trim()},[Nc,Ts,u]),Vo=(To.trim()||Xf).trim(),ku=h.useMemo(()=>{var V;const y=new Set,k=u.trim(),E=Ts.trim();k&&y.add(k),E&&y.add(E);for(const J of Ms){const ne=String(J||"").trim();ne&&y.add(ne)}for(const J of no){const ne=String(J.run_id||((V=J.record)==null?void 0:V.run_id)||"").trim();ne&&y.add(ne)}const R=Array.from(y);return R.sort((J,ne)=>k&&J===k&&ne!==k?-1:k&&ne===k&&J!==k?1:E&&J===E&&ne!==E?-1:E&&ne===E&&J!==E?1:J<ne?-1:J>ne?1:0),R},[u,Ts,Ms,no]),Cc=h.useMemo(()=>kw(no,{run_id:Vo}),[no,Vo]),ds=h.useMemo(()=>{const y=u.trim();return y&&(L.find(k=>String(k.run_id||"").trim()===y)||re.find(k=>String(k.run_id||"").trim()===y))||null},[L,re,u]),Wl=String((ae==null?void 0:ae.status)||(ds==null?void 0:ds.status)||"").trim(),Jf=String(Jr||((Mu=ae==null?void 0:ae.waiting)==null?void 0:Mu.reason)||(ds==null?void 0:ds.waiting_reason)||"").trim().toLowerCase(),$d=!!(ae!=null&&ae.is_scheduled||ds!=null&&ds.is_scheduled),Ad=!!(ae!=null&&ae.paused||ds!=null&&ds.paused),Nu=$d&&Wl.toLowerCase()==="waiting",Md=Nu&&Jf==="until",Cu=On(eo),ql=Md&&Cu!==null?oy(Cu-Date.now()):"",Kf=$d&&Ad?"Suspended":Nu?"Scheduled":Wl;async function Td(){if(z){El(!0),Ga("");try{const y=A,k=y==="session"?String(Y||Fr||F||"").trim():"",E=y==="run"?String(Sn||u||"").trim():"",R=h2(Ge),V=je.length?je.join(","):"",J=_2(Vn),ne=Math.max(0,Rs)*Em,ee=await mt.search_artifacts({scope:y,session_id:k||void 0,run_id:E||void 0,query:Ei||void 0,artifact_kind:V||void 0,created_after:R||void 0,include_stats:!0,limit:Em,offset:ne,order_by:J.order_by,order:J.order}),$e=[],D=new Set;for(const it of Array.isArray(ee==null?void 0:ee.items)?ee.items:[]){const Ze=$v(it,"search");!Ze||D.has(Ze.artifact_id)||(D.add(Ze.artifact_id),$e.push(Ze))}const _e=ee!=null&&ee.stats&&typeof ee.stats=="object"?ee.stats:{},Ue=Number((_e==null?void 0:_e.total)??(ee==null?void 0:ee.total)??$e.length),Qe=ly(ee);let Je=Qe;if(je.length)try{const it=await mt.search_artifacts({scope:y,session_id:k||void 0,run_id:E||void 0,query:Ei||void 0,created_after:R||void 0,include_stats:!0,limit:1,offset:0,order_by:J.order_by,order:J.order});Je=ly(it)}catch{Je=Qe}eu(Number.isFinite(Ue)?Math.max(0,Ue):$e.length),Ha(Number((_e==null?void 0:_e.total_bytes)??(_e==null?void 0:_e.byte_total)??0)||0),Nl(Qe),ga(Je),Qc($e),Yr(it=>{var Ze;return it&&$e.some(xt=>xt.artifact_id===it)?it:((Ze=$e[0])==null?void 0:Ze.artifact_id)||""})}catch(y){Ga(String((y==null?void 0:y.message)||y||"Failed to load artifacts")),Qc([]),eu(0),Ha(0),Nl({}),ga({}),Yr("")}finally{El(!1)}}}async function Ec(){if(z){wo(!0),su("");try{const y=await mt.audit_log_tail({max_bytes:16e4}),k=typeof(y==null?void 0:y.bytes)=="number"?Number(y.bytes):0,E=!!(y!=null&&y.truncated);ad(String((y==null?void 0:y.content)||"")),dc(`${k.toLocaleString()} bytes${E?" (tail)":""}`)}catch(y){su(String((y==null?void 0:y.message)||y||"Failed to load audit log")),ad(""),dc("")}finally{wo(!1)}}}async function zd(y){if(!z)return;const k=String(y||Gr||Sn||u||"").trim();if(!k){Ll([]),Xs(""),Zi("Select a run in Activity or Artifacts to load its runtime ledger.");return}va(!0),Zi("");try{const E=await mt.get_ledger(k,{after:0,limit:2e3}),R=Array.isArray(E.items)?E.items:[];Ll(R.map((J,ne)=>({cursor:ne+1,record:J})));const V=typeof E.next_after=="number"?Number(E.next_after):R.length;Xs(`${R.length.toLocaleString()} record${R.length===1?"":"s"}${V>=2e3?" (first 2,000)":""}`)}catch(E){Zi(String((E==null?void 0:E.message)||E||"Failed to load run ledger")),Ll([]),Xs("")}finally{va(!1)}}h.useEffect(()=>{z&&e==="runtime"&&Td()},[z,e,A,Y,Sn,Ei,je,Ge,Vn,Rs]),h.useEffect(()=>{z&&(ru||Tl||(e==="runtime"||e==="observe"&&$n==="providers")&&Ec())},[z,e,$n]),h.useEffect(()=>{if(!z||e!=="runtime"||Fo!=="logs"||mc!=="run_ledger"&&mc!=="provider_calls")return;const y=String(Gr||Sn||u||"").trim();y&&zd(y)},[z,e,Fo,mc,Gr,Sn,u]);const ro=h.useMemo(()=>{const y=new Map;for(const k of[...re,...L]){const E=String(k.run_id||"").trim();E&&y.set(E,k)}for(const k of Ms){const E=String(k||"").trim();!E||y.has(E)||y.set(E,{run_id:E,workflow_id:null,status:"",created_at:null,updated_at:null,ledger_len:null,parent_run_id:nr.current[E]||null,session_id:Fr||null})}return u.trim()&&!y.has(u.trim())&&y.set(u.trim(),{run_id:u.trim(),workflow_id:typeof(ae==null?void 0:ae.workflow_id)=="string"?String(ae.workflow_id):null,status:typeof(ae==null?void 0:ae.status)=="string"?String(ae.status):"",created_at:typeof(ae==null?void 0:ae.created_at)=="string"?String(ae.created_at):null,updated_at:typeof(ae==null?void 0:ae.updated_at)=="string"?String(ae.updated_at):null,ledger_len:ke.length||null,parent_run_id:typeof(ae==null?void 0:ae.parent_run_id)=="string"?String(ae.parent_run_id):null,session_id:typeof(ae==null?void 0:ae.session_id)=="string"?String(ae.session_id):Fr||null}),Array.from(y.values()).sort((k,E)=>{const R=On(k.updated_at||k.created_at)??0;return(On(E.updated_at||E.created_at)??0)-R})},[L,re,u,ae,ke.length,Ms,Fr]),Go=h.useMemo(()=>{const y=wn.trim().toLowerCase(),k=ro,E={},R={};for(const D of k){const _e=String(D.run_id||"").trim();if(!_e)continue;R[_e]=D;const Ue=String(D.parent_run_id||nr.current[_e]||"").trim();Ue&&(E[Ue]||(E[Ue]=[]),E[Ue].push(D))}const V=D=>{const _e=String(D.status||"").trim().toLowerCase();return zn==="all"?!0:zn==="active"?ed(_e):zn==="waiting"?_e==="waiting":zn==="terminal"?Vc(_e):zn==="failed"?_e==="failed":!0},J=D=>{if(!y)return!0;const _e=String(D.workflow_id||D.schedule_target_workflow_id||"").trim(),Ue=_e?Js[_e]||_e:"";return[D.run_id,_e,Ue,D.session_id,D.status].join(" ").toLowerCase().includes(y)},ne=new Set;for(const D of k){const _e=String(D.run_id||"").trim();if(!_e)continue;const Ue=String(D.parent_run_id||nr.current[_e]||"").trim();(!Ue||!R[Ue])&&ne.add(_e)}const ee={},$e=D=>{if(Vr==="workflow"){const Ue=String(D.schedule_target_workflow_id||D.workflow_id||"").trim()||"(unknown workflow)";return{key:Ue,label:Js[Ue]||Ue}}if(Vr==="session"){const Ue=String(D.session_id||"").trim()||"(no session)";return{key:Ue,label:Ue}}const _e=String(D.status||"").trim().toLowerCase()||"unknown";return ed(_e)?{key:"active",label:"Active"}:_e==="failed"?{key:"failed",label:"Failed"}:Vc(_e)?{key:"finished",label:"Finished"}:{key:_e,label:_e}};for(const D of ne){const _e=R[D];if(!_e)continue;const Ue=[...E[D]||[]].sort((it,Ze)=>{const xt=On(it.updated_at||it.created_at)??0;return(On(Ze.updated_at||Ze.created_at)??0)-xt}),Qe=Ue.some(it=>V(it)&&J(it));if(!(V(_e)&&J(_e))&&!Qe)continue;const Je=$e(_e);ee[Je.key]||(ee[Je.key]={key:Je.key,label:Je.label,rows:[]}),ee[Je.key].rows.push({run:_e,children:Ue})}return Object.values(ee).sort((D,_e)=>{const Ue={active:0,waiting:1,failed:2,finished:3},Qe=Ue[D.key]??10,Je=Ue[_e.key]??10;return Qe!==Je?Qe-Je:D.label.localeCompare(_e.label)})},[ro,wn,zn,Vr,Js]),Zf=h.useMemo(()=>Cv(no),[no]),Qf=h.useMemo(()=>{const y=[...no];return y.sort((k,E)=>{var J,ne,ee,$e;const R=On(((J=k.record)==null?void 0:J.ended_at)||((ne=k.record)==null?void 0:ne.started_at))??0,V=On(((ee=E.record)==null?void 0:ee.ended_at)||(($e=E.record)==null?void 0:$e.started_at))??0;return R-V}),y.slice(-240)},[no]),Yo=h.useMemo(()=>{const y={};for(const k of ro){const E=String(k.run_id||"").trim();E&&(y[E]=k)}return y},[ro]),Eu=String(Gr||Sn||u||"").trim(),$u=Eu&&Yo[Eu]||null,$c=String(Y||($u==null?void 0:$u.session_id)||Fr||F||"").trim(),fs=h.useMemo(()=>cc.map(y=>Jm(y,Yo,Js)),[cc,Yo,Js]);h.useEffect(()=>{yr(0)},[Ei,je,Ge,Sn,Vn,lt,A,Y]);const yh=Math.max(1,Math.ceil(pa/Em)),Ac=Math.min(Math.max(0,Rs),yh-1);h.useEffect(()=>{Rs!==Ac&&yr(Ac)},[Rs,Ac]);const ko=h.useMemo(()=>fs,[fs,Ac]),ks=h.useMemo(()=>{const y={};for(const k of ko){const E=lt==="type"?Km(k,Yo,Js):f2(k,lt);y[E]||(y[E]=[]),y[E].push(k)}return Object.entries(y).map(([k,E])=>({key:k,items:E})).sort((k,E)=>{var R,V;if(lt==="time"){const J=On((R=k.items[0])==null?void 0:R.created_at)??0,ne=On((V=E.items[0])==null?void 0:V.created_at)??0;if(J!==ne)return ne-J}return k.key.localeCompare(E.key)})},[ko,lt,Yo,Js]),Mc=h.useMemo(()=>{const y=Vs.trim();return y?ko.find(k=>k.artifact_id===y)||ko[0]||null:ko[0]||null},[ko,Vs]);h.useEffect(()=>{e!=="runtime"||Fo!=="artifacts"||vc(Mc)},[e,Fo,Mc==null?void 0:Mc.artifact_id]),h.useEffect(()=>()=>{In.url&&URL.revokeObjectURL(In.url)},[In.url]);const wt=h.useMemo(()=>ro.filter(y=>ed(y.status)),[ro]);return n.jsxs("div",{className:"app-shell",children:[n.jsxs("div",{className:"app-header",children:[n.jsxs("div",{className:"logo",title:"AbstractObserver (Web/PWA)",children:[n.jsx("span",{className:"logo-icon","aria-hidden":"true",children:n.jsxs("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[n.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"}),n.jsx("circle",{cx:"12",cy:"12",r:"4.7",fill:"currentColor",opacity:"0.95"}),n.jsx("circle",{cx:"10.3",cy:"10.7",r:"1.6",fill:"#ffffff",opacity:"0.18"}),n.jsx("circle",{cx:"19",cy:"13.6",r:"1.2",fill:"currentColor"})]})}),n.jsx("span",{className:"logo_name",children:"AbstractObserver"})]}),n.jsxs("div",{className:"app_nav",children:[n.jsx("button",{className:`nav_tab ${e==="observe"?"active":""}`,onClick:()=>t("observe"),children:"Observe"}),n.jsx("button",{className:`nav_tab ${e==="runtime"?"active":""}`,onClick:()=>t("runtime"),children:"Runtime"}),n.jsx("button",{className:`nav_tab ${e==="launch"?"active":""}`,onClick:()=>t("launch"),children:"Launch"}),n.jsx("button",{className:`nav_tab ${e==="mindmap"?"active":""}`,onClick:()=>t("mindmap"),children:"Mindmap"}),Kl?n.jsx("button",{className:`nav_tab ${e==="backlog"?"active":""}`,onClick:()=>t("backlog"),children:"Backlog"}):null,n.jsx("button",{className:`nav_tab ${e==="inbox"?"active":""}`,onClick:()=>t("inbox"),children:"Inbox"})]}),n.jsxs("div",{className:"status_pills",children:[a?n.jsx("monitor-gpu",{ref:c,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,Kl?n.jsx("button",{className:`header_icon_btn ${e==="processes"?"active":""}`,title:"Processes","aria-label":"Processes",type:"button",onClick:()=>t("processes"),children:n.jsx(hn,{name:"terminal",size:16})}):null,n.jsx("button",{className:`header_icon_btn ${e==="settings"?"active":""}`,title:"Settings","aria-label":"Settings",type:"button",onClick:()=>t("settings"),children:n.jsx(hn,{name:"settings",size:16})}),n.jsx("span",{className:`gateway_led ${z?"ok":ce?"warn":"err"}`,title:`Gateway: ${z?"connected":ce?"connecting":"disconnected"}`,"aria-hidden":"true"})]})]}),n.jsxs("div",{className:"app-body",children:[e==="settings"?n.jsx("div",{className:"page page_scroll",children:n.jsx("div",{className:"page_inner constrained",children:n.jsxs("div",{className:"card",children:[n.jsx("div",{className:"title",children:n.jsx("h1",{children:"Settings"})}),n.jsx("div",{className:"section_title",children:"Appearance"}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Theme"}),n.jsx(Zw,{value:r.theme,onChange:y=>o(k=>({...k,theme:y}))}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Stored locally in this browser (no server round-trip)."})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Font size"}),n.jsx(Qw,{value:r.font_scale,onChange:y=>o(k=>({...k,font_scale:y}))})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Header size"}),n.jsx(eb,{value:r.header_density,onChange:y=>o(k=>({...k,header_density:y}))})]}),n.jsx("div",{className:"section_title",children:"Gateway"}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Gateway URL"}),n.jsxs("div",{className:"field_inline",children:[n.jsx("input",{value:r.gateway_url,onChange:y=>o(k=>({...k,gateway_url:y.target.value})),placeholder:F_}),n.jsx("button",{className:"btn",onClick:z?Uo:bo,disabled:ce,children:ce?"Connecting…":z?"Disconnect":"Connect"})]}),Re?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:Re}):null,n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:"Defaults to the local Gateway. Browser-session sign-in uses this URL through the Observer connection proxy; direct local auth calls it from this page."})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Auto-connect to gateway on load"}),n.jsxs("select",{value:r.auto_connect_gateway?"on":"off",onChange:y=>o(k=>({...k,auto_connect_gateway:y.target.value==="on"})),children:[n.jsx("option",{value:"on",children:"On"}),n.jsx("option",{value:"off",children:"Off"})]})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Gateway user"}),n.jsx("input",{value:r.gateway_user,onChange:y=>o(k=>({...k,gateway_user:y.target.value,gateway_auth_mode:"session"})),placeholder:"user id for hosted sign-in"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Gateway token"}),n.jsx("input",{type:"password",value:r.auth_token,onChange:y=>o(k=>({...k,auth_token:y.target.value})),placeholder:r.gateway_user.trim()?"user token for sign-in":"optional direct dev token"}),n.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."})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Remember browser session"}),n.jsxs("select",{value:r.gateway_remember?"on":"off",onChange:y=>o(k=>({...k,gateway_remember:y.target.value==="on"})),children:[n.jsx("option",{value:"on",children:"On"}),n.jsx("option",{value:"off",children:"Off"})]})]}),n.jsx("div",{className:"section_title",children:"Maintenance AI"}),n.jsx(Jw,{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:Pf,models:pc.models,loadingProviders:ce,loadingModels:fd,modelError:wa?pc.error:"",allowCustomProvider:!0,allowCustomModel:!0,allowGatewayDefault:!0,gatewayDefaultLabel:"(gateway default)",selectClassName:"mono",onChange:y=>o(k=>({...k,maintenance_ai_provider:y.provider,maintenance_ai_model:y.model}))}),n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:["Used for in-editor maintenance chat",Kl?" and backlog AI assist":"",". Defaults follow `ABSTRACTGATEWAY_PROVIDER` / `ABSTRACTGATEWAY_MODEL`."]}),Kl?n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Backlog advisor agent (bundle id; blank = basic-agent)"}),n.jsx("input",{className:"mono",value:r.backlog_advisor_agent,onChange:y=>o(k=>({...k,backlog_advisor_agent:String(y.target.value||"")})),placeholder:"basic-agent"}),n.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,n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Remote Tool Worker (MCP)"}),n.jsxs("details",{children:[n.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Advanced"}),n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Tool worker endpoint (MCP HTTP)"}),n.jsx("input",{className:"mono",value:r.worker_url,onChange:y=>o(k=>({...k,worker_url:y.target.value})),placeholder:"https://your-mcp-worker-endpoint"})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Tool worker token (Authorization: Bearer …)"}),n.jsx("input",{className:"mono",type:"password",value:r.worker_token,onChange:y=>o(k=>({...k,worker_token:y.target.value})),placeholder:"(optional)"})]}),n.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"?n.jsx("div",{className:"page page_scroll",children:n.jsx("div",{className:"page_inner constrained",children:n.jsxs("div",{className:"card",children:[n.jsx("div",{className:"title",children:n.jsx("h1",{children:"Launch"})}),z?null:n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(245, 158, 11, 0.35)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"gateway"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsxs("div",{className:"body mono",children:["Not connected. Open"," ",n.jsx("button",{className:"btn",onClick:()=>t("settings"),children:"Settings"})," ","to connect to a gateway."]})]}),n.jsxs("div",{className:"launch_workflow_bar",children:[n.jsxs("select",{className:"launch_workflow_select",value:Lf,onChange:async y=>{const k=String(y.target.value||"").trim();if(!k)return;const E=i_(k);E&&(j(E.bundle_id),b(E.flow_id),oi(E.flow_id),await uu(E.bundle_id))},disabled:ce||!G.length,children:[n.jsx("option",{value:"",children:G.length?"(select workflow)":"(connect in Settings)"}),G.map(y=>n.jsx("option",{value:y.workflow_id,children:y.label},y.workflow_id))]}),n.jsx("input",{ref:Dn,type:"file",accept:".flow",style:{display:"none"},onChange:y=>{const k=y.target.files&&y.target.files.length?y.target.files[0]:null;k&&Of(k)}}),n.jsx("button",{type:"button",className:"btn launch_btn_upload",onClick:()=>{var y;return(y=Dn.current)==null?void 0:y.click()},disabled:!z||ce||bt||we||qe,title:"Upload a .flow bundle",children:bt?"…":"Upload"}),n.jsxs("button",{type:"button",className:"btn launch_btn_reload",onClick:()=>void md(),disabled:!z||ce||se||we||qe,title:"Reload picks up server-side edits",children:[n.jsx(hn,{name:"refresh",size:14}),se?"…":"Reload"]})]}),n.jsxs("div",{className:"field",children:[Gn!=null&&Gn.description?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"6px"},children:String(Gn.description)}):null,U?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"Loading workflow…"}):null,K?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)"},children:K}):null]}),n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Inputs"}),!S.trim()||!v.trim()?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Select a workflow above to configure inputs."}):Jt===null?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginTop:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"input error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:"Invalid input JSON. Fix it in Advanced JSON."})]}):_c?n.jsx("div",{className:"launch_inputs",children:(()=>{const y=we||qe,k=[],E=[];for(const J of Ja){if(!J||typeof J!="object")continue;const ne=String(J.id||"").trim();if(!ne)continue;const ee=String(J.type||"").trim().toLowerCase();ee==="tools"||ee==="array"||Pl(ee)||ne==="prompt"||ne==="system"?k.push(J):E.push(J)}const R=J=>String(J||"").trim().replace(/_/g," ").replace(/\b\w/g,ne=>ne.toUpperCase()),V=(J,ne)=>{const ee=String(J.id||"").trim();if(!ee)return null;const $e=String(J.label||ee).trim()||ee,D=$e===ee?R(ee):$e,_e=String(J.type||"").trim().toLowerCase(),Ue=Object.prototype.hasOwnProperty.call(J,"default"),Qe=Ue?J.default:void 0,Je=Ue?hs(Qe,80):"",it=Jt==null?void 0:Jt[ee],Ze=Ue?`${Je}`:"";if(_e==="tools"){const cn=Array.isArray(it)?it.map(ht=>String(ht||"").trim()).filter(Boolean):[],Ye=Array.isArray(Qe)?Qe.map(ht=>String(ht||"").trim()).filter(Boolean):[],et=Array.from(new Set([...cu,...cn,...Ye])).sort();return n.jsxs("div",{className:"launch_field_wide",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsx(Iy,{options:et,value:cn,disabled:y,placeholder:"(no tools selected)",onChange:ht=>xr(ee,ht)})]},ee)}if(_e==="provider"||_e==="provider_text"){const cn=typeof it=="string"?String(it):"";return n.jsxs("div",{className:ne||"launch_field",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsxs("select",{value:cn,onChange:Ye=>xr(ee,Ye.target.value),disabled:y,children:[n.jsx("option",{value:"",children:Ze||"(select)"}),Ol.map(Ye=>n.jsx("option",{value:Ye,children:Ye},Ye))]})]},ee)}if(_e==="model"||_e==="model_text"){const cn=typeof it=="string"?String(it):"",Ye=String((Jt==null?void 0:Jt.provider)||"").trim(),et=Ye?We[Ye]:void 0,ht=et&&Array.isArray(et.models)?et.models.map(Ht=>String(Ht||"").trim()).filter(Boolean):[];return n.jsxs("div",{className:ne||"launch_field",children:[n.jsx("label",{className:"launch_label",children:D}),ht.length?n.jsxs("select",{value:cn,onChange:Ht=>xr(ee,Ht.target.value),disabled:y,children:[n.jsx("option",{value:"",children:Ze||"(select)"}),ht.map(Ht=>n.jsx("option",{value:Ht,children:Ht},Ht))]}):n.jsx("input",{className:"mono",value:cn,onChange:Ht=>xr(ee,Ht.target.value),placeholder:Ze||"model id",disabled:y})]},ee)}if(_e==="boolean"){const cn=typeof it=="boolean"?it?"true":"false":"";return n.jsxs("div",{className:ne||"launch_field",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsxs("select",{value:cn,onChange:Ye=>{const et=String(Ye.target.value||"").trim();et?xr(ee,et==="true"):xr(ee,void 0)},disabled:y,children:[n.jsx("option",{value:"",children:Ze||"(default)"}),n.jsx("option",{value:"true",children:"Yes"}),n.jsx("option",{value:"false",children:"No"})]})]},ee)}if(_e==="number"){const cn=typeof it=="number"&&Number.isFinite(it)?String(it):"";return n.jsxs("div",{className:ne||"launch_field",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsx("input",{type:"number",value:cn,onChange:Ye=>{const et=String(Ye.target.value||"").trim();if(!et){xr(ee,void 0);return}const ht=Number(et);Number.isFinite(ht)&&xr(ee,ht)},placeholder:Ze,disabled:y})]},ee)}if(_e==="array"){const cn=Array.isArray(it)?it.map(Ye=>String(Ye||"").trim()).filter(Boolean).join(`
|
|
156
|
-
`):"";return n.jsxs("div",{className:"launch_field_wide",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsx("textarea",{className:"mono",value:cn,onChange:Ye=>{const et=String(Ye.target.value||"").split(/\r?\n/g).map(ht=>String(ht||"").trim()).filter(Boolean);xr(ee,et.length?et:void 0)},placeholder:Ze||"(one item per line)",rows:2,disabled:y})]},ee)}if(Pl(_e)){const cn=typeof ln[ee]=="string"?ln[ee]:"",Ye=String(Tn[ee]||"").trim();return n.jsxs("div",{className:"launch_field_wide",children:[n.jsxs("label",{className:"launch_label",children:[D," ",n.jsx("span",{className:"launch_label_type",children:_e})]}),n.jsx("textarea",{className:"mono",value:cn,onChange:et=>{const ht=String(et.target.value??"");yn(jt=>({...jt,[ee]:ht}));const Ht=ht.trim();if(!Ht){xn(jt=>{const bn={...jt};return delete bn[ee],bn}),xr(ee,void 0);return}try{const jt=JSON.parse(Ht);xn(bn=>{const ti={...bn};return delete ti[ee],ti}),xr(ee,jt)}catch(jt){xn(bn=>({...bn,[ee]:String((jt==null?void 0:jt.message)||jt||"Invalid JSON")}))}},placeholder:Ze||"{...}",rows:3,disabled:y}),Ye?n.jsx("div",{className:"launch_field_error",children:Ye}):null]},ee)}const xt=typeof it=="string"?String(it):"";return ee==="prompt"||ee==="system"?n.jsxs("div",{className:"launch_field_wide",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsx("textarea",{className:"mono",value:xt,onChange:cn=>xr(ee,cn.target.value),placeholder:Ze||(ee==="prompt"?"What should the agent do?":"System instructions (optional)"),rows:3,disabled:y})]},ee):n.jsxs("div",{className:ne||"launch_field",children:[n.jsx("label",{className:"launch_label",children:D}),n.jsx("input",{className:"mono",value:xt,onChange:cn=>xr(ee,cn.target.value),placeholder:Ze,disabled:y})]},ee)};return k.sort((J,ne)=>{const ee={system:0,prompt:1,tools:2};return(ee[String(J.id||"")]??10)-(ee[String(ne.id||"")]??10)}),n.jsxs(n.Fragment,{children:[k.map(J=>V(J)),E.length>0?n.jsx("div",{className:"launch_grid",children:E.map(J=>V(J,"launch_grid_cell"))}):null]})})()}):n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Prompt (common)"}),n.jsx("textarea",{className:"mono",value:ud,onChange:y=>xr("prompt",y.target.value),placeholder:"What do you want the workflow/agent to do?",rows:3,disabled:we||qe})]}),n.jsxs("div",{className:"row",children:[n.jsx("div",{className:"col",children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Provider (common)"}),n.jsx("input",{className:"mono",value:au,onChange:y=>xr("provider",y.target.value),placeholder:"lmstudio / ollama / openai / ...",disabled:we||qe})]})}),n.jsx("div",{className:"col",children:n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Model (common)"}),n.jsx("input",{className:"mono",value:lu,onChange:y=>xr("model",y.target.value),placeholder:"qwen/qwen3-next-80b / gpt-4.1 / ...",disabled:we||qe})]})})]})]}),n.jsxs("details",{style:{marginTop:"10px"},children:[n.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Workspace"}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginTop:"8px"},children:"Controls what the agent can access via filesystem tools."}),n.jsxs("div",{className:"launch_grid",style:{marginTop:"8px"},children:[n.jsxs("div",{className:"launch_grid_cell",style:{gridColumn:"1 / -1"},children:[n.jsx("label",{className:"launch_label",children:"Workspace Root"}),n.jsx("input",{className:"mono",value:Rf,onChange:y=>xr("workspace_root",y.target.value),placeholder:"/path/to/workspace",disabled:we||qe}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Empty = gateway default (isolated per-run workspace)"})]}),n.jsxs("div",{className:"launch_grid_cell",children:[n.jsx("label",{className:"launch_label",children:"Access Mode"}),n.jsxs("select",{className:"mono",value:(Ka||"workspace_only").trim()||"workspace_only",onChange:y=>xr("workspace_access_mode",y.target.value),disabled:we||qe,children:[n.jsx("option",{value:"workspace_only",children:"workspace_only"}),n.jsx("option",{value:"workspace_or_allowed",children:"workspace_or_allowed"}),n.jsx("option",{value:"all_except_ignored",children:"all_except_ignored"})]}),n.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."})]})]}),(Ka||"").trim()==="workspace_or_allowed"?n.jsxs("div",{className:"field",style:{marginTop:"8px"},children:[n.jsx("label",{className:"launch_label",children:"Allowed Paths"}),n.jsx("textarea",{className:"mono",rows:3,value:dd,onChange:y=>xr("workspace_allowed_paths",y.target.value),placeholder:`/path/to/project
|
|
157
|
-
/path/to/workspace`,disabled:we||qe,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off"}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Newline-separated directories (absolute or relative to workspace_root)"})]}):null,n.jsxs("div",{className:"field",style:{marginTop:"8px"},children:[n.jsx("label",{className:"launch_label",children:"Ignored Paths"}),n.jsx("textarea",{className:"mono",rows:3,value:hh,onChange:y=>xr("workspace_ignored_paths",y.target.value),placeholder:`node_modules
|
|
158
|
-
runtime
|
|
159
|
-
secret`,disabled:we||qe,spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",autoComplete:"off"}),n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)"},children:"Newline-separated paths to block (absolute or relative to workspace_root)"})]})]}),n.jsx("div",{className:"section_divider"}),n.jsx("div",{className:"section_title",children:"Schedule"}),Ne?n.jsxs("div",{className:"observe_context_card error",style:{marginTop:"6px"},children:[n.jsx("span",{className:"chip mono danger",children:"error"}),n.jsx("span",{className:"mono",children:Ne})]}):null,n.jsxs("div",{className:"sched_grid",children:[n.jsxs("div",{className:"sched_cell",children:[n.jsx("label",{className:"launch_label",children:"Start"}),n.jsxs("div",{className:"sched_radio_row",children:[n.jsxs("label",{className:"sched_radio",children:[n.jsx("input",{type:"radio",name:"schedule_start",checked:ir==="now",onChange:()=>Qt("now")}),n.jsx("span",{children:"Now"})]}),n.jsxs("label",{className:"sched_radio",children:[n.jsx("input",{type:"radio",name:"schedule_start",checked:ir==="at",onChange:()=>Qt("at")}),n.jsx("span",{children:"Scheduled"})]})]}),ir==="at"?n.jsx("input",{type:"datetime-local",value:Mr,onChange:y=>ps(y.target.value),style:{marginTop:"6px"}}):null]}),n.jsxs("div",{className:"sched_cell",children:[n.jsx("label",{className:"launch_label",children:"Cadence"}),n.jsxs("select",{value:Rn,onChange:y=>he(y.target.value),children:[n.jsx("option",{value:"once",children:"Run once"}),n.jsx("option",{value:"forever",children:"Repeat forever"}),n.jsx("option",{value:"count",children:"Repeat N times"}),n.jsx("option",{value:"until",children:"Repeat until date"})]})]}),Rn!=="once"?n.jsxs("div",{className:"sched_cell",children:[n.jsx("label",{className:"launch_label",children:"Every"}),n.jsxs("div",{className:"sched_inline",children:[n.jsx("input",{type:"number",min:1,value:String(Ce),onChange:y=>gt(Math.max(1,parseInt(y.target.value||"1",10)||1)),style:{width:"70px"}}),n.jsxs("select",{value:dt,onChange:y=>kt(y.target.value),children:[n.jsx("option",{value:"minutes",children:"min"}),n.jsx("option",{value:"hours",children:"hours"}),n.jsx("option",{value:"days",children:"days"}),n.jsx("option",{value:"weeks",children:"weeks"}),n.jsx("option",{value:"months",children:"months"})]})]})]}):null,Rn==="count"?n.jsxs("div",{className:"sched_cell",children:[n.jsx("label",{className:"launch_label",children:"Total runs"}),n.jsx("input",{type:"number",min:1,value:String(Tt),onChange:y=>qt(Math.max(1,parseInt(y.target.value||"1",10)||1)),style:{width:"100px"}})]}):null,Rn==="until"?n.jsxs("div",{className:"sched_cell",children:[n.jsx("label",{className:"launch_label",children:"End date"}),n.jsxs("div",{className:"sched_inline",children:[n.jsx("input",{type:"date",value:Dt,onChange:y=>_n(y.target.value)}),n.jsx("input",{type:"time",value:Ot,onChange:y=>vn(y.target.value)})]})]}):null]}),n.jsxs("label",{className:"launch_checkbox",style:{marginTop:"8px"},children:[n.jsx("input",{type:"checkbox",checked:dn,onChange:y=>nn(!!y.target.checked)}),n.jsxs("span",{children:["Share context across executions ",n.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-xxs)",fontWeight:400},children:"(when disabled, each run gets its own isolated session)"})]})]}),n.jsx("div",{className:"section_divider"}),un?n.jsxs("div",{className:"observe_context_card error",style:{marginBottom:"10px"},children:[n.jsx("span",{className:"chip mono danger",children:"error"}),n.jsx("span",{className:"mono",children:un})]}):null,n.jsx("div",{className:"launch_actions_bar",children:n.jsx("button",{className:"launch_submit_btn",onClick:()=>void Qa(),disabled:we||qe||ce||U||Ee||!z||!S.trim()||!v.trim()||Jt===null,children:ir!=="now"||Rn!=="once"?"Launch (scheduled)":"Launch now"})})]})})}):null,Kl&&e==="backlog"?n.jsx(Jb,{gateway:mt,gateway_connected:z,maintenance_ai_provider:r.maintenance_ai_provider,maintenance_ai_model:r.maintenance_ai_model,backlog_advisor_agent:r.backlog_advisor_agent,voice_session_id:F}):null,e==="inbox"?n.jsx(NC,{gateway:mt,gateway_connected:z,enable_triage:HC,default_session_id:Fr||u||F,default_active_run_id:u,default_workflow_id:(ae==null?void 0:ae.workflow_id)??(ds==null?void 0:ds.workflow_id)??null}):null,Kl&&e==="processes"?n.jsx(SC,{gateway:mt,gateway_connected:z}):null,e==="mindmap"?n.jsx("div",{className:"page mindmap_page",children:z?n.jsx("div",{className:"mindmap_full",children:n.jsx(wC,{gateway:mt,selected_run_id:u,selected_session_id:Fr||F})}):n.jsx("div",{className:"page_inner constrained",children:n.jsxs("div",{className:"card",children:[n.jsx("div",{className:"title",children:n.jsx("h1",{children:"Mindmap"})}),n.jsxs("div",{className:"mono muted",children:["Not connected. Open"," ",n.jsx("button",{className:"btn",onClick:()=>t("settings"),children:"Settings"})," ","to connect to a gateway."]})]})})}):null,e==="runtime"?n.jsx(B2,{gateway_connected:z,tab:Fo,runs:ro,active_runs:wt,all_artifacts:cc,artifacts:ko,artifact_total_count:pa,artifact_total_bytes:kl,artifact_facets:Kn,artifact_type_facets:Cl,artifact_page:Ac,artifact_page_size:Em,artifact_groups:ks,selected_artifact:Mc,embedded_preview:In,loading:tu,error:Va,query:Ei,scope:A,type_filters:je,date_filter:Ge,group_by:lt,sort_by:Vn,artifact_run_filter:Sn,audit_log_text:Tl,audit_log_meta:ld,audit_log_loading:ru,audit_log_error:fc,workflow_label_by_id:Js,run_by_id:Yo,selected_run_id:Eu,session_id:$c,runtime_log_source:mc,runtime_log_query:xa,runtime_ledger_log_items:Rl,runtime_ledger_log_meta:iu,runtime_ledger_log_loading:$i,runtime_ledger_log_error:Bo,on_tab_change:Sl,on_query_change:uc,on_scope_change:Z,on_session_filter_change:ge,on_type_filters_change:st,on_date_filter_change:nt,on_group_by_change:pn,on_sort_by_change:Zn,on_artifact_page_change:yr,on_artifact_run_filter_change:y=>{const k=String(y||"").trim();ui(k),k&&Hs(k),k&&A!=="run"&&Z("run")},on_refresh_artifacts:()=>void Td(),on_refresh_audit:()=>void Ec(),on_refresh_runtime_ledger:y=>void zd(y),on_runtime_log_source_change:mh,on_runtime_log_query_change:zl,on_select_run:y=>{const k=String(y||"").trim();Hs(k);const E=k&&Yo[k]||null,R=String((E==null?void 0:E.session_id)||"").trim();R&&ge(R)},on_select_artifact:Yr,on_preview_artifact:y=>void xc(y),on_download_artifact:y=>void hd(y),on_open_run:y=>{Hs(String(y||"").trim()),t("observe"),kr("overview"),Xn(y)},on_open_ledger:y=>{Hs(String(y||"").trim()),t("observe"),kr("ledger"),Xn(y)},on_refresh_runs:()=>void cs(mt,{force:!0}),on_reconnect:()=>void bo(),on_open_settings:()=>t("settings")}):null,e==="observe"?n.jsx("div",{className:"page observe_page",children:n.jsxs("div",{className:"observatory_layout",children:[n.jsx(j2,{sections:Go,selected_run_id:u,root_run_id:m,search:wn,filter:zn,group_by:Vr,loading:C,total_runs:ro.length,workflow_label_by_id:Js,on_search:pr,on_filter:os,on_group_by:_o,on_refresh:()=>void cs(),on_select:(y,k)=>void Xn(y,{root_run_id:k||y})}),n.jsxs("div",{className:"observatory_main",children:[n.jsxs("div",{className:"observe_toolbar",children:[n.jsxs("div",{className:"observe_toolbar_row",children:[n.jsx(qC,{runs:re,selected_run_id:u,workflow_label_by_id:Js,disabled:!z||C||ce||we||qe,loading:C,onSelect:y=>void Xn(y)}),n.jsxs("button",{className:"btn btn_icon",onClick:()=>void cs(),disabled:!z||C||ce,title:"Refresh runs",children:[n.jsx(hn,{name:"refresh",size:14}),C?"…":"Refresh"]}),n.jsxs("button",{className:"btn btn_icon",onClick:Ar,disabled:!u.trim()&&!Pe,title:"Disconnect from run",children:[n.jsx(hn,{name:"x",size:14}),"Disconnect"]}),n.jsx("span",{className:"observe_toolbar_sep"}),n.jsx("button",{className:"btn",onClick:()=>{if(kd==="pause"){Es("pause"),Rr(""),ss(""),an(!0);return}bc("resume")},disabled:Nd,children:Sd}),Ul?n.jsx("button",{className:"btn primary",onClick:()=>void Sc(),disabled:!u.trim()||we||qe||fi||Ho,children:"Run now"}):null,n.jsx("button",{className:"btn danger",onClick:()=>{Es("cancel"),Rr(""),ss(""),an(!0)},disabled:!u.trim()||we||qe||fi,children:"Cancel"})]}),Il||Qs||ar?n.jsxs("div",{className:"observe_toolbar_context",children:[Il?n.jsxs("div",{className:"observe_context_card info",children:[n.jsxs("div",{className:"observe_context_label",children:[n.jsx("span",{className:"chip mono info",children:Qs?Ho?"suspended":"scheduled":"waiting"}),n.jsx("span",{className:"mono muted",children:Jr||"unknown"})]}),n.jsxs("div",{className:"observe_context_body",children:[Zs?n.jsxs("span",{className:"mono",title:Zs,children:[n.jsx("span",{className:"muted",children:"wait_key"}),": ",Vt(Zs,46)]}):null,Jr==="event"&&yu?n.jsxs("span",{className:"mono",children:[n.jsx("span",{className:"muted",children:"event"}),": ",yu]}):null,Jr==="subworkflow"&&Sa?n.jsxs("span",{className:"mono",children:[n.jsx("span",{className:"muted",children:"child"}),": ",Vt(Sa,18)]}):null,Jr==="until"&&eo?n.jsxs("span",{className:"mono",title:eo,children:[n.jsx("span",{className:"muted",children:"until"}),": ",Vt(eo,46)]}):null,Jr==="until"&&eo?n.jsx("span",{className:"mono muted",children:(()=>{const y=On(eo),k=y!==null?new Date(y).toLocaleString():eo,E=y!==null?oy(y-Date.now()):"";return`Next at ${k}${E?` (in ${E})`:""}`})()}):null]}),Jr==="subworkflow"&&Sa?n.jsxs("div",{className:"observe_context_actions",children:[n.jsx("button",{className:"btn primary",onClick:async()=>{d(Sa),await ja(Sa)},disabled:we,children:"Attach to child"}),m.trim()&&m.trim()!==u.trim()?n.jsx("button",{className:"btn",onClick:async()=>{d(m.trim()),await ja(m.trim())},disabled:we,children:"Back to root"}):null]}):null]}):null,Qs?n.jsxs("div",{className:"observe_context_card muted",children:[n.jsxs("div",{className:"observe_context_label",children:[n.jsx("span",{className:"chip mono muted",children:"schedule"}),n.jsx("span",{className:"mono muted",children:Su?`every ${Bl}`:"once"})]}),n.jsxs("div",{className:"observe_context_body",children:[Bl?n.jsxs("span",{className:"mono",children:[n.jsx("span",{className:"muted",children:"interval"}),": ",Bl]}):null,n.jsxs("span",{className:"mono",children:[n.jsx("span",{className:"muted",children:"share ctx"}),": ",to?"yes":"no"]}),typeof ju=="number"?n.jsxs("span",{className:"mono",children:[n.jsx("span",{className:"muted",children:"repeats"}),": ",ju]}):null]}),nl!==null?n.jsxs("div",{className:"observe_context_budget",children:[n.jsxs("span",{className:"mono muted",children:[typeof Gf=="number"&&typeof Cd=="number"?`${Gf.toLocaleString()} / ${Cd.toLocaleString()}`:"",` • ${Math.round(Math.max(0,Math.min(1,nl))*100)}%`]}),n.jsx("div",{className:"observe_budget_bar",children:n.jsx("div",{className:"observe_budget_fill",style:{width:`${Math.round(Math.max(0,Math.min(1,nl))*100)}%`,background:nl>=.9?"rgba(239, 68, 68, 0.9)":nl>=.75?"rgba(245, 158, 11, 0.9)":"rgba(34, 197, 94, 0.9)"}})})]}):null,n.jsxs("div",{className:"observe_context_actions",children:[Su?n.jsx("button",{className:"btn",onClick:()=>{jn(Bl||""),Ln(!0),lr(""),Gt(!0)},disabled:we||dr,children:"Edit schedule"}):null,Su?n.jsx("button",{className:"btn",onClick:()=>{Tr(""),gs(!0)},disabled:we||er,children:"Compact context"}):null]})]}):null,ar?n.jsxs("div",{className:"observe_context_card error",children:[n.jsx("span",{className:"chip mono danger",children:"error"}),n.jsx("span",{className:"mono",children:ar})]}):null]}):null]}),n.jsxs("div",{className:"card panel_card card_scroll observe_viewer observe_viewer_full",children:[n.jsxs("div",{className:"tab_bar",style:{justifyContent:"space-between"},children:[n.jsxs("div",{style:{display:"flex",gap:"4px",alignItems:"center"},children:[n.jsx("button",{className:`tab mono ${$n==="overview"?"active":""}`,onClick:()=>kr("overview"),children:"Overview"}),n.jsx("button",{className:`tab mono ${$n==="timeline"?"active":""}`,onClick:()=>kr("timeline"),children:"Timeline"}),n.jsx("button",{className:`tab mono ${$n==="replay"?"active":""}`,onClick:()=>kr("replay"),children:"Replay"}),n.jsx("button",{className:`tab mono ${$n==="ledger"?"active":""}`,onClick:()=>kr("ledger"),children:"Ledger"}),n.jsx("button",{className:`tab mono ${$n==="providers"?"active":""}`,onClick:()=>kr("providers"),children:"Providers"}),n.jsx("button",{className:`tab mono ${$n==="graph"?"active":""}`,onClick:()=>kr("graph"),children:"Graph"}),n.jsx("button",{className:`tab mono ${$n==="digest"?"active":""}`,onClick:()=>kr("digest"),children:"Digest"}),n.jsx("button",{className:`tab mono ${$n==="attachments"?"active":""}`,onClick:()=>kr("attachments"),children:"Attachments"}),n.jsx("button",{className:`tab mono ${$n==="chat"?"active":""}`,onClick:()=>kr("chat"),children:"Chat"})]}),$n==="ledger"&&(us.length>0||Wi==="cycles")?n.jsxs("div",{className:"tab_bar_controls",children:[n.jsxs("div",{className:"seg_toggle mono",children:[n.jsx("button",{className:`seg_btn ${Wi==="steps"?"active":""}`,onClick:()=>_l("steps"),children:"Steps"}),n.jsx("button",{className:`seg_btn ${Wi==="cycles"?"active":""}`,onClick:()=>_l("cycles"),children:"Cycles"})]}),Wi==="steps"?n.jsx("button",{className:`seg_action mono ${Mo?"active":""}`,onClick:()=>la(y=>!y),title:Mo?"Showing condensed view":"Showing all steps",children:Mo?"Condensed":"All"}):n.jsxs("select",{className:"mono seg_select",value:Vo,onChange:y=>Si(String(y.target.value||"")),disabled:!ku.length,title:"Select run for cycles view",children:[ku.length?null:n.jsx("option",{value:"",children:"(no runs)"}),ku.map(y=>{const k=typeof Nc[y]=="number"?Number(Nc[y]):0,E=`${Vt(y,18)}${k?` • ${k} llm`:""}`;return n.jsx("option",{value:y,children:E},y)})]}),n.jsx("button",{className:"seg_action mono",disabled:!ke.length&&!ot.length,title:"Copy full ledger as JSONL",onClick:()=>{const E=[...ke.map(J=>({run_id:u.trim()||J.record.run_id||"",cursor:J.cursor,record:J.record})),...ot.map(J=>({run_id:J.run_id,cursor:J.cursor,record:J.record}))].map(J=>{var $e,D;const ne=String((($e=J.record)==null?void 0:$e.ended_at)||((D=J.record)==null?void 0:D.started_at)||"").trim(),ee=On(ne);return{...J,_ms:ee??0}});E.sort((J,ne)=>(J._ms||0)-(ne._ms||0));const V=(E.length>5e3?E.slice(E.length-5e3):E).map(({_ms:J,...ne})=>JSON.stringify(ne)).join(`
|
|
160
|
-
`);Ks(V)},children:"Copy JSONL"})]}):null,$n==="graph"?n.jsxs("div",{className:"tab_bar_controls",children:[n.jsx("button",{className:`seg_action mono ${Hi?"active":""}`,onClick:()=>Zc(y=>!y),children:"Subflows"}),n.jsx("button",{className:`seg_action mono ${Ia?"active":""}`,onClick:()=>Po(y=>!y),children:"Path"}),Os.length?n.jsx("select",{className:"mono seg_select",value:po,onChange:y=>oi(String(y.target.value||"")),disabled:!!So.trim()||!S.trim()||Oa,children:Os.map(y=>n.jsx("option",{value:y,children:y},y))}):null]}):null,$n==="digest"&&((Pd=(Ld=Bt==null?void 0:Bt.overall)==null?void 0:Ld.stats)!=null&&Pd.steps)?n.jsx("div",{className:"tab_bar_controls",children:n.jsx("button",{className:"seg_action mono",onClick:()=>{Ks(JSON.stringify(Bt,null,2))},disabled:!((Tu=(Od=Bt==null?void 0:Bt.overall)==null?void 0:Od.stats)!=null&&Tu.steps),children:"Copy JSON"})}):null]}),$n==="overview"?n.jsx(M2,{run_id:u,run:ds,run_state:ae,status_label:Kf||Wl||"unknown",workflow_label_by_id:Js,root_run_id:m,subrun_ids:Ms,session_id:Fr,records_count:ke.length,child_records_count:ot.length,provider_activities:Zf,attachments_count:gl.length,digest:Bt,wait_state:tn,summary_generating:Ua,summary_error:jl,on_generate_summary:()=>void pu(),on_open_runtime:()=>t("runtime"),on_open_subrun:y=>void Xn(y,{root_run_id:m||u||y})}):null,$n==="timeline"?n.jsx(T2,{items:Qf,node_index:cd,workflow_label_by_id:Js,on_copy:y=>void Ks(y)}):null,$n==="replay"?n.jsx(A2,{bundle:za===u.trim()?oc:null,loading:Yc,error:Xc,run_id:u.trim(),load_artifact_preview:Qi,on_download_artifact:y=>void hd(y),on_open_artifact_explorer:y=>{const k=String((y==null?void 0:y.run_id)||u||"").trim();Sl("artifacts"),k&&(ui(k),Hs(k),Z("run")),y!=null&&y.artifact_id&&Yr(y.artifact_id),t("runtime")},on_refresh:()=>void ou(!0),on_open_ledger:()=>kr("ledger"),on_open_chat:()=>{kr("chat"),Or("Explain this run using the replay bundle, session turns, ledger timeline, provider activity, and produced artifacts.")},on_copy:y=>void Ks(y)}):null,$n==="providers"?n.jsx(z2,{activities:Zf,audit_log_text:Tl,audit_log_meta:ld,audit_log_loading:ru,audit_log_error:fc,on_refresh_audit:()=>void Ec(),on_copy:y=>void Ks(y)}):null,$n==="ledger"?n.jsx(n.Fragment,{children:Wi==="steps"?n.jsxs("div",{className:"log log_scroll",children:[us.map(y=>n.jsx(U2,{item:y,open:zt[y.id]===!0,on_toggle:()=>Pt(k=>({...k,[y.id]:!k[y.id]})),response_open:rn[y.id]===!0,on_toggle_response:()=>sn(k=>({...k,[y.id]:!k[y.id]})),node_index:cd,on_copy:k=>void Ks(k)},y.id)),us.length?null:n.jsx("div",{className:"mono muted",style:{padding:"10px 12px"},children:"(no ledger items)"})]}):n.jsx("div",{className:"log log_scroll",children:n.jsx(xw,{items:Cc.items,title:"Agent",subtitle:Cc.node_id?`node_id: ${Cc.node_id}`:"Live per-effect trace (LLM/tool calls).",subRunId:Vo,onOpenSubRun:Vo&&Vo!==u.trim()?()=>{d(Vo),ja(Vo)}:void 0})})}):null,$n==="graph"?n.jsxs(n.Fragment,{children:[go?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"graph error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:go})]}):null,Oa?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(96, 165, 250, 0.25)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"loading"}),n.jsx("span",{className:"mono",children:So.trim()?So.trim():po})]}),n.jsx("div",{className:"body mono",children:"Loading graph…"})]}):null,n.jsx("div",{className:"graph_panel",children:n.jsx(zb,{flow:Ro,flow_by_id:ma,expand_subflows:Hi,simplify:!0,prefer_vertical:!0,vertical_compact:.78,schedule_next_in:ql,schedule_interval:Bl,node_last_ms:gh,active_node_id:Yf,recent_nodes:Vi,visited_nodes:Da,highlight_path:Ia,now_ms:Fa})})]}):null,$n==="digest"?n.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[n.jsxs("div",{className:"log_item",style:{borderColor:Bt!=null&&Bt.latest_summary?Bt!=null&&Bt.summary_outdated?"rgba(239, 68, 68, 0.45)":"rgba(34, 197, 94, 0.35)":"rgba(96, 165, 250, 0.25)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"summary"}),n.jsx("span",{className:"mono",children:Bt!=null&&Bt.latest_summary?Bt!=null&&Bt.summary_outdated?"outdated":"current":"(none)"})]}),n.jsx("div",{className:"body",style:{whiteSpace:"pre-wrap"},children:Bt!=null&&Bt.latest_summary?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:[Bt.latest_summary.generated_at||Bt.latest_summary.ts||""," •"," ",Bt.latest_summary.provider||"provider?"," • ",Bt.latest_summary.model||"model?"]}),n.jsx(ts,{text:Bt.latest_summary.text})]}):n.jsx("div",{className:"mono muted",children:"No summary yet."})}),n.jsx("div",{className:"actions",children:n.jsx("button",{className:"btn primary",onClick:()=>void pu(),disabled:!u.trim()||Ua,children:Ua?"Generating…":Bt!=null&&Bt.latest_summary?"Regenerate":"Generate"})}),jl?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginTop:"8px"},children:jl}):null]}),Bt?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"overall"}),n.jsxs("span",{className:"mono",children:[((Kr=(zu=Bt.overall)==null?void 0:zu.stats)==null?void 0:Kr.steps)??0," steps"]})]}),n.jsxs("div",{className:"body mono",children:[n.jsxs("div",{children:["tools: ",((Xo=(Ti=Bt.overall)==null?void 0:Ti.stats)==null?void 0:Xo.tool_calls)??0," calls • ",((Fd=(Id=Bt.overall)==null?void 0:Id.stats)==null?void 0:Fd.unique_tools)??0," unique"]}),n.jsxs("div",{children:["llm: ",((Dd=(zi=Bt.overall)==null?void 0:zi.stats)==null?void 0:Dd.llm_calls)??0," calls • missing ",((tm=(so=Bt.overall)==null?void 0:so.stats)==null?void 0:tm.llm_missing_responses)??0]}),n.jsxs("div",{children:["tokens: ",((Ud=(Bd=Bt.overall)==null?void 0:Bd.stats)==null?void 0:Ud.prompt_tokens)??0," / ",((qd=(Wd=Bt.overall)==null?void 0:Wd.stats)==null?void 0:qd.completion_tokens)??0," • total"," ",((zc=(nm=Bt.overall)==null?void 0:nm.stats)==null?void 0:zc.total_tokens)??0]}),n.jsxs("div",{children:["duration:"," ",typeof((hi=(Ru=Bt.overall)==null?void 0:Ru.stats)==null?void 0:hi.duration_s)=="number"?`${Math.round(Bt.overall.stats.duration_s)}s`:((Br=(Mn=Bt.overall)==null?void 0:Mn.stats)==null?void 0:Br.duration_s)??0," • ","errors: ",((Zr=(wr=Bt.overall)==null?void 0:wr.stats)==null?void 0:Zr.errors)??0]})]})]}),Array.isArray((ei=Bt.overall)==null?void 0:ei.tools_used)&&Bt.overall.tools_used.length?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"tools used"}),n.jsx("span",{className:"mono",children:Bt.overall.tools_used.length})]}),n.jsx("div",{className:"body mono",children:Bt.overall.tools_used.join(", ")})]}):null,n.jsxs("details",{style:{marginTop:"10px"},children:[n.jsx("summary",{className:"mono muted",style:{cursor:"pointer"},children:"Advanced: digest JSON"}),n.jsx("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)",marginTop:"10px"},children:n.jsx("div",{className:"body mono",children:n.jsx(ao,{value:Bt,collapseAfterDepth:3,showCopy:!0})})})]})]}):n.jsx("div",{className:"mono muted",style:{padding:"10px 12px"},children:"(no digest)"})]}):null,$n==="attachments"?n.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[n.jsxs("div",{className:"log_actions",style:{marginTop:"6px",flexWrap:"wrap"},children:[n.jsx("button",{className:"btn",onClick:()=>void yc(),disabled:!z||Ra||!Fr,children:Ra?"Refreshing…":"Refresh"}),Fr?n.jsxs("span",{className:"chip mono muted",title:Fr,children:["session ",Vt(Fr,18)]}):n.jsx("span",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:"No session id (pick a run)"}),qi.trim()?n.jsxs("span",{className:"chip mono muted",title:qi,children:["store ",Vt(qi,18)]}):null]}),yl?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:yl})]}):null,n.jsxs("div",{className:"log",style:{marginTop:"10px"},children:[!Ra&&!yl&&!gl.length?n.jsx("div",{className:"chat_empty_hint",children:"No session attachments."}):null,gl.map(y=>{const k=String((y==null?void 0:y.artifact_id)||"").trim();if(!k)return null;const E=y!=null&&y.tags&&typeof y.tags=="object"?y.tags:{},R=String((E==null?void 0:E.filename)||"").trim(),V=String((E==null?void 0:E.path)||"").trim(),J=String((E==null?void 0:E.sha256)||"").trim(),ne=String((y==null?void 0:y.content_type)||"").trim(),ee=typeof(y==null?void 0:y.size_bytes)=="number"?Number(y.size_bytes):null,$e=V?`@${V}`:R||k;return n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(148, 163, 184, 0.25)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:$e}),n.jsx("span",{className:"mono",children:Vt(k,18)})]}),n.jsxs("div",{className:"body",children:[J?n.jsxs("div",{className:"mono",children:[n.jsx("span",{className:"muted",children:"sha256"}),": ",Vt(J,18)]}):null,ne?n.jsxs("div",{className:"mono",children:[n.jsx("span",{className:"muted",children:"type"}),": ",ne]}):null,typeof ee=="number"?n.jsxs("div",{className:"mono",children:[n.jsx("span",{className:"muted",children:"size"}),": ",ee.toLocaleString()," bytes"]}):null]}),n.jsxs("div",{className:"actions",children:[n.jsx("button",{className:"btn",onClick:()=>void Ks(k),children:"Copy id"}),n.jsx("button",{className:"btn",onClick:()=>void du(y),disabled:!qi.trim(),children:"Preview"}),n.jsx("button",{className:"btn",onClick:()=>void If(y),disabled:!qi.trim(),children:"Download"})]})]},k)}),n.jsxs(gi,{open:Jc,title:Kc||"Attachment",onClose:()=>{xl(!1),zo(""),da(""),fa(!1)},actions:n.jsx(n.Fragment,{children:n.jsx("button",{className:"btn",onClick:()=>{xl(!1),zo(""),da(""),fa(!1)},children:"Close"})}),children:[lc?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:"Loading…"}):null,wl?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:wl}):null,n.jsx("pre",{className:"mono",style:{whiteSpace:"pre-wrap",maxHeight:"62vh",overflow:"auto",margin:0},children:ua||"(empty)"})]})]})]}):null,$n==="chat"?n.jsxs("div",{className:"log log_scroll",style:{marginTop:"6px"},children:[n.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)"]}),n.jsxs("div",{className:"field",style:{marginTop:"10px"},children:[n.jsx("label",{children:"Saved discussions"}),n.jsxs("div",{className:"actions",style:{justifyContent:"space-between",alignItems:"center",gap:"10px",flexWrap:"wrap",marginTop:0},children:[n.jsx("div",{style:{flex:1,minWidth:260},children:n.jsx(nd,{value:ii,options:Be,placeholder:fo?"Loading…":Be.length?"Select a saved discussion…":"(none saved)",disabled:!u.trim()||!z||!Be.length,loading:fo,searchable:!0,clearable:!0,onChange:y=>{mo(y),ue("")}})}),n.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:0},children:[n.jsx("button",{className:"btn",type:"button",disabled:!ii.trim()||!z||ho,onClick:()=>void xd(),children:ho?"Loading…":"Load"}),n.jsx("button",{className:"btn",type:"button",disabled:!Cn.length||or||vs||ho,onClick:()=>{Sr([]),Or(""),en(""),_r(""),bs(""),wi("")},children:"Clear"}),n.jsx("button",{className:"btn",type:"button",onClick:()=>void el(),disabled:!u.trim()||!z||fo,children:fo?"Refreshing…":"Refresh"})]})]}),n.jsxs("div",{className:"actions",style:{justifyContent:"flex-end",marginTop:"8px",flexWrap:"wrap"},children:[n.jsx("button",{className:"btn",type:"button",disabled:!Cn.length||!u.trim()||!z||vs||!Ie,onClick:()=>void yd(),title:Ie?"":"No changes since last save",children:vs?"Saving…":!Ie&&ia?"Saved":"Save discussion"}),n.jsx("button",{className:"btn",type:"button",disabled:!Cn.length,onClick:()=>di("download"),children:"Export Markdown"}),n.jsx("button",{className:"btn",type:"button",disabled:!Cn.length,onClick:()=>di("copy"),children:Bs==="copied"?"Copied":Bs==="failed"?"Copy failed":"Copy Markdown"})]}),n.jsx("div",{className:"chat_hint",children:"Read-only. No tools. Grounded in the parent run + subflows ledger."}),ia?n.jsxs("div",{className:"chat_hint",children:["Last saved: ",ul(ia)]}):null,ws?n.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:ws}):null,O?n.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:O}):null,ji?n.jsx("div",{className:"chat_hint",style:{color:"rgba(239, 68, 68, 0.9)"},children:ji}):null]}),uo?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:uo})]}):null,is?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"voice"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:is})]}):null,n.jsx("div",{className:"chat_messages",style:{marginTop:"10px"},children:n.jsx(Mm,{messages:Cn,className:"log_scroll",messageProps:Yn.tts_supported&&z&&xi.trim()?{onSpeakToggle:gd,getSpeakState:jo,jsonCollapseAfterDepth:4}:{jsonCollapseAfterDepth:4},empty:n.jsx("div",{className:"chat_empty_hint",children:"Ask about this run (why failed, which tools, what happened in subflows)."})})}),n.jsx("div",{className:"chat_composer",style:{marginTop:"10px"},children:n.jsx(Am,{ref:xs,value:Pr,onChange:Or,onSubmit:()=>void pd(),placeholder:"Ask about this run…",disabled:!u.trim()||!z||or,busy:or||Yn.voice_ptt_busy,busyLabel:Yn.voice_ptt_busy?"Transcribing…":"Thinking…",rows:3,sendButtonClassName:"btn primary",actions:n.jsxs("button",{className:`btn btn_icon voice_btn${Yn.voice_ptt_recording?" danger":""}`,type:"button",disabled:!z||!Za.trim()||!xi.trim()||or||Yn.voice_ptt_busy||!Yn.voice_ptt_supported,title:Yn.voice_ptt_supported?Yn.voice_ptt_busy?"Transcribing…":Yn.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:y=>{var k,E;if(!(!z||!Za.trim()||!xi.trim()||or||Yn.voice_ptt_busy||!Yn.voice_ptt_supported)){y.preventDefault();try{(E=(k=y.currentTarget)==null?void 0:k.setPointerCapture)==null||E.call(k,y.pointerId)}catch{}Yn.start_voice_ptt_recording()}},onPointerUp:y=>{y.preventDefault(),Yn.stop_voice_ptt_recording()},onPointerCancel:y=>{y.preventDefault(),Yn.stop_voice_ptt_recording()},children:[n.jsx(hn,{name:Yn.voice_ptt_recording?"x":"mic",size:16}),Yn.voice_ptt_busy?"Transcribing…":Yn.voice_ptt_recording?"Recording…":"Voice"]})})})]}):null,n.jsxs("div",{className:`status_bar ${$s?"pulse":""}`,children:[n.jsx("strong",{children:"Run"}),":"," ",u.trim()?n.jsx("span",{className:"mono",children:Kf||Wl||"unknown"}):n.jsx("span",{className:"mono",children:"(none)"}),u.trim()&&Md&&ql?n.jsxs("span",{className:"mono muted",children:[" • next in ",ql]}):null,fr?n.jsxs("span",{className:"mono muted",children:[" • ",fr]}):null]})]})]})]})}):null,n.jsxs(gi,{open:$l,title:Al||"Artifact",onClose:()=>{Gs(!1),Do(""),Xr(""),Ki(!1),Ir(null),$r&&(URL.revokeObjectURL($r),Ji(""))},actions:n.jsx("button",{className:"btn",onClick:()=>{Gs(!1),Do(""),Xr(""),Ki(!1),Ir(null),$r&&(URL.revokeObjectURL($r),Ji(""))},children:"Close"}),children:[Ys?n.jsx("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:"Loading…"}):null,Xa?n.jsx("div",{className:"mono",style:{color:"rgba(239, 68, 68, 0.9)",fontSize:"var(--font-size-sm)",marginBottom:"8px"},children:Xa}):null,Qn==="image"&&$r?n.jsx("img",{className:"runtime_preview_media",src:$r,alt:Al||"Artifact preview"}):Qn==="audio"&&$r?n.jsx("audio",{className:"runtime_preview_media",controls:!0,src:$r}):Qn==="video"&&$r?n.jsx("video",{className:"runtime_preview_media",controls:!0,src:$r}):n.jsx(Tv,{artifact:ya,text:nu||"(empty)",className:"runtime_preview_text"})]}),on?n.jsxs(gi,{open:on,title:"Edit schedule",onClose:()=>{Gt(!1),jn(""),Ln(!0),lr(""),br(!1)},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{Gt(!1),jn(""),Ln(!0),lr(""),br(!1)},disabled:we||dr,children:"Back"}),n.jsx("button",{className:"btn primary",onClick:async()=>{await _h({interval:at,apply_immediately:Bn})||(Gt(!1),lr(""),br(!1))},disabled:we||dr||!at.trim(),children:"Save"})]}),children:[Un?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:Un})]}):null,n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Interval"}),n.jsx("input",{className:"mono",value:at,onChange:y=>jn(String(y.target.value||"")),placeholder:"20m / 1h / 0.5s / 250ms",disabled:we||dr}),n.jsxs("div",{className:"mono muted",style:{fontSize:"var(--font-size-sm)"},children:["Accepted units: ",n.jsx("span",{className:"mono",children:"ms"}),", ",n.jsx("span",{className:"mono",children:"s"}),", ",n.jsx("span",{className:"mono",children:"m"}),","," ",n.jsx("span",{className:"mono",children:"h"}),", ",n.jsx("span",{className:"mono",children:"d"}),". This updates the existing scheduled run in place (no context loss)."]})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Quick picks"}),n.jsx("div",{className:"actions",style:{gap:"8px",flexWrap:"wrap"},children:["15m","30m","1h","2h","6h","1d"].map(y=>n.jsx("button",{className:"btn",onClick:()=>jn(y),disabled:we||dr,children:y},y))})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Apply"}),n.jsxs("label",{style:{display:"flex",gap:"10px",alignItems:"center"},children:[n.jsx("input",{type:"checkbox",checked:Bn,onChange:y=>Ln(!!y.target.checked),disabled:we||dr}),"Apply immediately (recompute next run from now if waiting)"]})]})]}):null,rs?n.jsxs(gi,{open:rs,title:"Compact scheduled context",onClose:()=>{gs(!1),Tr(""),ct(!1)},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{gs(!1),Tr(""),ct(!1)},disabled:we||er,children:"Cancel"}),n.jsx("button",{className:"btn primary",onClick:async()=>{await Ss({preserve_recent:Ds,compression_mode:co,focus:En})||(gs(!1),Tr(""),ct(!1))},disabled:we||er,children:er?"Compacting…":"Compact"})]}),children:[Di?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:Di})]}):null,n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Preserve recent turns"}),n.jsx("input",{type:"number",min:1,value:String(Ds),onChange:y=>Ao(Math.max(1,parseInt(y.target.value||"6",10)||6)),disabled:we||er})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Mode"}),n.jsxs("select",{value:co,onChange:y=>ys(y.target.value),disabled:we||er,children:[n.jsx("option",{value:"light",children:"light"}),n.jsx("option",{value:"standard",children:"standard"}),n.jsx("option",{value:"heavy",children:"heavy"})]})]}),n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Focus (optional)"}),n.jsx("input",{className:"mono",value:En,onChange:y=>Fi(String(y.target.value||"")),placeholder:"e.g. important decisions, next steps…",disabled:we||er})]})]}):null,Ct?n.jsxs(gi,{open:Ct,title:jr==="cancel"?"Cancel run":Qs?"Suspend schedule":"Pause run",onClose:()=>{an(!1),Rr(""),ss("")},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{an(!1),Rr(""),ss("")},disabled:we||qe,children:"Back"}),n.jsx("button",{className:`btn ${jr==="cancel"?"danger":"primary"}`,onClick:async()=>{ss("");const y=await bc(jr,{reason:zr});if(y){ss(y);return}an(!1),Rr(""),ss("")},disabled:we||qe,children:jr==="pause"?Qs?"Suspend":"Pause":"Cancel"})]}),children:[sa?n.jsxs("div",{className:"log_item",style:{borderColor:"rgba(239, 68, 68, 0.35)",marginBottom:"10px"},children:[n.jsxs("div",{className:"meta",children:[n.jsx("span",{className:"mono",children:"error"}),n.jsx("span",{className:"mono",children:mn()})]}),n.jsx("div",{className:"body mono",children:sa})]}):null,n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Reason (optional)"}),n.jsx("input",{className:"mono",value:zr,onChange:y=>Rr(y.target.value),placeholder:"reason…"})]})]}):null,wd?n.jsxs(gi,{open:wd,title:bd,onClose:()=>{Zs&&Lr(Zs)},actions:n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"btn",onClick:()=>{kr("ledger"),t("observe")},disabled:!u.trim(),children:"Open ledger"}),n.jsx("button",{className:"btn",onClick:()=>Zs&&Lr(Zs),disabled:qe,children:"Dismiss"}),n.jsx("button",{className:"btn danger",onClick:()=>void jc(u.trim(),"Cancelled from wait prompt"),disabled:!u.trim()||qe,children:"Cancel run"})]}),children:[n.jsxs("div",{className:"wait_context_panel",children:[n.jsxs("div",{className:"wait_context_header",children:[n.jsxs("div",{children:[n.jsx("div",{className:"run_hero_eyebrow",children:"What you need to do"}),n.jsx("strong",{children:bd}),n.jsx("p",{children:Uf})]}),n.jsx(ml,{status:qo||"waiting"})]}),Dl?n.jsxs("div",{className:`wait_request_card ${wu?"":"inferred"}`,children:[n.jsx("span",{children:Vf}),n.jsx(B_,{metadata:Wf}),n.jsx(ts,{text:Dl}),wu?null:n.jsx("p",{className:"wait_context_note",children:"The runtime did not attach a specific question to this wait. This is inferred from the run input; verify the session turns and workflow steps before answering."})]}):n.jsx("div",{className:"warn_callout",children:"This wait did not provide a clear prompt or recoverable prior user request. Review the full run input and recent workflow steps before submitting a response."}),qf.length?n.jsxs("section",{className:"wait_context_block wait_conversation_context",children:[n.jsx("span",{children:"Recent session turns"}),n.jsx("div",{className:"wait_turn_list",children:qf.map((y,k)=>n.jsxs("div",{className:`wait_turn_row role_${y.role.replace(/[^a-z0-9_-]+/g,"_")}`,children:[n.jsxs("div",{className:"wait_turn_meta",children:[n.jsx("strong",{children:y.role==="assistant"?"Assistant":y.role==="user"||y.role==="human"?"User":y.role}),y.ts?n.jsx("span",{className:"mono muted",children:ul(y.ts)}):null]}),n.jsx(B_,{metadata:y.runtime_metadata}),n.jsx(ts,{text:Ft(y.text,{max_chars:1200,max_lines:10})})]},`${y.role}:${k}`))})]}):null,n.jsxs("div",{className:"artifact_detail_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Workflow"}),n.jsx("strong",{children:oo(Fl,Js)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Run"}),n.jsx("strong",{className:"mono",children:Vt(u.trim(),24)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Node"}),n.jsx("strong",{className:"mono",children:Fl.current_node||String((ls==null?void 0:ls.node_id)||"—")})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Elapsed"}),n.jsx("strong",{children:Gc(Fl)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Session"}),n.jsx("strong",{className:"mono",children:Fl.session_id?Vt(String(Fl.session_id),18):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Wait key"}),n.jsx("strong",{className:"mono",children:Vt(Zs,28)})]})]}),ph?n.jsxs("details",{className:"runtime_raw_details wait_full_input_details",open:!Dl,children:[n.jsx("summary",{className:"mono muted",children:"Full run input JSON"}),n.jsx("div",{className:"wait_shared_json",children:n.jsx(ao,{value:bu,collapseAfterDepth:4,showCopy:!0})})]}):null,n.jsxs("section",{className:"wait_context_block",children:[n.jsx("span",{children:"Recent workflow steps leading to this wait"}),n.jsxs("div",{className:"wait_event_list",children:[xu.map(y=>n.jsxs("div",{className:"wait_event_row",children:[n.jsxs("span",{className:"mono",children:["#",y.cursor]}),n.jsx("strong",{children:y.summary||y.effect_type||y.status||"event"}),n.jsx("span",{className:"mono muted",children:[y.node_id,y.status,ul(y.ts)].filter(Boolean).join(" · ")})]},`${y.cursor}:${y.node_id}:${y.status}`)),xu.length?null:n.jsx("div",{className:"empty_state_inline",children:"No ledger context is loaded. Open the ledger before deciding."})]})]})]}),tl.length?n.jsxs("div",{className:"wait_action_panel",children:[n.jsx("div",{className:"wait_action_intro",children:"Approve and execute runs the listed tool request through your configured worker. Approve only sends approval without local execution. Reject returns a denial. Cancel run stops the whole workflow run."}),n.jsx("div",{className:"wait_tool_list",children:tl.map((y,k)=>n.jsxs("div",{className:"wait_tool_card",children:[n.jsxs("div",{className:"wait_tool_header",children:[n.jsx("strong",{children:String((y==null?void 0:y.name)||"tool")}),n.jsxs("div",{className:"wait_tool_badges",children:[n.jsx("span",{className:"chip mono warn",children:"approval"}),jv(y).map(E=>n.jsx("span",{className:"chip mono muted",children:E},E))]})]}),n.jsx("div",{className:"wait_tool_args",children:n.jsx(ao,{value:(y==null?void 0:y.arguments)||{},collapseAfterDepth:3,showCopy:!0})})]},`${String((y==null?void 0:y.name)||"tool")}:${k}`))}),hc?null:n.jsx("div",{className:"warn_callout",children:"No tool worker is configured, so Observer cannot execute these calls directly."}),n.jsxs("div",{className:"actions",children:[n.jsx("button",{className:"btn primary",disabled:!hc||qe,onClick:()=>Ff(tl),children:"Approve and execute"}),n.jsx("button",{className:"btn",disabled:qe,onClick:()=>kc({approved:!0}),children:"Approve only"}),n.jsx("button",{className:"btn danger",disabled:qe,onClick:()=>kc({approved:!1}),children:"Reject"})]}),n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Diagnostics"}),n.jsx("div",{className:"wait_shared_json",children:n.jsx(ao,{value:tn||{},collapseAfterDepth:3,showCopy:!0})})]})]}):n.jsxs("div",{className:"wait_action_panel",children:[n.jsx("div",{className:"wait_action_intro",children:"Submit only when the request above is clear. The response resumes this wait only; Cancel run attempts to stop the whole workflow and prevent further work."}),n.jsx("div",{className:"wait_prompt_text",children:Dl||"No explicit prompt was provided. Open the ledger for context before responding."}),n.jsx(v2,{wait:tn,disabled:qe,on_submit:y=>kc({response:y})}),n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Diagnostics"}),n.jsx("div",{className:"wait_shared_json",children:n.jsx(ao,{value:tn||{},collapseAfterDepth:3,showCopy:!0})})]})]})]}):null]})]})}function v2(e){const[t,r]=h.useState(""),o=Array.isArray(e.wait.choices)?e.wait.choices:[],a=e.wait.allow_free_text!==!1,c=e.disabled===!0,u=String(e.wait.prompt||"").trim();return n.jsxs(n.Fragment,{children:[o.length?n.jsxs("div",{className:"field",children:[n.jsx("label",{children:"Expected response"}),n.jsxs("select",{className:"mono",value:t,onChange:d=>r(d.target.value),children:[n.jsx("option",{value:"",children:"(select)"}),o.map((d,m)=>n.jsx("option",{value:String(d),children:String(d)},m))]})]}):null,a?n.jsxs("div",{className:"field",children:[n.jsx("label",{children:o.length?"Or type a response":u?"Your answer":"Response to resume this wait"}),n.jsx("textarea",{className:"mono wait_response_input",value:t,onChange:d=>r(d.target.value),placeholder:u?"Type your answer to the request above…":"Type the response the workflow is waiting for…",rows:4})]}):null,n.jsx("div",{className:"actions",children:n.jsx("button",{className:"btn primary",disabled:c||!t.trim(),onClick:()=>e.on_submit(t.trim()),children:"Submit response"})})]})}function wp(e){const t=String(e||"").trim().toLowerCase();return t==="completed"?"ok":t==="failed"||t==="cancelled"?"danger":t==="waiting"?"warn":t==="running"?"info":"muted"}function oo(e,t){const r=String((e==null?void 0:e.schedule_target_workflow_id)||(e==null?void 0:e.workflow_id)||"").trim();return r?t[r]||r:"(workflow unknown)"}function ml(e){const t=String(e.status||"unknown").trim()||"unknown";return n.jsx("span",{className:`run_status_pill ${wp(t)}`,children:t})}function w2(e){var c;const t=String((e==null?void 0:e.status)||"").trim().toLowerCase();if(Vc(t))return"";const r=e!=null&&e.waiting&&typeof e.waiting=="object"?e.waiting:null,o=String((r==null?void 0:r.reason)||(e==null?void 0:e.waiting_reason)||"").trim().toLowerCase(),a=Array.isArray((c=r==null?void 0:r.details)==null?void 0:c.tool_calls)?r.details.tool_calls:[];return a.length?yp(r,a):o==="user"?"Waiting for your answer":o==="event"?"Waiting for a response event":o==="subworkflow"?"Waiting for subworkflow":o==="until"?"Scheduled wait":o?`Waiting: ${o}`:t==="waiting"?"Waiting, reason unknown":""}function H_(e){const t=e==null?void 0:e.error;return t?typeof t=="string"?Ft(t,{max_chars:220,max_lines:2}):Ft(hs(t,400),{max_chars:220,max_lines:2}):""}function b2(e){const t=w2(e);if(t)return t;const r=H_(e);if(r)return r;const o=String((e==null?void 0:e.current_node)||"").trim();if(o)return`Current node: ${o}`;const a=String((e==null?void 0:e.status)||"").trim().toLowerCase();return a==="running"?"Running":Vc(a)?"Terminal":"No current activity reported"}function j2(e){const t=e.selected_run_id.trim(),r=e.root_run_id.trim()||t,o=e.sections.reduce((a,c)=>a+c.rows.reduce((u,d)=>{const m=[d.run,...d.children];return u+m.filter(_=>ed(_.status)).length},0),0);return n.jsxs("aside",{className:"observatory_sidebar",children:[n.jsxs("div",{className:"run_nav_header",children:[n.jsxs("div",{children:[n.jsx("div",{className:"run_nav_title",children:"Workflows"}),n.jsxs("div",{className:"run_nav_subtitle",children:[e.total_runs.toLocaleString()," runs • ",o.toLocaleString()," active"]})]}),n.jsxs("button",{className:"btn btn_icon",onClick:e.on_refresh,disabled:e.loading,title:"Refresh workflow runs",children:[n.jsx(hn,{name:"refresh",size:14}),e.loading?"…":""]})]}),n.jsxs("div",{className:"run_nav_controls",children:[n.jsx("input",{className:"mono",value:e.search,onChange:a=>e.on_search(a.target.value),placeholder:"Search runs, sessions, workflows"}),n.jsx("div",{className:"seg_toggle mono run_nav_segments",children:["active","waiting","terminal","failed","all"].map(a=>n.jsx("button",{className:`seg_btn ${e.filter===a?"active":""}`,onClick:()=>e.on_filter(a),children:a},a))}),n.jsxs("select",{className:"mono seg_select",value:e.group_by,onChange:a=>e.on_group_by(a.target.value),title:"Group workflow runs",children:[n.jsx("option",{value:"status",children:"Group by status"}),n.jsx("option",{value:"workflow",children:"Group by workflow"}),n.jsx("option",{value:"session",children:"Group by session"})]})]}),n.jsxs("div",{className:"run_tree",children:[e.sections.length?null:n.jsx("div",{className:"run_tree_empty",children:"No runs match the current filters."}),e.sections.map(a=>n.jsxs("section",{className:"run_tree_section",children:[n.jsxs("div",{className:"run_tree_section_header",children:[n.jsx("span",{children:a.label}),n.jsx("span",{className:"mono",children:a.rows.length})]}),a.rows.map(c=>{const u=c.run,d=String(u.run_id||"").trim(),m=d===t;return n.jsxs("div",{className:"run_tree_group",children:[n.jsxs("button",{className:`run_tree_item ${m?"selected":""} ${d===r?"root_context":""}`,onClick:()=>e.on_select(d,d),title:d,children:[n.jsxs("div",{className:"run_tree_item_top",children:[n.jsx("span",{className:"run_tree_label",children:oo(u,e.workflow_label_by_id)}),n.jsx(ml,{status:u.status})]}),n.jsxs("div",{className:"run_tree_meta",children:[n.jsx("span",{className:"mono",children:Vt(d,13)}),n.jsx("span",{children:nc(u)?ul(nc(u)):"no start"}),n.jsx("span",{children:Gc(u)})]})]}),c.children.length?n.jsx("div",{className:"run_tree_children",children:c.children.map(_=>{const p=String(_.run_id||"").trim();return n.jsxs("button",{className:`run_tree_item run_tree_child ${p===t?"selected":""}`,onClick:()=>e.on_select(p,d),title:p,children:[n.jsxs("div",{className:"run_tree_item_top",children:[n.jsx("span",{className:"run_tree_label",children:oo(_,e.workflow_label_by_id)}),n.jsx(ml,{status:_.status})]}),n.jsxs("div",{className:"run_tree_meta",children:[n.jsx("span",{className:"mono",children:Vt(p,13)}),n.jsx("span",{children:nc(_)?ul(nc(_)):"child"}),n.jsx("span",{children:Gc(_)})]})]},p)})}):null]},d)})]},a.key))]})]})}function S2(e){return e!=null&&e.descriptor&&typeof e.descriptor=="object"?e.descriptor:{}}function k2(e){var u;const t=[],r=new Set,o=d=>{const m=String((d==null?void 0:d.artifact_id)||"").trim(),p=`${String((d==null?void 0:d.run_id)||S2(d).run_id||"").trim()||"run"}:${m}`;!m||r.has(p)||(r.add(p),t.push(d))},a=e!=null&&e.ledgers&&typeof e.ledgers=="object"?e.ledgers:{};return Object.values(a).forEach(d=>{(Array.isArray(d==null?void 0:d.artifacts)?d.artifacts:[]).forEach(o)}),(Array.isArray((u=e==null?void 0:e.session)==null?void 0:u.turns)?e.session.turns:[]).forEach(d=>{(Array.isArray(d==null?void 0:d.artifacts)?d.artifacts:[]).forEach(o)}),t}function $m(e){return`${e.run_id||"run"}:${e.artifact_id}`}function fy(e){const t=On(e.created_at);if(t!==null)return t;const r=Number(e.ledger_cursor||e.turn_id||0);return Number.isFinite(r)?r:0}function my(e){return Dc(e)!=="binary"}function N2(e){const t=h.useMemo(()=>{const _=[],p=new Set;for(const x of Array.isArray(e.artifacts)?e.artifacts:[]){const v=$v(x,"run");if(!v)continue;const b=$m(v);p.has(b)||(p.add(b),_.push(v))}return _.sort((x,v)=>fy(x)-fy(v)||Cf(x).localeCompare(Cf(v))),_},[e.artifacts]),r=t.map($m).join("|"),[o,a]=h.useState({}),c=h.useRef({}),u=t;h.useEffect(()=>()=>{Object.values(c.current).forEach(_=>URL.revokeObjectURL(_)),c.current={}},[]),h.useEffect(()=>{a(()=>(Object.values(c.current).forEach(_=>URL.revokeObjectURL(_)),c.current={},{}))},[r]);const d=(_,p)=>{a(x=>{const v=c.current[_];return v&&v!==p.url&&URL.revokeObjectURL(v),p.url?c.current[_]=p.url:delete c.current[_],{...x,[_]:p}})},m=(_,p=!1)=>{const x=$m(_),v=o[x];if(!p&&v&&!v.error)return;const b=Dc(_);if(!e.load_artifact_preview){d(x,{artifact_id:_.artifact_id,kind:b,render_kind:"",text:"Preview loading is unavailable in this view.",url:"",loading:!1,error:""});return}d(x,{artifact_id:_.artifact_id,kind:b,render_kind:"",text:"",url:"",loading:!0,error:""}),e.load_artifact_preview(_).then(S=>d(x,S)).catch(S=>{d(x,{artifact_id:_.artifact_id,kind:b,render_kind:"",text:"",url:"",loading:!1,error:String((S==null?void 0:S.message)||S||"Preview failed")})})};return h.useEffect(()=>{!e.load_artifact_preview||!t.length||u.filter(my).forEach(_=>m(_))},[r,e.load_artifact_preview]),t.length?n.jsxs("div",{className:"replay_artifact_output",children:[n.jsxs("div",{className:"replay_artifact_output_header",children:[n.jsx("span",{children:"Outputs and artifacts linked to this turn"}),n.jsx("strong",{children:t.length.toLocaleString()})]}),n.jsx("div",{className:"replay_artifact_grid",children:u.map(_=>{const p=$m(_),x=o[p],v=W_(_),b=Km(_,{},{},(x==null?void 0:x.text)||""),S=q_(_),j=vp(_),$=Av(_),T=Wc(_),F=my(_),B=!!(x&&!x.loading&&!x.error),I=!!(x!=null&&x.loading),U=Ii(_.created_at),te=U_(_);return n.jsxs("article",{className:"replay_artifact_card",children:[n.jsxs("header",{className:"replay_artifact_card_header",children:[n.jsx(V_,{artifact:_,size:18}),n.jsxs("div",{children:[n.jsx("h5",{children:v}),n.jsxs("p",{children:[n.jsx("span",{children:b}),n.jsx("span",{children:rc(_.size_bytes)}),U!=="—"?n.jsx("span",{children:U}):null,T?n.jsx("span",{className:"mono",children:T}):null]})]})]}),n.jsxs("div",{className:"replay_artifact_facts",children:[j?n.jsxs("span",{children:[n.jsx("b",{children:"Provider"})," ",j]}):null,S?n.jsxs("span",{children:[n.jsx("b",{children:"Media"})," ",S]}):null,te?n.jsxs("span",{children:[n.jsx("b",{children:"Source"})," ",te]}):null,_.turn_id||_.ledger_cursor?n.jsxs("span",{children:[n.jsx("b",{children:"Turn"})," ",Xm(_)]}):null]}),$?n.jsxs("details",{className:"replay_artifact_prompt",children:[n.jsx("summary",{children:"Generation prompt"}),n.jsx("p",{children:$})]}):null,x?n.jsx(zv,{artifact:_,preview:x}):n.jsx("div",{className:"runtime_inline_preview empty",children:F?"Loading preview...":"No inline preview for this artifact type."}),n.jsxs("div",{className:"replay_artifact_actions",children:[n.jsx("button",{className:"btn",onClick:()=>m(_,!0),disabled:!F||I||!e.load_artifact_preview,children:I?"Loading…":B?"Reload preview":"Preview"}),n.jsx("button",{className:"btn",onClick:()=>{var K;return(K=e.on_download_artifact)==null?void 0:K.call(e,_)},disabled:!_.run_id||!e.on_download_artifact,children:"Download"}),n.jsx("button",{className:"btn",onClick:()=>e.on_open_artifact_explorer(_),disabled:!_.run_id,children:"Artifact explorer"})]})]},p)})})]}):null}function C2(e){const t=String(e||"").trim().toLowerCase();return t==="waiting"?"Waiting for response":t==="running"?"In progress":t==="completed"?"Completed":t==="failed"?"Failed":t==="cancelled"?"Cancelled":t?t.replace(/[_-]+/g," "):"Unknown"}function E2(e,t,r){const o=String((e==null?void 0:e.run_id)||"").trim(),a=String((e==null?void 0:e.status)||"").trim().toLowerCase();return o&&o===r?a==="waiting"?"Current request needing attention":a==="running"?"Current request in progress":"Selected request":`Earlier request ${t+1}`}function $2(e){const t=String((e==null?void 0:e.workflow_id)||"").trim(),r=String((e==null?void 0:e.kind)||"").trim();return[t,r&&r!=="run"?r:""].filter(Boolean).join(" · ")||"Session turn"}function A2(e){var _,p,x;const t=e.bundle,r=Array.isArray((_=t==null?void 0:t.session)==null?void 0:_.turns)?[...t.session.turns].sort((v,b)=>{const S=On((v==null?void 0:v.created_at)||(v==null?void 0:v.updated_at))??0,j=On((b==null?void 0:b.created_at)||(b==null?void 0:b.updated_at))??0;return S-j}):[],o=Array.isArray(t==null?void 0:t.timeline)?[...t.timeline]:[];o.sort((v,b)=>{const S=On((v==null?void 0:v.started_at)||(v==null?void 0:v.ended_at))??0,j=On((b==null?void 0:b.started_at)||(b==null?void 0:b.ended_at))??0;return S-j});const a=t!=null&&t.ledgers&&typeof t.ledgers=="object"?t.ledgers:{},c=Object.keys(a).length,u=k2(t),d=String(((p=t==null?void 0:t.session)==null?void 0:p.session_id)||((x=t==null?void 0:t.run)==null?void 0:x.session_id)||"").trim(),m=String((t==null?void 0:t.root_run_id)||e.run_id||"").trim();return n.jsxs("div",{className:"replay_workbench",children:[n.jsxs("section",{className:"replay_hero",children:[n.jsxs("div",{className:"replay_hero_copy",children:[n.jsx("span",{className:"replay_eyebrow",children:"Conversation replay"}),n.jsx("h3",{children:"Rebuild what led to this run"}),n.jsx("p",{children:"Read-only reconstruction of the session up to the selected run. Later session activity is intentionally excluded so the replay does not mix future retries or cancellations into this view."})]}),n.jsxs("div",{className:"replay_hero_actions",children:[n.jsx("button",{className:"btn",onClick:e.on_refresh,disabled:!e.run_id||e.loading,children:e.loading?"Loading…":"Refresh"}),n.jsx("button",{className:"btn primary",onClick:e.on_open_chat,disabled:!e.run_id,children:"Ask about replay"}),n.jsx("button",{className:"btn",onClick:e.on_open_ledger,disabled:!e.run_id,children:"Open ledger"}),n.jsx("button",{className:"btn",onClick:()=>e.on_open_artifact_explorer(),disabled:!e.run_id,children:"Runtime artifacts"}),n.jsx("button",{className:"btn",onClick:()=>e.on_copy(JSON.stringify(t||{},null,2)),disabled:!t,children:"Copy bundle"})]}),n.jsxs("div",{className:"replay_metric_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Selected run"}),n.jsx("strong",{className:"mono",children:m?Vt(m,22):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Session"}),n.jsx("strong",{className:"mono",children:d?Vt(d,22):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Turns shown"}),n.jsx("strong",{children:r.length.toLocaleString()})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Artifacts"}),n.jsx("strong",{children:u.length.toLocaleString()})]})]}),n.jsx("div",{className:"replay_scope_note",children:t!=null&&t.generated_at?`Replay refreshed ${Ii(t.generated_at)} from ${c.toLocaleString()} inspected run${c===1?"":"s"}.`:e.loading?"Loading replay bundle.":"Replay bundle has not been loaded yet."}),e.error?n.jsx("div",{className:"warn_callout",children:e.error}):null]}),!t&&!e.loading?n.jsx("div",{className:"chat_empty_hint",children:"Select a run and refresh replay to load session turns, ledger timeline, and artifact summaries."}):null,r.length?n.jsxs("section",{className:"replay_panel",children:[n.jsxs("div",{className:"replay_section_header",children:[n.jsxs("div",{children:[n.jsx("span",{className:"replay_eyebrow",children:"Session context"}),n.jsx("h3",{children:"Turns before this point"})]}),n.jsxs("span",{className:"chip mono info",children:[r.length," shown"]})]}),n.jsx("div",{className:"replay_turn_list",children:r.map((v,b)=>{const S=Array.isArray(v==null?void 0:v.artifacts)?v.artifacts:[],j=uh(String((v==null?void 0:v.prompt)||"").trim()),$=j.text,T=gp(j.metadata,v!=null&&v.prompt_metadata&&typeof v.prompt_metadata=="object"?v.prompt_metadata:null),F=String((v==null?void 0:v.answer)||"").trim(),B=v!=null&&v.stats&&typeof v.stats=="object"?v.stats:{},I=String((v==null?void 0:v.run_id)||"").trim(),U=!!(I&&I===m),te=String((v==null?void 0:v.status)||"unknown").trim();return n.jsxs("article",{className:`replay_turn_card ${U?"selected":""}`,children:[n.jsxs("header",{className:"replay_turn_header",children:[n.jsxs("div",{className:"replay_turn_number",children:["#",b+1]}),n.jsxs("div",{className:"replay_turn_title",children:[n.jsx("h4",{children:E2(v,b,m)}),n.jsx("p",{children:$2(v)})]}),n.jsxs("div",{className:"replay_turn_state",children:[n.jsx(ml,{status:te}),n.jsx("time",{children:Ii((v==null?void 0:v.created_at)||(v==null?void 0:v.updated_at))})]})]}),$?n.jsxs("div",{className:"replay_message_block request",children:[n.jsx("span",{children:"Request"}),n.jsx(B_,{metadata:T}),n.jsx(ts,{text:$})]}):n.jsxs("div",{className:"replay_message_block muted",children:[n.jsx("span",{children:"Request"}),n.jsx("p",{children:"No user request was recoverable for this turn."})]}),F?n.jsxs("div",{className:"replay_message_block outcome",children:[n.jsx("span",{children:"Outcome"}),n.jsx(ts,{text:F})]}):n.jsxs("div",{className:"replay_message_block muted",children:[n.jsx("span",{children:"Current state"}),n.jsx("p",{children:C2(te)})]}),S.length?n.jsx(N2,{artifacts:S,compact:!0,load_artifact_preview:e.load_artifact_preview,on_download_artifact:e.on_download_artifact,on_open_artifact_explorer:e.on_open_artifact_explorer}):null,n.jsxs("details",{className:"runtime_raw_details replay_turn_details",children:[n.jsx("summary",{className:"mono muted",children:"Diagnostics"}),n.jsxs("div",{className:"artifact_detail_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Workflow"}),n.jsx("strong",{children:String((v==null?void 0:v.workflow_id)||"—")})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Run"}),n.jsx("strong",{className:"mono",children:I?Vt(I,28):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Provider calls"}),n.jsx("strong",{children:Number(B.llm_calls||0).toLocaleString()})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Tool calls"}),n.jsx("strong",{children:Number(B.tool_calls||0).toLocaleString()})]})]})]})]},`${I||"turn"}:${b}`)})})]}):t?n.jsx("div",{className:"chat_empty_hint",children:"No session turns were available in this bounded replay bundle."}):null,o.length?n.jsxs("section",{className:"replay_panel compact",children:[n.jsxs("div",{className:"replay_section_header",children:[n.jsxs("div",{children:[n.jsx("span",{className:"replay_eyebrow",children:"Execution trace"}),n.jsx("h3",{children:"Run timeline"})]}),n.jsxs("span",{className:"chip mono muted",children:[o.length," events"]})]}),n.jsx("div",{className:"timeline_list",children:o.slice(-120).map((v,b)=>n.jsxs("div",{className:"timeline_row",children:[n.jsx("span",{className:"mono",children:Ii((v==null?void 0:v.started_at)||(v==null?void 0:v.ended_at))}),n.jsx("strong",{children:String((v==null?void 0:v.node_id)||"run")}),n.jsx("span",{children:String((v==null?void 0:v.effect_type)||(v==null?void 0:v.status)||"event")}),n.jsxs("span",{className:"mono muted",children:[v!=null&&v.run_id?Vt(String(v.run_id),14):"",v!=null&&v.cursor?` · #${v.cursor}`:""]})]},`${String((v==null?void 0:v.run_id)||"run")}:${String((v==null?void 0:v.cursor)||b)}`))}),o.length>120?n.jsx("div",{className:"chat_hint",children:"Showing the latest 120 events from the bounded replay bundle."}):null]}):null]})}function M2(e){var x,v,b,S,j,$,T;const t=e.run_id.trim(),r=oo(e.run,e.workflow_label_by_id),o=nc(e.run)||String(((x=e.run_state)==null?void 0:x.started_at)||((v=e.run_state)==null?void 0:v.created_at)||"").trim(),a=Nv(e.run)||(Vc(e.status_label)?String(((b=e.run_state)==null?void 0:b.updated_at)||"").trim():""),c=e.run?Gc(e.run):o?fh((On(a)??Date.now())-(On(o)??Date.now())):"—",u=e.provider_activities.length,d=e.provider_activities.reduce((F,B)=>F+(Number(B.tokens.total)||0),0),m=e.provider_activities.filter(F=>F.missing_response||F.error).length,_=String(((j=(S=e.digest)==null?void 0:S.latest_summary)==null?void 0:j.text)||"").trim(),p=e.wait_state;return n.jsxs("div",{className:"run_overview",children:[n.jsxs("section",{className:"run_hero",children:[n.jsxs("div",{className:"run_hero_main",children:[n.jsx("div",{className:"run_hero_eyebrow",children:"Selected workflow"}),n.jsx("h2",{children:r}),n.jsxs("div",{className:"run_hero_meta",children:[n.jsx(ml,{status:e.status_label}),t?n.jsx("span",{className:"mono",title:t,children:Vt(t,22)}):n.jsx("span",{className:"mono",children:"(no run selected)"}),e.root_run_id&&e.root_run_id!==t?n.jsxs("span",{className:"mono",children:["root ",Vt(e.root_run_id,14)]}):null]})]}),n.jsxs("div",{className:"run_hero_actions",children:[n.jsx("button",{className:"btn primary",onClick:e.on_generate_summary,disabled:!t||e.summary_generating,children:e.summary_generating?"Summarizing…":_?"Refresh Summary":"Summarize"}),n.jsx("button",{className:"btn",onClick:e.on_open_runtime,children:"Runtime"})]})]}),n.jsxs("div",{className:"metric_grid",children:[n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Started"}),n.jsx("strong",{children:Ii(o)})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:a?"Finished":"Running for"}),n.jsx("strong",{children:a?Ii(a):c})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Total duration"}),n.jsx("strong",{children:c})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Ledger"}),n.jsx("strong",{children:(e.records_count+e.child_records_count).toLocaleString()})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Subworkflows"}),n.jsx("strong",{children:e.subrun_ids.length.toLocaleString()})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Provider calls"}),n.jsx("strong",{children:u.toLocaleString()})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Tokens"}),n.jsx("strong",{children:d?d.toLocaleString():"—"})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Assets"}),n.jsx("strong",{children:e.attachments_count.toLocaleString()})]})]}),n.jsxs("div",{className:"overview_columns",children:[n.jsxs("section",{className:"overview_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"What Is Happening"}),p?n.jsx("span",{className:"chip mono info",children:"waiting"}):null]}),p?n.jsxs("div",{className:"overview_fact_list",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Reason"}),n.jsx("strong",{children:String(p.reason||"unknown")})]}),p.wait_key?n.jsxs("div",{children:[n.jsx("span",{children:"Wait key"}),n.jsx("strong",{className:"mono",children:Vt(String(p.wait_key),34)})]}):null,($=p==null?void 0:p.details)!=null&&$.sub_run_id?n.jsxs("div",{children:[n.jsx("span",{children:"Subworkflow"}),n.jsx("strong",{className:"mono",children:Vt(String(p.details.sub_run_id),24)})]}):null,p.prompt?n.jsxs("div",{children:[n.jsx("span",{children:"Prompt"}),n.jsx("strong",{children:Ft(String(p.prompt),{max_chars:260,max_lines:3})})]}):null]}):n.jsx("div",{className:"empty_state_inline",children:"No active wait is reported for this run."}),m?n.jsxs("div",{className:"warn_callout",children:[m," provider call(s) have missing responses or errors."]}):null]}),n.jsxs("section",{className:"overview_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"Summary"}),(T=e.digest)!=null&&T.latest_summary?n.jsx("span",{className:"chip mono ok",children:"saved"}):n.jsx("span",{className:"chip mono muted",children:"none"})]}),e.summary_error?n.jsx("div",{className:"warn_callout",children:e.summary_error}):null,_?n.jsx(ts,{text:_}):n.jsx("div",{className:"empty_state_inline",children:"Generate a grounded summary from the root run and its subflows."})]})]}),e.subrun_ids.length?n.jsxs("section",{className:"overview_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"Subworkflows"}),n.jsx("span",{className:"mono muted",children:e.subrun_ids.length})]}),n.jsx("div",{className:"subrun_chip_list",children:e.subrun_ids.map(F=>n.jsx("button",{className:"subrun_chip mono",onClick:()=>e.on_open_subrun(F),title:F,children:Vt(F,22)},F))})]}):null]})}function T2(e){const t=r=>{var T,F;const o=r,a=r.record||{},c=String(((T=a==null?void 0:a.effect)==null?void 0:T.type)||o.effect_type||"").trim(),u=String((a==null?void 0:a.status)||o.status||"").trim(),d=String((a==null?void 0:a.node_id)||o.node_id||"").trim(),m=d&&e.node_index?e.node_index[d]:null,_=String((m==null?void 0:m.label)||d||o.title||"Step").trim(),p=Zo(a),x=(F=a==null?void 0:a.effect)==null?void 0:F.payload,v=a==null?void 0:a.result,b=dh(a),S=c?hs(x??{},900):Ft(String(o.preview||""),{max_chars:900,max_lines:8}),j=b||(p?`Waiting for ${String(p.reason||"input")}${p.wait_key?` (${Vt(String(p.wait_key),18)})`:""}`:"")||(v!==void 0?hs(v,900):"");return{title:c==="llm_call"?"Model call":c==="tool_calls"?"Tool execution":c==="answer_user"?"User-facing response":c==="start_subworkflow"?"Subworkflow launched":c==="ask_user"?"User input requested":c||o.title||"Ledger event",subtitle:_,request:Ft(S,{max_chars:900,max_lines:7}),outcome:Ft(j,{max_chars:1100,max_lines:9}),cls:wp(u)}};return n.jsxs("div",{className:"human_timeline",children:[e.items.length?null:n.jsx("div",{className:"empty_state_inline",children:"No ledger records yet."}),e.items.map(r=>{const o=r.record||{},a=t(r),c=String(o.ended_at||o.started_at||r.ts||"").trim();return n.jsxs("article",{className:`timeline_event ${a.cls}`,children:[n.jsx("div",{className:"timeline_marker"}),n.jsxs("div",{className:"timeline_event_body",children:[n.jsxs("div",{className:"timeline_event_header",children:[n.jsxs("div",{children:[n.jsx("h3",{children:a.title}),n.jsxs("div",{className:"timeline_subtitle",children:[n.jsx("span",{children:a.subtitle}),r.run_id?n.jsx("span",{className:"mono",children:Vt(String(r.run_id),13)}):null]})]}),n.jsxs("div",{className:"timeline_time",children:[n.jsx("span",{children:ul(c)}),n.jsx("span",{className:"mono",title:c,children:Ii(c)})]})]}),n.jsxs("div",{className:"timeline_payload_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Requested"}),n.jsx("p",{className:"mono",children:a.request||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Outcome"}),n.jsx("p",{children:a.outcome||"—"})]})]}),n.jsx("div",{className:"timeline_actions",children:n.jsxs("button",{className:"btn btn_icon",onClick:()=>e.on_copy(JSON.stringify(o,null,2)),children:[n.jsx(hn,{name:"copy",size:14}),"JSON"]})})]})]},`${String(r.run_id||o.run_id||"")}:${r.cursor}`)})]})}function z2(e){const t=e.activities.reduce((a,c)=>a+(Number(c.tokens.total)||0),0),r=e.activities.filter(a=>a.missing_response||a.error).length,o=Array.from(new Set(e.activities.map(a=>[a.provider,a.model].filter(Boolean).join("/")).filter(Boolean))).slice(0,8);return n.jsxs("div",{className:"provider_panel",children:[n.jsxs("div",{className:"metric_grid compact",children:[n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Calls"}),n.jsx("strong",{children:e.activities.length.toLocaleString()})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Tokens"}),n.jsx("strong",{children:t?t.toLocaleString():"—"})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Issues"}),n.jsx("strong",{children:r.toLocaleString()})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Providers"}),n.jsx("strong",{children:o.length?o.length.toLocaleString():"—"})]})]}),n.jsxs("section",{className:"overview_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"Provider Calls In This Run"}),n.jsx("span",{className:"mono muted",children:o.join(", ")||"no model calls detected"})]}),e.activities.length?null:n.jsx("div",{className:"empty_state_inline",children:"No LLM provider activity is present in the loaded ledger."}),n.jsx("div",{className:"provider_activity_list",children:e.activities.map(a=>n.jsxs("article",{className:`provider_activity ${a.error||a.missing_response?"danger":""}`,children:[n.jsxs("div",{className:"provider_activity_header",children:[n.jsxs("div",{children:[n.jsx("h4",{children:[a.provider||"provider?",a.model||"model?"].join(" / ")}),n.jsxs("div",{className:"timeline_subtitle",children:[n.jsx("span",{className:"mono",children:Vt(a.run_id,13)}),a.node_id?n.jsx("span",{className:"mono",children:a.node_id}):null,n.jsx("span",{children:fh(a.duration_ms)})]})]}),n.jsxs("div",{className:"provider_tokens mono",children:[a.tokens.total?a.tokens.total.toLocaleString():"—"," tokens"]})]}),n.jsxs("div",{className:"provider_preview_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Prompt"}),n.jsx("p",{children:a.prompt_preview||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Response"}),n.jsx("p",{children:a.response_preview||(a.error?a.error:"No response captured")})]})]}),n.jsxs("div",{className:"timeline_actions",children:[n.jsxs("button",{className:"btn btn_icon",onClick:()=>e.on_copy(a.prompt_preview),disabled:!a.prompt_preview,children:[n.jsx(hn,{name:"copy",size:14}),"Prompt"]}),n.jsxs("button",{className:"btn btn_icon",onClick:()=>e.on_copy(a.response_preview),disabled:!a.response_preview,children:[n.jsx(hn,{name:"copy",size:14}),"Response"]}),n.jsxs("button",{className:"btn btn_icon",onClick:()=>e.on_copy(JSON.stringify(a.raw,null,2)),children:[n.jsx(hn,{name:"copy",size:14}),"JSON"]})]})]},a.id))})]}),n.jsxs("section",{className:"overview_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"Gateway Audit Tail"}),n.jsxs("div",{className:"actions",style:{marginTop:0},children:[e.audit_log_meta?n.jsx("span",{className:"mono muted",children:e.audit_log_meta}):null,n.jsxs("button",{className:"btn btn_icon",onClick:e.on_refresh_audit,disabled:e.audit_log_loading,children:[n.jsx(hn,{name:"refresh",size:14}),e.audit_log_loading?"Loading…":"Refresh"]})]})]}),e.audit_log_error?n.jsx("div",{className:"warn_callout",children:e.audit_log_error}):null,n.jsx("pre",{className:"mono audit_log_tail",children:e.audit_log_text||"(audit tail not loaded)"})]})]})}function V_(e){const t=e.size||18,r=Dc(e.artifact),o=X_(e.artifact,""),a=`artifact_glyph ${o==="code"?"code":r}`,c={width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round"};return r==="image"?n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),n.jsx("path",{d:"M7 15l3-3 3 3 2-2 4 4"}),n.jsx("circle",{cx:"8",cy:"9",r:"1.4"})]})}):r==="audio"?n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("path",{d:"M4 12h2"}),n.jsx("path",{d:"M8 8v8"}),n.jsx("path",{d:"M12 5v14"}),n.jsx("path",{d:"M16 8v8"}),n.jsx("path",{d:"M20 12h-2"})]})}):r==="video"?n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),n.jsx("path",{d:"M9 9l6 3-6 3V9z",fill:"currentColor",stroke:"none"})]})}):o==="code"?n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("path",{d:"M8 8l-4 4 4 4"}),n.jsx("path",{d:"M16 8l4 4-4 4"}),n.jsx("path",{d:"M14 4l-4 16"})]})}):r==="text"?n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("path",{d:"M7 3h7l5 5v13H7z"}),n.jsx("path",{d:"M14 3v6h6"}),n.jsx("path",{d:"M10 13h7"}),n.jsx("path",{d:"M10 17h5"})]})}):n.jsx("span",{className:a,children:n.jsxs("svg",{...c,children:[n.jsx("path",{d:"M7 3h7l5 5v13H7z"}),n.jsx("path",{d:"M14 3v6h6"}),n.jsx("path",{d:"M9 14h8"})]})})}const R2=2,L2=Number.MAX_SAFE_INTEGER;function P2(e,t=120){const r=String(e||"").replace(/\s+/g," ").trim();return r.length<=t?r:`${r.slice(0,Math.max(0,t-1)).trimEnd()}…`}function O2(e){const t=String(e||"");if(typeof DOMParser>"u")return[{kind:"text",text:Lh(t)||t}];try{const r=new DOMParser().parseFromString(t,"text/html"),o=[];r.doctype&&o.push({kind:"doctype",name:r.doctype.name||"html"});const a=c=>{if(c.nodeType===Node.TEXT_NODE){const u=String(c.textContent||"").trim();return u?{kind:"text",text:u}:null}if(c.nodeType===Node.COMMENT_NODE)return{kind:"comment",text:String(c.textContent||"")};if(c.nodeType===Node.ELEMENT_NODE){const u=c,d=Array.from(u.attributes||[]).map(_=>({name:_.name,value:_.value})),m=Array.from(u.childNodes||[]).map(a).filter(Boolean);return{kind:"element",tag:u.tagName.toLowerCase(),attrs:d,children:m}}return null};if(r.documentElement){const c=a(r.documentElement);c&&o.push(c)}return o.length?o:[{kind:"text",text:Lh(t)||t}]}catch{return[{kind:"text",text:Lh(t)||t}]}}function l_(e){return e.closing?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"runtime_html_punct",children:"</"}),n.jsx("span",{className:"runtime_html_tag",children:e.tag}),n.jsx("span",{className:"runtime_html_punct",children:">"})]}):n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"runtime_html_punct",children:"<"}),n.jsx("span",{className:"runtime_html_tag",children:e.tag}),e.attrs.map(t=>n.jsxs(Ae.Fragment,{children:[" ",n.jsx("span",{className:"runtime_html_attr",children:t.name}),n.jsx("span",{className:"runtime_html_punct",children:"="}),n.jsxs("span",{className:"runtime_html_value",children:['"',t.value,'"']})]},`${e.tag}:${t.name}:${t.value}`)),n.jsx("span",{className:"runtime_html_punct",children:e.selfClosing?" />":">"})]})}function Mv(e){const t=e.node,r=e.depth*14,o=e.depth<e.collapseAfterDepth,[a,c]=h.useState(o);if(h.useEffect(()=>{c(o)},[o,e.expansionVersion]),t.kind==="doctype")return n.jsxs("div",{className:"html-tree__line",style:{paddingLeft:r},children:[n.jsx("span",{className:"runtime_html_punct",children:"<!DOCTYPE "}),n.jsx("span",{className:"runtime_html_tag",children:t.name}),n.jsx("span",{className:"runtime_html_punct",children:">"})]});if(t.kind==="comment")return n.jsx("div",{className:"html-tree__line",style:{paddingLeft:r},children:n.jsx("span",{className:"runtime_html_comment",children:`<!-- ${t.text.trim()} -->`})});if(t.kind==="text")return n.jsx("div",{className:"html-tree__line html-tree__text",style:{paddingLeft:r},children:t.text});if(!t.children.length)return n.jsx("div",{className:"html-tree__line",style:{paddingLeft:r},children:n.jsx(l_,{tag:t.tag,attrs:t.attrs,selfClosing:!0})});const u=t.children.find(d=>d.kind==="text");return n.jsxs("details",{className:"html-tree__details",open:a,onToggle:d=>c(d.currentTarget.open),children:[n.jsxs("summary",{className:"html-tree__summary",style:{paddingLeft:r},children:[n.jsx("span",{className:"html-tree__caret","aria-hidden":"true",children:a?"▾":"▸"}),n.jsx(l_,{tag:t.tag,attrs:t.attrs}),!a&&u?n.jsxs("span",{className:"html-tree__summary_text",children:[" ",P2(u.text)]}):null]}),a?n.jsxs("div",{className:"html-tree__children",children:[t.children.map((d,m)=>n.jsx(Mv,{node:d,depth:e.depth+1,collapseAfterDepth:e.collapseAfterDepth,expansionMode:e.expansionMode,expansionVersion:e.expansionVersion},`${e.depth}:${t.kind}:${t.tag}:${m}`)),n.jsx("div",{className:"html-tree__line",style:{paddingLeft:r},children:n.jsx(l_,{tag:t.tag,attrs:[],closing:!0})})]}):null]})}function I2(e){const t=h.useMemo(()=>O2(e.text),[e.text]),[r,o]=h.useState({mode:"folded",version:0}),a=r.mode==="unfolded"?L2:R2;h.useEffect(()=>{o(u=>({mode:"folded",version:u.version+1}))},[e.text]);const c=()=>{o(u=>({mode:u.mode==="unfolded"?"folded":"unfolded",version:u.version+1}))};return n.jsxs("div",{className:`${e.className} structured html_source_preview`,children:[n.jsx("div",{className:"html-tree__toolbar",children:n.jsx("button",{type:"button",className:"btn html-tree__toggle",onClick:c,"aria-expanded":r.mode==="unfolded",children:r.mode==="unfolded"?"Fold all":"Unfold all"})}),n.jsx("div",{className:"html-tree__tree",role:"tree","aria-label":"HTML source tree",children:t.map((u,d)=>n.jsx(Mv,{node:u,depth:0,collapseAfterDepth:a,expansionMode:r.mode,expansionVersion:r.version},`root:${d}`))})]})}function F2(e){var o;const t=wb(e.text);if(!t)return n.jsx("div",{className:`${e.className} structured markdown_preview`,children:n.jsx(ts,{text:e.text})});const r=((o=t.metadata.find(a=>a.label.toLowerCase()==="title"))==null?void 0:o.value)||"";return n.jsxs("div",{className:`${e.className} structured markdown_preview artifact_markdown_report`,children:[r?n.jsx("h1",{className:"artifact_markdown_title",children:r}):null,t.metadata.length?n.jsx("dl",{className:"artifact_markdown_meta",children:t.metadata.map(a=>{const c=/^https?:\/\//i.test(a.value);return n.jsxs("div",{children:[n.jsx("dt",{children:a.label}),n.jsx("dd",{children:c?n.jsx("a",{href:a.value,target:"_blank",rel:"noreferrer",children:a.value}):a.value})]},`${a.label}:${a.value}`)})}):null,n.jsx(ts,{text:t.body||e.text})]})}function Tv(e){const t=String(e.text||""),r=hf(e.artifact,t);if(r==="json"){const o=eh(t);if(o!==null)return n.jsx("div",{className:`${e.className} structured`,children:n.jsx(ao,{value:o,collapseAfterDepth:4,showCopy:!1})})}return r==="markdown"?n.jsx(F2,{text:t,className:e.className}):r==="html"?n.jsx(I2,{text:t,className:e.className}):n.jsx("pre",{className:`mono ${e.className}`,children:t})}function zv(e){const t=e.preview,r=e.artifact;return r?t.loading?n.jsx("div",{className:"runtime_inline_preview empty",children:"Loading preview…"}):t.error?n.jsx("div",{className:"runtime_inline_preview empty danger",children:t.error}):t.kind==="image"&&t.url?n.jsx("img",{className:"runtime_inline_preview media",src:t.url,alt:Cf(r)}):t.kind==="audio"&&t.url?n.jsx("audio",{className:"runtime_inline_preview audio",src:t.url,controls:!0}):t.kind==="video"&&t.url?n.jsx("video",{className:"runtime_inline_preview media",src:t.url,controls:!0}):n.jsx(Tv,{artifact:r,text:t.text||"Preview unavailable. Use Preview or Download.",className:"runtime_inline_preview text"}):n.jsx("div",{className:"runtime_inline_preview empty",children:"Select an artifact to preview it here."})}function D2(e){const[t,r]=h.useState("attention"),[o,a]=h.useState(""),[c,u]=h.useState("attention"),[d,m]=h.useState(""),_=h.useMemo(()=>{const W={};for(const z of e.artifacts){const P=String(z.run_id||"").trim();P&&(W[P]=(W[P]||0)+1)}return W},[e.artifacts]),p=h.useMemo(()=>RC(e.runs,{workflow_label_by_id:e.workflow_label_by_id}),[e.runs,e.workflow_label_by_id]),x=h.useMemo(()=>LC(p),[p]),v=h.useMemo(()=>{const W=PC(p,{queue:t,query:o});return OC(W,c)},[p,t,o,c]),b=v.find(W=>String(W.run_id||"")===d)||v.find(W=>String(W.run_id||"")===e.selected_run_id)||v[0]||null,S=(b==null?void 0:b.run)||null,j=String((S==null?void 0:S.run_id)||"").trim(),$=String((S==null?void 0:S.session_id)||"").trim(),T=h.useMemo(()=>$?new Set(e.runs.filter(W=>String(W.session_id||"").trim()===$).map(W=>String(W.run_id||"").trim()).filter(Boolean)):new Set,[e.runs,$]),F=$?T.size:0,B=h.useMemo(()=>$?e.artifacts.filter(W=>String(W.session_id||"").trim()===$||T.has(String(W.run_id||"").trim())).length:0,[e.artifacts,$,T]),I=S!=null&&S.waiting&&typeof S.waiting=="object"?S.waiting:null,U=I?Af(I):[],te=(b==null?void 0:b.reason)||(I?yp(I,U):""),K=(b==null?void 0:b.expected_action)||(I?Sv(I,U):""),le=I?QC(I,null):"",ce=j&&_[j]||0,pe=Vc(S==null?void 0:S.status),Re=[{key:"attention",label:"Needs attention",count:x.attention},{key:"user_wait",label:"Needs my response",count:x.user_wait},{key:"tool_approval",label:"Tool approvals",count:x.tool_approval},{key:"running",label:"Running",count:x.running},{key:"failed",label:"Failed",count:x.failed},{key:"scheduled",label:"Scheduled/subflows",count:x.scheduled},{key:"finished",label:"Finished",count:x.finished},{key:"all",label:"All loaded",count:x.all}];return n.jsxs("div",{className:"runtime_ops_layout",children:[n.jsxs("aside",{className:"runtime_ops_filters",children:[n.jsxs("div",{className:"runtime_ops_filter_header",children:[n.jsx("strong",{children:"Queues"}),n.jsxs("button",{className:"btn btn_icon",onClick:e.gateway_connected?e.on_refresh_runs:e.on_reconnect,children:[n.jsx(hn,{name:"refresh",size:14}),e.gateway_connected?"Refresh":"Reconnect"]})]}),Re.map(W=>n.jsxs("button",{className:`runtime_ops_filter ${t===W.key?"selected":""}`,"aria-pressed":t===W.key,onClick:()=>r(W.key),children:[n.jsx("span",{children:W.label}),n.jsx("strong",{className:"mono",children:W.count.toLocaleString()})]},W.key)),n.jsx("div",{className:"runtime_ops_hint",children:"Counts are for the loaded runtime page. Refine search or refresh when supervising large runtimes."})]}),n.jsxs("section",{className:"runtime_ops_table_panel",children:[n.jsxs("div",{className:"runtime_ops_toolbar",children:[n.jsx("input",{className:"mono",value:o,onChange:W=>a(W.target.value),placeholder:"Search workflow, run, node, status, error"}),n.jsxs("select",{className:"mono seg_select",value:c,onChange:W=>u(W.target.value),children:[n.jsx("option",{value:"attention",children:"Attention order"}),n.jsx("option",{value:"recent",children:"Latest event"}),n.jsx("option",{value:"oldest",children:"Oldest event"}),n.jsx("option",{value:"duration",children:"Longest duration"}),n.jsx("option",{value:"tokens",children:"Most tokens"}),n.jsx("option",{value:"workflow",children:"Workflow"})]})]}),n.jsx("div",{className:"runtime_ops_table_scroll",children:n.jsxs("table",{className:"runtime_ops_table",children:[n.jsx("thead",{children:n.jsxs("tr",{children:[n.jsx("th",{children:"Status"}),n.jsx("th",{children:"Workflow / Run"}),n.jsx("th",{children:"Blocking / Current Activity"}),n.jsx("th",{children:"Age"}),n.jsx("th",{children:"Last Event"}),n.jsx("th",{children:"Calls"}),n.jsx("th",{children:"Visible artifacts"}),n.jsx("th",{children:"Actions"})]})}),n.jsxs("tbody",{children:[v.length?null:n.jsx("tr",{children:n.jsx("td",{colSpan:8,className:"runtime_ops_empty",children:e.gateway_connected?"No runs match this queue.":"Gateway offline. Runtime activity cannot be loaded until the connection is restored."})}),v.map(W=>{const z=W.run,P=String(z.run_id||"").trim(),G=_[P]||0;return n.jsxs("tr",{className:P===j?"selected":"","aria-selected":P===j,tabIndex:0,onClick:()=>{m(P),e.on_select_run(P)},onKeyDown:H=>{(H.key==="Enter"||H.key===" ")&&(H.preventDefault(),m(P),e.on_select_run(P))},children:[n.jsx("td",{children:n.jsx(ml,{status:z.status})}),n.jsxs("td",{children:[n.jsx("strong",{children:oo(z,e.workflow_label_by_id)}),n.jsx("span",{className:"mono",children:Vt(P,18)}),z.session_id?n.jsxs("span",{className:"mono",children:["session ",Vt(String(z.session_id),14)]}):null,z.parent_run_id?n.jsxs("span",{className:"mono muted",children:["child of ",Vt(String(z.parent_run_id),10)]}):null]}),n.jsxs("td",{children:[n.jsx("span",{children:W.reason}),z.current_node?n.jsx("span",{className:"mono muted",children:String(z.current_node)}):null,W.is_stale?n.jsx("span",{className:"chip mono warn",children:"stale"}):null]}),n.jsxs("td",{children:[n.jsx("span",{children:Gc(z)}),n.jsx("span",{className:"muted",children:Ii(nc(z))})]}),n.jsx("td",{children:ul(z.updated_at||z.created_at)}),n.jsxs("td",{children:[n.jsxs("span",{className:"mono",children:[Number(z.llm_calls||0).toLocaleString()," llm"]}),n.jsxs("span",{className:"mono",children:[Number(z.tool_calls||0).toLocaleString()," tools"]}),n.jsxs("span",{className:"mono",children:[Number(z.tokens_total||0).toLocaleString()," tok"]})]}),n.jsx("td",{className:"mono",children:G.toLocaleString()}),n.jsx("td",{children:n.jsxs("div",{className:"runtime_ops_actions",children:[W.needs_user_action?n.jsx("button",{className:"btn primary",onClick:H=>{H.stopPropagation(),e.on_open_run(P)},children:W.action_label}):n.jsx("button",{className:"btn",onClick:H=>{H.stopPropagation(),e.on_open_run(P)},children:"Open"}),n.jsx("button",{className:"btn",onClick:H=>{H.stopPropagation(),e.on_open_ledger(P)},children:"Ledger"}),n.jsx("button",{className:"btn",onClick:H=>{H.stopPropagation(),e.on_select_run(P),e.on_open_logs()},children:"Logs"}),n.jsx("button",{className:"btn",onClick:H=>{H.stopPropagation(),e.on_filter_artifacts(P)},children:"Artifacts"})]})})]},P)})]})]})})]}),n.jsx("aside",{className:"runtime_ops_inspector",children:S?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"runtime_ops_inspector_head",children:[n.jsx(ml,{status:S.status}),n.jsx("h3",{children:oo(S,e.workflow_label_by_id)}),n.jsx("span",{className:"mono",children:Vt(j,28)})]}),n.jsxs("div",{className:"runtime_ops_decision",children:[n.jsx("strong",{children:(b==null?void 0:b.reason)||b2(S)}),n.jsx("span",{children:(b==null?void 0:b.expected_action)||(String(S.status||"").toLowerCase()==="waiting"?"This run is paused until the pending wait is resolved or the run is cancelled.":pe?"This run is terminal. Open the ledger for the narrative and final error/output.":"This run is active or recently updated. Use ledger/provider logs to inspect live work.")})]}),n.jsxs("div",{className:"artifact_detail_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Started"}),n.jsx("strong",{children:Ii(nc(S))})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Elapsed"}),n.jsx("strong",{children:Gc(S)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Last event"}),n.jsx("strong",{children:Ii(S.updated_at||S.created_at)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Session"}),n.jsx("strong",{className:"mono",children:S.session_id?Vt(String(S.session_id),18):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Node"}),n.jsx("strong",{className:"mono",children:S.current_node||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Visible artifacts"}),n.jsx("strong",{children:ce.toLocaleString()})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Provider calls"}),n.jsx("strong",{children:Number(S.llm_calls||0).toLocaleString()})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Tokens"}),n.jsx("strong",{children:Number(S.tokens_total||0).toLocaleString()})]})]}),$?n.jsxs("section",{className:"runtime_ops_session_context",children:[n.jsxs("div",{children:[n.jsx("span",{className:"run_hero_eyebrow",children:"Session context"}),n.jsx("strong",{className:"mono",children:Vt($,30)})]}),n.jsxs("div",{className:"runtime_ops_session_facts",children:[n.jsxs("span",{children:[F.toLocaleString()," loaded run",F===1?"":"s"]}),n.jsxs("span",{children:[B.toLocaleString()," visible artifact",B===1?"":"s"]})]}),n.jsxs("div",{className:"runtime_detail_actions compact",children:[n.jsx("button",{className:"btn",onClick:()=>e.on_filter_session_artifacts($),children:"Open session artifacts"}),n.jsx("button",{className:"btn",onClick:()=>void Qr($),children:"Copy session id"})]})]}):null,I?n.jsxs("div",{className:"runtime_ops_wait_summary",children:[n.jsxs("div",{className:"runtime_ops_wait_header",children:[n.jsx("span",{className:"run_hero_eyebrow",children:"Blocked on"}),n.jsx("strong",{children:te})]}),n.jsx("p",{children:K}),le?n.jsxs("div",{className:"runtime_ops_wait_request",children:[n.jsx("span",{children:"Request"}),n.jsx(ts,{text:le})]}):n.jsx("div",{className:"runtime_ops_wait_request muted",children:"No explicit prompt is attached to this wait. Open Observe or the ledger for full run context before responding."}),U.length?n.jsx("div",{className:"runtime_ops_wait_tools",children:U.map((W,z)=>n.jsxs(Ae.Fragment,{children:[n.jsx("span",{className:"chip mono warn",children:String((W==null?void 0:W.name)||"tool")}),jv(W).map(P=>n.jsx("span",{className:"chip mono muted",children:P},`${z}:${P}`))]},`${String((W==null?void 0:W.name)||"tool")}:${z}`))}):null,n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Raw wait payload"}),n.jsx(ao,{value:I,collapseAfterDepth:3,showCopy:!0})]})]}):null,H_(S)?n.jsx("div",{className:"warn_callout",children:H_(S)}):null,n.jsxs("div",{className:"runtime_detail_actions",children:[n.jsx("button",{className:"btn primary",onClick:()=>e.on_open_run(j),children:"Open Observe"}),n.jsx("button",{className:"btn",onClick:()=>e.on_open_ledger(j),children:"Open ledger"}),n.jsx("button",{className:"btn",onClick:()=>e.on_filter_artifacts(j),children:"Open artifacts"}),n.jsx("button",{className:"btn",onClick:e.on_open_logs,children:"Open logs"}),n.jsx("button",{className:"btn",onClick:()=>void Qr(j),children:"Copy run id"})]})]}):n.jsx("div",{className:"empty_state_inline",children:"Select a run to inspect why it is active or blocked."})})]})}function B2(e){const t=e.selected_artifact,r=["voice","music","sound","recording","audio","image","video","markdown","html","json","document","code","text","other"],o=[{value:"all",label:"Any time"},{value:"hour",label:"Last hour"},{value:"today",label:"Today"},{value:"week",label:"7 days"},{value:"month",label:"30 days"}],a=h.useMemo(()=>new Set(e.type_filters),[e.type_filters]),c=Math.max(0,Number(e.artifact_total_count||0)),u=Math.max(1,Number(e.artifact_page_size||500)),d=Math.max(1,Math.ceil(c/u)),m=Math.min(Math.max(0,Number(e.artifact_page||0)),d-1),_=c?m*u+1:0,p=Math.min(c,m*u+e.artifacts.length),x=h.useMemo(()=>{const W={},z=e.artifact_type_facets&&Object.keys(e.artifact_type_facets).length?e.artifact_type_facets:e.artifact_facets,P=(z==null?void 0:z.semantic_kind)||{},G=(z==null?void 0:z.render_kind)||{};for(const H of r)W[H]=Number(P[H]||G[H]||0);return W.audio=Number(P.audio||0),W.other=Number(P.other||0)+Number(P.artifact||0)+Number(P.binary||0)+Number(P["(none)"]||0),W},[e.artifact_facets,e.artifact_type_facets]),v=W=>{const z=new Set(a);z.has(W)?z.delete(W):z.add(W),e.on_type_filters_change(Array.from(z.values()))},b=h.useMemo(()=>{const W={waiting:[],running:[],failed:[],cancelled:[],completed:[],other:[]};for(const z of e.runs){const P=String(z.status||"").trim().toLowerCase();P==="waiting"?W.waiting.push(z):P==="running"?W.running.push(z):P==="failed"?W.failed.push(z):P==="cancelled"?W.cancelled.push(z):P==="completed"?W.completed.push(z):W.other.push(z)}return W},[e.runs]),S=t!=null&&t.run_id&&e.run_by_id[t.run_id]||null,j=e.artifact_run_filter?oo(e.run_by_id[e.artifact_run_filter],e.workflow_label_by_id):"",$=h.useMemo(()=>{var P;const W=new Set,z=((P=e.artifact_facets)==null?void 0:P.run_id)||{};for(const G of Object.keys(z))G&&G!=="(none)"&&W.add(G);for(const G of e.artifacts)G.run_id&&W.add(G.run_id);for(const G of e.active_runs)G.run_id&&W.add(String(G.run_id));return Array.from(W).map(G=>e.run_by_id[G]||{run_id:G,workflow_id:null,status:"",created_at:null,updated_at:null}).sort((G,H)=>{const re=ed(G.status)?0:1,N=ed(H.status)?0:1;if(re!==N)return re-N;const L=On(G.updated_at||G.created_at)??0;return(On(H.updated_at||H.created_at)??0)-L}).slice(0,160)},[e.artifacts,e.active_runs,e.run_by_id,e.artifact_facets]),T=W=>{e.on_artifact_run_filter_change(W),e.on_session_filter_change(""),e.on_scope_change(W?"run":"all")},F=W=>e.gateway_connected?Math.max(0,Number(W||0)).toLocaleString():"—",B=e.selected_run_id&&e.run_by_id[e.selected_run_id]||null,I=h.useMemo(()=>{const W=e.runtime_log_query.trim().toLowerCase(),z=e.runtime_ledger_log_items||[];return W?z.filter(P=>{var re,N;const G=P.record||{};return[P.cursor,G.run_id,G.node_id,G.status,(re=G.effect)==null?void 0:re.type,G.started_at,G.ended_at,hs(((N=G.effect)==null?void 0:N.payload)??{},900),hs(G.result??{},900)].join(" ").toLowerCase().includes(W)}):z},[e.runtime_ledger_log_items,e.runtime_log_query]),U=h.useMemo(()=>{const W=e.runtime_log_query.trim().toLowerCase(),z=Cv(e.runtime_ledger_log_items);return W?z.filter(P=>[P.provider,P.model,P.run_id,P.node_id,P.status,P.error,P.prompt_preview,P.response_preview,P.tokens.prompt,P.tokens.completion,P.tokens.total].join(" ").toLowerCase().includes(W)):z},[e.runtime_ledger_log_items,e.runtime_log_query]),te=U.reduce((W,z)=>W+(Number(z.tokens.total)||0),0),K=U.filter(W=>W.missing_response||W.error).length,le=h.useMemo(()=>{const W=e.runtime_log_query.trim().toLowerCase(),z=String(e.audit_log_text||"").replace(/\r\n/g,`
|
|
161
|
-
`).replace(/\r/g,`
|
|
162
|
-
`).split(`
|
|
163
|
-
`).filter(Boolean);return W?z.filter(P=>P.toLowerCase().includes(W)):z},[e.audit_log_text,e.runtime_log_query]),ce=e.runtime_log_source==="run_ledger"||e.runtime_log_source==="provider_calls",pe=e.runtime_log_source==="run_ledger"?"Selected Run Ledger":e.runtime_log_source==="provider_calls"?"Provider Calls":"Gateway HTTP Audit",Re=e.runtime_log_source==="run_ledger"?"Runtime execution records for the selected workflow run.":e.runtime_log_source==="provider_calls"?"Model/provider call records extracted from the selected run ledger.":"Global Gateway HTTP/audit tail. This is system activity, not artifact provenance.";return n.jsxs("div",{className:"page runtime_page",children:[n.jsxs("section",{className:"runtime_header",children:[n.jsxs("div",{children:[n.jsx("div",{className:"run_hero_eyebrow",children:"Runtime explorer"}),n.jsx("h2",{children:e.tab==="activity"?"Activity monitor":e.tab==="artifacts"?"Artifact explorer":"Runtime logs"}),n.jsxs("div",{className:"run_hero_meta",children:[n.jsx("span",{className:`status_pill ${e.gateway_connected?"ok":"warn"}`,children:e.gateway_connected?"gateway connected":"gateway offline"}),e.tab==="artifacts"&&e.artifact_run_filter?n.jsxs("span",{className:"mono",children:["filtered run ",Vt(e.artifact_run_filter,18)]}):null,e.session_id?n.jsxs("span",{className:"mono",children:["session ",Vt(e.session_id,18)]}):null]})]}),n.jsxs("div",{className:"metric_grid compact runtime_header_metrics",children:[n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Waiting"}),n.jsx("strong",{children:F(b.waiting.length)})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Running"}),n.jsx("strong",{children:F(b.running.length)})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Failed"}),n.jsx("strong",{children:F(b.failed.length)})]}),n.jsxs("div",{className:"metric_tile",children:[n.jsx("span",{children:"Artifacts"}),n.jsx("strong",{children:F(c)})]})]})]}),n.jsx("nav",{className:"runtime_mode_tabs",role:"tablist","aria-label":"Runtime sections",children:["activity","artifacts","logs"].map(W=>n.jsxs("button",{role:"tab","aria-selected":e.tab===W,className:`runtime_mode_tab ${e.tab===W?"active":""}`,onClick:()=>e.on_tab_change(W),children:[n.jsx(hn,{name:W==="activity"?"history":W==="artifacts"?"download":"terminal",size:14}),n.jsx("span",{children:W==="activity"?"Activity":W==="artifacts"?"Artifacts":"Logs"})]},W))}),e.gateway_connected?null:n.jsxs("div",{className:"runtime_offline_banner",role:"status",children:[n.jsxs("div",{children:[n.jsx("strong",{children:"Gateway offline"}),n.jsx("span",{children:"Runtime activity, artifacts, and logs are unavailable until the gateway reconnects."})]}),n.jsxs("div",{children:[n.jsx("button",{className:"btn primary",onClick:e.on_reconnect,children:"Reconnect"}),n.jsx("button",{className:"btn",onClick:e.on_open_settings,children:"Settings"})]})]}),e.error?n.jsx("div",{className:"warn_callout",children:e.error}):null,e.tab==="activity"?n.jsx(D2,{gateway_connected:e.gateway_connected,runs:e.runs,artifacts:e.artifacts,selected_run_id:e.selected_run_id,workflow_label_by_id:e.workflow_label_by_id,on_select_run:e.on_select_run,on_open_run:e.on_open_run,on_open_ledger:e.on_open_ledger,on_refresh_runs:e.on_refresh_runs,on_reconnect:e.on_reconnect,on_open_logs:()=>e.on_tab_change("logs"),on_filter_artifacts:W=>{T(W),e.on_select_run(W),e.on_tab_change("artifacts")},on_filter_session_artifacts:W=>{W&&(e.on_artifact_run_filter_change(""),e.on_session_filter_change(W),e.on_scope_change("session"),e.on_tab_change("artifacts"))}}):null,e.tab==="artifacts"?n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"runtime_artifact_toolbar","aria-label":"Find artifacts",children:[n.jsxs("div",{className:"runtime_artifact_toolbar_top",children:[n.jsxs("label",{className:"artifact_filter_field artifact_filter_search",children:[n.jsx("span",{children:"Search"}),n.jsx("input",{className:"mono",value:e.query,onChange:W=>e.on_query_change(W.target.value),placeholder:"title, path, hash, run, workflow, tag"})]}),n.jsxs("label",{className:"artifact_filter_field",children:[n.jsx("span",{children:"Scope"}),n.jsxs("select",{className:"mono seg_select",value:e.scope,onChange:W=>{const z=W.target.value;z!=="run"&&e.on_artifact_run_filter_change(""),z==="session"?e.on_session_filter_change(e.session_id):e.on_session_filter_change(""),e.on_scope_change(z)},children:[n.jsx("option",{value:"all",children:"All runtime"}),n.jsx("option",{value:"session",children:"This session"}),n.jsx("option",{value:"run",children:"Selected run"})]})]}),n.jsxs("label",{className:"artifact_filter_field",children:[n.jsx("span",{children:"Group"}),n.jsxs("select",{className:"mono seg_select",value:e.group_by,onChange:W=>e.on_group_by_change(W.target.value),children:[n.jsx("option",{value:"type",children:"Type"}),n.jsx("option",{value:"time",children:"Date"}),n.jsx("option",{value:"turn",children:"Turn"}),n.jsx("option",{value:"node",children:"Node"}),n.jsx("option",{value:"workflow",children:"Workflow"}),n.jsx("option",{value:"run",children:"Run"}),n.jsx("option",{value:"location",children:"Location"}),n.jsx("option",{value:"source",children:"Source"})]})]}),n.jsxs("label",{className:"artifact_filter_field",children:[n.jsx("span",{children:"Sort"}),n.jsxs("select",{className:"mono seg_select",value:e.sort_by,onChange:W=>e.on_sort_by_change(W.target.value),children:[n.jsx("option",{value:"newest",children:"Newest"}),n.jsx("option",{value:"oldest",children:"Oldest"}),n.jsx("option",{value:"last_access",children:"Last accessed"}),n.jsx("option",{value:"turn",children:"Turn order"}),n.jsx("option",{value:"type",children:"Type"}),n.jsx("option",{value:"size_desc",children:"Largest"}),n.jsx("option",{value:"size_asc",children:"Smallest"})]})]}),n.jsxs("button",{className:"btn btn_icon",onClick:e.on_refresh_artifacts,disabled:!e.gateway_connected||e.loading,children:[n.jsx(hn,{name:"refresh",size:14}),e.loading?"Loading…":"Refresh"]})]}),n.jsxs("div",{className:"artifact_filter_section",children:[n.jsxs("div",{className:"artifact_filter_label",children:["Type ",n.jsx("span",{className:"muted",children:"OR"})]}),n.jsxs("div",{className:"artifact_filter_chips",role:"group","aria-label":"Artifact type filters combine with OR",children:[r.map(W=>{const z=a.has(W),P=x[W]||0,G=m2(W);return n.jsxs("button",{type:"button","aria-pressed":z,"aria-label":`${z?"Remove":"Add"} ${G} artifact type filter. Type filters combine with OR.`,title:`${z?"Remove":"Add"} ${G}. Type filters combine with OR.`,className:`artifact_filter_chip ${z?"active":""}`,onClick:()=>v(W),children:[n.jsx("span",{children:G}),n.jsx("span",{className:"mono",children:e.gateway_connected?P.toLocaleString():"—"})]},W)}),e.type_filters.length?n.jsx("button",{type:"button",className:"artifact_filter_chip clear",onClick:()=>e.on_type_filters_change([]),children:"Clear types"}):null]})]}),n.jsxs("div",{className:"artifact_filter_section",children:[n.jsx("div",{className:"artifact_filter_label",children:"Date"}),n.jsx("div",{className:"artifact_filter_chips",role:"group","aria-label":"Artifact date filters",children:o.map(W=>n.jsx("button",{type:"button","aria-pressed":e.date_filter===W.value,className:`artifact_filter_chip ${e.date_filter===W.value?"active":""}`,onClick:()=>e.on_date_filter_change(W.value),children:W.label},W.value))})]})]}),n.jsx("div",{className:"artifact_scope_banner",children:e.artifact_run_filter?n.jsxs(n.Fragment,{children:["Showing artifacts for ",n.jsx("strong",{children:j||Vt(e.artifact_run_filter,18)}),".",n.jsx("button",{className:"btn",onClick:()=>T(""),children:"Show all"})]}):n.jsxs(n.Fragment,{children:["Showing artifacts across the selected runtime scope. Select a run to filter the inventory. ",e.artifact_total_bytes?n.jsxs("span",{className:"mono muted",children:["Total size ",rc(e.artifact_total_bytes)]}):null]})}),n.jsxs("div",{className:"runtime_artifacts_layout",children:[n.jsxs("aside",{className:"artifact_filter_rail",children:[n.jsxs("button",{className:`artifact_filter_run ${e.artifact_run_filter?"":"selected"}`,onClick:()=>T(""),children:[n.jsx("strong",{children:"All artifacts"}),n.jsx("span",{children:e.gateway_connected?`${c.toLocaleString()} match${c===1?"":"es"}`:"counts unavailable"})]}),$.map(W=>{const z=String(W.run_id||"").trim(),P=z===e.artifact_run_filter||z===(t==null?void 0:t.run_id);return n.jsxs("button",{className:`artifact_filter_run ${P?"selected":""}`,onClick:()=>T(z),title:z,children:[n.jsx("strong",{children:oo(W,e.workflow_label_by_id)}),n.jsx("span",{className:"mono",children:Vt(z,15)}),n.jsx("span",{children:Gc(W)})]},z)})]}),n.jsxs("section",{className:"runtime_artifact_browser",children:[n.jsxs("div",{className:"overview_panel_header artifact_browser_header",children:[n.jsxs("div",{children:[n.jsx("h3",{children:"Artifact Explorer"}),n.jsx("span",{className:"mono muted",children:c?`${_.toLocaleString()}-${p.toLocaleString()} of ${c.toLocaleString()}`:"0 items"})]}),d>1?n.jsxs("div",{className:"artifact_pagination","aria-label":"Artifact pages",children:[n.jsx("button",{className:"btn",onClick:()=>e.on_artifact_page_change(0),disabled:m<=0,children:"First"}),n.jsx("button",{className:"btn",onClick:()=>e.on_artifact_page_change(m-1),disabled:m<=0,children:"Prev"}),n.jsxs("span",{className:"mono muted",children:["Page ",(m+1).toLocaleString()," / ",d.toLocaleString()]}),n.jsx("button",{className:"btn",onClick:()=>e.on_artifact_page_change(m+1),disabled:m>=d-1,children:"Next"}),n.jsx("button",{className:"btn",onClick:()=>e.on_artifact_page_change(d-1),disabled:m>=d-1,children:"Last"})]}):null]}),e.artifact_groups.length?null:n.jsx("div",{className:"empty_state_inline",children:e.gateway_connected?"No artifacts match the current filters.":"Gateway offline. Artifact inventory cannot be loaded until the connection is restored."}),n.jsx("div",{className:"artifact_group_list",children:e.artifact_groups.map(W=>n.jsxs("section",{className:"artifact_group",children:[n.jsxs("div",{className:"artifact_group_header",children:[n.jsx("span",{children:W.key}),n.jsx("span",{className:"mono",children:W.items.length})]}),W.items.map(z=>{var N;const P=z.run_id&&e.run_by_id[z.run_id]||null,G=P?oo(P,e.workflow_label_by_id):xp(z),H=q_(z),re=Number(((N=z.access)==null?void 0:N.access_count)||0)||0;return n.jsxs("button",{className:`artifact_row ${(t==null?void 0:t.artifact_id)===z.artifact_id?"selected":""}`,onClick:()=>{e.on_select_artifact(z.artifact_id),z.run_id&&e.on_select_run(z.run_id)},title:z.artifact_id,children:[n.jsx(V_,{artifact:z,size:18}),n.jsxs("div",{className:"artifact_row_main",children:[n.jsxs("div",{className:"artifact_row_title",children:[n.jsx("strong",{children:W_(Jm(z,e.run_by_id,e.workflow_label_by_id))}),n.jsx("span",{className:"artifact_type_badge",children:td(z)}),z.render_kind&&z.render_kind!==z.semantic_kind?n.jsx("span",{className:"artifact_type_badge muted",children:z.render_kind}):null,z.legacy_inferred?n.jsx("span",{className:"artifact_type_badge inferred",children:"legacy inferred"}):null]}),n.jsxs("div",{className:"artifact_row_facts",children:[n.jsxs("span",{children:[n.jsx("b",{children:"Created"})," ",p2(z)]}),n.jsxs("span",{children:[n.jsx("b",{children:"Size"})," ",rc(z.size_bytes)]}),n.jsxs("span",{children:[n.jsx("b",{children:"Last seen"})," ",cy(z)]}),re?n.jsxs("span",{children:[n.jsx("b",{children:"Accesses"})," ",re.toLocaleString()]}):null,H?n.jsxs("span",{children:[n.jsx("b",{children:"Media"})," ",H]}):null,z.content_type?n.jsxs("span",{children:[n.jsx("b",{children:"MIME"})," ",z.content_type]}):null]}),n.jsxs("div",{className:"artifact_row_facts secondary",children:[G?n.jsxs("span",{children:[n.jsx("b",{children:"Workflow"})," ",G]}):null,z.run_id?n.jsxs("span",{className:"mono",children:[n.jsx("b",{children:"Run"})," ",Vt(z.run_id,13)]}):null,n.jsxs("span",{children:[n.jsx("b",{children:"Turn"})," ",Xm(z)]}),Wc(z)?n.jsxs("span",{className:"mono",children:[n.jsx("b",{children:"Node"})," ",Wc(z)]}):null,Ef(z)?n.jsxs("span",{children:[n.jsx("b",{children:"Source"})," ",Ef(z)]}):null]}),n.jsxs("div",{className:"artifact_row_facts tertiary",children:[n.jsxs("span",{className:"mono",children:[n.jsx("b",{children:"ID"})," ",Vt(z.artifact_id,22)]}),n.jsxs("span",{children:[n.jsx("b",{children:"Provenance"})," ",U_(z)]})]}),uy(z)?n.jsx("div",{className:"artifact_row_path mono",children:uy(z)}):null]})]},z.artifact_id)})]},W.key))})]}),n.jsx("aside",{className:"runtime_detail",children:n.jsxs("section",{className:"overview_panel runtime_artifact_detail",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsx("h3",{children:"Artifact Detail"}),t?n.jsx("span",{className:"chip mono muted",children:e.embedded_preview.render_kind?Km(t,e.run_by_id,e.workflow_label_by_id,e.embedded_preview.text):Km(t,e.run_by_id,e.workflow_label_by_id)}):null]}),t?n.jsxs(n.Fragment,{children:[(()=>{var N,L,q,C,X,se,ie;const W=Av(t),z=vp(t),P=q_(t),G=Number(((N=t.access)==null?void 0:N.access_count)||0)||0,H=Hn((L=t.links)==null?void 0:L.provider_trace,(q=t.links)==null?void 0:q.provider_trace_url,(C=t.links)==null?void 0:C.provider_trace_id),re=Hn((X=t.links)==null?void 0:X.audit,(se=t.links)==null?void 0:se.audit_tail,(ie=t.links)==null?void 0:ie.audit_url);return n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"artifact_detail_header",children:[n.jsx(V_,{artifact:t,size:22}),n.jsxs("div",{children:[n.jsx("div",{className:"artifact_detail_title",children:W_(Jm(t,e.run_by_id,e.workflow_label_by_id))}),n.jsxs("div",{className:"artifact_detail_subtitle",children:[td(t)," • ",t.render_kind||e.embedded_preview.render_kind||t.modality||"artifact"," • ",t.content_type||"unknown MIME"," • ",rc(t.size_bytes),t.legacy_inferred?" • legacy inferred":""]})]})]}),n.jsx(zv,{artifact:t,preview:e.embedded_preview}),n.jsxs("div",{className:"artifact_detail_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Semantic type"}),n.jsx("strong",{children:td(t)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Render kind"}),n.jsx("strong",{children:t.render_kind||e.embedded_preview.render_kind||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Created"}),n.jsx("strong",{children:Ii(t.created_at)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Size"}),n.jsx("strong",{children:rc(t.size_bytes)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Last seen"}),n.jsx("strong",{children:cy(t)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Accesses"}),n.jsx("strong",{children:G?G.toLocaleString():"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Run"}),n.jsx("strong",{className:"mono",children:t.run_id?Vt(t.run_id,24):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Workflow"}),n.jsx("strong",{children:S?oo(S,e.workflow_label_by_id):"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Turn"}),n.jsx("strong",{children:Xm(t)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Node"}),n.jsx("strong",{className:"mono",children:Wc(t)||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Provider/model"}),n.jsx("strong",{children:z||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Media facts"}),n.jsx("strong",{children:P||"—"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Trace"}),n.jsx("strong",{children:t.provider_trace_available?"available":"not recorded"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Provenance"}),n.jsx("strong",{children:U_(t)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Artifact id"}),n.jsx("strong",{className:"mono",children:Vt(t.artifact_id,30)})]}),t.sha256?n.jsxs("div",{children:[n.jsx("span",{children:"sha256"}),n.jsx("strong",{className:"mono",children:Vt(t.sha256,30)})]}):null]}),W?n.jsxs("div",{className:"artifact_provenance_panel",children:[n.jsx("div",{className:"artifact_filter_label",children:"Generation prompt / input"}),n.jsx("div",{className:"artifact_prompt_text",children:W})]}):n.jsxs("div",{className:"artifact_provenance_panel muted",children:[n.jsx("div",{className:"artifact_filter_label",children:"Generation prompt / input"}),n.jsx("div",{className:"artifact_prompt_text",children:"Generation prompt not recorded by the runtime artifact descriptor."})]}),Object.keys(t.generation||{}).length||Object.keys(t.producer||{}).length?n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Generation and producer metadata"}),n.jsx(ao,{value:{generation:t.generation,producer:t.producer,source_refs:t.source_refs},collapseAfterDepth:3,showCopy:!0})]}):null,t.source_path?n.jsx("div",{className:"artifact_detail_path mono",children:t.source_path}):null,n.jsxs("div",{className:"runtime_detail_actions",children:[n.jsx("button",{className:"btn primary",onClick:()=>e.on_preview_artifact(t),disabled:!t.run_id,children:e.embedded_preview.render_kind==="html"?"Open as web page":"Open full preview"}),n.jsx("button",{className:"btn",onClick:()=>e.on_download_artifact(t),disabled:!t.run_id,children:"Download"}),n.jsx("button",{className:"btn",onClick:()=>T(t.run_id),disabled:!t.run_id,children:"Show run artifacts"}),n.jsx("button",{className:"btn",onClick:()=>e.on_open_run(t.run_id),disabled:!t.run_id,children:"Open in Observe"}),n.jsx("button",{className:"btn",onClick:()=>e.on_open_ledger(t.run_id),disabled:!t.run_id,children:"Open run ledger"}),n.jsx("button",{className:"btn",onClick:()=>{H&&window.open(H,"_blank","noopener,noreferrer")},disabled:!H,children:"Open provider trace"}),n.jsx("button",{className:"btn",onClick:()=>{re?window.open(re,"_blank","noopener,noreferrer"):e.on_tab_change("logs")},disabled:!re&&!t.audit_available,children:"Open audit trail"}),n.jsx("button",{className:"btn",onClick:()=>void Qr(t.artifact_id),disabled:!t.artifact_id,children:"Copy artifact id"})]})]})})(),n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Raw metadata"}),n.jsx(ao,{value:t.raw,collapseAfterDepth:3,showCopy:!0})]})]}):n.jsx("div",{className:"empty_state_inline",children:"Select an artifact to inspect metadata, preview, or download content."})]})})]})]}):null,e.tab==="logs"?n.jsxs("section",{className:"overview_panel runtime_logs_panel",children:[n.jsxs("div",{className:"overview_panel_header",children:[n.jsxs("div",{children:[n.jsx("h3",{children:pe}),n.jsx("div",{className:"mono muted",children:Re})]}),n.jsxs("div",{className:"actions",style:{marginTop:0},children:[ce&&e.runtime_ledger_log_meta?n.jsx("span",{className:"mono muted",children:e.runtime_ledger_log_meta}):null,e.runtime_log_source==="gateway_audit"&&e.audit_log_meta?n.jsx("span",{className:"mono muted",children:e.audit_log_meta}):null,n.jsxs("button",{className:"btn btn_icon",onClick:()=>{ce?e.on_refresh_runtime_ledger(e.selected_run_id):e.on_refresh_audit()},disabled:ce?e.runtime_ledger_log_loading:e.audit_log_loading,children:[n.jsx(hn,{name:"refresh",size:14}),ce?e.runtime_ledger_log_loading?"Loading…":"Refresh":e.audit_log_loading?"Loading…":"Refresh"]})]})]}),n.jsxs("div",{className:"runtime_log_toolbar",children:[n.jsxs("div",{className:"seg_toggle mono",children:[n.jsx("button",{className:`seg_btn ${e.runtime_log_source==="run_ledger"?"active":""}`,onClick:()=>e.on_runtime_log_source_change("run_ledger"),children:"Run ledger"}),n.jsx("button",{className:`seg_btn ${e.runtime_log_source==="provider_calls"?"active":""}`,onClick:()=>e.on_runtime_log_source_change("provider_calls"),children:"Provider calls"}),n.jsx("button",{className:`seg_btn ${e.runtime_log_source==="gateway_audit"?"active":""}`,onClick:()=>e.on_runtime_log_source_change("gateway_audit"),children:"Gateway audit"})]}),n.jsx("input",{className:"mono",value:e.runtime_log_query,onChange:W=>e.on_runtime_log_query_change(W.target.value),placeholder:"Search node, status, effect, payload, error"})]}),e.runtime_log_source==="run_ledger"?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"runtime_log_context",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Selected run"}),n.jsx("strong",{children:B?oo(B,e.workflow_label_by_id):e.selected_run_id?Vt(e.selected_run_id,24):"No run selected"}),e.selected_run_id?n.jsx("em",{className:"mono",children:Vt(e.selected_run_id,34)}):null]}),n.jsxs("div",{children:[n.jsx("span",{children:"Session"}),n.jsx("strong",{className:"mono",children:B!=null&&B.session_id?Vt(String(B.session_id),28):e.session_id?Vt(e.session_id,28):"—"})]}),n.jsxs("div",{className:"runtime_log_context_actions",children:[n.jsx("button",{className:"btn",onClick:()=>e.on_open_run(e.selected_run_id),disabled:!e.selected_run_id,children:"Open Observe"}),n.jsx("button",{className:"btn",onClick:()=>T(e.selected_run_id),disabled:!e.selected_run_id,children:"Run artifacts"})]})]}),e.runtime_ledger_log_error?n.jsx("div",{className:"warn_callout",children:e.runtime_ledger_log_error}):null,e.selected_run_id?null:n.jsx("div",{className:"empty_state_inline",children:"Select a run in Activity or Artifact Explorer to inspect its runtime ledger."}),e.selected_run_id&&!I.length&&!e.runtime_ledger_log_loading?n.jsx("div",{className:"empty_state_inline",children:"No ledger records match the current search."}):null,n.jsx("div",{className:"runtime_log_event_list","aria-label":"Selected run ledger records",children:I.map(W=>{var X,se;const z=W.record||{},P=String(((X=z==null?void 0:z.effect)==null?void 0:X.type)||"").trim(),G=String((z==null?void 0:z.status)||"").trim(),H=String((z==null?void 0:z.node_id)||"").trim(),re=Hn(z==null?void 0:z.ended_at,z==null?void 0:z.started_at,z==null?void 0:z.ts),N=Zo(z),L=wv(z),q=P?Ft(hs(((se=z==null?void 0:z.effect)==null?void 0:se.payload)??{},1200),{max_chars:1200,max_lines:6}):"",C=dh(z)||(N?`Waiting for ${String(N.reason||"input")}`:"")||((z==null?void 0:z.result)!==void 0?hs(z.result,700):"");return n.jsxs("article",{className:`runtime_log_event ${wp(G)}`,children:[n.jsxs("div",{className:"runtime_log_event_header",children:[n.jsxs("span",{className:"mono",children:["#",W.cursor]}),n.jsx(ml,{status:G||"record"}),P?n.jsx("span",{className:"chip mono muted",children:P}):null,H?n.jsx("strong",{className:"mono",children:H}):null,re?n.jsx("span",{className:"mono muted",children:Ii(re)}):null]}),n.jsxs("div",{className:"runtime_log_event_body",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Request / activity"}),n.jsx("p",{children:[L||Pm(z),q&&q!=="{}"?q:""].filter(Boolean).join(`
|
|
164
|
-
`)})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Outcome"}),n.jsx("p",{children:Ft(C||"—",{max_chars:1200,max_lines:6})})]})]}),n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Raw ledger record"}),n.jsx(ao,{value:z,collapseAfterDepth:3,showCopy:!0})]})]},`${e.selected_run_id}:${W.cursor}`)})})]}):e.runtime_log_source==="provider_calls"?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"runtime_log_context",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Selected run"}),n.jsx("strong",{children:B?oo(B,e.workflow_label_by_id):e.selected_run_id?Vt(e.selected_run_id,24):"No run selected"}),e.selected_run_id?n.jsx("em",{className:"mono",children:Vt(e.selected_run_id,34)}):null]}),n.jsxs("div",{children:[n.jsx("span",{children:"Provider calls"}),n.jsx("strong",{children:U.length.toLocaleString()}),n.jsx("em",{className:"mono",children:te?`${te.toLocaleString()} tokens`:"tokens not recorded"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Issues"}),n.jsx("strong",{children:K.toLocaleString()})]}),n.jsxs("div",{className:"runtime_log_context_actions",children:[n.jsx("button",{className:"btn",onClick:()=>e.on_open_run(e.selected_run_id),disabled:!e.selected_run_id,children:"Open Observe"}),n.jsx("button",{className:"btn",onClick:()=>e.on_runtime_log_source_change("run_ledger"),disabled:!e.selected_run_id,children:"Run ledger"})]})]}),e.runtime_ledger_log_error?n.jsx("div",{className:"warn_callout",children:e.runtime_ledger_log_error}):null,e.selected_run_id?null:n.jsx("div",{className:"empty_state_inline",children:"Select a run in Activity or Artifact Explorer to inspect provider calls."}),e.selected_run_id&&!U.length&&!e.runtime_ledger_log_loading?n.jsx("div",{className:"empty_state_inline",children:"No provider calls are present in the selected run ledger, or none match the current search."}):null,n.jsx("div",{className:"provider_activity_list runtime_provider_log_list",children:U.map(W=>n.jsxs("article",{className:`provider_activity ${W.error||W.missing_response?"danger":""}`,children:[n.jsxs("div",{className:"provider_activity_header",children:[n.jsxs("div",{children:[n.jsx("h4",{children:[W.provider||"provider unknown",W.model||"model unknown"].join(" / ")}),n.jsxs("div",{className:"timeline_subtitle",children:[W.node_id?n.jsx("span",{className:"mono",children:W.node_id}):null,W.run_id?n.jsx("span",{className:"mono",children:Vt(W.run_id,16)}):null,n.jsx("span",{children:fh(W.duration_ms)}),W.status?n.jsx(ml,{status:W.status}):null]})]}),n.jsxs("div",{className:"provider_tokens mono",children:[W.tokens.total?W.tokens.total.toLocaleString():"—"," tokens"]})]}),n.jsxs("div",{className:"provider_preview_grid",children:[n.jsxs("div",{children:[n.jsx("span",{children:"Prompt / messages"}),n.jsx("p",{children:W.prompt_preview||"No prompt payload captured"})]}),n.jsxs("div",{children:[n.jsx("span",{children:"Response / error"}),n.jsx("p",{children:W.response_preview||W.error||"No response captured"})]})]}),n.jsxs("details",{className:"runtime_raw_details",children:[n.jsx("summary",{className:"mono muted",children:"Raw provider ledger record"}),n.jsx(ao,{value:W.raw,collapseAfterDepth:3,showCopy:!0})]})]},W.id))})]}):n.jsxs(n.Fragment,{children:[e.audit_log_error?n.jsx("div",{className:"warn_callout",children:e.audit_log_error}):null,n.jsx("pre",{className:"mono audit_log_tail",children:le.length?le.join(`
|
|
165
|
-
`):"(audit tail not loaded or no lines match search)"})]})]}):null]})}function U2(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,a=typeof(o==null?void 0:o.label)=="string"&&o.label.trim()?o.label.trim():r||t.title,c=typeof(o==null?void 0:o.type)=="string"&&o.type.trim()?o.type.trim():"",u=typeof(o==null?void 0:o.headerColor)=="string"&&o.headerColor.trim()?o.headerColor.trim():"",d=t.kind==="step"?a:t.title,m=u||(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(),p=_.toLowerCase(),x=p==="completed"?"ok":p==="failed"?"danger":p==="waiting"?"warn":p==="running"?"info":"muted",v=dh(t.data),b=!!(v&&v.trim()),S=ul(t.ts);return n.jsxs("div",{className:`lc ${x}`,style:{"--lc-accent":m},children:[n.jsxs("div",{className:"lc_header",children:[n.jsx("span",{className:"lc_title",children:d}),n.jsxs("div",{className:"lc_header_right",children:[_?n.jsx("span",{className:`lc_status ${x}`,children:_}):null,n.jsx("span",{className:"lc_time",title:t.ts,children:S})]})]}),n.jsxs("div",{className:"lc_meta",children:[c?n.jsx("span",{className:"lc_chip",children:c}):null,t.effect_type?n.jsx("span",{className:"lc_chip",children:String(t.effect_type)}):null,t.cursor?n.jsxs("span",{className:"lc_chip",children:["#",t.cursor]}):null,t.run_id?n.jsx("span",{className:"lc_chip",children:Vt(String(t.run_id),10)}):null,t.kind!=="step"&&r?n.jsx("span",{className:"lc_chip",children:r}):null]}),t.preview?n.jsx("div",{className:"lc_preview",children:t.preview}):null,t.data?n.jsxs("div",{className:"lc_actions",children:[b?n.jsxs(n.Fragment,{children:[n.jsx("button",{className:"lc_btn",onClick:e.on_toggle_response,children:e.response_open?"Fold Response":"Unfold Response"}),n.jsx("button",{className:"lc_btn",onClick:()=>e.on_copy(String(v||"")),children:"Copy Response"})]}):null,n.jsx("button",{className:"lc_btn",onClick:e.on_toggle,children:e.open?"Fold JSON":"Unfold JSON"}),n.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?n.jsx("div",{className:"lc_body",children:n.jsx(ts,{text:String(v||"")})}):null,e.open&&t.data?n.jsx("div",{className:"lc_body lc_body_json mono",children:n.jsx(ao,{value:t.data,collapseAfterDepth:3,showCopy:!1})}):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())})}Zv.createRoot(document.getElementById("root")).render(n.jsx(Ae.StrictMode,{children:n.jsx(x2,{})}));
|
|
166
|
-
//# sourceMappingURL=index-B15Wt8-t.js.map
|