@tea-agent/loop-agent 0.34.3 → 0.34.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ (function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))u(f);new MutationObserver(f=>{for(const h of f)if(h.type==="childList")for(const m of h.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&u(m)}).observe(document,{childList:!0,subtree:!0});function r(f){const h={};return f.integrity&&(h.integrity=f.integrity),f.referrerPolicy&&(h.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?h.credentials="include":f.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function u(f){if(f.ep)return;f.ep=!0;const h=r(f);fetch(f.href,h)}})();var lc={exports:{}},ol={};var Cm;function sv(){if(Cm)return ol;Cm=1;var s=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function r(u,f,h){var m=null;if(h!==void 0&&(m=""+h),f.key!==void 0&&(m=""+f.key),"key"in f){h={};for(var v in f)v!=="key"&&(h[v]=f[v])}else h=f;return f=h.ref,{$$typeof:s,type:u,key:m,ref:f!==void 0?f:null,props:h}}return ol.Fragment=i,ol.jsx=r,ol.jsxs=r,ol}var Em;function lv(){return Em||(Em=1,lc.exports=sv()),lc.exports}var l=lv(),ic={exports:{}},xe={};var km;function iv(){if(km)return xe;km=1;var s=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),m=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),S=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),L=Symbol.iterator;function C(y){return y===null||typeof y!="object"?null:(y=L&&y[L]||y["@@iterator"],typeof y=="function"?y:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},O=Object.assign,F={};function te(y,A,X){this.props=y,this.context=A,this.refs=F,this.updater=X||z}te.prototype.isReactComponent={},te.prototype.setState=function(y,A){if(typeof y!="object"&&typeof y!="function"&&y!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,y,A,"setState")},te.prototype.forceUpdate=function(y){this.updater.enqueueForceUpdate(this,y,"forceUpdate")};function N(){}N.prototype=te.prototype;function I(y,A,X){this.props=y,this.context=A,this.refs=F,this.updater=X||z}var D=I.prototype=new N;D.constructor=I,O(D,te.prototype),D.isPureReactComponent=!0;var Z=Array.isArray;function q(){}var _={H:null,A:null,T:null,S:null},le=Object.prototype.hasOwnProperty;function oe(y,A,X){var Y=X.ref;return{$$typeof:s,type:y,key:A,ref:Y!==void 0?Y:null,props:X}}function ne(y,A){return oe(y.type,A,y.props)}function Q(y){return typeof y=="object"&&y!==null&&y.$$typeof===s}function ie(y){var A={"=":"=0",":":"=2"};return"$"+y.replace(/[=:]/g,function(X){return A[X]})}var fe=/\/+/g;function W(y,A){return typeof y=="object"&&y!==null&&y.key!=null?ie(""+y.key):A.toString(36)}function G(y){switch(y.status){case"fulfilled":return y.value;case"rejected":throw y.reason;default:switch(typeof y.status=="string"?y.then(q,q):(y.status="pending",y.then(function(A){y.status==="pending"&&(y.status="fulfilled",y.value=A)},function(A){y.status==="pending"&&(y.status="rejected",y.reason=A)})),y.status){case"fulfilled":return y.value;case"rejected":throw y.reason}}throw y}function b(y,A,X,Y,ue){var re=typeof y;(re==="undefined"||re==="boolean")&&(y=null);var ae=!1;if(y===null)ae=!0;else switch(re){case"bigint":case"string":case"number":ae=!0;break;case"object":switch(y.$$typeof){case s:case i:ae=!0;break;case R:return ae=y._init,b(ae(y._payload),A,X,Y,ue)}}if(ae)return ue=ue(y),ae=Y===""?"."+W(y,0):Y,Z(ue)?(X="",ae!=null&&(X=ae.replace(fe,"$&/")+"/"),b(ue,A,X,"",function(ye){return ye})):ue!=null&&(Q(ue)&&(ue=ne(ue,X+(ue.key==null||y&&y.key===ue.key?"":(""+ue.key).replace(fe,"$&/")+"/")+ae)),A.push(ue)),1;ae=0;var de=Y===""?".":Y+":";if(Z(y))for(var ce=0;ce<y.length;ce++)Y=y[ce],re=de+W(Y,ce),ae+=b(Y,A,X,re,ue);else if(ce=C(y),typeof ce=="function")for(y=ce.call(y),ce=0;!(Y=y.next()).done;)Y=Y.value,re=de+W(Y,ce++),ae+=b(Y,A,X,re,ue);else if(re==="object"){if(typeof y.then=="function")return b(G(y),A,X,Y,ue);throw A=String(y),Error("Objects are not valid as a React child (found: "+(A==="[object Object]"?"object with keys {"+Object.keys(y).join(", ")+"}":A)+"). If you meant to render a collection of children, use an array instead.")}return ae}function E(y,A,X){if(y==null)return y;var Y=[],ue=0;return b(y,Y,"","",function(re){return A.call(X,re,ue++)}),Y}function w(y){if(y._status===-1){var A=y._result;A=A(),A.then(function(X){(y._status===0||y._status===-1)&&(y._status=1,y._result=X)},function(X){(y._status===0||y._status===-1)&&(y._status=2,y._result=X)}),y._status===-1&&(y._status=0,y._result=A)}if(y._status===1)return y._result.default;throw y._result}var ee=typeof reportError=="function"?reportError:function(y){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var A=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof y=="object"&&y!==null&&typeof y.message=="string"?String(y.message):String(y),error:y});if(!window.dispatchEvent(A))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",y);return}console.error(y)},$={map:E,forEach:function(y,A,X){E(y,function(){A.apply(this,arguments)},X)},count:function(y){var A=0;return E(y,function(){A++}),A},toArray:function(y){return E(y,function(A){return A})||[]},only:function(y){if(!Q(y))throw Error("React.Children.only expected to receive a single React element child.");return y}};return xe.Activity=j,xe.Children=$,xe.Component=te,xe.Fragment=r,xe.Profiler=f,xe.PureComponent=I,xe.StrictMode=u,xe.Suspense=S,xe.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=_,xe.__COMPILER_RUNTIME={__proto__:null,c:function(y){return _.H.useMemoCache(y)}},xe.cache=function(y){return function(){return y.apply(null,arguments)}},xe.cacheSignal=function(){return null},xe.cloneElement=function(y,A,X){if(y==null)throw Error("The argument must be a React element, but you passed "+y+".");var Y=O({},y.props),ue=y.key;if(A!=null)for(re in A.key!==void 0&&(ue=""+A.key),A)!le.call(A,re)||re==="key"||re==="__self"||re==="__source"||re==="ref"&&A.ref===void 0||(Y[re]=A[re]);var re=arguments.length-2;if(re===1)Y.children=X;else if(1<re){for(var ae=Array(re),de=0;de<re;de++)ae[de]=arguments[de+2];Y.children=ae}return oe(y.type,ue,Y)},xe.createContext=function(y){return y={$$typeof:m,_currentValue:y,_currentValue2:y,_threadCount:0,Provider:null,Consumer:null},y.Provider=y,y.Consumer={$$typeof:h,_context:y},y},xe.createElement=function(y,A,X){var Y,ue={},re=null;if(A!=null)for(Y in A.key!==void 0&&(re=""+A.key),A)le.call(A,Y)&&Y!=="key"&&Y!=="__self"&&Y!=="__source"&&(ue[Y]=A[Y]);var ae=arguments.length-2;if(ae===1)ue.children=X;else if(1<ae){for(var de=Array(ae),ce=0;ce<ae;ce++)de[ce]=arguments[ce+2];ue.children=de}if(y&&y.defaultProps)for(Y in ae=y.defaultProps,ae)ue[Y]===void 0&&(ue[Y]=ae[Y]);return oe(y,re,ue)},xe.createRef=function(){return{current:null}},xe.forwardRef=function(y){return{$$typeof:v,render:y}},xe.isValidElement=Q,xe.lazy=function(y){return{$$typeof:R,_payload:{_status:-1,_result:y},_init:w}},xe.memo=function(y,A){return{$$typeof:x,type:y,compare:A===void 0?null:A}},xe.startTransition=function(y){var A=_.T,X={};_.T=X;try{var Y=y(),ue=_.S;ue!==null&&ue(X,Y),typeof Y=="object"&&Y!==null&&typeof Y.then=="function"&&Y.then(q,ee)}catch(re){ee(re)}finally{A!==null&&X.types!==null&&(A.types=X.types),_.T=A}},xe.unstable_useCacheRefresh=function(){return _.H.useCacheRefresh()},xe.use=function(y){return _.H.use(y)},xe.useActionState=function(y,A,X){return _.H.useActionState(y,A,X)},xe.useCallback=function(y,A){return _.H.useCallback(y,A)},xe.useContext=function(y){return _.H.useContext(y)},xe.useDebugValue=function(){},xe.useDeferredValue=function(y,A){return _.H.useDeferredValue(y,A)},xe.useEffect=function(y,A){return _.H.useEffect(y,A)},xe.useEffectEvent=function(y){return _.H.useEffectEvent(y)},xe.useId=function(){return _.H.useId()},xe.useImperativeHandle=function(y,A,X){return _.H.useImperativeHandle(y,A,X)},xe.useInsertionEffect=function(y,A){return _.H.useInsertionEffect(y,A)},xe.useLayoutEffect=function(y,A){return _.H.useLayoutEffect(y,A)},xe.useMemo=function(y,A){return _.H.useMemo(y,A)},xe.useOptimistic=function(y,A){return _.H.useOptimistic(y,A)},xe.useReducer=function(y,A,X){return _.H.useReducer(y,A,X)},xe.useRef=function(y){return _.H.useRef(y)},xe.useState=function(y){return _.H.useState(y)},xe.useSyncExternalStore=function(y,A,X){return _.H.useSyncExternalStore(y,A,X)},xe.useTransition=function(){return _.H.useTransition()},xe.version="19.2.8",xe}var wm;function Rc(){return wm||(wm=1,ic.exports=iv()),ic.exports}var p=Rc(),rc={exports:{}},cl={},oc={exports:{}},cc={};var Am;function rv(){return Am||(Am=1,(function(s){function i(b,E){var w=b.length;b.push(E);e:for(;0<w;){var ee=w-1>>>1,$=b[ee];if(0<f($,E))b[ee]=E,b[w]=$,w=ee;else break e}}function r(b){return b.length===0?null:b[0]}function u(b){if(b.length===0)return null;var E=b[0],w=b.pop();if(w!==E){b[0]=w;e:for(var ee=0,$=b.length,y=$>>>1;ee<y;){var A=2*(ee+1)-1,X=b[A],Y=A+1,ue=b[Y];if(0>f(X,w))Y<$&&0>f(ue,X)?(b[ee]=ue,b[Y]=w,ee=Y):(b[ee]=X,b[A]=w,ee=A);else if(Y<$&&0>f(ue,w))b[ee]=ue,b[Y]=w,ee=Y;else break e}}return E}function f(b,E){var w=b.sortIndex-E.sortIndex;return w!==0?w:b.id-E.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;s.unstable_now=function(){return h.now()}}else{var m=Date,v=m.now();s.unstable_now=function(){return m.now()-v}}var S=[],x=[],R=1,j=null,L=3,C=!1,z=!1,O=!1,F=!1,te=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;function D(b){for(var E=r(x);E!==null;){if(E.callback===null)u(x);else if(E.startTime<=b)u(x),E.sortIndex=E.expirationTime,i(S,E);else break;E=r(x)}}function Z(b){if(O=!1,D(b),!z)if(r(S)!==null)z=!0,q||(q=!0,ie());else{var E=r(x);E!==null&&G(Z,E.startTime-b)}}var q=!1,_=-1,le=5,oe=-1;function ne(){return F?!0:!(s.unstable_now()-oe<le)}function Q(){if(F=!1,q){var b=s.unstable_now();oe=b;var E=!0;try{e:{z=!1,O&&(O=!1,N(_),_=-1),C=!0;var w=L;try{t:{for(D(b),j=r(S);j!==null&&!(j.expirationTime>b&&ne());){var ee=j.callback;if(typeof ee=="function"){j.callback=null,L=j.priorityLevel;var $=ee(j.expirationTime<=b);if(b=s.unstable_now(),typeof $=="function"){j.callback=$,D(b),E=!0;break t}j===r(S)&&u(S),D(b)}else u(S);j=r(S)}if(j!==null)E=!0;else{var y=r(x);y!==null&&G(Z,y.startTime-b),E=!1}}break e}finally{j=null,L=w,C=!1}E=void 0}}finally{E?ie():q=!1}}}var ie;if(typeof I=="function")ie=function(){I(Q)};else if(typeof MessageChannel<"u"){var fe=new MessageChannel,W=fe.port2;fe.port1.onmessage=Q,ie=function(){W.postMessage(null)}}else ie=function(){te(Q,0)};function G(b,E){_=te(function(){b(s.unstable_now())},E)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(b){b.callback=null},s.unstable_forceFrameRate=function(b){0>b||125<b?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):le=0<b?Math.floor(1e3/b):5},s.unstable_getCurrentPriorityLevel=function(){return L},s.unstable_next=function(b){switch(L){case 1:case 2:case 3:var E=3;break;default:E=L}var w=L;L=E;try{return b()}finally{L=w}},s.unstable_requestPaint=function(){F=!0},s.unstable_runWithPriority=function(b,E){switch(b){case 1:case 2:case 3:case 4:case 5:break;default:b=3}var w=L;L=b;try{return E()}finally{L=w}},s.unstable_scheduleCallback=function(b,E,w){var ee=s.unstable_now();switch(typeof w=="object"&&w!==null?(w=w.delay,w=typeof w=="number"&&0<w?ee+w:ee):w=ee,b){case 1:var $=-1;break;case 2:$=250;break;case 5:$=1073741823;break;case 4:$=1e4;break;default:$=5e3}return $=w+$,b={id:R++,callback:E,priorityLevel:b,startTime:w,expirationTime:$,sortIndex:-1},w>ee?(b.sortIndex=w,i(x,b),r(S)===null&&b===r(x)&&(O?(N(_),_=-1):O=!0,G(Z,w-ee))):(b.sortIndex=$,i(S,b),z||C||(z=!0,q||(q=!0,ie()))),b},s.unstable_shouldYield=ne,s.unstable_wrapCallback=function(b){var E=L;return function(){var w=L;L=E;try{return b.apply(this,arguments)}finally{L=w}}}})(cc)),cc}var Im;function ov(){return Im||(Im=1,oc.exports=rv()),oc.exports}var uc={exports:{}},St={};var Dm;function cv(){if(Dm)return St;Dm=1;var s=Rc();function i(S){var x="https://react.dev/errors/"+S;if(1<arguments.length){x+="?args[]="+encodeURIComponent(arguments[1]);for(var R=2;R<arguments.length;R++)x+="&args[]="+encodeURIComponent(arguments[R])}return"Minified React error #"+S+"; visit "+x+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var u={d:{f:r,r:function(){throw Error(i(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},f=Symbol.for("react.portal");function h(S,x,R){var j=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:f,key:j==null?null:""+j,children:S,containerInfo:x,implementation:R}}var m=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function v(S,x){if(S==="font")return"";if(typeof x=="string")return x==="use-credentials"?x:""}return St.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,St.createPortal=function(S,x){var R=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!x||x.nodeType!==1&&x.nodeType!==9&&x.nodeType!==11)throw Error(i(299));return h(S,x,null,R)},St.flushSync=function(S){var x=m.T,R=u.p;try{if(m.T=null,u.p=2,S)return S()}finally{m.T=x,u.p=R,u.d.f()}},St.preconnect=function(S,x){typeof S=="string"&&(x?(x=x.crossOrigin,x=typeof x=="string"?x==="use-credentials"?x:"":void 0):x=null,u.d.C(S,x))},St.prefetchDNS=function(S){typeof S=="string"&&u.d.D(S)},St.preinit=function(S,x){if(typeof S=="string"&&x&&typeof x.as=="string"){var R=x.as,j=v(R,x.crossOrigin),L=typeof x.integrity=="string"?x.integrity:void 0,C=typeof x.fetchPriority=="string"?x.fetchPriority:void 0;R==="style"?u.d.S(S,typeof x.precedence=="string"?x.precedence:void 0,{crossOrigin:j,integrity:L,fetchPriority:C}):R==="script"&&u.d.X(S,{crossOrigin:j,integrity:L,fetchPriority:C,nonce:typeof x.nonce=="string"?x.nonce:void 0})}},St.preinitModule=function(S,x){if(typeof S=="string")if(typeof x=="object"&&x!==null){if(x.as==null||x.as==="script"){var R=v(x.as,x.crossOrigin);u.d.M(S,{crossOrigin:R,integrity:typeof x.integrity=="string"?x.integrity:void 0,nonce:typeof x.nonce=="string"?x.nonce:void 0})}}else x==null&&u.d.M(S)},St.preload=function(S,x){if(typeof S=="string"&&typeof x=="object"&&x!==null&&typeof x.as=="string"){var R=x.as,j=v(R,x.crossOrigin);u.d.L(S,R,{crossOrigin:j,integrity:typeof x.integrity=="string"?x.integrity:void 0,nonce:typeof x.nonce=="string"?x.nonce:void 0,type:typeof x.type=="string"?x.type:void 0,fetchPriority:typeof x.fetchPriority=="string"?x.fetchPriority:void 0,referrerPolicy:typeof x.referrerPolicy=="string"?x.referrerPolicy:void 0,imageSrcSet:typeof x.imageSrcSet=="string"?x.imageSrcSet:void 0,imageSizes:typeof x.imageSizes=="string"?x.imageSizes:void 0,media:typeof x.media=="string"?x.media:void 0})}},St.preloadModule=function(S,x){if(typeof S=="string")if(x){var R=v(x.as,x.crossOrigin);u.d.m(S,{as:typeof x.as=="string"&&x.as!=="script"?x.as:void 0,crossOrigin:R,integrity:typeof x.integrity=="string"?x.integrity:void 0})}else u.d.m(S)},St.requestFormReset=function(S){u.d.r(S)},St.unstable_batchedUpdates=function(S,x){return S(x)},St.useFormState=function(S,x,R){return m.H.useFormState(S,x,R)},St.useFormStatus=function(){return m.H.useHostTransitionStatus()},St.version="19.2.8",St}var Om;function uv(){if(Om)return uc.exports;Om=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(i){console.error(i)}}return s(),uc.exports=cv(),uc.exports}var Mm;function dv(){if(Mm)return cl;Mm=1;var s=ov(),i=Rc(),r=uv();function u(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function f(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function h(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function m(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function v(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function S(e){if(h(e)!==e)throw Error(u(188))}function x(e){var t=e.alternate;if(!t){if(t=h(e),t===null)throw Error(u(188));return t!==e?null:e}for(var n=e,a=t;;){var o=n.return;if(o===null)break;var c=o.alternate;if(c===null){if(a=o.return,a!==null){n=a;continue}break}if(o.child===c.child){for(c=o.child;c;){if(c===n)return S(o),e;if(c===a)return S(o),t;c=c.sibling}throw Error(u(188))}if(n.return!==a.return)n=o,a=c;else{for(var d=!1,g=o.child;g;){if(g===n){d=!0,n=o,a=c;break}if(g===a){d=!0,a=o,n=c;break}g=g.sibling}if(!d){for(g=c.child;g;){if(g===n){d=!0,n=c,a=o;break}if(g===a){d=!0,a=c,n=o;break}g=g.sibling}if(!d)throw Error(u(189))}}if(n.alternate!==a)throw Error(u(190))}if(n.tag!==3)throw Error(u(188));return n.stateNode.current===n?e:t}function R(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=R(e),t!==null)return t;e=e.sibling}return null}var j=Object.assign,L=Symbol.for("react.element"),C=Symbol.for("react.transitional.element"),z=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),F=Symbol.for("react.strict_mode"),te=Symbol.for("react.profiler"),N=Symbol.for("react.consumer"),I=Symbol.for("react.context"),D=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),q=Symbol.for("react.suspense_list"),_=Symbol.for("react.memo"),le=Symbol.for("react.lazy"),oe=Symbol.for("react.activity"),ne=Symbol.for("react.memo_cache_sentinel"),Q=Symbol.iterator;function ie(e){return e===null||typeof e!="object"?null:(e=Q&&e[Q]||e["@@iterator"],typeof e=="function"?e:null)}var fe=Symbol.for("react.client.reference");function W(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===fe?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case O:return"Fragment";case te:return"Profiler";case F:return"StrictMode";case Z:return"Suspense";case q:return"SuspenseList";case oe:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case z:return"Portal";case I:return e.displayName||"Context";case N:return(e._context.displayName||"Context")+".Consumer";case D:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case _:return t=e.displayName||null,t!==null?t:W(e.type)||"Memo";case le:t=e._payload,e=e._init;try{return W(e(t))}catch{}}return null}var G=Array.isArray,b=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,w={pending:!1,data:null,method:null,action:null},ee=[],$=-1;function y(e){return{current:e}}function A(e){0>$||(e.current=ee[$],ee[$]=null,$--)}function X(e,t){$++,ee[$]=e.current,e.current=t}var Y=y(null),ue=y(null),re=y(null),ae=y(null);function de(e,t){switch(X(re,t),X(ue,e),X(Y,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Zf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Zf(t),e=Jf(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}A(Y),X(Y,e)}function ce(){A(Y),A(ue),A(re)}function ye(e){e.memoizedState!==null&&X(ae,e);var t=Y.current,n=Jf(t,e.type);t!==n&&(X(ue,e),X(Y,n))}function je(e){ue.current===e&&(A(Y),A(ue)),ae.current===e&&(A(ae),sl._currentValue=w)}var Te,_e;function He(e){if(Te===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Te=t&&t[1]||"",_e=-1<n.stack.indexOf(`
2
+ at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
3
+ `+Te+e+_e}var Qe=!1;function bt(e,t){if(!e||Qe)return"";Qe=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var se=function(){throw Error()};if(Object.defineProperty(se.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(se,[])}catch(K){var B=K}Reflect.construct(e,[],se)}else{try{se.call()}catch(K){B=K}e.call(se.prototype)}}else{try{throw Error()}catch(K){B=K}(se=e())&&typeof se.catch=="function"&&se.catch(function(){})}}catch(K){if(K&&B&&typeof K.stack=="string")return[K.stack,B.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var o=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");o&&o.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var c=a.DetermineComponentFrameRoot(),d=c[0],g=c[1];if(d&&g){var T=d.split(`
4
+ `),H=g.split(`
5
+ `);for(o=a=0;a<T.length&&!T[a].includes("DetermineComponentFrameRoot");)a++;for(;o<H.length&&!H[o].includes("DetermineComponentFrameRoot");)o++;if(a===T.length||o===H.length)for(a=T.length-1,o=H.length-1;1<=a&&0<=o&&T[a]!==H[o];)o--;for(;1<=a&&0<=o;a--,o--)if(T[a]!==H[o]){if(a!==1||o!==1)do if(a--,o--,0>o||T[a]!==H[o]){var V=`
6
+ `+T[a].replace(" at new "," at ");return e.displayName&&V.includes("<anonymous>")&&(V=V.replace("<anonymous>",e.displayName)),V}while(1<=a&&0<=o);break}}}finally{Qe=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?He(n):""}function dt(e,t){switch(e.tag){case 26:case 27:case 5:return He(e.type);case 16:return He("Lazy");case 13:return e.child!==t&&t!==null?He("Suspense Fallback"):He("Suspense");case 19:return He("SuspenseList");case 0:case 15:return bt(e.type,!1);case 11:return bt(e.type.render,!1);case 1:return bt(e.type,!0);case 31:return He("Activity");default:return""}}function on(e){try{var t="",n=null;do t+=dt(e,n),n=e,e=e.return;while(e);return t}catch(a){return`
7
+ Error generating stack: `+a.message+`
8
+ `+a.stack}}var Jt=Object.prototype.hasOwnProperty,Ht=s.unstable_scheduleCallback,be=s.unstable_cancelCallback,Ie=s.unstable_shouldYield,J=s.unstable_requestPaint,he=s.unstable_now,ft=s.unstable_getCurrentPriorityLevel,tt=s.unstable_ImmediatePriority,it=s.unstable_UserBlockingPriority,Ft=s.unstable_NormalPriority,Na=s.unstable_LowPriority,ta=s.unstable_IdlePriority,Ae=s.log,ot=s.unstable_setDisableYieldValue,Be=null,ze=null;function jt(e){if(typeof Ae=="function"&&ot(e),ze&&typeof ze.setStrictMode=="function")try{ze.setStrictMode(Be,e)}catch{}}var xt=Math.clz32?Math.clz32:Ki,$i=Math.log,Yi=Math.LN2;function Ki(e){return e>>>=0,e===0?32:31-($i(e)/Yi|0)|0}var mt=256,na=262144,ml=4194304;function aa(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function hl(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var o=0,c=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var g=a&134217727;return g!==0?(a=g&~c,a!==0?o=aa(a):(d&=g,d!==0?o=aa(d):n||(n=g&~e,n!==0&&(o=aa(n))))):(g=a&~c,g!==0?o=aa(g):d!==0?o=aa(d):n||(n=a&~e,n!==0&&(o=aa(n)))),o===0?0:t!==0&&t!==o&&(t&c)===0&&(c=o&-o,n=t&-t,c>=n||c===32&&(n&4194048)!==0)?t:o}function vs(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Kh(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function wc(){var e=ml;return ml<<=1,(ml&62914560)===0&&(ml=4194304),e}function Xi(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ys(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Xh(e,t,n,a,o,c){var d=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var g=e.entanglements,T=e.expirationTimes,H=e.hiddenUpdates;for(n=d&~n;0<n;){var V=31-xt(n),se=1<<V;g[V]=0,T[V]=-1;var B=H[V];if(B!==null)for(H[V]=null,V=0;V<B.length;V++){var K=B[V];K!==null&&(K.lane&=-536870913)}n&=~se}a!==0&&Ac(e,a,0),c!==0&&o===0&&e.tag!==0&&(e.suspendedLanes|=c&~(d&~t))}function Ac(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-xt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Ic(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-xt(n),o=1<<a;o&t|e[a]&t&&(e[a]|=t),n&=~o}}function Dc(e,t){var n=t&-t;return n=(n&42)!==0?1:Qi(n),(n&(e.suspendedLanes|t))!==0?0:n}function Qi(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Vi(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Oc(){var e=E.p;return e!==0?e:(e=window.event,e===void 0?32:bm(e.type))}function Mc(e,t){var n=E.p;try{return E.p=e,t()}finally{E.p=n}}var An=Math.random().toString(36).slice(2),ht="__reactFiber$"+An,Tt="__reactProps$"+An,Ca="__reactContainer$"+An,Zi="__reactEvents$"+An,Qh="__reactListeners$"+An,Vh="__reactHandles$"+An,_c="__reactResources$"+An,bs="__reactMarker$"+An;function Ji(e){delete e[ht],delete e[Tt],delete e[Zi],delete e[Qh],delete e[Vh]}function Ea(e){var t=e[ht];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Ca]||n[ht]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=am(e);e!==null;){if(n=e[ht])return n;e=am(e)}return t}e=n,n=e.parentNode}return null}function ka(e){if(e=e[ht]||e[Ca]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function xs(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(u(33))}function wa(e){var t=e[_c];return t||(t=e[_c]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ct(e){e[bs]=!0}var zc=new Set,Lc={};function sa(e,t){Aa(e,t),Aa(e+"Capture",t)}function Aa(e,t){for(Lc[e]=t,e=0;e<t.length;e++)zc.add(t[e])}var Zh=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Uc={},Hc={};function Jh(e){return Jt.call(Hc,e)?!0:Jt.call(Uc,e)?!1:Zh.test(e)?Hc[e]=!0:(Uc[e]=!0,!1)}function pl(e,t,n){if(Jh(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function gl(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function cn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Bt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Bc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fh(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var o=a.get,c=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(d){n=""+d,c.call(this,d)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(d){n=""+d},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Fi(e){if(!e._valueTracker){var t=Bc(e)?"checked":"value";e._valueTracker=Fh(e,t,""+e[t])}}function qc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Bc(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function vl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Wh=/[\n"\\]/g;function qt(e){return e.replace(Wh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Wi(e,t,n,a,o,c,d,g){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Bt(t)):e.value!==""+Bt(t)&&(e.value=""+Bt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Pi(e,d,Bt(t)):n!=null?Pi(e,d,Bt(n)):a!=null&&e.removeAttribute("value"),o==null&&c!=null&&(e.defaultChecked=!!c),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?e.name=""+Bt(g):e.removeAttribute("name")}function Gc(e,t,n,a,o,c,d,g){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(e.type=c),t!=null||n!=null){if(!(c!=="submit"&&c!=="reset"||t!=null)){Fi(e);return}n=n!=null?""+Bt(n):"",t=t!=null?""+Bt(t):n,g||t===e.value||(e.value=t),e.defaultValue=t}a=a??o,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=g?e.checked:!!a,e.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Fi(e)}function Pi(e,t,n){t==="number"&&vl(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ia(e,t,n,a){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Bt(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,a&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function $c(e,t,n){if(t!=null&&(t=""+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Bt(n):""}function Yc(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(u(92));if(G(a)){if(1<a.length)throw Error(u(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Bt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Fi(e)}function Da(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ph=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Kc(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Ph.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Xc(e,t,n){if(t!=null&&typeof t!="object")throw Error(u(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var o in t)a=t[o],t.hasOwnProperty(o)&&n[o]!==a&&Kc(e,o,a)}else for(var c in t)t.hasOwnProperty(c)&&Kc(e,c,t[c])}function er(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ep=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),tp=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function yl(e){return tp.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function un(){}var tr=null;function nr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Oa=null,Ma=null;function Qc(e){var t=ka(e);if(t&&(e=t.stateNode)){var n=e[Tt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Wi(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+qt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var o=a[Tt]||null;if(!o)throw Error(u(90));Wi(a,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&qc(a)}break e;case"textarea":$c(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ia(e,!!n.multiple,t,!1)}}}var ar=!1;function Vc(e,t,n){if(ar)return e(t,n);ar=!0;try{var a=e(t);return a}finally{if(ar=!1,(Oa!==null||Ma!==null)&&(li(),Oa&&(t=Oa,e=Ma,Ma=Oa=null,Qc(t),e)))for(t=0;t<e.length;t++)Qc(e[t])}}function Ss(e,t){var n=e.stateNode;if(n===null)return null;var a=n[Tt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(u(231,t,typeof n));return n}var dn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sr=!1;if(dn)try{var js={};Object.defineProperty(js,"passive",{get:function(){sr=!0}}),window.addEventListener("test",js,js),window.removeEventListener("test",js,js)}catch{sr=!1}var In=null,lr=null,bl=null;function Zc(){if(bl)return bl;var e,t=lr,n=t.length,a,o="value"in In?In.value:In.textContent,c=o.length;for(e=0;e<n&&t[e]===o[e];e++);var d=n-e;for(a=1;a<=d&&t[n-a]===o[c-a];a++);return bl=o.slice(e,1<a?1-a:void 0)}function xl(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Sl(){return!0}function Jc(){return!1}function Nt(e){function t(n,a,o,c,d){this._reactName=n,this._targetInst=o,this.type=a,this.nativeEvent=c,this.target=d,this.currentTarget=null;for(var g in e)e.hasOwnProperty(g)&&(n=e[g],this[g]=n?n(c):c[g]);return this.isDefaultPrevented=(c.defaultPrevented!=null?c.defaultPrevented:c.returnValue===!1)?Sl:Jc,this.isPropagationStopped=Jc,this}return j(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Sl)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Sl)},persist:function(){},isPersistent:Sl}),t}var la={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},jl=Nt(la),Rs=j({},la,{view:0,detail:0}),np=Nt(Rs),ir,rr,Ts,Rl=j({},Rs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:cr,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Ts&&(Ts&&e.type==="mousemove"?(ir=e.screenX-Ts.screenX,rr=e.screenY-Ts.screenY):rr=ir=0,Ts=e),ir)},movementY:function(e){return"movementY"in e?e.movementY:rr}}),Fc=Nt(Rl),ap=j({},Rl,{dataTransfer:0}),sp=Nt(ap),lp=j({},Rs,{relatedTarget:0}),or=Nt(lp),ip=j({},la,{animationName:0,elapsedTime:0,pseudoElement:0}),rp=Nt(ip),op=j({},la,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),cp=Nt(op),up=j({},la,{data:0}),Wc=Nt(up),dp={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},fp={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"},mp={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function hp(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=mp[e])?!!t[e]:!1}function cr(){return hp}var pp=j({},Rs,{key:function(e){if(e.key){var t=dp[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=xl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?fp[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:cr,charCode:function(e){return e.type==="keypress"?xl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?xl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),gp=Nt(pp),vp=j({},Rl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Pc=Nt(vp),yp=j({},Rs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:cr}),bp=Nt(yp),xp=j({},la,{propertyName:0,elapsedTime:0,pseudoElement:0}),Sp=Nt(xp),jp=j({},Rl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Rp=Nt(jp),Tp=j({},la,{newState:0,oldState:0}),Np=Nt(Tp),Cp=[9,13,27,32],ur=dn&&"CompositionEvent"in window,Ns=null;dn&&"documentMode"in document&&(Ns=document.documentMode);var Ep=dn&&"TextEvent"in window&&!Ns,eu=dn&&(!ur||Ns&&8<Ns&&11>=Ns),tu=" ",nu=!1;function au(e,t){switch(e){case"keyup":return Cp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function su(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var _a=!1;function kp(e,t){switch(e){case"compositionend":return su(t);case"keypress":return t.which!==32?null:(nu=!0,tu);case"textInput":return e=t.data,e===tu&&nu?null:e;default:return null}}function wp(e,t){if(_a)return e==="compositionend"||!ur&&au(e,t)?(e=Zc(),bl=lr=In=null,_a=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return eu&&t.locale!=="ko"?null:t.data;default:return null}}var Ap={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 lu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Ap[e.type]:t==="textarea"}function iu(e,t,n,a){Oa?Ma?Ma.push(a):Ma=[a]:Oa=a,t=fi(t,"onChange"),0<t.length&&(n=new jl("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Cs=null,Es=null;function Ip(e){$f(e,0)}function Tl(e){var t=xs(e);if(qc(t))return e}function ru(e,t){if(e==="change")return t}var ou=!1;if(dn){var dr;if(dn){var fr="oninput"in document;if(!fr){var cu=document.createElement("div");cu.setAttribute("oninput","return;"),fr=typeof cu.oninput=="function"}dr=fr}else dr=!1;ou=dr&&(!document.documentMode||9<document.documentMode)}function uu(){Cs&&(Cs.detachEvent("onpropertychange",du),Es=Cs=null)}function du(e){if(e.propertyName==="value"&&Tl(Es)){var t=[];iu(t,Es,e,nr(e)),Vc(Ip,t)}}function Dp(e,t,n){e==="focusin"?(uu(),Cs=t,Es=n,Cs.attachEvent("onpropertychange",du)):e==="focusout"&&uu()}function Op(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Tl(Es)}function Mp(e,t){if(e==="click")return Tl(t)}function _p(e,t){if(e==="input"||e==="change")return Tl(t)}function zp(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Dt=typeof Object.is=="function"?Object.is:zp;function ks(e,t){if(Dt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var o=n[a];if(!Jt.call(t,o)||!Dt(e[o],t[o]))return!1}return!0}function fu(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mu(e,t){var n=fu(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=fu(n)}}function hu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?hu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function pu(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=vl(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=vl(e.document)}return t}function mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Lp=dn&&"documentMode"in document&&11>=document.documentMode,za=null,hr=null,ws=null,pr=!1;function gu(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;pr||za==null||za!==vl(a)||(a=za,"selectionStart"in a&&mr(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),ws&&ks(ws,a)||(ws=a,a=fi(hr,"onSelect"),0<a.length&&(t=new jl("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=za)))}function ia(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var La={animationend:ia("Animation","AnimationEnd"),animationiteration:ia("Animation","AnimationIteration"),animationstart:ia("Animation","AnimationStart"),transitionrun:ia("Transition","TransitionRun"),transitionstart:ia("Transition","TransitionStart"),transitioncancel:ia("Transition","TransitionCancel"),transitionend:ia("Transition","TransitionEnd")},gr={},vu={};dn&&(vu=document.createElement("div").style,"AnimationEvent"in window||(delete La.animationend.animation,delete La.animationiteration.animation,delete La.animationstart.animation),"TransitionEvent"in window||delete La.transitionend.transition);function ra(e){if(gr[e])return gr[e];if(!La[e])return e;var t=La[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in vu)return gr[e]=t[n];return e}var yu=ra("animationend"),bu=ra("animationiteration"),xu=ra("animationstart"),Up=ra("transitionrun"),Hp=ra("transitionstart"),Bp=ra("transitioncancel"),Su=ra("transitionend"),ju=new Map,vr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");vr.push("scrollEnd");function Wt(e,t){ju.set(e,t),sa(t,[e])}var Nl=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Ua=0,yr=0;function Cl(){for(var e=Ua,t=yr=Ua=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var o=Gt[t];Gt[t++]=null;var c=Gt[t];if(Gt[t++]=null,a!==null&&o!==null){var d=a.pending;d===null?o.next=o:(o.next=d.next,d.next=o),a.pending=o}c!==0&&Ru(n,o,c)}}function El(e,t,n,a){Gt[Ua++]=e,Gt[Ua++]=t,Gt[Ua++]=n,Gt[Ua++]=a,yr|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function br(e,t,n,a){return El(e,t,n,a),kl(e)}function oa(e,t){return El(e,null,null,t),kl(e)}function Ru(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var o=!1,c=e.return;c!==null;)c.childLanes|=n,a=c.alternate,a!==null&&(a.childLanes|=n),c.tag===22&&(e=c.stateNode,e===null||e._visibility&1||(o=!0)),e=c,c=c.return;return e.tag===3?(c=e.stateNode,o&&t!==null&&(o=31-xt(n),e=c.hiddenUpdates,a=e[o],a===null?e[o]=[t]:a.push(t),t.lane=n|536870912),c):null}function kl(e){if(50<Fs)throw Fs=0,wo=null,Error(u(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ha={};function qp(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ot(e,t,n,a){return new qp(e,t,n,a)}function xr(e){return e=e.prototype,!(!e||!e.isReactComponent)}function fn(e,t){var n=e.alternate;return n===null?(n=Ot(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Tu(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function wl(e,t,n,a,o,c){var d=0;if(a=e,typeof e=="function")xr(e)&&(d=1);else if(typeof e=="string")d=Xg(e,n,Y.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case oe:return e=Ot(31,n,t,o),e.elementType=oe,e.lanes=c,e;case O:return ca(n.children,o,c,t);case F:d=8,o|=24;break;case te:return e=Ot(12,n,t,o|2),e.elementType=te,e.lanes=c,e;case Z:return e=Ot(13,n,t,o),e.elementType=Z,e.lanes=c,e;case q:return e=Ot(19,n,t,o),e.elementType=q,e.lanes=c,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case I:d=10;break e;case N:d=9;break e;case D:d=11;break e;case _:d=14;break e;case le:d=16,a=null;break e}d=29,n=Error(u(130,e===null?"null":typeof e,"")),a=null}return t=Ot(d,n,t,o),t.elementType=e,t.type=a,t.lanes=c,t}function ca(e,t,n,a){return e=Ot(7,e,a,t),e.lanes=n,e}function Sr(e,t,n){return e=Ot(6,e,null,t),e.lanes=n,e}function Nu(e){var t=Ot(18,null,null,0);return t.stateNode=e,t}function jr(e,t,n){return t=Ot(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Cu=new WeakMap;function $t(e,t){if(typeof e=="object"&&e!==null){var n=Cu.get(e);return n!==void 0?n:(t={value:e,source:t,stack:on(t)},Cu.set(e,t),t)}return{value:e,source:t,stack:on(t)}}var Ba=[],qa=0,Al=null,As=0,Yt=[],Kt=0,Dn=null,nn=1,an="";function mn(e,t){Ba[qa++]=As,Ba[qa++]=Al,Al=e,As=t}function Eu(e,t,n){Yt[Kt++]=nn,Yt[Kt++]=an,Yt[Kt++]=Dn,Dn=e;var a=nn;e=an;var o=32-xt(a)-1;a&=~(1<<o),n+=1;var c=32-xt(t)+o;if(30<c){var d=o-o%5;c=(a&(1<<d)-1).toString(32),a>>=d,o-=d,nn=1<<32-xt(t)+o|n<<o|a,an=c+e}else nn=1<<c|n<<o|a,an=e}function Rr(e){e.return!==null&&(mn(e,1),Eu(e,1,0))}function Tr(e){for(;e===Al;)Al=Ba[--qa],Ba[qa]=null,As=Ba[--qa],Ba[qa]=null;for(;e===Dn;)Dn=Yt[--Kt],Yt[Kt]=null,an=Yt[--Kt],Yt[Kt]=null,nn=Yt[--Kt],Yt[Kt]=null}function ku(e,t){Yt[Kt++]=nn,Yt[Kt++]=an,Yt[Kt++]=Dn,nn=t.id,an=t.overflow,Dn=e}var pt=null,Ke=null,we=!1,On=null,Xt=!1,Nr=Error(u(519));function Mn(e){var t=Error(u(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Is($t(t,e)),Nr}function wu(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[ht]=e,t[Tt]=a,n){case"dialog":Ce("cancel",t),Ce("close",t);break;case"iframe":case"object":case"embed":Ce("load",t);break;case"video":case"audio":for(n=0;n<Ps.length;n++)Ce(Ps[n],t);break;case"source":Ce("error",t);break;case"img":case"image":case"link":Ce("error",t),Ce("load",t);break;case"details":Ce("toggle",t);break;case"input":Ce("invalid",t),Gc(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":Ce("invalid",t);break;case"textarea":Ce("invalid",t),Yc(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Qf(t.textContent,n)?(a.popover!=null&&(Ce("beforetoggle",t),Ce("toggle",t)),a.onScroll!=null&&Ce("scroll",t),a.onScrollEnd!=null&&Ce("scrollend",t),a.onClick!=null&&(t.onclick=un),t=!0):t=!1,t||Mn(e,!0)}function Au(e){for(pt=e.return;pt;)switch(pt.tag){case 5:case 31:case 13:Xt=!1;return;case 27:case 3:Xt=!0;return;default:pt=pt.return}}function Ga(e){if(e!==pt)return!1;if(!we)return Au(e),we=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Yo(e.type,e.memoizedProps)),n=!n),n&&Ke&&Mn(e),Au(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));Ke=nm(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));Ke=nm(e)}else t===27?(t=Ke,Vn(e.type)?(e=Zo,Zo=null,Ke=e):Ke=t):Ke=pt?Vt(e.stateNode.nextSibling):null;return!0}function ua(){Ke=pt=null,we=!1}function Cr(){var e=On;return e!==null&&(wt===null?wt=e:wt.push.apply(wt,e),On=null),e}function Is(e){On===null?On=[e]:On.push(e)}var Er=y(null),da=null,hn=null;function _n(e,t,n){X(Er,t._currentValue),t._currentValue=n}function pn(e){e._currentValue=Er.current,A(Er)}function kr(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function wr(e,t,n,a){var o=e.child;for(o!==null&&(o.return=e);o!==null;){var c=o.dependencies;if(c!==null){var d=o.child;c=c.firstContext;e:for(;c!==null;){var g=c;c=o;for(var T=0;T<t.length;T++)if(g.context===t[T]){c.lanes|=n,g=c.alternate,g!==null&&(g.lanes|=n),kr(c.return,n,e),a||(d=null);break e}c=g.next}}else if(o.tag===18){if(d=o.return,d===null)throw Error(u(341));d.lanes|=n,c=d.alternate,c!==null&&(c.lanes|=n),kr(d,n,e),d=null}else d=o.child;if(d!==null)d.return=o;else for(d=o;d!==null;){if(d===e){d=null;break}if(o=d.sibling,o!==null){o.return=d.return,d=o;break}d=d.return}o=d}}function $a(e,t,n,a){e=null;for(var o=t,c=!1;o!==null;){if(!c){if((o.flags&524288)!==0)c=!0;else if((o.flags&262144)!==0)break}if(o.tag===10){var d=o.alternate;if(d===null)throw Error(u(387));if(d=d.memoizedProps,d!==null){var g=o.type;Dt(o.pendingProps.value,d.value)||(e!==null?e.push(g):e=[g])}}else if(o===ae.current){if(d=o.alternate,d===null)throw Error(u(387));d.memoizedState.memoizedState!==o.memoizedState.memoizedState&&(e!==null?e.push(sl):e=[sl])}o=o.return}e!==null&&wr(t,e,n,a),t.flags|=262144}function Il(e){for(e=e.firstContext;e!==null;){if(!Dt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function fa(e){da=e,hn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function gt(e){return Iu(da,e)}function Dl(e,t){return da===null&&fa(e),Iu(e,t)}function Iu(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},hn===null){if(e===null)throw Error(u(308));hn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else hn=hn.next=t;return n}var Gp=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},$p=s.unstable_scheduleCallback,Yp=s.unstable_NormalPriority,nt={$$typeof:I,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ar(){return{controller:new Gp,data:new Map,refCount:0}}function Ds(e){e.refCount--,e.refCount===0&&$p(Yp,function(){e.controller.abort()})}var Os=null,Ir=0,Ya=0,Ka=null;function Kp(e,t){if(Os===null){var n=Os=[];Ir=0,Ya=_o(),Ka={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Ir++,t.then(Du,Du),t}function Du(){if(--Ir===0&&Os!==null){Ka!==null&&(Ka.status="fulfilled");var e=Os;Os=null,Ya=0,Ka=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Xp(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(o){n.push(o)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var o=0;o<n.length;o++)(0,n[o])(t)},function(o){for(a.status="rejected",a.reason=o,o=0;o<n.length;o++)(0,n[o])(void 0)}),a}var Ou=b.S;b.S=function(e,t){vf=he(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Kp(e,t),Ou!==null&&Ou(e,t)};var ma=y(null);function Dr(){var e=ma.current;return e!==null?e:Ye.pooledCache}function Ol(e,t){t===null?X(ma,ma.current):X(ma,t.pool)}function Mu(){var e=Dr();return e===null?null:{parent:nt._currentValue,pool:e}}var Xa=Error(u(460)),Or=Error(u(474)),Ml=Error(u(542)),_l={then:function(){}};function _u(e){return e=e.status,e==="fulfilled"||e==="rejected"}function zu(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(un,un),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Uu(e),e;default:if(typeof t.status=="string")t.then(un,un);else{if(e=Ye,e!==null&&100<e.shellSuspendCounter)throw Error(u(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var o=t;o.status="fulfilled",o.value=a}},function(a){if(t.status==="pending"){var o=t;o.status="rejected",o.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Uu(e),e}throw pa=t,Xa}}function ha(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(pa=n,Xa):n}}var pa=null;function Lu(){if(pa===null)throw Error(u(459));var e=pa;return pa=null,e}function Uu(e){if(e===Xa||e===Ml)throw Error(u(483))}var Qa=null,Ms=0;function zl(e){var t=Ms;return Ms+=1,Qa===null&&(Qa=[]),zu(Qa,e,t)}function _s(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Ll(e,t){throw t.$$typeof===L?Error(u(525)):(e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function Hu(e){function t(M,k){if(e){var U=M.deletions;U===null?(M.deletions=[k],M.flags|=16):U.push(k)}}function n(M,k){if(!e)return null;for(;k!==null;)t(M,k),k=k.sibling;return null}function a(M){for(var k=new Map;M!==null;)M.key!==null?k.set(M.key,M):k.set(M.index,M),M=M.sibling;return k}function o(M,k){return M=fn(M,k),M.index=0,M.sibling=null,M}function c(M,k,U){return M.index=U,e?(U=M.alternate,U!==null?(U=U.index,U<k?(M.flags|=67108866,k):U):(M.flags|=67108866,k)):(M.flags|=1048576,k)}function d(M){return e&&M.alternate===null&&(M.flags|=67108866),M}function g(M,k,U,P){return k===null||k.tag!==6?(k=Sr(U,M.mode,P),k.return=M,k):(k=o(k,U),k.return=M,k)}function T(M,k,U,P){var ge=U.type;return ge===O?V(M,k,U.props.children,P,U.key):k!==null&&(k.elementType===ge||typeof ge=="object"&&ge!==null&&ge.$$typeof===le&&ha(ge)===k.type)?(k=o(k,U.props),_s(k,U),k.return=M,k):(k=wl(U.type,U.key,U.props,null,M.mode,P),_s(k,U),k.return=M,k)}function H(M,k,U,P){return k===null||k.tag!==4||k.stateNode.containerInfo!==U.containerInfo||k.stateNode.implementation!==U.implementation?(k=jr(U,M.mode,P),k.return=M,k):(k=o(k,U.children||[]),k.return=M,k)}function V(M,k,U,P,ge){return k===null||k.tag!==7?(k=ca(U,M.mode,P,ge),k.return=M,k):(k=o(k,U),k.return=M,k)}function se(M,k,U){if(typeof k=="string"&&k!==""||typeof k=="number"||typeof k=="bigint")return k=Sr(""+k,M.mode,U),k.return=M,k;if(typeof k=="object"&&k!==null){switch(k.$$typeof){case C:return U=wl(k.type,k.key,k.props,null,M.mode,U),_s(U,k),U.return=M,U;case z:return k=jr(k,M.mode,U),k.return=M,k;case le:return k=ha(k),se(M,k,U)}if(G(k)||ie(k))return k=ca(k,M.mode,U,null),k.return=M,k;if(typeof k.then=="function")return se(M,zl(k),U);if(k.$$typeof===I)return se(M,Dl(M,k),U);Ll(M,k)}return null}function B(M,k,U,P){var ge=k!==null?k.key:null;if(typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint")return ge!==null?null:g(M,k,""+U,P);if(typeof U=="object"&&U!==null){switch(U.$$typeof){case C:return U.key===ge?T(M,k,U,P):null;case z:return U.key===ge?H(M,k,U,P):null;case le:return U=ha(U),B(M,k,U,P)}if(G(U)||ie(U))return ge!==null?null:V(M,k,U,P,null);if(typeof U.then=="function")return B(M,k,zl(U),P);if(U.$$typeof===I)return B(M,k,Dl(M,U),P);Ll(M,U)}return null}function K(M,k,U,P,ge){if(typeof P=="string"&&P!==""||typeof P=="number"||typeof P=="bigint")return M=M.get(U)||null,g(k,M,""+P,ge);if(typeof P=="object"&&P!==null){switch(P.$$typeof){case C:return M=M.get(P.key===null?U:P.key)||null,T(k,M,P,ge);case z:return M=M.get(P.key===null?U:P.key)||null,H(k,M,P,ge);case le:return P=ha(P),K(M,k,U,P,ge)}if(G(P)||ie(P))return M=M.get(U)||null,V(k,M,P,ge,null);if(typeof P.then=="function")return K(M,k,U,zl(P),ge);if(P.$$typeof===I)return K(M,k,U,Dl(k,P),ge);Ll(k,P)}return null}function me(M,k,U,P){for(var ge=null,De=null,pe=k,Re=k=0,ke=null;pe!==null&&Re<U.length;Re++){pe.index>Re?(ke=pe,pe=null):ke=pe.sibling;var Oe=B(M,pe,U[Re],P);if(Oe===null){pe===null&&(pe=ke);break}e&&pe&&Oe.alternate===null&&t(M,pe),k=c(Oe,k,Re),De===null?ge=Oe:De.sibling=Oe,De=Oe,pe=ke}if(Re===U.length)return n(M,pe),we&&mn(M,Re),ge;if(pe===null){for(;Re<U.length;Re++)pe=se(M,U[Re],P),pe!==null&&(k=c(pe,k,Re),De===null?ge=pe:De.sibling=pe,De=pe);return we&&mn(M,Re),ge}for(pe=a(pe);Re<U.length;Re++)ke=K(pe,M,Re,U[Re],P),ke!==null&&(e&&ke.alternate!==null&&pe.delete(ke.key===null?Re:ke.key),k=c(ke,k,Re),De===null?ge=ke:De.sibling=ke,De=ke);return e&&pe.forEach(function(Pn){return t(M,Pn)}),we&&mn(M,Re),ge}function ve(M,k,U,P){if(U==null)throw Error(u(151));for(var ge=null,De=null,pe=k,Re=k=0,ke=null,Oe=U.next();pe!==null&&!Oe.done;Re++,Oe=U.next()){pe.index>Re?(ke=pe,pe=null):ke=pe.sibling;var Pn=B(M,pe,Oe.value,P);if(Pn===null){pe===null&&(pe=ke);break}e&&pe&&Pn.alternate===null&&t(M,pe),k=c(Pn,k,Re),De===null?ge=Pn:De.sibling=Pn,De=Pn,pe=ke}if(Oe.done)return n(M,pe),we&&mn(M,Re),ge;if(pe===null){for(;!Oe.done;Re++,Oe=U.next())Oe=se(M,Oe.value,P),Oe!==null&&(k=c(Oe,k,Re),De===null?ge=Oe:De.sibling=Oe,De=Oe);return we&&mn(M,Re),ge}for(pe=a(pe);!Oe.done;Re++,Oe=U.next())Oe=K(pe,M,Re,Oe.value,P),Oe!==null&&(e&&Oe.alternate!==null&&pe.delete(Oe.key===null?Re:Oe.key),k=c(Oe,k,Re),De===null?ge=Oe:De.sibling=Oe,De=Oe);return e&&pe.forEach(function(av){return t(M,av)}),we&&mn(M,Re),ge}function $e(M,k,U,P){if(typeof U=="object"&&U!==null&&U.type===O&&U.key===null&&(U=U.props.children),typeof U=="object"&&U!==null){switch(U.$$typeof){case C:e:{for(var ge=U.key;k!==null;){if(k.key===ge){if(ge=U.type,ge===O){if(k.tag===7){n(M,k.sibling),P=o(k,U.props.children),P.return=M,M=P;break e}}else if(k.elementType===ge||typeof ge=="object"&&ge!==null&&ge.$$typeof===le&&ha(ge)===k.type){n(M,k.sibling),P=o(k,U.props),_s(P,U),P.return=M,M=P;break e}n(M,k);break}else t(M,k);k=k.sibling}U.type===O?(P=ca(U.props.children,M.mode,P,U.key),P.return=M,M=P):(P=wl(U.type,U.key,U.props,null,M.mode,P),_s(P,U),P.return=M,M=P)}return d(M);case z:e:{for(ge=U.key;k!==null;){if(k.key===ge)if(k.tag===4&&k.stateNode.containerInfo===U.containerInfo&&k.stateNode.implementation===U.implementation){n(M,k.sibling),P=o(k,U.children||[]),P.return=M,M=P;break e}else{n(M,k);break}else t(M,k);k=k.sibling}P=jr(U,M.mode,P),P.return=M,M=P}return d(M);case le:return U=ha(U),$e(M,k,U,P)}if(G(U))return me(M,k,U,P);if(ie(U)){if(ge=ie(U),typeof ge!="function")throw Error(u(150));return U=ge.call(U),ve(M,k,U,P)}if(typeof U.then=="function")return $e(M,k,zl(U),P);if(U.$$typeof===I)return $e(M,k,Dl(M,U),P);Ll(M,U)}return typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint"?(U=""+U,k!==null&&k.tag===6?(n(M,k.sibling),P=o(k,U),P.return=M,M=P):(n(M,k),P=Sr(U,M.mode,P),P.return=M,M=P),d(M)):n(M,k)}return function(M,k,U,P){try{Ms=0;var ge=$e(M,k,U,P);return Qa=null,ge}catch(pe){if(pe===Xa||pe===Ml)throw pe;var De=Ot(29,pe,null,M.mode);return De.lanes=P,De.return=M,De}}}var ga=Hu(!0),Bu=Hu(!1),zn=!1;function Mr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function _r(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ln(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Un(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Me&2)!==0){var o=a.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),a.pending=t,t=kl(e),Ru(e,null,n),t}return El(e,a,t,n),kl(e)}function zs(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ic(e,n)}}function zr(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var o=null,c=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};c===null?o=c=d:c=c.next=d,n=n.next}while(n!==null);c===null?o=c=t:c=c.next=t}else o=c=t;n={baseState:a.baseState,firstBaseUpdate:o,lastBaseUpdate:c,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Lr=!1;function Ls(){if(Lr){var e=Ka;if(e!==null)throw e}}function Us(e,t,n,a){Lr=!1;var o=e.updateQueue;zn=!1;var c=o.firstBaseUpdate,d=o.lastBaseUpdate,g=o.shared.pending;if(g!==null){o.shared.pending=null;var T=g,H=T.next;T.next=null,d===null?c=H:d.next=H,d=T;var V=e.alternate;V!==null&&(V=V.updateQueue,g=V.lastBaseUpdate,g!==d&&(g===null?V.firstBaseUpdate=H:g.next=H,V.lastBaseUpdate=T))}if(c!==null){var se=o.baseState;d=0,V=H=T=null,g=c;do{var B=g.lane&-536870913,K=B!==g.lane;if(K?(Ee&B)===B:(a&B)===B){B!==0&&B===Ya&&(Lr=!0),V!==null&&(V=V.next={lane:0,tag:g.tag,payload:g.payload,callback:null,next:null});e:{var me=e,ve=g;B=t;var $e=n;switch(ve.tag){case 1:if(me=ve.payload,typeof me=="function"){se=me.call($e,se,B);break e}se=me;break e;case 3:me.flags=me.flags&-65537|128;case 0:if(me=ve.payload,B=typeof me=="function"?me.call($e,se,B):me,B==null)break e;se=j({},se,B);break e;case 2:zn=!0}}B=g.callback,B!==null&&(e.flags|=64,K&&(e.flags|=8192),K=o.callbacks,K===null?o.callbacks=[B]:K.push(B))}else K={lane:B,tag:g.tag,payload:g.payload,callback:g.callback,next:null},V===null?(H=V=K,T=se):V=V.next=K,d|=B;if(g=g.next,g===null){if(g=o.shared.pending,g===null)break;K=g,g=K.next,K.next=null,o.lastBaseUpdate=K,o.shared.pending=null}}while(!0);V===null&&(T=se),o.baseState=T,o.firstBaseUpdate=H,o.lastBaseUpdate=V,c===null&&(o.shared.lanes=0),$n|=d,e.lanes=d,e.memoizedState=se}}function qu(e,t){if(typeof e!="function")throw Error(u(191,e));e.call(t)}function Gu(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)qu(n[e],t)}var Va=y(null),Ul=y(0);function $u(e,t){e=Tn,X(Ul,e),X(Va,t),Tn=e|t.baseLanes}function Ur(){X(Ul,Tn),X(Va,Va.current)}function Hr(){Tn=Ul.current,A(Va),A(Ul)}var Mt=y(null),Qt=null;function Hn(e){var t=e.alternate;X(We,We.current&1),X(Mt,e),Qt===null&&(t===null||Va.current!==null||t.memoizedState!==null)&&(Qt=e)}function Br(e){X(We,We.current),X(Mt,e),Qt===null&&(Qt=e)}function Yu(e){e.tag===22?(X(We,We.current),X(Mt,e),Qt===null&&(Qt=e)):Bn()}function Bn(){X(We,We.current),X(Mt,Mt.current)}function _t(e){A(Mt),Qt===e&&(Qt=null),A(We)}var We=y(0);function Hl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Qo(n)||Vo(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var gn=0,Se=null,qe=null,at=null,Bl=!1,Za=!1,va=!1,ql=0,Hs=0,Ja=null,Qp=0;function Ze(){throw Error(u(321))}function qr(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Dt(e[n],t[n]))return!1;return!0}function Gr(e,t,n,a,o,c){return gn=c,Se=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,b.H=e===null||e.memoizedState===null?Ed:ao,va=!1,c=n(a,o),va=!1,Za&&(c=Xu(t,n,a,o)),Ku(e),c}function Ku(e){b.H=Gs;var t=qe!==null&&qe.next!==null;if(gn=0,at=qe=Se=null,Bl=!1,Hs=0,Ja=null,t)throw Error(u(300));e===null||st||(e=e.dependencies,e!==null&&Il(e)&&(st=!0))}function Xu(e,t,n,a){Se=e;var o=0;do{if(Za&&(Ja=null),Hs=0,Za=!1,25<=o)throw Error(u(301));if(o+=1,at=qe=null,e.updateQueue!=null){var c=e.updateQueue;c.lastEffect=null,c.events=null,c.stores=null,c.memoCache!=null&&(c.memoCache.index=0)}b.H=kd,c=t(n,a)}while(Za);return c}function Vp(){var e=b.H,t=e.useState()[0];return t=typeof t.then=="function"?Bs(t):t,e=e.useState()[0],(qe!==null?qe.memoizedState:null)!==e&&(Se.flags|=1024),t}function $r(){var e=ql!==0;return ql=0,e}function Yr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Kr(e){if(Bl){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Bl=!1}gn=0,at=qe=Se=null,Za=!1,Hs=ql=0,Ja=null}function Rt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return at===null?Se.memoizedState=at=e:at=at.next=e,at}function Pe(){if(qe===null){var e=Se.alternate;e=e!==null?e.memoizedState:null}else e=qe.next;var t=at===null?Se.memoizedState:at.next;if(t!==null)at=t,qe=e;else{if(e===null)throw Se.alternate===null?Error(u(467)):Error(u(310));qe=e,e={memoizedState:qe.memoizedState,baseState:qe.baseState,baseQueue:qe.baseQueue,queue:qe.queue,next:null},at===null?Se.memoizedState=at=e:at=at.next=e}return at}function Gl(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Bs(e){var t=Hs;return Hs+=1,Ja===null&&(Ja=[]),e=zu(Ja,e,t),t=Se,(at===null?t.memoizedState:at.next)===null&&(t=t.alternate,b.H=t===null||t.memoizedState===null?Ed:ao),e}function $l(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Bs(e);if(e.$$typeof===I)return gt(e)}throw Error(u(438,String(e)))}function Xr(e){var t=null,n=Se.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=Se.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(o){return o.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Gl(),Se.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=ne;return t.index++,n}function vn(e,t){return typeof t=="function"?t(e):t}function Yl(e){var t=Pe();return Qr(t,qe,e)}function Qr(e,t,n){var a=e.queue;if(a===null)throw Error(u(311));a.lastRenderedReducer=n;var o=e.baseQueue,c=a.pending;if(c!==null){if(o!==null){var d=o.next;o.next=c.next,c.next=d}t.baseQueue=o=c,a.pending=null}if(c=e.baseState,o===null)e.memoizedState=c;else{t=o.next;var g=d=null,T=null,H=t,V=!1;do{var se=H.lane&-536870913;if(se!==H.lane?(Ee&se)===se:(gn&se)===se){var B=H.revertLane;if(B===0)T!==null&&(T=T.next={lane:0,revertLane:0,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null}),se===Ya&&(V=!0);else if((gn&B)===B){H=H.next,B===Ya&&(V=!0);continue}else se={lane:0,revertLane:H.revertLane,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},T===null?(g=T=se,d=c):T=T.next=se,Se.lanes|=B,$n|=B;se=H.action,va&&n(c,se),c=H.hasEagerState?H.eagerState:n(c,se)}else B={lane:se,revertLane:H.revertLane,gesture:H.gesture,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},T===null?(g=T=B,d=c):T=T.next=B,Se.lanes|=se,$n|=se;H=H.next}while(H!==null&&H!==t);if(T===null?d=c:T.next=g,!Dt(c,e.memoizedState)&&(st=!0,V&&(n=Ka,n!==null)))throw n;e.memoizedState=c,e.baseState=d,e.baseQueue=T,a.lastRenderedState=c}return o===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Vr(e){var t=Pe(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var a=n.dispatch,o=n.pending,c=t.memoizedState;if(o!==null){n.pending=null;var d=o=o.next;do c=e(c,d.action),d=d.next;while(d!==o);Dt(c,t.memoizedState)||(st=!0),t.memoizedState=c,t.baseQueue===null&&(t.baseState=c),n.lastRenderedState=c}return[c,a]}function Qu(e,t,n){var a=Se,o=Pe(),c=we;if(c){if(n===void 0)throw Error(u(407));n=n()}else n=t();var d=!Dt((qe||o).memoizedState,n);if(d&&(o.memoizedState=n,st=!0),o=o.queue,Fr(Ju.bind(null,a,o,e),[e]),o.getSnapshot!==t||d||at!==null&&at.memoizedState.tag&1){if(a.flags|=2048,Fa(9,{destroy:void 0},Zu.bind(null,a,o,n,t),null),Ye===null)throw Error(u(349));c||(gn&127)!==0||Vu(a,t,n)}return n}function Vu(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Se.updateQueue,t===null?(t=Gl(),Se.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Zu(e,t,n,a){t.value=n,t.getSnapshot=a,Fu(t)&&Wu(e)}function Ju(e,t,n){return n(function(){Fu(t)&&Wu(e)})}function Fu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Dt(e,n)}catch{return!0}}function Wu(e){var t=oa(e,2);t!==null&&At(t,e,2)}function Zr(e){var t=Rt();if(typeof e=="function"){var n=e;if(e=n(),va){jt(!0);try{n()}finally{jt(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:vn,lastRenderedState:e},t}function Pu(e,t,n,a){return e.baseState=n,Qr(e,qe,typeof a=="function"?a:vn)}function Zp(e,t,n,a,o){if(Ql(e))throw Error(u(485));if(e=t.action,e!==null){var c={payload:o,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){c.listeners.push(d)}};b.T!==null?n(!0):c.isTransition=!1,a(c),n=t.pending,n===null?(c.next=t.pending=c,ed(t,c)):(c.next=n.next,t.pending=n.next=c)}}function ed(e,t){var n=t.action,a=t.payload,o=e.state;if(t.isTransition){var c=b.T,d={};b.T=d;try{var g=n(o,a),T=b.S;T!==null&&T(d,g),td(e,t,g)}catch(H){Jr(e,t,H)}finally{c!==null&&d.types!==null&&(c.types=d.types),b.T=c}}else try{c=n(o,a),td(e,t,c)}catch(H){Jr(e,t,H)}}function td(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){nd(e,t,a)},function(a){return Jr(e,t,a)}):nd(e,t,n)}function nd(e,t,n){t.status="fulfilled",t.value=n,ad(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,ed(e,n)))}function Jr(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,ad(t),t=t.next;while(t!==a)}e.action=null}function ad(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function sd(e,t){return t}function ld(e,t){if(we){var n=Ye.formState;if(n!==null){e:{var a=Se;if(we){if(Ke){t:{for(var o=Ke,c=Xt;o.nodeType!==8;){if(!c){o=null;break t}if(o=Vt(o.nextSibling),o===null){o=null;break t}}c=o.data,o=c==="F!"||c==="F"?o:null}if(o){Ke=Vt(o.nextSibling),a=o.data==="F!";break e}}Mn(a)}a=!1}a&&(t=n[0])}}return n=Rt(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:sd,lastRenderedState:t},n.queue=a,n=Td.bind(null,Se,a),a.dispatch=n,a=Zr(!1),c=no.bind(null,Se,!1,a.queue),a=Rt(),o={state:t,dispatch:null,action:e,pending:null},a.queue=o,n=Zp.bind(null,Se,o,c,n),o.dispatch=n,a.memoizedState=e,[t,n,!1]}function id(e){var t=Pe();return rd(t,qe,e)}function rd(e,t,n){if(t=Qr(e,t,sd)[0],e=Yl(vn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Bs(t)}catch(d){throw d===Xa?Ml:d}else a=t;t=Pe();var o=t.queue,c=o.dispatch;return n!==t.memoizedState&&(Se.flags|=2048,Fa(9,{destroy:void 0},Jp.bind(null,o,n),null)),[a,c,e]}function Jp(e,t){e.action=t}function od(e){var t=Pe(),n=qe;if(n!==null)return rd(t,n,e);Pe(),t=t.memoizedState,n=Pe();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Fa(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=Se.updateQueue,t===null&&(t=Gl(),Se.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function cd(){return Pe().memoizedState}function Kl(e,t,n,a){var o=Rt();Se.flags|=e,o.memoizedState=Fa(1|t,{destroy:void 0},n,a===void 0?null:a)}function Xl(e,t,n,a){var o=Pe();a=a===void 0?null:a;var c=o.memoizedState.inst;qe!==null&&a!==null&&qr(a,qe.memoizedState.deps)?o.memoizedState=Fa(t,c,n,a):(Se.flags|=e,o.memoizedState=Fa(1|t,c,n,a))}function ud(e,t){Kl(8390656,8,e,t)}function Fr(e,t){Xl(2048,8,e,t)}function Fp(e){Se.flags|=4;var t=Se.updateQueue;if(t===null)t=Gl(),Se.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function dd(e){var t=Pe().memoizedState;return Fp({ref:t,nextImpl:e}),function(){if((Me&2)!==0)throw Error(u(440));return t.impl.apply(void 0,arguments)}}function fd(e,t){return Xl(4,2,e,t)}function md(e,t){return Xl(4,4,e,t)}function hd(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function pd(e,t,n){n=n!=null?n.concat([e]):null,Xl(4,4,hd.bind(null,t,e),n)}function Wr(){}function gd(e,t){var n=Pe();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&qr(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function vd(e,t){var n=Pe();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&qr(t,a[1]))return a[0];if(a=e(),va){jt(!0);try{e()}finally{jt(!1)}}return n.memoizedState=[a,t],a}function Pr(e,t,n){return n===void 0||(gn&1073741824)!==0&&(Ee&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=bf(),Se.lanes|=e,$n|=e,n)}function yd(e,t,n,a){return Dt(n,t)?n:Va.current!==null?(e=Pr(e,n,a),Dt(e,t)||(st=!0),e):(gn&42)===0||(gn&1073741824)!==0&&(Ee&261930)===0?(st=!0,e.memoizedState=n):(e=bf(),Se.lanes|=e,$n|=e,t)}function bd(e,t,n,a,o){var c=E.p;E.p=c!==0&&8>c?c:8;var d=b.T,g={};b.T=g,no(e,!1,t,n);try{var T=o(),H=b.S;if(H!==null&&H(g,T),T!==null&&typeof T=="object"&&typeof T.then=="function"){var V=Xp(T,a);qs(e,t,V,Ut(e))}else qs(e,t,a,Ut(e))}catch(se){qs(e,t,{then:function(){},status:"rejected",reason:se},Ut())}finally{E.p=c,d!==null&&g.types!==null&&(d.types=g.types),b.T=d}}function Wp(){}function eo(e,t,n,a){if(e.tag!==5)throw Error(u(476));var o=xd(e).queue;bd(e,o,t,w,n===null?Wp:function(){return Sd(e),n(a)})}function xd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:w,baseState:w,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vn,lastRenderedState:w},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Sd(e){var t=xd(e);t.next===null&&(t=e.alternate.memoizedState),qs(e,t.next.queue,{},Ut())}function to(){return gt(sl)}function jd(){return Pe().memoizedState}function Rd(){return Pe().memoizedState}function Pp(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Ut();e=Ln(n);var a=Un(t,e,n);a!==null&&(At(a,t,n),zs(a,t,n)),t={cache:Ar()},e.payload=t;return}t=t.return}}function eg(e,t,n){var a=Ut();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ql(e)?Nd(t,n):(n=br(e,t,n,a),n!==null&&(At(n,e,a),Cd(n,t,a)))}function Td(e,t,n){var a=Ut();qs(e,t,n,a)}function qs(e,t,n,a){var o={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ql(e))Nd(t,o);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var d=t.lastRenderedState,g=c(d,n);if(o.hasEagerState=!0,o.eagerState=g,Dt(g,d))return El(e,t,o,0),Ye===null&&Cl(),!1}catch{}if(n=br(e,t,o,a),n!==null)return At(n,e,a),Cd(n,t,a),!0}return!1}function no(e,t,n,a){if(a={lane:2,revertLane:_o(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ql(e)){if(t)throw Error(u(479))}else t=br(e,n,a,2),t!==null&&At(t,e,2)}function Ql(e){var t=e.alternate;return e===Se||t!==null&&t===Se}function Nd(e,t){Za=Bl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Cd(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ic(e,n)}}var Gs={readContext:gt,use:$l,useCallback:Ze,useContext:Ze,useEffect:Ze,useImperativeHandle:Ze,useLayoutEffect:Ze,useInsertionEffect:Ze,useMemo:Ze,useReducer:Ze,useRef:Ze,useState:Ze,useDebugValue:Ze,useDeferredValue:Ze,useTransition:Ze,useSyncExternalStore:Ze,useId:Ze,useHostTransitionStatus:Ze,useFormState:Ze,useActionState:Ze,useOptimistic:Ze,useMemoCache:Ze,useCacheRefresh:Ze};Gs.useEffectEvent=Ze;var Ed={readContext:gt,use:$l,useCallback:function(e,t){return Rt().memoizedState=[e,t===void 0?null:t],e},useContext:gt,useEffect:ud,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Kl(4194308,4,hd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Kl(4194308,4,e,t)},useInsertionEffect:function(e,t){Kl(4,2,e,t)},useMemo:function(e,t){var n=Rt();t=t===void 0?null:t;var a=e();if(va){jt(!0);try{e()}finally{jt(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=Rt();if(n!==void 0){var o=n(t);if(va){jt(!0);try{n(t)}finally{jt(!1)}}}else o=t;return a.memoizedState=a.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},a.queue=e,e=e.dispatch=eg.bind(null,Se,e),[a.memoizedState,e]},useRef:function(e){var t=Rt();return e={current:e},t.memoizedState=e},useState:function(e){e=Zr(e);var t=e.queue,n=Td.bind(null,Se,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Wr,useDeferredValue:function(e,t){var n=Rt();return Pr(n,e,t)},useTransition:function(){var e=Zr(!1);return e=bd.bind(null,Se,e.queue,!0,!1),Rt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=Se,o=Rt();if(we){if(n===void 0)throw Error(u(407));n=n()}else{if(n=t(),Ye===null)throw Error(u(349));(Ee&127)!==0||Vu(a,t,n)}o.memoizedState=n;var c={value:n,getSnapshot:t};return o.queue=c,ud(Ju.bind(null,a,c,e),[e]),a.flags|=2048,Fa(9,{destroy:void 0},Zu.bind(null,a,c,n,t),null),n},useId:function(){var e=Rt(),t=Ye.identifierPrefix;if(we){var n=an,a=nn;n=(a&~(1<<32-xt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=ql++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=Qp++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:to,useFormState:ld,useActionState:ld,useOptimistic:function(e){var t=Rt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=no.bind(null,Se,!0,n),n.dispatch=t,[e,t]},useMemoCache:Xr,useCacheRefresh:function(){return Rt().memoizedState=Pp.bind(null,Se)},useEffectEvent:function(e){var t=Rt(),n={impl:e};return t.memoizedState=n,function(){if((Me&2)!==0)throw Error(u(440));return n.impl.apply(void 0,arguments)}}},ao={readContext:gt,use:$l,useCallback:gd,useContext:gt,useEffect:Fr,useImperativeHandle:pd,useInsertionEffect:fd,useLayoutEffect:md,useMemo:vd,useReducer:Yl,useRef:cd,useState:function(){return Yl(vn)},useDebugValue:Wr,useDeferredValue:function(e,t){var n=Pe();return yd(n,qe.memoizedState,e,t)},useTransition:function(){var e=Yl(vn)[0],t=Pe().memoizedState;return[typeof e=="boolean"?e:Bs(e),t]},useSyncExternalStore:Qu,useId:jd,useHostTransitionStatus:to,useFormState:id,useActionState:id,useOptimistic:function(e,t){var n=Pe();return Pu(n,qe,e,t)},useMemoCache:Xr,useCacheRefresh:Rd};ao.useEffectEvent=dd;var kd={readContext:gt,use:$l,useCallback:gd,useContext:gt,useEffect:Fr,useImperativeHandle:pd,useInsertionEffect:fd,useLayoutEffect:md,useMemo:vd,useReducer:Vr,useRef:cd,useState:function(){return Vr(vn)},useDebugValue:Wr,useDeferredValue:function(e,t){var n=Pe();return qe===null?Pr(n,e,t):yd(n,qe.memoizedState,e,t)},useTransition:function(){var e=Vr(vn)[0],t=Pe().memoizedState;return[typeof e=="boolean"?e:Bs(e),t]},useSyncExternalStore:Qu,useId:jd,useHostTransitionStatus:to,useFormState:od,useActionState:od,useOptimistic:function(e,t){var n=Pe();return qe!==null?Pu(n,qe,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Xr,useCacheRefresh:Rd};kd.useEffectEvent=dd;function so(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:j({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var lo={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Ut(),o=Ln(a);o.payload=t,n!=null&&(o.callback=n),t=Un(e,o,a),t!==null&&(At(t,e,a),zs(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Ut(),o=Ln(a);o.tag=1,o.payload=t,n!=null&&(o.callback=n),t=Un(e,o,a),t!==null&&(At(t,e,a),zs(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Ut(),a=Ln(n);a.tag=2,t!=null&&(a.callback=t),t=Un(e,a,n),t!==null&&(At(t,e,n),zs(t,e,n))}};function wd(e,t,n,a,o,c,d){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,c,d):t.prototype&&t.prototype.isPureReactComponent?!ks(n,a)||!ks(o,c):!0}function Ad(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&lo.enqueueReplaceState(t,t.state,null)}function ya(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=j({},n));for(var o in e)n[o]===void 0&&(n[o]=e[o])}return n}function Id(e){Nl(e)}function Dd(e){console.error(e)}function Od(e){Nl(e)}function Vl(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Md(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(o){setTimeout(function(){throw o})}}function io(e,t,n){return n=Ln(n),n.tag=3,n.payload={element:null},n.callback=function(){Vl(e,t)},n}function _d(e){return e=Ln(e),e.tag=3,e}function zd(e,t,n,a){var o=n.type.getDerivedStateFromError;if(typeof o=="function"){var c=a.value;e.payload=function(){return o(c)},e.callback=function(){Md(t,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(e.callback=function(){Md(t,n,a),typeof o!="function"&&(Yn===null?Yn=new Set([this]):Yn.add(this));var g=a.stack;this.componentDidCatch(a.value,{componentStack:g!==null?g:""})})}function tg(e,t,n,a,o){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&$a(t,n,o,!0),n=Mt.current,n!==null){switch(n.tag){case 31:case 13:return Qt===null?ii():n.alternate===null&&Je===0&&(Je=3),n.flags&=-257,n.flags|=65536,n.lanes=o,a===_l?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),Do(e,a,o)),!1;case 22:return n.flags|=65536,a===_l?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),Do(e,a,o)),!1}throw Error(u(435,n.tag))}return Do(e,a,o),ii(),!1}if(we)return t=Mt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=o,a!==Nr&&(e=Error(u(422),{cause:a}),Is($t(e,n)))):(a!==Nr&&(t=Error(u(423),{cause:a}),Is($t(t,n))),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,a=$t(a,n),o=io(e.stateNode,a,o),zr(e,o),Je!==4&&(Je=2)),!1;var c=Error(u(520),{cause:a});if(c=$t(c,n),Js===null?Js=[c]:Js.push(c),Je!==4&&(Je=2),t===null)return!0;a=$t(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=o&-o,n.lanes|=e,e=io(n.stateNode,a,e),zr(n,e),!1;case 1:if(t=n.type,c=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||c!==null&&typeof c.componentDidCatch=="function"&&(Yn===null||!Yn.has(c))))return n.flags|=65536,o&=-o,n.lanes|=o,o=_d(o),zd(o,e,n,a),zr(n,o),!1}n=n.return}while(n!==null);return!1}var ro=Error(u(461)),st=!1;function vt(e,t,n,a){t.child=e===null?Bu(t,null,n,a):ga(t,e.child,n,a)}function Ld(e,t,n,a,o){n=n.render;var c=t.ref;if("ref"in a){var d={};for(var g in a)g!=="ref"&&(d[g]=a[g])}else d=a;return fa(t),a=Gr(e,t,n,d,c,o),g=$r(),e!==null&&!st?(Yr(e,t,o),yn(e,t,o)):(we&&g&&Rr(t),t.flags|=1,vt(e,t,a,o),t.child)}function Ud(e,t,n,a,o){if(e===null){var c=n.type;return typeof c=="function"&&!xr(c)&&c.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=c,Hd(e,t,c,a,o)):(e=wl(n.type,null,a,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(c=e.child,!go(e,o)){var d=c.memoizedProps;if(n=n.compare,n=n!==null?n:ks,n(d,a)&&e.ref===t.ref)return yn(e,t,o)}return t.flags|=1,e=fn(c,a),e.ref=t.ref,e.return=t,t.child=e}function Hd(e,t,n,a,o){if(e!==null){var c=e.memoizedProps;if(ks(c,a)&&e.ref===t.ref)if(st=!1,t.pendingProps=a=c,go(e,o))(e.flags&131072)!==0&&(st=!0);else return t.lanes=e.lanes,yn(e,t,o)}return oo(e,t,n,a,o)}function Bd(e,t,n,a){var o=a.children,c=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(c=c!==null?c.baseLanes|n:n,e!==null){for(a=t.child=e.child,o=0;a!==null;)o=o|a.lanes|a.childLanes,a=a.sibling;a=o&~c}else a=0,t.child=null;return qd(e,t,c,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Ol(t,c!==null?c.cachePool:null),c!==null?$u(t,c):Ur(),Yu(t);else return a=t.lanes=536870912,qd(e,t,c!==null?c.baseLanes|n:n,n,a)}else c!==null?(Ol(t,c.cachePool),$u(t,c),Bn(),t.memoizedState=null):(e!==null&&Ol(t,null),Ur(),Bn());return vt(e,t,o,n),t.child}function $s(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function qd(e,t,n,a,o){var c=Dr();return c=c===null?null:{parent:nt._currentValue,pool:c},t.memoizedState={baseLanes:n,cachePool:c},e!==null&&Ol(t,null),Ur(),Yu(t),e!==null&&$a(e,t,a,!0),t.childLanes=o,null}function Zl(e,t){return t=Fl({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Gd(e,t,n){return ga(t,e.child,null,n),e=Zl(t,t.pendingProps),e.flags|=2,_t(t),t.memoizedState=null,e}function ng(e,t,n){var a=t.pendingProps,o=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(we){if(a.mode==="hidden")return e=Zl(t,a),t.lanes=536870912,$s(null,e);if(Br(t),(e=Ke)?(e=tm(e,Xt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Dn!==null?{id:nn,overflow:an}:null,retryLane:536870912,hydrationErrors:null},n=Nu(e),n.return=t,t.child=n,pt=t,Ke=null)):e=null,e===null)throw Mn(t);return t.lanes=536870912,null}return Zl(t,a)}var c=e.memoizedState;if(c!==null){var d=c.dehydrated;if(Br(t),o)if(t.flags&256)t.flags&=-257,t=Gd(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(u(558));else if(st||$a(e,t,n,!1),o=(n&e.childLanes)!==0,st||o){if(a=Ye,a!==null&&(d=Dc(a,n),d!==0&&d!==c.retryLane))throw c.retryLane=d,oa(e,d),At(a,e,d),ro;ii(),t=Gd(e,t,n)}else e=c.treeContext,Ke=Vt(d.nextSibling),pt=t,we=!0,On=null,Xt=!1,e!==null&&ku(t,e),t=Zl(t,a),t.flags|=4096;return t}return e=fn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Jl(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(u(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function oo(e,t,n,a,o){return fa(t),n=Gr(e,t,n,a,void 0,o),a=$r(),e!==null&&!st?(Yr(e,t,o),yn(e,t,o)):(we&&a&&Rr(t),t.flags|=1,vt(e,t,n,o),t.child)}function $d(e,t,n,a,o,c){return fa(t),t.updateQueue=null,n=Xu(t,a,n,o),Ku(e),a=$r(),e!==null&&!st?(Yr(e,t,c),yn(e,t,c)):(we&&a&&Rr(t),t.flags|=1,vt(e,t,n,c),t.child)}function Yd(e,t,n,a,o){if(fa(t),t.stateNode===null){var c=Ha,d=n.contextType;typeof d=="object"&&d!==null&&(c=gt(d)),c=new n(a,c),t.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,c.updater=lo,t.stateNode=c,c._reactInternals=t,c=t.stateNode,c.props=a,c.state=t.memoizedState,c.refs={},Mr(t),d=n.contextType,c.context=typeof d=="object"&&d!==null?gt(d):Ha,c.state=t.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(so(t,n,d,a),c.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(d=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),d!==c.state&&lo.enqueueReplaceState(c,c.state,null),Us(t,a,c,o),Ls(),c.state=t.memoizedState),typeof c.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){c=t.stateNode;var g=t.memoizedProps,T=ya(n,g);c.props=T;var H=c.context,V=n.contextType;d=Ha,typeof V=="object"&&V!==null&&(d=gt(V));var se=n.getDerivedStateFromProps;V=typeof se=="function"||typeof c.getSnapshotBeforeUpdate=="function",g=t.pendingProps!==g,V||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(g||H!==d)&&Ad(t,c,a,d),zn=!1;var B=t.memoizedState;c.state=B,Us(t,a,c,o),Ls(),H=t.memoizedState,g||B!==H||zn?(typeof se=="function"&&(so(t,n,se,a),H=t.memoizedState),(T=zn||wd(t,n,T,a,B,H,d))?(V||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=H),c.props=a,c.state=H,c.context=d,a=T):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{c=t.stateNode,_r(e,t),d=t.memoizedProps,V=ya(n,d),c.props=V,se=t.pendingProps,B=c.context,H=n.contextType,T=Ha,typeof H=="object"&&H!==null&&(T=gt(H)),g=n.getDerivedStateFromProps,(H=typeof g=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(d!==se||B!==T)&&Ad(t,c,a,T),zn=!1,B=t.memoizedState,c.state=B,Us(t,a,c,o),Ls();var K=t.memoizedState;d!==se||B!==K||zn||e!==null&&e.dependencies!==null&&Il(e.dependencies)?(typeof g=="function"&&(so(t,n,g,a),K=t.memoizedState),(V=zn||wd(t,n,V,a,B,K,T)||e!==null&&e.dependencies!==null&&Il(e.dependencies))?(H||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(a,K,T),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(a,K,T)),typeof c.componentDidUpdate=="function"&&(t.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof c.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=K),c.props=a,c.state=K,c.context=T,a=V):(typeof c.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),a=!1)}return c=a,Jl(e,t),a=(t.flags&128)!==0,c||a?(c=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:c.render(),t.flags|=1,e!==null&&a?(t.child=ga(t,e.child,null,o),t.child=ga(t,null,n,o)):vt(e,t,n,o),t.memoizedState=c.state,e=t.child):e=yn(e,t,o),e}function Kd(e,t,n,a){return ua(),t.flags|=256,vt(e,t,n,a),t.child}var co={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function uo(e){return{baseLanes:e,cachePool:Mu()}}function fo(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Lt),e}function Xd(e,t,n){var a=t.pendingProps,o=!1,c=(t.flags&128)!==0,d;if((d=c)||(d=e!==null&&e.memoizedState===null?!1:(We.current&2)!==0),d&&(o=!0,t.flags&=-129),d=(t.flags&32)!==0,t.flags&=-33,e===null){if(we){if(o?Hn(t):Bn(),(e=Ke)?(e=tm(e,Xt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Dn!==null?{id:nn,overflow:an}:null,retryLane:536870912,hydrationErrors:null},n=Nu(e),n.return=t,t.child=n,pt=t,Ke=null)):e=null,e===null)throw Mn(t);return Vo(e)?t.lanes=32:t.lanes=536870912,null}var g=a.children;return a=a.fallback,o?(Bn(),o=t.mode,g=Fl({mode:"hidden",children:g},o),a=ca(a,o,n,null),g.return=t,a.return=t,g.sibling=a,t.child=g,a=t.child,a.memoizedState=uo(n),a.childLanes=fo(e,d,n),t.memoizedState=co,$s(null,a)):(Hn(t),mo(t,g))}var T=e.memoizedState;if(T!==null&&(g=T.dehydrated,g!==null)){if(c)t.flags&256?(Hn(t),t.flags&=-257,t=ho(e,t,n)):t.memoizedState!==null?(Bn(),t.child=e.child,t.flags|=128,t=null):(Bn(),g=a.fallback,o=t.mode,a=Fl({mode:"visible",children:a.children},o),g=ca(g,o,n,null),g.flags|=2,a.return=t,g.return=t,a.sibling=g,t.child=a,ga(t,e.child,null,n),a=t.child,a.memoizedState=uo(n),a.childLanes=fo(e,d,n),t.memoizedState=co,t=$s(null,a));else if(Hn(t),Vo(g)){if(d=g.nextSibling&&g.nextSibling.dataset,d)var H=d.dgst;d=H,a=Error(u(419)),a.stack="",a.digest=d,Is({value:a,source:null,stack:null}),t=ho(e,t,n)}else if(st||$a(e,t,n,!1),d=(n&e.childLanes)!==0,st||d){if(d=Ye,d!==null&&(a=Dc(d,n),a!==0&&a!==T.retryLane))throw T.retryLane=a,oa(e,a),At(d,e,a),ro;Qo(g)||ii(),t=ho(e,t,n)}else Qo(g)?(t.flags|=192,t.child=e.child,t=null):(e=T.treeContext,Ke=Vt(g.nextSibling),pt=t,we=!0,On=null,Xt=!1,e!==null&&ku(t,e),t=mo(t,a.children),t.flags|=4096);return t}return o?(Bn(),g=a.fallback,o=t.mode,T=e.child,H=T.sibling,a=fn(T,{mode:"hidden",children:a.children}),a.subtreeFlags=T.subtreeFlags&65011712,H!==null?g=fn(H,g):(g=ca(g,o,n,null),g.flags|=2),g.return=t,a.return=t,a.sibling=g,t.child=a,$s(null,a),a=t.child,g=e.child.memoizedState,g===null?g=uo(n):(o=g.cachePool,o!==null?(T=nt._currentValue,o=o.parent!==T?{parent:T,pool:T}:o):o=Mu(),g={baseLanes:g.baseLanes|n,cachePool:o}),a.memoizedState=g,a.childLanes=fo(e,d,n),t.memoizedState=co,$s(e.child,a)):(Hn(t),n=e.child,e=n.sibling,n=fn(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(d=t.deletions,d===null?(t.deletions=[e],t.flags|=16):d.push(e)),t.child=n,t.memoizedState=null,n)}function mo(e,t){return t=Fl({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Fl(e,t){return e=Ot(22,e,null,t),e.lanes=0,e}function ho(e,t,n){return ga(t,e.child,null,n),e=mo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Qd(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),kr(e.return,t,n)}function po(e,t,n,a,o,c){var d=e.memoizedState;d===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:o,treeForkCount:c}:(d.isBackwards=t,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=o,d.treeForkCount=c)}function Vd(e,t,n){var a=t.pendingProps,o=a.revealOrder,c=a.tail;a=a.children;var d=We.current,g=(d&2)!==0;if(g?(d=d&1|2,t.flags|=128):d&=1,X(We,d),vt(e,t,a,n),a=we?As:0,!g&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Qd(e,n,t);else if(e.tag===19)Qd(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Hl(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),po(t,!1,o,n,c,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Hl(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}po(t,!0,n,null,c,a);break;case"together":po(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function yn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),$n|=t.lanes,(n&t.childLanes)===0)if(e!==null){if($a(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,n=fn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=fn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function go(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Il(e)))}function ag(e,t,n){switch(t.tag){case 3:de(t,t.stateNode.containerInfo),_n(t,nt,e.memoizedState.cache),ua();break;case 27:case 5:ye(t);break;case 4:de(t,t.stateNode.containerInfo);break;case 10:_n(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Br(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Hn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Xd(e,t,n):(Hn(t),e=yn(e,t,n),e!==null?e.sibling:null);Hn(t);break;case 19:var o=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||($a(e,t,n,!1),a=(n&t.childLanes)!==0),o){if(a)return Vd(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),X(We,We.current),a)break;return null;case 22:return t.lanes=0,Bd(e,t,n,t.pendingProps);case 24:_n(t,nt,e.memoizedState.cache)}return yn(e,t,n)}function Zd(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)st=!0;else{if(!go(e,n)&&(t.flags&128)===0)return st=!1,ag(e,t,n);st=(e.flags&131072)!==0}else st=!1,we&&(t.flags&1048576)!==0&&Eu(t,As,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=ha(t.elementType),t.type=e,typeof e=="function")xr(e)?(a=ya(e,a),t.tag=1,t=Yd(null,t,e,a,n)):(t.tag=0,t=oo(null,t,e,a,n));else{if(e!=null){var o=e.$$typeof;if(o===D){t.tag=11,t=Ld(null,t,e,a,n);break e}else if(o===_){t.tag=14,t=Ud(null,t,e,a,n);break e}}throw t=W(e)||e,Error(u(306,t,""))}}return t;case 0:return oo(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,o=ya(a,t.pendingProps),Yd(e,t,a,o,n);case 3:e:{if(de(t,t.stateNode.containerInfo),e===null)throw Error(u(387));a=t.pendingProps;var c=t.memoizedState;o=c.element,_r(e,t),Us(t,a,null,n);var d=t.memoizedState;if(a=d.cache,_n(t,nt,a),a!==c.cache&&wr(t,[nt],n,!0),Ls(),a=d.element,c.isDehydrated)if(c={element:a,isDehydrated:!1,cache:d.cache},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){t=Kd(e,t,a,n);break e}else if(a!==o){o=$t(Error(u(424)),t),Is(o),t=Kd(e,t,a,n);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Ke=Vt(e.firstChild),pt=t,we=!0,On=null,Xt=!0,n=Bu(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ua(),a===o){t=yn(e,t,n);break e}vt(e,t,a,n)}t=t.child}return t;case 26:return Jl(e,t),e===null?(n=rm(t.type,null,t.pendingProps,null))?t.memoizedState=n:we||(n=t.type,e=t.pendingProps,a=mi(re.current).createElement(n),a[ht]=t,a[Tt]=e,yt(a,n,e),ct(a),t.stateNode=a):t.memoizedState=rm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ye(t),e===null&&we&&(a=t.stateNode=sm(t.type,t.pendingProps,re.current),pt=t,Xt=!0,o=Ke,Vn(t.type)?(Zo=o,Ke=Vt(a.firstChild)):Ke=o),vt(e,t,t.pendingProps.children,n),Jl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&we&&((o=a=Ke)&&(a=Og(a,t.type,t.pendingProps,Xt),a!==null?(t.stateNode=a,pt=t,Ke=Vt(a.firstChild),Xt=!1,o=!0):o=!1),o||Mn(t)),ye(t),o=t.type,c=t.pendingProps,d=e!==null?e.memoizedProps:null,a=c.children,Yo(o,c)?a=null:d!==null&&Yo(o,d)&&(t.flags|=32),t.memoizedState!==null&&(o=Gr(e,t,Vp,null,null,n),sl._currentValue=o),Jl(e,t),vt(e,t,a,n),t.child;case 6:return e===null&&we&&((e=n=Ke)&&(n=Mg(n,t.pendingProps,Xt),n!==null?(t.stateNode=n,pt=t,Ke=null,e=!0):e=!1),e||Mn(t)),null;case 13:return Xd(e,t,n);case 4:return de(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=ga(t,null,a,n):vt(e,t,a,n),t.child;case 11:return Ld(e,t,t.type,t.pendingProps,n);case 7:return vt(e,t,t.pendingProps,n),t.child;case 8:return vt(e,t,t.pendingProps.children,n),t.child;case 12:return vt(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,_n(t,t.type,a.value),vt(e,t,a.children,n),t.child;case 9:return o=t.type._context,a=t.pendingProps.children,fa(t),o=gt(o),a=a(o),t.flags|=1,vt(e,t,a,n),t.child;case 14:return Ud(e,t,t.type,t.pendingProps,n);case 15:return Hd(e,t,t.type,t.pendingProps,n);case 19:return Vd(e,t,n);case 31:return ng(e,t,n);case 22:return Bd(e,t,n,t.pendingProps);case 24:return fa(t),a=gt(nt),e===null?(o=Dr(),o===null&&(o=Ye,c=Ar(),o.pooledCache=c,c.refCount++,c!==null&&(o.pooledCacheLanes|=n),o=c),t.memoizedState={parent:a,cache:o},Mr(t),_n(t,nt,o)):((e.lanes&n)!==0&&(_r(e,t),Us(t,null,null,n),Ls()),o=e.memoizedState,c=t.memoizedState,o.parent!==a?(o={parent:a,cache:a},t.memoizedState=o,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=o),_n(t,nt,a)):(a=c.cache,_n(t,nt,a),a!==o.cache&&wr(t,[nt],n,!0))),vt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(u(156,t.tag))}function bn(e){e.flags|=4}function vo(e,t,n,a,o){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(o&335544128)===o)if(e.stateNode.complete)e.flags|=8192;else if(Rf())e.flags|=8192;else throw pa=_l,Or}else e.flags&=-16777217}function Jd(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!fm(t))if(Rf())e.flags|=8192;else throw pa=_l,Or}function Wl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?wc():536870912,e.lanes|=t,ts|=t)}function Ys(e,t){if(!we)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function Xe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,a|=o.subtreeFlags&65011712,a|=o.flags&65011712,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,a|=o.subtreeFlags,a|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function sg(e,t,n){var a=t.pendingProps;switch(Tr(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xe(t),null;case 1:return Xe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),pn(nt),ce(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ga(t)?bn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Cr())),Xe(t),null;case 26:var o=t.type,c=t.memoizedState;return e===null?(bn(t),c!==null?(Xe(t),Jd(t,c)):(Xe(t),vo(t,o,null,a,n))):c?c!==e.memoizedState?(bn(t),Xe(t),Jd(t,c)):(Xe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&bn(t),Xe(t),vo(t,o,e,a,n)),null;case 27:if(je(t),n=re.current,o=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&bn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return Xe(t),null}e=Y.current,Ga(t)?wu(t):(e=sm(o,a,n),t.stateNode=e,bn(t))}return Xe(t),null;case 5:if(je(t),o=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&bn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return Xe(t),null}if(c=Y.current,Ga(t))wu(t);else{var d=mi(re.current);switch(c){case 1:c=d.createElementNS("http://www.w3.org/2000/svg",o);break;case 2:c=d.createElementNS("http://www.w3.org/1998/Math/MathML",o);break;default:switch(o){case"svg":c=d.createElementNS("http://www.w3.org/2000/svg",o);break;case"math":c=d.createElementNS("http://www.w3.org/1998/Math/MathML",o);break;case"script":c=d.createElement("div"),c.innerHTML="<script><\/script>",c=c.removeChild(c.firstChild);break;case"select":c=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?c.multiple=!0:a.size&&(c.size=a.size);break;default:c=typeof a.is=="string"?d.createElement(o,{is:a.is}):d.createElement(o)}}c[ht]=t,c[Tt]=a;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)c.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=c;e:switch(yt(c,o,a),o){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&bn(t)}}return Xe(t),vo(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&bn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(u(166));if(e=re.current,Ga(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,o=pt,o!==null)switch(o.tag){case 27:case 5:a=o.memoizedProps}e[ht]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Qf(e.nodeValue,n)),e||Mn(t,!0)}else e=mi(e).createTextNode(a),e[ht]=t,t.stateNode=e}return Xe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=Ga(t),n!==null){if(e===null){if(!a)throw Error(u(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(557));e[ht]=t}else ua(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Xe(t),e=!1}else n=Cr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(_t(t),t):(_t(t),null);if((t.flags&128)!==0)throw Error(u(558))}return Xe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=Ga(t),a!==null&&a.dehydrated!==null){if(e===null){if(!o)throw Error(u(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(u(317));o[ht]=t}else ua(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Xe(t),o=!1}else o=Cr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(_t(t),t):(_t(t),null)}return _t(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,o=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(o=a.alternate.memoizedState.cachePool.pool),c=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(c=a.memoizedState.cachePool.pool),c!==o&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Wl(t,t.updateQueue),Xe(t),null);case 4:return ce(),e===null&&Ho(t.stateNode.containerInfo),Xe(t),null;case 10:return pn(t.type),Xe(t),null;case 19:if(A(We),a=t.memoizedState,a===null)return Xe(t),null;if(o=(t.flags&128)!==0,c=a.rendering,c===null)if(o)Ys(a,!1);else{if(Je!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(c=Hl(e),c!==null){for(t.flags|=128,Ys(a,!1),e=c.updateQueue,t.updateQueue=e,Wl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Tu(n,e),n=n.sibling;return X(We,We.current&1|2),we&&mn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&he()>ai&&(t.flags|=128,o=!0,Ys(a,!1),t.lanes=4194304)}else{if(!o)if(e=Hl(c),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,Wl(t,e),Ys(a,!0),a.tail===null&&a.tailMode==="hidden"&&!c.alternate&&!we)return Xe(t),null}else 2*he()-a.renderingStartTime>ai&&n!==536870912&&(t.flags|=128,o=!0,Ys(a,!1),t.lanes=4194304);a.isBackwards?(c.sibling=t.child,t.child=c):(e=a.last,e!==null?e.sibling=c:t.child=c,a.last=c)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=he(),e.sibling=null,n=We.current,X(We,o?n&1|2:n&1),we&&mn(t,a.treeForkCount),e):(Xe(t),null);case 22:case 23:return _t(t),Hr(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(Xe(t),t.subtreeFlags&6&&(t.flags|=8192)):Xe(t),n=t.updateQueue,n!==null&&Wl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&A(ma),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),pn(nt),Xe(t),null;case 25:return null;case 30:return null}throw Error(u(156,t.tag))}function lg(e,t){switch(Tr(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return pn(nt),ce(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return je(t),null;case 31:if(t.memoizedState!==null){if(_t(t),t.alternate===null)throw Error(u(340));ua()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(_t(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));ua()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return A(We),null;case 4:return ce(),null;case 10:return pn(t.type),null;case 22:case 23:return _t(t),Hr(),e!==null&&A(ma),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return pn(nt),null;case 25:return null;default:return null}}function Fd(e,t){switch(Tr(t),t.tag){case 3:pn(nt),ce();break;case 26:case 27:case 5:je(t);break;case 4:ce();break;case 31:t.memoizedState!==null&&_t(t);break;case 13:_t(t);break;case 19:A(We);break;case 10:pn(t.type);break;case 22:case 23:_t(t),Hr(),e!==null&&A(ma);break;case 24:pn(nt)}}function Ks(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var o=a.next;n=o;do{if((n.tag&e)===e){a=void 0;var c=n.create,d=n.inst;a=c(),d.destroy=a}n=n.next}while(n!==o)}}catch(g){Ue(t,t.return,g)}}function qn(e,t,n){try{var a=t.updateQueue,o=a!==null?a.lastEffect:null;if(o!==null){var c=o.next;a=c;do{if((a.tag&e)===e){var d=a.inst,g=d.destroy;if(g!==void 0){d.destroy=void 0,o=t;var T=n,H=g;try{H()}catch(V){Ue(o,T,V)}}}a=a.next}while(a!==c)}}catch(V){Ue(t,t.return,V)}}function Wd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Gu(t,n)}catch(a){Ue(e,e.return,a)}}}function Pd(e,t,n){n.props=ya(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Ue(e,t,a)}}function Xs(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(o){Ue(e,t,o)}}function sn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(o){Ue(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(o){Ue(e,t,o)}else n.current=null}function ef(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(o){Ue(e,e.return,o)}}function yo(e,t,n){try{var a=e.stateNode;Eg(a,e.type,n,t),a[Tt]=t}catch(o){Ue(e,e.return,o)}}function tf(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Vn(e.type)||e.tag===4}function bo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||tf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Vn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function xo(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=un));else if(a!==4&&(a===27&&Vn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(xo(e,t,n),e=e.sibling;e!==null;)xo(e,t,n),e=e.sibling}function Pl(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Vn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Pl(e,t,n),e=e.sibling;e!==null;)Pl(e,t,n),e=e.sibling}function nf(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);yt(t,a,n),t[ht]=e,t[Tt]=n}catch(c){Ue(e,e.return,c)}}var xn=!1,lt=!1,So=!1,af=typeof WeakSet=="function"?WeakSet:Set,ut=null;function ig(e,t){if(e=e.containerInfo,Go=xi,e=pu(e),mr(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var o=a.anchorOffset,c=a.focusNode;a=a.focusOffset;try{n.nodeType,c.nodeType}catch{n=null;break e}var d=0,g=-1,T=-1,H=0,V=0,se=e,B=null;t:for(;;){for(var K;se!==n||o!==0&&se.nodeType!==3||(g=d+o),se!==c||a!==0&&se.nodeType!==3||(T=d+a),se.nodeType===3&&(d+=se.nodeValue.length),(K=se.firstChild)!==null;)B=se,se=K;for(;;){if(se===e)break t;if(B===n&&++H===o&&(g=d),B===c&&++V===a&&(T=d),(K=se.nextSibling)!==null)break;se=B,B=se.parentNode}se=K}n=g===-1||T===-1?null:{start:g,end:T}}else n=null}n=n||{start:0,end:0}}else n=null;for($o={focusedElem:e,selectionRange:n},xi=!1,ut=t;ut!==null;)if(t=ut,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ut=e;else for(;ut!==null;){switch(t=ut,c=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)o=e[n],o.ref.impl=o.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&c!==null){e=void 0,n=t,o=c.memoizedProps,c=c.memoizedState,a=n.stateNode;try{var me=ya(n.type,o);e=a.getSnapshotBeforeUpdate(me,c),a.__reactInternalSnapshotBeforeUpdate=e}catch(ve){Ue(n,n.return,ve)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Xo(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Xo(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(u(163))}if(e=t.sibling,e!==null){e.return=t.return,ut=e;break}ut=t.return}}function sf(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:jn(e,n),a&4&&Ks(5,n);break;case 1:if(jn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(d){Ue(n,n.return,d)}else{var o=ya(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(o,t,e.__reactInternalSnapshotBeforeUpdate)}catch(d){Ue(n,n.return,d)}}a&64&&Wd(n),a&512&&Xs(n,n.return);break;case 3:if(jn(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Gu(e,t)}catch(d){Ue(n,n.return,d)}}break;case 27:t===null&&a&4&&nf(n);case 26:case 5:jn(e,n),t===null&&a&4&&ef(n),a&512&&Xs(n,n.return);break;case 12:jn(e,n);break;case 31:jn(e,n),a&4&&of(e,n);break;case 13:jn(e,n),a&4&&cf(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=pg.bind(null,n),_g(e,n))));break;case 22:if(a=n.memoizedState!==null||xn,!a){t=t!==null&&t.memoizedState!==null||lt,o=xn;var c=lt;xn=a,(lt=t)&&!c?Rn(e,n,(n.subtreeFlags&8772)!==0):jn(e,n),xn=o,lt=c}break;case 30:break;default:jn(e,n)}}function lf(e){var t=e.alternate;t!==null&&(e.alternate=null,lf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ji(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ve=null,Ct=!1;function Sn(e,t,n){for(n=n.child;n!==null;)rf(e,t,n),n=n.sibling}function rf(e,t,n){if(ze&&typeof ze.onCommitFiberUnmount=="function")try{ze.onCommitFiberUnmount(Be,n)}catch{}switch(n.tag){case 26:lt||sn(n,t),Sn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:lt||sn(n,t);var a=Ve,o=Ct;Vn(n.type)&&(Ve=n.stateNode,Ct=!1),Sn(e,t,n),tl(n.stateNode),Ve=a,Ct=o;break;case 5:lt||sn(n,t);case 6:if(a=Ve,o=Ct,Ve=null,Sn(e,t,n),Ve=a,Ct=o,Ve!==null)if(Ct)try{(Ve.nodeType===9?Ve.body:Ve.nodeName==="HTML"?Ve.ownerDocument.body:Ve).removeChild(n.stateNode)}catch(c){Ue(n,t,c)}else try{Ve.removeChild(n.stateNode)}catch(c){Ue(n,t,c)}break;case 18:Ve!==null&&(Ct?(e=Ve,Pf(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),cs(e)):Pf(Ve,n.stateNode));break;case 4:a=Ve,o=Ct,Ve=n.stateNode.containerInfo,Ct=!0,Sn(e,t,n),Ve=a,Ct=o;break;case 0:case 11:case 14:case 15:qn(2,n,t),lt||qn(4,n,t),Sn(e,t,n);break;case 1:lt||(sn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Pd(n,t,a)),Sn(e,t,n);break;case 21:Sn(e,t,n);break;case 22:lt=(a=lt)||n.memoizedState!==null,Sn(e,t,n),lt=a;break;default:Sn(e,t,n)}}function of(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{cs(e)}catch(n){Ue(t,t.return,n)}}}function cf(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{cs(e)}catch(n){Ue(t,t.return,n)}}function rg(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new af),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new af),t;default:throw Error(u(435,e.tag))}}function ei(e,t){var n=rg(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var o=gg.bind(null,e,a);a.then(o,o)}})}function Et(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var o=n[a],c=e,d=t,g=d;e:for(;g!==null;){switch(g.tag){case 27:if(Vn(g.type)){Ve=g.stateNode,Ct=!1;break e}break;case 5:Ve=g.stateNode,Ct=!1;break e;case 3:case 4:Ve=g.stateNode.containerInfo,Ct=!0;break e}g=g.return}if(Ve===null)throw Error(u(160));rf(c,d,o),Ve=null,Ct=!1,c=o.alternate,c!==null&&(c.return=null),o.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)uf(t,e),t=t.sibling}var Pt=null;function uf(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Et(t,e),kt(e),a&4&&(qn(3,e,e.return),Ks(3,e),qn(5,e,e.return));break;case 1:Et(t,e),kt(e),a&512&&(lt||n===null||sn(n,n.return)),a&64&&xn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var o=Pt;if(Et(t,e),kt(e),a&512&&(lt||n===null||sn(n,n.return)),a&4){var c=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,o=o.ownerDocument||o;t:switch(a){case"title":c=o.getElementsByTagName("title")[0],(!c||c[bs]||c[ht]||c.namespaceURI==="http://www.w3.org/2000/svg"||c.hasAttribute("itemprop"))&&(c=o.createElement(a),o.head.insertBefore(c,o.querySelector("head > title"))),yt(c,a,n),c[ht]=e,ct(c),a=c;break e;case"link":var d=um("link","href",o).get(a+(n.href||""));if(d){for(var g=0;g<d.length;g++)if(c=d[g],c.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&c.getAttribute("rel")===(n.rel==null?null:n.rel)&&c.getAttribute("title")===(n.title==null?null:n.title)&&c.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(g,1);break t}}c=o.createElement(a),yt(c,a,n),o.head.appendChild(c);break;case"meta":if(d=um("meta","content",o).get(a+(n.content||""))){for(g=0;g<d.length;g++)if(c=d[g],c.getAttribute("content")===(n.content==null?null:""+n.content)&&c.getAttribute("name")===(n.name==null?null:n.name)&&c.getAttribute("property")===(n.property==null?null:n.property)&&c.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&c.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(g,1);break t}}c=o.createElement(a),yt(c,a,n),o.head.appendChild(c);break;default:throw Error(u(468,a))}c[ht]=e,ct(c),a=c}e.stateNode=a}else dm(o,e.type,e.stateNode);else e.stateNode=cm(o,a,e.memoizedProps);else c!==a?(c===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):c.count--,a===null?dm(o,e.type,e.stateNode):cm(o,a,e.memoizedProps)):a===null&&e.stateNode!==null&&yo(e,e.memoizedProps,n.memoizedProps)}break;case 27:Et(t,e),kt(e),a&512&&(lt||n===null||sn(n,n.return)),n!==null&&a&4&&yo(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Et(t,e),kt(e),a&512&&(lt||n===null||sn(n,n.return)),e.flags&32){o=e.stateNode;try{Da(o,"")}catch(me){Ue(e,e.return,me)}}a&4&&e.stateNode!=null&&(o=e.memoizedProps,yo(e,o,n!==null?n.memoizedProps:o)),a&1024&&(So=!0);break;case 6:if(Et(t,e),kt(e),a&4){if(e.stateNode===null)throw Error(u(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(me){Ue(e,e.return,me)}}break;case 3:if(gi=null,o=Pt,Pt=hi(t.containerInfo),Et(t,e),Pt=o,kt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{cs(t.containerInfo)}catch(me){Ue(e,e.return,me)}So&&(So=!1,df(e));break;case 4:a=Pt,Pt=hi(e.stateNode.containerInfo),Et(t,e),kt(e),Pt=a;break;case 12:Et(t,e),kt(e);break;case 31:Et(t,e),kt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,ei(e,a)));break;case 13:Et(t,e),kt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(ni=he()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,ei(e,a)));break;case 22:o=e.memoizedState!==null;var T=n!==null&&n.memoizedState!==null,H=xn,V=lt;if(xn=H||o,lt=V||T,Et(t,e),lt=V,xn=H,kt(e),a&8192)e:for(t=e.stateNode,t._visibility=o?t._visibility&-2:t._visibility|1,o&&(n===null||T||xn||lt||ba(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){T=n=t;try{if(c=T.stateNode,o)d=c.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{g=T.stateNode;var se=T.memoizedProps.style,B=se!=null&&se.hasOwnProperty("display")?se.display:null;g.style.display=B==null||typeof B=="boolean"?"":(""+B).trim()}}catch(me){Ue(T,T.return,me)}}}else if(t.tag===6){if(n===null){T=t;try{T.stateNode.nodeValue=o?"":T.memoizedProps}catch(me){Ue(T,T.return,me)}}}else if(t.tag===18){if(n===null){T=t;try{var K=T.stateNode;o?em(K,!0):em(T.stateNode,!1)}catch(me){Ue(T,T.return,me)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,ei(e,n))));break;case 19:Et(t,e),kt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,ei(e,a)));break;case 30:break;case 21:break;default:Et(t,e),kt(e)}}function kt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(tf(a)){n=a;break}a=a.return}if(n==null)throw Error(u(160));switch(n.tag){case 27:var o=n.stateNode,c=bo(e);Pl(e,c,o);break;case 5:var d=n.stateNode;n.flags&32&&(Da(d,""),n.flags&=-33);var g=bo(e);Pl(e,g,d);break;case 3:case 4:var T=n.stateNode.containerInfo,H=bo(e);xo(e,H,T);break;default:throw Error(u(161))}}catch(V){Ue(e,e.return,V)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function df(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;df(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function jn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)sf(e,t.alternate,t),t=t.sibling}function ba(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:qn(4,t,t.return),ba(t);break;case 1:sn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Pd(t,t.return,n),ba(t);break;case 27:tl(t.stateNode);case 26:case 5:sn(t,t.return),ba(t);break;case 22:t.memoizedState===null&&ba(t);break;case 30:ba(t);break;default:ba(t)}e=e.sibling}}function Rn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,o=e,c=t,d=c.flags;switch(c.tag){case 0:case 11:case 15:Rn(o,c,n),Ks(4,c);break;case 1:if(Rn(o,c,n),a=c,o=a.stateNode,typeof o.componentDidMount=="function")try{o.componentDidMount()}catch(H){Ue(a,a.return,H)}if(a=c,o=a.updateQueue,o!==null){var g=a.stateNode;try{var T=o.shared.hiddenCallbacks;if(T!==null)for(o.shared.hiddenCallbacks=null,o=0;o<T.length;o++)qu(T[o],g)}catch(H){Ue(a,a.return,H)}}n&&d&64&&Wd(c),Xs(c,c.return);break;case 27:nf(c);case 26:case 5:Rn(o,c,n),n&&a===null&&d&4&&ef(c),Xs(c,c.return);break;case 12:Rn(o,c,n);break;case 31:Rn(o,c,n),n&&d&4&&of(o,c);break;case 13:Rn(o,c,n),n&&d&4&&cf(o,c);break;case 22:c.memoizedState===null&&Rn(o,c,n),Xs(c,c.return);break;case 30:break;default:Rn(o,c,n)}t=t.sibling}}function jo(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Ds(n))}function Ro(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ds(e))}function en(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)ff(e,t,n,a),t=t.sibling}function ff(e,t,n,a){var o=t.flags;switch(t.tag){case 0:case 11:case 15:en(e,t,n,a),o&2048&&Ks(9,t);break;case 1:en(e,t,n,a);break;case 3:en(e,t,n,a),o&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ds(e)));break;case 12:if(o&2048){en(e,t,n,a),e=t.stateNode;try{var c=t.memoizedProps,d=c.id,g=c.onPostCommit;typeof g=="function"&&g(d,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(T){Ue(t,t.return,T)}}else en(e,t,n,a);break;case 31:en(e,t,n,a);break;case 13:en(e,t,n,a);break;case 23:break;case 22:c=t.stateNode,d=t.alternate,t.memoizedState!==null?c._visibility&2?en(e,t,n,a):Qs(e,t):c._visibility&2?en(e,t,n,a):(c._visibility|=2,Wa(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),o&2048&&jo(d,t);break;case 24:en(e,t,n,a),o&2048&&Ro(t.alternate,t);break;default:en(e,t,n,a)}}function Wa(e,t,n,a,o){for(o=o&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var c=e,d=t,g=n,T=a,H=d.flags;switch(d.tag){case 0:case 11:case 15:Wa(c,d,g,T,o),Ks(8,d);break;case 23:break;case 22:var V=d.stateNode;d.memoizedState!==null?V._visibility&2?Wa(c,d,g,T,o):Qs(c,d):(V._visibility|=2,Wa(c,d,g,T,o)),o&&H&2048&&jo(d.alternate,d);break;case 24:Wa(c,d,g,T,o),o&&H&2048&&Ro(d.alternate,d);break;default:Wa(c,d,g,T,o)}t=t.sibling}}function Qs(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,o=a.flags;switch(a.tag){case 22:Qs(n,a),o&2048&&jo(a.alternate,a);break;case 24:Qs(n,a),o&2048&&Ro(a.alternate,a);break;default:Qs(n,a)}t=t.sibling}}var Vs=8192;function Pa(e,t,n){if(e.subtreeFlags&Vs)for(e=e.child;e!==null;)mf(e,t,n),e=e.sibling}function mf(e,t,n){switch(e.tag){case 26:Pa(e,t,n),e.flags&Vs&&e.memoizedState!==null&&Qg(n,Pt,e.memoizedState,e.memoizedProps);break;case 5:Pa(e,t,n);break;case 3:case 4:var a=Pt;Pt=hi(e.stateNode.containerInfo),Pa(e,t,n),Pt=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Vs,Vs=16777216,Pa(e,t,n),Vs=a):Pa(e,t,n));break;default:Pa(e,t,n)}}function hf(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Zs(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ut=a,gf(a,e)}hf(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)pf(e),e=e.sibling}function pf(e){switch(e.tag){case 0:case 11:case 15:Zs(e),e.flags&2048&&qn(9,e,e.return);break;case 3:Zs(e);break;case 12:Zs(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,ti(e)):Zs(e);break;default:Zs(e)}}function ti(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];ut=a,gf(a,e)}hf(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:qn(8,t,t.return),ti(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,ti(t));break;default:ti(t)}e=e.sibling}}function gf(e,t){for(;ut!==null;){var n=ut;switch(n.tag){case 0:case 11:case 15:qn(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Ds(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,ut=a;else e:for(n=e;ut!==null;){a=ut;var o=a.sibling,c=a.return;if(lf(a),a===n){ut=null;break e}if(o!==null){o.return=c,ut=o;break e}ut=c}}}var og={getCacheForType:function(e){var t=gt(nt),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return gt(nt).controller.signal}},cg=typeof WeakMap=="function"?WeakMap:Map,Me=0,Ye=null,Ne=null,Ee=0,Le=0,zt=null,Gn=!1,es=!1,To=!1,Tn=0,Je=0,$n=0,xa=0,No=0,Lt=0,ts=0,Js=null,wt=null,Co=!1,ni=0,vf=0,ai=1/0,si=null,Yn=null,rt=0,Kn=null,ns=null,Nn=0,Eo=0,ko=null,yf=null,Fs=0,wo=null;function Ut(){return(Me&2)!==0&&Ee!==0?Ee&-Ee:b.T!==null?_o():Oc()}function bf(){if(Lt===0)if((Ee&536870912)===0||we){var e=na;na<<=1,(na&3932160)===0&&(na=262144),Lt=e}else Lt=536870912;return e=Mt.current,e!==null&&(e.flags|=32),Lt}function At(e,t,n){(e===Ye&&(Le===2||Le===9)||e.cancelPendingCommit!==null)&&(as(e,0),Xn(e,Ee,Lt,!1)),ys(e,n),((Me&2)===0||e!==Ye)&&(e===Ye&&((Me&2)===0&&(xa|=n),Je===4&&Xn(e,Ee,Lt,!1)),ln(e))}function xf(e,t,n){if((Me&6)!==0)throw Error(u(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||vs(e,t),o=a?fg(e,t):Io(e,t,!0),c=a;do{if(o===0){es&&!a&&Xn(e,t,0,!1);break}else{if(n=e.current.alternate,c&&!ug(n)){o=Io(e,t,!1),c=!1;continue}if(o===2){if(c=t,e.errorRecoveryDisabledLanes&c)var d=0;else d=e.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){t=d;e:{var g=e;o=Js;var T=g.current.memoizedState.isDehydrated;if(T&&(as(g,d).flags|=256),d=Io(g,d,!1),d!==2){if(To&&!T){g.errorRecoveryDisabledLanes|=c,xa|=c,o=4;break e}c=wt,wt=o,c!==null&&(wt===null?wt=c:wt.push.apply(wt,c))}o=d}if(c=!1,o!==2)continue}}if(o===1){as(e,0),Xn(e,t,0,!0);break}e:{switch(a=e,c=o,c){case 0:case 1:throw Error(u(345));case 4:if((t&4194048)!==t)break;case 6:Xn(a,t,Lt,!Gn);break e;case 2:wt=null;break;case 3:case 5:break;default:throw Error(u(329))}if((t&62914560)===t&&(o=ni+300-he(),10<o)){if(Xn(a,t,Lt,!Gn),hl(a,0,!0)!==0)break e;Nn=t,a.timeoutHandle=Ff(Sf.bind(null,a,n,wt,si,Co,t,Lt,xa,ts,Gn,c,"Throttled",-0,0),o);break e}Sf(a,n,wt,si,Co,t,Lt,xa,ts,Gn,c,null,-0,0)}}break}while(!0);ln(e)}function Sf(e,t,n,a,o,c,d,g,T,H,V,se,B,K){if(e.timeoutHandle=-1,se=t.subtreeFlags,se&8192||(se&16785408)===16785408){se={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:un},mf(t,c,se);var me=(c&62914560)===c?ni-he():(c&4194048)===c?vf-he():0;if(me=Vg(se,me),me!==null){Nn=c,e.cancelPendingCommit=me(wf.bind(null,e,t,c,n,a,o,d,g,T,V,se,null,B,K)),Xn(e,c,d,!H);return}}wf(e,t,c,n,a,o,d,g,T)}function ug(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var o=n[a],c=o.getSnapshot;o=o.value;try{if(!Dt(c(),o))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Xn(e,t,n,a){t&=~No,t&=~xa,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var o=t;0<o;){var c=31-xt(o),d=1<<c;a[c]=-1,o&=~d}n!==0&&Ac(e,n,t)}function li(){return(Me&6)===0?(Ws(0),!1):!0}function Ao(){if(Ne!==null){if(Le===0)var e=Ne.return;else e=Ne,hn=da=null,Kr(e),Qa=null,Ms=0,e=Ne;for(;e!==null;)Fd(e.alternate,e),e=e.return;Ne=null}}function as(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Ag(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Nn=0,Ao(),Ye=e,Ne=n=fn(e.current,null),Ee=t,Le=0,zt=null,Gn=!1,es=vs(e,t),To=!1,ts=Lt=No=xa=$n=Je=0,wt=Js=null,Co=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var o=31-xt(a),c=1<<o;t|=e[o],a&=~c}return Tn=t,Cl(),n}function jf(e,t){Se=null,b.H=Gs,t===Xa||t===Ml?(t=Lu(),Le=3):t===Or?(t=Lu(),Le=4):Le=t===ro?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,zt=t,Ne===null&&(Je=1,Vl(e,$t(t,e.current)))}function Rf(){var e=Mt.current;return e===null?!0:(Ee&4194048)===Ee?Qt===null:(Ee&62914560)===Ee||(Ee&536870912)!==0?e===Qt:!1}function Tf(){var e=b.H;return b.H=Gs,e===null?Gs:e}function Nf(){var e=b.A;return b.A=og,e}function ii(){Je=4,Gn||(Ee&4194048)!==Ee&&Mt.current!==null||(es=!0),($n&134217727)===0&&(xa&134217727)===0||Ye===null||Xn(Ye,Ee,Lt,!1)}function Io(e,t,n){var a=Me;Me|=2;var o=Tf(),c=Nf();(Ye!==e||Ee!==t)&&(si=null,as(e,t)),t=!1;var d=Je;e:do try{if(Le!==0&&Ne!==null){var g=Ne,T=zt;switch(Le){case 8:Ao(),d=6;break e;case 3:case 2:case 9:case 6:Mt.current===null&&(t=!0);var H=Le;if(Le=0,zt=null,ss(e,g,T,H),n&&es){d=0;break e}break;default:H=Le,Le=0,zt=null,ss(e,g,T,H)}}dg(),d=Je;break}catch(V){jf(e,V)}while(!0);return t&&e.shellSuspendCounter++,hn=da=null,Me=a,b.H=o,b.A=c,Ne===null&&(Ye=null,Ee=0,Cl()),d}function dg(){for(;Ne!==null;)Cf(Ne)}function fg(e,t){var n=Me;Me|=2;var a=Tf(),o=Nf();Ye!==e||Ee!==t?(si=null,ai=he()+500,as(e,t)):es=vs(e,t);e:do try{if(Le!==0&&Ne!==null){t=Ne;var c=zt;t:switch(Le){case 1:Le=0,zt=null,ss(e,t,c,1);break;case 2:case 9:if(_u(c)){Le=0,zt=null,Ef(t);break}t=function(){Le!==2&&Le!==9||Ye!==e||(Le=7),ln(e)},c.then(t,t);break e;case 3:Le=7;break e;case 4:Le=5;break e;case 7:_u(c)?(Le=0,zt=null,Ef(t)):(Le=0,zt=null,ss(e,t,c,7));break;case 5:var d=null;switch(Ne.tag){case 26:d=Ne.memoizedState;case 5:case 27:var g=Ne;if(d?fm(d):g.stateNode.complete){Le=0,zt=null;var T=g.sibling;if(T!==null)Ne=T;else{var H=g.return;H!==null?(Ne=H,ri(H)):Ne=null}break t}}Le=0,zt=null,ss(e,t,c,5);break;case 6:Le=0,zt=null,ss(e,t,c,6);break;case 8:Ao(),Je=6;break e;default:throw Error(u(462))}}mg();break}catch(V){jf(e,V)}while(!0);return hn=da=null,b.H=a,b.A=o,Me=n,Ne!==null?0:(Ye=null,Ee=0,Cl(),Je)}function mg(){for(;Ne!==null&&!Ie();)Cf(Ne)}function Cf(e){var t=Zd(e.alternate,e,Tn);e.memoizedProps=e.pendingProps,t===null?ri(e):Ne=t}function Ef(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=$d(n,t,t.pendingProps,t.type,void 0,Ee);break;case 11:t=$d(n,t,t.pendingProps,t.type.render,t.ref,Ee);break;case 5:Kr(t);default:Fd(n,t),t=Ne=Tu(t,Tn),t=Zd(n,t,Tn)}e.memoizedProps=e.pendingProps,t===null?ri(e):Ne=t}function ss(e,t,n,a){hn=da=null,Kr(t),Qa=null,Ms=0;var o=t.return;try{if(tg(e,o,t,n,Ee)){Je=1,Vl(e,$t(n,e.current)),Ne=null;return}}catch(c){if(o!==null)throw Ne=o,c;Je=1,Vl(e,$t(n,e.current)),Ne=null;return}t.flags&32768?(we||a===1?e=!0:es||(Ee&536870912)!==0?e=!1:(Gn=e=!0,(a===2||a===9||a===3||a===6)&&(a=Mt.current,a!==null&&a.tag===13&&(a.flags|=16384))),kf(t,e)):ri(t)}function ri(e){var t=e;do{if((t.flags&32768)!==0){kf(t,Gn);return}e=t.return;var n=sg(t.alternate,t,Tn);if(n!==null){Ne=n;return}if(t=t.sibling,t!==null){Ne=t;return}Ne=t=e}while(t!==null);Je===0&&(Je=5)}function kf(e,t){do{var n=lg(e.alternate,e);if(n!==null){n.flags&=32767,Ne=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Ne=e;return}Ne=e=n}while(e!==null);Je=6,Ne=null}function wf(e,t,n,a,o,c,d,g,T){e.cancelPendingCommit=null;do oi();while(rt!==0);if((Me&6)!==0)throw Error(u(327));if(t!==null){if(t===e.current)throw Error(u(177));if(c=t.lanes|t.childLanes,c|=yr,Xh(e,n,c,d,g,T),e===Ye&&(Ne=Ye=null,Ee=0),ns=t,Kn=e,Nn=n,Eo=c,ko=o,yf=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,vg(Ft,function(){return Mf(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=b.T,b.T=null,o=E.p,E.p=2,d=Me,Me|=4;try{ig(e,t,n)}finally{Me=d,E.p=o,b.T=a}}rt=1,Af(),If(),Df()}}function Af(){if(rt===1){rt=0;var e=Kn,t=ns,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=b.T,b.T=null;var a=E.p;E.p=2;var o=Me;Me|=4;try{uf(t,e);var c=$o,d=pu(e.containerInfo),g=c.focusedElem,T=c.selectionRange;if(d!==g&&g&&g.ownerDocument&&hu(g.ownerDocument.documentElement,g)){if(T!==null&&mr(g)){var H=T.start,V=T.end;if(V===void 0&&(V=H),"selectionStart"in g)g.selectionStart=H,g.selectionEnd=Math.min(V,g.value.length);else{var se=g.ownerDocument||document,B=se&&se.defaultView||window;if(B.getSelection){var K=B.getSelection(),me=g.textContent.length,ve=Math.min(T.start,me),$e=T.end===void 0?ve:Math.min(T.end,me);!K.extend&&ve>$e&&(d=$e,$e=ve,ve=d);var M=mu(g,ve),k=mu(g,$e);if(M&&k&&(K.rangeCount!==1||K.anchorNode!==M.node||K.anchorOffset!==M.offset||K.focusNode!==k.node||K.focusOffset!==k.offset)){var U=se.createRange();U.setStart(M.node,M.offset),K.removeAllRanges(),ve>$e?(K.addRange(U),K.extend(k.node,k.offset)):(U.setEnd(k.node,k.offset),K.addRange(U))}}}}for(se=[],K=g;K=K.parentNode;)K.nodeType===1&&se.push({element:K,left:K.scrollLeft,top:K.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;g<se.length;g++){var P=se[g];P.element.scrollLeft=P.left,P.element.scrollTop=P.top}}xi=!!Go,$o=Go=null}finally{Me=o,E.p=a,b.T=n}}e.current=t,rt=2}}function If(){if(rt===2){rt=0;var e=Kn,t=ns,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=b.T,b.T=null;var a=E.p;E.p=2;var o=Me;Me|=4;try{sf(e,t.alternate,t)}finally{Me=o,E.p=a,b.T=n}}rt=3}}function Df(){if(rt===4||rt===3){rt=0,J();var e=Kn,t=ns,n=Nn,a=yf;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?rt=5:(rt=0,ns=Kn=null,Of(e,e.pendingLanes));var o=e.pendingLanes;if(o===0&&(Yn=null),Vi(n),t=t.stateNode,ze&&typeof ze.onCommitFiberRoot=="function")try{ze.onCommitFiberRoot(Be,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=b.T,o=E.p,E.p=2,b.T=null;try{for(var c=e.onRecoverableError,d=0;d<a.length;d++){var g=a[d];c(g.value,{componentStack:g.stack})}}finally{b.T=t,E.p=o}}(Nn&3)!==0&&oi(),ln(e),o=e.pendingLanes,(n&261930)!==0&&(o&42)!==0?e===wo?Fs++:(Fs=0,wo=e):Fs=0,Ws(0)}}function Of(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Ds(t)))}function oi(){return Af(),If(),Df(),Mf()}function Mf(){if(rt!==5)return!1;var e=Kn,t=Eo;Eo=0;var n=Vi(Nn),a=b.T,o=E.p;try{E.p=32>n?32:n,b.T=null,n=ko,ko=null;var c=Kn,d=Nn;if(rt=0,ns=Kn=null,Nn=0,(Me&6)!==0)throw Error(u(331));var g=Me;if(Me|=4,pf(c.current),ff(c,c.current,d,n),Me=g,Ws(0,!1),ze&&typeof ze.onPostCommitFiberRoot=="function")try{ze.onPostCommitFiberRoot(Be,c)}catch{}return!0}finally{E.p=o,b.T=a,Of(e,t)}}function _f(e,t,n){t=$t(n,t),t=io(e.stateNode,t,2),e=Un(e,t,2),e!==null&&(ys(e,2),ln(e))}function Ue(e,t,n){if(e.tag===3)_f(e,e,n);else for(;t!==null;){if(t.tag===3){_f(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(Yn===null||!Yn.has(a))){e=$t(n,e),n=_d(2),a=Un(t,n,2),a!==null&&(zd(n,a,t,e),ys(a,2),ln(a));break}}t=t.return}}function Do(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new cg;var o=new Set;a.set(t,o)}else o=a.get(t),o===void 0&&(o=new Set,a.set(t,o));o.has(n)||(To=!0,o.add(n),e=hg.bind(null,e,t,n),t.then(e,e))}function hg(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ye===e&&(Ee&n)===n&&(Je===4||Je===3&&(Ee&62914560)===Ee&&300>he()-ni?(Me&2)===0&&as(e,0):No|=n,ts===Ee&&(ts=0)),ln(e)}function zf(e,t){t===0&&(t=wc()),e=oa(e,t),e!==null&&(ys(e,t),ln(e))}function pg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),zf(e,n)}function gg(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(u(314))}a!==null&&a.delete(t),zf(e,n)}function vg(e,t){return Ht(e,t)}var ci=null,ls=null,Oo=!1,ui=!1,Mo=!1,Qn=0;function ln(e){e!==ls&&e.next===null&&(ls===null?ci=ls=e:ls=ls.next=e),ui=!0,Oo||(Oo=!0,bg())}function Ws(e,t){if(!Mo&&ui){Mo=!0;do for(var n=!1,a=ci;a!==null;){if(e!==0){var o=a.pendingLanes;if(o===0)var c=0;else{var d=a.suspendedLanes,g=a.pingedLanes;c=(1<<31-xt(42|e)+1)-1,c&=o&~(d&~g),c=c&201326741?c&201326741|1:c?c|2:0}c!==0&&(n=!0,Bf(a,c))}else c=Ee,c=hl(a,a===Ye?c:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(c&3)===0||vs(a,c)||(n=!0,Bf(a,c));a=a.next}while(n);Mo=!1}}function yg(){Lf()}function Lf(){ui=Oo=!1;var e=0;Qn!==0&&wg()&&(e=Qn);for(var t=he(),n=null,a=ci;a!==null;){var o=a.next,c=Uf(a,t);c===0?(a.next=null,n===null?ci=o:n.next=o,o===null&&(ls=n)):(n=a,(e!==0||(c&3)!==0)&&(ui=!0)),a=o}rt!==0&&rt!==5||Ws(e),Qn!==0&&(Qn=0)}function Uf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,c=e.pendingLanes&-62914561;0<c;){var d=31-xt(c),g=1<<d,T=o[d];T===-1?((g&n)===0||(g&a)!==0)&&(o[d]=Kh(g,t)):T<=t&&(e.expiredLanes|=g),c&=~g}if(t=Ye,n=Ee,n=hl(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(Le===2||Le===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&be(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||vs(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&be(a),Vi(n)){case 2:case 8:n=it;break;case 32:n=Ft;break;case 268435456:n=ta;break;default:n=Ft}return a=Hf.bind(null,e),n=Ht(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&be(a),e.callbackPriority=2,e.callbackNode=null,2}function Hf(e,t){if(rt!==0&&rt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(oi()&&e.callbackNode!==n)return null;var a=Ee;return a=hl(e,e===Ye?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(xf(e,a,t),Uf(e,he()),e.callbackNode!=null&&e.callbackNode===n?Hf.bind(null,e):null)}function Bf(e,t){if(oi())return null;xf(e,t,!0)}function bg(){Ig(function(){(Me&6)!==0?Ht(tt,yg):Lf()})}function _o(){if(Qn===0){var e=Ya;e===0&&(e=mt,mt<<=1,(mt&261888)===0&&(mt=256)),Qn=e}return Qn}function qf(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:yl(""+e)}function Gf(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function xg(e,t,n,a,o){if(t==="submit"&&n&&n.stateNode===o){var c=qf((o[Tt]||null).action),d=a.submitter;d&&(t=(t=d[Tt]||null)?qf(t.formAction):d.getAttribute("formAction"),t!==null&&(c=t,d=null));var g=new jl("action","action",null,a,o);e.push({event:g,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(Qn!==0){var T=d?Gf(o,d):new FormData(o);eo(n,{pending:!0,data:T,method:o.method,action:c},null,T)}}else typeof c=="function"&&(g.preventDefault(),T=d?Gf(o,d):new FormData(o),eo(n,{pending:!0,data:T,method:o.method,action:c},c,T))},currentTarget:o}]})}}for(var zo=0;zo<vr.length;zo++){var Lo=vr[zo],Sg=Lo.toLowerCase(),jg=Lo[0].toUpperCase()+Lo.slice(1);Wt(Sg,"on"+jg)}Wt(yu,"onAnimationEnd"),Wt(bu,"onAnimationIteration"),Wt(xu,"onAnimationStart"),Wt("dblclick","onDoubleClick"),Wt("focusin","onFocus"),Wt("focusout","onBlur"),Wt(Up,"onTransitionRun"),Wt(Hp,"onTransitionStart"),Wt(Bp,"onTransitionCancel"),Wt(Su,"onTransitionEnd"),Aa("onMouseEnter",["mouseout","mouseover"]),Aa("onMouseLeave",["mouseout","mouseover"]),Aa("onPointerEnter",["pointerout","pointerover"]),Aa("onPointerLeave",["pointerout","pointerover"]),sa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),sa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),sa("onBeforeInput",["compositionend","keypress","textInput","paste"]),sa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),sa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),sa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ps="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(" "),Rg=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ps));function $f(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],o=a.event;a=a.listeners;e:{var c=void 0;if(t)for(var d=a.length-1;0<=d;d--){var g=a[d],T=g.instance,H=g.currentTarget;if(g=g.listener,T!==c&&o.isPropagationStopped())break e;c=g,o.currentTarget=H;try{c(o)}catch(V){Nl(V)}o.currentTarget=null,c=T}else for(d=0;d<a.length;d++){if(g=a[d],T=g.instance,H=g.currentTarget,g=g.listener,T!==c&&o.isPropagationStopped())break e;c=g,o.currentTarget=H;try{c(o)}catch(V){Nl(V)}o.currentTarget=null,c=T}}}}function Ce(e,t){var n=t[Zi];n===void 0&&(n=t[Zi]=new Set);var a=e+"__bubble";n.has(a)||(Yf(t,e,2,!1),n.add(a))}function Uo(e,t,n){var a=0;t&&(a|=4),Yf(n,e,a,t)}var di="_reactListening"+Math.random().toString(36).slice(2);function Ho(e){if(!e[di]){e[di]=!0,zc.forEach(function(n){n!=="selectionchange"&&(Rg.has(n)||Uo(n,!1,e),Uo(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[di]||(t[di]=!0,Uo("selectionchange",!1,t))}}function Yf(e,t,n,a){switch(bm(t)){case 2:var o=Fg;break;case 8:o=Wg;break;default:o=ec}n=o.bind(null,t,n,e),o=void 0,!sr||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),a?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Bo(e,t,n,a,o){var c=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var d=a.tag;if(d===3||d===4){var g=a.stateNode.containerInfo;if(g===o)break;if(d===4)for(d=a.return;d!==null;){var T=d.tag;if((T===3||T===4)&&d.stateNode.containerInfo===o)return;d=d.return}for(;g!==null;){if(d=Ea(g),d===null)return;if(T=d.tag,T===5||T===6||T===26||T===27){a=c=d;continue e}g=g.parentNode}}a=a.return}Vc(function(){var H=c,V=nr(n),se=[];e:{var B=ju.get(e);if(B!==void 0){var K=jl,me=e;switch(e){case"keypress":if(xl(n)===0)break e;case"keydown":case"keyup":K=gp;break;case"focusin":me="focus",K=or;break;case"focusout":me="blur",K=or;break;case"beforeblur":case"afterblur":K=or;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":K=Fc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":K=sp;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":K=bp;break;case yu:case bu:case xu:K=rp;break;case Su:K=Sp;break;case"scroll":case"scrollend":K=np;break;case"wheel":K=Rp;break;case"copy":case"cut":case"paste":K=cp;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":K=Pc;break;case"toggle":case"beforetoggle":K=Np}var ve=(t&4)!==0,$e=!ve&&(e==="scroll"||e==="scrollend"),M=ve?B!==null?B+"Capture":null:B;ve=[];for(var k=H,U;k!==null;){var P=k;if(U=P.stateNode,P=P.tag,P!==5&&P!==26&&P!==27||U===null||M===null||(P=Ss(k,M),P!=null&&ve.push(el(k,P,U))),$e)break;k=k.return}0<ve.length&&(B=new K(B,me,null,n,V),se.push({event:B,listeners:ve}))}}if((t&7)===0){e:{if(B=e==="mouseover"||e==="pointerover",K=e==="mouseout"||e==="pointerout",B&&n!==tr&&(me=n.relatedTarget||n.fromElement)&&(Ea(me)||me[Ca]))break e;if((K||B)&&(B=V.window===V?V:(B=V.ownerDocument)?B.defaultView||B.parentWindow:window,K?(me=n.relatedTarget||n.toElement,K=H,me=me?Ea(me):null,me!==null&&($e=h(me),ve=me.tag,me!==$e||ve!==5&&ve!==27&&ve!==6)&&(me=null)):(K=null,me=H),K!==me)){if(ve=Fc,P="onMouseLeave",M="onMouseEnter",k="mouse",(e==="pointerout"||e==="pointerover")&&(ve=Pc,P="onPointerLeave",M="onPointerEnter",k="pointer"),$e=K==null?B:xs(K),U=me==null?B:xs(me),B=new ve(P,k+"leave",K,n,V),B.target=$e,B.relatedTarget=U,P=null,Ea(V)===H&&(ve=new ve(M,k+"enter",me,n,V),ve.target=U,ve.relatedTarget=$e,P=ve),$e=P,K&&me)t:{for(ve=Tg,M=K,k=me,U=0,P=M;P;P=ve(P))U++;P=0;for(var ge=k;ge;ge=ve(ge))P++;for(;0<U-P;)M=ve(M),U--;for(;0<P-U;)k=ve(k),P--;for(;U--;){if(M===k||k!==null&&M===k.alternate){ve=M;break t}M=ve(M),k=ve(k)}ve=null}else ve=null;K!==null&&Kf(se,B,K,ve,!1),me!==null&&$e!==null&&Kf(se,$e,me,ve,!0)}}e:{if(B=H?xs(H):window,K=B.nodeName&&B.nodeName.toLowerCase(),K==="select"||K==="input"&&B.type==="file")var De=ru;else if(lu(B))if(ou)De=_p;else{De=Op;var pe=Dp}else K=B.nodeName,!K||K.toLowerCase()!=="input"||B.type!=="checkbox"&&B.type!=="radio"?H&&er(H.elementType)&&(De=ru):De=Mp;if(De&&(De=De(e,H))){iu(se,De,n,V);break e}pe&&pe(e,B,H),e==="focusout"&&H&&B.type==="number"&&H.memoizedProps.value!=null&&Pi(B,"number",B.value)}switch(pe=H?xs(H):window,e){case"focusin":(lu(pe)||pe.contentEditable==="true")&&(za=pe,hr=H,ws=null);break;case"focusout":ws=hr=za=null;break;case"mousedown":pr=!0;break;case"contextmenu":case"mouseup":case"dragend":pr=!1,gu(se,n,V);break;case"selectionchange":if(Lp)break;case"keydown":case"keyup":gu(se,n,V)}var Re;if(ur)e:{switch(e){case"compositionstart":var ke="onCompositionStart";break e;case"compositionend":ke="onCompositionEnd";break e;case"compositionupdate":ke="onCompositionUpdate";break e}ke=void 0}else _a?au(e,n)&&(ke="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(ke="onCompositionStart");ke&&(eu&&n.locale!=="ko"&&(_a||ke!=="onCompositionStart"?ke==="onCompositionEnd"&&_a&&(Re=Zc()):(In=V,lr="value"in In?In.value:In.textContent,_a=!0)),pe=fi(H,ke),0<pe.length&&(ke=new Wc(ke,e,null,n,V),se.push({event:ke,listeners:pe}),Re?ke.data=Re:(Re=su(n),Re!==null&&(ke.data=Re)))),(Re=Ep?kp(e,n):wp(e,n))&&(ke=fi(H,"onBeforeInput"),0<ke.length&&(pe=new Wc("onBeforeInput","beforeinput",null,n,V),se.push({event:pe,listeners:ke}),pe.data=Re)),xg(se,e,H,n,V)}$f(se,t)})}function el(e,t,n){return{instance:e,listener:t,currentTarget:n}}function fi(e,t){for(var n=t+"Capture",a=[];e!==null;){var o=e,c=o.stateNode;if(o=o.tag,o!==5&&o!==26&&o!==27||c===null||(o=Ss(e,n),o!=null&&a.unshift(el(e,o,c)),o=Ss(e,t),o!=null&&a.push(el(e,o,c))),e.tag===3)return a;e=e.return}return[]}function Tg(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Kf(e,t,n,a,o){for(var c=t._reactName,d=[];n!==null&&n!==a;){var g=n,T=g.alternate,H=g.stateNode;if(g=g.tag,T!==null&&T===a)break;g!==5&&g!==26&&g!==27||H===null||(T=H,o?(H=Ss(n,c),H!=null&&d.unshift(el(n,H,T))):o||(H=Ss(n,c),H!=null&&d.push(el(n,H,T)))),n=n.return}d.length!==0&&e.push({event:t,listeners:d})}var Ng=/\r\n?/g,Cg=/\u0000|\uFFFD/g;function Xf(e){return(typeof e=="string"?e:""+e).replace(Ng,`
9
+ `).replace(Cg,"")}function Qf(e,t){return t=Xf(t),Xf(e)===t}function Ge(e,t,n,a,o,c){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||Da(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&Da(e,""+a);break;case"className":gl(e,"class",a);break;case"tabIndex":gl(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":gl(e,n,a);break;case"style":Xc(e,a,c);break;case"data":if(t!=="object"){gl(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=yl(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof c=="function"&&(n==="formAction"?(t!=="input"&&Ge(e,t,"name",o.name,o,null),Ge(e,t,"formEncType",o.formEncType,o,null),Ge(e,t,"formMethod",o.formMethod,o,null),Ge(e,t,"formTarget",o.formTarget,o,null)):(Ge(e,t,"encType",o.encType,o,null),Ge(e,t,"method",o.method,o,null),Ge(e,t,"target",o.target,o,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=yl(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=un);break;case"onScroll":a!=null&&Ce("scroll",e);break;case"onScrollEnd":a!=null&&Ce("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(u(61));if(n=a.__html,n!=null){if(o.children!=null)throw Error(u(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=yl(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":Ce("beforetoggle",e),Ce("toggle",e),pl(e,"popover",a);break;case"xlinkActuate":cn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":cn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":cn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":cn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":cn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":cn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":cn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":cn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":cn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":pl(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=ep.get(n)||n,pl(e,n,a))}}function qo(e,t,n,a,o,c){switch(n){case"style":Xc(e,a,c);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(u(61));if(n=a.__html,n!=null){if(o.children!=null)throw Error(u(60));e.innerHTML=n}}break;case"children":typeof a=="string"?Da(e,a):(typeof a=="number"||typeof a=="bigint")&&Da(e,""+a);break;case"onScroll":a!=null&&Ce("scroll",e);break;case"onScrollEnd":a!=null&&Ce("scrollend",e);break;case"onClick":a!=null&&(e.onclick=un);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Lc.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(o=n.endsWith("Capture"),t=n.slice(2,o?n.length-7:void 0),c=e[Tt]||null,c=c!=null?c[n]:null,typeof c=="function"&&e.removeEventListener(t,c,o),typeof a=="function")){typeof c!="function"&&c!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,o);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):pl(e,n,a)}}}function yt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ce("error",e),Ce("load",e);var a=!1,o=!1,c;for(c in n)if(n.hasOwnProperty(c)){var d=n[c];if(d!=null)switch(c){case"src":a=!0;break;case"srcSet":o=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:Ge(e,t,c,d,n,null)}}o&&Ge(e,t,"srcSet",n.srcSet,n,null),a&&Ge(e,t,"src",n.src,n,null);return;case"input":Ce("invalid",e);var g=c=d=o=null,T=null,H=null;for(a in n)if(n.hasOwnProperty(a)){var V=n[a];if(V!=null)switch(a){case"name":o=V;break;case"type":d=V;break;case"checked":T=V;break;case"defaultChecked":H=V;break;case"value":c=V;break;case"defaultValue":g=V;break;case"children":case"dangerouslySetInnerHTML":if(V!=null)throw Error(u(137,t));break;default:Ge(e,t,a,V,n,null)}}Gc(e,c,g,T,H,d,o,!1);return;case"select":Ce("invalid",e),a=d=c=null;for(o in n)if(n.hasOwnProperty(o)&&(g=n[o],g!=null))switch(o){case"value":c=g;break;case"defaultValue":d=g;break;case"multiple":a=g;default:Ge(e,t,o,g,n,null)}t=c,n=d,e.multiple=!!a,t!=null?Ia(e,!!a,t,!1):n!=null&&Ia(e,!!a,n,!0);return;case"textarea":Ce("invalid",e),c=o=a=null;for(d in n)if(n.hasOwnProperty(d)&&(g=n[d],g!=null))switch(d){case"value":a=g;break;case"defaultValue":o=g;break;case"children":c=g;break;case"dangerouslySetInnerHTML":if(g!=null)throw Error(u(91));break;default:Ge(e,t,d,g,n,null)}Yc(e,a,o,c);return;case"option":for(T in n)n.hasOwnProperty(T)&&(a=n[T],a!=null)&&(T==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":Ge(e,t,T,a,n,null));return;case"dialog":Ce("beforetoggle",e),Ce("toggle",e),Ce("cancel",e),Ce("close",e);break;case"iframe":case"object":Ce("load",e);break;case"video":case"audio":for(a=0;a<Ps.length;a++)Ce(Ps[a],e);break;case"image":Ce("error",e),Ce("load",e);break;case"details":Ce("toggle",e);break;case"embed":case"source":case"link":Ce("error",e),Ce("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(H in n)if(n.hasOwnProperty(H)&&(a=n[H],a!=null))switch(H){case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:Ge(e,t,H,a,n,null)}return;default:if(er(t)){for(V in n)n.hasOwnProperty(V)&&(a=n[V],a!==void 0&&qo(e,t,V,a,n,void 0));return}}for(g in n)n.hasOwnProperty(g)&&(a=n[g],a!=null&&Ge(e,t,g,a,n,null))}function Eg(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var o=null,c=null,d=null,g=null,T=null,H=null,V=null;for(K in n){var se=n[K];if(n.hasOwnProperty(K)&&se!=null)switch(K){case"checked":break;case"value":break;case"defaultValue":T=se;default:a.hasOwnProperty(K)||Ge(e,t,K,null,a,se)}}for(var B in a){var K=a[B];if(se=n[B],a.hasOwnProperty(B)&&(K!=null||se!=null))switch(B){case"type":c=K;break;case"name":o=K;break;case"checked":H=K;break;case"defaultChecked":V=K;break;case"value":d=K;break;case"defaultValue":g=K;break;case"children":case"dangerouslySetInnerHTML":if(K!=null)throw Error(u(137,t));break;default:K!==se&&Ge(e,t,B,K,a,se)}}Wi(e,d,g,T,H,V,c,o);return;case"select":K=d=g=B=null;for(c in n)if(T=n[c],n.hasOwnProperty(c)&&T!=null)switch(c){case"value":break;case"multiple":K=T;default:a.hasOwnProperty(c)||Ge(e,t,c,null,a,T)}for(o in a)if(c=a[o],T=n[o],a.hasOwnProperty(o)&&(c!=null||T!=null))switch(o){case"value":B=c;break;case"defaultValue":g=c;break;case"multiple":d=c;default:c!==T&&Ge(e,t,o,c,a,T)}t=g,n=d,a=K,B!=null?Ia(e,!!n,B,!1):!!a!=!!n&&(t!=null?Ia(e,!!n,t,!0):Ia(e,!!n,n?[]:"",!1));return;case"textarea":K=B=null;for(g in n)if(o=n[g],n.hasOwnProperty(g)&&o!=null&&!a.hasOwnProperty(g))switch(g){case"value":break;case"children":break;default:Ge(e,t,g,null,a,o)}for(d in a)if(o=a[d],c=n[d],a.hasOwnProperty(d)&&(o!=null||c!=null))switch(d){case"value":B=o;break;case"defaultValue":K=o;break;case"children":break;case"dangerouslySetInnerHTML":if(o!=null)throw Error(u(91));break;default:o!==c&&Ge(e,t,d,o,a,c)}$c(e,B,K);return;case"option":for(var me in n)B=n[me],n.hasOwnProperty(me)&&B!=null&&!a.hasOwnProperty(me)&&(me==="selected"?e.selected=!1:Ge(e,t,me,null,a,B));for(T in a)B=a[T],K=n[T],a.hasOwnProperty(T)&&B!==K&&(B!=null||K!=null)&&(T==="selected"?e.selected=B&&typeof B!="function"&&typeof B!="symbol":Ge(e,t,T,B,a,K));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var ve in n)B=n[ve],n.hasOwnProperty(ve)&&B!=null&&!a.hasOwnProperty(ve)&&Ge(e,t,ve,null,a,B);for(H in a)if(B=a[H],K=n[H],a.hasOwnProperty(H)&&B!==K&&(B!=null||K!=null))switch(H){case"children":case"dangerouslySetInnerHTML":if(B!=null)throw Error(u(137,t));break;default:Ge(e,t,H,B,a,K)}return;default:if(er(t)){for(var $e in n)B=n[$e],n.hasOwnProperty($e)&&B!==void 0&&!a.hasOwnProperty($e)&&qo(e,t,$e,void 0,a,B);for(V in a)B=a[V],K=n[V],!a.hasOwnProperty(V)||B===K||B===void 0&&K===void 0||qo(e,t,V,B,a,K);return}}for(var M in n)B=n[M],n.hasOwnProperty(M)&&B!=null&&!a.hasOwnProperty(M)&&Ge(e,t,M,null,a,B);for(se in a)B=a[se],K=n[se],!a.hasOwnProperty(se)||B===K||B==null&&K==null||Ge(e,t,se,B,a,K)}function Vf(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function kg(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var o=n[a],c=o.transferSize,d=o.initiatorType,g=o.duration;if(c&&g&&Vf(d)){for(d=0,g=o.responseEnd,a+=1;a<n.length;a++){var T=n[a],H=T.startTime;if(H>g)break;var V=T.transferSize,se=T.initiatorType;V&&Vf(se)&&(T=T.responseEnd,d+=V*(T<g?1:(g-H)/(T-H)))}if(--a,t+=8*(c+d)/(o.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Go=null,$o=null;function mi(e){return e.nodeType===9?e:e.ownerDocument}function Zf(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Jf(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function Yo(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Ko=null;function wg(){var e=window.event;return e&&e.type==="popstate"?e===Ko?!1:(Ko=e,!0):(Ko=null,!1)}var Ff=typeof setTimeout=="function"?setTimeout:void 0,Ag=typeof clearTimeout=="function"?clearTimeout:void 0,Wf=typeof Promise=="function"?Promise:void 0,Ig=typeof queueMicrotask=="function"?queueMicrotask:typeof Wf<"u"?function(e){return Wf.resolve(null).then(e).catch(Dg)}:Ff;function Dg(e){setTimeout(function(){throw e})}function Vn(e){return e==="head"}function Pf(e,t){var n=t,a=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(o),cs(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")tl(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,tl(n);for(var c=n.firstChild;c;){var d=c.nextSibling,g=c.nodeName;c[bs]||g==="SCRIPT"||g==="STYLE"||g==="LINK"&&c.rel.toLowerCase()==="stylesheet"||n.removeChild(c),c=d}}else n==="body"&&tl(e.ownerDocument.body);n=o}while(n);cs(t)}function em(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function Xo(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":Xo(n),Ji(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Og(e,t,n,a){for(;e.nodeType===1;){var o=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[bs])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(c=e.getAttribute("rel"),c==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(c!==o.rel||e.getAttribute("href")!==(o.href==null||o.href===""?null:o.href)||e.getAttribute("crossorigin")!==(o.crossOrigin==null?null:o.crossOrigin)||e.getAttribute("title")!==(o.title==null?null:o.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(c=e.getAttribute("src"),(c!==(o.src==null?null:o.src)||e.getAttribute("type")!==(o.type==null?null:o.type)||e.getAttribute("crossorigin")!==(o.crossOrigin==null?null:o.crossOrigin))&&c&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var c=o.name==null?null:""+o.name;if(o.type==="hidden"&&e.getAttribute("name")===c)return e}else return e;if(e=Vt(e.nextSibling),e===null)break}return null}function Mg(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Vt(e.nextSibling),e===null))return null;return e}function tm(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Vt(e.nextSibling),e===null))return null;return e}function Qo(e){return e.data==="$?"||e.data==="$~"}function Vo(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function _g(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Vt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Zo=null;function nm(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Vt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function am(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function sm(e,t,n){switch(t=mi(n),e){case"html":if(e=t.documentElement,!e)throw Error(u(452));return e;case"head":if(e=t.head,!e)throw Error(u(453));return e;case"body":if(e=t.body,!e)throw Error(u(454));return e;default:throw Error(u(451))}}function tl(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ji(e)}var Zt=new Map,lm=new Set;function hi(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Cn=E.d;E.d={f:zg,r:Lg,D:Ug,C:Hg,L:Bg,m:qg,X:$g,S:Gg,M:Yg};function zg(){var e=Cn.f(),t=li();return e||t}function Lg(e){var t=ka(e);t!==null&&t.tag===5&&t.type==="form"?Sd(t):Cn.r(e)}var is=typeof document>"u"?null:document;function im(e,t,n){var a=is;if(a&&typeof t=="string"&&t){var o=qt(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof n=="string"&&(o+='[crossorigin="'+n+'"]'),lm.has(o)||(lm.add(o),e={rel:e,crossOrigin:n,href:t},a.querySelector(o)===null&&(t=a.createElement("link"),yt(t,"link",e),ct(t),a.head.appendChild(t)))}}function Ug(e){Cn.D(e),im("dns-prefetch",e,null)}function Hg(e,t){Cn.C(e,t),im("preconnect",e,t)}function Bg(e,t,n){Cn.L(e,t,n);var a=is;if(a&&e&&t){var o='link[rel="preload"][as="'+qt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(o+='[imagesrcset="'+qt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(o+='[imagesizes="'+qt(n.imageSizes)+'"]')):o+='[href="'+qt(e)+'"]';var c=o;switch(t){case"style":c=rs(e);break;case"script":c=os(e)}Zt.has(c)||(e=j({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Zt.set(c,e),a.querySelector(o)!==null||t==="style"&&a.querySelector(nl(c))||t==="script"&&a.querySelector(al(c))||(t=a.createElement("link"),yt(t,"link",e),ct(t),a.head.appendChild(t)))}}function qg(e,t){Cn.m(e,t);var n=is;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+qt(a)+'"][href="'+qt(e)+'"]',c=o;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":c=os(e)}if(!Zt.has(c)&&(e=j({rel:"modulepreload",href:e},t),Zt.set(c,e),n.querySelector(o)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(al(c)))return}a=n.createElement("link"),yt(a,"link",e),ct(a),n.head.appendChild(a)}}}function Gg(e,t,n){Cn.S(e,t,n);var a=is;if(a&&e){var o=wa(a).hoistableStyles,c=rs(e);t=t||"default";var d=o.get(c);if(!d){var g={loading:0,preload:null};if(d=a.querySelector(nl(c)))g.loading=5;else{e=j({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Zt.get(c))&&Jo(e,n);var T=d=a.createElement("link");ct(T),yt(T,"link",e),T._p=new Promise(function(H,V){T.onload=H,T.onerror=V}),T.addEventListener("load",function(){g.loading|=1}),T.addEventListener("error",function(){g.loading|=2}),g.loading|=4,pi(d,t,a)}d={type:"stylesheet",instance:d,count:1,state:g},o.set(c,d)}}}function $g(e,t){Cn.X(e,t);var n=is;if(n&&e){var a=wa(n).hoistableScripts,o=os(e),c=a.get(o);c||(c=n.querySelector(al(o)),c||(e=j({src:e,async:!0},t),(t=Zt.get(o))&&Fo(e,t),c=n.createElement("script"),ct(c),yt(c,"link",e),n.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},a.set(o,c))}}function Yg(e,t){Cn.M(e,t);var n=is;if(n&&e){var a=wa(n).hoistableScripts,o=os(e),c=a.get(o);c||(c=n.querySelector(al(o)),c||(e=j({src:e,async:!0,type:"module"},t),(t=Zt.get(o))&&Fo(e,t),c=n.createElement("script"),ct(c),yt(c,"link",e),n.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},a.set(o,c))}}function rm(e,t,n,a){var o=(o=re.current)?hi(o):null;if(!o)throw Error(u(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=rs(n.href),n=wa(o).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=rs(n.href);var c=wa(o).hoistableStyles,d=c.get(e);if(d||(o=o.ownerDocument||o,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,d),(c=o.querySelector(nl(e)))&&!c._p&&(d.instance=c,d.state.loading=5),Zt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Zt.set(e,n),c||Kg(o,e,n,d.state))),t&&a===null)throw Error(u(528,""));return d}if(t&&a!==null)throw Error(u(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=os(n),n=wa(o).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(u(444,e))}}function rs(e){return'href="'+qt(e)+'"'}function nl(e){return'link[rel="stylesheet"]['+e+"]"}function om(e){return j({},e,{"data-precedence":e.precedence,precedence:null})}function Kg(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),yt(t,"link",n),ct(t),e.head.appendChild(t))}function os(e){return'[src="'+qt(e)+'"]'}function al(e){return"script[async]"+e}function cm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+qt(n.href)+'"]');if(a)return t.instance=a,ct(a),a;var o=j({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),ct(a),yt(a,"style",o),pi(a,n.precedence,e),t.instance=a;case"stylesheet":o=rs(n.href);var c=e.querySelector(nl(o));if(c)return t.state.loading|=4,t.instance=c,ct(c),c;a=om(n),(o=Zt.get(o))&&Jo(a,o),c=(e.ownerDocument||e).createElement("link"),ct(c);var d=c;return d._p=new Promise(function(g,T){d.onload=g,d.onerror=T}),yt(c,"link",a),t.state.loading|=4,pi(c,n.precedence,e),t.instance=c;case"script":return c=os(n.src),(o=e.querySelector(al(c)))?(t.instance=o,ct(o),o):(a=n,(o=Zt.get(c))&&(a=j({},n),Fo(a,o)),e=e.ownerDocument||e,o=e.createElement("script"),ct(o),yt(o,"link",a),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(u(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,pi(a,n.precedence,e));return t.instance}function pi(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=a.length?a[a.length-1]:null,c=o,d=0;d<a.length;d++){var g=a[d];if(g.dataset.precedence===t)c=g;else if(c!==o)break}c?c.parentNode.insertBefore(e,c.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Jo(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Fo(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var gi=null;function um(e,t,n){if(gi===null){var a=new Map,o=gi=new Map;o.set(n,a)}else o=gi,a=o.get(n),a||(a=new Map,o.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),o=0;o<n.length;o++){var c=n[o];if(!(c[bs]||c[ht]||e==="link"&&c.getAttribute("rel")==="stylesheet")&&c.namespaceURI!=="http://www.w3.org/2000/svg"){var d=c.getAttribute(t)||"";d=e+d;var g=a.get(d);g?g.push(c):a.set(d,[c])}}return a}function dm(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Xg(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function fm(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Qg(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var o=rs(a.href),c=t.querySelector(nl(o));if(c){t=c._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=vi.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=c,ct(c);return}c=t.ownerDocument||t,a=om(a),(o=Zt.get(o))&&Jo(a,o),c=c.createElement("link"),ct(c);var d=c;d._p=new Promise(function(g,T){d.onload=g,d.onerror=T}),yt(c,"link",a),n.instance=c}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=vi.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Wo=0;function Vg(e,t){return e.stylesheets&&e.count===0&&bi(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&bi(e,e.stylesheets),e.unsuspend){var c=e.unsuspend;e.unsuspend=null,c()}},6e4+t);0<e.imgBytes&&Wo===0&&(Wo=62500*kg());var o=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&bi(e,e.stylesheets),e.unsuspend)){var c=e.unsuspend;e.unsuspend=null,c()}},(e.imgBytes>Wo?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(o)}}:null}function vi(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)bi(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var yi=null;function bi(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,yi=new Map,t.forEach(Zg,e),yi=null,vi.call(e))}function Zg(e,t){if(!(t.state.loading&4)){var n=yi.get(e);if(n)var a=n.get(null);else{n=new Map,yi.set(e,n);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),c=0;c<o.length;c++){var d=o[c];(d.nodeName==="LINK"||d.getAttribute("media")!=="not all")&&(n.set(d.dataset.precedence,d),a=d)}a&&n.set(null,a)}o=t.instance,d=o.getAttribute("data-precedence"),c=n.get(d)||a,c===a&&n.set(null,o),n.set(d,o),this.count++,a=vi.bind(this),o.addEventListener("load",a),o.addEventListener("error",a),c?c.parentNode.insertBefore(o,c.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(o,e.firstChild)),t.state.loading|=4}}var sl={$$typeof:I,Provider:null,Consumer:null,_currentValue:w,_currentValue2:w,_threadCount:0};function Jg(e,t,n,a,o,c,d,g,T){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Xi(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xi(0),this.hiddenUpdates=Xi(null),this.identifierPrefix=a,this.onUncaughtError=o,this.onCaughtError=c,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=T,this.incompleteTransitions=new Map}function mm(e,t,n,a,o,c,d,g,T,H,V,se){return e=new Jg(e,t,n,d,T,H,V,se,g),t=1,c===!0&&(t|=24),c=Ot(3,null,null,t),e.current=c,c.stateNode=e,t=Ar(),t.refCount++,e.pooledCache=t,t.refCount++,c.memoizedState={element:a,isDehydrated:n,cache:t},Mr(c),e}function hm(e){return e?(e=Ha,e):Ha}function pm(e,t,n,a,o,c){o=hm(o),a.context===null?a.context=o:a.pendingContext=o,a=Ln(t),a.payload={element:n},c=c===void 0?null:c,c!==null&&(a.callback=c),n=Un(e,a,t),n!==null&&(At(n,e,t),zs(n,e,t))}function gm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Po(e,t){gm(e,t),(e=e.alternate)&&gm(e,t)}function vm(e){if(e.tag===13||e.tag===31){var t=oa(e,67108864);t!==null&&At(t,e,67108864),Po(e,67108864)}}function ym(e){if(e.tag===13||e.tag===31){var t=Ut();t=Qi(t);var n=oa(e,t);n!==null&&At(n,e,t),Po(e,t)}}var xi=!0;function Fg(e,t,n,a){var o=b.T;b.T=null;var c=E.p;try{E.p=2,ec(e,t,n,a)}finally{E.p=c,b.T=o}}function Wg(e,t,n,a){var o=b.T;b.T=null;var c=E.p;try{E.p=8,ec(e,t,n,a)}finally{E.p=c,b.T=o}}function ec(e,t,n,a){if(xi){var o=tc(a);if(o===null)Bo(e,t,a,Si,n),xm(e,a);else if(ev(o,e,t,n,a))a.stopPropagation();else if(xm(e,a),t&4&&-1<Pg.indexOf(e)){for(;o!==null;){var c=ka(o);if(c!==null)switch(c.tag){case 3:if(c=c.stateNode,c.current.memoizedState.isDehydrated){var d=aa(c.pendingLanes);if(d!==0){var g=c;for(g.pendingLanes|=2,g.entangledLanes|=2;d;){var T=1<<31-xt(d);g.entanglements[1]|=T,d&=~T}ln(c),(Me&6)===0&&(ai=he()+500,Ws(0))}}break;case 31:case 13:g=oa(c,2),g!==null&&At(g,c,2),li(),Po(c,2)}if(c=tc(a),c===null&&Bo(e,t,a,Si,n),c===o)break;o=c}o!==null&&a.stopPropagation()}else Bo(e,t,a,null,n)}}function tc(e){return e=nr(e),nc(e)}var Si=null;function nc(e){if(Si=null,e=Ea(e),e!==null){var t=h(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=m(t),e!==null)return e;e=null}else if(n===31){if(e=v(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Si=e,null}function bm(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ft()){case tt:return 2;case it:return 8;case Ft:case Na:return 32;case ta:return 268435456;default:return 32}default:return 32}}var ac=!1,Zn=null,Jn=null,Fn=null,ll=new Map,il=new Map,Wn=[],Pg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function xm(e,t){switch(e){case"focusin":case"focusout":Zn=null;break;case"dragenter":case"dragleave":Jn=null;break;case"mouseover":case"mouseout":Fn=null;break;case"pointerover":case"pointerout":ll.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":il.delete(t.pointerId)}}function rl(e,t,n,a,o,c){return e===null||e.nativeEvent!==c?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:c,targetContainers:[o]},t!==null&&(t=ka(t),t!==null&&vm(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function ev(e,t,n,a,o){switch(t){case"focusin":return Zn=rl(Zn,e,t,n,a,o),!0;case"dragenter":return Jn=rl(Jn,e,t,n,a,o),!0;case"mouseover":return Fn=rl(Fn,e,t,n,a,o),!0;case"pointerover":var c=o.pointerId;return ll.set(c,rl(ll.get(c)||null,e,t,n,a,o)),!0;case"gotpointercapture":return c=o.pointerId,il.set(c,rl(il.get(c)||null,e,t,n,a,o)),!0}return!1}function Sm(e){var t=Ea(e.target);if(t!==null){var n=h(t);if(n!==null){if(t=n.tag,t===13){if(t=m(n),t!==null){e.blockedOn=t,Mc(e.priority,function(){ym(n)});return}}else if(t===31){if(t=v(n),t!==null){e.blockedOn=t,Mc(e.priority,function(){ym(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ji(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=tc(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);tr=a,n.target.dispatchEvent(a),tr=null}else return t=ka(n),t!==null&&vm(t),e.blockedOn=n,!1;t.shift()}return!0}function jm(e,t,n){ji(e)&&n.delete(t)}function tv(){ac=!1,Zn!==null&&ji(Zn)&&(Zn=null),Jn!==null&&ji(Jn)&&(Jn=null),Fn!==null&&ji(Fn)&&(Fn=null),ll.forEach(jm),il.forEach(jm)}function Ri(e,t){e.blockedOn===t&&(e.blockedOn=null,ac||(ac=!0,s.unstable_scheduleCallback(s.unstable_NormalPriority,tv)))}var Ti=null;function Rm(e){Ti!==e&&(Ti=e,s.unstable_scheduleCallback(s.unstable_NormalPriority,function(){Ti===e&&(Ti=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],o=e[t+2];if(typeof a!="function"){if(nc(a||n)===null)continue;break}var c=ka(n);c!==null&&(e.splice(t,3),t-=3,eo(c,{pending:!0,data:o,method:n.method,action:a},a,o))}}))}function cs(e){function t(T){return Ri(T,e)}Zn!==null&&Ri(Zn,e),Jn!==null&&Ri(Jn,e),Fn!==null&&Ri(Fn,e),ll.forEach(t),il.forEach(t);for(var n=0;n<Wn.length;n++){var a=Wn[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<Wn.length&&(n=Wn[0],n.blockedOn===null);)Sm(n),n.blockedOn===null&&Wn.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var o=n[a],c=n[a+1],d=o[Tt]||null;if(typeof c=="function")d||Rm(n);else if(d){var g=null;if(c&&c.hasAttribute("formAction")){if(o=c,d=c[Tt]||null)g=d.formAction;else if(nc(o)!==null)continue}else g=d.action;typeof g=="function"?n[a+1]=g:(n.splice(a,3),a-=3),Rm(n)}}}function Tm(){function e(c){c.canIntercept&&c.info==="react-transition"&&c.intercept({handler:function(){return new Promise(function(d){return o=d})},focusReset:"manual",scroll:"manual"})}function t(){o!==null&&(o(),o=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var c=navigation.currentEntry;c&&c.url!=null&&navigation.navigate(c.url,{state:c.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,o=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),o!==null&&(o(),o=null)}}}function sc(e){this._internalRoot=e}Ni.prototype.render=sc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));var n=t.current,a=Ut();pm(n,a,e,t,null,null)},Ni.prototype.unmount=sc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;pm(e.current,2,null,e,null,null),li(),t[Ca]=null}};function Ni(e){this._internalRoot=e}Ni.prototype.unstable_scheduleHydration=function(e){if(e){var t=Oc();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Wn.length&&t!==0&&t<Wn[n].priority;n++);Wn.splice(n,0,e),n===0&&Sm(e)}};var Nm=i.version;if(Nm!=="19.2.8")throw Error(u(527,Nm,"19.2.8"));E.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(u(188)):(e=Object.keys(e).join(","),Error(u(268,e)));return e=x(t),e=e!==null?R(e):null,e=e===null?null:e.stateNode,e};var nv={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:b,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ci=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ci.isDisabled&&Ci.supportsFiber)try{Be=Ci.inject(nv),ze=Ci}catch{}}return cl.createRoot=function(e,t){if(!f(e))throw Error(u(299));var n=!1,a="",o=Id,c=Dd,d=Od;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(c=t.onCaughtError),t.onRecoverableError!==void 0&&(d=t.onRecoverableError)),t=mm(e,1,!1,null,null,n,a,null,o,c,d,Tm),e[Ca]=t.current,Ho(e),new sc(t)},cl.hydrateRoot=function(e,t,n){if(!f(e))throw Error(u(299));var a=!1,o="",c=Id,d=Dd,g=Od,T=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onUncaughtError!==void 0&&(c=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(g=n.onRecoverableError),n.formState!==void 0&&(T=n.formState)),t=mm(e,1,!0,t,n??null,a,o,T,c,d,g,Tm),t.context=hm(null),n=t.current,a=Ut(),a=Qi(a),o=Ln(a),o.callback=null,Un(n,o,a),n=a,t.current.lanes=n,ys(t,n),ln(t),e[Ca]=t.current,Ho(e),new Ni(t)},cl.version="19.2.8",cl}var _m;function fv(){if(_m)return rc.exports;_m=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(i){console.error(i)}}return s(),rc.exports=dv(),rc.exports}var mv=fv();function Sa(s){if(s==null)return null;if(typeof s=="string")return s.trim()||null;if(typeof s=="number"||typeof s=="boolean")return String(s);if(typeof s=="object"){const i=s;if(typeof i.text=="string"&&i.text.trim())return i.text.trim();if(typeof i.errorMessage=="string"&&i.errorMessage.trim())return i.errorMessage.trim();if(Array.isArray(i.content)){const r=i.content.map(u=>{if(typeof u=="string")return u;if(u&&typeof u=="object"){const f=u;if(typeof f.text=="string")return f.text}return""}).filter(Boolean);if(r.length)return r.join(`
10
+ `).slice(0,240)}if(typeof i.role=="string")return`${i.role} 消息`}return null}function hv(s){const i=Sa(s.at)??Sa(s.timestamp)??Sa(s.recordedAt)??"",r=Sa(s.errorMessage)??Sa(s.label)??Sa(s.type)??Sa(s.message)??"运行事件";return i?`${i} · ${r}`:r}function fl(s){return String(s.nodeId??s.id??"").trim()}function dc(s){const i=fl(s);return String(s.label??s.name??(i||"未命名节点"))}function zm(s,i){if(s.length===0)return;const r=i?.trim();if(r){const h=s.find(m=>fl(m)===r);if(h)return h}const u=s.find(h=>{const m=String(h.status??"").toLowerCase();return m.includes("fail")||m.includes("error")||m==="blocked"});return u||(s.find(h=>{const m=String(h.status??"").toLowerCase();return m==="running"||m==="in_progress"||m==="active"})??s[0])}function pv({dagRunId:s,nodeId:i,onClose:r,onOpenFull:u}){const f=p.useRef(null),[h,m]=p.useState(null),[v,S]=p.useState([]),[x,R]=p.useState(null),[j,L]=p.useState(!0);p.useEffect(()=>{f.current?.focus();const te=N=>{N.key==="Escape"&&r()};return document.addEventListener("keydown",te),document.title=`检视 · DAG ${s} · Loop Operator`,()=>document.removeEventListener("keydown",te)},[s,r]),p.useEffect(()=>{const te=new AbortController;return L(!0),R(null),S([]),(async()=>{try{const N=await fetch(`/api/dag-runs/${encodeURIComponent(s)}`,{signal:te.signal,credentials:"same-origin"});if(!N.ok)throw new Error(`DAG 查询失败(HTTP ${N.status})`);const I=await N.json();if(te.signal.aborted)return;m(I);const D=Array.isArray(I.nodes)?I.nodes:[],Z=zm(D,i),q=Z?fl(Z):i?.trim();if(q){const _=await fetch(`/api/dag-runs/${encodeURIComponent(s)}/nodes/${encodeURIComponent(q)}/session-events`,{signal:te.signal,credentials:"same-origin"});if(_.ok){const le=await _.json();te.signal.aborted||S((le.events??[]).slice(-20))}}}catch(N){te.signal.aborted||R(N instanceof Error?N.message:String(N))}finally{te.signal.aborted||L(!1)}})(),()=>te.abort()},[s,i]);const C=p.useMemo(()=>Array.isArray(h?.nodes)?h.nodes:[],[h]),z=zm(C,i),O=z?fl(z):"",F=String(h?.effectiveStatus??h?.status??(j?"加载中…":"未知"));return l.jsxs("aside",{className:"inspect-split-panel","aria-label":"DAG 紧凑检视",children:[l.jsxs("div",{className:"inspect-split-header",children:[l.jsxs("div",{children:[l.jsx("p",{className:"inspect-split-kicker",children:"Inspect"}),l.jsx("h2",{children:"检视 DAG"})]}),l.jsx("button",{ref:f,type:"button","aria-label":"关闭检视面板",onClick:r,children:"关闭"})]}),l.jsx("p",{className:"inspect-split-id",children:l.jsx("code",{children:s})}),x?l.jsx("p",{className:"error",children:x}):null,j&&!h?l.jsx("p",{className:"muted",children:"正在加载 DAG…"}):null,l.jsxs("dl",{className:"inspect-split-facts",children:[l.jsxs("div",{children:[l.jsx("dt",{children:"状态"}),l.jsx("dd",{children:F})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"当前节点"}),l.jsx("dd",{children:z?dc(z):"暂无节点"})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"节点状态"}),l.jsx("dd",{children:z?.status??"—"})]}),z?.errorPreview?l.jsxs("div",{children:[l.jsx("dt",{children:"错误摘要"}),l.jsx("dd",{children:z.errorPreview})]}):null]}),l.jsxs("section",{children:[l.jsxs("h3",{children:["节点(",C.length,")"]}),C.length?l.jsx("ul",{className:"inspect-split-nodes",children:C.slice(0,24).map(te=>{const N=fl(te)||dc(te),I=N===O;return l.jsxs("li",{"data-active":I?"true":void 0,className:I?"is-active":void 0,children:[l.jsx("span",{children:dc(te)}),l.jsx("code",{children:te.status??"—"})]},N)})}):l.jsx("p",{className:"muted",children:j?"加载节点中…":"该运行暂无节点。"})]}),l.jsxs("section",{children:[l.jsxs("h3",{children:["最近事件",O?` · ${O}`:""]}),v.length?l.jsx("ul",{className:"inspect-split-events",children:v.map((te,N)=>l.jsx("li",{children:hv(te)},`${te.at??N}-${N}`))}):l.jsx("p",{className:"muted",children:j?"加载事件中…":"节点事件将在可用时显示。"})]}),l.jsx("button",{type:"button",className:"btn btn-secondary",onClick:u,children:"全屏观测"}),l.jsx("p",{className:"muted",children:"全屏后点顶栏「返回操作台」可回来。"})]})}function gv(s){const{board:i,busy:r}=s;return l.jsxs("details",{className:"night-advanced","data-testid":"night-advanced",open:i.advancedOpen,onToggle:u=>i.setAdvancedOpen(u.target.open),children:[l.jsx("summary",{children:"高级 / Inspect"}),l.jsxs("p",{className:"muted",children:["只读深链:"," ",l.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),l.jsx("div",{className:"cta-row",children:l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r,"data-testid":"night-morning-btn",onClick:()=>{i.onMorningReport()},children:"早晨 night 报告"})}),i.morningPreview?l.jsx("pre",{className:"cmd","data-testid":"night-morning-preview",children:i.morningPreview}):null]})}function Ei(s){return!s||typeof s!="object"||Array.isArray(s)?null:s}function et(s,i){const r=s[i];return typeof r=="string"&&r.trim()?r.trim():void 0}function Lm(s,i){const r=s[i];if(!Array.isArray(r))return;const u=r.filter(f=>typeof f=="string");return u.length>0?u:void 0}function vv(s){const i=Ei(s);if(!i)return null;const r=Ei(i.result),u=[Ei(i.reviewPacket),r?Ei(r.reviewPacket):null,r,i].filter(Boolean);for(const f of u){const h=et(f,"scheduleId")??et(f,"id"),m=et(f,"gateToken")??et(f,"approveGate")??et(f,"writeSetGateToken");if(!(!h||!m))return{scheduleId:h,gateToken:m,...et(f,"featureId")?{featureId:et(f,"featureId")}:{},...et(f,"taskId")?{taskId:et(f,"taskId")}:{},...Lm(f,"writeSet")?{writeSet:Lm(f,"writeSet")}:{},...et(f,"worktreePath")?{worktreePath:et(f,"worktreePath")}:{},...et(f,"branch")?{branch:et(f,"branch")}:{},...et(f,"baseBranch")?{baseBranch:et(f,"baseBranch")}:{},...et(f,"baseCommit")?{baseCommit:et(f,"baseCommit")}:{},...et(f,"executeAtUtc")?{executeAtUtc:et(f,"executeAtUtc")}:{},...et(f,"taskCard")?{taskCard:et(f,"taskCard")}:{}}}return null}function Um(s){return`docs/features/${s.trim().replace(/^\/+|\/+$/g,"")}`}function yv(s){const i=s.trim(),r=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})/.exec(i);return r?`${r[1]} ${r[2]}`:null}function Hm(){const s=new Date;s.setHours(20,0,0,0);const i=r=>String(r).padStart(2,"0");return`${s.getFullYear()}-${i(s.getMonth()+1)}-${i(s.getDate())}T${i(s.getHours())}:${i(s.getMinutes())}`}function uh(s){if(!s)return"—";const i=Date.parse(s);if(Number.isNaN(i))return s;try{return new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"short",timeZone:"Asia/Shanghai"}).format(new Date(i))}catch{return s}}function bv(s){return s.mergeState==="pending-harvest"||/\bscheduler harvest\b/i.test(s.nextAction)}function xv(s){return s.status==="failed"||s.status==="human_required"||s.status==="cancelled"||/\bscheduler discard\b/i.test(s.nextAction)}function Ai(s){return s==="failed"||s==="human_required"}function Sv(s){return`${s}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function dh(s){return{submitted:"已提交",validating:"校验中",validated:"待预约确认",scheduled:"已预约",waiting:"等待触发",dispatching:"派发中",running:"执行中",succeeded:"成功",failed:"失败",human_required:"需人工",cancelled:"已取消",rejected:"已拒绝",cancel_requested:"取消中"}[s]??s}function jv(s){const{target:i,reason:r,onReasonChange:u,force:f,onForceChange:h,busy:m}=s;return l.jsxs("div",{className:"night-discard-card","data-testid":"night-discard-card",children:[l.jsx("h3",{children:"确认 Discard"}),l.jsxs("p",{className:"muted",children:[i.featureId,"/",i.taskId,"(",dh(i.status),")"]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"原因"}),l.jsx("input",{"data-testid":"night-discard-reason",value:r,disabled:m,placeholder:"human discard reason",onChange:v=>u(v.target.value)})]}),Ai(i.status)?l.jsxs("label",{className:"field checkbox-field",children:[l.jsx("input",{type:"checkbox","data-testid":"night-discard-force",checked:f,disabled:m,onChange:v=>h(v.target.checked)}),l.jsx("span",{className:"muted",children:"强制 Discard(failed / human_required)"})]}):null,l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:m||Ai(i.status)&&!f,"data-testid":"night-discard-confirm",onClick:s.onConfirm,children:"确认 Discard"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:m,onClick:s.onCancel,children:"返回"})]})]})}function Rv(s){const{board:i}=s,{doctor:r,list:u,clockHint:f,doctorIssues:h,auxTicker:m}=i;return l.jsxs("div",{className:"night-health","data-testid":"night-health-bar",children:[l.jsxs("div",{className:"night-health-main",children:[l.jsx("span",{className:`night-health-pill${r?.ok===!1?" is-bad":""}`,children:r?.ok===!1?"Scheduler 异常":"Scheduler 健康"}),l.jsxs("span",{className:"muted",children:["计划 ",r?.scheduleCount??u?.summary.total??"—"," · 活动"," ",r?.activeCount??u?.summary.active??"—"]})]}),f?l.jsxs("p",{className:"muted night-health-hint","data-testid":"night-clock-hint",children:["时钟:",f.message,"(安装/启停请用 CLI:",l.jsx("code",{children:"agent-worker scheduler clock status --repo ."}),")"]}):l.jsxs("p",{className:"muted night-health-hint",children:["到点执行依赖本机 clock / tick,不在此面板安装。详见"," ",l.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),l.jsxs("div",{className:"night-aux-ticker","data-testid":"night-aux-ticker",children:[l.jsxs("p",{className:"night-aux-ticker-label",children:["开着 Console 时辅助 tick(每 ",m?.intervalSec??60,"s)"]}),l.jsx("p",{className:"muted night-health-hint","data-testid":"night-aux-ticker-disclaimer",children:m?.disclaimer??"仅在本 Console 进程开着时有效;过夜无人值守仍需 OS clock。"}),m?.lastOutcome?l.jsxs("p",{className:"muted","data-testid":"night-aux-ticker-last",children:["上次:",m.lastOutcome,m.running?"(进行中)":"",m.lastSummary?` · ${m.lastSummary}`:"",m.lastError?` · ${m.lastError}`:""]}):null]}),h.length>0?l.jsx("ul",{className:"night-doctor-list","data-testid":"night-doctor-findings",children:h.slice(0,4).map(v=>l.jsxs("li",{children:[l.jsx("strong",{children:v.severity})," ",v.message]},`${v.code}-${v.scheduleId??""}-${v.message}`))}):null]})}function Tv(s){const{board:i,busy:r,onHarvest:u,onOpenDiscard:f}=s,{list:h}=i;return l.jsxs(l.Fragment,{children:[h?l.jsxs("div",{className:"night-kpi","data-testid":"night-kpi",children:[l.jsxs("span",{children:["合计 ",h.summary.total]}),l.jsxs("span",{children:["活动 ",h.summary.active]}),l.jsxs("span",{children:["待收成 ",h.summary.pendingHarvest]}),l.jsxs("span",{children:["需人工 ",h.summary.humanRequired]}),l.jsxs("span",{children:["失败 ",h.summary.failed]})]}):null,l.jsxs("div",{className:"night-board","data-testid":"night-board",children:[l.jsx("h3",{children:"计划列表"}),!h||h.schedules.length===0?l.jsxs("div",{className:"empty-state","data-testid":"night-board-empty",children:[l.jsx("p",{className:"empty-title",children:"暂无夜间计划"}),l.jsx("p",{className:"muted",children:"用下方向导预约第一个任务。"})]}):l.jsx("ul",{className:"night-schedule-list",children:h.schedules.map(m=>l.jsxs("li",{className:"night-schedule-row","data-testid":"night-schedule-row","data-status":m.status,children:[l.jsxs("div",{className:"night-schedule-head",children:[l.jsxs("strong",{children:[m.featureId,"/",m.taskId]}),l.jsx("span",{className:"night-status-chip",children:dh(m.status)})]}),l.jsxs("p",{className:"muted",children:["执行 ",uh(m.executeAtUtc),m.mergeState?` · merge ${m.mergeState}`:"",m.taskCard?` · ${m.taskCard}`:""]}),m.waitingReason?l.jsxs("p",{className:"muted",children:["等待原因:",m.waitingReason]}):null,l.jsxs("p",{className:"muted night-next-action",children:["下一步:",m.nextAction]}),l.jsxs("div",{className:"cta-row",children:[bv(m)?l.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,"data-testid":"night-row-harvest",onClick:()=>u(m),children:"Harvest"}):null,xv(m)?l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r,"data-testid":"night-row-discard",onClick:()=>f(m),children:"Discard"}):null,l.jsx("a",{className:"external-link",href:`/inspect/#/night/${encodeURIComponent(m.scheduleId)}`,children:"Inspect"})]})]},m.scheduleId))})]})]})}function Nv(s){const{wizard:i,busy:r}=s;return l.jsxs("div",{className:"night-wizard","data-testid":"night-wizard",children:[l.jsx("h3",{children:"预约夜间任务"}),i.phase==="pick"?l.jsxs(l.Fragment,{children:[i.selectableTasks.length===0?l.jsxs("div",{className:"empty-state","data-testid":"night-task-empty",children:[l.jsx("p",{className:"empty-title",children:"没有可选任务"}),l.jsx("p",{className:"muted",children:"请先在 Feature Packet / Task Pool 中创建任务,再回到此处刷新。"})]}):l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"Feature / Task"}),l.jsxs("select",{"data-testid":"night-task-select",value:i.selectedKey,disabled:r,onChange:u=>i.setSelectedKey(u.target.value),children:[l.jsx("option",{value:"",children:"选择任务…"}),i.selectableTasks.map(u=>{const f=`${u.featureId}::${u.taskId}`;return l.jsxs("option",{value:f,children:[u.featureId,"/",u.taskId,u.status?` · ${u.status}`:""]},f)})]})]}),i.derivedFeatureDir?l.jsxs("p",{className:"muted","data-testid":"night-feature-dir",children:["Feature 目录:",l.jsx("code",{children:i.derivedFeatureDir})]}):null,l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"本地执行时间"}),l.jsx("input",{type:"datetime-local","data-testid":"night-at",value:i.nightAt,disabled:r,onChange:u=>i.setNightAt(u.target.value)})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"任务卡片(可选)"}),l.jsx("input",{"data-testid":"night-task-card",value:i.taskCard,disabled:r,placeholder:"UCP-LOOP#11",onChange:u=>i.setTaskCard(u.target.value)})]}),l.jsx("div",{className:"cta-row",children:l.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!i.selectedKey||!i.nightAt,"data-testid":"night-prepare-btn",onClick:()=>{i.onPrepare()},children:"准备并审阅"})})]}):l.jsxs("div",{className:"night-review-card","data-testid":"night-review-card",children:[l.jsx("p",{className:"muted",children:"请确认 writeSet 与执行环境后预约。Token 已隐藏。"}),l.jsxs("dl",{className:"kv",children:[l.jsxs("div",{children:[l.jsx("dt",{children:"Schedule"}),l.jsx("dd",{children:l.jsx("code",{children:i.review?.scheduleId})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"任务"}),l.jsxs("dd",{children:[i.review?.featureId,"/",i.review?.taskId]})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"执行时间 (UTC)"}),l.jsx("dd",{children:uh(i.review?.executeAtUtc)})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"Worktree"}),l.jsx("dd",{children:l.jsx("code",{children:i.review?.worktreePath??"—"})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"分支"}),l.jsx("dd",{children:l.jsx("code",{children:i.review?.branch??"—"})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"Base"}),l.jsx("dd",{children:l.jsxs("code",{children:[i.review?.baseBranch??"—","@",(i.review?.baseCommit??"").slice(0,12)||"—"]})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"WriteSet"}),l.jsx("dd",{children:i.review?.writeSet&&i.review.writeSet.length>0?l.jsx("ul",{className:"night-writeset",children:i.review.writeSet.map(u=>l.jsx("li",{children:l.jsx("code",{children:u})},u))}):l.jsx("span",{className:"muted",children:"(未返回显式 writeSet)"})})]})]}),l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!i.review,"data-testid":"night-confirm-add-btn",onClick:()=>{i.onConfirmAdd()},children:"确认预约"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r,"data-testid":"night-review-back-btn",onClick:i.onCancelWizard,children:"返回修改"})]})]})]})}function Cv(s){const{setOpError:i}=s,[r,u]=p.useState(null),[f,h]=p.useState(null),[m,v]=p.useState([]),[S,x]=p.useState(null),[R,j]=p.useState(!1),[L,C]=p.useState(!1),[z,O]=p.useState(null),[F,te]=p.useState(null),N=p.useCallback(async()=>{j(!0),x(null);try{const[q,_,le,oe]=await Promise.all([fetch("/api/night-jobs",{credentials:"same-origin"}),fetch("/api/night-jobs/doctor",{credentials:"same-origin"}),fetch("/api/tasks",{credentials:"same-origin"}),fetch("/api/operator/v1/night-aux-ticker",{credentials:"same-origin"})]);if(!q.ok)throw new Error(`加载计划列表失败(HTTP ${q.status})`);const ne=await q.json();if(u(ne),_.ok?h(await _.json()):h(null),le.ok){const Q=await le.json();v(Array.isArray(Q)?Q:[])}else v([]);if(oe.ok){const Q=await oe.json();Q.ticker&&te(Q.ticker)}}catch(q){x(q instanceof Error?q.message:String(q))}finally{j(!1)}},[]);p.useEffect(()=>{N()},[N]);const I=p.useCallback(async()=>{try{const q=await fetch("/api/night-jobs/morning",{credentials:"same-origin"});if(!q.ok){i(`早晨报告加载失败(HTTP ${q.status})`);return}const _=await q.json();O(JSON.stringify(_,null,2).slice(0,4e3)),C(!0)}catch(q){i(q instanceof Error?q.message:String(q))}},[i]),D=(f?.findings??[]).filter(q=>q.severity==="error"||q.severity==="warning"),Z=(f?.findings??[]).find(q=>/clock/i.test(q.code)||/clock/i.test(q.message));return{list:r,doctor:f,tasks:m,loadError:S,loadingBoard:R,advancedOpen:L,setAdvancedOpen:C,morningPreview:z,auxTicker:F,refreshBoard:N,onMorningReport:I,doctorIssues:D,clockHint:Z}}function Ev(s){const{board:i,runAction:r,isActionSuccess:u,setOpError:f}=s,{tasks:h,refreshBoard:m}=i,[v,S]=p.useState("pick"),[x,R]=p.useState(""),[j,L]=p.useState(Hm),[C,z]=p.useState(""),[O,F]=p.useState(null),[te,N]=p.useState(""),[I,D]=p.useState(null),[Z,q]=p.useState(!1),_=p.useMemo(()=>{const E=h.filter(w=>typeof w.featureId=="string"&&w.featureId.trim()&&w.taskId);return E.sort((w,ee)=>{const $=w.featureId??"",y=ee.featureId??"";return $!==y?$.localeCompare(y):w.taskId.localeCompare(ee.taskId)}),E},[h]),le=p.useMemo(()=>x?_.find(E=>`${E.featureId}::${E.taskId}`===x)??null:null,[_,x]),oe=le?.featureId?Um(le.featureId):"",ne=p.useCallback(async(E,w,ee)=>{const $=await r("prepareMutationGate",{action:E,actionParams:w});if(!u($))return;const y=$?.result??$,A=y.receiptId?y:y.result??y;if(!A.receiptId||!A.humanGateToken){f("prepareMutationGate 未返回可消费的 Human Gate receipt");return}return r(E,{...w,confirmationId:A.receiptId,humanGateToken:A.humanGateToken},{clientRequestId:Sv(ee)})},[u,r,f]),Q=p.useCallback(async()=>{if(!le?.featureId){f("请先点选 Feature / Task");return}const E=yv(j);if(!E){f("执行时间格式无效,请使用日期时间选择器");return}const w={featureDir:Um(le.featureId),taskId:le.taskId,at:E,tz:"Asia/Shanghai",...C.trim()?{taskCard:C.trim()}:{}},ee=await ne("workerAdmissionPrepare",w,"night-prepare");if(!u(ee))return;const $=vv(ee?.result??ee);if(!$){f("准备成功但未解析到 scheduleId / gateToken。请刷新后重试,或查看 Inspect。");return}F($),S("review")},[u,j,ne,le,f,C]),ie=p.useCallback(async()=>{if(!O)return;const E=await ne("workerSchedulerAdd",{scheduleId:O.scheduleId,approveGate:O.gateToken},"night-add");u(E)&&(F(null),S("pick"),R(""),z(""),L(Hm()),await m())},[u,m,O,ne]),fe=p.useCallback(()=>{S("pick"),F(null)},[]),W=p.useCallback(async E=>{const w=await ne("workerSchedulerHarvest",{scheduleId:E.scheduleId},"night-harvest");u(w)&&await m()},[u,m,ne]),G=p.useCallback(async()=>{if(!I)return;const E=te.trim()||"discard from console night workbench",w=Ai(I.status),ee=await ne("workerSchedulerDiscard",{scheduleId:I.scheduleId,reason:E,...w||Z?{force:!0}:{}},"night-discard");u(ee)&&(D(null),N(""),q(!1),await m())},[te,I,Z,u,m,ne]),b=p.useCallback(E=>{D(E),q(Ai(E.status)),N("")},[]);return{phase:v,selectedKey:x,setSelectedKey:R,nightAt:j,setNightAt:L,taskCard:C,setTaskCard:z,review:O,discardReason:te,setDiscardReason:N,discardTarget:I,setDiscardTarget:D,forceDiscard:Z,setForceDiscard:q,selectableTasks:_,derivedFeatureDir:oe,onPrepare:Q,onConfirmAdd:ie,onCancelWizard:fe,onHarvest:W,onDiscard:G,openDiscard:b}}function kv({busy:s,runAction:i,isActionSuccess:r,setOpError:u}){const f=Cv({setOpError:u}),h=Ev({board:f,runAction:i,isActionSuccess:r,setOpError:u});return l.jsxs("section",{className:"panel night-workbench","aria-labelledby":"night-title","data-testid":"night-jobs-panel",children:[l.jsx("h2",{id:"night-title",children:"夜间任务"}),l.jsx("p",{className:"panel-lead",children:"白天点选任务并预约;列表查看状态;早晨在行内收成或丢弃。写操作仍经 Human Gate,列表复用 Inspect 投影。"}),l.jsx(Rv,{board:f,busy:s}),l.jsx("div",{className:"cta-row",children:l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:s||f.loadingBoard,"data-testid":"night-refresh-btn",onClick:()=>{f.refreshBoard()},children:"刷新看板"})}),f.loadError?l.jsx("p",{className:"error","data-testid":"night-load-error",children:f.loadError}):null,l.jsx(Tv,{board:f,busy:s,onHarvest:m=>{h.onHarvest(m)},onOpenDiscard:h.openDiscard}),h.discardTarget?l.jsx(jv,{target:h.discardTarget,reason:h.discardReason,onReasonChange:h.setDiscardReason,force:h.forceDiscard,onForceChange:h.setForceDiscard,busy:s,onConfirm:()=>{h.onDiscard()},onCancel:()=>h.setDiscardTarget(null)}):null,l.jsx(Nv,{wizard:h,busy:s}),l.jsx(gv,{board:f,busy:s})]})}const wv=["command","path","file_path","filePath","pattern","query","glob","url"],Av=120,Iv=800;function Bm(s){if(!(!s||typeof s!="object"||Array.isArray(s)))return s}function Dv(s){if(s!=null){if(typeof s=="string"){const i=s.trim();if(!i)return;try{return Bm(JSON.parse(i))}catch{return}}return Bm(s)}}function Ov(s,i){const r=Av,u=Dv(s);if(!u){if(typeof s=="string"){const v=s.replace(/\s+/g," ").trim();return!v||v==="{}"?"":v.length>r?`${v.slice(0,r)}…`:v}return""}for(const v of wv){const S=u[v];if(typeof S=="string"&&S.trim()){const x=S.replace(/\s+/g," ").trim();return x.length>r?`${x.slice(0,r)}…`:x}}const f=Object.keys(u);if(f.length===0)return"";const h=u[f[0]],m=String(h??"").replace(/\s+/g," ").trim();return m?m.length>r?`${m.slice(0,r)}…`:m:""}function Mv(s){if(s==null)return"";try{return typeof s=="string"?s:JSON.stringify(s,null,2)}catch{return String(s)}}function _v(s,i){if(s===void 0)return{text:"",truncated:!1};const r=i?.maxLen??Iv;return s.length<=r?{text:s,truncated:!1}:{text:`${s.slice(0,r)}…`,truncated:!0}}function zv(s,i){if(i===void 0||!Number.isFinite(s)||!Number.isFinite(i))return;const r=Math.round((i-s)/1e3);return r>0?r:void 0}function It(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function us(s){return`${s}-${Math.random().toString(36).slice(2,10)}`}function fc(s,i){return new Promise((r,u)=>{if(i?.aborted){u(new DOMException("Aborted","AbortError"));return}const f=setTimeout(()=>{i?.removeEventListener("abort",h),r()},s),h=()=>{clearTimeout(f),u(new DOMException("Aborted","AbortError"))};i?.addEventListener("abort",h)})}function fh(s){return new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function mc(s){const i=new Date(s),r=new Date;return i.getFullYear()===r.getFullYear()&&i.getMonth()===r.getMonth()&&i.getDate()===r.getDate()?"今天":i.toLocaleDateString([],{month:"long",day:"numeric"})}function qm(s){switch(s){case"mutation":return"变更";case"long-running":return"长任务";case"explore":return"探查";default:return"只读"}}function Lv(s,i){return s?s.taskId===i.taskId&&s.updatedAt===i.updatedAt&&s.lastEventId===i.lastEventId&&s.operations.length===i.operations.length:!1}const mh={status:"idle",snapshot:null,error:null,reloading:!1,reloadError:null,mutationBusy:!1,mutationToken:null};function Tc(s){if(!s||typeof s!="object")return{message:"runtime snapshot request failed"};const i=s,r=i.error;if(r&&typeof r=="object"){const u=r;return{...typeof u.code=="string"&&u.code?{code:u.code}:{},...typeof i.status=="number"?{status:i.status}:{},message:typeof u.message=="string"&&u.message?u.message:"runtime snapshot request failed"}}return{...typeof i.status=="number"?{status:i.status}:{},message:typeof i=="object"&&"message"in i&&typeof i.message=="string"&&i.message?i.message:"runtime snapshot request failed"}}function Uv(s,i){switch(i.type){case"load-start":return{...s,sessionId:i.sessionId,status:"loading",error:null};case"load-success":return s.snapshot&&s.sessionId===i.sessionId&&i.snapshot.revision<s.snapshot.revision?s:{...s,sessionId:i.sessionId,status:"ready",snapshot:i.snapshot,error:null,reloadError:null,reloading:!1};case"load-failure":return{...s,sessionId:i.sessionId,status:"error",error:i.error,snapshot:null};case"reload-start":return s.reloading?s:{...s,reloading:!0,reloadError:null,...s.status==="error"?{error:null}:{}};case"reload-success":return{...s,status:"ready",snapshot:i.snapshot,reloading:!1,reloadError:null,error:null,sessionId:i.snapshot.sessionId||s.sessionId};case"reload-failure":return{...s,reloading:!1,reloadError:i.error};case"mutation-start":return{...s,mutationBusy:!0,mutationToken:i.token};case"mutation-adopt":return s.mutationToken!==i.token||s.sessionId!==void 0&&s.sessionId!==i.sessionId||s.snapshot&&i.snapshot.revision<s.snapshot.revision?s:{...s,sessionId:i.sessionId,status:"ready",snapshot:i.snapshot,error:null,reloadError:null,reloading:!1};case"mutation-settle":return s.mutationToken!==i.token?s:{...s,mutationBusy:!1,mutationToken:null};case"mutation-reset":return{...s,mutationBusy:!1,mutationToken:null};case"reset":return{...mh};default:return s}}function hh(s){const i=s.selection;return{...i.model?{model:{provider:i.model.provider,modelId:i.model.id}}:{},...i.thinkingSelection==="auto"?i.effectiveThinkingLevel?{thinkingLevel:i.effectiveThinkingLevel}:{}:{thinkingLevel:i.thinkingSelection}}}function Hv(s,i,r,u){const f=r&&r.sessionId===u?hh(r):{},h=f.model??s?.model,m=f.thinkingLevel??s?.thinkingLevel;return{readOnly:i.readOnly,systemPrompt:i.systemPrompt,resources:i.resources,suffix:i.suffix,...h?{model:h}:{},...m?{thinkingLevel:m}:{}}}function Bv(s=mh){let i=s;const r=new Set;return{getState:()=>i,dispatch:u=>{i=Uv(i,u);for(const f of r)f();return i},subscribe:u=>(r.add(u),()=>r.delete(u))}}const Fe=Bv();let ea;function ph(s){return`/api/operator/v1/chat/sessions/${encodeURIComponent(s)}`}function qv(s){const i=ea;if(ea=s,!(i&&i.sessionId===s.sessionId&&i.origin===s.origin)){if((!i||i.sessionId!==s.sessionId)&&Fe.dispatch({type:"mutation-reset"}),!s.sessionId){Fe.dispatch({type:"reset"});return}Fe.dispatch({type:"load-start",sessionId:s.sessionId}),gh(s.sessionId,s.origin)}}async function gh(s,i){try{const r=await fetch(`${i}${ph(s)}/runtime-snapshot`,{credentials:"include"}),u=await r.json().catch(()=>({}));if(ea?.sessionId!==s)return;if(!r.ok){Fe.dispatch({type:"load-failure",sessionId:s,error:{...Tc(u),status:r.status}});return}if(!u.snapshot){Fe.dispatch({type:"load-failure",sessionId:s,error:{status:r.status,message:"runtime snapshot missing in response"}});return}Fe.dispatch({type:"load-success",sessionId:s,snapshot:u.snapshot})}catch(r){if(ea?.sessionId!==s)return;Fe.dispatch({type:"load-failure",sessionId:s,error:{message:r instanceof Error?r.message:String(r)}})}}async function ms(){const s=ea;if(!s?.sessionId||Fe.getState().reloading)return!1;const i=s.sessionId;Fe.dispatch({type:"reload-start"});try{const r=await fetch(`${s.origin}${ph(i)}/reload`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":It()},body:"{}"}),u=await r.json().catch(()=>({}));return ea?.sessionId!==i?!1:r.ok?u.snapshot?(Fe.dispatch({type:"reload-success",snapshot:u.snapshot}),!0):(Fe.dispatch({type:"reload-failure",error:{status:r.status,message:"reload succeeded but snapshot missing"}}),!1):(Fe.dispatch({type:"reload-failure",error:{...Tc(u),status:r.status}}),!1)}catch(r){return ea?.sessionId!==i||Fe.dispatch({type:"reload-failure",error:{message:r instanceof Error?r.message:String(r)}}),!1}}async function hs(){const s=ea;if(!s?.sessionId)return!1;const i=s.sessionId;return Fe.dispatch({type:"load-start",sessionId:i}),gh(i,s.origin),!0}function Gv(s,i,r){return r?(Fe.dispatch({type:"mutation-adopt",token:s,sessionId:i,snapshot:r}),Fe.getState().snapshot===r):!1}function $v(s,i,r){return r.sessionRef.current?.sessionId!==i||Fe.getState().mutationToken!==s?!1:(Fe.dispatch({type:"mutation-settle",token:s}),!0)}function ps(){return p.useSyncExternalStore(Fe.subscribe,Fe.getState)}function vh(s){Fe.dispatch(s)}function Yv(){return Fe.getState()}function Kv(s,i,r){return`${s}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/skills/${encodeURIComponent(r)}/auto-invocation`}async function Xv(s){const i=s.fetchImpl??fetch;try{const r=await i(Kv(s.origin,s.sessionId,s.resourceId),{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":s.confirmationToken},body:JSON.stringify({autoInvocationEnabled:s.autoInvocationEnabled})}),u=await r.json().catch(()=>({}));if(!r.ok||u.ok===!1)return{ok:!1,error:{...Tc(u),status:r.status}};const f=u.preferenceSaved===!0,h=u.reloadApplied===!0;if(!f)return{ok:!1,error:{status:r.status,code:"PI_RESOURCE_PREFERENCES_WRITE_FAILED",message:"preference was not saved"}};if(!h){const m=u.error?.code??"PI_SESSION_BUSY",v=u.error?.message??"preference saved; current session is busy and was not reloaded";return{ok:!0,preferenceSaved:!0,reloadApplied:!1,...u.snapshot?{snapshot:u.snapshot}:{},partialBusy:{code:m,message:v}}}return{ok:!0,preferenceSaved:!0,reloadApplied:!0,...u.snapshot?{snapshot:u.snapshot}:{}}}catch(r){return{ok:!1,error:{message:r instanceof Error?r.message:String(r)}}}}function Qv(s){return s.autoInvocationEnabled?{badge:"允许自动使用",help:"模型可自动选择该技能,也可通过 /skill:<name> 手动调用。"}:{badge:"已隐藏自动使用",help:`已从模型自动技能列表隐藏,仍可通过 /skill:${s.name} 手动调用。`}}const yc=()=>window.__CONSOLE_CONFIRMATION_TOKEN__??"";function Vv({origin:s}){const[i,r]=p.useState(null),[u,f]=p.useState(null),[h,m]=p.useState(null),[v,S]=p.useState(!1),x=ps(),R=x.snapshot,j=x.reloading,L=x.reloadError,C=R?.diagnostics??[],z=async N=>{r(N),m(null);{f(null);try{const I=await fetch(`${s}/api/operator/v1/pi/models-config`,{credentials:"include"}),D=await I.json();if(!I.ok)throw new Error(D.error?.message??"读取失败");f(D.data)}catch(I){m(I instanceof Error?I.message:String(I))}}},O=async N=>{S(!0),m(null);try{const I=await fetch(`${s}/api/operator/v1/pi/models-config`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":yc()},body:JSON.stringify(N)}),D=await I.json();if(!I.ok)throw new Error(D.error?.message??"模型配置保存失败");f(D.data)}catch(I){m(I instanceof Error?I.message:String(I))}finally{S(!1)}},F=async(N,I)=>{S(!0),m(null);try{const D=await fetch(`${s}/api/operator/v1/pi/models-config/test`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":yc()},body:JSON.stringify({provider:N,modelId:I})}),Z=await D.json();if(!D.ok)throw new Error(Z.error?.message??"模型测试失败");return Z.data?.available===!0}catch(D){return m(D instanceof Error?D.message:String(D)),!1}finally{S(!1)}},te=i==="models"?"Models":i==="skills"?"Skills":"Packages";return l.jsxs("div",{className:"oc-governance",children:[l.jsxs("div",{className:"oc-governance-links",children:[l.jsx("button",{type:"button",onClick:()=>{z("models")},children:"Models"}),l.jsx("button",{type:"button",className:i==="skills"?"is-active":"",onClick:()=>r("skills"),children:"Skills"}),l.jsx("button",{type:"button",className:i==="packages"?"is-active":"",onClick:()=>r("packages"),children:"Packages"})]}),i&&l.jsx("div",{className:"oc-resource-backdrop",onMouseDown:N=>{N.target===N.currentTarget&&r(null)},children:l.jsxs("section",{className:"oc-resource-panel",role:"dialog","aria-modal":"true","aria-label":te,children:[l.jsxs("header",{className:"oc-resource-panel-head",children:[l.jsxs("div",{className:"oc-resource-panel-head-copy",children:[l.jsx("strong",{children:te}),l.jsx("span",{className:"oc-resource-panel-meta",children:i==="models"?"models.json 管理(读写,经 mutation gate)":i==="skills"?"自动使用开关 · 当前 Pi session 实际加载的 Skills":"只读 · 当前 Pi session 实际解析的 Packages"})]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>r(null),children:"关闭"})]}),l.jsxs("div",{className:"oc-resource-panel-body",children:[C.length>0&&l.jsxs("div",{className:"oc-resource-diagnostics",children:[C.map((N,I)=>l.jsx("div",{className:`oc-resource-diagnostic${N.type==="error"?" is-error":""}`,role:N.type==="error"?"alert":void 0,children:l.jsxs("span",{children:[N.type,N.code?` ${N.code}`:"",":",N.message,N.path?`(${N.path})`:"",N.retryable?" · 可重试":""]})},I)),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{hs()},children:"重试"})]}),h&&l.jsx("p",{className:"oc-resource-error",children:h}),i==="models"&&l.jsx(Zv,{busy:v,data:u,onMutate:O,onTest:F}),i==="skills"&&l.jsx(Jv,{origin:s,sessionId:R?.sessionId,status:x.status,loadError:x.error,skills:R?.skills,hasSession:!!R?.sessionId,hasDiagnostics:C.length>0}),i==="packages"&&l.jsx(Pv,{status:x.status,loadError:x.error,packages:R?.packages,hasSession:!!R?.sessionId,hasDiagnostics:C.length>0})]}),l.jsxs("footer",{className:"oc-resource-panel-foot",children:[l.jsx("span",{className:"oc-resource-panel-meta",children:j?"正在重新加载会话…":L?`${L.code??"ERROR"}:${L.message}`:R?`revision ${R.revision} · ${R.loadedAt}`:"等待会话快照…"}),l.jsxs("div",{className:"oc-resource-panel-actions",children:[L&&l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{ms()},children:"重试"}),x.status==="error"&&l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{hs()},children:"重新读取快照"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{ms()},children:"重新加载会话"})]})]})]})})]})}function Zv({busy:s,data:i,onMutate:r,onTest:u}){const[f,h]=p.useState(""),[m,v]=p.useState(""),[S,x]=p.useState(""),[R,j]=p.useState(null),L=async C=>{C.preventDefault(),!(!i||!f.trim()||!m.trim())&&(await r({expectedRevision:i.revision,action:"upsert-model",provider:f.trim(),model:{id:m.trim(),...S.trim()?{name:S.trim()}:{}}}),v(""),x(""))};return i?l.jsxs("div",{className:"oc-models-config",children:[l.jsx("p",{className:"oc-resource-panel-meta",children:"Console 不读取或写入 API key;credential 请通过 Pi CLI 配置。"}),i.providers.length===0?l.jsx("p",{className:"oc-resource-empty",children:"models.json 中暂无 Provider(真实空态;用 Pi CLI 配置)。"}):null,i.providers.map(C=>l.jsxs("article",{className:"oc-model-provider",children:[l.jsxs("div",{className:"oc-model-provider-head",children:[l.jsx("strong",{children:C.name}),l.jsx("span",{children:C.credential.configured?"credential configured":"credential 未配置"})]}),C.models.map(z=>l.jsxs("div",{className:"oc-model-row",children:[l.jsx("span",{children:z.name?`${z.name} (${z.id})`:z.id}),l.jsxs("div",{className:"oc-model-row-actions",children:[l.jsx("button",{type:"button",disabled:s,onClick:()=>{u(C.name,z.id).then(O=>j(`${C.name}/${z.id}: ${O?"可用":"不可用"}`))},children:"测试"}),l.jsx("button",{type:"button",disabled:s,onClick:()=>{window.confirm(`确认删除模型 ${C.name}/${z.id}?`)&&r({expectedRevision:i.revision,action:"remove-model",provider:C.name,model:{id:z.id}})},children:"删除"})]})]},z.id)),l.jsx("button",{type:"button",className:"oc-model-provider-remove",disabled:s,onClick:()=>{window.confirm(`确认删除 Provider ${C.name}?`)&&r({expectedRevision:i.revision,action:"remove-provider",provider:C.name})},children:"删除 Provider"})]},C.name)),R&&l.jsx("p",{className:"oc-model-test-result",children:R}),l.jsxs("form",{className:"oc-model-form",onSubmit:C=>{L(C)},children:[l.jsx("strong",{children:"新增或更新模型"}),l.jsx("input",{required:!0,placeholder:"Provider",value:f,onChange:C=>h(C.target.value)}),l.jsx("input",{required:!0,placeholder:"Model ID",value:m,onChange:C=>v(C.target.value)}),l.jsx("input",{placeholder:"显示名称(可选)",value:S,onChange:C=>x(C.target.value)}),l.jsx("button",{type:"submit",disabled:s,children:s?"保存中…":"保存模型"})]})]}):l.jsx("p",{className:"oc-resource-empty",children:"正在读取模型配置…"})}function yh(s){return s.status==="loading"?l.jsx("p",{className:"oc-resource-empty",children:"会话快照加载中…"}):s.status==="error"?l.jsxs("div",{className:"oc-resource-error",role:"alert",children:[l.jsxs("span",{children:[s.loadError?.code?`${s.loadError.code}:`:"",s.loadError?.message??"会话快照读取失败"]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{hs()},children:"重试"})]}):s.hasSession?l.jsx("p",{className:"oc-resource-empty",children:s.emptyText}):l.jsx("p",{className:"oc-resource-empty",children:"当前没有活动会话;打开会话后显示真实资源清单(真实空态)。"})}function Jv(s){const i=s.skills??[],[r,u]=p.useState(null),[f,h]=p.useState(null),[m,v]=p.useState(null),[S,x]=p.useState({});if(s.status!=="ready"||!s.hasSession)return l.jsx(yh,{status:s.status,loadError:s.loadError,hasSession:s.hasSession,emptyText:"当前 session 未加载任何 Skills(真实空态)"});if(i.length===0&&!s.hasDiagnostics)return l.jsx("p",{className:"oc-resource-empty",children:"当前 session 未加载任何 Skills(真实空态,未伪造列表)。"});const R=new Map;for(const C of i){const z=C.scope||"unknown",O=R.get(z)??[];O.push(C),R.set(z,O)}const j=C=>Object.prototype.hasOwnProperty.call(S,C.resourceId)?S[C.resourceId]:C.autoInvocationEnabled,L=async(C,z)=>{if(!s.sessionId||!C.resourceId||r)return;j(C),h(null),v(null),u(C.resourceId),x(F=>({...F,[C.resourceId]:z}));const O=await Xv({origin:s.origin,sessionId:s.sessionId,resourceId:C.resourceId,autoInvocationEnabled:z,confirmationToken:yc()});if(u(null),!O.ok){x(F=>{const te={...F};return delete te[C.resourceId],te}),h(`${O.error.code?`${O.error.code}:`:""}${O.error.message}`);return}if(O.reloadApplied&&O.snapshot){vh({type:"load-success",sessionId:s.sessionId,snapshot:O.snapshot}),x(F=>{const te={...F};return delete te[C.resourceId],te}),v(null);return}!O.reloadApplied&&O.partialBusy&&v(`设置已保存;当前会话正忙(${O.partialBusy.code}),请在本轮结束后点击「重新加载会话」。${O.partialBusy.message}`)};return l.jsxs("div",{className:"oc-resource-lists",children:[f?l.jsx("p",{className:"oc-resource-error",role:"alert",children:f}):null,m?l.jsx("p",{className:"oc-skill-partial-notice",role:"status",children:m}):null,[...R.entries()].map(([C,z])=>l.jsxs("section",{className:"oc-resource-group",children:[l.jsxs("header",{className:"oc-resource-group-head",children:[l.jsx("strong",{children:C}),l.jsxs("span",{children:[z.length," 项"]})]}),l.jsx("ul",{className:"oc-resource-list",children:z.map(O=>{const F=j(O),te=Qv({name:O.name,autoInvocationEnabled:F}),N=r===O.resourceId;return l.jsxs("li",{className:`oc-resource-item${F?"":" is-auto-off"}`,children:[l.jsxs("div",{className:"oc-resource-item-head",children:[l.jsx("strong",{children:O.name}),l.jsx("span",{children:te.badge})]}),l.jsxs("label",{className:"oc-skill-auto-toggle",children:[l.jsx("input",{type:"checkbox",checked:F,disabled:N||!O.resourceId,"aria-label":`允许自动使用 ${O.name}`,onChange:I=>{L(O,I.target.checked)}}),l.jsx("span",{children:N?"保存中…":"允许自动使用"})]}),l.jsx("p",{className:"oc-skill-auto-help",children:te.help}),O.description?l.jsx("p",{children:O.description}):null,l.jsx("code",{children:O.path}),O.source?l.jsxs("span",{className:"oc-resource-panel-meta",children:["source: ",O.source]}):null,Array.isArray(O.diagnostics)&&O.diagnostics.length>0?l.jsx("span",{className:"oc-resource-diagnostic",children:O.diagnostics.join(";")}):null]},`${C}:${O.resourceId||O.path}`)})})]},C))]})}const Fv={extension:"Extensions",skill:"Skills",prompt:"Prompts",theme:"Themes"};function Wv(s){return Array.isArray(s.diagnostics)&&s.diagnostics.length>0?"error":s.enabled?s.version?"installed":"loaded":"disabled"}function Pv(s){const i=s.packages??[];return s.status!=="ready"||!s.hasSession?l.jsx(yh,{status:s.status,loadError:s.loadError,hasSession:s.hasSession,emptyText:"当前 session 未配置 Packages(真实空态)"}):i.length===0&&!s.hasDiagnostics?l.jsx("p",{className:"oc-resource-empty",children:"当前 session 未配置 Packages(真实空态,未伪造列表)。"}):l.jsx("div",{className:"oc-resource-lists",children:i.map(r=>{const u=Wv(r),f=new Map;for(const h of r.resolved??[]){const m=Fv[h.type]??h.type,v=f.get(m)??[];v.push(h),f.set(m,v)}return l.jsxs("article",{className:"oc-resource-item oc-package",children:[l.jsxs("div",{className:"oc-resource-item-head",children:[l.jsx("strong",{children:r.spec}),l.jsx("span",{className:`oc-package-status is-${u}`,children:u})]}),l.jsxs("p",{className:"oc-resource-panel-meta",children:[r.scope," · ",r.enabled?"loaded":"disabled"]}),r.packageName?l.jsxs("p",{className:"oc-package-meta",children:[l.jsx("span",{children:"package"}),l.jsx("code",{children:r.packageName})]}):null,r.version?l.jsxs("p",{className:"oc-package-meta",children:[l.jsx("span",{children:"installed"}),l.jsxs("code",{children:["v",r.version]})]}):null,r.configuredVersion?l.jsxs("p",{className:"oc-package-meta",children:[l.jsx("span",{children:"configured"}),l.jsx("code",{children:r.configuredVersion})]}):null,r.installedPath?l.jsxs("p",{className:"oc-package-meta",children:[l.jsx("span",{children:"installed path"}),l.jsx("code",{children:r.installedPath})]}):null,r.cwd?l.jsxs("p",{className:"oc-package-meta",children:[l.jsx("span",{children:"cwd"}),l.jsx("code",{children:r.cwd})]}):null,f.size>0?l.jsx("div",{className:"oc-package-resources",children:[...f.entries()].map(([h,m])=>l.jsxs("section",{className:"oc-package-group",children:[l.jsxs("header",{className:"oc-resource-group-head",children:[l.jsx("strong",{children:h}),l.jsxs("span",{children:[m.length," 项"]})]}),l.jsx("ul",{className:"oc-resource-sub-list",children:m.map((v,S)=>l.jsxs("li",{children:[l.jsx("span",{children:v.name||v.path}),l.jsxs("span",{className:"oc-resource-panel-meta",children:[v.scope,v.source?` · ${v.source}`:""]}),l.jsx("code",{children:v.path})]},`${h}:${S}`))})]},h))}):l.jsx("p",{className:"oc-resource-panel-meta",children:"未解析出扩展/技能/提示词/主题(真实空态)"}),Array.isArray(r.diagnostics)&&r.diagnostics.length>0?l.jsx("div",{className:"oc-package-diagnostics",children:r.diagnostics.map((h,m)=>l.jsx("span",{children:h},m))}):null]},`${r.scope}:${r.spec}`)})})}const Ii=10,bh="loop-console.operator-chat.sidebar-split.v1",Ta=45,Bi=28,qi=70,Gm=5,$m=10;function fs(s){return Number.isFinite(s)?Math.min(qi,Math.max(Bi,Math.round(s))):Ta}function ey(s){if(s==null||s==="")return null;const i=Number(s);if(!Number.isFinite(i))return null;const r=Math.round(i);return r<Bi||r>qi?null:r}function ty(s=xh()){if(!s)return Ta;try{return ey(s.getItem(bh))??Ta}catch{return Ta}}function Ym(s,i=xh()){const r=fs(s);if(!i)return r;try{i.setItem(bh,String(r))}catch{}return r}function ny(s,i,r=!1){const u=fs(s);switch(i){case"ArrowUp":return fs(u-(r?$m:Gm));case"ArrowDown":return fs(u+(r?$m:Gm));case"Home":return Bi;case"End":return qi;case"Enter":return Ta;default:return null}}function Km(s,i,r){if(!Number.isFinite(r)||r<=0)return Ta;const u=(s-i)/r;return fs(u*100)}function xh(){try{return typeof globalThis>"u"?null:globalThis.localStorage??null}catch{return null}}const Xm='a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])';function Sh(s){const{open:i,containerRef:r,triggerRef:u,onEscape:f}=s,h=p.useRef(null),m=p.useRef(!1);p.useEffect(()=>{if(i){if(!m.current){const v=document.activeElement;h.current=u?.current??(v instanceof HTMLElement?v:null);const S=r.current;S&&(S.querySelector(Xm)??S).focus?.(),m.current=!0}return()=>{if(!m.current)return;const v=u?.current??h.current;v&&document.contains(v)&&v.focus(),h.current=null,m.current=!1}}m.current=!1},[i,r,u]),p.useEffect(()=>{if(!i)return;const v=r.current;if(!v)return;const S=x=>{if(x.key==="Escape"){x.preventDefault(),f?.();return}if(x.key!=="Tab")return;const R=Array.from(v.querySelectorAll(Xm)).filter(z=>!z.hasAttribute("disabled")&&z.tabIndex!==-1);if(R.length===0){x.preventDefault(),v.focus?.();return}const j=R[0],L=R[R.length-1],C=document.activeElement;x.shiftKey?(C===j||!v.contains(C))&&(x.preventDefault(),L.focus()):(C===L||!v.contains(C))&&(x.preventDefault(),j.focus())};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[i,r,f])}function ay(s){return[...s].sort((i,r)=>i.kind!==r.kind?i.kind==="directory"?-1:1:i.name.localeCompare(r.name,void 0,{sensitivity:"base"}))}function sy({open:s}){return l.jsx("svg",{className:`oc-tree-chevron${s?" is-open":""}`,width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:l.jsx("path",{d:"M4.2 2.4 7.8 6 4.2 9.6",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function ly({open:s}){return s?l.jsxs("svg",{className:"oc-tree-glyph is-folder-open",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:[l.jsx("path",{d:"M1.5 4.2h3.1l1.1 1.2H12a.8.8 0 0 1 .8.8v5a.8.8 0 0 1-.8.8H2a.8.8 0 0 1-.8-.8V5a.8.8 0 0 1 .8-.8Z",fill:"currentColor",opacity:"0.88"}),l.jsx("path",{d:"M1.8 5.8h10.4l-.7 5.2H2.5L1.8 5.8Z",fill:"currentColor",opacity:"0.55"})]}):l.jsx("svg",{className:"oc-tree-glyph is-folder",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:l.jsx("path",{d:"M1.5 3.8h3.2l1 1.1H12a.8.8 0 0 1 .8.8v5.5a.8.8 0 0 1-.8.8H2a.8.8 0 0 1-.8-.8V4.6a.8.8 0 0 1 .8-.8Z",fill:"currentColor",opacity:"0.78"})})}function iy(){return l.jsxs("svg",{className:"oc-tree-glyph is-file",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:[l.jsx("path",{d:"M3.2 1.6h5.1L10.8 4v8.4a.8.8 0 0 1-.8.8H3.2a.8.8 0 0 1-.8-.8V2.4a.8.8 0 0 1 .8-.8Z",fill:"currentColor",opacity:"0.55"}),l.jsx("path",{d:"M8.3 1.7v2.5h2.4",fill:"none",stroke:"currentColor",strokeWidth:"1.1",strokeLinejoin:"round",opacity:"0.75"})]})}function ry(){return l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:l.jsx("path",{d:"M3 3.5h10v2H3v-2Zm0 3.5h10v2H3V7Zm0 3.5h7V13H3v-2Z",fill:"currentColor"})})}function oy(){return l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:l.jsx("path",{d:"M8 3v10M3 8h10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})}function cy(){return l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:l.jsx("path",{d:"M8 2.2 13 4.5v3.2c0 3.1-2.1 5.5-5 6.3-2.9-.8-5-3.2-5-6.3V4.5L8 2.2Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})})}function uy(s){const i=s.sessions.slice(0,Ii),[r,u]=p.useState(()=>ty()),[f,h]=p.useState(!1),m=p.useRef(null),v=p.useRef(null),S=s.layoutMode==="comfortable"&&s.open,x=s.layoutMode==="compact",R=s.drawerOpen&&(s.layoutMode==="compact"||s.layoutMode==="narrow");Sh({open:R,containerRef:v,triggerRef:s.drawerTriggerRef,onEscape:s.onCloseDrawer});const j=p.useCallback((N,I)=>{const D=fs(N);u(D),I&&Ym(D)},[]),L=p.useCallback(N=>{const I=ny(r,N.key,N.shiftKey);I!=null&&(N.preventDefault(),j(I,!0))},[j,r]),C=p.useCallback(N=>{N.preventDefault(),N.currentTarget.setPointerCapture(N.pointerId),h(!0);const D=m.current;if(!D)return;const Z=D.getBoundingClientRect();j(Km(N.clientY,Z.top,Z.height),!1)},[j]),z=p.useCallback(N=>{if(!N.currentTarget.hasPointerCapture(N.pointerId))return;const I=m.current;if(!I)return;const D=I.getBoundingClientRect();j(Km(N.clientY,D.top,D.height),!1)},[j]),O=p.useCallback(N=>{N.currentTarget.hasPointerCapture(N.pointerId)&&N.currentTarget.releasePointerCapture(N.pointerId),h(!1),Ym(r)},[r]),F=p.useCallback(()=>{j(Ta,!0)},[j]),te=l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"oc-sidebar-split",ref:m,style:{"--oc-session-share":`${r}%`,"--oc-repo-share":`${100-r}%`},"data-dragging":f?"true":"false",children:[l.jsxs("section",{className:"oc-sidebar-section oc-sessions",children:[l.jsxs("header",{children:[l.jsx("strong",{children:"会话"}),l.jsxs("div",{className:"oc-sidebar-header-actions",children:[l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:s.onCreate,disabled:s.creatingSession,"aria-busy":s.creatingSession||void 0,children:s.creatingSession?"创建中…":"新建"}),s.layoutMode==="comfortable"?l.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:s.onToggleOpen,"aria-expanded":!0,"aria-label":"收起侧栏",title:"收起侧栏",children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:l.jsx("path",{d:"M8.8 2.6 5.2 7l3.6 4.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}):l.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:s.onCloseDrawer,"aria-label":"关闭侧栏抽屉",title:"关闭",children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:l.jsx("path",{d:"M3.5 3.5 10.5 10.5M10.5 3.5 3.5 10.5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})})]})]}),l.jsxs("div",{className:"oc-session-scroll",children:[["active","archived"].map(N=>{const I=i.filter(D=>D.state===N);return I.length?l.jsxs("div",{className:"oc-session-group",children:[l.jsx("small",{children:N==="active"?"进行中":"已归档"}),I.map(D=>l.jsxs("div",{className:`oc-session-item${s.activeSessionId===D.sessionId?" is-active":""}`,children:[l.jsxs("button",{type:"button",className:"oc-session-main",onClick:()=>s.onActivate(D.sessionId),children:[l.jsxs("strong",{children:[D.title||D.displayTitle||"未命名对话",D.activeTurnId?" · 运行中":""]}),l.jsx("span",{children:new Date(D.updatedAt).toLocaleString()})]}),l.jsxs("div",{className:"oc-session-actions",children:[l.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>{const Z=window.prompt("会话名称",D.title??"");Z!==null&&s.onRename(D.sessionId,Z)},children:"重命名"}),l.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>s.onSetState(D.sessionId,N==="active"?"archived":"active"),children:N==="active"?"归档":"恢复"}),l.jsx("button",{type:"button",className:"oc-session-menu oc-session-delete",onClick:()=>s.onDelete(D.sessionId),children:"删除"})]})]},D.sessionId))]},N):null}),i.length===0?l.jsx("p",{className:"oc-tree-empty",children:"暂无会话,点击上方新建。"}):null]})]}),l.jsx("div",{className:"oc-sidebar-separator",role:"separator","aria-orientation":"horizontal","aria-valuemin":Bi,"aria-valuemax":qi,"aria-valuenow":r,"aria-label":"调整会话与仓库高度比例",tabIndex:0,onKeyDown:L,onPointerDown:C,onPointerMove:z,onPointerUp:O,onPointerCancel:O,onDoubleClick:F}),l.jsxs("section",{className:"oc-sidebar-section oc-explorer",children:[l.jsxs("header",{children:[l.jsx("strong",{children:"仓库"}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:s.onRefreshTree,children:"刷新"})]}),l.jsx("p",{className:"oc-explorer-hint",children:"单击插入 @路径 · 双击预览"}),s.treeError&&l.jsx("p",{className:"oc-sidebar-error",children:s.treeError}),l.jsx("div",{className:"oc-tree-scroll",children:l.jsx(jh,{entries:s.tree[""]??[],tree:s.tree,expanded:s.expanded,depth:0,onToggle:s.onToggleDir,onInsert:s.onInsert,onPreview:s.onPreview})})]})]}),l.jsx(Vv,{origin:s.origin})]});return l.jsxs(l.Fragment,{children:[x?l.jsxs("nav",{className:"oc-sidebar-rail","aria-label":"紧凑侧栏",children:[l.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"打开会话与仓库",title:"会话与仓库","aria-expanded":R,onClick:()=>R?s.onCloseDrawer():s.onOpenDrawer(),children:l.jsx(ry,{})}),l.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":s.creatingSession?"创建会话中":"新建会话",title:s.creatingSession?"创建中…":"新建会话",onClick:s.onCreate,disabled:s.creatingSession,"aria-busy":s.creatingSession||void 0,children:l.jsx(oy,{})}),l.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"治理入口",title:"治理",onClick:()=>R?s.onCloseDrawer():s.onOpenDrawer(),children:l.jsx(cy,{})})]}):null,s.layoutMode==="comfortable"?l.jsx("aside",{className:`oc-sidebar${S?"":" is-collapsed"}`,"aria-label":"会话与仓库",children:S?te:l.jsx("button",{type:"button",className:"oc-sidebar-toggle is-collapsed",onClick:s.onToggleOpen,"aria-expanded":!1,"aria-label":"展开侧栏",title:"展开侧栏",children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:l.jsx("path",{d:"M5.2 2.6 8.8 7 5.2 11.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})})}):null,R?l.jsxs(l.Fragment,{children:[l.jsx("button",{type:"button",className:"oc-overlay-backdrop","aria-label":"关闭侧栏遮罩",onClick:s.onCloseDrawer}),l.jsx("aside",{ref:v,className:"oc-sidebar oc-sidebar-drawer","aria-label":"会话与仓库抽屉",role:"dialog","aria-modal":"true",tabIndex:-1,children:te})]}):null]})}function jh(s){const i=p.useMemo(()=>ay(s.entries),[s.entries]);return i.length?l.jsx("ul",{className:"oc-tree",role:s.depth===0?"tree":"group",children:i.map(r=>{const u=r.name.startsWith(".");if(r.kind==="directory"){const f=s.expanded.has(r.path);return l.jsxs("li",{className:`oc-tree-node is-dir${f?" is-open":""}${u?" is-dot":""}`,role:"treeitem","aria-expanded":f,children:[l.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-dir",onClick:()=>s.onToggle(r.path),style:{paddingLeft:`${8+s.depth*12}px`},children:[l.jsx(sy,{open:f}),l.jsx(ly,{open:f}),l.jsx("span",{className:"oc-tree-label",children:r.name})]}),f?l.jsx("div",{className:"oc-tree-children",style:{"--oc-tree-guide":`${14+s.depth*12}px`},children:l.jsx(jh,{entries:s.tree[r.path]??[],tree:s.tree,expanded:s.expanded,depth:s.depth+1,onToggle:s.onToggle,onInsert:s.onInsert,onPreview:s.onPreview})}):null]},r.path)}return l.jsx("li",{className:`oc-tree-node is-file${u?" is-dot":""}`,role:"treeitem",children:l.jsx(dy,{entry:r,depth:s.depth,onInsert:s.onInsert,onPreview:s.onPreview})},r.path)})}):l.jsx("p",{className:"oc-tree-empty",children:"此目录为空或没有可安全浏览的文件。"})}function dy(s){const i=p.useRef(null);return p.useEffect(()=>()=>{i.current!==null&&window.clearTimeout(i.current)},[]),l.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-file",style:{paddingLeft:`${8+s.depth*12}px`},title:"单击插入引用;双击预览",onClick:()=>{i.current!==null&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>{s.onInsert(s.entry.path),i.current=null},220)},onDoubleClick:()=>{i.current!==null&&window.clearTimeout(i.current),i.current=null,s.onPreview(s.entry.path)},children:[l.jsx("span",{className:"oc-tree-chevron-spacer","aria-hidden":"true"}),l.jsx(iy,{}),l.jsx("span",{className:"oc-tree-label",children:s.entry.name})]})}function fy(s){const i=s.previews.find(r=>r.path===s.activePath);return!i&&!s.loading?null:l.jsxs(l.Fragment,{children:[i&&l.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${i.path}`,children:[l.jsxs("header",{children:[l.jsx("div",{className:"oc-file-tabs",role:"tablist","aria-label":"文件预览 Tabs",children:s.previews.map(r=>l.jsx("button",{type:"button",role:"tab","aria-selected":r.path===i.path,className:r.path===i.path?"is-active":"",onClick:()=>s.onActivate(r.path),children:r.path},r.path))}),l.jsxs("span",{children:[i.bytes," bytes",i.truncated?" · 已截断":""]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>s.onClose(i.path),children:"关闭预览"})]}),l.jsx("pre",{children:l.jsx("code",{children:i.content})})]}),s.loading&&l.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const Nc=[{command:"/task",label:"Task context",description:"查看当前任务、Draft 与 assessment",action:"focus-panel:task"},{command:"/contract",label:"Contract",description:"查看 contract diff 与 apply gate",action:"focus-panel:contract"},{command:"/dag",label:"DAG",description:"查看 DAG spine、确认与运行状态",action:"focus-panel:dag"},{command:"/interview",label:"Interview",description:"打开 Requirement Interview",action:"focus:interview"},{command:"/reload",label:"Reload session",description:"重新加载当前 Pi 会话的设置、扩展、技能、提示词、主题与上下文文件(不产生消息)",action:"reload"},{command:"/help",label:"Shortcuts",description:"显示可用 shortcut",action:"show-help"}];function my(s){const i=s.trim().split(/\s+/,1)[0]?.toLowerCase();if(!i?.startsWith("/"))return;const r=Nc.find(u=>u.command===i);return r?{command:r.command,action:r.action}:{command:i,action:"unknown"}}const Qm={comfortableMin:620,compactMin:480};function hy(s){return!Number.isFinite(s)||s<0?"extra-compact":s>=Qm.comfortableMin?"comfortable":s>=Qm.compactMin?"compact":"extra-compact"}function py(s){return`is-landing-${s}`}const gy=[{label:"新建任务",hint:"从需求描述导入并创建任务",prompt:"帮我新建一个任务:我描述需求,你引导我用 PRD/需求描述导入(bootstrapFromPrd),并给出建议的 taskKind(如后端研发 backend-feature / 后端测试 backend-test)。"},{label:"查看任务状态",hint:"列出任务与就绪/阻塞状态",prompt:"列出当前所有 task 及其状态,重点说明哪些是 Ready 可以推进、哪些 Blocked 及阻塞原因。"},{label:"诊断 DAG 运行",hint:"对失败运行跑 Doctor",prompt:"帮我诊断最近失败或异常的 DAG 运行:先列出最近的 DAG 运行,对有问题的运行执行 doctor,总结根因和可执行的恢复方案。"},{label:"恢复或重跑任务",hint:"默认从节点续跑,勿无故新开 task",prompt:"我要恢复失败或卡住的 DAG。请先 dagReport/doctor 看 primaryFailure.nodeId 与 primaryRecovery;默认用 dagRerunPlan→dagRerun 从失败/安全上游节点续跑(先 plan 再 Human Gate),不要新建 task-id。仅当 plan 不合格(writer/decision/fingerprint)或契约/源真变时才 standaloneTaskRerun;paused 走 approve/resume;Worker-owned 用 workerTaskRetry。确定后直接帮我发起。"}];function Rh(s){const i=s.readiness==="setup-required",r=!!s.disabled||i,u=s.density??"comfortable",f=s.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",h=s.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return l.jsxs("div",{className:`oc-empty ${py(u)}`,role:"status","data-landing-density":u,children:[l.jsxs("div",{className:"oc-empty-hero",children:[l.jsx("div",{className:"oc-empty-icon","aria-hidden":"true",children:"π"}),l.jsxs("div",{className:"oc-empty-copy",children:[l.jsx("h3",{children:f}),l.jsx("p",{children:h})]})]}),l.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:gy.map(m=>l.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>s.onSuggest(m.prompt),disabled:r,children:[l.jsx("strong",{children:m.label}),l.jsx("span",{children:u==="extra-compact"?m.hint.replace(/[,,].*$/,""):m.hint})]},m.label))}),l.jsxs("ul",{className:"oc-empty-tips",children:[l.jsxs("li",{children:[l.jsx("kbd",{children:"@"}),l.jsx("span",{children:"引用仓库文件"})]}),l.jsxs("li",{children:[l.jsx("kbd",{children:"/"}),l.jsx("span",{children:"快捷命令"})]}),l.jsxs("li",{children:[l.jsx("kbd",{children:"Enter"}),l.jsx("span",{children:"发送 · Shift+Enter 换行"})]})]}),s.mode==="no-session"&&s.onCreateSession?l.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:s.onCreateSession,disabled:r,"aria-busy":s.disabled||void 0,children:i?"需先完成 Pi setup":s.disabled?"创建中…":"新建空白对话"}):null]})}function vy(s){const{artifact:i}=s;return l.jsxs("section",{className:"oc-artifact-card","aria-label":`${i.kind} artifact`,children:[l.jsxs("header",{children:[l.jsx("strong",{children:i.title??i.artifactId}),l.jsx("span",{children:i.kind})]}),i.summary&&l.jsx("p",{children:i.summary}),i.reportText&&l.jsx("pre",{children:i.reportText}),i.htmlPreview&&l.jsx("iframe",{title:`${i.title??i.artifactId} preview`,sandbox:"",srcDoc:i.htmlPreview}),i.inspectHref&&l.jsx("a",{href:i.inspectHref,children:"查看详情"})]})}function yy({card:s,origin:i,sessionId:r}){const[u,f]=p.useState(!1),[h,m]=p.useState(),v=async()=>{f(!0),m(void 0);try{const j=s.gateType==="dag-run"?s.state==="prepared"?"dag-confirm":"dag-run":s.gateType==="mutation"?"mutation-apply":"contract-apply",L=s.gateType==="dag-run"?{confirmationId:s.confirmationId,...s.state==="prepared"?{humanGateToken:s.humanGateToken}:{}}:{receiptId:s.receiptId,humanGateToken:s.humanGateToken},C=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(r)}/human-gate/${j}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},body:JSON.stringify(L)}),z=await C.json();if(!C.ok)throw new Error(z.error?.message??`HTTP ${C.status}`)}catch(j){m(j instanceof Error?j.message:String(j))}finally{f(!1)}},S=s.state==="prepared"||s.gateType==="dag-run"&&s.state==="confirmed",x=s.gateType==="contract-apply"?"Contract apply":s.gateType==="mutation"?"Mutation":"DAG run",R=s.gateType==="contract-apply"?"Apply":s.gateType==="mutation"?"Execute":s.state==="prepared"?"Confirm":"Run";return l.jsxs("section",{className:`oc-human-gate-card is-${s.state}`,"aria-label":`Human gate ${s.cardId}`,children:[l.jsxs("header",{children:[l.jsxs("div",{children:[l.jsx("small",{children:"HumanGateCard · 仅人类可确认"}),l.jsx("strong",{children:x})]}),l.jsx("span",{children:s.state})]}),s.contractDiffSummary&&l.jsx("p",{children:s.contractDiffSummary}),s.displayOnlyChallenges&&l.jsxs("div",{className:"oc-human-gate-challenges",children:[l.jsx("b",{children:"Challenge(仅展示,不是确认信号)"}),l.jsx("ul",{children:s.displayOnlyChallenges.map(j=>l.jsx("li",{children:j},j))})]}),s.dagSpine&&s.dagSpine.length>0&&l.jsxs("div",{children:[l.jsx("b",{children:"DAG spine"}),l.jsx("ol",{children:s.dagSpine.map(j=>l.jsx("li",{children:l.jsx("code",{children:j})},j))})]}),l.jsxs("footer",{children:[l.jsx("a",{href:s.inspectHref,children:"Inspect"}),l.jsx("button",{className:"btn btn-primary",type:"button",disabled:!S||u,onClick:()=>{v()},children:u?"提交中…":R})]}),h&&l.jsx("div",{className:"oc-human-gate-error",children:h})]})}const tn="loop-console.operator-chat.active-session.v1",by="loop-console.operator-chat.default-landing.v1";function Di(s){const i=s?.trim().toLowerCase();if(i==="chat")return"chat";if(i==="tasks")return"tasks"}function Th(s){const i=s?.trim().toLowerCase();if(i==="chat"||i==="tasks"||i==="recovery"||i==="night"||i==="models"||i==="settings")return i}function Nh(s){const i=r=>s.get(r)?.trim()||void 0;return{...i("taskId")?{taskId:i("taskId")}:{},...i("dagRunId")?{dagRunId:i("dagRunId")}:{},...i("fromNodeId")?{fromNodeId:i("fromNodeId")}:{},...i("featureId")?{featureId:i("featureId")}:{}}}function Ch(s){const i=String(s??"").replace(/^#/,"");if(!i)return null;const r=i.indexOf("?"),u=r>=0?i.slice(0,r):i,f=r>=0?i.slice(r+1):"",h=(u||"/").split("?")[0]||"/";if(h==="/"||h==="")return null;const m=h.replace(/^\//,"").split("/")[0],v=Th(m);return v?{workspace:v,...Nh(new URLSearchParams(f))}:null}function xy(s){const i=new URLSearchParams(s.search),r=s.hash.startsWith("#")?s.hash.slice(1):s.hash,u=new URLSearchParams(r),f=Th(i.get("workspace")??i.get("landing")??u.get("workspace"));return f?{workspace:f,...Nh(i)}:null}function Sy(s){if(!s)return;const i=Ch(s.hash);if(i)return i.workspace;const r=new URLSearchParams(s.search),u=Di(r.get("landing")??r.get("workspace"));if(u)return u;const f=s.hash.startsWith("#")?s.hash.slice(1):s.hash;return Di(new URLSearchParams(f).get("workspace"))}function Eh(s){return Sy(s.location)??Di(s.storage?.getItem(by))??Di(s.env)??"tasks"}function kh(s,i={}){const r=new URLSearchParams;for(const[h,m]of Object.entries(i))m?.trim()&&r.set(h,m.trim());const u=r.toString(),f=`/${s}`;return u?`${f}?${u}`:f}function jy(s,i={}){return`#${kh(s,i)}`}function Ry(s){return Ch(s.hash)??xy(s)}function Ty(s){const{operation:i}=s,r=i.inspectHref.startsWith("/")?`${s.origin}${i.inspectHref}`:i.inspectHref,u=i.state==="failed"||i.state==="timed-out"||i.state==="needs-reconcile",f=(m,v)=>{s.onNavigateWorkspace?s.onNavigateWorkspace(m,v):window.location.assign(jy(m,v))},h=[i.taskId?["task",i.taskId]:void 0,i.dagRunId?["dag",i.dagRunId]:void 0,i.featureId?["feature",i.featureId]:void 0,i.workerRunId?["worker",i.workerRunId]:void 0].filter(m=>!!m);return l.jsxs("section",{className:`oc-operation-card is-${i.state}`,"aria-label":`Operation ${i.operationId}`,children:[l.jsxs("header",{className:"oc-operation-head",children:[l.jsxs("div",{children:[l.jsx("div",{className:"oc-operation-kicker",children:"Operation"}),l.jsx("strong",{children:i.action})]}),l.jsx("span",{className:`oc-operation-state is-${i.state}`,children:i.state})]}),l.jsx("div",{className:"oc-operation-id",children:l.jsx("code",{children:i.operationId})}),h.length>0&&l.jsx("div",{className:"oc-operation-identities",children:h.map(([m,v])=>l.jsxs("span",{children:[l.jsx("b",{children:m})," ",v]},`${m}:${v}`))}),i.controller&&l.jsxs("div",{className:"oc-operation-controller",children:["controller: ",i.controller]}),i.summaryPreview&&l.jsx("pre",{className:"oc-operation-preview",children:i.summaryPreview}),i.stderrPreview&&l.jsx("pre",{className:"oc-operation-preview is-error",children:i.stderrPreview}),i.stdoutPreview&&l.jsx("pre",{className:"oc-operation-preview",children:i.stdoutPreview}),l.jsxs("footer",{className:"oc-operation-actions",children:[l.jsx("a",{className:"btn btn-ghost",href:r,target:"_blank",rel:"noreferrer",children:"Inspect"}),i.taskId&&l.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("tasks",{taskId:i.taskId}),children:"打开 Task Ops"}),i.dagRunId&&l.jsx("a",{className:"btn btn-ghost",href:`${s.origin}/inspect/#/dag/${encodeURIComponent(i.dagRunId)}`,target:"_blank",rel:"noreferrer",children:"打开 Run / Inspect"}),u&&(i.dagRunId||i.taskId)&&l.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("recovery",{taskId:i.taskId,dagRunId:i.dagRunId}),children:"打开 Recovery"}),l.jsx("time",{dateTime:i.updatedAt,children:new Date(i.updatedAt).toLocaleString()})]})]})}function Ny(s){const{interview:i,interviewAnswer:r,onAnswerChange:u,onAnswer:f}=s;return l.jsxs("section",{className:"oc-draft-card","aria-label":"Requirement Interview",children:[l.jsxs("header",{children:[l.jsx("strong",{children:"Requirement Interview"}),l.jsx("span",{children:i.state})]}),i.question&&l.jsxs("div",{className:"oc-interview-bubble",children:[l.jsx("strong",{children:i.question.text}),l.jsxs("p",{children:["建议:",i.question.recommendation]}),l.jsx("textarea",{value:r,onChange:h=>u(h.target.value),placeholder:"输入答案"}),l.jsxs("div",{children:[l.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("override"),disabled:!r.trim(),children:"提交答案"}),l.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("accept-recommendation"),children:"接受建议"})]})]}),i.draft&&l.jsxs("details",{open:!0,children:[l.jsxs("summary",{children:["TaskContractDraftV1 · ",i.draftSha256?.slice(0,12)]}),l.jsx("pre",{children:JSON.stringify(i.draft,null,2)})]}),i.assessment&&l.jsxs("div",{className:`oc-assessment${i.assessment.fresh?" is-fresh":""}`,children:[l.jsxs("strong",{children:["完整性:",i.assessment.outcome]}),(i.assessment.missingFields??[]).length>0&&l.jsxs("p",{children:["缺失:",i.assessment.missingFields?.join("、")]})]}),i.taskKindRecommendation&&l.jsxs("div",{className:"oc-task-kind-card",children:[l.jsx("span",{children:"taskKind 建议"}),l.jsx("strong",{children:i.taskKindRecommendation}),l.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>s.onConfirmTaskKind(),children:"由我确认"}),l.jsx("small",{children:"模型不能代替人类确认。"})]}),i.confirmedTaskKind&&l.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",l.jsx("strong",{children:i.confirmedTaskKind})]})]})}function Cy(s){const i=[],r=s.split(`
11
+ `);let u=0,f=[];const h=()=>{const m=f.join(`
12
+ `).trimEnd();m&&i.push({type:"text",text:m}),f=[]};for(;u<r.length;){const m=r[u],v=m.match(/^\s*(`{3,}|~{3,})\s*([^\s`~]*)\s*$/);if(v){h();const S=v[1][0],x=(v[2]??"").trim(),R=[];for(u+=1;u<r.length;){const j=r[u];if(j.trim()===S.repeat(v[1].length)){u+=1;break}if(new RegExp(`^\\s*${S}{3,}`).test(j)){u+=1;break}R.push(j),u+=1}i.push({type:"code",lang:x,text:R.join(`
13
+ `)});continue}f.push(m),u+=1}return h(),i}const Ey=/(`[^`]+`)|(\*\*[^*]+\*\*)|(\*[^*]+\*|_[^_]+_)|(~~[^~]+~~)|(\[[^\]]+\]\([^)\s]+\))/;function ul(s,i){const r=[];let u=s,f=0;for(;u.length>0;){const h=Ey.exec(u);if(!h||h.index===void 0){r.push(u);break}h.index>0&&r.push(u.slice(0,h.index));const m=h[0],v=`${i}-i${f++}`;if(m.startsWith("`"))r.push(l.jsx("code",{children:m.slice(1,-1)},v));else if(m.startsWith("**"))r.push(l.jsx("strong",{children:m.slice(2,-2)},v));else if(m.startsWith("*")||m.startsWith("_"))r.push(l.jsx("em",{children:m.slice(1,-1)},v));else if(m.startsWith("~~"))r.push(l.jsx("s",{children:m.slice(2,-2)},v));else if(m.startsWith("[")){const S=m.match(/^\[([^\]]+)\]\(([^)\s]+)\)$/);S?r.push(l.jsx("a",{href:S[2],target:"_blank",rel:"noreferrer noopener",children:S[1]},v)):r.push(m)}u=u.slice(h.index+m.length)}return r}function ky({lang:s,text:i}){const[r,u]=p.useState(!1),f=()=>{navigator.clipboard?.writeText(i).then(()=>{u(!0),window.setTimeout(()=>u(!1),1600)},()=>{})};return l.jsxs("div",{className:"oc-codeblock",children:[l.jsxs("div",{className:"oc-codeblock-head",children:[l.jsx("span",{className:"oc-codeblock-lang",children:s||"text"}),l.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:f,children:r?"已复制":"复制"})]}),l.jsx("pre",{children:l.jsx("code",{children:i})})]})}function wy(s,i){const r=[],u=s.split(`
14
+ `);let f=0,h=0;for(;h<u.length;){const v=u[h].trim();if(v===""){h+=1;continue}const S=v.match(/^(#{1,4})\s+(.*)$/);if(S){const j=`h${S[1].length}`;r.push(l.jsx(j,{children:ul(S[2],`${i}-h${f}`)},`${i}-h${f++}`)),h+=1;continue}if(/^(---|\*\*\*|___)\s*$/.test(v)){r.push(l.jsx("hr",{},`${i}-hr${f++}`)),h+=1;continue}if(v.startsWith(">")){const R=[];for(;h<u.length&&u[h].trim().startsWith(">");)R.push(u[h].trim().replace(/^>\s?/,"")),h+=1;r.push(l.jsx("blockquote",{children:R.map((j,L)=>l.jsx("p",{children:ul(j,`${i}-bq${f}-${L}`)},L))},`${i}-bq${f++}`));continue}if(/^[-*+]\s+/.test(v)){const R=[];for(;h<u.length&&/^\s*[-*+]\s+/.test(u[h]);)R.push(u[h].trim().replace(/^[-*+]\s+/,"")),h+=1;r.push(l.jsx("ul",{children:R.map((j,L)=>l.jsx("li",{children:ul(j,`${i}-ul${f}-${L}`)},L))},`${i}-ul${f++}`));continue}if(/^\d+\.\s+/.test(v)){const R=[];for(;h<u.length&&/^\s*\d+\.\s+/.test(u[h]);)R.push(u[h].trim().replace(/^\d+\.\s+/,"")),h+=1;r.push(l.jsx("ol",{children:R.map((j,L)=>l.jsx("li",{children:ul(j,`${i}-ol${f}-${L}`)},L))},`${i}-ol${f++}`));continue}const x=[];for(;h<u.length&&u[h].trim()!==""&&!/^(#{1,4})\s+/.test(u[h].trim())&&!/^(---|\*\*\*|___)\s*$/.test(u[h].trim())&&!u[h].trim().startsWith(">")&&!/^[-*+]\s+/.test(u[h].trim())&&!/^\d+\.\s+/.test(u[h].trim());)x.push(u[h].trim()),h+=1;r.push(l.jsx("p",{children:ul(x.join(" "),`${i}-p${f}`)},`${i}-p${f++}`))}return r}function Ay({text:s}){const i=Cy(s);return l.jsx("div",{className:"oc-md",children:i.map((r,u)=>r.type==="code"?l.jsx(ky,{lang:r.lang,text:r.text},`cb-${u}`):l.jsx("div",{children:wy(r.text,`tx-${u}`)},`tx-${u}`))})}function Iy(){return l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[l.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),l.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function Dy(){return l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l.jsx("polyline",{points:"20 6 9 17 4 12"})})}function Oy(){return l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[l.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),l.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})}function My(){return l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:l.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}function wh(){return l.jsx("svg",{className:"oc-tool-chevron",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l.jsx("polyline",{points:"4 2.5 7.5 6 4 9.5"})})}function _y(){return l.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})})}function Ah(s){const[i,r]=p.useState(!1),u=()=>{navigator.clipboard?.writeText(s.text).then(()=>{r(!0),window.setTimeout(()=>r(!1),1600)},()=>{})};return l.jsx("button",{type:"button",className:`oc-message-copy${i?" is-copied":""}`,"aria-label":i?"已复制":"复制消息",title:i?"已复制":"复制",onClick:u,children:i?l.jsx(Dy,{}):l.jsx(Iy,{})})}function Vm(s){const{message:i,streaming:r,activeAssistantId:u}=s,f=i.role==="user",h=f?"你":"π",m=f?"你":"助手",v=!f&&r&&u!==null&&i.id===u,S=v&&i.text.length===0,x=i.text.trim().length>0;return l.jsxs("div",{className:`oc-row ${f?"is-user":"is-assistant"}`,children:[l.jsxs("div",{className:"oc-meta",children:[l.jsx("span",{className:`oc-avatar ${f?"oc-avatar-user":"oc-avatar-assistant"}`,"aria-hidden":"true",children:h}),l.jsx("span",{className:"oc-role",children:m}),l.jsx("span",{className:"oc-time",children:fh(i.createdAt)}),x&&l.jsx(Ah,{text:i.text})]}),l.jsxs("div",{className:`oc-bubble ${f?"oc-bubble-user":"oc-bubble-assistant"}`,children:[x?f?l.jsx("div",{style:{whiteSpace:"pre-wrap"},children:i.text}):l.jsx(Ay,{text:i.text}):S?l.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,v&&x&&l.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function zy(s){const i=[],r=[];let u,f=[];const h=m=>{for(const v of f)v.assistantMessageId||(v.assistantMessageId=m),v.turnId||(v.turnId=u);f=[]};for(const m of s){const v=Date.parse(m.at)||Date.now();if(m.role==="user"){u=`restored-${m.id}`,f=[],i.push({id:m.id,role:"user",text:m.text,createdAt:v});continue}if(m.role==="assistant"){u||(u=`restored-${m.id}`),i.push({id:m.id,role:"assistant",text:m.text,createdAt:v}),h(m.id);continue}if(m.role==="tool"){u||(u=`restored-tool-${m.id}`);const S={id:m.toolCallId||m.id,toolName:m.toolName||"tool",status:m.isError===!0?"error":"ok",resultText:m.text,result:m.text,createdAt:v,finishedAt:v,turnId:u};r.push(S),f.push(S)}}return{messages:i,toolCalls:r}}function Ly(s){const i=s.messages.filter(v=>v.role==="user"||v.role==="assistant"),r=[];let u=null;const f=v=>{const S={key:v,assistants:[],tools:[],live:!1};return r.push(S),S};for(const v of i){if(v.role==="user"){u=f(`user-${v.id}`),u.user=v;continue}u||(u=f(`assistant-${v.id}`)),u.assistants.push(v)}r.length===0&&s.toolCalls.length>0&&r.push({key:"orphan-tools",assistants:[],tools:[],live:!1});const h=new Set,m=new Map;for(const v of r)for(const S of v.assistants)m.set(S.id,v);for(const v of s.toolCalls)if(v.assistantMessageId){const S=m.get(v.assistantMessageId);if(S){S.tools.push(v),h.add(v.id);continue}}for(const v of s.toolCalls)if(!h.has(v.id)&&v.turnId){const S=r.find(R=>R.tools.some(j=>j.turnId===v.turnId)||R.key===`turn-${v.turnId}`||R.user&&`restored-${R.user.id}`===v.turnId);if(S){S.tools.push(v),h.add(v.id);continue}const x=r.find(R=>v.turnId===`restored-${R.user?.id}`||R.assistants.some(j=>v.turnId===`restored-${j.id}`));if(x){x.tools.push(v),h.add(v.id);continue}}for(const v of s.toolCalls){if(h.has(v.id))continue;const S=r.find((x,R)=>{const j=x.user?.createdAt??x.assistants[0]?.createdAt??0,C=r[R+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return v.createdAt>=j&&v.createdAt<C});S?(S.tools.push(v),h.add(v.id)):r.length>0&&(r[r.length-1].tools.push(v),h.add(v.id))}for(const v of r)v.tools.sort((S,x)=>S.createdAt-x.createdAt),v.live=s.streaming&&s.activeAssistantId!==null&&v.assistants.some(S=>S.id===s.activeAssistantId);return r}function Uy(s){const i=s.length,r=s.filter(h=>h.status==="error").length,u=s.filter(h=>h.status==="running").length,f=[`执行过程 · ${i} 工具`];return r>0?f.push(`${r} 出错`):u>0&&f.push("运行中"),{count:i,errorCount:r,runningCount:u,label:f.join(" · ")}}function Ih(s){const{entry:i}=s,[r,u]=p.useState(i.status==="error"),[f,h]=p.useState(!1),m=i.status==="running"?"运行中":i.status==="error"?"出错":"完成",v=`is-${i.status}`,S=Ov(i.args),x=zv(i.createdAt,i.finishedAt),R=_v(i.resultText,f?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return l.jsxs("div",{className:`oc-tool ${i.status==="error"?"is-error":""} ${i.status==="running"?"is-running":""}`,children:[l.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":r,onClick:()=>u(j=>!j),children:[l.jsx(wh,{}),l.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:l.jsx(_y,{})}),l.jsx("span",{className:"oc-tool-name",children:i.toolName}),S&&l.jsx("span",{className:"oc-tool-args",children:S}),x!==void 0&&l.jsxs("span",{className:"oc-tool-duration",children:[x,"s"]}),l.jsx("span",{className:`oc-tool-status ${v}`,children:m})]}),r&&l.jsxs("div",{className:"oc-tool-body",children:[i.args!==void 0&&l.jsxs("div",{className:"oc-tool-section",children:[l.jsx("div",{className:"oc-tool-label",children:"入参"}),l.jsx("pre",{className:"oc-tool-code",children:Mv(i.args)})]}),i.resultText!==void 0&&l.jsxs("div",{className:"oc-tool-section",children:[l.jsx("div",{className:"oc-tool-label",children:i.status==="error"?"错误":"结果"}),l.jsx("pre",{className:"oc-tool-code",children:R.text}),R.truncated&&!f&&l.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>h(!0),children:"展开全部"})]}),i.status==="running"&&i.resultText===void 0&&i.args===void 0&&l.jsx("div",{className:"oc-tool-section",children:l.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function Hy(s){const{tools:i,defaultOpen:r}=s,[u,f]=p.useState(r),h=Uy(i);return p.useEffect(()=>{r&&f(!0)},[r]),l.jsxs("div",{className:"oc-process-inline",children:[l.jsxs("button",{type:"button",className:`oc-process-inline-summary${u?" is-open":""}${h.errorCount>0?" is-error":h.runningCount>0?" is-running":""}`,"aria-expanded":u,onClick:()=>f(m=>!m),children:[l.jsx(wh,{}),l.jsx("span",{children:h.label})]}),u&&l.jsx("div",{className:"oc-process-inline-body",children:i.map(m=>l.jsx(Ih,{entry:m},m.id))})]})}function By(s){const{scrollContainerRef:i,messagesEndRef:r,onScroll:u,hasThread:f,readiness:h,streaming:m,streamingAssistantId:v,messagesCount:S,visibleCount:x,onLoadMore:R,turnGroups:j,interview:L,humanGateCards:C,operationCards:z,artifactCards:O,origin:F,sessionId:te}=s;return l.jsxs("div",{ref:i,className:`oc-messages${f?" has-thread":" is-empty"}`,onScroll:u,children:[f?null:l.jsx(Rh,{mode:"empty-session",readiness:h,disabled:m,onSuggest:s.onSuggest}),f&&S>x&&l.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:R,children:"加载更早消息"}),f&&j.map((N,I)=>{const D=N.user??N.assistants[0],Z=I>0?j[I-1].user??j[I-1].assistants[0]:void 0,q=!!D&&(!Z||mc(Z.createdAt)!==mc(D.createdAt)),_=N.assistants[N.assistants.length-1];return l.jsxs("div",{className:"oc-turn-group",children:[q&&D&&l.jsx("div",{className:"oc-day-sep",children:mc(D.createdAt)}),N.user&&l.jsx(Vm,{message:N.user,streaming:m,activeAssistantId:v}),N.tools.length>0&&l.jsx(Hy,{tools:N.tools,defaultOpen:N.live}),_&&l.jsx(Vm,{message:_,streaming:m,activeAssistantId:v})]},N.key)}),L&&l.jsx(Ny,{interview:L,interviewAnswer:s.interviewAnswer,onAnswerChange:s.onInterviewAnswerChange,onAnswer:s.onAnswerInterview,onConfirmTaskKind:s.onConfirmTaskKind}),C.map(N=>l.jsx(yy,{card:N,origin:F,sessionId:te},N.cardId)),z.map(N=>l.jsx(Ty,{operation:N,origin:F,onNavigateWorkspace:s.onNavigateWorkspace},N.operationId)),O.map(N=>l.jsx(vy,{artifact:N},N.artifactId)),l.jsx("div",{ref:r})]})}function dl(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}k`:s.toLocaleString()}function Zm(s){const i=[],r=s.inputTokens??0,u=s.outputTokens??0,f=s.cacheReadTokens??0,h=s.cacheWriteTokens??0,m=s.cost??0;if(r>0&&i.push(`${dl(r)} in`),u>0&&i.push(`${dl(u)} out`),f>0&&i.push(`${dl(f)} cache R`),h>0&&i.push(`${dl(h)} cache W`),m>0&&i.push(m>=.01?`$${m.toFixed(2)}`:"<$0.01"),i.length===0){const v=s.totalTokens??0;return v>0?`${dl(v)} tokens`:"—"}return i.join(" · ")}const qy={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function Gy(s,i){const r=i.trim().toLowerCase(),u=new Map;for(const f of s){if(r&&!f.provider.toLowerCase().includes(r)&&!f.id.toLowerCase().includes(r)&&!(f.name??"").toLowerCase().includes(r))continue;const h=u.get(f.provider)??[];h.push(f),u.set(f.provider,h)}return[...u.entries()].map(([f,h])=>({provider:f,models:h}))}function $y(s,i){const r=new Set,u=[],f=h=>{r.has(h)||(r.add(h),u.push({value:h,label:qy[h]??h,...h==="auto"&&i?{effective:i}:{}}))};f("auto");for(const h of s)f(h);return u}function Oi(s,i){return`${s}/${i}`}function bc(s){return{...s.modelProvider&&s.modelId?{model:{provider:s.modelProvider,modelId:s.modelId}}:{},...s.thinkingLevel?{thinkingLevel:s.thinkingLevel}:{}}}function Dh(s,i){return{...s,model:i.model??s.model,thinkingLevel:i.thinkingLevel??s.thinkingLevel}}function Yy(s,i){const r=Dh(s,i);return r.model?.provider===s.model?.provider&&r.model?.modelId===s.model?.modelId&&r.thinkingLevel===s.thinkingLevel}function Ky(){return l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:l.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function Jm(s){const i=ps(),[r,u]=p.useState(!1),[f,h]=p.useState(""),[m,v]=p.useState(0),S=p.useRef(null),x=p.useRef(null),R=i.snapshot,j=i.status==="loading",L=i.status==="error"?i.error:null,C=R?(R.models??[]).map(N=>({provider:N.provider,id:N.id,...N.name?{name:N.name}:{},...N.hasCredentials!==void 0?{hasCredentials:N.hasCredentials}:{}})):s.models,z=p.useMemo(()=>Gy(C,f),[C,f]),O=p.useMemo(()=>z.flatMap(N=>N.models),[z]);p.useEffect(()=>{r&&(h(""),v(0),window.setTimeout(()=>x.current?.focus(),0))},[r]),p.useEffect(()=>{if(!r)return;const N=D=>{const Z=S.current;Z&&D.target instanceof Node&&!Z.contains(D.target)&&u(!1)},I=D=>{D.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",N),document.addEventListener("keydown",I),()=>{document.removeEventListener("mousedown",N),document.removeEventListener("keydown",I)}},[r]);const F=N=>{if(s.disabled)return;const I=O[N];I&&(u(!1),s.onSelect(I.provider,I.id))},te=N=>{if(N.key==="ArrowDown"){N.preventDefault(),v(I=>O.length?(I+1)%O.length:0);return}if(N.key==="ArrowUp"){N.preventDefault(),v(I=>O.length?(I-1+O.length)%O.length:0);return}if(N.key==="Enter"){N.preventDefault(),F(m);return}if(N.key==="Escape"){N.preventDefault(),u(!1);return}};return l.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:S,children:[l.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":r,title:"选择模型",disabled:s.disabled,onClick:()=>u(N=>!N),children:[l.jsx("span",{className:"oc-select-trigger-label",children:s.triggerLabel}),l.jsx(Ky,{})]}),r&&l.jsxs("div",{className:"oc-select-panel oc-model-panel",role:"listbox","aria-label":"选择模型",children:[l.jsx("input",{ref:x,className:"oc-select-search",placeholder:"搜索模型或 Provider…",value:f,onChange:N=>{h(N.target.value),v(0)},onKeyDown:te}),j&&l.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),L&&l.jsxs("div",{className:"oc-select-status is-error",children:[l.jsxs("span",{children:[L.code?`${L.code}:`:"",L.message]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{hs()},children:"重试"})]}),!j&&!L&&z.length===0&&l.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),z.map(N=>l.jsxs("div",{className:"oc-model-group",children:[l.jsx("div",{className:"oc-model-group-head",children:N.provider}),N.models.map(I=>{const D=Oi(I.provider,I.id),Z=D===s.activeModelRef,q=O[m]===I;return l.jsxs("button",{type:"button",role:"option","aria-selected":Z,disabled:s.disabled,className:`oc-select-option oc-model-option${q?" is-highlighted":""}${Z?" is-active":""}`,onMouseDown:_=>_.preventDefault(),onClick:()=>{s.disabled||(u(!1),s.onSelect(I.provider,I.id))},children:[l.jsxs("span",{className:"oc-model-option-name",children:[I.name?`${I.name} · `:"",I.id]}),Z&&l.jsx("span",{className:"oc-model-option-check",children:"✓"})]},D)})]},N.provider))]})]})}function Xy(){return l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:l.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function Qy(s){const i=ps(),[r,u]=p.useState(!1),[f,h]=p.useState(0),m=p.useRef(null),v=s.effectiveLevel??i.snapshot?.selection?.effectiveThinkingLevel,S=i.snapshot?.thinkingLevels?.length?i.snapshot.thinkingLevels.map(L=>L.value):void 0,x=p.useMemo(()=>$y(S??s.levels,v),[S,s.levels,v]);p.useEffect(()=>{r&&h(0)},[r]),p.useEffect(()=>{if(!r)return;const L=z=>{const O=m.current;O&&z.target instanceof Node&&!O.contains(z.target)&&u(!1)},C=z=>{z.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",L),document.addEventListener("keydown",C),()=>{document.removeEventListener("mousedown",L),document.removeEventListener("keydown",C)}},[r]);const R=L=>{if(s.disabled)return;const C=x[L];C&&(u(!1),s.onSelect(C.value))},j=L=>{if(L.key==="ArrowDown"){L.preventDefault(),h(C=>x.length?(C+1)%x.length:0);return}if(L.key==="ArrowUp"){L.preventDefault(),h(C=>x.length?(C-1+x.length)%x.length:0);return}if(L.key==="Enter"){L.preventDefault(),R(f);return}if(L.key==="Escape"){L.preventDefault(),u(!1);return}};return l.jsxs("div",{className:"oc-select-menu oc-thinking-menu",ref:m,children:[l.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":r,title:"思考等级",disabled:s.disabled,onClick:()=>u(L=>!L),children:[l.jsx("span",{className:"oc-select-trigger-label",children:s.triggerLabel}),l.jsx(Xy,{})]}),r&&l.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:j,children:x.map((L,C)=>{const z=L.value===s.activeValue,O=C===f;return l.jsxs("button",{type:"button",role:"option","aria-selected":z,disabled:s.disabled,className:`oc-select-option oc-thinking-option${O?" is-highlighted":""}${z?" is-active":""}`,onMouseDown:F=>F.preventDefault(),onClick:()=>{s.disabled||(u(!1),s.onSelect(L.value))},children:[l.jsx("span",{className:"oc-thinking-option-label",children:L.label}),L.value==="auto"&&L.effective?l.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",L.effective]}):null,z&&l.jsx("span",{className:"oc-model-option-check",children:"✓"})]},L.value)})})]})}function ki(s){const i=Array.isArray(s.items)?s.items:void 0;return l.jsxs("section",{className:"oc-runtime-context-section",children:[l.jsxs("header",{className:"oc-runtime-context-section-head",children:[l.jsx("strong",{children:s.title}),l.jsx("span",{className:"oc-runtime-context-meta",children:i?`${i.length} 项`:"未投影"})]}),i===void 0?l.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):i.length===0?l.jsx("p",{className:"oc-runtime-context-empty",children:s.emptyText}):l.jsx("ul",{className:"oc-runtime-context-resources",children:i.map((r,u)=>l.jsxs("li",{children:[l.jsx("strong",{children:r.name||r.path||"未命名资源"}),r.description?l.jsx("span",{children:r.description}):null,r.path?l.jsxs("code",{children:[r.path,r.baseDir?`(base: ${r.baseDir})`:""]}):null,l.jsxs("span",{className:"oc-runtime-context-meta",children:[r.scope?`scope ${r.scope}`:"",r.source?` · ${r.source}`:"",r.version?` · v${r.version}`:"",r.cwd?` · cwd ${r.cwd}`:""]}),s.renderPath?s.renderPath(r):null,r.error?l.jsx("span",{className:"oc-runtime-context-diag is-error",children:r.error}):null,Array.isArray(r.diagnostics)&&r.diagnostics.length>0?l.jsx("span",{className:"oc-runtime-context-diag",children:r.diagnostics.join(";")}):null,Array.isArray(r.resolved)&&r.resolved.length>0?l.jsx("code",{className:"oc-runtime-context-resolved",children:r.resolved.map(f=>`${f.type??"?"}:${f.name??f.path??"?"}`).join(" · ")}):null]},`${r.name??r.path??u}:${u}`))})]})}const Vy=p.forwardRef(function({open:i,onToggle:r,onClose:u,context:f},h){const m=ps(),v=m.reloading,S=m.reloadError,x=Array.isArray(f.resources.activeTools)?f.resources.activeTools:[],R=typeof f.resources.activeToolCount=="number"?f.resources.activeToolCount:x.length,j=f.systemPrompt.text??f.systemPrompt.summary??"",L=f.systemPrompt.charCount??j.length,C=f.resources;return l.jsxs("div",{className:"oc-runtime-context-menu",ref:h,children:[l.jsx("button",{type:"button",className:`btn btn-ghost oc-runtime-context-toggle${i?" is-active":""}`,"aria-expanded":i,"aria-controls":"oc-runtime-context-panel",onClick:r,children:"注入上下文"}),i&&l.jsxs("div",{id:"oc-runtime-context-panel",className:"oc-runtime-context-panel",role:"dialog","aria-label":"注入上下文",children:[l.jsxs("header",{className:"oc-runtime-context-head",children:[l.jsxs("div",{className:"oc-runtime-context-head-copy",children:[l.jsx("strong",{children:"注入上下文"}),l.jsx("span",{className:"oc-runtime-context-meta",children:"只读 · 本轮实际注入的 system prompt / 资源(已脱敏)"})]}),l.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭",onClick:u,children:"关闭"})]}),l.jsxs("div",{className:"oc-runtime-context-body",children:[l.jsxs("div",{className:"oc-runtime-context-chips","aria-label":"摘要",children:[f.model&&l.jsxs("span",{className:"oc-runtime-context-chip",children:["模型"," ",l.jsx("code",{children:Oi(f.model.provider,f.model.modelId)})]}),f.thinkingLevel&&l.jsxs("span",{className:"oc-runtime-context-chip",children:["思考 ",f.thinkingLevel]}),l.jsxs("span",{className:"oc-runtime-context-chip",children:["Prompt ",L.toLocaleString()," 字"]}),l.jsxs("span",{className:"oc-runtime-context-chip",children:["工具 ",R]}),l.jsxs("span",{className:"oc-runtime-context-chip",children:["资源面 ",String(f.resources.mode??"closed")]})]}),l.jsxs("section",{className:"oc-runtime-context-section",children:[l.jsxs("header",{className:"oc-runtime-context-section-head",children:[l.jsxs("div",{children:[l.jsx("strong",{children:"System prompt"}),l.jsxs("code",{className:"oc-runtime-context-hash",children:[f.systemPrompt.hash.slice(0,12),"…"]})]}),j?l.jsx(Ah,{text:j}):null]}),l.jsx("pre",{className:"oc-runtime-context-text",children:j||"(空)"})]}),l.jsxs("section",{className:"oc-runtime-context-section",children:[l.jsxs("header",{className:"oc-runtime-context-section-head",children:[l.jsx("strong",{children:"Session suffix"}),l.jsx("span",{className:"oc-runtime-context-meta",children:f.suffix.present?`${(f.suffix.charCount??0).toLocaleString()} 字`:"未注入"})]}),f.suffix.present?l.jsx("pre",{className:"oc-runtime-context-text",children:f.suffix.text??f.suffix.summary??"已注入"}):l.jsx("p",{className:"oc-runtime-context-empty",children:"本会话无额外 suffix"})]}),l.jsx(ki,{title:"Context files",items:C.contextFiles?.map(z=>({name:z.path,path:z.path,description:`${z.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件(真实空态)"}),l.jsx(ki,{title:"Skills",items:C.skills,emptyText:"该 session 未加载任何 Skills(真实空态)"}),l.jsx(ki,{title:"Extensions",items:C.extensions,emptyText:"该 session 未加载任何 Extensions(真实空态)"}),l.jsx(ki,{title:"Packages",items:C.packages,emptyText:"该 session 未配置 Packages(真实空态)"}),l.jsxs("section",{className:"oc-runtime-context-section",children:[l.jsxs("header",{className:"oc-runtime-context-section-head",children:[l.jsx("strong",{children:"Active tools"}),l.jsxs("span",{className:"oc-runtime-context-meta",children:[R," 个"]})]}),x.length===0?l.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):l.jsx("ul",{className:"oc-runtime-context-tools",children:x.map(z=>l.jsx("li",{children:l.jsx("code",{children:z})},z))})]}),Array.isArray(C.diagnostics)&&C.diagnostics.length>0&&l.jsxs("section",{className:"oc-runtime-context-section",children:[l.jsxs("header",{className:"oc-runtime-context-section-head",children:[l.jsx("strong",{children:"资源诊断"}),l.jsxs("span",{className:"oc-runtime-context-meta",children:[C.diagnostics.length," 条"]})]}),l.jsx("ul",{className:"oc-runtime-context-resources",children:C.diagnostics.map((z,O)=>l.jsxs("li",{children:[l.jsxs("span",{className:`oc-runtime-context-diag is-${z.type??"warning"}`,children:[z.type,": ",z.message]}),z.path?l.jsx("code",{children:z.path}):null]},O))})]}),l.jsxs("details",{className:"oc-runtime-context-raw",children:[l.jsx("summary",{children:"原始投影 JSON"}),l.jsx("pre",{children:JSON.stringify(f,null,2)})]})]}),l.jsxs("footer",{className:"oc-runtime-context-foot",children:[l.jsx("span",{className:"oc-runtime-context-meta",children:v?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:v,onClick:()=>{ms()},children:"重新加载会话"}),S&&l.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[S.code?`${S.code}:`:"",S.message,l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{ms()},children:"重试"})]})]})]})]})});function Zy(s){const{catalog:i,open:r,onToggle:u,onClose:f,menuRef:h}=s;return l.jsxs("div",{className:"oc-tools-menu oc-tools-menu--composer",ref:h,children:[l.jsxs("button",{type:"button",className:`oc-cap-chip oc-tools-toggle${r?" is-active":""}`,"aria-pressed":r,"aria-expanded":r,"aria-controls":"oc-tools-catalog",onClick:u,children:[i.total," 工具"]}),r&&l.jsxs("div",{id:"oc-tools-catalog",className:"oc-tools-catalog",role:"dialog","aria-label":"可用工具列表",children:[l.jsxs("header",{className:"oc-tools-catalog-head",children:[l.jsx("strong",{children:"可用工具"}),l.jsxs("span",{className:"oc-tools-catalog-meta",children:[i.total," 个 · 点选了解简介"]}),l.jsx("button",{type:"button",className:"btn btn-ghost oc-tools-catalog-close","aria-label":"关闭工具列表",onClick:f,children:"关闭"})]}),l.jsxs("div",{className:"oc-tools-catalog-body",children:[i.explore.length>0&&l.jsxs("section",{className:"oc-tools-group",children:[l.jsx("h4",{className:"oc-tools-group-title",children:"仓库探查"}),l.jsx("ul",{className:"oc-tools-list",children:i.explore.map(m=>l.jsxs("li",{className:"oc-tools-item",children:[l.jsxs("div",{className:"oc-tools-item-head",children:[l.jsx("code",{className:"oc-tools-name",children:m.toolId}),l.jsx("span",{className:"oc-tools-kind is-explore",children:qm(m.kind)})]}),l.jsx("p",{className:"oc-tools-desc",children:m.description})]},m.toolId))})]}),l.jsxs("section",{className:"oc-tools-group",children:[l.jsx("h4",{className:"oc-tools-group-title",children:"Operator 动作"}),l.jsx("ul",{className:"oc-tools-list",children:i.operator.map(m=>l.jsxs("li",{className:"oc-tools-item",children:[l.jsxs("div",{className:"oc-tools-item-head",children:[l.jsx("code",{className:"oc-tools-name",children:m.toolId}),l.jsx("span",{className:`oc-tools-kind is-${m.kind??"read"}`,children:qm(m.kind)})]}),l.jsx("p",{className:"oc-tools-desc",children:m.description}),m.cli&&l.jsxs("p",{className:"oc-tools-cli",children:["CLI: ",l.jsx("code",{children:m.cli})]})]},m.toolId))})]})]})]})]})}function Jy(s){const{composer:i,streaming:r,hasThread:u}=s,f=!!s.compactControls,[h,m]=p.useState(!1),v=p.useRef(null),S=ps(),x=S.reloading,R=S.reloadError,L=S.mutationBusy||x||r;p.useEffect(()=>{f||m(!1)},[f]),p.useEffect(()=>{if(!h)return;const I=Z=>{const q=v.current;q&&Z.target instanceof Node&&!q.contains(Z.target)&&m(!1)},D=Z=>{Z.key==="Escape"&&m(!1)};return document.addEventListener("mousedown",I),document.addEventListener("keydown",D),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("keydown",D)}},[h]);const C=p.useCallback(()=>{i.setInput(""),i.setShortcutOpen(!1),ms()},[i.setInput,i.setShortcutOpen]),z=p.useCallback(I=>{const D=i.isComposingNow()||I.nativeEvent.isComposing,Z=i.recentlyComposedNow();if(I.key==="Enter"&&!I.shiftKey&&!D&&!Z){if(i.shortcutOpen&&i.filteredShortcuts.length>0){if((i.filteredShortcuts[i.shortcutIndex]??i.filteredShortcuts[0])?.command==="/reload"){I.preventDefault(),C();return}}else if(i.input.trim()==="/reload"){I.preventDefault(),C();return}}s.onKeyDown(I)},[i.isComposingNow,i.recentlyComposedNow,i.shortcutOpen,i.filteredShortcuts,i.shortcutIndex,i.input,C,s.onKeyDown]),O=p.useCallback(I=>{if(I==="/reload"){C();return}s.onRunShortcut(I)},[C,s.onRunShortcut]),F=p.useCallback(()=>{if(i.input.trim()==="/reload"){C();return}s.onSend(i.input)},[i.input,C,s.onSend]),te=(()=>{const I=s.activeModelRef||"模型",D=I.split("/"),Z=D[D.length-1]||I;return Z.length>18?`${Z.slice(0,16)}…`:Z})(),N=l.jsxs(l.Fragment,{children:[f?null:l.jsx(Jm,{models:s.models,activeModelRef:s.activeModelRef,triggerLabel:s.activeModelRef||"选择模型",disabled:L,onSelect:(I,D)=>s.onSwitchRuntime({provider:I,modelId:D})}),l.jsx(Qy,{levels:s.thinkingLevels,activeValue:s.activeThinkingLevel||"auto",triggerLabel:s.activeThinkingLevel||"auto",disabled:L,onSelect:I=>s.onSwitchRuntime({thinkingLevel:I})}),l.jsxs("span",{className:"oc-usage",title:Zm(s.usage),children:[r?"运行中":"空闲",s.unread>0?` · ${s.unread} 未读`:""," · ",Zm(s.usage)]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:s.onCompact,disabled:r||!u,title:u?r?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:"Compact"}),s.toolCatalog?l.jsx(Zy,{catalog:s.toolCatalog,open:s.toolsOpen,onToggle:s.onToggleTools,onClose:s.onCloseTools,menuRef:s.toolsMenuRef}):null,s.processSummary&&l.jsxs("button",{type:"button",ref:s.processTriggerRef,className:`oc-process-summary is-${s.processSummary.statusKind}${s.processOpen?" is-open":""}`,"aria-pressed":s.processOpen,"aria-controls":"oc-process-panel",onClick:s.onToggleProcess,children:["全部工具 · ",s.processSummary.count," ·"," ",s.processSummary.statusLabel]}),s.runtimeContext&&l.jsx(Vy,{ref:s.runtimeContextMenuRef,open:s.runtimeContextOpen,onToggle:s.onToggleRuntimeContext,onClose:s.onCloseRuntimeContext,context:s.runtimeContext})]});return l.jsx("div",{className:`oc-composer${f?" is-compact-controls":""}`,children:l.jsxs("div",{className:"oc-composer-inner",children:[i.fileOptions.length>0&&l.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:i.fileOptions.map(I=>l.jsx("button",{type:"button",role:"option",onMouseDown:D=>D.preventDefault(),onClick:()=>i.insertFileReference(I),children:l.jsxs("code",{children:["@",I]})},I))}),i.pendingImages.length>0&&l.jsx("div",{className:"oc-attachment-list",children:i.pendingImages.map(I=>l.jsxs("span",{children:[I.name,l.jsx("button",{type:"button","aria-label":`移除 ${I.name}`,onClick:()=>i.removeImage(I),children:"×"})]},I.name))}),l.jsxs("div",{className:"oc-composer-toolbar",children:[l.jsxs("label",{className:"oc-attach-button",children:["添加图片",l.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,hidden:!0,onChange:I=>{i.addImagesFromFiles(Array.from(I.target.files??[]).slice(0,4)),I.target.value=""}})]}),f?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"oc-composer-primary-model",children:l.jsx(Jm,{models:s.models,activeModelRef:s.activeModelRef,triggerLabel:te,disabled:L,onSelect:(I,D)=>s.onSwitchRuntime({provider:I,modelId:D})})}),l.jsxs("div",{className:"oc-composer-more",ref:v,children:[l.jsx("button",{type:"button",className:`oc-composer-more-btn${h?" is-open":""}`,"aria-expanded":h,"aria-haspopup":"menu","aria-label":"更多控制",title:"更多",onClick:()=>m(I=>!I),children:"更多"}),h?l.jsx("div",{className:"oc-composer-more-menu",role:"menu","aria-label":"低频控制",children:N}):null]})]}):l.jsxs(l.Fragment,{children:[l.jsxs("span",{className:"oc-composer-hint",children:[l.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),l.jsxs("span",{className:"oc-composer-hint",children:[l.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",l.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]})]}),x&&l.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),i.shortcutOpen&&i.filteredShortcuts.length>0&&l.jsx("div",{className:"oc-shortcut-palette",role:"listbox","aria-label":"Chat shortcuts",children:i.filteredShortcuts.map((I,D)=>l.jsxs("button",{type:"button",role:"option","aria-selected":D===i.shortcutIndex,className:D===i.shortcutIndex?"is-active":"",onMouseDown:Z=>Z.preventDefault(),onClick:()=>O(I.command),children:[l.jsx("code",{children:I.command}),l.jsxs("span",{children:[l.jsx("strong",{children:I.label}),l.jsx("small",{children:I.description})]})]},I.command))}),l.jsxs("div",{className:`oc-composer-shell${r?" is-busy":""}`,children:[l.jsx("textarea",{ref:i.textareaRef,className:"oc-textarea",value:i.input,rows:3,placeholder:r?"正在生成回复…(停止后可发送下一轮)":u?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:I=>i.handleInputChange(I.target.value),onKeyDown:z,onCompositionStart:i.onCompositionStart,onCompositionEnd:i.onCompositionEnd,disabled:r}),r?l.jsx("button",{type:"button",className:"oc-stop",title:"停止生成","aria-label":"停止生成",onClick:s.onStop,children:l.jsx(My,{})}):l.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:F,disabled:!i.input.trim()&&i.pendingImages.length===0||x,children:l.jsx(Oy,{})})]}),R&&l.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[l.jsxs("span",{children:[R.code?`${R.code}:`:"",R.message]}),l.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{ms()},children:"重试"})]}),f?null:l.jsx("div",{className:"oc-runtime-controls",children:N})]})})}function Fy(s){const{toolCalls:i,onClose:r,overlay:u=!1}=s,f=p.useRef(null);return Sh({open:u,containerRef:f,triggerRef:s.triggerRef,onEscape:r}),l.jsxs("aside",{ref:f,id:"oc-process-panel",className:`oc-process${u?" is-process-overlay":""}`,"aria-label":"全部工具",role:u?"dialog":void 0,"aria-modal":u?!0:void 0,tabIndex:-1,children:[l.jsxs("header",{className:"oc-process-head",children:[l.jsxs("div",{className:"oc-process-title",children:[l.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"全部工具",l.jsx("span",{className:"oc-process-count",children:i.length})]}),l.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭全部工具",onClick:r,children:"关闭"})]}),l.jsx("div",{className:"oc-process-timeline",children:i.length===0?l.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):i.map((h,m)=>l.jsxs("div",{className:`oc-process-item${m===0?" is-first":""}${m===i.length-1?" is-last":""}${h.status==="error"?" is-error":""}${h.status==="running"?" is-running":""}`,children:[l.jsx("div",{className:"oc-process-rail","aria-hidden":"true",children:l.jsx("span",{className:"oc-process-dot"})}),l.jsx("div",{className:"oc-process-time",children:fh(h.createdAt)}),l.jsx("div",{className:"oc-process-body",children:l.jsx(Ih,{entry:h})})]},h.id))})]})}function Wy(){const s=p.useRef(null),i=p.useRef(!1),r=p.useRef(null),u=p.useRef(new Map),f=p.useRef(new Set),h=p.useRef(null),m=p.useRef(null),v=p.useRef(0),S=p.useRef(null),x=p.useRef(new Set),R=p.useRef(new Set),j=p.useRef(new Map),L=p.useRef(null),C=p.useRef(null),z=p.useRef(!1),O=p.useRef(0),F=p.useRef(null),te=p.useRef(!1),N=p.useRef(!1),I=p.useRef(null),D=p.useRef(new Set),Z=p.useRef(new Set),q=p.useRef(new Set),_=p.useRef(!1),le=p.useRef(0);return p.useMemo(()=>({sessionRef:s,streamingRef:i,abortRef:r,sessionAbortControllersRef:u,inlineStreamSessionIdsRef:f,assistantIdRef:h,lastEventIdRef:m,sessionGenerationRef:v,eventsStreamStateRef:S,settledTurnIdsRef:x,seenEventIdsRef:R,turnAssistantIdsRef:j,reconnectAbortRef:L,activeTurnIdRef:C,submitInFlightRef:z,submitGenerationRef:O,pendingSubmissionRef:F,stopInFlightRef:te,stopRequestedRef:N,stoppingTurnIdRef:I,abortPostedTurnIdsRef:D,releasedClientRequestIdsRef:Z,usageResponseKeysRef:q,isComposingRef:_,compositionEndedAtRef:le}),[s,i,r,u,f,h,m,v,S,x,R,j,L,C,z,O,F,te,N,I,D,Z,q,_,le])}const Py=["operation","contract","dag","report","html"];function eb(s){const i=s.artifact;if(!i||typeof i!="object")return;const r=i;if(!(r.schemaVersion!==1||typeof r.artifactId!="string"||!r.artifactId||typeof r.kind!="string"||!Py.includes(r.kind)||typeof r.previewHash!="string")){for(const u of["title","summary","htmlPreview","reportText","inspectHref"])if(r[u]!==void 0&&typeof r[u]!="string")return;return r}}function tb(s,i){const r=s.findIndex(u=>u.artifactId===i.artifactId);return r<0?[...s,i]:s.map((u,f)=>f===r?{...u,...i}:u)}function nb(s){if(!s||typeof s!="object")return;const i=s;if(!(i.schemaVersion!==1||typeof i.cardId!="string"||i.gateType!=="contract-apply"&&i.gateType!=="dag-run"||typeof i.taskId!="string"||typeof i.state!="string"||typeof i.expiresAt!="string"||typeof i.inspectHref!="string"||typeof i.previewHash!="string"))return i}function ab(s,i){const r=s.findIndex(f=>f.cardId===i.cardId);if(r<0)return[...s,i];const u=[...s];return u[r]=i,u}function sb(s,i){const r=s.findIndex(u=>u.operationId===i.operationId);return r<0?[...s,i]:s.map((u,f)=>f===r?{...u,...i}:u)}function lb(s){const i=s.operation;if(!i||typeof i!="object")return;const r=i;if(!(r.schemaVersion!==1||typeof r.operationId!="string"||typeof r.action!="string"||typeof r.state!="string"||typeof r.inspectHref!="string"||typeof r.createdAt!="string"||typeof r.updatedAt!="string"||typeof r.previewHash!="string"))return r}function ib(s){const{refs:i,onReconcile:r,setError:u,setProcessOpen:f,setInterview:h,setHumanGateCards:m,setArtifactCards:v,setStreaming:S,setStreamingAssistantId:x,setUnread:R,setOperationCards:j,setUsage:L,setMessages:C,setToolCalls:z}=s;return(O,F,te,N)=>{if(N?.generation!==void 0&&i.sessionGenerationRef.current!==N.generation)return;const I=N?.replay===!0;if(O==="stream_ready")return;if(O==="reconcile"){const _=typeof F.reason=="string"?F.reason:"cursor_expired";r?.({reason:_,...typeof F.minSeq=="number"?{minSeq:F.minSeq}:{},...typeof F.epoch=="string"?{epoch:F.epoch}:{},...typeof F.latestTurnId=="string"?{latestTurnId:F.latestTurnId}:{},...typeof F.latestEventId=="string"?{latestEventId:F.latestEventId}:F.latestEventId===null?{latestEventId:null}:{}});return}const D=F.data&&typeof F.data=="object"?F.data:F,Z=typeof F.turnId=="string"?F.turnId:void 0;if(Z&&(O==="agent_start"||O==="message_update")&&i.settledTurnIdsRef.current.has(Z))return;let q=te;if(Z){const _=i.turnAssistantIdsRef.current.get(Z);_?q=_:i.turnAssistantIdsRef.current.set(Z,te)}if(O==="interview-turn"){h(_=>({..._??{},interviewSessionId:typeof D.interviewSessionId=="string"?D.interviewSessionId:_?.interviewSessionId,taskId:typeof D.taskId=="string"?D.taskId:_?.taskId,state:typeof D.state=="string"?D.state:_?.state,question:D.question&&typeof D.question=="object"?D.question:void 0}));return}if(O==="draft"){h(_=>({..._??{},taskId:typeof D.taskId=="string"?D.taskId:_?.taskId,draft:D.draft&&typeof D.draft=="object"?D.draft:_?.draft,draftSha256:typeof D.draftSha256=="string"?D.draftSha256:_?.draftSha256,taskKindRecommendation:typeof D.taskKindRecommendation=="string"?D.taskKindRecommendation:_?.taskKindRecommendation}));return}if(O==="assessment"){h(_=>({..._??{},assessment:D}));return}if(O==="taskKind-confirmed"){h(_=>({..._??{},confirmedTaskKind:typeof D.taskKind=="string"?D.taskKind:_?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(O==="human-gate-card"){const _=nb(D);_&&m(le=>ab(le,_));return}if(O==="artifact-ref"){const _=eb(D);_&&v(le=>tb(le,_));return}if(O==="agent_start"){if(I&&Z!==void 0&&Z!==i.activeTurnIdRef.current)return;Z&&(i.settledTurnIdsRef.current.delete(Z),i.activeTurnIdRef.current=Z),i.streamingRef.current=!0,S(!0),x(q);return}if(O==="agent_settled"||O==="agent_end"){if(Z&&i.settledTurnIdsRef.current.add(Z),O==="agent_end")return;Z===i.activeTurnIdRef.current&&(i.activeTurnIdRef.current=null),i.streamingRef.current=!1,S(!1),x(null),O==="agent_settled"&&!I&&typeof document<"u"&&document.hidden&&R(_=>_+1),C(_=>_.filter(le=>!(le.id===q&&le.role==="assistant"&&!le.text.trim()))),z(_=>_.map(le=>le.status==="running"&&le.assistantMessageId===q?{...le,status:"error",finishedAt:Date.now()}:le));return}if(O==="operation-ref"||O==="operation-status"){const _=lb(D);_&&j(le=>sb(le,_));return}if(O==="usage"){if(I)return;const _=D,le=typeof _.responseKey=="string"&&_.responseKey?_.responseKey:void 0;if(le&&i.usageResponseKeysRef.current.has(le))return;le&&i.usageResponseKeysRef.current.add(le),L(oe=>{const ne=_.inputTokens??0,Q=_.outputTokens??0,ie=_.cacheReadTokens??0,fe=_.cacheWriteTokens??0,W=_.totalTokens??ne+Q+ie+fe;return{inputTokens:oe.inputTokens+ne,outputTokens:oe.outputTokens+Q,cacheReadTokens:oe.cacheReadTokens+ie,cacheWriteTokens:oe.cacheWriteTokens+fe,totalTokens:oe.totalTokens+W,cost:_.cost===void 0?oe.cost:(oe.cost??0)+_.cost}});return}if(O==="message_update"||O==="message_end"){if(I)return;const _=typeof D.text=="string"?D.text:"";C(le=>le.some(ne=>ne.id===q)?le.map(ne=>ne.id===q?{...ne,text:_}:ne):[...le,{id:q,role:"assistant",text:_,createdAt:Date.now()}])}else if(O==="tool_call"){const _=typeof D.toolCallId=="string"?D.toolCallId:us("t"),le=typeof D.toolName=="string"?D.toolName:"tool",oe=typeof D.argsPreview=="string"?D.argsPreview:"{}",ne=Date.now();z(Q=>Q.some(ie=>ie.id===_)?Q.map(ie=>ie.id===_?{...ie,args:oe,status:"running",turnId:Z??ie.turnId,assistantMessageId:q}:ie):[...Q,{id:_,toolName:le,args:oe,status:"running",createdAt:ne,turnId:Z,assistantMessageId:q}])}else if(O==="tool_result"){const _=typeof D.toolCallId=="string"?D.toolCallId:us("r"),le=typeof D.toolName=="string"?D.toolName:"tool",oe=D.isError===!0,ne=typeof D.resultPreview=="string"?D.resultPreview:"{}",Q=Date.now();oe&&f(!0),z(ie=>ie.find(W=>W.id===_)?ie.map(W=>W.id===_?{...W,result:ne,resultText:ne,status:oe?"error":"ok",finishedAt:Q,turnId:Z??W.turnId,assistantMessageId:W.assistantMessageId??q}:W):[...ie,{id:_,toolName:le,result:ne,resultText:ne,status:oe?"error":"ok",createdAt:Q,finishedAt:Q,turnId:Z,assistantMessageId:q}])}else O==="error"&&u(typeof D.message=="string"?D.message:"chat error")}}const hc={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function rb(s){const{origin:i,refs:r,sessionId:u,setError:f,setProcessOpen:h,onReconcile:m}=s,[v,S]=p.useState([]),[x,R]=p.useState([]),[j,L]=p.useState([]),[C,z]=p.useState([]),[O,F]=p.useState(50),[te,N]=p.useState(0),[I,D]=p.useState([]),[Z,q]=p.useState(null),[_,le]=p.useState(null),[oe,ne]=p.useState(!1),[Q,ie]=p.useState(hc),[fe,W]=p.useState(!1),[G,b]=p.useState(null),[E]=p.useState(!1),w=p.useMemo(()=>ib({refs:r,onReconcile:m,setError:f,setProcessOpen:h,setInterview:q,setHumanGateCards:D,setArtifactCards:z,setStreaming:W,setStreamingAssistantId:b,setUnread:N,setOperationCards:L,setUsage:ie,setMessages:S,setToolCalls:R}),[r,m,f,h]),ee=p.useCallback((ae,de,ce)=>{if(ce?.targetSessionId&&r.sessionRef.current?.sessionId!==ce.targetSessionId||ce?.generation!==void 0&&r.sessionGenerationRef.current!==ce.generation)return null;const ye=ae.split(`
15
+ `);let je="message",Te="",_e=null;for(const bt of ye)bt.startsWith("event: ")?je=bt.slice(7).trim():bt.startsWith("data: ")?Te+=bt.slice(6):bt.startsWith("id: ")&&(_e=bt.slice(4).trim());if(!Te)return _e;let He;try{He=JSON.parse(Te)}catch{return _e}const Qe=_e??(typeof He.eventId=="string"?He.eventId:null);if(Qe){if(r.seenEventIdsRef.current.has(Qe))return Qe;r.seenEventIdsRef.current.add(Qe)}return w(je,He,de,ce),_e??Qe},[w,r]),$=p.useCallback(async(ae,de)=>{const ce=de?.background===!0;ce||ne(!0);try{const ye=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(ae)}/context`,{credentials:"include"});if(!ye.ok)return;const je=await ye.json();je.context&&r.sessionRef.current?.sessionId===ae&&le(Te=>Lv(Te,je.context)?Te:je.context)}finally{ce||ne(!1)}},[i,r]);p.useEffect(()=>{u&&$(u)},[u,$]),p.useEffect(()=>{if(!u)return;const ae=window.setTimeout(()=>{$(u,{background:!0})},350);return()=>window.clearTimeout(ae)},[u,j,I,Z,$]);const y=p.useMemo(()=>v.filter(ae=>ae.role!=="system"||E).slice(-O),[v,E,O]);p.useEffect(()=>{const ae=()=>{document.hidden||N(0)};return document.addEventListener("visibilitychange",ae),()=>document.removeEventListener("visibilitychange",ae)},[]);const A=p.useMemo(()=>{if(x.length===0)return null;const ae=x.filter(Te=>Te.status==="running"),de=x.filter(Te=>Te.status==="error"),ce=ae[ae.length-1];let ye="完成",je="ok";return de.length>0?(ye=`${de.length} 出错`,je="error"):ae.length>0&&(ye=ce?`正在调用 ${ce.toolName}`:"运行中",je="running"),{count:x.length,statusLabel:ye,statusKind:je}},[x]),X=p.useMemo(()=>Ly({messages:y,toolCalls:x,streaming:fe,activeAssistantId:G}),[y,x,fe,G]),Y=p.useCallback(()=>{S([]),R([]),L([]),D([]),z([]),q(null),le(null),ie(hc),W(!1),b(null),N(0),F(50),r.usageResponseKeysRef.current=new Set},[r]),ue=p.useCallback(ae=>{S(ae.messages),R(ae.toolCalls),L([]),D([]),z([]),le(null),q(null),ie(hc),r.usageResponseKeysRef.current=new Set,W(ae.streaming),b(null),N(0),F(50)},[r]),re=p.useCallback(async ae=>{try{const de=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(ae)}`,{credentials:"include"});if(!de.ok)return!1;const ce=await de.json();if(!ce.session||r.sessionRef.current?.sessionId!==ae)return!1;const ye=ce.session.activeTurnId??null;return r.activeTurnIdRef.current=ye,r.streamingRef.current=!!ye,r.lastEventIdRef.current=ce.lastEventId??null,r.seenEventIdsRef.current=new Set,r.turnAssistantIdsRef.current=new Map,S((ce.session.messages??[]).filter(je=>je.role==="user"||je.role==="assistant").map(je=>({id:je.id,role:je.role,text:je.text,createdAt:Date.parse(je.at)||Date.now()}))),b(null),!0}catch{return!1}},[i,r,S,b]);return{messages:v,setMessages:S,toolCalls:x,setToolCalls:R,operationCards:j,artifactCards:C,historyLimit:O,setHistoryLimit:F,unread:te,humanGateCards:I,interview:Z,setInterview:q,taskContext:_,contextLoading:oe,usage:Q,streaming:fe,setStreaming:W,streamingAssistantId:G,setStreamingAssistantId:b,visibleMessages:y,turnGroups:X,processSummary:A,applyChatSseEvent:w,applySseBlock:ee,loadTaskContext:$,resetForNewSession:Y,applyActivatedSession:ue,recoverSession:re}}class ob{constructor(i){this.options=i,this.fetchFn=i.fetchFn??fetch,this.backoffMs=i.backoffMs??1e3,this.deadlineMs=i.deadlineMs??3e4}options;eligible=new Set;controllers=new Map;fetchFn;backoffMs;deadlineMs;markEligible(i){this.eligible.add(i)}startIfEligible(i){if(!this.eligible.delete(i)||this.controllers.has(i))return;const r=new AbortController;this.controllers.set(i,r),this.run(i,r)}cancel(i){this.eligible.delete(i),this.controllers.get(i)?.abort(),this.controllers.delete(i)}reconcile(i){const r=new Set(i);for(const u of this.controllers.keys())r.has(u)||this.cancel(u)}dispose(){for(const i of this.controllers.values())i.abort();this.controllers.clear(),this.eligible.clear()}async run(i,r){let u;const f=new Set;let h=!1;const m=window.setTimeout(()=>{h=!0,r.abort()},this.deadlineMs);try{for(;!r.signal.aborted;){try{const v={Accept:"text/event-stream"};u&&(v["Last-Event-ID"]=u);const S=await this.fetchFn(`${this.options.origin}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/events`,{headers:v,credentials:"include",signal:r.signal});if(S.status===404||!S.body)return;if(!S.ok)throw new Error(`HTTP ${S.status}`);const x=S.body.getReader(),R=new TextDecoder;let j="";for(;;){const{done:L,value:C}=await x.read();if(L||r.signal.aborted)break;j+=R.decode(C,{stream:!0});const z=j.split(`
16
+
17
+ `);j=z.pop()??"";for(const O of z){const F=O.split(`
18
+ `).find(N=>N.startsWith("id: "))?.slice(4);if(F&&(u=F),!F||f.has(F)||!O.includes("event: session_title"))continue;const te=O.split(`
19
+ `).find(N=>N.startsWith("data: "))?.slice(6);if(te)try{const N=JSON.parse(te),I=N.data?.title?.trim();if(!I)continue;if(f.add(F),!this.options.hasSession(i)||(this.options.onTitle(i,{title:I,automatic:!!N.data?.automatic}),N.data?.automatic))return}catch{}}}}catch{if(r.signal.aborted)return}r.signal.aborted||await cb(this.backoffMs,r.signal)}}finally{window.clearTimeout(m),this.controllers.get(i)===r&&this.controllers.delete(i),(h||!this.options.hasSession(i))&&this.options.refresh()}}}function cb(s,i){return new Promise(r=>{const u=window.setTimeout(h,s),f=()=>h();function h(){window.clearTimeout(u),i.removeEventListener("abort",f),r()}i.addEventListener("abort",f,{once:!0})})}async function ub(s){if(s.creatingRef?.current)throw new Error("CREATE_SESSION_IN_FLIGHT");s.creatingRef&&(s.creatingRef.current=!0),s.setCreatingSession?.(!0);try{const i=await(s.fetchFn??fetch)(`${s.origin}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:JSON.stringify(s.options??{})});if(!i.ok){const m=await i.json().catch(()=>({}));throw new Error(m.error?.message??`HTTP ${i.status}`)}const r=await i.json();if(!r.session)throw new Error("创建会话响应缺少 durable session");const u=r.session,f={sessionId:u.sessionId,...bc(u)},h=[u,...s.sessionListRef.current.filter(m=>m.sessionId!==u.sessionId)].slice(0,Ii);return s.sessionListRef.current=h,s.setSessionList(h),s.titleWatcher?.markEligible(u.sessionId),s.refreshSessionList(),f}finally{s.creatingRef&&(s.creatingRef.current=!1),s.setCreatingSession?.(!1)}}function db(s){const{origin:i,refs:r,setSession:u,thread:f,composer:h,browser:m,setError:v,setProcessOpen:S,setAutoScroll:x}=s,{applyActivatedSession:R,resetForNewSession:j,setMessages:L}=f,{setInput:C,setPendingImages:z}=h,{setPreviews:O,setActivePreviewPath:F}=m,[te,N]=p.useState([]),I=p.useRef([]);I.current=te;const D=p.useRef(null),[Z,q]=p.useState(!1),_=p.useRef(!1),le=p.useRef(0),oe=p.useCallback(()=>{r.sessionGenerationRef.current+=1,r.abortRef.current?.abort(),r.reconnectAbortRef.current?.abort();for(const w of r.sessionAbortControllersRef.current.values())w.abort();r.sessionAbortControllersRef.current.clear(),r.reconnectAbortRef.current=null,r.eventsStreamStateRef.current=null,r.streamingRef.current=!1,r.abortRef.current=null,r.assistantIdRef.current=null,r.lastEventIdRef.current=null,r.seenEventIdsRef.current=new Set,r.turnAssistantIdsRef.current=new Map,r.settledTurnIdsRef.current=new Set,r.activeTurnIdRef.current=null,j(),C(""),z([]),O([]),F(null),S(!1),x(!0)},[r,j,C,z,O,F,S,x]),ne=p.useCallback(async()=>{try{const w=await fetch(`${i}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!w.ok)return;const ee=(await w.json()).sessions??[],$=ee.slice(0,Ii),y=ee.slice(Ii);if(N($),y.length===0)return;await Promise.all(y.map(X=>fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(X.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":It()}}).catch(()=>{})));const A=r.sessionRef.current?.sessionId;A&&y.some(X=>X.sessionId===A)&&(le.current+=1,r.sessionRef.current=null,oe(),u(null),window.localStorage.removeItem(tn))}catch{}},[i,r,oe,u]),Q=p.useCallback(async w=>{if(window.confirm("确定删除该会话?删除后不可恢复。"))try{if(!(await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(w)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":It()}})).ok){v("删除会话失败");return}D.current?.cancel(w),r.sessionRef.current?.sessionId===w&&(le.current+=1,r.sessionRef.current=null,oe(),u(null),window.localStorage.removeItem(tn)),await ne()}catch(ee){v(ee instanceof Error?ee.message:String(ee))}},[i,r,u,oe,ne,v]),ie=p.useCallback(async w=>{const ee=++le.current;try{const $=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(w)}`,{credentials:"include"}),y=await $.json();if(!$.ok||!y.session)throw new Error(y.error?.message??"会话不可用");if(ee!==le.current)return;const A={sessionId:y.session.sessionId,...bc(y.session)};oe(),r.sessionRef.current=A,r.streamingRef.current=!!y.session.activeTurnId,r.activeTurnIdRef.current=y.session.activeTurnId??null,r.seenEventIdsRef.current=new Set,r.turnAssistantIdsRef.current=new Map,r.settledTurnIdsRef.current=new Set,r.lastEventIdRef.current=null,u(A),r.assistantIdRef.current=null,r.abortRef.current=r.sessionAbortControllersRef.current.get(w)??null,z([]),O([]),C(y.session.composerDraft??"");const X=zy(y.session.messages??[]);R({messages:X.messages,toolCalls:X.toolCalls,streaming:!!y.session.activeTurnId}),window.localStorage.setItem(tn,w),F(null)}catch($){if(ee!==le.current)return;v($ instanceof Error?$.message:String($))}},[i,r,u,z,O,C,R,oe,F,v]);p.useEffect(()=>{ne()},[ne]),D.current||(D.current=new ob({origin:i,hasSession:w=>I.current.some(ee=>ee.sessionId===w),onTitle:(w,ee)=>{N($=>$.map(y=>y.sessionId!==w||ee.automatic&&y.title?y:ee.automatic?{...y,title:ee.title}:{...y,displayTitle:ee.title}))},refresh:ne}));const fe=p.useCallback(w=>D.current?.startIfEligible(w),[]);p.useEffect(()=>{D.current?.reconcile(te.filter(w=>w.state!=="archived"&&!w.title).map(w=>w.sessionId))},[te]),p.useEffect(()=>()=>D.current?.dispose(),[]),p.useEffect(()=>{let w=!1;const ee=window.localStorage.getItem(tn);if(!ee)return;const $=++le.current;return(async()=>{try{const y=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(ee)}`,{credentials:"include"});if(!y.ok){window.localStorage.removeItem(tn);return}const A=await y.json();if(w||$!==le.current||!A.session)return;const X={sessionId:A.session.sessionId,...bc(A.session)};r.sessionGenerationRef.current+=1,r.sessionRef.current=X,r.activeTurnIdRef.current=A.session.activeTurnId??null,r.seenEventIdsRef.current=new Set,r.turnAssistantIdsRef.current=new Map,r.settledTurnIdsRef.current=new Set,r.lastEventIdRef.current=null,u(X),C(A.session.composerDraft??""),L((A.session.messages??[]).filter(Y=>Y.role==="user"||Y.role==="assistant").map(Y=>({id:Y.id,role:Y.role,text:Y.text,createdAt:Date.parse(Y.at)||Date.now()})))}catch{}})(),()=>{w=!0}},[i,r,u,C,L]);const W=p.useCallback(w=>ub({origin:i,sessionListRef:I,setSessionList:N,titleWatcher:D.current,refreshSessionList:ne,options:w,setCreatingSession:q,creatingRef:_}),[i,ne]),G=p.useCallback(async w=>{if(_.current)return null;const ee=++le.current;v(null);try{const $=await W(w);return ee!==le.current?null:(oe(),r.sessionRef.current=$,window.localStorage.setItem(tn,$.sessionId),u($),$)}catch($){if(ee!==le.current)return null;const y=$ instanceof Error?$.message:String($);return y!=="CREATE_SESSION_IN_FLIGHT"&&v(y),null}},[r,u,v,oe,W]),b=p.useCallback(async()=>{const w=r.sessionRef.current;if(!(!w||r.streamingRef.current))try{const ee=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(w.sessionId)}/compact`,{method:"POST",credentials:"include",headers:{"x-loop-console-confirmation":It()}}),$=await ee.json().catch(()=>({}));if(!ee.ok){v($.error?.message??"上下文压缩失败");return}v(null)}catch(ee){v(ee instanceof Error?ee.message:"上下文压缩失败")}},[i,r,v]);return{sessionList:te,creatingSession:Z,activateSession:ie,refreshSessionList:ne,deleteSession:Q,createSession:G,updateSession:async(w,ee)=>{if(!(await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(w)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":It()},body:JSON.stringify(ee)})).ok){v("会话更新失败");return}await ne(),ee.state==="archived"&&D.current?.cancel(w),ee.state==="archived"&&r.sessionRef.current?.sessionId===w&&(le.current+=1,r.sessionRef.current=null,oe(),u(null),window.localStorage.removeItem(tn))},watchSessionTitle:fe,compactSession:b}}function ds(s){const i=(s??"").trim();return i?/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(i)?"控制器版本已变更(Console 启动后代码被重新编译)。请重启 Console 后再试,一次会话中途不要升级/重建控制器。":/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(i)?"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。":/reopened Pi sessionId mismatch/i.test(i)?"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。":/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(i)?"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。":/force-required|requires --force/i.test(i)?"该终态需要强制 Discard。请确认后勾选强制再试。":i:"操作失败"}function fb(s){let i;const r=new Promise(u=>{i=u});return{...s,outcomePromise:r,resolveOutcome:i}}function Fm(s="network error while creating turn"){return{kind:"ambiguous",message:s}}function mb(s="无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)"){return{kind:"ambiguous",message:s}}function Wm(s){const{body:i,clientRequestId:r}=s,u=i.error?.code,f=i.error?.message??(s.httpOk?"turn was not accepted":`HTTP ${s.status}`);if(u==="TURN_ACTIVE"&&i.activeTurn?.turnId)return{kind:"adopt-active",activeTurn:i.activeTurn,message:"上一轮仍在运行,已重新连接;当前消息已保留。"};if(i.accepted===!0||s.httpOk&&i.turnId){const h=i.turn?.turnId??i.turnId;return h?{kind:"accepted",turnId:h,idempotent:i.idempotent===!0,turn:i.turn??{turnId:h,clientRequestId:r,state:i.state}}:{kind:"ambiguous",message:f}}return i.accepted===!1||u?{kind:"rejected",code:u,message:f}:{kind:"ambiguous",message:f}}function hb(s){const i=s.clientRequestId,r=s.state?.activeTurn,u=s.state?.latestTurn;return r?.clientRequestId===i&&r.turnId?{kind:"accepted",turnId:r.turnId,idempotent:!0,turn:r}:u?.clientRequestId===i&&u.turnId?{kind:"accepted",turnId:u.turnId,idempotent:!0,turn:u}:r?.turnId?{kind:"adopt-active",activeTurn:r,message:"上一轮仍在运行,已重新连接;当前消息已保留。"}:null}function pb(s){const i=s.clientRequestId,r=s.state?.activeTurn,u=s.state?.latestTurn,f=r?.state??s.state?.activeTurnState??void 0,h=u?.state??s.state?.latestTurnState??void 0;if(r?.clientRequestId===i&&r.turnId)return Ra(f)?{action:"release-terminal",turnId:r.turnId,state:String(f)}:{action:"bind-active",turnId:r.turnId};if(u?.clientRequestId===i&&u.turnId){if(Ra(h))return{action:"release-terminal",turnId:u.turnId,state:String(h)};if(!r?.turnId||r.clientRequestId===i)return{action:"bind-active",turnId:u.turnId}}return!Mi(s.state)&&!(!!r?.turnId&&r?.clientRequestId!==i)?{action:"release-not-accepted"}:{action:"hold"}}function Mi(s){if(s?.activeTurnId||s?.activeTurn?.turnId)return!0;const i=s?.runtime;return i?i.isStreaming===!0||i.isPromptRunning===!0||i.isCompacting===!0||i.isBashRunning===!0:!1}function Ra(s){return s==="settled"||s==="aborted"||s==="failed"}function _i(s){return s.pending.sessionId===s.sessionId&&s.pending.sessionGeneration===s.sessionGeneration&&s.pending.submitGeneration===s.submitGeneration}function gb(s,i){return`${s}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/turns`}function Pm(s,i){return`${s}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/state`}function vb(s,i){return`${s}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/events`}function yb(s,i,r){return`${s}/api/operator/v1/chat/sessions/${encodeURIComponent(i)}/turns/${encodeURIComponent(r)}/abort`}function gs(s,i){const r=s.pendingSubmission;i&&r&&r.clientRequestId!==i||(s.submitInFlight=!1,(!i||r?.clientRequestId===i)&&(r?.clientRequestId?s.releasedClientRequestIds.add(r.clientRequestId):i&&s.releasedClientRequestIds.add(i),s.pendingSubmission=null),s.pendingSubmission||(s.stopRequested=!1))}function Oh(s){s.stopRequested=!0}function zi(s){s.stopRequested=!1}function bb(s,i){return!(!i||s.abortPostedTurnIds.has(i))}function xb(s,i){i&&s.abortPostedTurnIds.add(i)}function Li(s,i){return!s.stopRequested||!bb(s,i)?null:(xb(s,i),s.stoppingTurnId=i,s.activeTurnId=i,i)}function eh(s,i){const r=s.pendingSubmission;return r&&r.clientRequestId!==i.clientRequestId?!1:(i.turnId&&s.settledTurnIds.add(i.turnId),gs(s,i.clientRequestId),zi(s),i.markIdle!==!1&&(s.streaming=!1,s.activeTurnId=null,s.assistantId=null,s.stoppingTurnId=null),!0)}function Sb(s,i){return _i({pending:i.pending,sessionId:s.sessionId,sessionGeneration:s.sessionGeneration,submitGeneration:s.submitGeneration})?(i.pending.acceptedTurnId=i.turnId,s.activeTurnId=i.turnId,s.turnAssistantIds.set(i.turnId,i.assistantId),s.streaming=!0,s.submitInFlight=!1,i.pending.resolveOutcome({kind:"accepted",turnId:i.turnId}),i.ui?.setStreaming(!0),i.ui?.setStreamingAssistantId(i.assistantId),i.ui?.setPendingImages([]),i.ui?.watchSessionTitle?.(i.sessionId),!0):(i.pending.resolveOutcome({kind:"stale"}),!1)}function jb(s,i){i.pending.resolveOutcome({kind:"adopt-active",activeTurn:{turnId:i.activeTurnId},message:i.message}),gs(s,i.pending.clientRequestId),i.current&&(i.ui?.clearEmptyAssistant(i.assistantId),i.ui?.setInput(i.text),i.ui?.setPendingImages(i.images),s.activeTurnId=i.activeTurnId,s.assistantId=null,s.streaming=!0,i.ui?.setStreaming(!0),i.ui?.setStreamingAssistantId(null),i.notice.setError(null),i.notice.showNotice(i.message))}function Rb(s,i){if(i.pending.resolveOutcome({kind:"rejected",message:i.message}),gs(s,i.pending.clientRequestId),!i.current)return;const r=i.ui?.formatError?i.ui.formatError(i.message):i.message;i.ui?.setError(r),s.streaming=!1,s.assistantId=null,i.ui?.setStreaming(!1),i.ui?.setStreamingAssistantId(null),i.ui?.clearEmptyAssistant(i.assistantId),i.ui?.setInput(i.text),i.ui?.setPendingImages(i.images)}function Tb(s,i,r){const u=_i({pending:r.pending,sessionId:s.sessionId,sessionGeneration:s.sessionGeneration,submitGeneration:s.submitGeneration});if(i.kind==="accepted"){if(Sb(s,{turnId:i.turnId,assistantId:r.assistantId,pending:r.pending,sessionId:r.sessionId,ui:r.acceptedUi})){const h=Li(s,i.turnId);h&&r.onAutoAbort?.(h)}return}if(i.kind==="adopt-active"){const f=u?Li(s,i.activeTurn.turnId):null;jb(s,{activeTurnId:i.activeTurn.turnId,message:i.message,assistantId:r.assistantId,text:r.text,images:r.images,pending:r.pending,current:u,notice:r.notice,ui:r.adoptUi}),f&&r.onAutoAbort?.(f);return}if(i.kind==="rejected"){Rb(s,{message:i.message,assistantId:r.assistantId,text:r.text,images:r.images,pending:r.pending,current:u,ui:r.rejectedUi}),zi(s);return}if(i.kind==="stale"){r.pending.resolveOutcome(i),gs(s,r.pending.clientRequestId),zi(s);return}r.pending.resolveOutcome(i)}function Nb(s,i,r,u){const f=s.pendingSubmission;if(!f)return"held";if(i.action==="bind-active"){const m=!!f.acceptedTurnId;m||(f.acceptedTurnId=i.turnId,s.activeTurnId=i.turnId,s.turnAssistantIds.set(i.turnId,f.assistantId),s.streaming=!0,s.submitInFlight=!1);const v=Li(s,i.turnId);return v&&u?.onAutoAbort?.(v),m?"held":"bound"}if(i.action==="release-terminal"||i.action==="release-not-accepted")return i.action==="release-terminal"&&s.settledTurnIds.add(i.turnId),gs(s,f.clientRequestId),zi(s),Mi(r)||(s.streaming=!1,s.activeTurnId=null,s.assistantId=null,s.stoppingTurnId=null,u?.markIdle?.()),"released";const h=r?.activeTurn?.turnId??r?.activeTurnId??null;return h&&(s.activeTurnId=h),"held"}const Cb="正在停止…",Eb="正在停止…",kb="停止请求未完成,正在与服务端对账…",wb="停止请求失败,正在与服务端对账…";function th(s){s.showNotice(Cb)}function nh(s){if(s.networkError)return{action:"keep-busy-notice",message:wb};const i=s.body.turn?.state;return s.body.accepted===!0&&Ra(i)?{action:"terminal-idle",turnId:s.turnId}:s.body.error?.code==="TURN_ABORT_PENDING"?{action:"abort-pending-notice"}:s.body.error?.code==="CHAT_TURN_OWNER_LOST"||s.body.error?.code==="OWNER_LOST"?{action:"owner-lost-reconcile"}:s.httpOk?{action:"noop"}:{action:"keep-busy-notice",message:kb}}function pc(s,i,r,u){const f=u?.sessionStillCurrent!==!1;if(i.action==="terminal-idle"){if(!f)return;s.settledTurnIds.add(i.turnId),s.streaming=!1,s.activeTurnId=null,s.assistantId=null,s.stoppingTurnId=null,u?.markIdle?.();return}if(i.action==="abort-pending-notice"){r.showNotice(Eb);return}if(i.action==="owner-lost-reconcile"){if(!f)return;u?.runtimeBusy||(s.stoppingTurnId&&s.settledTurnIds.add(s.stoppingTurnId),s.streaming=!1,s.activeTurnId=null,s.assistantId=null,s.stoppingTurnId=null,u?.markIdle?.());return}if(i.action==="keep-busy-notice"){r.showNotice(i.message);return}}function ah(s,i){Oh(s);const r=s.activeTurnId??s.pendingSubmission?.acceptedTurnId??null;if(r){const u=Li(s,r);return u?(i.notice&&th(i.notice),i.postAbort(u),{abortedTurnId:u,stopRequested:!0}):{abortedTurnId:null,stopRequested:!0}}return i.notice&&th(i.notice),{abortedTurnId:null,stopRequested:!0}}function En(s){return{submitInFlight:s.submitInFlightRef.current,pendingSubmission:s.pendingSubmissionRef.current,activeTurnId:s.activeTurnIdRef.current,streaming:s.streamingRef.current,assistantId:s.assistantIdRef.current,stoppingTurnId:s.stoppingTurnIdRef.current,settledTurnIds:s.settledTurnIdsRef.current,turnAssistantIds:s.turnAssistantIdsRef.current,sessionId:s.sessionRef.current?.sessionId??null,sessionGeneration:s.sessionGenerationRef.current,submitGeneration:s.submitGenerationRef.current,stopInFlight:s.stopInFlightRef.current,stopRequested:s.stopRequestedRef.current,abortPostedTurnIds:s.abortPostedTurnIdsRef.current,releasedClientRequestIds:s.releasedClientRequestIdsRef.current}}function rn(s,i){s.submitInFlightRef.current=i.submitInFlight,s.pendingSubmissionRef.current=i.pendingSubmission,s.activeTurnIdRef.current=i.activeTurnId,s.streamingRef.current=i.streaming,s.assistantIdRef.current=i.assistantId,s.stoppingTurnIdRef.current=i.stoppingTurnId,s.submitGenerationRef.current=i.submitGeneration,s.stopInFlightRef.current=i.stopInFlight,s.stopRequestedRef.current=i.stopRequested}function Ab(s){return s.split(`
20
+ `).find(i=>i.startsWith("event: "))?.slice(7).trim()??"message"}function Ib(){return new Promise(s=>window.setTimeout(s,25))}function gc(s,i){i&&s(r=>r.filter(u=>!(u.id===i&&u.role==="assistant"&&!u.text.trim())))}function Db(s){const{origin:i,refs:r,session:u,thread:f,composer:h,setError:m,setAutoScroll:v,setNotice:S,recoveryVersion:x=0,watchSessionTitle:R}=s,{applySseBlock:j,setMessages:L,setStreaming:C,setStreamingAssistantId:z,streaming:O}=f,{setInput:F,setPendingImages:te}=h,N=p.useCallback(G=>{S&&S({id:Date.now(),message:G})},[S]),I=p.useCallback(G=>{const b=En(r);gs(b,G),rn(r,b)},[r]),D=p.useCallback((G,b,E)=>{r.sessionRef.current?.sessionId!==G||r.sessionGenerationRef.current!==b||(r.streamingRef.current=!1,r.activeTurnIdRef.current=null,r.assistantIdRef.current=null,r.stoppingTurnIdRef.current=null,C(!1),z(null),gc(L,E))},[r,C,z,L]),Z=p.useCallback(async(G,b,E)=>{for(;!E.aborted;){const w=r.eventsStreamStateRef.current;if(!w||w.sessionId!==G||w.generation!==b)return;w.ready=!1;try{const ee={Accept:"text/event-stream"},$=r.lastEventIdRef.current;$&&(ee["Last-Event-ID"]=$);const y=await fetch(vb(i,G),{headers:ee,credentials:"include",signal:E});if(!y.ok||!y.body){if(y.status===404)return;await fc(2e3,E);continue}const A=y.body.getReader(),X=new TextDecoder;let Y="",ue=!0;const re=us("a");for(;;){const{done:de,value:ce}=await A.read();if(de)break;Y+=X.decode(ce,{stream:!0});const ye=Y.split(`
21
+
22
+ `);Y=ye.pop()??"";for(const je of ye){if(Ab(je)==="stream_ready"){const He=r.eventsStreamStateRef.current;He?.sessionId===G&&He.generation===b&&(He.ready=!0),ue=!1;continue}const Te=r.assistantIdRef.current??re,_e=j(je,Te,{replay:ue,targetSessionId:G,generation:b});_e&&(r.lastEventIdRef.current=_e)}}const ae=r.eventsStreamStateRef.current;ae?.sessionId===G&&ae.generation===b&&(ae.ready=!1),await fc(1e3,E)}catch{if(E.aborted)return;await fc(2e3,E)}}},[i,r,j]),q=p.useCallback((G,b)=>{const E=r.eventsStreamStateRef.current;if(E?.sessionId===G&&E.generation===b&&r.reconnectAbortRef.current)return;r.reconnectAbortRef.current?.abort();const w=new AbortController;r.reconnectAbortRef.current=w,r.eventsStreamStateRef.current={sessionId:G,generation:b,ready:!1},Z(G,b,w.signal)},[r,Z]),_=p.useCallback(async(G,b)=>{q(G,b);const E=Date.now()+5e3;for(;Date.now()<E;){const w=r.eventsStreamStateRef.current;if(w?.sessionId===G&&w.generation===b&&w.ready)return;if(r.sessionRef.current?.sessionId!==G||r.sessionGenerationRef.current!==b)throw new Error("会话已切换");await Ib()}throw new Error("事件连接未就绪,请检查 Console 连接后重试")},[r,q]),le=p.useCallback(async G=>{try{const b=await fetch(Pm(i,G),{credentials:"include"}),E=await b.json().catch(()=>({}));return b.ok?E.state??null:null}catch{return null}},[i]),oe=p.useCallback(async G=>{try{const b=await fetch(gb(i,G.sessionId),{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:JSON.stringify({clientRequestId:G.clientRequestId,text:G.text.trim()||"请查看附件图片。",images:G.images.map(({type:w,mimeType:ee,data:$})=>({type:w,mimeType:ee,data:$}))})}),E=await b.json().catch(()=>({}));return{httpOk:b.ok,status:b.status,body:E}}catch{return{httpOk:!1,status:0,body:{},networkError:!0}}},[i]),ne=p.useCallback(()=>({showNotice:N,setError:G=>m(G)}),[N,m]),Q=p.useCallback(async(G,b,E)=>{r.stoppingTurnIdRef.current=E,r.streamingRef.current=!0,C(!0);try{const w=await fetch(yb(i,G,E),{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:"{}"}),ee=await w.json().catch(()=>({}));if(r.sessionRef.current?.sessionId!==G||r.sessionGenerationRef.current!==b||r.stoppingTurnIdRef.current!==E)return;const $=nh({httpOk:w.ok,turnId:E,body:ee}),y=En(r);if(y.stoppingTurnId=E,$.action==="owner-lost-reconcile"){const A=await le(G),X=r.sessionRef.current?.sessionId===G&&r.sessionGenerationRef.current===b;pc(y,$,ne(),{sessionStillCurrent:X,runtimeBusy:Mi(A??void 0),markIdle:()=>D(G,b,r.assistantIdRef.current)}),rn(r,y);return}pc(y,$,ne(),{sessionStillCurrent:!0,markIdle:()=>D(G,b,r.assistantIdRef.current)}),rn(r,y)}catch{const w=En(r);pc(w,nh({httpOk:!1,turnId:E,body:{},networkError:!0}),ne()),rn(r,w)}},[i,r,C,D,le,ne]),ie=p.useCallback((G,b)=>{const E=En(r);E.sessionId=r.sessionRef.current?.sessionId??null,E.sessionGeneration=r.sessionGenerationRef.current,E.submitGeneration=r.submitGenerationRef.current;const w=ee=>{te(ee)};Tb(E,G,{assistantId:b.assistantId,text:b.text,images:b.images,pending:b.pending,sessionId:b.sessionId,notice:ne(),acceptedUi:{setStreaming:C,setStreamingAssistantId:z,setPendingImages:w,watchSessionTitle:R},adoptUi:{clearEmptyAssistant:ee=>gc(L,ee),setInput:F,setPendingImages:w,setStreaming:C,setStreamingAssistantId:z},rejectedUi:{setError:m,setStreaming:C,setStreamingAssistantId:z,clearEmptyAssistant:ee=>gc(L,ee),setInput:F,setPendingImages:w,formatError:ds},onAutoAbort:ee=>{Q(b.sessionId,b.generation,ee)}}),rn(r,E)},[r,ne,C,z,te,R,L,F,m,Q]),fe=p.useCallback(async(G,b)=>{const E=r.sessionRef.current,w=r.sessionGenerationRef.current;if(!E||!G.trim()&&b.length===0||r.streamingRef.current||r.submitInFlightRef.current||r.pendingSubmissionRef.current)return;r.submitInFlightRef.current=!0;const ee=++r.submitGenerationRef.current,$=us("chat-submit"),y=us("u"),A=us("a"),X=G.trim(),Y=b.slice(),ue=fb({clientRequestId:$,submitGeneration:ee,sessionId:E.sessionId,sessionGeneration:w,text:X,images:Y,assistantId:A,userMessageId:y});r.pendingSubmissionRef.current=ue;try{await _(E.sessionId,w)}catch(ye){r.sessionRef.current?.sessionId===E.sessionId&&r.sessionGenerationRef.current===w&&m(ds(ye instanceof Error?ye.message:String(ye))),I($);return}if(r.sessionRef.current?.sessionId!==E.sessionId||r.sessionGenerationRef.current!==w){I($);return}const re={id:y,role:"user",text:X,createdAt:Date.now()};L(ye=>[...ye,re,{id:A,role:"assistant",text:"",createdAt:Date.now()}]),F(""),v(!0),m(null),r.streamingRef.current=!0,r.assistantIdRef.current=A,C(!0),z(A);const ae={sessionId:E.sessionId,generation:w,submitGeneration:ee,assistantId:A,text:X,images:Y,pending:ue},de=await oe({sessionId:E.sessionId,clientRequestId:$,text:X,images:Y});if(!_i({pending:ue,sessionId:r.sessionRef.current?.sessionId,sessionGeneration:r.sessionGenerationRef.current,submitGeneration:r.submitGenerationRef.current})){ue.resolveOutcome({kind:"stale"}),I($);return}let ce=de.networkError?Fm():Wm({httpOk:de.httpOk,status:de.status,body:de.body,clientRequestId:$});if(ce.kind==="ambiguous"){const ye=await le(E.sessionId),je=ye?hb({clientRequestId:$,state:ye}):null;if(je)ce=je;else{const Te=await oe({sessionId:E.sessionId,clientRequestId:$,text:X,images:Y});if(!_i({pending:ue,sessionId:r.sessionRef.current?.sessionId,sessionGeneration:r.sessionGenerationRef.current,submitGeneration:r.submitGenerationRef.current})){ue.resolveOutcome({kind:"stale"}),I($);return}if(ce=Te.networkError?Fm("无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)"):Wm({httpOk:Te.httpOk,status:Te.status,body:Te.body,clientRequestId:$}),ce.kind==="ambiguous"){const _e=ce.message||"无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)";ce=mb(_e),N(_e)}}}ie(ce,ae)},[i,r,_,oe,le,ie,I,N,L,F,v,m,C,z]),W=p.useCallback(async()=>{const G=r.sessionRef.current?.sessionId,b=r.sessionGenerationRef.current;if(!G)return;const E=En(r),w=ah(E,{postAbort:()=>{},notice:ne()});if(rn(r,E),w.abortedTurnId){if(r.stopInFlightRef.current)return;r.stopInFlightRef.current=!0;try{await Q(G,b,w.abortedTurnId)}finally{r.stopInFlightRef.current=!1}return}const ee=r.pendingSubmissionRef.current;if(ee&&!r.stopInFlightRef.current){r.stopInFlightRef.current=!0;try{const $=await ee.outcomePromise;if(r.sessionRef.current?.sessionId!==G||r.sessionGenerationRef.current!==b)return;let y=null;if($.kind==="accepted")y=$.turnId;else if($.kind==="adopt-active")y=$.activeTurn.turnId;else{if($.kind==="ambiguous")return;r.stopRequestedRef.current=!1;return}if(!y)return;const A=En(r);Oh(A);const X=ah(A,{postAbort:()=>{},notice:ne()});rn(r,A),X.abortedTurnId&&await Q(G,b,X.abortedTurnId)}finally{r.stopInFlightRef.current=!1}}},[r,ne,Q]);return p.useEffect(()=>{const G=!!r.pendingSubmissionRef.current||r.submitInFlightRef.current||r.stopRequestedRef.current||!!r.activeTurnIdRef.current;if(!u||!O&&!G)return;const b=u.sessionId,E=r.sessionGenerationRef.current;let w=!1;const ee=async()=>{try{const X=await fetch(Pm(i,b),{credentials:"include"}),Y=await X.json().catch(()=>({}));if(w||!X.ok||r.sessionRef.current?.sessionId!==b||r.sessionGenerationRef.current!==E)return;const ue=Y.state,re=r.pendingSubmissionRef.current;if(re){const Te=pb({clientRequestId:re.clientRequestId,state:ue}),_e=En(r),He=Nb(_e,Te,ue,{markIdle:()=>D(b,E,r.assistantIdRef.current),onAutoAbort:Qe=>{Q(b,E,Qe)}});if(rn(r,_e),He==="bound"){C(!0);return}if(He==="released"||!re.acceptedTurnId&&!_e.pendingSubmission?.acceptedTurnId)return}const ae=ue?.activeTurn?.turnId??ue?.activeTurnId??null;r.activeTurnIdRef.current=ae;const de=Mi(ue),ce=r.pendingSubmissionRef.current;if(ce){const Te=ue?.latestTurn?.clientRequestId===ce.clientRequestId&&Ra(ue?.latestTurn?.state),_e=ue?.activeTurn?.clientRequestId===ce.clientRequestId&&Ra(ue?.activeTurn?.state);if(Te||_e){const He=_e?ue?.activeTurn?.turnId??null:ue?.latestTurn?.turnId??ce.acceptedTurnId??null,Qe=En(r);eh(Qe,{clientRequestId:ce.clientRequestId,turnId:He,markIdle:!de}),rn(r,Qe),de||D(b,E,r.assistantIdRef.current);return}}if(de)return;const ye=r.assistantIdRef.current;if(ae&&!(Ra(ue?.activeTurn?.state)||Ra(ue?.activeTurnState)))return;ae&&r.settledTurnIdsRef.current.add(ae);const je=ce?.clientRequestId;if(je){const Te=En(r);eh(Te,{clientRequestId:je,turnId:ae,markIdle:!0}),rn(r,Te)}else I();D(b,E,ye)}catch{}},$=()=>{document.visibilityState==="visible"&&ee()},y=()=>{ee()},A=window.setInterval(()=>{ee()},15e3);return document.addEventListener("visibilitychange",$),window.addEventListener("online",y),ee(),()=>{w=!0,window.clearInterval(A),document.removeEventListener("visibilitychange",$),window.removeEventListener("online",y)}},[i,r,u,O,D,I,Q]),p.useEffect(()=>{if(!u)return;const G=r.sessionGenerationRef.current;return q(u.sessionId,G),()=>{const b=r.eventsStreamStateRef.current;b?.sessionId===u.sessionId&&b.generation===G&&(r.reconnectAbortRef.current?.abort(),r.reconnectAbortRef.current=null,r.eventsStreamStateRef.current=null)}},[u,x,r,q]),{sendPrompt:fe,handleStop:W,openEventsStream:Z}}function Ob(s){const{origin:i,refs:r,thread:u,setError:f}=s,{interview:h,setInterview:m}=u,[v,S]=p.useState(""),x=p.useCallback(async()=>{const L=r.sessionRef.current;if(!L)return;const C=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!C)return;const z=await fetch(`${i}/api/operator/v1/chat/sessions/${L.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:JSON.stringify({taskId:C})}),O=await z.json();if(!z.ok){f(O.error?.message??`HTTP ${z.status}`);return}m({interviewSessionId:O.interview?.sessionId,taskId:C,state:O.interview?.state,question:O.question,draft:O.draft?.draft,draftSha256:O.draft?.draftSha256,assessment:O.assessment})},[i,r,m,f]),R=p.useCallback(async L=>{const C=r.sessionRef.current;if(!C||!h?.interviewSessionId||!h.question)return;const z=await fetch(`${i}/api/operator/v1/chat/sessions/${C.sessionId}/interviews/${h.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:JSON.stringify({questionId:h.question.id,response:L,...L==="override"?{text:v}:{}})}),O=await z.json();if(!z.ok){f(O.error?.message??`HTTP ${z.status}`);return}m(F=>({...F??{},state:O.interview?.state,question:O.question,draft:O.draft?.draft,draftSha256:O.draft?.draftSha256,assessment:O.assessment,taskKindRecommendation:O.taskKindRecommendation??F?.taskKindRecommendation})),S("")},[i,r,h,v,m,f]),j=p.useCallback(async()=>{const L=r.sessionRef.current;if(!L||!h?.interviewSessionId||!h.taskKindRecommendation)return;const C=await fetch(`${i}/api/operator/v1/chat/sessions/${L.sessionId}/interviews/${h.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":It()},credentials:"include",body:JSON.stringify({taskKind:h.taskKindRecommendation})}),z=await C.json();if(!C.ok){f(z.error?.message??`HTTP ${C.status}`);return}m(O=>({...O??{},confirmedTaskKind:O?.taskKindRecommendation,taskKindRecommendation:void 0,draft:z.draft?.draft,draftSha256:z.draft?.draftSha256,assessment:z.assessment}))},[i,r,h,m,f]);return{interviewAnswer:v,setInterviewAnswer:S,startInterview:x,answerInterview:R,confirmTaskKind:j}}function Mb(s){const{origin:i,refs:r,sessionId:u,setError:f}=s,[h,m]=p.useState({}),[v,S]=p.useState(new Set),[x,R]=p.useState(null),[j,L]=p.useState([]),[C,z]=p.useState(null),[O,F]=p.useState(!1),te=p.useCallback(async(Z="")=>{try{R(null);const q=await fetch(`${i}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(Z)}`,{credentials:"include"}),_=await q.json();if(!q.ok)throw new Error(_.error?.message??"无法读取仓库目录");m(le=>({...le,[Z]:_.data?.entries??[]}))}catch(q){R(q instanceof Error?q.message:String(q))}},[i]);p.useEffect(()=>{te()},[te]);const N=p.useCallback(async Z=>{F(!0);try{const q=await fetch(`${i}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(Z)}`,{credentials:"include"}),_=await q.json();if(!q.ok||!_.data)throw new Error(_.error?.message??"无法预览文件");L(le=>{const oe=[...le.filter(Q=>Q.path!==_.data.path),_.data],ne=r.sessionRef.current?.sessionId;return ne&&window.localStorage.setItem(`${tn}.previews.${ne}`,JSON.stringify(oe.map(Q=>Q.path))),oe}),z(_.data.path)}catch(q){f(q instanceof Error?q.message:String(q))}finally{F(!1)}},[i,r,f]);p.useEffect(()=>{if(!u)return;let Z=[];try{const q=JSON.parse(window.localStorage.getItem(`${tn}.previews.${u}`)??"[]");Array.isArray(q)&&(Z=q.filter(_=>typeof _=="string").slice(0,10))}catch{}Z.length&&Promise.all(Z.map(async q=>{const _=await fetch(`${i}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(q)}`,{credentials:"include"});if(_.ok)return(await _.json()).data})).then(q=>{if(r.sessionRef.current?.sessionId!==u)return;const _=q.filter(le=>!!le);L(_),z(_.at(-1)?.path??null)})},[i,u,r]);const I=p.useCallback(Z=>{S(q=>{const _=new Set(q);return _.has(Z)?_.delete(Z):_.add(Z),_}),h[Z]||te(Z)},[h,te]),D=p.useCallback(Z=>{L(q=>{const _=q.filter(le=>le.path!==Z);return u&&window.localStorage.setItem(`${tn}.previews.${u}`,JSON.stringify(_.map(le=>le.path))),_}),z(q=>q===Z?j.find(_=>_.path!==Z)?.path??null:q)},[j,u]);return{tree:h,expandedDirs:v,treeError:x,previews:j,activePreviewPath:C,setActivePreviewPath:z,previewLoading:O,setPreviews:L,loadTree:te,openPreview:N,closePreview:D,toggleDir:I}}function _b(s){const{origin:i,sessionId:r,refs:u,setError:f}=s,[h,m]=p.useState(""),[v,S]=p.useState([]),[x,R]=p.useState([]),[j,L]=p.useState(!1),[C,z]=p.useState(0),O=p.useRef(null),F=p.useCallback(oe=>{m(oe),L(oe.startsWith("/")),z(0)},[]);p.useEffect(()=>{if(!r)return;const oe=h.slice(0,O.current?.selectionStart??h.length).match(/(?:^|\s)@([^\s@]*)$/);if(!oe){S([]);return}const ne=window.setTimeout(()=>{fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(r)}/files?q=${encodeURIComponent(oe[1]??"")}`).then(Q=>Q.ok?Q.json():null).then(Q=>S((Q?.files??[]).map(ie=>ie.path)))},150);return()=>window.clearTimeout(ne)},[i,r,h]);const te=p.useCallback(oe=>{const ne=O.current?.selectionStart??h.length,ie=h.slice(0,ne).search(/@[^\s@]*$/);ie<0||(m(`${h.slice(0,ie)}@${oe} ${h.slice(ne)}`),S([]))},[h]),N=p.useCallback(oe=>{for(const ne of Array.from(oe).slice(0,4)){if(!ne.type.startsWith("image/")||ne.size>5*1024*1024){f("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const Q=new FileReader;Q.onload=()=>{const ie=String(Q.result??""),fe=ie.slice(ie.indexOf(",")+1);R(W=>[...W,{name:ne.name,type:"image",mimeType:ne.type,data:fe}].slice(0,4))},Q.readAsDataURL(ne)}},[f]),I=p.useCallback(oe=>{R(ne=>ne.filter(Q=>Q!==oe))},[]);p.useLayoutEffect(()=>{const oe=O.current;oe&&(oe.style.height="auto",oe.style.height=`${Math.min(oe.scrollHeight,280)}px`)},[h]),p.useEffect(()=>{if(!r)return;const oe=window.setTimeout(()=>{fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(r)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":It()},body:JSON.stringify({text:h})})},400);return()=>window.clearTimeout(oe)},[i,r,h]);const D=p.useMemo(()=>h.startsWith("/")?Nc.filter(oe=>oe.command.startsWith(h.trim().split(/\s+/,1)[0].toLowerCase())):[],[h]),Z=p.useCallback(()=>{u.isComposingRef.current=!0},[u]),q=p.useCallback(()=>{u.isComposingRef.current=!1,u.compositionEndedAtRef.current=Date.now()},[u]),_=p.useCallback(()=>u.isComposingRef.current,[u]),le=p.useCallback(()=>Date.now()-u.compositionEndedAtRef.current<100,[u]);return p.useEffect(()=>{qv({origin:i,sessionId:r,refs:u})},[i,r,u]),{input:h,setInput:m,handleInputChange:F,fileOptions:v,pendingImages:x,setPendingImages:R,addImagesFromFiles:N,removeImage:I,shortcutOpen:j,setShortcutOpen:L,shortcutIndex:C,setShortcutIndex:z,filteredShortcuts:D,insertFileReference:te,textareaRef:O,onCompositionStart:Z,onCompositionEnd:q,isComposingNow:_,recentlyComposedNow:le}}const zb=[{toolId:"read",kind:"explore",description:"Pi 内置读取文件。"},{toolId:"write",kind:"explore",description:"Pi 内置写入文件(软约束:大改优先走 DAG)。"},{toolId:"edit",kind:"explore",description:"Pi 内置编辑文件(软约束:大改优先走 DAG)。"},{toolId:"bash",kind:"explore",description:"Pi 内置 shell 执行(软约束:优先受治路径)。"},{toolId:"grep",kind:"explore",description:"Pi 内置内容搜索。"},{toolId:"find",kind:"explore",description:"按名称查找文件路径。"},{toolId:"ls",kind:"explore",description:"列出目录内容。"},{toolId:"safe-read",kind:"explore",description:"安全读取仓库相对路径文件;拒绝敏感文件并自动脱敏 secret。"},{toolId:"safe-grep",kind:"explore",description:"安全搜索仓库内容;跳过敏感文件并自动脱敏搜索结果。"},{toolId:"git-status",kind:"explore",description:"固定参数执行 git status --porcelain(无 shell)。"},{toolId:"git-diff",kind:"explore",description:"固定参数查看 git diff;敏感路径不可查看且结果自动脱敏。"}];function Lb(s){if(!s)return null;const i=(s.tools??[]).map(u=>({toolId:u.toolId,action:u.action,description:u.description,kind:u.kind??"read",cli:u.cli})),r=[...zb];return{explore:r,operator:i,total:r.length+i.length}}let Ub=0;function Hb(s){const{origin:i,session:r,setSession:u,refs:f,setError:h}=s,[m,v]=p.useState(null),[S,x]=p.useState([]),[R,j]=p.useState("idle"),[L,C]=p.useState(null),[z,O]=p.useState([]),[F,te]=p.useState(null),[N,I]=p.useState(null),[D,Z]=p.useState(!1),[q,_]=p.useState(!1),[le,oe]=p.useState(!1),ne=p.useRef(null),Q=p.useRef(null),ie=p.useRef(0);p.useEffect(()=>{ie.current=-1,Z(!1)},[r?.sessionId,Z]);const W=ps().snapshot,G=p.useCallback(async()=>{try{const re=await fetch(`${i}/api/operator/v1/chat/capabilities`);if(!re.ok)return;const ae=await re.json();v(ae)}catch{}},[i]);p.useEffect(()=>{G()},[G]);const b=p.useCallback(async()=>{if(!r){x([]),j("idle");return}const re=r.sessionId;j("loading"),C(null);try{const ae=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}/models`,{credentials:"include"}),de=await ae.json().catch(()=>null);if(f.sessionRef.current?.sessionId!==re)return;if(!ae.ok||!de){j("error"),C(de?.error?.message??`模型列表读取失败(HTTP ${ae.status})`);return}x(de.models??[]),O(de.thinkingLevels??[]),j("ready")}catch(ae){if(f.sessionRef.current?.sessionId!==re)return;j("error"),C(ae instanceof Error?ae.message:String(ae))}},[i,r,f]);p.useEffect(()=>{b()},[b]),p.useEffect(()=>{if(!r){te(null),I(null);return}const re=r.sessionId,ae=`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}`;I(null),fetch(`${ae}/runtime-context`,{credentials:"include"}).then(async de=>{const ce=await de.json().catch(()=>null);if(!ce?.context||f.sessionRef.current?.sessionId!==re)return;const ye=ce.context,je=Yv().snapshot;te(Te=>Hv(Te,ye,je,re))}).catch(()=>{f.sessionRef.current?.sessionId===re&&I("注入上下文读取失败,请重试")})},[i,r?.sessionId,f]),p.useEffect(()=>{if(!W||!r||W.sessionId!==r.sessionId)return;const re=hh(W);u(ae=>{if(!ae||ae.sessionId!==W.sessionId||Yy(ae,re))return ae;const de=Dh(ae,re);return f.sessionRef.current=de,de}),te(ae=>{if(!ae)return ae;const de={...ae,...re.model?{model:re.model}:{},...re.thinkingLevel?{thinkingLevel:re.thinkingLevel}:{}};return de.model?.provider===ae.model?.provider&&de.model?.modelId===ae.model?.modelId&&de.thinkingLevel===ae.thinkingLevel?ae:de})},[W,r?.sessionId,f,u,te]);const E=p.useCallback(async re=>{if(!r)return!1;const ae=r.sessionId,de=++Ub;ie.current=de,vh({type:"mutation-start",token:de}),Z(!0);try{const ce=await fetch(`${i}/api/operator/v1/chat/sessions/${encodeURIComponent(r.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":It()},body:JSON.stringify(re)}),ye=await ce.json().catch(()=>({}));return ie.current!==de?!1:ce.ok?!ye.session||f.sessionRef.current?.sessionId!==ae?!1:Gv(de,ae,ye.snapshot):(f.sessionRef.current?.sessionId===ae&&(h(ye.error?.message??`模型或思考等级切换失败(HTTP ${ce.status})`),hs()),!1)}catch(ce){return ie.current!==de||f.sessionRef.current?.sessionId===ae&&h(ce instanceof Error?ce.message:String(ce)),!1}finally{$v(de,ae,f)&&ie.current===de&&Z(!1)}},[i,r,f,u,h]);p.useEffect(()=>{if(!q)return;const re=de=>{const ce=ne.current;ce&&de.target instanceof Node&&!ce.contains(de.target)&&_(!1)},ae=de=>{de.key==="Escape"&&_(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",ae),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",ae)}},[q]),p.useEffect(()=>{if(!le)return;const re=de=>{const ce=Q.current;ce&&de.target instanceof Node&&!ce.contains(de.target)&&oe(!1)},ae=de=>{de.key==="Escape"&&oe(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",ae),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",ae)}},[le]);const w=p.useMemo(()=>Lb(m),[m]),ee=W?(W.models??[]).map(re=>({provider:re.provider,id:re.id,...re.name?{name:re.name}:{},...re.hasCredentials!==void 0?{hasCredentials:re.hasCredentials}:{}})):S,$=W?.thinkingLevels?.length?W.thinkingLevels.map(re=>re.value):z,y=r?.model??F?.model,A=y?Oi(y.provider,y.modelId):"",X=W?.selection?.thinkingSelection??r?.thinkingLevel??"",Y=W?.selection?.effectiveThinkingLevel??r?.thinkingLevel??void 0,ue=!A||ee.some(re=>Oi(re.provider,re.id)===A);return{capabilities:m,models:ee,modelsStatus:R,modelsError:L,onRetryModels:()=>{b()},thinkingLevels:$,runtimeContext:F,runtimeContextError:N,onRetryRuntimeContext:()=>{I(null),hs()},toolsOpen:q,setToolsOpen:_,runtimeContextOpen:le,setRuntimeContextOpen:oe,toolsMenuRef:ne,runtimeContextMenuRef:Q,switchRuntime:E,switching:D,toolCatalog:w,activeModel:y,activeModelRef:A,activeThinkingLevel:X,effectiveThinkingLevel:Y,activeModelListed:ue}}const sh={comfortableMin:1450,compactMin:1100};function Bb(s){return!Number.isFinite(s)||s<0?"narrow":s>=sh.comfortableMin?"comfortable":s>=sh.compactMin?"compact":"narrow"}function qb(s){return s==="compact"||s==="narrow"}const Gb={mode:"comfortable",width:1600,landingDensity:"comfortable",emptyHeight:720};function $b(s,i){const[r,u]=p.useState(Gb);return p.useEffect(()=>{const f=s.current;if(!f||typeof ResizeObserver>"u")return;const h=()=>{const R=f.getBoundingClientRect().width,j=i?.current??null,L=j?j.getBoundingClientRect().height:720;u({mode:Bb(R),width:R,landingDensity:hy(L),emptyHeight:L})};h();const m=new ResizeObserver(()=>h());m.observe(f);let v=null;const S=()=>{const R=i?.current??null;R&&R!==v&&(v&&m.unobserve(v),m.observe(R),v=R,h())};S();const x=window.setInterval(S,250);return()=>{window.clearInterval(x),m.disconnect()}},[s,i]),r}function Yb(s="none"){return{active:s}}function ja(s,i){return{active:i}}function kn(s={active:"none"}){return{active:"none"}}function Kb(s){return{sidebarDrawerOpen:s.active==="sidebar-drawer",processOpen:s.active==="process",runtimeContextOpen:s.active==="runtime-context",toolsOpen:s.active==="tools"}}function Xb(s){const{origin:i,surface:r="standalone"}=s,u=r==="workspace",f=Wy(),[h,m]=p.useState(null),[v,S]=p.useState(null),[x,R]=p.useState(!0),[j,L]=p.useState(!0),[C,z]=p.useState(()=>Yb()),[O,F]=p.useState(null),[te,N]=p.useState(0),I=p.useRef(null),D=p.useRef(null),Z=p.useRef(null),q=p.useRef(null),_=p.useRef(null),le=p.useRef(null),oe=p.useRef(null),ne=$b(q,_),Q=ne.mode,ie=Kb(C),fe=ie.processOpen,W=qb(Q)&&fe,G=p.useCallback(J=>{z(he=>{const ft=he.active==="process";return(typeof J=="function"?J(ft):J)?ja(he,"process"):he.active==="process"?kn(he):he})},[]),b=_b({origin:i,sessionId:v?.sessionId,refs:f,setError:m}),E=Mb({origin:i,refs:f,sessionId:v?.sessionId,setError:m}),w=p.useRef(()=>{}),ee=p.useCallback(J=>{w.current(J)},[]),$=rb({origin:i,refs:f,sessionId:v?.sessionId,setError:m,setProcessOpen:G,onReconcile:ee});w.current=J=>{const he=f.sessionRef.current?.sessionId;he&&(async()=>await $.recoverSession(he)?(F({id:Date.now(),message:"已自动恢复:会话事件已重新同步,可继续对话。"}),N(tt=>tt+1)):F({id:Date.now(),message:"自动恢复未完成,将在重连时重试。"}))()};const y=db({origin:i,refs:f,setSession:S,thread:$,composer:{setInput:b.setInput,setPendingImages:b.setPendingImages},browser:{setPreviews:E.setPreviews,setActivePreviewPath:E.setActivePreviewPath},setError:m,setProcessOpen:G,setAutoScroll:L}),A=Db({origin:i,refs:f,session:v,thread:$,composer:{setInput:b.setInput,setPendingImages:b.setPendingImages},setError:m,setNotice:F,setAutoScroll:L,recoveryVersion:te,watchSessionTitle:y.watchSessionTitle}),X=Ob({origin:i,refs:f,thread:$,setError:m}),Y=Hb({origin:i,session:v,setSession:S,refs:f,setError:m});p.useEffect(()=>{Y.toolsOpen&&C.active!=="tools"?z(J=>ja(J,"tools")):!Y.toolsOpen&&C.active==="tools"&&z(J=>kn(J))},[Y.toolsOpen,C.active]),p.useEffect(()=>{Y.runtimeContextOpen&&C.active!=="runtime-context"?z(J=>ja(J,"runtime-context")):!Y.runtimeContextOpen&&C.active==="runtime-context"&&z(J=>kn(J))},[Y.runtimeContextOpen,C.active]),p.useEffect(()=>{C.active!=="tools"&&Y.toolsOpen&&Y.setToolsOpen(!1),C.active!=="runtime-context"&&Y.runtimeContextOpen&&Y.setRuntimeContextOpen(!1)},[C.active]);const{sendPrompt:ue,handleStop:re}=A,ae=p.useCallback(async J=>{await ue(J,b.pendingImages)},[ue,b.pendingImages]),de=p.useCallback(()=>{b.textareaRef.current?.focus()},[b.textareaRef]),ce=p.useCallback(()=>{z(J=>J.active==="sidebar-drawer"?kn(J):J)},[]),ye=p.useCallback(()=>{Y.setToolsOpen(!1),Y.setRuntimeContextOpen(!1),z(J=>ja(J,"sidebar-drawer"))},[Y.setToolsOpen,Y.setRuntimeContextOpen]),je=p.useCallback(J=>{y.activateSession(J),ce(),queueMicrotask(()=>{D.current?.focus?.(),de()})},[y,ce,de]),Te=p.useCallback(J=>{b.setInput(he=>`${he}${he&&!he.endsWith(" ")?" ":""}@${J} `),ce(),queueMicrotask(()=>de())},[b,ce,de]),_e=p.useCallback(J=>{E.openPreview(J),ce()},[E,ce]),He=p.useCallback(()=>{const J=D.current;if(!J)return;const he=J.scrollHeight-J.scrollTop-J.clientHeight<80;L(he)},[]);p.useEffect(()=>{j&&I.current?.scrollIntoView({behavior:"smooth",block:"end"})},[$.messages,j,$.streaming]),p.useEffect(()=>{if(!O)return;const J=window.setTimeout(()=>F(null),6e3);return()=>window.clearTimeout(J)},[O]);const Qe=p.useCallback(J=>{const he=my(J);b.setInput(""),b.setShortcutOpen(!1),he&&(he.action==="focus:interview"?X.startInterview():he.action==="show-help"?m(`可用 shortcuts:${Nc.map(ft=>ft.command).join("、")}`):he.action.startsWith("focus-panel:")?Z.current?.scrollIntoView({behavior:"smooth",block:"nearest"}):m(`未知 shortcut:${he.command}`))},[b.setInput,b.setShortcutOpen,X.startInterview]),bt=p.useCallback(J=>{if(b.shortcutOpen&&b.filteredShortcuts.length>0&&!J.nativeEvent.isComposing){if(J.key==="ArrowDown"||J.key==="ArrowUp"){J.preventDefault(),b.setShortcutIndex(tt=>(tt+(J.key==="ArrowDown"?1:b.filteredShortcuts.length-1))%b.filteredShortcuts.length);return}if(J.key==="Escape"){J.preventDefault(),b.setShortcutOpen(!1);return}if(J.key==="Enter"){J.preventDefault(),Qe(b.filteredShortcuts[b.shortcutIndex]?.command??b.filteredShortcuts[0].command);return}}const he=Date.now()-f.compositionEndedAtRef.current<100,ft=f.isComposingRef.current||J.nativeEvent.isComposing;if(J.key==="Enter"&&!J.shiftKey&&(ft||he)){he&&J.preventDefault();return}if(J.key==="Enter"&&!J.shiftKey){J.preventDefault(),ae(b.input);return}},[b.input,b.shortcutOpen,b.filteredShortcuts,b.shortcutIndex,b.setShortcutIndex,b.setShortcutOpen,f,ae,Qe]),dt=$.visibleMessages.length>0||$.operationCards.length>0||$.humanGateCards.length>0||$.artifactCards.length>0||!!$.interview,on=s.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":s.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,Jt=Q==="compact"||Q==="narrow",Ht=l.jsx(uy,{origin:i,open:x,layoutMode:Q,drawerOpen:ie.sidebarDrawerOpen,activeSessionId:v?.sessionId,sessions:y.sessionList,tree:E.tree,expanded:E.expandedDirs,treeError:E.treeError,onToggleOpen:()=>R(J=>!J),onOpenDrawer:ye,onCloseDrawer:ce,onCreate:()=>{y.createSession()},creatingSession:y.creatingSession,onActivate:J=>{ie.sidebarDrawerOpen?je(J):y.activateSession(J)},onRename:(J,he)=>{y.updateSession(J,{title:he})},onSetState:(J,he)=>{y.updateSession(J,{state:he})},onDelete:J=>{y.deleteSession(J)},onRefreshTree:()=>{E.loadTree()},onToggleDir:E.toggleDir,onInsert:J=>{ie.sidebarDrawerOpen?Te(J):b.setInput(he=>`${he}${he&&!he.endsWith(" ")?" ":""}@${J} `)},onPreview:J=>{ie.sidebarDrawerOpen?_e(J):E.openPreview(J)},drawerTriggerRef:le}),be=["oc-workspace",fe&&!W?"has-process":"",W?"has-process-overlay":""].filter(Boolean).join(" "),Ie=J=>l.jsx("div",{className:"oc-messages is-empty",ref:_,"data-landing-density":ne.landingDensity,children:l.jsx(Rh,{mode:J,readiness:s.readiness,density:ne.landingDensity,onSuggest:async he=>{y.creatingSession||(J==="no-session"?await y.createSession()&&await ae(he):await ae(he))},disabled:y.creatingSession,onCreateSession:J==="no-session"?()=>{y.createSession()}:void 0})});return l.jsxs("div",{className:"oc-shell",children:[u?null:l.jsxs("div",{className:"oc-banner",children:[l.jsxs("span",{className:"oc-banner-title",children:[l.jsx("span",{className:"oc-banner-dot","aria-hidden":"true"}),"对话"]}),l.jsxs("span",{className:"oc-banner-body",children:["用自然语言编排 loop-agent / agent-worker 的",l.jsx("strong",{children:"全部能力"}),"。这是 ",l.jsx("strong",{children:"Operator"})," 面:默认具备完整 Pi 工具(read/write/edit/bash/grep/find/ls)与 safe-* 探查、以及受策略约束的 operator action(ADR 0011)。",l.jsx("strong",{children:"软约束"}),":大改与高风险变更优先走受治 DAG 的 implement-pi / repair-pi 与 Human Gate,而非把 Chat 当作第二套 DAG kernel。"]})]}),on&&l.jsx("div",{className:"oc-alert oc-alert-warning",children:on}),h&&l.jsxs("div",{className:"oc-alert oc-alert-error",children:[l.jsx("strong",{children:"出错了:"}),h]}),O&&l.jsx("div",{className:"oc-alert oc-alert-warning",role:"status",children:O.message}),v?l.jsxs("div",{className:be,ref:q,"data-layout-mode":Q,children:[Ht,l.jsxs("div",{className:`oc-main${dt?"":" is-landing"}`,children:[Q==="narrow"?l.jsx("div",{className:"oc-main-topbar",children:l.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:le,"aria-label":"打开会话与仓库","aria-expanded":ie.sidebarDrawerOpen,onClick:()=>ie.sidebarDrawerOpen?ce():ye(),children:"会话与仓库"})}):null,l.jsx(fy,{previews:E.previews,activePath:E.activePreviewPath,loading:E.previewLoading,onActivate:E.setActivePreviewPath,onClose:E.closePreview}),dt?l.jsx(By,{scrollContainerRef:D,messagesEndRef:I,onScroll:He,hasThread:dt,readiness:s.readiness,streaming:$.streaming,streamingAssistantId:$.streamingAssistantId,messagesCount:$.messages.length,visibleCount:$.visibleMessages.length,onLoadMore:()=>$.setHistoryLimit(J=>J+50),turnGroups:$.turnGroups,interview:$.interview,interviewAnswer:X.interviewAnswer,onInterviewAnswerChange:X.setInterviewAnswer,onAnswerInterview:J=>{X.answerInterview(J)},onConfirmTaskKind:()=>{X.confirmTaskKind()},humanGateCards:$.humanGateCards,operationCards:$.operationCards,artifactCards:$.artifactCards,origin:i,sessionId:v.sessionId,onNavigateWorkspace:s.onNavigateWorkspace,onSuggest:J=>{ae(J)}}):Ie("empty-session"),l.jsx(Jy,{composer:b,streaming:$.streaming,hasThread:dt,compactControls:Jt,onSend:J=>{ae(J)},onStop:re,onKeyDown:bt,onRunShortcut:Qe,models:Y.models,activeModel:Y.activeModel,activeModelRef:Y.activeModelRef,activeModelListed:Y.activeModelListed,activeThinkingLevel:Y.activeThinkingLevel,thinkingLevels:Y.thinkingLevels,onSwitchRuntime:J=>{Y.switchRuntime(J)},usage:$.usage,unread:$.unread,onCompact:()=>{y.compactSession()},toolCatalog:Y.toolCatalog,toolsOpen:Y.toolsOpen,onToggleTools:()=>{Y.toolsOpen?(Y.setToolsOpen(!1),z(J=>kn(J))):(Y.setToolsOpen(!0),Y.setRuntimeContextOpen(!1),z(J=>ja(J,"tools")))},onCloseTools:()=>{Y.setToolsOpen(!1),z(J=>J.active==="tools"?kn(J):J)},toolsMenuRef:Y.toolsMenuRef,processSummary:$.processSummary,processOpen:fe,onToggleProcess:()=>{z(J=>J.active==="process"?kn(J):ja(J,"process")),fe||(Y.setToolsOpen(!1),Y.setRuntimeContextOpen(!1))},processTriggerRef:oe,runtimeContext:Y.runtimeContext,runtimeContextOpen:Y.runtimeContextOpen,onToggleRuntimeContext:()=>{Y.runtimeContextOpen?(Y.setRuntimeContextOpen(!1),z(J=>kn(J))):(Y.setRuntimeContextOpen(!0),Y.setToolsOpen(!1),z(J=>ja(J,"runtime-context")))},onCloseRuntimeContext:()=>{Y.setRuntimeContextOpen(!1),z(J=>J.active==="runtime-context"?kn(J):J)},runtimeContextMenuRef:Y.runtimeContextMenuRef})]}),fe&&l.jsxs(l.Fragment,{children:[W?l.jsx("button",{type:"button",className:"oc-overlay-backdrop is-process","aria-label":"关闭执行过程遮罩",onClick:()=>G(!1)}):null,l.jsx(Fy,{toolCalls:$.toolCalls,overlay:W,onClose:()=>G(!1),triggerRef:oe})]})]}):l.jsxs("div",{className:be,ref:q,"data-layout-mode":Q,children:[Ht,l.jsxs("div",{className:"oc-main is-landing",children:[Q==="narrow"?l.jsx("div",{className:"oc-main-topbar",children:l.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:le,"aria-label":"打开会话与仓库","aria-expanded":ie.sidebarDrawerOpen,onClick:()=>ie.sidebarDrawerOpen?ce():ye(),children:"会话与仓库"})}):null,Ie("no-session")]})]})]})}function Qb(s){return s==="validate"||s==="apply"||s==="spine"?"contract":s}const Mh="X-Loop-Console-Confirmation",_h="agent-worker console doctor --repo .",xc=[{kind:"standard",label:"后端研发(默认 DAG)",hint:"生成标准 hybrid DAG(contract → implement → verify)"},{kind:"frontend-implementation",label:"前端研发",hint:"生成 frontend-implementation 专用节点链"},{kind:"backend-test",label:"后端测试",hint:"生成 backend-test-dag(分析 / 用例 / pytest)"},{kind:"frontend-test",label:"前端测试",hint:"生成 frontend-test-dag(RAG 用例 + Playwright CLI)"}],zh={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},Vb={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},Lh={low:"低",medium:"中",high:"高"},Uh={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账"},Zb={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function wi(s){return Zb[s]??s}function Hh(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Ui(s){return`${s}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function Cc(s,i={},r){const u={"Content-Type":"application/json",[Mh]:Hh()},f=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:u,body:JSON.stringify({action:s,actionParams:i,...r?{clientRequestId:r}:{}})});let h={};try{h=await f.json()}catch{h={ok:!1,error:{code:"INVALID_INPUT",message:"操作响应不是合法 JSON"}}}return{status:f.status,body:h}}const Jb=new Set(["runDag","dagRerun","dagReconcileRun","standaloneTaskRerun"]);function vc(s){const i=(s.blockedReasons??[]).map(String),r=(s.blockingNodes??[]).map(f=>[f.nodeId,f.reasonCode].filter(Boolean).join(":")),u=[...i,...r].filter(Boolean);return u.length===0?"从节点重跑不具备安全资格(子图含 writer / unsafe shell / decision-gate 等)。可改用「完整重跑任务」,或另选只读安全子图的起始节点。":`从节点重跑不具备安全资格:${u.slice(0,6).join("; ")}${u.length>6?"…":""}。可改用「完整重跑任务」。`}async function lh(s,i=9e4){const r=Date.now();for(;Date.now()-r<i;){const u=await fetch(`/api/operator/v1/operations/${encodeURIComponent(s)}`,{credentials:"same-origin"});if(!u.ok)return null;const f=await u.json(),h=f.operation??f,m=h.state??"";if(m==="succeeded"||m==="failed"||m==="needs-reconcile"||m==="timed-out")return h;await new Promise(v=>setTimeout(v,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const Fb={};function Wb(){const[s,i]=p.useState(()=>Eh({env:Fb?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[r,u]=p.useState(null),[f,h]=p.useState("setup-required"),[m,v]=p.useState(null),[S,x]=p.useState(null),[R,j]=p.useState(!1),[L,C]=p.useState(!1),[z,O]=p.useState(null),[F,te]=p.useState(null),[N,I]=p.useState(null),[D,Z]=p.useState(null),[q,_]=p.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[le,oe]=p.useState("setup"),ne=p.useCallback(G=>{oe(b=>Qb(typeof G=="function"?G(b):G))},[]),Q=f==="setup-required",ie=f==="degraded",fe=p.useCallback(G=>{G!==s&&(O(null),I(null),te(null)),i(G)},[s]),W=p.useCallback(async()=>{try{const b=await(await fetch("/api/health")).json();u(b);const E=b.piReadiness??"setup-required";h(E),x(null),ne(E==="ready"||E==="degraded"?w=>w==="setup"?"import-prd":w:"setup")}catch(G){x(G instanceof Error?G.message:String(G))}try{const b=await(await fetch("/api/operator/v1/readiness")).json();v(b),b.state&&h(b.state)}catch{}},[ne]);return{nav:s,setNav:i,selectNav:fe,health:r,readiness:f,setReadiness:h,readinessReport:m,healthError:S,loadHealth:W,busy:R,setBusy:j,observeBusy:L,setObserveBusy:C,opError:z,setOpError:O,opMessage:F,setOpMessage:te,opErrorCode:N,setOpErrorCode:I,lastOpState:D,setLastOpState:Z,layers:q,setLayers:_,step:le,setStep:ne,setupBlocked:Q,degraded:ie}}function Pb(s){const{shell:i,applyInterviewPayload:r}=s,{setBusy:u,setOpError:f,setOpErrorCode:h,setOpMessage:m,setReadiness:v,setStep:S,setNav:x,setLastOpState:R,setLayers:j,step:L,nav:C}=i,[z,O]=p.useState(null),[F,te]=p.useState([]),[N,I]=p.useState(!0),D=p.useRef(null),[Z,q]=p.useState(null),[_,le]=p.useState(null),oe=p.useCallback(async(W,G={},b)=>{u(!0),f(null),h(null),m(null);try{const{status:E,body:w}=await Cc(W,G,b?.clientRequestId);if(E===412||w.error?.code==="PI_SETUP_REQUIRED")return f(ds(w.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),h(w.error?.code??"PI_SETUP_REQUIRED"),v("setup-required"),S("setup"),x("models"),w;if(E>=400||w.ok===!1)return f(ds(w.error?.message??w.message??`操作失败(HTTP ${E})`)),h(w.error?.code??String(E)),R(w.state??`failed:${E}`),j(y=>({...y,command:w.error?.message??`failed:${w.error?.code??E}`})),w;if(w.operationId){const y=window.localStorage.getItem(tn)?.trim();if(y&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(y)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[Mh]:Hh()},body:JSON.stringify({operationId:w.operationId})}).then(A=>{A.ok||console.warn("Operator Chat operation link failed",A.status)}).catch(A=>console.warn("Operator Chat operation link failed",A)),O(w.operationId),R(w.state??"accepted"),j(A=>({...A,command:w.state??"accepted",dag:W==="runDag"?"running":A.dag})),Jb.has(W)){I(!0),m(`操作已接受,后台运行中:${w.operationId}(请看事件流;可同时打开 Observe)`);const A=w.operationId;lh(A,30*6e4).then(X=>{if(X){if(R(X.state??null),X.state==="failed"||X.state==="needs-reconcile"||X.state==="timed-out"){f(ds(X.errorMessage??X.stderrPreview??`操作失败:${X.state}`)),h(X.errorCode??X.state??null),j(Y=>({...Y,command:`failed:${X.errorCode??X.state}`}));return}X.state==="succeeded"&&(m(`${W} 已成功`),j(Y=>({...Y,command:"succeeded"})))}})}else{m(`操作已接受:${w.operationId}`);const A=await lh(w.operationId);if(A){if(R(A.state??null),A.state==="failed"||A.state==="needs-reconcile"||A.state==="timed-out")return f(ds(A.errorMessage??A.stderrPreview??`操作失败:${A.state}`)),h(A.errorCode??A.state??null),j(re=>({...re,command:`failed:${A.errorCode??A.state}`})),{ok:!1,operationId:w.operationId,state:A.state,error:{code:A.errorCode??A.state??"INTERNAL_ERROR",message:A.errorMessage??A.stderrPreview??`操作失败:${A.state}`}};m(A.errorMessage?`${W}:${A.errorMessage}`:`${W} 已成功`),j(re=>({...re,command:A.state??"succeeded"}));const X=A.result??{},Y={ok:!0,operationId:w.operationId,state:A.state??"succeeded",result:X};(W==="interviewStart"||W==="interviewTurn"||W==="interviewSkip")&&r(X);const ue=X.confirmation;return ue?.confirmationId&&(q(ue.confirmationId),le(X)),b?.advanceTo&&S(b.advanceTo),Y}}}else m(`${W} 已完成`),R(w.state??"succeeded"),j(y=>({...y,command:"succeeded",verification:W==="contractValidate"||W==="spineCheck"?"ran":y.verification}));const ee=w.result??{};(W==="interviewStart"||W==="interviewTurn"||W==="interviewSkip")&&r(ee);const $=ee.confirmation;return $?.confirmationId&&(q($.confirmationId),le(ee)),b?.advanceTo&&S(b.advanceTo),w}catch(E){f(E instanceof Error?E.message:String(E));return}finally{u(!1)}},[r,u,f,h,m,v,S,x,R,j]),ne=p.useCallback(W=>{if(!W)return"无响应";if(W.error?.message)return W.error.message;if(W.message)return W.message;const G=W.result;if(G&&typeof G=="object")try{return JSON.stringify(G).slice(0,1200)}catch{return"已返回结果"}return W.ok===!1?"失败":"成功"},[]),Q=p.useCallback(W=>{if(!W||W.ok===!1||W.error)return!1;const G=W.result;if(!G)return!0;if(typeof G.valid=="boolean")return G.valid;const b=G.result;return b&&typeof b.valid=="boolean"?b.valid:!0},[]),ie=p.useCallback(async W=>{D.current?.abort();const G=new AbortController;D.current=G,te(b=>[...b,`开始跟随事件流 ${W}`]);try{const b=await fetch(`/api/operator/v1/operations/${encodeURIComponent(W)}/events`,{credentials:"same-origin",signal:G.signal});if(!b.ok||!b.body){te($=>[...$,`事件流 HTTP ${b.status}`]);return}const E=b.body.getReader(),w=new TextDecoder;let ee="";for(;N;){const{done:$,value:y}=await E.read();if($)break;ee+=w.decode(y,{stream:!0});const A=ee.split(`
23
+
24
+ `);ee=A.pop()??"";for(const X of A){const Y=X.split(`
25
+ `).find(re=>re.startsWith("data:"));if(!Y)continue;const ue=Y.slice(5).trim();te(re=>[...re.slice(-80),ue.slice(0,240)])}}}catch(b){b.name!=="AbortError"&&te(E=>[...E,`事件流错误:${b instanceof Error?b.message:String(b)}`])}},[N]);p.useEffect(()=>(z&&N&&(L==="run"||C==="recovery")&&ie(z),()=>D.current?.abort()),[z,N,L,C,ie]);const fe=p.useCallback(()=>{I(!1),D.current?.abort(),m("已停止跟随日志(未取消子进程)")},[m]);return{runAction:oe,summarizeEnvelope:ne,isActionSuccess:Q,operationId:z,setOperationId:O,sseLog:F,followSse:N,setFollowSse:I,stopFollowSse:fe,confirmationId:Z,setConfirmationId:q,confirmationDetails:_,setConfirmationDetails:le}}const Sc=8*1024*1024,ex=10*1024*1024,Hi=8,tx=".md,.markdown,.txt,text/markdown,text/plain",nx=[".md",".markdown",".txt"],Ec=/\.[^.]+$/;function ax(s){const i=Ec.exec(s.trim());return i?i[0].toLowerCase():""}function sx(s){const i=ax(s);return nx.includes(i)}function jc(s){if(!Number.isFinite(s)||s<0)return"0 B";if(s<1024)return`${s} B`;if(s<1024*1024){const r=s/1024;return`${r>=10?r.toFixed(0):r.toFixed(1)} KiB`}const i=s/(1024*1024);return`${i>=10?i.toFixed(1):i.toFixed(2)} MiB`}function wn(s,i){return{ok:!1,code:s,message:i}}function lx(s,i){const r=s?Array.from(s):[],u=i?.maxFiles??Hi,f=i?.existingCount??0;return r.length===0?wn("file-count","请选择至少一个 .md / .markdown / .txt 文件"):f+r.length>u?wn("file-count",`最多支持 ${u} 个文件(当前已有 ${f} 个)`):null}async function ix(s){const i=s.name?.trim()||"untitled.md";if(!sx(i))return wn("unsupported-extension","仅支持 .md、.markdown、.txt 文件");if(s.size>Sc)return wn("file-too-large",`文件不能超过 ${jc(Sc)}`);let r;try{r=await s.arrayBuffer()}catch{return wn("read-failed","文件读取失败,请重试或直接粘贴")}let u;try{u=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{return wn("invalid-utf8","文件不是有效 UTF-8,请另存为 UTF-8")}if(u.trim().length===0)return wn("empty-content","文件内容不能为空或只有空白");const f=new TextEncoder().encode(u).byteLength;return{ok:!0,text:u,fileName:i,sourceBytes:s.size,textBytes:f}}async function rx(s){if(s.length===0)return wn("file-count","请选择至少一个 .md / .markdown / .txt 文件");if(s.length>Hi)return wn("file-count",`最多支持 ${Hi} 个文件`);const i=[];for(const r of s){const u=await ix(r);if(!u.ok)return u;i.push({fileName:u.fileName,text:u.text,sourceBytes:u.sourceBytes,textBytes:u.textBytes})}return{ok:!0,documents:i}}function ox(s,i){const r=s.split(/\r?\n/);for(const f of r){const h=/^(#{1,6})\s+(.+)$/.exec(f.trim());if(h?.[2])return h[2].trim()}for(const f of r){const h=f.trim();if(h&&!/^---+$/.test(h)&&!/^```/.test(h)&&!/^<!--/.test(h))return h.replace(/^>\s+/,"").slice(0,120)}return i.replace(Ec,"").trim()||"需求"}function cx(s){return s.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"requirement"}function ux(s,i){const r=s.replace(Ec,"").trim(),u=cx(r);return u==="requirement"&&/[^\u0000-\u007f]/.test(r)?`part-${i+1}`:u==="requirement"?r?`part-${i+1}`:`part-${i+1}`:u}function dx(s){const i=new Set;return s.map((r,u)=>{let f=ux(r.fileName,u);if(i.has(f)){let h=2;for(;i.has(`${f}-${h}`);)h+=1;f=`${f}-${h}`}return i.add(f),{name:f,content:r.text,fileName:r.fileName}})}function fx(s,i){if(s.length===0)return"";if(s.length===1)return s[0].text;const r=Math.min(Math.max(0,i?.primaryIndex??0),s.length-1),u=s[r],f=ox(u.text,u.fileName),m=[`<!-- composed-from: ${s.map(v=>v.fileName).join(", ")} -->`,"",`# ${f}`,""];for(const v of s)m.push(`## 来源:${v.fileName}`,"",v.text.trim(),"");return`${m.join(`
26
+ `).trimEnd()}
27
+ `}function mx(s,i,r){const u={action:s,actionParams:i};return new TextEncoder().encode(JSON.stringify(u)).byteLength<=ex}function hx(){return"最终内容导致请求体超过服务端限制,请缩小文档或减少文件数量"}function px(){const[s,i]=p.useState(""),[r,u]=p.useState([]),[f,h]=p.useState(0),[m,v]=p.useState(!1),[S,x]=p.useState(null),[R,j]=p.useState(!1),[L,C]=p.useState(!1),z=p.useRef(0),O=p.useRef(0),F=p.useCallback((Q,ie)=>{const fe=Q.length===0?0:Math.min(Math.max(0,ie),Q.length-1);h(fe),i(fx(Q,{primaryIndex:fe})),v(!1)},[]),te=p.useCallback(async Q=>{const ie=lx(Q,{existingCount:r.length});if(ie){x(ie.message);return}const fe=Array.from(Q),W=++O.current;j(!0),x(null);try{const G=await rx(fe);if(W!==O.current)return;if(!G.ok){x(G.message);return}const b=[...r,...G.documents],E=r.length===0?0:f;u(b),r.length===0||!m?(F(b,E),x(null)):x("已追加文件,未改正文(正文已手动编辑);可点「按文件重新合成」覆盖。")}catch{if(W!==O.current)return;x("文件读取失败,请重试或直接粘贴")}finally{W===O.current&&j(!1)}},[F,m,r,f]),N=p.useCallback(Q=>{i(Q),r.length>0&&v(!0)},[r.length]),I=p.useCallback(Q=>{h(Q),m||F(r,Q)},[F,m,r]),D=p.useCallback((Q,ie)=>{const fe=Q+ie,W=[...r],G=W[fe];W[fe]=W[Q],W[Q]=G;const b=f===Q?fe:f===fe?Q:f;u(W),h(b),m||F(W,b)},[F,m,r,f]),Z=p.useCallback(Q=>{const ie=r.filter((W,G)=>G!==Q),fe=ie.length===0?0:Math.min(f>=Q?Math.max(0,f-1):f,Math.max(0,ie.length-1));u(ie),h(fe),ie.length===0?v(!1):m||F(ie,fe)},[F,m,r,f]),q=p.useCallback(()=>{u([]),h(0),v(!1),x(null)},[]),_=p.useCallback(()=>{m&&!window.confirm("将用当前文件列表重新合成正文,覆盖你在编辑区的修改。继续?")||(F(r,f),x(null))},[F,m,r,f]),le=p.useCallback((Q,ie)=>{Q.preventDefault(),Q.stopPropagation(),!ie&&(z.current+=1,C(!0))},[]),oe=p.useCallback(Q=>{Q.preventDefault(),Q.stopPropagation(),z.current=Math.max(0,z.current-1),z.current===0&&C(!1)},[]),ne=p.useCallback((Q,ie)=>{Q.preventDefault(),Q.stopPropagation(),z.current=0,C(!1),!ie&&te(Q.dataTransfer.files)},[te]);return{prdText:s,setPrdText:i,onPrdTextChange:N,prdDocuments:r,prdPrimaryIndex:f,prdComposedDirty:m,prdFileError:S,setPrdFileError:x,prdFileReading:R,prdDragOver:L,loadPrdFromFiles:te,applyPrdComposition:F,setPrimaryDocument:I,moveDocument:D,removeDocument:Z,clearDocuments:q,recomposeDocuments:_,onDragEnter:le,onDragLeave:oe,onDrop:ne}}const gx={report:{id:"report",label:"查看报告",action:"dagReport",lane:"dag",guide:"看失败分类与建议动作(交接报告摘要)",commandHint:"loop-agent dag report --run-id <run-id> --json"},doctor:{id:"doctor",label:"Doctor 诊断",action:"doctor",lane:"dag",guide:"只读诊断:检查 Console / Pi / 仓库就绪,不是重跑前置",commandHint:"agent-worker console doctor --repo ."},decision:{id:"decision",label:"人工决策",lane:"dag",guide:"暂停等人时:先看 doctor 输出再做决策(经 CLI)",commandHint:"loop-agent dag doctor --run-id <run-id> --markdown"},resume:{id:"resume",label:"恢复运行",lane:"dag",guide:"仅当运行可安全 resume 时使用(经 CLI)",commandHint:"loop-agent task advance <task-id> --json"},reconcile:{id:"reconcile",label:"对账 / reconcile",requiresReason:!0,action:"dagReconcileRun",lane:"dag",guide:"Orphan/中断时先对账归档(默认 supersede);runner 仍存活时勿盲 supersede",commandHint:"loop-agent dag reconcile-run --run-id <run-id> --action supersede --reason <structured-reason>"},regenerate:{id:"regenerate",label:"重新生成契约/计划",lane:"dag",guide:"契约/计划过期时:回任务页或经 CLI 重新 task advance(本页仅提示)",commandHint:"loop-agent task advance <task-id> --json"},observeLink:{id:"observeLink",label:"全屏观测",action:"observeLink",lane:"dag",guide:"打开完整 Inspect 画布;顶栏可返回操作台",commandHint:"agent-worker console serve --repo . --port 8790"},dagRerun:{id:"dagRerun",label:"从节点重跑",requiresReason:!0,action:"dagRerun",lane:"dag",guide:"终端失败默认首选:先 dagRerunPlan,plan 合格再 Human Gate 执行;provider 抖动/只读下游优先,勿无理由新开 task",commandHint:"loop-agent dag rerun --run-id <run-id> --from-node <node-id> --plan"},standaloneTaskRerun:{id:"standaloneTaskRerun",label:"完整重跑任务",requiresReason:!0,action:"standaloneTaskRerun",lane:"dag",guide:"整单重跑:仅当 from-node plan 不合格(writer/decision/fingerprint)或契约/源真变时;需确认原因",commandHint:"loop-agent dag rerun-task --run-id <run-id> --reason <text> --json"},workerTaskRetry:{id:"workerTaskRetry",label:"重新排队 Worker Task",requiresReason:!0,action:"workerTaskRetry",lane:"worker",guide:"仅 Worker 队列任务失败时使用,不要与 DAG 重跑混用",commandHint:"agent-worker task retry <task-id> --feature-id <feature-id> --repo . --reason <reason>"}},ih={"validation-failed":["report","doctor","regenerate"],"contract-drift":["report","doctor","decision","reconcile","regenerate"],"runtime-mismatch":["report","doctor","reconcile","regenerate"],"pause-on-human":["decision","resume","report","doctor"],"verification-failed":["report","doctor","dagRerun","standaloneTaskRerun","resume","regenerate"],"orphan-unknown":["report","doctor"],"terminal-failed":["report","doctor","dagRerun","standaloneTaskRerun","workerTaskRetry","regenerate"],"terminal-succeeded":["report","observeLink"],"needs-reconcile":["report","doctor","reconcile","regenerate"]};function vx(s){return(ih[s]??ih["orphan-unknown"]).map(r=>gx[r])}function yx(s){const i=[],r=[];for(const u of s)u.lane==="worker"?r.push(u):i.push(u);return{dag:i,worker:r}}function bx(s){return typeof s.action=="string"&&s.action.trim().length>0}function Bh(s){return vx(s).filter(bx)}function xx(s){const i=new Set(Bh(s).map(u=>u.id)),r=(...u)=>{for(const f of u)if(i.has(f))return f;return null};switch(s){case"terminal-failed":case"verification-failed":return r("dagRerun","standaloneTaskRerun","doctor","report");case"pause-on-human":return r("doctor","report");case"needs-reconcile":return r("doctor","reconcile","report");case"runtime-mismatch":case"contract-drift":return r("doctor","report");case"validation-failed":return r("doctor","report");case"terminal-succeeded":return r("observeLink","report");default:return r("doctor","report")}}function Sx(s){if(s.needsReconcile)return"needs-reconcile";const i=(s.errorCode??"").toLowerCase(),r=(s.operationState??"").toLowerCase(),u=(s.dagStatus??"").toLowerCase(),f=(s.failureCategory??"").toLowerCase();return i.includes("validation")||i.includes("invalid")||r.includes("validation")?"validation-failed":i.includes("contract")||i.includes("drift")||i.includes("binding")?"contract-drift":i.includes("runtime")||i.includes("mismatch")||i.includes("fingerprint")?"runtime-mismatch":i.includes("human")||r.includes("paused")||u.includes("paused")||r.includes("awaiting")?"pause-on-human":i.includes("verif")||r.includes("verif")?"verification-failed":f==="controller-interrupted"||i.includes("controller-interrupted")||i.includes("interrupted")||u==="interrupted"||u==="orphaned"||r.includes("controller-interrupted")||r.includes("interrupted")?"needs-reconcile":u==="running-suspected-stall"||u==="running-quiet"||u==="suspected-stall"||u.includes("suspected-stall")||r.includes("suspected-stall")?"orphan-unknown":r==="succeeded"||r==="completed"||r==="finished"||u==="succeeded"||u==="completed"||u==="finished"?"terminal-succeeded":r==="failed"||r.includes("fail")||u==="failed"||u==="partial_failed"||i.includes("fail")?"terminal-failed":i.includes("reconcil")||r.includes("reconcil")?"needs-reconcile":"orphan-unknown"}const kc=new Set(["failed","error","partial_failed"]),qh=new Set(["blocked","paused","awaiting_human"]);function Gi(s){return(s??"").trim().toLowerCase()}function jx(s){return kc.has(Gi(s))}function rh(s){const i=Gi(s.status);return kc.has(i)||i.includes("fail")?0:s.lifecycle==="paused"||i==="paused"?1:s.lifecycle==="active"?2:3}function Rx(s){return[...s].sort((i,r)=>{const u=rh(i)-rh(r);return u!==0?u:r.mtimeMs-i.mtimeMs})}function Tx(s){return Rx(s)[0]?.dagRunId}function oh(s){const i=Gi(s.status);return kc.has(i)?0:qh.has(i)?1:2}function Gh(s){return[...s].sort((i,r)=>{const u=oh(i)-oh(r);return u!==0?u:i.nodeId.localeCompare(r.nodeId)})}function Nx(s){const i=Gh(s);return i.find(u=>jx(u.status)||qh.has(Gi(u.status)))?.nodeId??i[0]?.nodeId}function Cx(s){const i=s.status?.trim()||s.lifecycle;return`${s.dagRunId.length>36?`${s.dagRunId.slice(0,18)}…${s.dagRunId.slice(-8)}`:s.dagRunId} · ${i}`}function Ex(s){const i=s.status?.trim()||"unknown",r=s.label?.trim();return r&&r!==s.nodeId?`${s.nodeId} · ${i} · ${r}`:`${s.nodeId} · ${i}`}function kx(s){const r=[`operator-recovery: ${s.actionLabel?.trim()||"恢复"}`],u=s.dagRunId?.trim();if(u){const v=s.runStatus?.trim();r.push(v?`run=${u} (${v})`:`run=${u}`)}const f=s.fromNodeId?.trim();if(f){const v=s.nodeStatus?.trim();r.push(v?`from-node=${f} (${v})`:`from-node=${f}`)}const h=s.factClassLabel?.trim();h&&r.push(`fact=${h}`);const m=s.nodeError?.trim()||s.errorMessage?.trim()||(s.errorCode?.trim()?`code=${s.errorCode.trim()}`:"");return m&&r.push(`detail=${m.replace(/\s+/g," ").slice(0,280)}`),r.join(`
28
+ `).slice(0,500)}function $h(s){const i=s.trim();return i?i==="operator-recovery"||i.startsWith("operator-recovery:")||i.startsWith("recovery:"):!0}function wx(s){const{shell:i,actions:r,taskId:u,dagRunId:f,fromNodeId:h,featureId:m,recoveryReason:v,recoveryReasonTouched:S,recoveryConfirm:x,recoveryPlanSummary:R,setRecoveryConfirm:j,setRecoveryPlanSummary:L,setRecoveryReport:C,setRecoveryReason:z,setRecoveryReasonTouched:O,buildCurrentRecoveryReason:F,openFullCanvas:te}=s,{setOpError:N,setOpErrorCode:I,setOpMessage:D,setBusy:Z}=i,{runAction:q,isActionSuccess:_}=r,le=p.useCallback(async ne=>{if(ne.requiresReason||(j(null),L(null)),ne.action==="doctor"){C(null),q("doctor",{});return}if(ne.action==="dagReport"||ne.id==="report"){const Q=f.trim();if(Q){j(null),L(null);const ie=await q("dagReport",{runId:Q}),fe=ie?.result??{},W=(fe.raw?.runs??fe.runs)?.[0];ie&&ie.ok!==!1&&!ie.error&&W&&(C({runId:W.runId??Q,title:W.title,status:W.status,category:W.productLineFailureCategory,recommendation:W.recoveryRecommendation?.summary??W.recommendedFollowUp??void 0}),D(null));return}if(u.trim()){C(null),q("status",{taskId:u});return}N("查看报告需要先选择 DAG 运行 ID(或填写任务 ID)");return}if(ne.action==="observeLink"){C(null),te();return}if(ne.requiresReason){if(C(null),j(ne),L(null),ne.id!=="dagRerun"&&(N(null),I(null)),(!S||$h(v))&&(z(F(ne.label)),O(!1)),ne.id==="dagRerun"&&f.trim()&&h.trim()){Z(!0);try{const{status:Q,body:ie}=await Cc("dagRerunPlan",{runId:f.trim(),fromNode:h.trim()}),fe=ie.result??{};fe&&typeof fe=="object"&&("eligible"in fe||fe.planHash)&&L(fe),Q<400&&ie.ok!==!1&&fe.eligible!==!1?D(null):fe.eligible===!1?N(ie.error?.message??vc(fe)):D(ie.error?.message??"无法预检重跑计划;确认后仍将尝试提交(CLI 可能尚未就绪)")}finally{Z(!1)}}return}N(null),I(null),D(`${ne.label}:请经 CLI — ${ne.commandHint??""}`)},[F,f,h,te,v,S,q,Z,N,I,D,j,L,C,z,O,u]),oe=p.useCallback(async()=>{const ne=x;if(!ne)return;const Q=v.trim();if(!Q){N("恢复操作需要结构化原因");return}const ie=Ui(`recovery-${ne.id}`);if(j(null),ne.id==="dagRerun"){const fe=f.trim(),W=h.trim();if(!fe||!W){N("从节点重跑需要 DAG 运行 ID 与起始节点 ID");return}let G=R?.planHash?.trim(),b=R?.eligible;if(!G||b===void 0){const E=await q("dagRerunPlan",{runId:fe,fromNode:W}),w=E?.result??{};if((w.planHash||w.eligible!==void 0)&&L(w),G=w.planHash?.trim()||G,b=w.eligible,w.eligible===!1){N(E?.error?.message??vc(w));return}if(E&&E.ok===!1&&!G){N(E.error?.message??"无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}}if(b===!1){N(vc(R??{}));return}if(!G){N("无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}await q("dagRerun",{runId:fe,fromNode:W,planHash:G,reason:Q},{clientRequestId:ie});return}if(ne.id==="standaloneTaskRerun"){const fe=f.trim();if(!fe){N("完整重跑任务需要 DAG 运行 ID");return}const W={runId:fe,reason:Q,...u.trim()?{taskId:u.trim()}:{}},G=await q("prepareMutationGate",{action:"standaloneTaskRerun",actionParams:W});if(!_(G))return;const b=G?.result??G;if(!b.receiptId||!b.humanGateToken){N("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await q("standaloneTaskRerun",{...W,confirmationId:b.receiptId,humanGateToken:b.humanGateToken},{clientRequestId:ie});return}if(ne.id==="workerTaskRetry"){const fe=u.trim();if(!fe){N("重新排队 Worker Task 需要任务 ID");return}const W={taskId:fe,reason:Q,...m.trim()?{featureId:m.trim()}:{}},G=await q("prepareMutationGate",{action:"workerTaskRetry",actionParams:W});if(!_(G))return;const b=G?.result??G;if(!b.receiptId||!b.humanGateToken){N("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await q("workerTaskRetry",{...W,confirmationId:b.receiptId,humanGateToken:b.humanGateToken},{clientRequestId:ie});return}if(ne.id==="reconcile"){const fe=f.trim();if(!fe){N("对账恢复需要 DAG 运行 ID");return}const W={runId:fe,reason:Q,reconcileAction:"supersede"},G=await q("prepareMutationGate",{action:"dagReconcileRun",actionParams:W});if(!_(G))return;const b=G?.result??G;if(!b.receiptId||!b.humanGateToken){N("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await q("dagReconcileRun",{...W,confirmationId:b.receiptId,humanGateToken:b.humanGateToken},{clientRequestId:ie});return}D(`${ne.label}:请经 CLI — ${ne.commandHint??""}`)},[f,m,h,x,R?.planHash,v,q,_,N,D,j,L,u]);return{handleRecoveryCta:le,submitRecoveryConfirm:oe}}function Ax(s){const{shell:i,actions:r,wizard:u}=s,{nav:f,opError:h,opErrorCode:m,lastOpState:v,setOpError:S,setObserveBusy:x}=i,{taskId:R}=u,[j,L]=p.useState(""),[C,z]=p.useState(""),[O,F]=p.useState(""),[te,N]=p.useState(""),[I,D]=p.useState(!1),[Z,q]=p.useState(null),[_,le]=p.useState(null),[oe,ne]=p.useState([]),[Q,ie]=p.useState([]),[fe,W]=p.useState(!1),[G,b]=p.useState(!1),[E,w]=p.useState(null),[ee,$]=p.useState(null),[y,A]=p.useState(!1),[X,Y]=p.useState(!1),[ue,re]=p.useState(null),[ae,de]=p.useState("idle"),[ce,ye]=p.useState(null),[je,Te]=p.useState(null),[_e,He]=p.useState(!1),Qe=p.useCallback(()=>j.trim()?`/inspect/#/dag/${encodeURIComponent(j.trim())}?from=recovery`:"/inspect/#/",[j]),bt=p.useCallback(()=>{window.location.assign(Qe())},[Qe]),dt=p.useCallback(async()=>{if(j.trim())return j.trim();const Ae=R.trim();if(!Ae)return S("打开 DAG 检视需要任务 ID 或 DAG 运行 ID"),null;x(!0),S(null);try{const{status:ot,body:Be}=await Cc("observeLink",{taskId:Ae}),ze=Be.result??{};if(ot>=400||Be.ok===!1)return S(Be.error?.message??"无法解析 DAG 画布地址"),de("unavailable"),ye(Be.error?.message??null),null;const jt=typeof ze.dagRunId=="string"?ze.dagRunId.trim():"";return jt?(L(jt),de("match"),ye(null),Te(`/inspect/#/dag/${encodeURIComponent(jt)}`),jt):(S("尚未找到该任务的 DAG 运行,请稍后再打开检视"),de("unavailable"),ye(ze.message??"未解析到 DAG run"),null)}catch(ot){return S(ot instanceof Error?ot.message:String(ot)),null}finally{x(!1)}},[j,R,S,x]),on=p.useCallback(async()=>{await dt()&&He(!0)},[dt]),Jt=p.useCallback(async()=>{const Ae=await dt();Ae&&window.location.assign(`/inspect/#/dag/${encodeURIComponent(Ae)}?from=recovery`)},[dt]),Ht=p.useCallback(async()=>{W(!0);try{const Ae=R.trim(),ot=new URLSearchParams;Ae&&ot.set("taskId",Ae),ot.set("limit","40");const Be=await fetch(`/api/operator/v1/recovery/candidates?${ot.toString()}`,{credentials:"same-origin"});if(!Be.ok){ne([]);return}const ze=await Be.json();ne(Array.isArray(ze.runs)?ze.runs:[])}catch{ne([])}finally{W(!1)}},[R]),be=p.useCallback(async Ae=>{const ot=Ae.trim();if(!ot){ie([]),w(null),$(null);return}b(!0);try{const Be=await fetch(`/api/dag-runs/${encodeURIComponent(ot)}`,{credentials:"same-origin"});if(!Be.ok){ie([]),w(null),$(null);return}const ze=await Be.json(),jt=typeof ze.effectiveStatus=="string"&&ze.effectiveStatus||typeof ze.status=="string"&&ze.status||null;w(jt);const xt=Array.isArray(ze.nodes)?ze.nodes:[],$i=Gh(xt.map(mt=>{const na=(mt.nodeId??mt.id??"").trim();return na?{nodeId:na,status:mt.status,label:mt.label??mt.name,errorPreview:mt.errorPreview}:null}).filter(mt=>mt!==null));ie($i);const Yi=typeof ze.failureCategory=="string"&&ze.failureCategory||void 0,Ki=xt.find(mt=>typeof mt.failureCategory=="string"&&mt.failureCategory&&mt.failureCategory!=="success")?.failureCategory;$(Yi??Ki??null)}catch{ie([]),w(null),$(null)}finally{b(!1)}},[]);p.useEffect(()=>{f==="recovery"&&Ht()},[f,R,Ht]),p.useEffect(()=>{if(f!=="recovery"||y||oe.length===0)return;const Ae=j.trim(),ot=Ae?oe.some(Be=>Be.dagRunId===Ae):!1;if(!Ae||!ot){const Be=Tx(oe);Be&&Be!==Ae&&L(Be)}},[f,oe,j,y]),p.useEffect(()=>{f==="recovery"&&be(j)},[f,j,be]),p.useEffect(()=>{if(f!=="recovery"||X||Q.length===0)return;const Ae=C.trim(),ot=Ae?Q.some(Be=>Be.nodeId===Ae):!1;if(!Ae||!ot){const Be=Nx(Q);Be&&Be!==Ae&&z(Be)}},[f,Q,C,X]);const Ie=Sx({operationState:E?null:v,errorCode:E?null:m,dagStatus:E,failureCategory:ee}),J=p.useMemo(()=>Bh(Ie),[Ie]),he=p.useMemo(()=>yx(J),[J]),ft=p.useMemo(()=>xx(Ie),[Ie]),tt=p.useMemo(()=>Q.find(Ae=>Ae.nodeId===C.trim()),[Q,C]),it=p.useRef(null);p.useEffect(()=>{_&&it.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[_?.id]);const Ft=p.useCallback(Ae=>kx({actionLabel:Ae,dagRunId:j.trim()||void 0,fromNodeId:C.trim()||void 0,runStatus:E,nodeStatus:tt?.status,nodeError:tt?.errorPreview,factClassLabel:Uh[Ie],errorMessage:h,errorCode:m}),[j,C,h,m,Ie,E,tt?.errorPreview,tt?.status]);p.useEffect(()=>{if(f!=="recovery"||I&&!$h(te))return;const Ae=Ft(_?.label);Ae&&Ae!==te&&N(Ae)},[f,j,C,E,tt,Ie,h,m,_?.label,I,te,Ft]);const{handleRecoveryCta:Na,submitRecoveryConfirm:ta}=wx({shell:i,actions:r,taskId:R,dagRunId:j,fromNodeId:C,featureId:O,recoveryReason:te,recoveryReasonTouched:I,recoveryConfirm:_,recoveryPlanSummary:Z,setRecoveryConfirm:le,setRecoveryPlanSummary:q,setRecoveryReport:re,setRecoveryReason:N,setRecoveryReasonTouched:D,buildCurrentRecoveryReason:Ft,openFullCanvas:Jt});return{dagRunId:j,setDagRunId:L,fromNodeId:C,setFromNodeId:z,featureId:O,setFeatureId:F,recoveryReason:te,setRecoveryReason:N,recoveryReasonTouched:I,setRecoveryReasonTouched:D,recoveryPlanSummary:Z,recoveryConfirm:_,setRecoveryConfirm:le,setRecoveryPlanSummary:q,recoveryRuns:oe,recoveryNodes:Q,recoveryRunsLoading:fe,recoveryNodesLoading:G,recoveryRunStatus:E,manualRunId:y,setManualRunId:A,manualNodeId:X,setManualNodeId:Y,recoveryReport:ue,setRecoveryReport:re,observeLinkStatus:ae,observeLinkMessage:ce,observeUrl:je,inspectSplitOpen:_e,setInspectSplitOpen:He,inspectPath:Qe,openFullInspect:bt,resolveDagRunForInspect:dt,openInspectSplit:on,openFullCanvas:Jt,loadRecoveryRuns:Ht,loadRecoveryNodes:be,recoveryFact:Ie,recoveryCtas:J,recoveryLanes:he,recommendedCtaId:ft,recoveryConfirmRef:it,buildCurrentRecoveryReason:Ft,handleRecoveryCta:Na,submitRecoveryConfirm:ta}}function Ix(s){const{shell:i,actions:r,prd:u}=s,{step:f,setStep:h,setOpMessage:m}=i,{runAction:v,isActionSuccess:S,summarizeEnvelope:x}=r,[R,j]=p.useState(""),[L,C]=p.useState(""),[z,O]=p.useState("standard"),[F,te]=p.useState(""),[N,I]=p.useState(""),[D,Z]=p.useState(""),q=xc.find(be=>be.kind===z)??xc[0],[_,le]=p.useState(null),[oe,ne]=p.useState(null),[Q,ie]=p.useState(""),[fe,W]=p.useState(null),[G,b]=p.useState(null),[E,w]=p.useState(null),[ee,$]=p.useState(null),[y,A]=p.useState(null),[X,Y]=p.useState(!1),[ue,re]=p.useState(null),[ae,de]=p.useState(null),ce=p.useRef(!1),ye=p.useCallback(()=>{w(null),$(null),A(null),Y(!1),re(null),de(null),ce.current=!1},[]),je=p.useCallback(()=>{ye(),h("contract")},[ye,h]),Te=p.useCallback(be=>{const Ie=be.session;Ie?.sessionId&&le(Ie.sessionId);const J=be.question;ne(J),W(be.summary??null);const he=be.assessmentId;typeof he=="string"&&he&&b(he),(be.complete===!0||typeof he=="string"&&he)&&(je(),m(be.skipped===!0?"已跳过访谈:已按推荐补齐草稿并签发评估":"访谈已完成:草稿已绑定完整评估结果"))},[je,m]),_e=p.useCallback(async(be=!1)=>{const Ie=R.trim();if(!Ie)return;const J=`${Ie}:${G??""}`;if(!(!be&&ae===J&&E!==null)&&!ce.current){ce.current=!0,w(null),$(null),A(null),re(null),Y(!1);try{const he=await v("contractValidate",{taskId:Ie}),ft=S(he);if(w(ft),$(x(he)),!ft){de(J),m("契约校验未通过:请先修正草稿后再应用");return}const tt=await v("contractDiff",{taskId:Ie});A(x(tt)),de(J),m(S(tt)?"校验与差异已就绪:确认后可应用契约":"校验通过,但差异查询失败(仍可查看下方摘要)")}finally{ce.current=!1}}},[G,ae,E,S,v,m,x,R]),He=p.useCallback(async()=>{const be=R.trim();if(!be||!G)return;const Ie=await v("contractApply",{taskId:be,assessmentId:G},{clientRequestId:Ui("apply")});if(!S(Ie)){Y(!1);return}Y(!0);const J=await v("spineCheck",{taskId:be});if(S(J)){re(!0),h("dag-confirm"),m("契约已应用并通过 Spine 审计,可生成并运行 DAG");return}re(!1),m("契约已应用,但 Spine 审计未通过:可重试 Spine")},[G,S,v,m,h,R]),Qe=p.useCallback(async()=>{const be=R.trim();if(!be)return;const Ie=await v("spineCheck",{taskId:be});if(S(Ie)){re(!0),h("dag-confirm"),m("Spine 审计已通过,可生成并运行 DAG");return}re(!1)},[S,v,m,h,R]),bt=p.useCallback(async()=>{const be=r.confirmationId?.trim();if(!be)return;const Ie=r.confirmationDetails?.confirmation?.humanGateToken,J=await v("confirmDagConfirmation",{confirmationId:be,humanGateToken:Ie});S(J)&&(h("run"),await v("runDag",{confirmationId:be},{clientRequestId:Ui("run")}))},[r.confirmationId,r.confirmationDetails,S,v,h]);p.useEffect(()=>{f==="contract"&&R.trim()&&_e(!1)},[f,R,G,_e]);const dt=p.useCallback(be=>be.split(/[\n,;,;]+/).map(Ie=>Ie.trim()).filter(Boolean),[]),on=p.useCallback(async()=>{const be=u.prdDocuments.length>0?dx(u.prdDocuments):void 0,Ie=dt(F),J=dt(N),he=dt(D),ft={content:u.prdText,taskKind:z,...be?{documents:be}:{},...Ie.length>0?{allowedPaths:Ie}:{},...J.length>0?{forbiddenPaths:J}:{},...he.length>0?{verifyCommands:he}:{}};if(!mx("bootstrapFromPrd",ft)){u.setPrdFileError(hx());return}const tt=await v("bootstrapFromPrd",ft);if(!tt||tt.ok===!1)return;const it=tt.result??{};it.taskId&&j(it.taskId),it.title&&C(it.title);const Ft=it.parseStatus??"pending",Na=it.draftPreview?.objective?.trim(),ta=Array.isArray(it.gaps)?it.gaps.length:0,Ae=it.semanticIntake?.applied?"semantic":it.semanticIntake?.code??"no-semantic";m([`已创建任务「${it.title??""}」(${it.taskId??""})`,`来源:${it.identitySource??"prd"}`,`解析:${Ft}(${Ae})`,Na?`目标:${Na.slice(0,120)}`:null,ta>0?`缺口 ${ta} 项待确认`:null].filter(Boolean).join(" · ")),h("interview")},[F,N,u,v,m,h,dt,z,D]),Jt=[{id:"setup",label:"就绪检查"},{id:"import-prd",label:"导入需求"},{id:"interview",label:"需求访谈(可跳过)"},{id:"contract",label:"契约落地"},{id:"dag-confirm",label:"确认 DAG"},{id:"run",label:"运行"}],Ht=Jt.findIndex(be=>be.id===f);return{taskId:R,setTaskId:j,taskTitle:L,taskKind:z,setTaskKind:O,engineering:{allowedPathsText:F,forbiddenPathsText:N,verifyCommandsText:D},setEngineering:be=>{be.allowedPathsText!==void 0&&te(be.allowedPathsText),be.forbiddenPathsText!==void 0&&I(be.forbiddenPathsText),be.verifyCommandsText!==void 0&&Z(be.verifyCommandsText)},workflowMeta:q,sessionId:_,question:oe,answerText:Q,setAnswerText:ie,draftSummary:fe,assessmentId:G,contractValidateOk:E,contractValidateSummary:ee,contractDiffSummary:y,contractApplied:X,spineOk:ue,applyInterviewPayload:Te,runContractPreflight:_e,applyContractThenSpine:He,retrySpineOnly:Qe,confirmAndRunDag:bt,importPrdAndCreate:on,wizardSteps:Jt,stepIndex:Ht}}const Dx={chat:"对话",tasks:"任务",recovery:"恢复",night:"夜间",models:"模型与认证",settings:"设置"};async function Ox(s){return await import(s)}function Mx(s){const i=s.repoName?.trim();if(i)return i;const r=(s.repoRoot??"").split(/[\\/]/).filter(Boolean);return r.length?r[r.length-1]:"repository"}function _x(s){const{nav:i,readiness:r,setupBlocked:u,degraded:f,health:h,inspectHref:m}=s,v=u||f?"models":"settings",S=u?"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。点击前往模型与认证。":f?"Pi 暂时降级:仍可恢复草稿与需求访谈。点击查看详情。":"Pi 已就绪。点击打开设置查看详情。";return{mode:"operate",activeTabHref:`#/${i}`,operateHref:"/#/",inspectHref:m,freshness:!1,readinessState:r,readinessHref:`#/${v}`,readinessTitle:S,repo:h?{name:Mx(h),fingerprint:h.repoFingerprint??"",version:h.packageVersion??"",product:h.productName??h.product??"",inspectReady:h.inspect?.ready}:null}}function zx(s){const i=p.useRef(null),r=p.useRef(null),[u,f]=p.useState(!1),h=p.useMemo(()=>_x(s),[s.nav,s.readiness,s.setupBlocked,s.degraded,s.health,s.inspectHref]),m=p.useRef(h);return m.current=h,p.useEffect(()=>{let v=!1;return Ox("/inspect/operator-chrome.js").then(S=>{v||!i.current||(r.current=S.mountOperatorChrome(i.current,m.current))}).catch(()=>{v||f(!0)}),()=>{v=!0,r.current?.destroy(),r.current=null}},[]),p.useEffect(()=>{r.current?.update(h)},[h]),l.jsxs(l.Fragment,{children:[l.jsx("div",{ref:i,"data-testid":"operator-chrome"}),u?l.jsxs("nav",{className:"operator-chrome-fallback","aria-label":"操作工作区",children:[l.jsx("button",{type:"button",onClick:()=>window.location.assign("/#/"),children:"Loop Agent"}),l.jsx("button",{type:"button",onClick:()=>window.location.assign(`#/${s.nav}`),children:Dx[s.nav]}),l.jsx("button",{type:"button",onClick:()=>window.location.assign(s.inspectHref),children:"观测"}),l.jsx("span",{role:"status",children:"共享导航加载失败,请刷新页面"})]}):null]})}function Lx(s){return l.jsxs(l.Fragment,{children:[s.opError?l.jsxs("div",{className:"flash flash-error","data-testid":"op-error",children:[l.jsx("span",{className:"flash-label",children:"错误"}),l.jsx("p",{className:"flash-body",children:s.opError})]}):null,s.opMessage?l.jsxs("div",{className:"flash flash-info","data-testid":"op-message",children:[l.jsx("span",{className:"flash-label",children:"状态"}),l.jsx("p",{className:"flash-body",children:s.opMessage})]}):null]})}const Ux=[{key:"sdkAvailable",detailKey:"sdkMessage",label:"Pi SDK",hint:"Node 侧 Pi SDK 可加载"},{key:"authReady",detailKey:"authMessage",label:"认证凭据",hint:"Pi auth / provider 密钥已配置"},{key:"modelsAvailable",detailKey:"modelsMessage",label:"可用模型",hint:"harness.json executors.pi(LOW/MED/HIGH)可在 Pi 凭据面解析"},{key:"interviewSessionOk",detailKey:"sessionMessage",label:"访谈会话",hint:"Interview 会话预检通过"}];function Hx(s){if(!s)return null;const i=Date.parse(s);return Number.isNaN(i)?s:new Date(i).toLocaleString()}function Bx(s){const i=s.readinessReport?.state??s.readiness,r=s.readinessReport?.probe,u=r?.details??{},f=s.readinessReport?.blockedActions??[],h=Hx(s.readinessReport?.generatedAt),m=s.readinessReport??{state:s.readiness,health:s.health};return l.jsxs("section",{className:"panel models-page","aria-labelledby":"models-title",children:[l.jsxs("div",{className:"models-header",children:[l.jsx("h2",{id:"models-title",children:"模型与认证"}),l.jsx("span",{className:"models-status-pill","data-state":i,"data-testid":"models-readiness-pill",children:zh[i]??i})]}),l.jsxs("p",{className:"panel-lead",children:["复用 Pi ModelRuntime 凭据平面;密钥不会回传到页面。请用"," ",l.jsx("code",{children:"pi"})," 或 Pi 认证存储完成配置,然后刷新就绪探测。"]}),l.jsxs("section",{className:"models-probe-card","aria-labelledby":"models-probe-title","data-testid":"readiness-details",children:[l.jsx("h3",{id:"models-probe-title",className:"models-subtitle",children:"就绪检查"}),l.jsx("ul",{className:"models-probe-list",children:Ux.map(v=>{const S=r?.[v.key],x=u[v.detailKey],R=S===void 0;return l.jsxs("li",{className:`models-probe-item${R?" is-pending":S?" is-ok":" is-bad"}`,children:[l.jsx("span",{className:"models-probe-badge","aria-label":R?"未探测":S?"通过":"未通过",children:R?"—":S?"✓":"✕"}),l.jsxs("div",{className:"models-probe-body",children:[l.jsx("strong",{children:v.label}),l.jsx("span",{className:"muted",children:v.hint}),x?l.jsx("p",{className:"models-probe-detail",children:x}):null]})]},v.key)})})]}),i==="setup-required"?l.jsxs("div",{className:"models-setup-card","data-testid":"models-setup-hint",children:[l.jsx("h3",{className:"models-subtitle",children:"如何完成配置"}),l.jsxs("ol",{className:"models-setup-steps",children:[l.jsxs("li",{children:["在终端配置 Pi 认证(例如 ",l.jsx("code",{children:"pi auth login"}),")或写入 provider API key。"]}),l.jsxs("li",{children:["确认 agent 目录下 ",l.jsx("code",{children:"models.json"})," / 认证文件可读。"]}),l.jsx("li",{children:"点击下方「刷新就绪探测」,或运行诊断命令查看详情。"})]}),l.jsx("pre",{className:"cmd",children:_h})]}):null,i==="degraded"?l.jsx("p",{className:"models-degraded-note","data-testid":"models-degraded-note",children:"Pi 暂时降级:仍可恢复草稿与需求访谈;部分写入/运行类操作会被拦截。"}):null,f.length>0?l.jsxs("div",{className:"models-blocked-card",children:[l.jsx("h3",{className:"models-subtitle",children:"当前受限操作"}),l.jsx("ul",{className:"models-blocked-list",children:f.map(v=>l.jsx("li",{children:l.jsx("code",{children:v})},v))})]}):null,l.jsxs("div",{className:"models-actions",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:s.busy,onClick:s.onRefreshReadiness,children:"刷新就绪探测"}),h?l.jsxs("span",{className:"muted models-generated-at",children:["上次探测:",h]}):null]}),l.jsxs("details",{className:"models-raw-details",children:[l.jsx("summary",{children:"查看原始探测数据(调试)"}),l.jsx("pre",{className:"cmd models-raw-json",children:JSON.stringify(m,null,2)})]})]})}function ch(s){const{lane:i,cta:r,planSummary:u,reason:f,busy:h,confirmRef:m}=s;return!r||r.lane!==i?null:l.jsxs("div",{ref:m,className:"recovery-confirm","data-testid":"recovery-confirm",children:[l.jsxs("h3",{children:["待确认:",r.label]}),l.jsx("p",{className:"muted",children:"请核对上方运行 / 节点与恢复原因,再点「确定」执行。"}),u?l.jsxs("div",{className:"recovery-plan-summary",children:[l.jsxs("p",{className:"muted",children:["计划 eligible=",String(u.eligible??"—")," · 风险=",Lh[u.risk??""]??u.risk??"—"]}),u.effectiveFromNodeId?l.jsxs("p",{className:"muted",children:["有效起点:",u.effectiveFromNodeId]}):null,u.estimatedExecution?l.jsxs("p",{className:"muted",children:["将执行 ",u.estimatedExecution.nodeCount??"?"," 个节点 / ",u.estimatedExecution.piCallCount??"?"," 次 Pi;预计避免"," ",u.estimatedExecution.avoidedNodeCount??"?"," 个节点"]}):null,u.planHash?l.jsxs("p",{className:"muted",children:["planHash: ",l.jsxs("code",{children:[u.planHash.slice(0,16),"…"]})]}):null]}):r.id==="dagRerun"?l.jsx("p",{className:"muted",children:"未加载计划摘要;点「确定」前将再次尝试资格检查。"}):null,l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:h||!f.trim(),"data-testid":"recovery-confirm-submit",onClick:s.onSubmit,children:"确定"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:h,"data-testid":"recovery-confirm-cancel",onClick:s.onCancel,children:"取消"})]})]})}function qx(s){const{shell:i,recovery:r,wizard:u}=s,{busy:f}=i,h={planSummary:r.recoveryPlanSummary,reason:r.recoveryReason,busy:f,confirmRef:r.recoveryConfirmRef,onSubmit:()=>{r.submitRecoveryConfirm()},onCancel:()=>{r.setRecoveryConfirm(null),r.setRecoveryPlanSummary(null)}};return l.jsxs("section",{className:"panel","aria-labelledby":"recovery-title",children:[l.jsx("h2",{id:"recovery-title",children:"恢复"}),l.jsxs("p",{className:"muted",children:["事实分类:",Uh[r.recoveryFact]," · 无 Cancel · 无「直接改代码」"]}),l.jsxs("ol",{className:"muted recovery-steps",children:[l.jsx("li",{children:"上方选 DAG 运行 / 节点,用「DAG 运行恢复」动作"}),l.jsx("li",{children:"Worker 队列失败才用下方「Worker Task 重排队」(二者不要混用)"}),l.jsx("li",{children:"带 * 的动作:核对预填原因 → 点下方「确定」"})]}),l.jsxs("p",{className:"muted",children:[u.taskId.trim()?`按任务 ${u.taskId.trim()} 拉取候选。`:"未填任务 ID 时列出最近 DAG 运行。","Doctor 诊断可选,不是重跑前置。"," ",l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f||r.recoveryRunsLoading,"data-testid":"recovery-refresh-candidates",onClick:()=>{r.loadRecoveryRuns()},children:r.recoveryRunsLoading?"刷新中…":"刷新候选"})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"DAG 运行 ID"}),!r.manualRunId&&r.recoveryRuns.length>0?l.jsxs("select",{"data-testid":"recovery-run-select",value:r.dagRunId,disabled:f||r.recoveryRunsLoading,onChange:m=>{r.setManualRunId(!1),r.setManualNodeId(!1),r.setFromNodeId(""),r.setDagRunId(m.target.value),r.recoveryReasonTouched||r.setRecoveryReasonTouched(!1)},children:[r.recoveryRuns.some(m=>m.dagRunId===r.dagRunId)?null:l.jsx("option",{value:r.dagRunId||"",children:r.dagRunId?`${r.dagRunId}(当前)`:"— 请选择 —"}),r.recoveryRuns.map(m=>l.jsx("option",{value:m.dagRunId,children:Cx(m)},m.dagRunId))]}):l.jsx("input",{"data-testid":"recovery-run-input",value:r.dagRunId,disabled:f,onChange:m=>{r.setManualRunId(!0),r.setDagRunId(m.target.value.trim())},placeholder:"dag-run-id(子图/完整重跑)"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-run-manual-toggle",onClick:()=>{if(!r.manualRunId&&r.recoveryRuns.length>0){r.setManualRunId(!0);return}r.setManualRunId(!1),r.loadRecoveryRuns()},children:!r.manualRunId&&r.recoveryRuns.length>0?"手动输入运行 ID":"刷新并改用下拉"})]}),l.jsxs("label",{className:"field",children:[l.jsxs("span",{className:"muted",children:["起始节点 ID(从节点重跑)",r.recoveryNodesLoading?" · 加载节点…":""]}),!r.manualNodeId&&r.recoveryNodes.length>0?l.jsxs("select",{"data-testid":"recovery-node-select",value:r.fromNodeId,disabled:f||r.recoveryNodesLoading,onChange:m=>{r.setManualNodeId(!1),r.setFromNodeId(m.target.value)},children:[r.recoveryNodes.some(m=>m.nodeId===r.fromNodeId)?null:l.jsx("option",{value:r.fromNodeId||"",children:r.fromNodeId?`${r.fromNodeId}(当前)`:"— 请选择 —"}),r.recoveryNodes.map(m=>l.jsx("option",{value:m.nodeId,children:Ex(m)},m.nodeId))]}):l.jsx("input",{"data-testid":"recovery-node-input",value:r.fromNodeId,disabled:f,onChange:m=>{r.setManualNodeId(!0),r.setFromNodeId(m.target.value.trim())},placeholder:"例如 review-verdict-recovery-pi"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-node-manual-toggle",onClick:()=>{if(!r.manualNodeId&&r.recoveryNodes.length>0){r.setManualNodeId(!0);return}r.setManualNodeId(!1),r.loadRecoveryNodes(r.dagRunId)},children:!r.manualNodeId&&r.recoveryNodes.length>0?"手动输入节点 ID":"刷新并改用下拉"})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"恢复原因(已按 run/节点失败事实自动预填,可编辑)"}),l.jsx("textarea",{"data-testid":"recovery-reason",value:r.recoveryReason,disabled:f,rows:4,onChange:m=>{r.setRecoveryReasonTouched(!0),r.setRecoveryReason(m.target.value)},placeholder:"将自动预填 operator-recovery / run / from-node / detail"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-reason-refresh",onClick:()=>{r.setRecoveryReasonTouched(!1),r.setRecoveryReason(r.buildCurrentRecoveryReason(r.recoveryConfirm?.label))},children:"重新预填原因"})]}),l.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-dag",children:[l.jsx("h3",{children:"DAG 运行恢复"}),l.jsx("p",{className:"muted",children:"针对 `.harness/dag-runs` 的 Agent DAG 运行。橙色为当前建议;带 * 需确认原因。"}),l.jsxs("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-dag",children:[r.recoveryLanes.dag.map(m=>{const v=m.id===r.recommendedCtaId;return l.jsxs("button",{type:"button",className:v?"btn btn-primary":"btn btn-secondary",disabled:f,title:m.guide,"aria-pressed":r.recoveryConfirm?.id===m.id?!0:void 0,"data-testid":`recovery-cta-${m.id}`,"data-recommended":v?"true":void 0,onClick:()=>{r.handleRecoveryCta(m)},children:[m.label,m.requiresReason?" *":""]},m.id)}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!r.dagRunId.trim(),"data-testid":"recovery-dag-preview",title:"在本页侧栏预览,可关闭返回",onClick:()=>{if(!r.dagRunId.trim()){i.setOpError("侧栏预览需要先选择 DAG 运行 ID");return}r.setInspectSplitOpen(!0)},children:"侧栏预览"})]}),r.recoveryReport?l.jsxs("div",{className:"recovery-report","data-testid":"recovery-report",children:[l.jsxs("div",{className:"recovery-report-header",children:[l.jsx("h3",{children:"交接报告摘要"}),l.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"recovery-report-close",onClick:()=>r.setRecoveryReport(null),children:"关闭"})]}),l.jsxs("dl",{className:"recovery-report-facts",children:[l.jsxs("div",{children:[l.jsx("dt",{children:"运行"}),l.jsx("dd",{children:l.jsx("code",{children:r.recoveryReport.runId})})]}),r.recoveryReport.title?l.jsxs("div",{children:[l.jsx("dt",{children:"标题"}),l.jsx("dd",{children:r.recoveryReport.title})]}):null,l.jsxs("div",{children:[l.jsx("dt",{children:"状态"}),l.jsx("dd",{children:r.recoveryReport.status??"—"})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"失败分类"}),l.jsx("dd",{children:r.recoveryReport.category??"—"})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"建议"}),l.jsx("dd",{children:r.recoveryReport.recommendation??"暂无结构化建议"})]})]}),l.jsxs("p",{className:"muted",children:["完整 Markdown 可用 CLI:",l.jsxs("code",{children:["loop-agent dag report --run-id"," ",r.recoveryReport.runId," --markdown"]})]})]}):null,l.jsx(ch,{lane:"dag",cta:r.recoveryConfirm,...h})]}),l.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-worker",children:[l.jsx("h3",{children:"Worker Task 重排队"}),l.jsx("p",{className:"muted",children:"针对 agent-worker Task Pool,不是 DAG run。需要 Task ID;Feature ID 可选。"}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"Task ID(Worker 重排队必填)"}),l.jsx("input",{"data-testid":"recovery-worker-task-id",value:u.taskId,disabled:f,onChange:m=>u.setTaskId(m.target.value.trim()),placeholder:"harness / worker task-id"})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"Feature ID(可选)"}),l.jsx("input",{"data-testid":"recovery-feature-id",value:r.featureId,disabled:f,onChange:m=>r.setFeatureId(m.target.value.trim()),placeholder:"feature-id"})]}),l.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-worker",children:r.recoveryLanes.worker.length>0?r.recoveryLanes.worker.map(m=>l.jsxs("button",{type:"button",className:m.id===r.recommendedCtaId?"btn btn-primary":"btn btn-secondary",disabled:f,title:m.guide,"data-testid":`recovery-cta-${m.id}`,"data-recommended":m.id===r.recommendedCtaId?"true":void 0,onClick:()=>{r.handleRecoveryCta(m)},children:[m.label,m.requiresReason?" *":""]},m.id)):l.jsx("p",{className:"muted","data-testid":"recovery-worker-unavailable",children:"当前事实分类下不提供 Worker 重排队。"})}),l.jsx(ch,{lane:"worker",cta:r.recoveryConfirm,...h})]}),l.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row",hidden:!0,children:r.recoveryCtas.map(m=>l.jsx("span",{children:m.id},m.id))}),r.observeLinkMessage?l.jsxs("p",{className:"muted",children:["[",Vb[r.observeLinkStatus],"]"," ",r.observeLinkMessage]}):null,r.observeUrl?l.jsx("p",{className:"muted",children:l.jsx("a",{className:"external-link",href:r.observeUrl,children:r.observeUrl})}):null]})}function Gx(s){const{health:i,readiness:r,healthError:u,layers:f,setupBlocked:h,degraded:m}=s;return l.jsxs(l.Fragment,{children:[l.jsxs("section",{className:"panel","aria-labelledby":"settings-title",children:[l.jsx("h2",{id:"settings-title",children:"设置"}),l.jsxs("dl",{className:"kv",children:[l.jsxs("div",{children:[l.jsx("dt",{children:"产品"}),l.jsx("dd",{children:i?.productName??"Loop Operator Console"})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"仓库根目录"}),l.jsx("dd",{children:l.jsx("code",{children:i?.repoRoot??"—"})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"仓库指纹"}),l.jsx("dd",{children:l.jsx("code",{title:i?.repoFingerprint??void 0,children:i?.repoFingerprint?`${i.repoFingerprint.slice(0,12)}…`:"—"})})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"Pi 就绪"}),l.jsxs("dd",{children:[l.jsxs("code",{children:[zh[r]??r,"(",r,")"]}),h?l.jsx("p",{className:"muted",children:"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。请前往「模型与认证」。"}):m?l.jsx("p",{className:"muted",children:"Pi 暂时降级:仍可恢复草稿与需求访谈。"}):null]})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"Inspect"}),l.jsxs("dd",{children:[l.jsx("code",{children:"/inspect/"}),"(同一 Console 进程)"]})]})]}),u?l.jsx("p",{className:"error",children:u}):null]}),l.jsxs("section",{className:"panel","aria-labelledby":"layers-title",children:[l.jsx("h2",{id:"layers-title",children:"完成语义分层"}),l.jsx("p",{className:"muted",children:"MVP 不执行收尾提交;不显示「任务已关闭/已交付」。"}),l.jsxs("dl",{className:"kv","data-testid":"completion-layers",children:[l.jsxs("div",{children:[l.jsx("dt",{children:"命令"}),l.jsx("dd",{children:wi(f.command)})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"DAG 生命周期"}),l.jsx("dd",{children:wi(f.dag)})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"最终验证"}),l.jsx("dd",{children:wi(f.verification)})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"晋升"}),l.jsx("dd",{children:wi(f.promote)})]}),l.jsxs("div",{children:[l.jsx("dt",{children:"任务关闭"}),l.jsx("dd",{children:"不可用(MVP)"})]})]})]})]})}function $x(s){const{busy:i,degraded:r,taskId:u,assessmentId:f,contractValidateOk:h,contractValidateSummary:m,contractDiffSummary:v,contractApplied:S,spineOk:x,onRerunPreflight:R,onApplyContract:j,onRetrySpine:L}=s;return l.jsxs("div",{"data-testid":"panel-contract",children:[l.jsx("h3",{children:"契约落地"}),l.jsx("p",{className:"muted",children:"进入本步后自动跑确定性校验与差异(非 AI 代判)。写入仓库仍需你人工确认一次;应用成功后会自动跑 Spine 审计。"}),l.jsxs("p",{className:"muted",children:["评估 ID: ",l.jsx("code",{children:f??"—"})]}),l.jsxs("div",{className:"contract-checks",children:[l.jsxs("p",{children:[l.jsx("strong",{children:"校验"}),":"," ",h===null?i?"进行中…":"等待开始":h?"通过":"未通过"]}),m?l.jsx("pre",{className:"cmd","data-testid":"contract-validate-summary",children:m}):null,l.jsxs("p",{children:[l.jsx("strong",{children:"差异"}),v?"":":尚未拉取"]}),v?l.jsx("pre",{className:"cmd","data-testid":"contract-diff-summary",children:v}):null,S?l.jsxs("p",{children:[l.jsx("strong",{children:"Spine"}),":"," ",x===null?"待检查":x?"通过":"未通过"]}):null]}),l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:i||!u.trim(),onClick:R,children:"重新校验"}),l.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"contract-apply",disabled:i||r||!f||h!==!0||S,onClick:j,children:"确认并应用契约"}),S&&x===!1?l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i,onClick:L,children:"重试 Spine"}):null]})]})}function Yx(s){const{busy:i,taskId:r,confirmationId:u,confirmationDetails:f,runAction:h,onConfirmAndRun:m}=s;return l.jsxs("div",{"data-testid":"panel-dag-confirm",children:[l.jsx("h3",{children:"DAG 确认(§5.5)"}),l.jsxs("ul",{className:"checklist",children:[l.jsx("li",{children:"源绑定(source)"}),l.jsx("li",{children:"Writer 写集范围(writer-scope)"}),l.jsx("li",{children:"验证命令(verification)"}),l.jsx("li",{children:"人工门禁(human-gates)"})]}),f?l.jsx("pre",{className:"cmd",children:JSON.stringify(f,null,2).slice(0,4e3)}):null,l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i,onClick:()=>{h("prepareDagConfirmation",{taskId:r,dagHandle:`${r}.dag.json`,profile:"auto"})},children:"生成 DAG 并准备确认"}),l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i||!u,onClick:m,children:"开始运行"})]}),u?l.jsxs("p",{className:"muted",children:["确认 ID: ",l.jsx("code",{children:u})]}):null]})}function Kx(s){const{busy:i,taskKind:r,onTaskKindChange:u,workflowHint:f,prd:h,engineering:m,onEngineeringChange:v,onImport:S}=s,x=i||h.prdFileReading;return l.jsxs("div",{"data-testid":"panel-import-prd",children:[l.jsx("h3",{children:"导入需求"}),l.jsx("p",{className:"muted",children:"粘贴、选择或拖入一份或多份 PRD / 需求 Markdown。多文件会分别归档到 source/references,并合成一份可编辑正文。创建前可继续编辑。 系统会对 PRD 做确定性/语义结构化;工程边界(路径与验证)须人类确认,不会由模型编造。"}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"流程类型"}),l.jsx("select",{"data-testid":"workflow-kind-select",value:r,disabled:i||h.prdFileReading,onChange:R=>u(R.target.value),children:xc.map(R=>l.jsx("option",{value:R.kind,children:R.label},R.kind))})]}),l.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-hint",children:[f," · taskKind=",l.jsx("code",{children:r})]}),l.jsxs("div",{className:`prd-drop-zone${h.prdDragOver?" is-dragover":""}`,"data-testid":"prd-drop-zone","data-dragover":h.prdDragOver?"true":"false",onDragEnter:R=>h.onDragEnter(R,x),onDragOver:R=>{R.preventDefault(),R.stopPropagation()},onDragLeave:h.onDragLeave,onDrop:R=>h.onDrop(R,x),children:[l.jsxs("div",{className:"prd-upload-toolbar",children:[l.jsxs("label",{className:`btn btn-ghost prd-upload-btn${x?" is-disabled":""}`,children:["选择需求文档",l.jsx("input",{type:"file",accept:tx,multiple:!0,hidden:!0,disabled:x,"data-testid":"prd-file-input",onChange:R=>{const j=R.currentTarget;h.loadPrdFromFiles(j.files).finally(()=>{j.value=""})}})]}),l.jsxs("span",{className:"muted prd-upload-hint",children:["支持多文件 .md / .markdown / .txt,单文件最大"," ",jc(Sc),",最多 ",Hi," 个"]}),h.prdDocuments.length>0?l.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"prd-recompose",disabled:x,onClick:h.recomposeDocuments,children:"按文件重新合成"}):null]}),h.prdDocuments.length>0?l.jsx("ul",{className:"prd-file-list","data-testid":"prd-file-list",children:h.prdDocuments.map((R,j)=>l.jsxs("li",{className:j===h.prdPrimaryIndex?"is-primary":void 0,"data-testid":`prd-file-item-${j}`,children:[l.jsxs("span",{className:"prd-file-item-name",children:[R.fileName,j===h.prdPrimaryIndex?l.jsx("span",{className:"prd-file-primary-tag",children:"主"}):null,l.jsxs("span",{className:"muted",children:[" ","· ",jc(R.sourceBytes)]})]}),l.jsxs("span",{className:"prd-file-item-actions",children:[l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x||j===h.prdPrimaryIndex,onClick:()=>h.setPrimaryDocument(j),children:"设为主"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x||j===0,onClick:()=>h.moveDocument(j,-1),children:"上移"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x||j===h.prdDocuments.length-1,onClick:()=>h.moveDocument(j,1),children:"下移"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x,onClick:()=>h.removeDocument(j),children:"移除"})]})]},`${R.fileName}-${j}`))}):null,h.prdDocuments.length>0?l.jsxs("div",{className:"prd-file-meta",children:[l.jsxs("span",{children:["分卷=上传原件(将分别归档);正文=本会话采用稿",h.prdComposedDirty?"(已手动编辑)":""]}),l.jsx("button",{type:"button",className:"btn btn-ghost prd-file-clear","data-testid":"prd-file-clear",disabled:x,onClick:h.clearDocuments,children:"清除来源列表"})]}):null,h.prdDragOver?l.jsx("p",{className:"prd-drop-hint","data-testid":"prd-drop-hint",children:"释放以载入"}):null,l.jsxs("label",{className:"field prd-text-field",children:[l.jsx("span",{className:"muted",children:"PRD Markdown"}),l.jsx("textarea",{rows:10,value:h.prdText,disabled:x,"data-testid":"prd-textarea",onChange:R=>h.onPrdTextChange(R.target.value)})]})]}),h.prdFileError?l.jsx("p",{className:"prd-file-error",role:"alert","aria-live":"polite","data-testid":"prd-file-error",children:h.prdFileError}):null,l.jsxs("details",{className:"engineering-boundary","data-testid":"engineering-boundary",children:[l.jsx("summary",{children:"工程边界(可选,人类确认)"}),l.jsxs("p",{className:"muted",children:["逗号或换行分隔。留空则 intake 后进入访谈补齐;不会自动填",l.jsx("code",{children:"src/worker/console/**"})," 模板。"]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"allowedPaths"}),l.jsx("textarea",{rows:2,value:m.allowedPathsText,disabled:x,"data-testid":"prd-allowed-paths",placeholder:"src/**, test/**",onChange:R=>v({allowedPathsText:R.target.value})})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"forbiddenPaths"}),l.jsx("textarea",{rows:2,value:m.forbiddenPathsText,disabled:x,"data-testid":"prd-forbidden-paths",placeholder:".harness/**, node_modules/**",onChange:R=>v({forbiddenPathsText:R.target.value})})]}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"verifyCommands(label:command 或纯命令)"}),l.jsx("textarea",{rows:2,value:m.verifyCommandsText,disabled:x,"data-testid":"prd-verify-commands",placeholder:"typecheck:npm run typecheck",onChange:R=>v({verifyCommandsText:R.target.value})})]})]}),l.jsx("div",{className:"cta-row",children:l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i||h.prdFileReading||!h.prdText.trim(),onClick:S,children:"导入并创建任务"})})]})}function Xx(s){const{busy:i,taskId:r,taskTitle:u,taskKind:f,sessionId:h,question:m,answerText:v,onAnswerTextChange:S,draftSummary:x,assessmentId:R,runAction:j}=s;return l.jsxs("div",{"data-testid":"panel-interview",children:[l.jsx("h3",{children:"需求访谈(grill-me)"}),l.jsx("p",{className:"muted",children:"一次一问;也可跳过:系统会按推荐补齐草稿并签发评估,随后进入校验。 访谈中不可应用契约 / 运行 DAG / 对账。"}),x?l.jsx("pre",{className:"cmd","data-testid":"draft-summary",children:JSON.stringify(x,null,2)}):null,l.jsxs("div",{className:"cta-row",style:{marginBottom:"0.75rem"},children:[!h||!m?l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i||!r.trim(),onClick:()=>{j("interviewStart",{taskId:r,title:u,taskKind:f})},children:"开始 / 继续访谈"}):null,l.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"interview-skip",disabled:i||!r.trim(),onClick:()=>{j("interviewSkip",{taskId:r,title:u,taskKind:f})},children:"跳过访谈"})]}),h&&m?l.jsxs("div",{className:"interview-card",children:[l.jsxs("p",{className:"interview-q",children:[l.jsx("strong",{children:m.id})," · 风险=",Lh[m.risk??""]??m.risk??"—"]}),l.jsx("p",{children:m.text}),m.recommendation?l.jsxs("p",{className:"muted",children:["推荐:",m.recommendation]}):null,l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"你的回答(覆盖推荐)"}),l.jsx("textarea",{rows:3,value:v,disabled:i,onChange:L=>S(L.target.value)})]}),l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i,onClick:()=>{j("interviewTurn",{sessionId:h,questionId:m.id,response:"accept-recommendation"}).then(()=>S(""))},children:"接受推荐"}),l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i||!v.trim(),onClick:()=>{j("interviewTurn",{sessionId:h,questionId:m.id,response:"override",text:v}).then(()=>S(""))},children:"提交自定义回答"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:i||m.risk==="high",onClick:()=>{j("interviewTurn",{sessionId:h,questionId:m.id,response:"defer",text:v||m.recommendation}).then(()=>S(""))},children:"暂缓(非高风险)"})]})]}):null,R?l.jsxs("p",{className:"muted",children:["评估 ID: ",l.jsx("code",{children:R})]}):null]})}function Qx(s){const{busy:i,confirmationId:r,operationId:u,dagRunId:f,taskId:h,observeBusy:m,sseLog:v,runAction:S,onStopFollow:x,onShowInspectSplit:R,onOpenInspectSplit:j}=s;return l.jsxs("div",{"data-testid":"panel-run",children:[l.jsx("h3",{children:"运行详情"}),l.jsxs("div",{className:"meta-row",children:[l.jsxs("div",{children:["操作 ID: ",l.jsx("code",{children:u??"—"})]}),l.jsxs("div",{children:["确认 ID: ",l.jsx("code",{children:r??"—"})]})]}),l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:i||!r,onClick:()=>{S("runDag",{confirmationId:r},{clientRequestId:Ui("run")})},children:"重新运行"}),l.jsx("button",{type:"button",className:"btn btn-secondary",onClick:x,children:"停止跟随日志"}),l.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!f.trim(),onClick:R,children:"打开检视"}),l.jsx("button",{type:"button",className:"btn btn-ghost",disabled:m||!f.trim()&&!h.trim(),title:"在本页侧栏预览,可关闭返回",onClick:j,children:"侧栏预览"})]}),l.jsx("pre",{className:"cmd","data-testid":"sse-log",children:v.join(`
29
+ `)||"(尚无事件)"})]})}function Vx(s){const{shell:i,actions:r,wizard:u,prd:f,recovery:h}=s,{busy:m,step:v,setupBlocked:S,degraded:x}=i;return l.jsxs("section",{className:"panel task-ops","aria-labelledby":"task-ops-title",children:[l.jsx("h2",{id:"task-ops-title",children:"任务操作"}),l.jsx("p",{className:"panel-lead",children:"按 Happy Path 推进;契约落地一步内自动校验,人工确认写入。"}),l.jsx("ol",{className:"wizard-steps","data-testid":"wizard-steps",children:u.wizardSteps.map((R,j)=>l.jsxs("li",{"data-active":v===R.id,"data-done":j<u.stepIndex,children:[l.jsx("span",{className:"step-index",children:String(j+1).padStart(2,"0")}),l.jsx("span",{className:"step-label",children:R.label})]},R.id))}),l.jsxs("label",{className:"field",children:[l.jsx("span",{className:"muted",children:"任务 ID"}),l.jsx("input",{"data-testid":"task-id-input",value:u.taskId,disabled:m||S||v==="import-prd",placeholder:v==="import-prd"?"导入需求后自动生成":"task-id",onChange:R=>u.setTaskId(R.target.value.trim())})]}),u.taskTitle?l.jsxs("p",{className:"workflow-hint","data-testid":"task-title-chip",children:["任务名称:",u.taskTitle]}):null,v!=="import-prd"&&!S?l.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-chip",children:["当前流程:",u.workflowMeta.label," ·"," ",l.jsx("code",{children:u.taskKind})]}):null,S||v==="setup"?l.jsxs("div",{className:"empty-state","data-testid":"setup-gate",children:[l.jsx("p",{className:"empty-title",children:"需要先完成设置"}),l.jsx("p",{className:"muted",children:"请先在「模型与认证」完成 Pi 就绪,再导入需求与访谈。"}),l.jsxs("div",{className:"cta-row",children:[l.jsx("button",{type:"button",className:"btn btn-primary",disabled:m,onClick:()=>{i.selectNav("models"),r.runAction("refreshReadiness",{}).then(()=>i.loadHealth())},children:"刷新就绪状态"}),l.jsx("button",{type:"button",className:"btn btn-primary",disabled:m,onClick:()=>{r.runAction("doctor",{})},children:"运行诊断"}),l.jsx("pre",{className:"cmd",children:_h})]})]}):l.jsxs("div",{className:"wizard-body","data-testid":"wizard-body",children:[v==="import-prd"&&l.jsx(Kx,{busy:m,taskKind:u.taskKind,onTaskKindChange:u.setTaskKind,workflowHint:u.workflowMeta.hint,prd:f,engineering:u.engineering,onEngineeringChange:u.setEngineering,onImport:()=>{u.importPrdAndCreate()}}),v==="interview"&&l.jsx(Xx,{busy:m,taskId:u.taskId,taskTitle:u.taskTitle,taskKind:u.taskKind,sessionId:u.sessionId,question:u.question,answerText:u.answerText,onAnswerTextChange:u.setAnswerText,draftSummary:u.draftSummary,assessmentId:u.assessmentId,runAction:r.runAction}),v==="contract"&&l.jsx($x,{busy:m,degraded:x,taskId:u.taskId,assessmentId:u.assessmentId,contractValidateOk:u.contractValidateOk,contractValidateSummary:u.contractValidateSummary,contractDiffSummary:u.contractDiffSummary,contractApplied:u.contractApplied,spineOk:u.spineOk,onRerunPreflight:()=>{u.runContractPreflight(!0)},onApplyContract:()=>{u.applyContractThenSpine()},onRetrySpine:()=>{u.retrySpineOnly()}}),v==="dag-confirm"&&l.jsx(Yx,{busy:m,taskId:u.taskId,confirmationId:r.confirmationId,confirmationDetails:r.confirmationDetails,runAction:r.runAction,onConfirmAndRun:()=>{u.confirmAndRunDag()}}),v==="run"&&l.jsx(Qx,{busy:m,confirmationId:r.confirmationId,operationId:r.operationId,dagRunId:h.dagRunId,taskId:u.taskId,observeBusy:i.observeBusy,sseLog:r.sseLog,runAction:r.runAction,onStopFollow:r.stopFollowSse,onShowInspectSplit:()=>h.setInspectSplitOpen(!0),onOpenInspectSplit:()=>{h.openInspectSplit()}})]})]})}const Zx={};function Jx(){const s=Wb(),i=p.useRef(()=>{}),r=p.useCallback(R=>i.current(R),[]),u=Pb({shell:s,applyInterviewPayload:r}),f=px(),h=Ix({shell:s,actions:u,prd:f}),m=Ax({shell:s,actions:u,wizard:h});p.useEffect(()=>{i.current=h.applyInterviewPayload}),p.useEffect(()=>{s.loadHealth()},[s.loadHealth]);const v=p.useCallback((R,j={})=>{s.selectNav(R),j.taskId&&h.setTaskId(j.taskId),j.dagRunId&&m.setDagRunId(j.dagRunId),j.fromNodeId&&m.setFromNodeId(j.fromNodeId),j.featureId&&m.setFeatureId(j.featureId);const L=kh(R,j);window.location.hash.replace(/^#/,"")!==L&&(window.location.hash=L)},[s.selectNav,h.setTaskId,m.setDagRunId,m.setFromNodeId,m.setFeatureId]),S=p.useCallback(()=>{const R=Ry(window.location);if(R){v(R.workspace,R);return}const j=Eh({env:Zx?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location});v(j,{})},[v]);p.useEffect(()=>(S(),window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)),[S]);const x=s.nav==="recovery"&&m.dagRunId.trim()?`/inspect/#/dag/${encodeURIComponent(m.dagRunId.trim())}?from=recovery`:"/inspect/#/";return l.jsx(l.Fragment,{children:l.jsxs("div",{className:`console-app${s.nav==="chat"?" is-chat-focus":""}`,children:[l.jsx(zx,{nav:s.nav,readiness:s.readiness,setupBlocked:s.setupBlocked,degraded:s.degraded,health:s.health,inspectHref:x}),l.jsxs("div",{className:`console-shell${s.nav==="chat"?" is-chat-focus":""}`,children:[l.jsx(Lx,{opError:s.opError,opMessage:s.opMessage}),l.jsxs("main",{className:`console-main${s.nav==="chat"?" console-main--fill":""}`,children:[s.nav==="tasks"?l.jsx(Vx,{shell:s,actions:u,wizard:h,prd:f,recovery:m}):null,s.nav==="recovery"?l.jsx(qx,{shell:s,recovery:m,wizard:h}):null,s.nav==="night"?l.jsx(kv,{busy:s.busy,runAction:u.runAction,isActionSuccess:u.isActionSuccess,setOpError:s.setOpError}):null,s.nav==="models"?l.jsx(Bx,{busy:s.busy,readiness:s.readiness,readinessReport:s.readinessReport,health:s.health,onRefreshReadiness:()=>{u.runAction("refreshReadiness",{}).then(()=>s.loadHealth())}}):null,s.nav==="chat"?l.jsxs("section",{className:"panel panel--chat","aria-labelledby":"chat-title",children:[l.jsx("h2",{id:"chat-title",className:"sr-only",children:"对话"}),l.jsx(Xb,{origin:"",readiness:s.readiness,surface:"workspace",onNavigateWorkspace:v})]}):null,s.nav==="settings"?l.jsx(Gx,{health:s.health,readiness:s.readiness,healthError:s.healthError,layers:s.layers,setupBlocked:s.setupBlocked,degraded:s.degraded}):null]}),m.inspectSplitOpen&&m.dagRunId.trim()?l.jsx(pv,{dagRunId:m.dagRunId.trim(),nodeId:m.fromNodeId.trim()||void 0,onClose:()=>m.setInspectSplitOpen(!1),onOpenFull:m.openFullInspect}):null]})]})})}const Yh=document.getElementById("root");if(!Yh)throw new Error("Loop Operator Console: #root missing");mv.createRoot(Yh).render(l.jsx(p.StrictMode,{children:l.jsx(Jx,{})}));