@tea-agent/loop-agent 0.33.6 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/worker/console/chat/model-resolver.js +17 -0
  3. package/dist/worker/console/chat/pi-runtime.js +397 -132
  4. package/dist/worker/console/chat/routes.js +185 -25
  5. package/dist/worker/console/chat/session-store.js +39 -0
  6. package/dist/worker/console/static/assets/index-BQkhJpV8.css +1 -0
  7. package/dist/worker/console/static/assets/index-CMHovlqG.js +32 -0
  8. package/dist/worker/console/static/index.html +2 -2
  9. package/dist/worker/console/static-src/operator-chat/landing-density.js +23 -0
  10. package/dist/worker/console/static-src/operator-chat/session-title-watcher.js +128 -0
  11. package/dist/worker/console/static-src/operator-chat/sidebar-split.js +90 -0
  12. package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +37 -0
  13. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +109 -22
  14. package/dist/worker/console/static-src/operator-chat/useChatStream.js +6 -1
  15. package/dist/worker/console/static-src/operator-chat/useOverlayFocus.js +84 -0
  16. package/dist/worker/console/static-src/operator-chat/useWorkspaceLayout.js +58 -0
  17. package/dist/worker/console/static-src/operator-chat/workspace-layout-mode.js +31 -0
  18. package/harness.json +1 -1
  19. package/package.json +1 -1
  20. package/skills/local-jacoco-coverage/SKILL.md +281 -0
  21. package/skills/local-jacoco-coverage/references/requirement-to-source-mapping.md +85 -0
  22. package/skills/local-jacoco-coverage/references/runtime-alignment.md +106 -0
  23. package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +148 -0
  24. package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +110 -0
  25. package/dist/worker/console/static/assets/index-BUOLppPr.js +0 -28
  26. package/dist/worker/console/static/assets/index-C1KzazY5.css +0 -1
@@ -1,28 +0,0 @@
1
- (function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))u(f);new MutationObserver(f=>{for(const m of f)if(m.type==="childList")for(const h of m.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&u(h)}).observe(document,{childList:!0,subtree:!0});function c(f){const m={};return f.integrity&&(m.integrity=f.integrity),f.referrerPolicy&&(m.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?m.credentials="include":f.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function u(f){if(f.ep)return;f.ep=!0;const m=c(f);fetch(f.href,m)}})();var Bc={exports:{}},Qs={};var sm;function jv(){if(sm)return Qs;sm=1;var i=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function c(u,f,m){var h=null;if(m!==void 0&&(h=""+m),f.key!==void 0&&(h=""+f.key),"key"in f){m={};for(var g in f)g!=="key"&&(m[g]=f[g])}else m=f;return f=m.ref,{$$typeof:i,type:u,key:h,ref:f!==void 0?f:null,props:m}}return Qs.Fragment=o,Qs.jsx=c,Qs.jsxs=c,Qs}var lm;function Nv(){return lm||(lm=1,Bc.exports=jv()),Bc.exports}var s=Nv(),qc={exports:{}},ve={};var im;function Rv(){if(im)return ve;im=1;var i=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),m=Symbol.for("react.consumer"),h=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),O=Symbol.iterator;function T(x){return x===null||typeof x!="object"?null:(x=O&&x[O]||x["@@iterator"],typeof x=="function"?x:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q=Object.assign,ae={};function le(x,w,P){this.props=x,this.context=w,this.refs=ae,this.updater=P||H}le.prototype.isReactComponent={},le.prototype.setState=function(x,w){if(typeof x!="object"&&typeof x!="function"&&x!=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,x,w,"setState")},le.prototype.forceUpdate=function(x){this.updater.enqueueForceUpdate(this,x,"forceUpdate")};function _(){}_.prototype=le.prototype;function Q(x,w,P){this.props=x,this.context=w,this.refs=ae,this.updater=P||H}var Y=Q.prototype=new _;Y.constructor=Q,q(Y,le.prototype),Y.isPureReactComponent=!0;var X=Array.isArray;function A(){}var R={H:null,A:null,T:null,S:null},W=Object.prototype.hasOwnProperty;function ie(x,w,P){var B=P.ref;return{$$typeof:i,type:x,key:w,ref:B!==void 0?B:null,props:P}}function K(x,w){return ie(x.type,w,x.props)}function L(x){return typeof x=="object"&&x!==null&&x.$$typeof===i}function G(x){var w={"=":"=0",":":"=2"};return"$"+x.replace(/[=:]/g,function(P){return w[P]})}var ee=/\/+/g;function D(x,w){return typeof x=="object"&&x!==null&&x.key!=null?G(""+x.key):w.toString(36)}function te(x){switch(x.status){case"fulfilled":return x.value;case"rejected":throw x.reason;default:switch(typeof x.status=="string"?x.then(A,A):(x.status="pending",x.then(function(w){x.status==="pending"&&(x.status="fulfilled",x.value=w)},function(w){x.status==="pending"&&(x.status="rejected",x.reason=w)})),x.status){case"fulfilled":return x.value;case"rejected":throw x.reason}}throw x}function N(x,w,P,B,re){var se=typeof x;(se==="undefined"||se==="boolean")&&(x=null);var ne=!1;if(x===null)ne=!0;else switch(se){case"bigint":case"string":case"number":ne=!0;break;case"object":switch(x.$$typeof){case i:case o:ne=!0;break;case E:return ne=x._init,N(ne(x._payload),w,P,B,re)}}if(ne)return re=re(x),ne=B===""?"."+D(x,0):B,X(re)?(P="",ne!=null&&(P=ne.replace(ee,"$&/")+"/"),N(re,w,P,"",function(Ie){return Ie})):re!=null&&(L(re)&&(re=K(re,P+(re.key==null||x&&x.key===re.key?"":(""+re.key).replace(ee,"$&/")+"/")+ne)),w.push(re)),1;ne=0;var de=B===""?".":B+":";if(X(x))for(var me=0;me<x.length;me++)B=x[me],se=de+D(B,me),ne+=N(B,w,P,se,re);else if(me=T(x),typeof me=="function")for(x=me.call(x),me=0;!(B=x.next()).done;)B=B.value,se=de+D(B,me++),ne+=N(B,w,P,se,re);else if(se==="object"){if(typeof x.then=="function")return N(te(x),w,P,B,re);throw w=String(x),Error("Objects are not valid as a React child (found: "+(w==="[object Object]"?"object with keys {"+Object.keys(x).join(", ")+"}":w)+"). If you meant to render a collection of children, use an array instead.")}return ne}function M(x,w,P){if(x==null)return x;var B=[],re=0;return N(x,B,"","",function(se){return w.call(P,se,re++)}),B}function Z(x){if(x._status===-1){var w=x._result;w=w(),w.then(function(P){(x._status===0||x._status===-1)&&(x._status=1,x._result=P)},function(P){(x._status===0||x._status===-1)&&(x._status=2,x._result=P)}),x._status===-1&&(x._status=0,x._result=w)}if(x._status===1)return x._result.default;throw x._result}var ue=typeof reportError=="function"?reportError:function(x){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var w=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof x=="object"&&x!==null&&typeof x.message=="string"?String(x.message):String(x),error:x});if(!window.dispatchEvent(w))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",x);return}console.error(x)},ce={map:M,forEach:function(x,w,P){M(x,function(){w.apply(this,arguments)},P)},count:function(x){var w=0;return M(x,function(){w++}),w},toArray:function(x){return M(x,function(w){return w})||[]},only:function(x){if(!L(x))throw Error("React.Children.only expected to receive a single React element child.");return x}};return ve.Activity=j,ve.Children=ce,ve.Component=le,ve.Fragment=c,ve.Profiler=f,ve.PureComponent=Q,ve.StrictMode=u,ve.Suspense=b,ve.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R,ve.__COMPILER_RUNTIME={__proto__:null,c:function(x){return R.H.useMemoCache(x)}},ve.cache=function(x){return function(){return x.apply(null,arguments)}},ve.cacheSignal=function(){return null},ve.cloneElement=function(x,w,P){if(x==null)throw Error("The argument must be a React element, but you passed "+x+".");var B=q({},x.props),re=x.key;if(w!=null)for(se in w.key!==void 0&&(re=""+w.key),w)!W.call(w,se)||se==="key"||se==="__self"||se==="__source"||se==="ref"&&w.ref===void 0||(B[se]=w[se]);var se=arguments.length-2;if(se===1)B.children=P;else if(1<se){for(var ne=Array(se),de=0;de<se;de++)ne[de]=arguments[de+2];B.children=ne}return ie(x.type,re,B)},ve.createContext=function(x){return x={$$typeof:h,_currentValue:x,_currentValue2:x,_threadCount:0,Provider:null,Consumer:null},x.Provider=x,x.Consumer={$$typeof:m,_context:x},x},ve.createElement=function(x,w,P){var B,re={},se=null;if(w!=null)for(B in w.key!==void 0&&(se=""+w.key),w)W.call(w,B)&&B!=="key"&&B!=="__self"&&B!=="__source"&&(re[B]=w[B]);var ne=arguments.length-2;if(ne===1)re.children=P;else if(1<ne){for(var de=Array(ne),me=0;me<ne;me++)de[me]=arguments[me+2];re.children=de}if(x&&x.defaultProps)for(B in ne=x.defaultProps,ne)re[B]===void 0&&(re[B]=ne[B]);return ie(x,se,re)},ve.createRef=function(){return{current:null}},ve.forwardRef=function(x){return{$$typeof:g,render:x}},ve.isValidElement=L,ve.lazy=function(x){return{$$typeof:E,_payload:{_status:-1,_result:x},_init:Z}},ve.memo=function(x,w){return{$$typeof:y,type:x,compare:w===void 0?null:w}},ve.startTransition=function(x){var w=R.T,P={};R.T=P;try{var B=x(),re=R.S;re!==null&&re(P,B),typeof B=="object"&&B!==null&&typeof B.then=="function"&&B.then(A,ue)}catch(se){ue(se)}finally{w!==null&&P.types!==null&&(w.types=P.types),R.T=w}},ve.unstable_useCacheRefresh=function(){return R.H.useCacheRefresh()},ve.use=function(x){return R.H.use(x)},ve.useActionState=function(x,w,P){return R.H.useActionState(x,w,P)},ve.useCallback=function(x,w){return R.H.useCallback(x,w)},ve.useContext=function(x){return R.H.useContext(x)},ve.useDebugValue=function(){},ve.useDeferredValue=function(x,w){return R.H.useDeferredValue(x,w)},ve.useEffect=function(x,w){return R.H.useEffect(x,w)},ve.useEffectEvent=function(x){return R.H.useEffectEvent(x)},ve.useId=function(){return R.H.useId()},ve.useImperativeHandle=function(x,w,P){return R.H.useImperativeHandle(x,w,P)},ve.useInsertionEffect=function(x,w){return R.H.useInsertionEffect(x,w)},ve.useLayoutEffect=function(x,w){return R.H.useLayoutEffect(x,w)},ve.useMemo=function(x,w){return R.H.useMemo(x,w)},ve.useOptimistic=function(x,w){return R.H.useOptimistic(x,w)},ve.useReducer=function(x,w,P){return R.H.useReducer(x,w,P)},ve.useRef=function(x){return R.H.useRef(x)},ve.useState=function(x){return R.H.useState(x)},ve.useSyncExternalStore=function(x,w,P){return R.H.useSyncExternalStore(x,w,P)},ve.useTransition=function(){return R.H.useTransition()},ve.version="19.2.8",ve}var rm;function to(){return rm||(rm=1,qc.exports=Rv()),qc.exports}var v=to(),Gc={exports:{}},Vs={},$c={exports:{}},Yc={};var cm;function Cv(){return cm||(cm=1,(function(i){function o(N,M){var Z=N.length;N.push(M);e:for(;0<Z;){var ue=Z-1>>>1,ce=N[ue];if(0<f(ce,M))N[ue]=M,N[Z]=ce,Z=ue;else break e}}function c(N){return N.length===0?null:N[0]}function u(N){if(N.length===0)return null;var M=N[0],Z=N.pop();if(Z!==M){N[0]=Z;e:for(var ue=0,ce=N.length,x=ce>>>1;ue<x;){var w=2*(ue+1)-1,P=N[w],B=w+1,re=N[B];if(0>f(P,Z))B<ce&&0>f(re,P)?(N[ue]=re,N[B]=Z,ue=B):(N[ue]=P,N[w]=Z,ue=w);else if(B<ce&&0>f(re,Z))N[ue]=re,N[B]=Z,ue=B;else break e}}return M}function f(N,M){var Z=N.sortIndex-M.sortIndex;return Z!==0?Z:N.id-M.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var m=performance;i.unstable_now=function(){return m.now()}}else{var h=Date,g=h.now();i.unstable_now=function(){return h.now()-g}}var b=[],y=[],E=1,j=null,O=3,T=!1,H=!1,q=!1,ae=!1,le=typeof setTimeout=="function"?setTimeout:null,_=typeof clearTimeout=="function"?clearTimeout:null,Q=typeof setImmediate<"u"?setImmediate:null;function Y(N){for(var M=c(y);M!==null;){if(M.callback===null)u(y);else if(M.startTime<=N)u(y),M.sortIndex=M.expirationTime,o(b,M);else break;M=c(y)}}function X(N){if(q=!1,Y(N),!H)if(c(b)!==null)H=!0,A||(A=!0,G());else{var M=c(y);M!==null&&te(X,M.startTime-N)}}var A=!1,R=-1,W=5,ie=-1;function K(){return ae?!0:!(i.unstable_now()-ie<W)}function L(){if(ae=!1,A){var N=i.unstable_now();ie=N;var M=!0;try{e:{H=!1,q&&(q=!1,_(R),R=-1),T=!0;var Z=O;try{t:{for(Y(N),j=c(b);j!==null&&!(j.expirationTime>N&&K());){var ue=j.callback;if(typeof ue=="function"){j.callback=null,O=j.priorityLevel;var ce=ue(j.expirationTime<=N);if(N=i.unstable_now(),typeof ce=="function"){j.callback=ce,Y(N),M=!0;break t}j===c(b)&&u(b),Y(N)}else u(b);j=c(b)}if(j!==null)M=!0;else{var x=c(y);x!==null&&te(X,x.startTime-N),M=!1}}break e}finally{j=null,O=Z,T=!1}M=void 0}}finally{M?G():A=!1}}}var G;if(typeof Q=="function")G=function(){Q(L)};else if(typeof MessageChannel<"u"){var ee=new MessageChannel,D=ee.port2;ee.port1.onmessage=L,G=function(){D.postMessage(null)}}else G=function(){le(L,0)};function te(N,M){R=le(function(){N(i.unstable_now())},M)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(N){N.callback=null},i.unstable_forceFrameRate=function(N){0>N||125<N?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):W=0<N?Math.floor(1e3/N):5},i.unstable_getCurrentPriorityLevel=function(){return O},i.unstable_next=function(N){switch(O){case 1:case 2:case 3:var M=3;break;default:M=O}var Z=O;O=M;try{return N()}finally{O=Z}},i.unstable_requestPaint=function(){ae=!0},i.unstable_runWithPriority=function(N,M){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var Z=O;O=N;try{return M()}finally{O=Z}},i.unstable_scheduleCallback=function(N,M,Z){var ue=i.unstable_now();switch(typeof Z=="object"&&Z!==null?(Z=Z.delay,Z=typeof Z=="number"&&0<Z?ue+Z:ue):Z=ue,N){case 1:var ce=-1;break;case 2:ce=250;break;case 5:ce=1073741823;break;case 4:ce=1e4;break;default:ce=5e3}return ce=Z+ce,N={id:E++,callback:M,priorityLevel:N,startTime:Z,expirationTime:ce,sortIndex:-1},Z>ue?(N.sortIndex=Z,o(y,N),c(b)===null&&N===c(y)&&(q?(_(R),R=-1):q=!0,te(X,Z-ue))):(N.sortIndex=ce,o(b,N),H||T||(H=!0,A||(A=!0,G()))),N},i.unstable_shouldYield=K,i.unstable_wrapCallback=function(N){var M=O;return function(){var Z=O;O=M;try{return N.apply(this,arguments)}finally{O=Z}}}})(Yc)),Yc}var om;function Tv(){return om||(om=1,$c.exports=Cv()),$c.exports}var Kc={exports:{}},mt={};var um;function Ev(){if(um)return mt;um=1;var i=to();function o(b){var y="https://react.dev/errors/"+b;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var E=2;E<arguments.length;E++)y+="&args[]="+encodeURIComponent(arguments[E])}return"Minified React error #"+b+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(){}var u={d:{f:c,r:function(){throw Error(o(522))},D:c,C:c,L:c,m:c,X:c,S:c,M:c},p:0,findDOMNode:null},f=Symbol.for("react.portal");function m(b,y,E){var j=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:f,key:j==null?null:""+j,children:b,containerInfo:y,implementation:E}}var h=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(b,y){if(b==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return mt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,mt.createPortal=function(b,y){var E=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(o(299));return m(b,y,null,E)},mt.flushSync=function(b){var y=h.T,E=u.p;try{if(h.T=null,u.p=2,b)return b()}finally{h.T=y,u.p=E,u.d.f()}},mt.preconnect=function(b,y){typeof b=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,u.d.C(b,y))},mt.prefetchDNS=function(b){typeof b=="string"&&u.d.D(b)},mt.preinit=function(b,y){if(typeof b=="string"&&y&&typeof y.as=="string"){var E=y.as,j=g(E,y.crossOrigin),O=typeof y.integrity=="string"?y.integrity:void 0,T=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;E==="style"?u.d.S(b,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:j,integrity:O,fetchPriority:T}):E==="script"&&u.d.X(b,{crossOrigin:j,integrity:O,fetchPriority:T,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},mt.preinitModule=function(b,y){if(typeof b=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var E=g(y.as,y.crossOrigin);u.d.M(b,{crossOrigin:E,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0})}}else y==null&&u.d.M(b)},mt.preload=function(b,y){if(typeof b=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var E=y.as,j=g(E,y.crossOrigin);u.d.L(b,E,{crossOrigin:j,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,type:typeof y.type=="string"?y.type:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0,referrerPolicy:typeof y.referrerPolicy=="string"?y.referrerPolicy:void 0,imageSrcSet:typeof y.imageSrcSet=="string"?y.imageSrcSet:void 0,imageSizes:typeof y.imageSizes=="string"?y.imageSizes:void 0,media:typeof y.media=="string"?y.media:void 0})}},mt.preloadModule=function(b,y){if(typeof b=="string")if(y){var E=g(y.as,y.crossOrigin);u.d.m(b,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:E,integrity:typeof y.integrity=="string"?y.integrity:void 0})}else u.d.m(b)},mt.requestFormReset=function(b){u.d.r(b)},mt.unstable_batchedUpdates=function(b,y){return b(y)},mt.useFormState=function(b,y,E){return h.H.useFormState(b,y,E)},mt.useFormStatus=function(){return h.H.useHostTransitionStatus()},mt.version="19.2.8",mt}var dm;function Av(){if(dm)return Kc.exports;dm=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(o){console.error(o)}}return i(),Kc.exports=Ev(),Kc.exports}var fm;function kv(){if(fm)return Vs;fm=1;var i=Tv(),o=to(),c=Av();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 m(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 h(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 g(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 b(e){if(m(e)!==e)throw Error(u(188))}function y(e){var t=e.alternate;if(!t){if(t=m(e),t===null)throw Error(u(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var r=l.alternate;if(r===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===r.child){for(r=l.child;r;){if(r===n)return b(l),e;if(r===a)return b(l),t;r=r.sibling}throw Error(u(188))}if(n.return!==a.return)n=l,a=r;else{for(var d=!1,p=l.child;p;){if(p===n){d=!0,n=l,a=r;break}if(p===a){d=!0,a=l,n=r;break}p=p.sibling}if(!d){for(p=r.child;p;){if(p===n){d=!0,n=r,a=l;break}if(p===a){d=!0,a=r,n=l;break}p=p.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 E(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=E(e),t!==null)return t;e=e.sibling}return null}var j=Object.assign,O=Symbol.for("react.element"),T=Symbol.for("react.transitional.element"),H=Symbol.for("react.portal"),q=Symbol.for("react.fragment"),ae=Symbol.for("react.strict_mode"),le=Symbol.for("react.profiler"),_=Symbol.for("react.consumer"),Q=Symbol.for("react.context"),Y=Symbol.for("react.forward_ref"),X=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),ie=Symbol.for("react.activity"),K=Symbol.for("react.memo_cache_sentinel"),L=Symbol.iterator;function G(e){return e===null||typeof e!="object"?null:(e=L&&e[L]||e["@@iterator"],typeof e=="function"?e:null)}var ee=Symbol.for("react.client.reference");function D(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ee?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case q:return"Fragment";case le:return"Profiler";case ae:return"StrictMode";case X:return"Suspense";case A:return"SuspenseList";case ie:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case H:return"Portal";case Q:return e.displayName||"Context";case _:return(e._context.displayName||"Context")+".Consumer";case Y:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case R:return t=e.displayName||null,t!==null?t:D(e.type)||"Memo";case W:t=e._payload,e=e._init;try{return D(e(t))}catch{}}return null}var te=Array.isArray,N=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Z={pending:!1,data:null,method:null,action:null},ue=[],ce=-1;function x(e){return{current:e}}function w(e){0>ce||(e.current=ue[ce],ue[ce]=null,ce--)}function P(e,t){ce++,ue[ce]=e.current,e.current=t}var B=x(null),re=x(null),se=x(null),ne=x(null);function de(e,t){switch(P(se,t),P(re,e),P(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Ef(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Ef(t),e=Af(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}w(B),P(B,e)}function me(){w(B),w(re),w(se)}function Ie(e){e.memoizedState!==null&&P(ne,e);var t=B.current,n=Af(t,e.type);t!==n&&(P(re,e),P(B,n))}function we(e){re.current===e&&(w(B),w(re)),ne.current===e&&(w(ne),$s._currentValue=Z)}var $e,vt;function ye(e){if($e===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);$e=t&&t[1]||"",vt=-1<n.stack.indexOf(`
2
- at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
3
- `+$e+e+vt}var Ce=!1;function Ue(e,t){if(!e||Ce)return"";Ce=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var F=function(){throw Error()};if(Object.defineProperty(F.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(F,[])}catch($){var U=$}Reflect.construct(e,[],F)}else{try{F.call()}catch($){U=$}e.call(F.prototype)}}else{try{throw Error()}catch($){U=$}(F=e())&&typeof F.catch=="function"&&F.catch(function(){})}}catch($){if($&&U&&typeof $.stack=="string")return[$.stack,U.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var r=a.DetermineComponentFrameRoot(),d=r[0],p=r[1];if(d&&p){var S=d.split(`
4
- `),I=p.split(`
5
- `);for(l=a=0;a<S.length&&!S[a].includes("DetermineComponentFrameRoot");)a++;for(;l<I.length&&!I[l].includes("DetermineComponentFrameRoot");)l++;if(a===S.length||l===I.length)for(a=S.length-1,l=I.length-1;1<=a&&0<=l&&S[a]!==I[l];)l--;for(;1<=a&&0<=l;a--,l--)if(S[a]!==I[l]){if(a!==1||l!==1)do if(a--,l--,0>l||S[a]!==I[l]){var V=`
6
- `+S[a].replace(" at new "," at ");return e.displayName&&V.includes("<anonymous>")&&(V=V.replace("<anonymous>",e.displayName)),V}while(1<=a&&0<=l);break}}}finally{Ce=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?ye(n):""}function Qe(e,t){switch(e.tag){case 26:case 27:case 5:return ye(e.type);case 16:return ye("Lazy");case 13:return e.child!==t&&t!==null?ye("Suspense Fallback"):ye("Suspense");case 19:return ye("SuspenseList");case 0:case 15:return Ue(e.type,!1);case 11:return Ue(e.type.render,!1);case 1:return Ue(e.type,!0);case 31:return ye("Activity");default:return""}}function en(e){try{var t="",n=null;do t+=Qe(e,n),n=e,e=e.return;while(e);return t}catch(a){return`
7
- Error generating stack: `+a.message+`
8
- `+a.stack}}var Zt=Object.prototype.hasOwnProperty,Mt=i.unstable_scheduleCallback,Xn=i.unstable_cancelCallback,Ti=i.unstable_shouldYield,Ei=i.unstable_requestPaint,tt=i.unstable_now,Ps=i.unstable_getCurrentPriorityLevel,Qn=i.unstable_ImmediatePriority,el=i.unstable_UserBlockingPriority,ma=i.unstable_NormalPriority,Ae=i.unstable_LowPriority,nt=i.unstable_IdlePriority,qe=i.log,Rt=i.unstable_setDisableYieldValue,zt=null,ht=null;function it(e){if(typeof qe=="function"&&Rt(e),ht&&typeof ht.setStrictMode=="function")try{ht.setStrictMode(zt,e)}catch{}}var ft=Math.clz32?Math.clz32:ch,ih=Math.log,rh=Math.LN2;function ch(e){return e>>>=0,e===0?32:31-(ih(e)/rh|0)|0}var tl=256,nl=262144,al=4194304;function Vn(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 sl(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,r=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var p=a&134217727;return p!==0?(a=p&~r,a!==0?l=Vn(a):(d&=p,d!==0?l=Vn(d):n||(n=p&~e,n!==0&&(l=Vn(n))))):(p=a&~r,p!==0?l=Vn(p):d!==0?l=Vn(d):n||(n=a&~e,n!==0&&(l=Vn(n)))),l===0?0:t!==0&&t!==l&&(t&r)===0&&(r=l&-l,n=t&-t,r>=n||r===32&&(n&4194048)!==0)?t:l}function ns(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function oh(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 io(){var e=al;return al<<=1,(al&62914560)===0&&(al=4194304),e}function Ai(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function as(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function uh(e,t,n,a,l,r){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 p=e.entanglements,S=e.expirationTimes,I=e.hiddenUpdates;for(n=d&~n;0<n;){var V=31-ft(n),F=1<<V;p[V]=0,S[V]=-1;var U=I[V];if(U!==null)for(I[V]=null,V=0;V<U.length;V++){var $=U[V];$!==null&&($.lane&=-536870913)}n&=~F}a!==0&&ro(e,a,0),r!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=r&~(d&~t))}function ro(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-ft(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function co(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-ft(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function oo(e,t){var n=t&-t;return n=(n&42)!==0?1:ki(n),(n&(e.suspendedLanes|t))!==0?0:n}function ki(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 wi(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function uo(){var e=M.p;return e!==0?e:(e=window.event,e===void 0?32:Wf(e.type))}function fo(e,t){var n=M.p;try{return M.p=e,t()}finally{M.p=n}}var Sn=Math.random().toString(36).slice(2),rt="__reactFiber$"+Sn,gt="__reactProps$"+Sn,ha="__reactContainer$"+Sn,Di="__reactEvents$"+Sn,dh="__reactListeners$"+Sn,fh="__reactHandles$"+Sn,mo="__reactResources$"+Sn,ss="__reactMarker$"+Sn;function Oi(e){delete e[rt],delete e[gt],delete e[Di],delete e[dh],delete e[fh]}function pa(e){var t=e[rt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ha]||n[rt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=_f(e);e!==null;){if(n=e[rt])return n;e=_f(e)}return t}e=n,n=e.parentNode}return null}function va(e){if(e=e[rt]||e[ha]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ls(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(u(33))}function ga(e){var t=e[mo];return t||(t=e[mo]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function st(e){e[ss]=!0}var ho=new Set,po={};function Zn(e,t){ya(e,t),ya(e+"Capture",t)}function ya(e,t){for(po[e]=t,e=0;e<t.length;e++)ho.add(t[e])}var mh=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]*$"),vo={},go={};function hh(e){return Zt.call(go,e)?!0:Zt.call(vo,e)?!1:mh.test(e)?go[e]=!0:(vo[e]=!0,!1)}function ll(e,t,n){if(hh(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 il(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 tn(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 _t(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function yo(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ph(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 l=a.get,r=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,r.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 Mi(e){if(!e._valueTracker){var t=yo(e)?"checked":"value";e._valueTracker=ph(e,t,""+e[t])}}function bo(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=yo(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function rl(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 vh=/[\n"\\]/g;function It(e){return e.replace(vh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function zi(e,t,n,a,l,r,d,p){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=""+_t(t)):e.value!==""+_t(t)&&(e.value=""+_t(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?_i(e,d,_t(t)):n!=null?_i(e,d,_t(n)):a!=null&&e.removeAttribute("value"),l==null&&r!=null&&(e.defaultChecked=!!r),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?e.name=""+_t(p):e.removeAttribute("name")}function xo(e,t,n,a,l,r,d,p){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.type=r),t!=null||n!=null){if(!(r!=="submit"&&r!=="reset"||t!=null)){Mi(e);return}n=n!=null?""+_t(n):"",t=t!=null?""+_t(t):n,p||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=p?e.checked:!!a,e.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Mi(e)}function _i(e,t,n){t==="number"&&rl(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ba(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+_t(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function So(e,t,n){if(t!=null&&(t=""+_t(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+_t(n):""}function jo(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(u(92));if(te(a)){if(1<a.length)throw Error(u(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=_t(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Mi(e)}function xa(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var gh=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 No(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||gh.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Ro(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 l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&No(e,l,a)}else for(var r in t)t.hasOwnProperty(r)&&No(e,r,t[r])}function Ii(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 yh=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"]]),bh=/^[\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 cl(e){return bh.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function nn(){}var Li=null;function Ui(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Sa=null,ja=null;function Co(e){var t=va(e);if(t&&(e=t.stateNode)){var n=e[gt]||null;e:switch(e=t.stateNode,t.type){case"input":if(zi(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="'+It(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[gt]||null;if(!l)throw Error(u(90));zi(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&bo(a)}break e;case"textarea":So(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&ba(e,!!n.multiple,t,!1)}}}var Hi=!1;function To(e,t,n){if(Hi)return e(t,n);Hi=!0;try{var a=e(t);return a}finally{if(Hi=!1,(Sa!==null||ja!==null)&&(Zl(),Sa&&(t=Sa,e=ja,ja=Sa=null,Co(t),e)))for(t=0;t<e.length;t++)Co(e[t])}}function is(e,t){var n=e.stateNode;if(n===null)return null;var a=n[gt]||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 an=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Bi=!1;if(an)try{var rs={};Object.defineProperty(rs,"passive",{get:function(){Bi=!0}}),window.addEventListener("test",rs,rs),window.removeEventListener("test",rs,rs)}catch{Bi=!1}var jn=null,qi=null,ol=null;function Eo(){if(ol)return ol;var e,t=qi,n=t.length,a,l="value"in jn?jn.value:jn.textContent,r=l.length;for(e=0;e<n&&t[e]===l[e];e++);var d=n-e;for(a=1;a<=d&&t[n-a]===l[r-a];a++);return ol=l.slice(e,1<a?1-a:void 0)}function ul(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 dl(){return!0}function Ao(){return!1}function yt(e){function t(n,a,l,r,d){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=r,this.target=d,this.currentTarget=null;for(var p in e)e.hasOwnProperty(p)&&(n=e[p],this[p]=n?n(r):r[p]);return this.isDefaultPrevented=(r.defaultPrevented!=null?r.defaultPrevented:r.returnValue===!1)?dl:Ao,this.isPropagationStopped=Ao,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=dl)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=dl)},persist:function(){},isPersistent:dl}),t}var Jn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fl=yt(Jn),cs=j({},Jn,{view:0,detail:0}),xh=yt(cs),Gi,$i,os,ml=j({},cs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ki,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!==os&&(os&&e.type==="mousemove"?(Gi=e.screenX-os.screenX,$i=e.screenY-os.screenY):$i=Gi=0,os=e),Gi)},movementY:function(e){return"movementY"in e?e.movementY:$i}}),ko=yt(ml),Sh=j({},ml,{dataTransfer:0}),jh=yt(Sh),Nh=j({},cs,{relatedTarget:0}),Yi=yt(Nh),Rh=j({},Jn,{animationName:0,elapsedTime:0,pseudoElement:0}),Ch=yt(Rh),Th=j({},Jn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Eh=yt(Th),Ah=j({},Jn,{data:0}),wo=yt(Ah),kh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},wh={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"},Dh={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Oh(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Dh[e])?!!t[e]:!1}function Ki(){return Oh}var Mh=j({},cs,{key:function(e){if(e.key){var t=kh[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ul(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?wh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ki,charCode:function(e){return e.type==="keypress"?ul(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ul(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),zh=yt(Mh),_h=j({},ml,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Do=yt(_h),Ih=j({},cs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ki}),Lh=yt(Ih),Uh=j({},Jn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Hh=yt(Uh),Bh=j({},ml,{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}),qh=yt(Bh),Gh=j({},Jn,{newState:0,oldState:0}),$h=yt(Gh),Yh=[9,13,27,32],Xi=an&&"CompositionEvent"in window,us=null;an&&"documentMode"in document&&(us=document.documentMode);var Kh=an&&"TextEvent"in window&&!us,Oo=an&&(!Xi||us&&8<us&&11>=us),Mo=" ",zo=!1;function _o(e,t){switch(e){case"keyup":return Yh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Io(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Na=!1;function Xh(e,t){switch(e){case"compositionend":return Io(t);case"keypress":return t.which!==32?null:(zo=!0,Mo);case"textInput":return e=t.data,e===Mo&&zo?null:e;default:return null}}function Qh(e,t){if(Na)return e==="compositionend"||!Xi&&_o(e,t)?(e=Eo(),ol=qi=jn=null,Na=!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 Oo&&t.locale!=="ko"?null:t.data;default:return null}}var Vh={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 Lo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Vh[e.type]:t==="textarea"}function Uo(e,t,n,a){Sa?ja?ja.push(a):ja=[a]:Sa=a,t=ni(t,"onChange"),0<t.length&&(n=new fl("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var ds=null,fs=null;function Zh(e){Sf(e,0)}function hl(e){var t=ls(e);if(bo(t))return e}function Ho(e,t){if(e==="change")return t}var Bo=!1;if(an){var Qi;if(an){var Vi="oninput"in document;if(!Vi){var qo=document.createElement("div");qo.setAttribute("oninput","return;"),Vi=typeof qo.oninput=="function"}Qi=Vi}else Qi=!1;Bo=Qi&&(!document.documentMode||9<document.documentMode)}function Go(){ds&&(ds.detachEvent("onpropertychange",$o),fs=ds=null)}function $o(e){if(e.propertyName==="value"&&hl(fs)){var t=[];Uo(t,fs,e,Ui(e)),To(Zh,t)}}function Jh(e,t,n){e==="focusin"?(Go(),ds=t,fs=n,ds.attachEvent("onpropertychange",$o)):e==="focusout"&&Go()}function Wh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return hl(fs)}function Fh(e,t){if(e==="click")return hl(t)}function Ph(e,t){if(e==="input"||e==="change")return hl(t)}function ep(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Ct=typeof Object.is=="function"?Object.is:ep;function ms(e,t){if(Ct(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 l=n[a];if(!Zt.call(t,l)||!Ct(e[l],t[l]))return!1}return!0}function Yo(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ko(e,t){var n=Yo(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=Yo(n)}}function Xo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Xo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Qo(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=rl(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=rl(e.document)}return t}function Zi(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 tp=an&&"documentMode"in document&&11>=document.documentMode,Ra=null,Ji=null,hs=null,Wi=!1;function Vo(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Wi||Ra==null||Ra!==rl(a)||(a=Ra,"selectionStart"in a&&Zi(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}),hs&&ms(hs,a)||(hs=a,a=ni(Ji,"onSelect"),0<a.length&&(t=new fl("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Ra)))}function Wn(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ca={animationend:Wn("Animation","AnimationEnd"),animationiteration:Wn("Animation","AnimationIteration"),animationstart:Wn("Animation","AnimationStart"),transitionrun:Wn("Transition","TransitionRun"),transitionstart:Wn("Transition","TransitionStart"),transitioncancel:Wn("Transition","TransitionCancel"),transitionend:Wn("Transition","TransitionEnd")},Fi={},Zo={};an&&(Zo=document.createElement("div").style,"AnimationEvent"in window||(delete Ca.animationend.animation,delete Ca.animationiteration.animation,delete Ca.animationstart.animation),"TransitionEvent"in window||delete Ca.transitionend.transition);function Fn(e){if(Fi[e])return Fi[e];if(!Ca[e])return e;var t=Ca[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Zo)return Fi[e]=t[n];return e}var Jo=Fn("animationend"),Wo=Fn("animationiteration"),Fo=Fn("animationstart"),np=Fn("transitionrun"),ap=Fn("transitionstart"),sp=Fn("transitioncancel"),Po=Fn("transitionend"),eu=new Map,Pi="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(" ");Pi.push("scrollEnd");function Kt(e,t){eu.set(e,t),Zn(t,[e])}var pl=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)},Lt=[],Ta=0,er=0;function vl(){for(var e=Ta,t=er=Ta=0;t<e;){var n=Lt[t];Lt[t++]=null;var a=Lt[t];Lt[t++]=null;var l=Lt[t];Lt[t++]=null;var r=Lt[t];if(Lt[t++]=null,a!==null&&l!==null){var d=a.pending;d===null?l.next=l:(l.next=d.next,d.next=l),a.pending=l}r!==0&&tu(n,l,r)}}function gl(e,t,n,a){Lt[Ta++]=e,Lt[Ta++]=t,Lt[Ta++]=n,Lt[Ta++]=a,er|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function tr(e,t,n,a){return gl(e,t,n,a),yl(e)}function Pn(e,t){return gl(e,null,null,t),yl(e)}function tu(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,r=e.return;r!==null;)r.childLanes|=n,a=r.alternate,a!==null&&(a.childLanes|=n),r.tag===22&&(e=r.stateNode,e===null||e._visibility&1||(l=!0)),e=r,r=r.return;return e.tag===3?(r=e.stateNode,l&&t!==null&&(l=31-ft(n),e=r.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),r):null}function yl(e){if(50<Is)throw Is=0,uc=null,Error(u(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ea={};function lp(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 Tt(e,t,n,a){return new lp(e,t,n,a)}function nr(e){return e=e.prototype,!(!e||!e.isReactComponent)}function sn(e,t){var n=e.alternate;return n===null?(n=Tt(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 nu(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 bl(e,t,n,a,l,r){var d=0;if(a=e,typeof e=="function")nr(e)&&(d=1);else if(typeof e=="string")d=uv(e,n,B.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case ie:return e=Tt(31,n,t,l),e.elementType=ie,e.lanes=r,e;case q:return ea(n.children,l,r,t);case ae:d=8,l|=24;break;case le:return e=Tt(12,n,t,l|2),e.elementType=le,e.lanes=r,e;case X:return e=Tt(13,n,t,l),e.elementType=X,e.lanes=r,e;case A:return e=Tt(19,n,t,l),e.elementType=A,e.lanes=r,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Q:d=10;break e;case _:d=9;break e;case Y:d=11;break e;case R:d=14;break e;case W:d=16,a=null;break e}d=29,n=Error(u(130,e===null?"null":typeof e,"")),a=null}return t=Tt(d,n,t,l),t.elementType=e,t.type=a,t.lanes=r,t}function ea(e,t,n,a){return e=Tt(7,e,a,t),e.lanes=n,e}function ar(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function au(e){var t=Tt(18,null,null,0);return t.stateNode=e,t}function sr(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var su=new WeakMap;function Ut(e,t){if(typeof e=="object"&&e!==null){var n=su.get(e);return n!==void 0?n:(t={value:e,source:t,stack:en(t)},su.set(e,t),t)}return{value:e,source:t,stack:en(t)}}var Aa=[],ka=0,xl=null,ps=0,Ht=[],Bt=0,Nn=null,Jt=1,Wt="";function ln(e,t){Aa[ka++]=ps,Aa[ka++]=xl,xl=e,ps=t}function lu(e,t,n){Ht[Bt++]=Jt,Ht[Bt++]=Wt,Ht[Bt++]=Nn,Nn=e;var a=Jt;e=Wt;var l=32-ft(a)-1;a&=~(1<<l),n+=1;var r=32-ft(t)+l;if(30<r){var d=l-l%5;r=(a&(1<<d)-1).toString(32),a>>=d,l-=d,Jt=1<<32-ft(t)+l|n<<l|a,Wt=r+e}else Jt=1<<r|n<<l|a,Wt=e}function lr(e){e.return!==null&&(ln(e,1),lu(e,1,0))}function ir(e){for(;e===xl;)xl=Aa[--ka],Aa[ka]=null,ps=Aa[--ka],Aa[ka]=null;for(;e===Nn;)Nn=Ht[--Bt],Ht[Bt]=null,Wt=Ht[--Bt],Ht[Bt]=null,Jt=Ht[--Bt],Ht[Bt]=null}function iu(e,t){Ht[Bt++]=Jt,Ht[Bt++]=Wt,Ht[Bt++]=Nn,Jt=t.id,Wt=t.overflow,Nn=e}var ct=null,He=null,Re=!1,Rn=null,qt=!1,rr=Error(u(519));function Cn(e){var t=Error(u(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw vs(Ut(t,e)),rr}function ru(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[rt]=e,t[gt]=a,n){case"dialog":Se("cancel",t),Se("close",t);break;case"iframe":case"object":case"embed":Se("load",t);break;case"video":case"audio":for(n=0;n<Us.length;n++)Se(Us[n],t);break;case"source":Se("error",t);break;case"img":case"image":case"link":Se("error",t),Se("load",t);break;case"details":Se("toggle",t);break;case"input":Se("invalid",t),xo(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":Se("invalid",t);break;case"textarea":Se("invalid",t),jo(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||Cf(t.textContent,n)?(a.popover!=null&&(Se("beforetoggle",t),Se("toggle",t)),a.onScroll!=null&&Se("scroll",t),a.onScrollEnd!=null&&Se("scrollend",t),a.onClick!=null&&(t.onclick=nn),t=!0):t=!1,t||Cn(e,!0)}function cu(e){for(ct=e.return;ct;)switch(ct.tag){case 5:case 31:case 13:qt=!1;return;case 27:case 3:qt=!0;return;default:ct=ct.return}}function wa(e){if(e!==ct)return!1;if(!Re)return cu(e),Re=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Cc(e.type,e.memoizedProps)),n=!n),n&&He&&Cn(e),cu(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));He=zf(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));He=zf(e)}else t===27?(t=He,Hn(e.type)?(e=wc,wc=null,He=e):He=t):He=ct?$t(e.stateNode.nextSibling):null;return!0}function ta(){He=ct=null,Re=!1}function cr(){var e=Rn;return e!==null&&(jt===null?jt=e:jt.push.apply(jt,e),Rn=null),e}function vs(e){Rn===null?Rn=[e]:Rn.push(e)}var or=x(null),na=null,rn=null;function Tn(e,t,n){P(or,t._currentValue),t._currentValue=n}function cn(e){e._currentValue=or.current,w(or)}function ur(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 dr(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var r=l.dependencies;if(r!==null){var d=l.child;r=r.firstContext;e:for(;r!==null;){var p=r;r=l;for(var S=0;S<t.length;S++)if(p.context===t[S]){r.lanes|=n,p=r.alternate,p!==null&&(p.lanes|=n),ur(r.return,n,e),a||(d=null);break e}r=p.next}}else if(l.tag===18){if(d=l.return,d===null)throw Error(u(341));d.lanes|=n,r=d.alternate,r!==null&&(r.lanes|=n),ur(d,n,e),d=null}else d=l.child;if(d!==null)d.return=l;else for(d=l;d!==null;){if(d===e){d=null;break}if(l=d.sibling,l!==null){l.return=d.return,d=l;break}d=d.return}l=d}}function Da(e,t,n,a){e=null;for(var l=t,r=!1;l!==null;){if(!r){if((l.flags&524288)!==0)r=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var d=l.alternate;if(d===null)throw Error(u(387));if(d=d.memoizedProps,d!==null){var p=l.type;Ct(l.pendingProps.value,d.value)||(e!==null?e.push(p):e=[p])}}else if(l===ne.current){if(d=l.alternate,d===null)throw Error(u(387));d.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push($s):e=[$s])}l=l.return}e!==null&&dr(t,e,n,a),t.flags|=262144}function Sl(e){for(e=e.firstContext;e!==null;){if(!Ct(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function aa(e){na=e,rn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ot(e){return ou(na,e)}function jl(e,t){return na===null&&aa(e),ou(e,t)}function ou(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},rn===null){if(e===null)throw Error(u(308));rn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else rn=rn.next=t;return n}var ip=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()})}},rp=i.unstable_scheduleCallback,cp=i.unstable_NormalPriority,We={$$typeof:Q,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function fr(){return{controller:new ip,data:new Map,refCount:0}}function gs(e){e.refCount--,e.refCount===0&&rp(cp,function(){e.controller.abort()})}var ys=null,mr=0,Oa=0,Ma=null;function op(e,t){if(ys===null){var n=ys=[];mr=0,Oa=vc(),Ma={status:"pending",value:void 0,then:function(a){n.push(a)}}}return mr++,t.then(uu,uu),t}function uu(){if(--mr===0&&ys!==null){Ma!==null&&(Ma.status="fulfilled");var e=ys;ys=null,Oa=0,Ma=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function up(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var du=N.S;N.S=function(e,t){Vd=tt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&op(e,t),du!==null&&du(e,t)};var sa=x(null);function hr(){var e=sa.current;return e!==null?e:Le.pooledCache}function Nl(e,t){t===null?P(sa,sa.current):P(sa,t.pool)}function fu(){var e=hr();return e===null?null:{parent:We._currentValue,pool:e}}var za=Error(u(460)),pr=Error(u(474)),Rl=Error(u(542)),Cl={then:function(){}};function mu(e){return e=e.status,e==="fulfilled"||e==="rejected"}function hu(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(nn,nn),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,vu(e),e;default:if(typeof t.status=="string")t.then(nn,nn);else{if(e=Le,e!==null&&100<e.shellSuspendCounter)throw Error(u(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,vu(e),e}throw ia=t,za}}function la(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(ia=n,za):n}}var ia=null;function pu(){if(ia===null)throw Error(u(459));var e=ia;return ia=null,e}function vu(e){if(e===za||e===Rl)throw Error(u(483))}var _a=null,bs=0;function Tl(e){var t=bs;return bs+=1,_a===null&&(_a=[]),hu(_a,e,t)}function xs(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function El(e,t){throw t.$$typeof===O?Error(u(525)):(e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function gu(e){function t(k,C){if(e){var z=k.deletions;z===null?(k.deletions=[C],k.flags|=16):z.push(C)}}function n(k,C){if(!e)return null;for(;C!==null;)t(k,C),C=C.sibling;return null}function a(k){for(var C=new Map;k!==null;)k.key!==null?C.set(k.key,k):C.set(k.index,k),k=k.sibling;return C}function l(k,C){return k=sn(k,C),k.index=0,k.sibling=null,k}function r(k,C,z){return k.index=z,e?(z=k.alternate,z!==null?(z=z.index,z<C?(k.flags|=67108866,C):z):(k.flags|=67108866,C)):(k.flags|=1048576,C)}function d(k){return e&&k.alternate===null&&(k.flags|=67108866),k}function p(k,C,z,J){return C===null||C.tag!==6?(C=ar(z,k.mode,J),C.return=k,C):(C=l(C,z),C.return=k,C)}function S(k,C,z,J){var he=z.type;return he===q?V(k,C,z.props.children,J,z.key):C!==null&&(C.elementType===he||typeof he=="object"&&he!==null&&he.$$typeof===W&&la(he)===C.type)?(C=l(C,z.props),xs(C,z),C.return=k,C):(C=bl(z.type,z.key,z.props,null,k.mode,J),xs(C,z),C.return=k,C)}function I(k,C,z,J){return C===null||C.tag!==4||C.stateNode.containerInfo!==z.containerInfo||C.stateNode.implementation!==z.implementation?(C=sr(z,k.mode,J),C.return=k,C):(C=l(C,z.children||[]),C.return=k,C)}function V(k,C,z,J,he){return C===null||C.tag!==7?(C=ea(z,k.mode,J,he),C.return=k,C):(C=l(C,z),C.return=k,C)}function F(k,C,z){if(typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint")return C=ar(""+C,k.mode,z),C.return=k,C;if(typeof C=="object"&&C!==null){switch(C.$$typeof){case T:return z=bl(C.type,C.key,C.props,null,k.mode,z),xs(z,C),z.return=k,z;case H:return C=sr(C,k.mode,z),C.return=k,C;case W:return C=la(C),F(k,C,z)}if(te(C)||G(C))return C=ea(C,k.mode,z,null),C.return=k,C;if(typeof C.then=="function")return F(k,Tl(C),z);if(C.$$typeof===Q)return F(k,jl(k,C),z);El(k,C)}return null}function U(k,C,z,J){var he=C!==null?C.key:null;if(typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint")return he!==null?null:p(k,C,""+z,J);if(typeof z=="object"&&z!==null){switch(z.$$typeof){case T:return z.key===he?S(k,C,z,J):null;case H:return z.key===he?I(k,C,z,J):null;case W:return z=la(z),U(k,C,z,J)}if(te(z)||G(z))return he!==null?null:V(k,C,z,J,null);if(typeof z.then=="function")return U(k,C,Tl(z),J);if(z.$$typeof===Q)return U(k,C,jl(k,z),J);El(k,z)}return null}function $(k,C,z,J,he){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return k=k.get(z)||null,p(C,k,""+J,he);if(typeof J=="object"&&J!==null){switch(J.$$typeof){case T:return k=k.get(J.key===null?z:J.key)||null,S(C,k,J,he);case H:return k=k.get(J.key===null?z:J.key)||null,I(C,k,J,he);case W:return J=la(J),$(k,C,z,J,he)}if(te(J)||G(J))return k=k.get(z)||null,V(C,k,J,he,null);if(typeof J.then=="function")return $(k,C,z,Tl(J),he);if(J.$$typeof===Q)return $(k,C,z,jl(C,J),he);El(C,J)}return null}function oe(k,C,z,J){for(var he=null,Te=null,fe=C,be=C=0,Ne=null;fe!==null&&be<z.length;be++){fe.index>be?(Ne=fe,fe=null):Ne=fe.sibling;var Ee=U(k,fe,z[be],J);if(Ee===null){fe===null&&(fe=Ne);break}e&&fe&&Ee.alternate===null&&t(k,fe),C=r(Ee,C,be),Te===null?he=Ee:Te.sibling=Ee,Te=Ee,fe=Ne}if(be===z.length)return n(k,fe),Re&&ln(k,be),he;if(fe===null){for(;be<z.length;be++)fe=F(k,z[be],J),fe!==null&&(C=r(fe,C,be),Te===null?he=fe:Te.sibling=fe,Te=fe);return Re&&ln(k,be),he}for(fe=a(fe);be<z.length;be++)Ne=$(fe,k,be,z[be],J),Ne!==null&&(e&&Ne.alternate!==null&&fe.delete(Ne.key===null?be:Ne.key),C=r(Ne,C,be),Te===null?he=Ne:Te.sibling=Ne,Te=Ne);return e&&fe.forEach(function(Yn){return t(k,Yn)}),Re&&ln(k,be),he}function pe(k,C,z,J){if(z==null)throw Error(u(151));for(var he=null,Te=null,fe=C,be=C=0,Ne=null,Ee=z.next();fe!==null&&!Ee.done;be++,Ee=z.next()){fe.index>be?(Ne=fe,fe=null):Ne=fe.sibling;var Yn=U(k,fe,Ee.value,J);if(Yn===null){fe===null&&(fe=Ne);break}e&&fe&&Yn.alternate===null&&t(k,fe),C=r(Yn,C,be),Te===null?he=Yn:Te.sibling=Yn,Te=Yn,fe=Ne}if(Ee.done)return n(k,fe),Re&&ln(k,be),he;if(fe===null){for(;!Ee.done;be++,Ee=z.next())Ee=F(k,Ee.value,J),Ee!==null&&(C=r(Ee,C,be),Te===null?he=Ee:Te.sibling=Ee,Te=Ee);return Re&&ln(k,be),he}for(fe=a(fe);!Ee.done;be++,Ee=z.next())Ee=$(fe,k,be,Ee.value,J),Ee!==null&&(e&&Ee.alternate!==null&&fe.delete(Ee.key===null?be:Ee.key),C=r(Ee,C,be),Te===null?he=Ee:Te.sibling=Ee,Te=Ee);return e&&fe.forEach(function(Sv){return t(k,Sv)}),Re&&ln(k,be),he}function _e(k,C,z,J){if(typeof z=="object"&&z!==null&&z.type===q&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case T:e:{for(var he=z.key;C!==null;){if(C.key===he){if(he=z.type,he===q){if(C.tag===7){n(k,C.sibling),J=l(C,z.props.children),J.return=k,k=J;break e}}else if(C.elementType===he||typeof he=="object"&&he!==null&&he.$$typeof===W&&la(he)===C.type){n(k,C.sibling),J=l(C,z.props),xs(J,z),J.return=k,k=J;break e}n(k,C);break}else t(k,C);C=C.sibling}z.type===q?(J=ea(z.props.children,k.mode,J,z.key),J.return=k,k=J):(J=bl(z.type,z.key,z.props,null,k.mode,J),xs(J,z),J.return=k,k=J)}return d(k);case H:e:{for(he=z.key;C!==null;){if(C.key===he)if(C.tag===4&&C.stateNode.containerInfo===z.containerInfo&&C.stateNode.implementation===z.implementation){n(k,C.sibling),J=l(C,z.children||[]),J.return=k,k=J;break e}else{n(k,C);break}else t(k,C);C=C.sibling}J=sr(z,k.mode,J),J.return=k,k=J}return d(k);case W:return z=la(z),_e(k,C,z,J)}if(te(z))return oe(k,C,z,J);if(G(z)){if(he=G(z),typeof he!="function")throw Error(u(150));return z=he.call(z),pe(k,C,z,J)}if(typeof z.then=="function")return _e(k,C,Tl(z),J);if(z.$$typeof===Q)return _e(k,C,jl(k,z),J);El(k,z)}return typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint"?(z=""+z,C!==null&&C.tag===6?(n(k,C.sibling),J=l(C,z),J.return=k,k=J):(n(k,C),J=ar(z,k.mode,J),J.return=k,k=J),d(k)):n(k,C)}return function(k,C,z,J){try{bs=0;var he=_e(k,C,z,J);return _a=null,he}catch(fe){if(fe===za||fe===Rl)throw fe;var Te=Tt(29,fe,null,k.mode);return Te.lanes=J,Te.return=k,Te}}}var ra=gu(!0),yu=gu(!1),En=!1;function vr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function gr(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 An(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function kn(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(ke&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=yl(e),tu(e,null,n),t}return gl(e,a,t,n),yl(e)}function Ss(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,co(e,n)}}function yr(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,r=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};r===null?l=r=d:r=r.next=d,n=n.next}while(n!==null);r===null?l=r=t:r=r.next=t}else l=r=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:r,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 br=!1;function js(){if(br){var e=Ma;if(e!==null)throw e}}function Ns(e,t,n,a){br=!1;var l=e.updateQueue;En=!1;var r=l.firstBaseUpdate,d=l.lastBaseUpdate,p=l.shared.pending;if(p!==null){l.shared.pending=null;var S=p,I=S.next;S.next=null,d===null?r=I:d.next=I,d=S;var V=e.alternate;V!==null&&(V=V.updateQueue,p=V.lastBaseUpdate,p!==d&&(p===null?V.firstBaseUpdate=I:p.next=I,V.lastBaseUpdate=S))}if(r!==null){var F=l.baseState;d=0,V=I=S=null,p=r;do{var U=p.lane&-536870913,$=U!==p.lane;if($?(je&U)===U:(a&U)===U){U!==0&&U===Oa&&(br=!0),V!==null&&(V=V.next={lane:0,tag:p.tag,payload:p.payload,callback:null,next:null});e:{var oe=e,pe=p;U=t;var _e=n;switch(pe.tag){case 1:if(oe=pe.payload,typeof oe=="function"){F=oe.call(_e,F,U);break e}F=oe;break e;case 3:oe.flags=oe.flags&-65537|128;case 0:if(oe=pe.payload,U=typeof oe=="function"?oe.call(_e,F,U):oe,U==null)break e;F=j({},F,U);break e;case 2:En=!0}}U=p.callback,U!==null&&(e.flags|=64,$&&(e.flags|=8192),$=l.callbacks,$===null?l.callbacks=[U]:$.push(U))}else $={lane:U,tag:p.tag,payload:p.payload,callback:p.callback,next:null},V===null?(I=V=$,S=F):V=V.next=$,d|=U;if(p=p.next,p===null){if(p=l.shared.pending,p===null)break;$=p,p=$.next,$.next=null,l.lastBaseUpdate=$,l.shared.pending=null}}while(!0);V===null&&(S=F),l.baseState=S,l.firstBaseUpdate=I,l.lastBaseUpdate=V,r===null&&(l.shared.lanes=0),zn|=d,e.lanes=d,e.memoizedState=F}}function bu(e,t){if(typeof e!="function")throw Error(u(191,e));e.call(t)}function xu(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)bu(n[e],t)}var Ia=x(null),Al=x(0);function Su(e,t){e=gn,P(Al,e),P(Ia,t),gn=e|t.baseLanes}function xr(){P(Al,gn),P(Ia,Ia.current)}function Sr(){gn=Al.current,w(Ia),w(Al)}var Et=x(null),Gt=null;function wn(e){var t=e.alternate;P(Ve,Ve.current&1),P(Et,e),Gt===null&&(t===null||Ia.current!==null||t.memoizedState!==null)&&(Gt=e)}function jr(e){P(Ve,Ve.current),P(Et,e),Gt===null&&(Gt=e)}function ju(e){e.tag===22?(P(Ve,Ve.current),P(Et,e),Gt===null&&(Gt=e)):Dn()}function Dn(){P(Ve,Ve.current),P(Et,Et.current)}function At(e){w(Et),Gt===e&&(Gt=null),w(Ve)}var Ve=x(0);function kl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Ac(n)||kc(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 on=0,ge=null,Me=null,Fe=null,wl=!1,La=!1,ca=!1,Dl=0,Rs=0,Ua=null,dp=0;function Ye(){throw Error(u(321))}function Nr(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Ct(e[n],t[n]))return!1;return!0}function Rr(e,t,n,a,l,r){return on=r,ge=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,N.H=e===null||e.memoizedState===null?ld:Hr,ca=!1,r=n(a,l),ca=!1,La&&(r=Ru(t,n,a,l)),Nu(e),r}function Nu(e){N.H=Es;var t=Me!==null&&Me.next!==null;if(on=0,Fe=Me=ge=null,wl=!1,Rs=0,Ua=null,t)throw Error(u(300));e===null||Pe||(e=e.dependencies,e!==null&&Sl(e)&&(Pe=!0))}function Ru(e,t,n,a){ge=e;var l=0;do{if(La&&(Ua=null),Rs=0,La=!1,25<=l)throw Error(u(301));if(l+=1,Fe=Me=null,e.updateQueue!=null){var r=e.updateQueue;r.lastEffect=null,r.events=null,r.stores=null,r.memoCache!=null&&(r.memoCache.index=0)}N.H=id,r=t(n,a)}while(La);return r}function fp(){var e=N.H,t=e.useState()[0];return t=typeof t.then=="function"?Cs(t):t,e=e.useState()[0],(Me!==null?Me.memoizedState:null)!==e&&(ge.flags|=1024),t}function Cr(){var e=Dl!==0;return Dl=0,e}function Tr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Er(e){if(wl){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}wl=!1}on=0,Fe=Me=ge=null,La=!1,Rs=Dl=0,Ua=null}function pt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Fe===null?ge.memoizedState=Fe=e:Fe=Fe.next=e,Fe}function Ze(){if(Me===null){var e=ge.alternate;e=e!==null?e.memoizedState:null}else e=Me.next;var t=Fe===null?ge.memoizedState:Fe.next;if(t!==null)Fe=t,Me=e;else{if(e===null)throw ge.alternate===null?Error(u(467)):Error(u(310));Me=e,e={memoizedState:Me.memoizedState,baseState:Me.baseState,baseQueue:Me.baseQueue,queue:Me.queue,next:null},Fe===null?ge.memoizedState=Fe=e:Fe=Fe.next=e}return Fe}function Ol(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Cs(e){var t=Rs;return Rs+=1,Ua===null&&(Ua=[]),e=hu(Ua,e,t),t=ge,(Fe===null?t.memoizedState:Fe.next)===null&&(t=t.alternate,N.H=t===null||t.memoizedState===null?ld:Hr),e}function Ml(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Cs(e);if(e.$$typeof===Q)return ot(e)}throw Error(u(438,String(e)))}function Ar(e){var t=null,n=ge.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=ge.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Ol(),ge.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]=K;return t.index++,n}function un(e,t){return typeof t=="function"?t(e):t}function zl(e){var t=Ze();return kr(t,Me,e)}function kr(e,t,n){var a=e.queue;if(a===null)throw Error(u(311));a.lastRenderedReducer=n;var l=e.baseQueue,r=a.pending;if(r!==null){if(l!==null){var d=l.next;l.next=r.next,r.next=d}t.baseQueue=l=r,a.pending=null}if(r=e.baseState,l===null)e.memoizedState=r;else{t=l.next;var p=d=null,S=null,I=t,V=!1;do{var F=I.lane&-536870913;if(F!==I.lane?(je&F)===F:(on&F)===F){var U=I.revertLane;if(U===0)S!==null&&(S=S.next={lane:0,revertLane:0,gesture:null,action:I.action,hasEagerState:I.hasEagerState,eagerState:I.eagerState,next:null}),F===Oa&&(V=!0);else if((on&U)===U){I=I.next,U===Oa&&(V=!0);continue}else F={lane:0,revertLane:I.revertLane,gesture:null,action:I.action,hasEagerState:I.hasEagerState,eagerState:I.eagerState,next:null},S===null?(p=S=F,d=r):S=S.next=F,ge.lanes|=U,zn|=U;F=I.action,ca&&n(r,F),r=I.hasEagerState?I.eagerState:n(r,F)}else U={lane:F,revertLane:I.revertLane,gesture:I.gesture,action:I.action,hasEagerState:I.hasEagerState,eagerState:I.eagerState,next:null},S===null?(p=S=U,d=r):S=S.next=U,ge.lanes|=F,zn|=F;I=I.next}while(I!==null&&I!==t);if(S===null?d=r:S.next=p,!Ct(r,e.memoizedState)&&(Pe=!0,V&&(n=Ma,n!==null)))throw n;e.memoizedState=r,e.baseState=d,e.baseQueue=S,a.lastRenderedState=r}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function wr(e){var t=Ze(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,r=t.memoizedState;if(l!==null){n.pending=null;var d=l=l.next;do r=e(r,d.action),d=d.next;while(d!==l);Ct(r,t.memoizedState)||(Pe=!0),t.memoizedState=r,t.baseQueue===null&&(t.baseState=r),n.lastRenderedState=r}return[r,a]}function Cu(e,t,n){var a=ge,l=Ze(),r=Re;if(r){if(n===void 0)throw Error(u(407));n=n()}else n=t();var d=!Ct((Me||l).memoizedState,n);if(d&&(l.memoizedState=n,Pe=!0),l=l.queue,Mr(Au.bind(null,a,l,e),[e]),l.getSnapshot!==t||d||Fe!==null&&Fe.memoizedState.tag&1){if(a.flags|=2048,Ha(9,{destroy:void 0},Eu.bind(null,a,l,n,t),null),Le===null)throw Error(u(349));r||(on&127)!==0||Tu(a,t,n)}return n}function Tu(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ge.updateQueue,t===null?(t=Ol(),ge.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Eu(e,t,n,a){t.value=n,t.getSnapshot=a,ku(t)&&wu(e)}function Au(e,t,n){return n(function(){ku(t)&&wu(e)})}function ku(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Ct(e,n)}catch{return!0}}function wu(e){var t=Pn(e,2);t!==null&&Nt(t,e,2)}function Dr(e){var t=pt();if(typeof e=="function"){var n=e;if(e=n(),ca){it(!0);try{n()}finally{it(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:e},t}function Du(e,t,n,a){return e.baseState=n,kr(e,Me,typeof a=="function"?a:un)}function mp(e,t,n,a,l){if(Ll(e))throw Error(u(485));if(e=t.action,e!==null){var r={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){r.listeners.push(d)}};N.T!==null?n(!0):r.isTransition=!1,a(r),n=t.pending,n===null?(r.next=t.pending=r,Ou(t,r)):(r.next=n.next,t.pending=n.next=r)}}function Ou(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var r=N.T,d={};N.T=d;try{var p=n(l,a),S=N.S;S!==null&&S(d,p),Mu(e,t,p)}catch(I){Or(e,t,I)}finally{r!==null&&d.types!==null&&(r.types=d.types),N.T=r}}else try{r=n(l,a),Mu(e,t,r)}catch(I){Or(e,t,I)}}function Mu(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){zu(e,t,a)},function(a){return Or(e,t,a)}):zu(e,t,n)}function zu(e,t,n){t.status="fulfilled",t.value=n,_u(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ou(e,n)))}function Or(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,_u(t),t=t.next;while(t!==a)}e.action=null}function _u(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Iu(e,t){return t}function Lu(e,t){if(Re){var n=Le.formState;if(n!==null){e:{var a=ge;if(Re){if(He){t:{for(var l=He,r=qt;l.nodeType!==8;){if(!r){l=null;break t}if(l=$t(l.nextSibling),l===null){l=null;break t}}r=l.data,l=r==="F!"||r==="F"?l:null}if(l){He=$t(l.nextSibling),a=l.data==="F!";break e}}Cn(a)}a=!1}a&&(t=n[0])}}return n=pt(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Iu,lastRenderedState:t},n.queue=a,n=nd.bind(null,ge,a),a.dispatch=n,a=Dr(!1),r=Ur.bind(null,ge,!1,a.queue),a=pt(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=mp.bind(null,ge,l,r,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function Uu(e){var t=Ze();return Hu(t,Me,e)}function Hu(e,t,n){if(t=kr(e,t,Iu)[0],e=zl(un)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Cs(t)}catch(d){throw d===za?Rl:d}else a=t;t=Ze();var l=t.queue,r=l.dispatch;return n!==t.memoizedState&&(ge.flags|=2048,Ha(9,{destroy:void 0},hp.bind(null,l,n),null)),[a,r,e]}function hp(e,t){e.action=t}function Bu(e){var t=Ze(),n=Me;if(n!==null)return Hu(t,n,e);Ze(),t=t.memoizedState,n=Ze();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Ha(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=ge.updateQueue,t===null&&(t=Ol(),ge.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 qu(){return Ze().memoizedState}function _l(e,t,n,a){var l=pt();ge.flags|=e,l.memoizedState=Ha(1|t,{destroy:void 0},n,a===void 0?null:a)}function Il(e,t,n,a){var l=Ze();a=a===void 0?null:a;var r=l.memoizedState.inst;Me!==null&&a!==null&&Nr(a,Me.memoizedState.deps)?l.memoizedState=Ha(t,r,n,a):(ge.flags|=e,l.memoizedState=Ha(1|t,r,n,a))}function Gu(e,t){_l(8390656,8,e,t)}function Mr(e,t){Il(2048,8,e,t)}function pp(e){ge.flags|=4;var t=ge.updateQueue;if(t===null)t=Ol(),ge.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function $u(e){var t=Ze().memoizedState;return pp({ref:t,nextImpl:e}),function(){if((ke&2)!==0)throw Error(u(440));return t.impl.apply(void 0,arguments)}}function Yu(e,t){return Il(4,2,e,t)}function Ku(e,t){return Il(4,4,e,t)}function Xu(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 Qu(e,t,n){n=n!=null?n.concat([e]):null,Il(4,4,Xu.bind(null,t,e),n)}function zr(){}function Vu(e,t){var n=Ze();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&Nr(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function Zu(e,t){var n=Ze();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&Nr(t,a[1]))return a[0];if(a=e(),ca){it(!0);try{e()}finally{it(!1)}}return n.memoizedState=[a,t],a}function _r(e,t,n){return n===void 0||(on&1073741824)!==0&&(je&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=Jd(),ge.lanes|=e,zn|=e,n)}function Ju(e,t,n,a){return Ct(n,t)?n:Ia.current!==null?(e=_r(e,n,a),Ct(e,t)||(Pe=!0),e):(on&42)===0||(on&1073741824)!==0&&(je&261930)===0?(Pe=!0,e.memoizedState=n):(e=Jd(),ge.lanes|=e,zn|=e,t)}function Wu(e,t,n,a,l){var r=M.p;M.p=r!==0&&8>r?r:8;var d=N.T,p={};N.T=p,Ur(e,!1,t,n);try{var S=l(),I=N.S;if(I!==null&&I(p,S),S!==null&&typeof S=="object"&&typeof S.then=="function"){var V=up(S,a);Ts(e,t,V,Dt(e))}else Ts(e,t,a,Dt(e))}catch(F){Ts(e,t,{then:function(){},status:"rejected",reason:F},Dt())}finally{M.p=r,d!==null&&p.types!==null&&(d.types=p.types),N.T=d}}function vp(){}function Ir(e,t,n,a){if(e.tag!==5)throw Error(u(476));var l=Fu(e).queue;Wu(e,l,t,Z,n===null?vp:function(){return Pu(e),n(a)})}function Fu(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Z,baseState:Z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:Z},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Pu(e){var t=Fu(e);t.next===null&&(t=e.alternate.memoizedState),Ts(e,t.next.queue,{},Dt())}function Lr(){return ot($s)}function ed(){return Ze().memoizedState}function td(){return Ze().memoizedState}function gp(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Dt();e=An(n);var a=kn(t,e,n);a!==null&&(Nt(a,t,n),Ss(a,t,n)),t={cache:fr()},e.payload=t;return}t=t.return}}function yp(e,t,n){var a=Dt();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ll(e)?ad(t,n):(n=tr(e,t,n,a),n!==null&&(Nt(n,e,a),sd(n,t,a)))}function nd(e,t,n){var a=Dt();Ts(e,t,n,a)}function Ts(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ll(e))ad(t,l);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=t.lastRenderedReducer,r!==null))try{var d=t.lastRenderedState,p=r(d,n);if(l.hasEagerState=!0,l.eagerState=p,Ct(p,d))return gl(e,t,l,0),Le===null&&vl(),!1}catch{}if(n=tr(e,t,l,a),n!==null)return Nt(n,e,a),sd(n,t,a),!0}return!1}function Ur(e,t,n,a){if(a={lane:2,revertLane:vc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ll(e)){if(t)throw Error(u(479))}else t=tr(e,n,a,2),t!==null&&Nt(t,e,2)}function Ll(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function ad(e,t){La=wl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function sd(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,co(e,n)}}var Es={readContext:ot,use:Ml,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useLayoutEffect:Ye,useInsertionEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useSyncExternalStore:Ye,useId:Ye,useHostTransitionStatus:Ye,useFormState:Ye,useActionState:Ye,useOptimistic:Ye,useMemoCache:Ye,useCacheRefresh:Ye};Es.useEffectEvent=Ye;var ld={readContext:ot,use:Ml,useCallback:function(e,t){return pt().memoizedState=[e,t===void 0?null:t],e},useContext:ot,useEffect:Gu,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,_l(4194308,4,Xu.bind(null,t,e),n)},useLayoutEffect:function(e,t){return _l(4194308,4,e,t)},useInsertionEffect:function(e,t){_l(4,2,e,t)},useMemo:function(e,t){var n=pt();t=t===void 0?null:t;var a=e();if(ca){it(!0);try{e()}finally{it(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=pt();if(n!==void 0){var l=n(t);if(ca){it(!0);try{n(t)}finally{it(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=yp.bind(null,ge,e),[a.memoizedState,e]},useRef:function(e){var t=pt();return e={current:e},t.memoizedState=e},useState:function(e){e=Dr(e);var t=e.queue,n=nd.bind(null,ge,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:zr,useDeferredValue:function(e,t){var n=pt();return _r(n,e,t)},useTransition:function(){var e=Dr(!1);return e=Wu.bind(null,ge,e.queue,!0,!1),pt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=ge,l=pt();if(Re){if(n===void 0)throw Error(u(407));n=n()}else{if(n=t(),Le===null)throw Error(u(349));(je&127)!==0||Tu(a,t,n)}l.memoizedState=n;var r={value:n,getSnapshot:t};return l.queue=r,Gu(Au.bind(null,a,r,e),[e]),a.flags|=2048,Ha(9,{destroy:void 0},Eu.bind(null,a,r,n,t),null),n},useId:function(){var e=pt(),t=Le.identifierPrefix;if(Re){var n=Wt,a=Jt;n=(a&~(1<<32-ft(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Dl++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=dp++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Lr,useFormState:Lu,useActionState:Lu,useOptimistic:function(e){var t=pt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ur.bind(null,ge,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ar,useCacheRefresh:function(){return pt().memoizedState=gp.bind(null,ge)},useEffectEvent:function(e){var t=pt(),n={impl:e};return t.memoizedState=n,function(){if((ke&2)!==0)throw Error(u(440));return n.impl.apply(void 0,arguments)}}},Hr={readContext:ot,use:Ml,useCallback:Vu,useContext:ot,useEffect:Mr,useImperativeHandle:Qu,useInsertionEffect:Yu,useLayoutEffect:Ku,useMemo:Zu,useReducer:zl,useRef:qu,useState:function(){return zl(un)},useDebugValue:zr,useDeferredValue:function(e,t){var n=Ze();return Ju(n,Me.memoizedState,e,t)},useTransition:function(){var e=zl(un)[0],t=Ze().memoizedState;return[typeof e=="boolean"?e:Cs(e),t]},useSyncExternalStore:Cu,useId:ed,useHostTransitionStatus:Lr,useFormState:Uu,useActionState:Uu,useOptimistic:function(e,t){var n=Ze();return Du(n,Me,e,t)},useMemoCache:Ar,useCacheRefresh:td};Hr.useEffectEvent=$u;var id={readContext:ot,use:Ml,useCallback:Vu,useContext:ot,useEffect:Mr,useImperativeHandle:Qu,useInsertionEffect:Yu,useLayoutEffect:Ku,useMemo:Zu,useReducer:wr,useRef:qu,useState:function(){return wr(un)},useDebugValue:zr,useDeferredValue:function(e,t){var n=Ze();return Me===null?_r(n,e,t):Ju(n,Me.memoizedState,e,t)},useTransition:function(){var e=wr(un)[0],t=Ze().memoizedState;return[typeof e=="boolean"?e:Cs(e),t]},useSyncExternalStore:Cu,useId:ed,useHostTransitionStatus:Lr,useFormState:Bu,useActionState:Bu,useOptimistic:function(e,t){var n=Ze();return Me!==null?Du(n,Me,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Ar,useCacheRefresh:td};id.useEffectEvent=$u;function Br(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 qr={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Dt(),l=An(a);l.payload=t,n!=null&&(l.callback=n),t=kn(e,l,a),t!==null&&(Nt(t,e,a),Ss(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Dt(),l=An(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=kn(e,l,a),t!==null&&(Nt(t,e,a),Ss(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Dt(),a=An(n);a.tag=2,t!=null&&(a.callback=t),t=kn(e,a,n),t!==null&&(Nt(t,e,n),Ss(t,e,n))}};function rd(e,t,n,a,l,r,d){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,r,d):t.prototype&&t.prototype.isPureReactComponent?!ms(n,a)||!ms(l,r):!0}function cd(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&&qr.enqueueReplaceState(t,t.state,null)}function oa(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 l in e)n[l]===void 0&&(n[l]=e[l])}return n}function od(e){pl(e)}function ud(e){console.error(e)}function dd(e){pl(e)}function Ul(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function fd(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Gr(e,t,n){return n=An(n),n.tag=3,n.payload={element:null},n.callback=function(){Ul(e,t)},n}function md(e){return e=An(e),e.tag=3,e}function hd(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var r=a.value;e.payload=function(){return l(r)},e.callback=function(){fd(t,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(e.callback=function(){fd(t,n,a),typeof l!="function"&&(_n===null?_n=new Set([this]):_n.add(this));var p=a.stack;this.componentDidCatch(a.value,{componentStack:p!==null?p:""})})}function bp(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&Da(t,n,l,!0),n=Et.current,n!==null){switch(n.tag){case 31:case 13:return Gt===null?Jl():n.alternate===null&&Ke===0&&(Ke=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Cl?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),mc(e,a,l)),!1;case 22:return n.flags|=65536,a===Cl?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)),mc(e,a,l)),!1}throw Error(u(435,n.tag))}return mc(e,a,l),Jl(),!1}if(Re)return t=Et.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==rr&&(e=Error(u(422),{cause:a}),vs(Ut(e,n)))):(a!==rr&&(t=Error(u(423),{cause:a}),vs(Ut(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=Ut(a,n),l=Gr(e.stateNode,a,l),yr(e,l),Ke!==4&&(Ke=2)),!1;var r=Error(u(520),{cause:a});if(r=Ut(r,n),_s===null?_s=[r]:_s.push(r),Ke!==4&&(Ke=2),t===null)return!0;a=Ut(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Gr(n.stateNode,a,e),yr(n,e),!1;case 1:if(t=n.type,r=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||r!==null&&typeof r.componentDidCatch=="function"&&(_n===null||!_n.has(r))))return n.flags|=65536,l&=-l,n.lanes|=l,l=md(l),hd(l,e,n,a),yr(n,l),!1}n=n.return}while(n!==null);return!1}var $r=Error(u(461)),Pe=!1;function ut(e,t,n,a){t.child=e===null?yu(t,null,n,a):ra(t,e.child,n,a)}function pd(e,t,n,a,l){n=n.render;var r=t.ref;if("ref"in a){var d={};for(var p in a)p!=="ref"&&(d[p]=a[p])}else d=a;return aa(t),a=Rr(e,t,n,d,r,l),p=Cr(),e!==null&&!Pe?(Tr(e,t,l),dn(e,t,l)):(Re&&p&&lr(t),t.flags|=1,ut(e,t,a,l),t.child)}function vd(e,t,n,a,l){if(e===null){var r=n.type;return typeof r=="function"&&!nr(r)&&r.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=r,gd(e,t,r,a,l)):(e=bl(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(r=e.child,!Wr(e,l)){var d=r.memoizedProps;if(n=n.compare,n=n!==null?n:ms,n(d,a)&&e.ref===t.ref)return dn(e,t,l)}return t.flags|=1,e=sn(r,a),e.ref=t.ref,e.return=t,t.child=e}function gd(e,t,n,a,l){if(e!==null){var r=e.memoizedProps;if(ms(r,a)&&e.ref===t.ref)if(Pe=!1,t.pendingProps=a=r,Wr(e,l))(e.flags&131072)!==0&&(Pe=!0);else return t.lanes=e.lanes,dn(e,t,l)}return Yr(e,t,n,a,l)}function yd(e,t,n,a){var l=a.children,r=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(r=r!==null?r.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~r}else a=0,t.child=null;return bd(e,t,r,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Nl(t,r!==null?r.cachePool:null),r!==null?Su(t,r):xr(),ju(t);else return a=t.lanes=536870912,bd(e,t,r!==null?r.baseLanes|n:n,n,a)}else r!==null?(Nl(t,r.cachePool),Su(t,r),Dn(),t.memoizedState=null):(e!==null&&Nl(t,null),xr(),Dn());return ut(e,t,l,n),t.child}function As(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function bd(e,t,n,a,l){var r=hr();return r=r===null?null:{parent:We._currentValue,pool:r},t.memoizedState={baseLanes:n,cachePool:r},e!==null&&Nl(t,null),xr(),ju(t),e!==null&&Da(e,t,a,!0),t.childLanes=l,null}function Hl(e,t){return t=ql({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xd(e,t,n){return ra(t,e.child,null,n),e=Hl(t,t.pendingProps),e.flags|=2,At(t),t.memoizedState=null,e}function xp(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Re){if(a.mode==="hidden")return e=Hl(t,a),t.lanes=536870912,As(null,e);if(jr(t),(e=He)?(e=Mf(e,qt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Nn!==null?{id:Jt,overflow:Wt}:null,retryLane:536870912,hydrationErrors:null},n=au(e),n.return=t,t.child=n,ct=t,He=null)):e=null,e===null)throw Cn(t);return t.lanes=536870912,null}return Hl(t,a)}var r=e.memoizedState;if(r!==null){var d=r.dehydrated;if(jr(t),l)if(t.flags&256)t.flags&=-257,t=xd(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(u(558));else if(Pe||Da(e,t,n,!1),l=(n&e.childLanes)!==0,Pe||l){if(a=Le,a!==null&&(d=oo(a,n),d!==0&&d!==r.retryLane))throw r.retryLane=d,Pn(e,d),Nt(a,e,d),$r;Jl(),t=xd(e,t,n)}else e=r.treeContext,He=$t(d.nextSibling),ct=t,Re=!0,Rn=null,qt=!1,e!==null&&iu(t,e),t=Hl(t,a),t.flags|=4096;return t}return e=sn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Bl(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 Yr(e,t,n,a,l){return aa(t),n=Rr(e,t,n,a,void 0,l),a=Cr(),e!==null&&!Pe?(Tr(e,t,l),dn(e,t,l)):(Re&&a&&lr(t),t.flags|=1,ut(e,t,n,l),t.child)}function Sd(e,t,n,a,l,r){return aa(t),t.updateQueue=null,n=Ru(t,a,n,l),Nu(e),a=Cr(),e!==null&&!Pe?(Tr(e,t,r),dn(e,t,r)):(Re&&a&&lr(t),t.flags|=1,ut(e,t,n,r),t.child)}function jd(e,t,n,a,l){if(aa(t),t.stateNode===null){var r=Ea,d=n.contextType;typeof d=="object"&&d!==null&&(r=ot(d)),r=new n(a,r),t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,r.updater=qr,t.stateNode=r,r._reactInternals=t,r=t.stateNode,r.props=a,r.state=t.memoizedState,r.refs={},vr(t),d=n.contextType,r.context=typeof d=="object"&&d!==null?ot(d):Ea,r.state=t.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(Br(t,n,d,a),r.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof r.getSnapshotBeforeUpdate=="function"||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(d=r.state,typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount(),d!==r.state&&qr.enqueueReplaceState(r,r.state,null),Ns(t,a,r,l),js(),r.state=t.memoizedState),typeof r.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){r=t.stateNode;var p=t.memoizedProps,S=oa(n,p);r.props=S;var I=r.context,V=n.contextType;d=Ea,typeof V=="object"&&V!==null&&(d=ot(V));var F=n.getDerivedStateFromProps;V=typeof F=="function"||typeof r.getSnapshotBeforeUpdate=="function",p=t.pendingProps!==p,V||typeof r.UNSAFE_componentWillReceiveProps!="function"&&typeof r.componentWillReceiveProps!="function"||(p||I!==d)&&cd(t,r,a,d),En=!1;var U=t.memoizedState;r.state=U,Ns(t,a,r,l),js(),I=t.memoizedState,p||U!==I||En?(typeof F=="function"&&(Br(t,n,F,a),I=t.memoizedState),(S=En||rd(t,n,S,a,U,I,d))?(V||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount()),typeof r.componentDidMount=="function"&&(t.flags|=4194308)):(typeof r.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=I),r.props=a,r.state=I,r.context=d,a=S):(typeof r.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{r=t.stateNode,gr(e,t),d=t.memoizedProps,V=oa(n,d),r.props=V,F=t.pendingProps,U=r.context,I=n.contextType,S=Ea,typeof I=="object"&&I!==null&&(S=ot(I)),p=n.getDerivedStateFromProps,(I=typeof p=="function"||typeof r.getSnapshotBeforeUpdate=="function")||typeof r.UNSAFE_componentWillReceiveProps!="function"&&typeof r.componentWillReceiveProps!="function"||(d!==F||U!==S)&&cd(t,r,a,S),En=!1,U=t.memoizedState,r.state=U,Ns(t,a,r,l),js();var $=t.memoizedState;d!==F||U!==$||En||e!==null&&e.dependencies!==null&&Sl(e.dependencies)?(typeof p=="function"&&(Br(t,n,p,a),$=t.memoizedState),(V=En||rd(t,n,V,a,U,$,S)||e!==null&&e.dependencies!==null&&Sl(e.dependencies))?(I||typeof r.UNSAFE_componentWillUpdate!="function"&&typeof r.componentWillUpdate!="function"||(typeof r.componentWillUpdate=="function"&&r.componentWillUpdate(a,$,S),typeof r.UNSAFE_componentWillUpdate=="function"&&r.UNSAFE_componentWillUpdate(a,$,S)),typeof r.componentDidUpdate=="function"&&(t.flags|=4),typeof r.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof r.componentDidUpdate!="function"||d===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof r.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=$),r.props=a,r.state=$,r.context=S,a=V):(typeof r.componentDidUpdate!="function"||d===e.memoizedProps&&U===e.memoizedState||(t.flags|=4),typeof r.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&U===e.memoizedState||(t.flags|=1024),a=!1)}return r=a,Bl(e,t),a=(t.flags&128)!==0,r||a?(r=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:r.render(),t.flags|=1,e!==null&&a?(t.child=ra(t,e.child,null,l),t.child=ra(t,null,n,l)):ut(e,t,n,l),t.memoizedState=r.state,e=t.child):e=dn(e,t,l),e}function Nd(e,t,n,a){return ta(),t.flags|=256,ut(e,t,n,a),t.child}var Kr={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Xr(e){return{baseLanes:e,cachePool:fu()}}function Qr(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=wt),e}function Rd(e,t,n){var a=t.pendingProps,l=!1,r=(t.flags&128)!==0,d;if((d=r)||(d=e!==null&&e.memoizedState===null?!1:(Ve.current&2)!==0),d&&(l=!0,t.flags&=-129),d=(t.flags&32)!==0,t.flags&=-33,e===null){if(Re){if(l?wn(t):Dn(),(e=He)?(e=Mf(e,qt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Nn!==null?{id:Jt,overflow:Wt}:null,retryLane:536870912,hydrationErrors:null},n=au(e),n.return=t,t.child=n,ct=t,He=null)):e=null,e===null)throw Cn(t);return kc(e)?t.lanes=32:t.lanes=536870912,null}var p=a.children;return a=a.fallback,l?(Dn(),l=t.mode,p=ql({mode:"hidden",children:p},l),a=ea(a,l,n,null),p.return=t,a.return=t,p.sibling=a,t.child=p,a=t.child,a.memoizedState=Xr(n),a.childLanes=Qr(e,d,n),t.memoizedState=Kr,As(null,a)):(wn(t),Vr(t,p))}var S=e.memoizedState;if(S!==null&&(p=S.dehydrated,p!==null)){if(r)t.flags&256?(wn(t),t.flags&=-257,t=Zr(e,t,n)):t.memoizedState!==null?(Dn(),t.child=e.child,t.flags|=128,t=null):(Dn(),p=a.fallback,l=t.mode,a=ql({mode:"visible",children:a.children},l),p=ea(p,l,n,null),p.flags|=2,a.return=t,p.return=t,a.sibling=p,t.child=a,ra(t,e.child,null,n),a=t.child,a.memoizedState=Xr(n),a.childLanes=Qr(e,d,n),t.memoizedState=Kr,t=As(null,a));else if(wn(t),kc(p)){if(d=p.nextSibling&&p.nextSibling.dataset,d)var I=d.dgst;d=I,a=Error(u(419)),a.stack="",a.digest=d,vs({value:a,source:null,stack:null}),t=Zr(e,t,n)}else if(Pe||Da(e,t,n,!1),d=(n&e.childLanes)!==0,Pe||d){if(d=Le,d!==null&&(a=oo(d,n),a!==0&&a!==S.retryLane))throw S.retryLane=a,Pn(e,a),Nt(d,e,a),$r;Ac(p)||Jl(),t=Zr(e,t,n)}else Ac(p)?(t.flags|=192,t.child=e.child,t=null):(e=S.treeContext,He=$t(p.nextSibling),ct=t,Re=!0,Rn=null,qt=!1,e!==null&&iu(t,e),t=Vr(t,a.children),t.flags|=4096);return t}return l?(Dn(),p=a.fallback,l=t.mode,S=e.child,I=S.sibling,a=sn(S,{mode:"hidden",children:a.children}),a.subtreeFlags=S.subtreeFlags&65011712,I!==null?p=sn(I,p):(p=ea(p,l,n,null),p.flags|=2),p.return=t,a.return=t,a.sibling=p,t.child=a,As(null,a),a=t.child,p=e.child.memoizedState,p===null?p=Xr(n):(l=p.cachePool,l!==null?(S=We._currentValue,l=l.parent!==S?{parent:S,pool:S}:l):l=fu(),p={baseLanes:p.baseLanes|n,cachePool:l}),a.memoizedState=p,a.childLanes=Qr(e,d,n),t.memoizedState=Kr,As(e.child,a)):(wn(t),n=e.child,e=n.sibling,n=sn(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 Vr(e,t){return t=ql({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function ql(e,t){return e=Tt(22,e,null,t),e.lanes=0,e}function Zr(e,t,n){return ra(t,e.child,null,n),e=Vr(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Cd(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),ur(e.return,t,n)}function Jr(e,t,n,a,l,r){var d=e.memoizedState;d===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:r}:(d.isBackwards=t,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=l,d.treeForkCount=r)}function Td(e,t,n){var a=t.pendingProps,l=a.revealOrder,r=a.tail;a=a.children;var d=Ve.current,p=(d&2)!==0;if(p?(d=d&1|2,t.flags|=128):d&=1,P(Ve,d),ut(e,t,a,n),a=Re?ps:0,!p&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cd(e,n,t);else if(e.tag===19)Cd(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(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&kl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),Jr(t,!1,l,n,r,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&kl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}Jr(t,!0,n,null,r,a);break;case"together":Jr(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function dn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),zn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Da(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=sn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=sn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Wr(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Sl(e)))}function Sp(e,t,n){switch(t.tag){case 3:de(t,t.stateNode.containerInfo),Tn(t,We,e.memoizedState.cache),ta();break;case 27:case 5:Ie(t);break;case 4:de(t,t.stateNode.containerInfo);break;case 10:Tn(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,jr(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(wn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Rd(e,t,n):(wn(t),e=dn(e,t,n),e!==null?e.sibling:null);wn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(Da(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Td(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),P(Ve,Ve.current),a)break;return null;case 22:return t.lanes=0,yd(e,t,n,t.pendingProps);case 24:Tn(t,We,e.memoizedState.cache)}return dn(e,t,n)}function Ed(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Pe=!0;else{if(!Wr(e,n)&&(t.flags&128)===0)return Pe=!1,Sp(e,t,n);Pe=(e.flags&131072)!==0}else Pe=!1,Re&&(t.flags&1048576)!==0&&lu(t,ps,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=la(t.elementType),t.type=e,typeof e=="function")nr(e)?(a=oa(e,a),t.tag=1,t=jd(null,t,e,a,n)):(t.tag=0,t=Yr(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===Y){t.tag=11,t=pd(null,t,e,a,n);break e}else if(l===R){t.tag=14,t=vd(null,t,e,a,n);break e}}throw t=D(e)||e,Error(u(306,t,""))}}return t;case 0:return Yr(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=oa(a,t.pendingProps),jd(e,t,a,l,n);case 3:e:{if(de(t,t.stateNode.containerInfo),e===null)throw Error(u(387));a=t.pendingProps;var r=t.memoizedState;l=r.element,gr(e,t),Ns(t,a,null,n);var d=t.memoizedState;if(a=d.cache,Tn(t,We,a),a!==r.cache&&dr(t,[We],n,!0),js(),a=d.element,r.isDehydrated)if(r={element:a,isDehydrated:!1,cache:d.cache},t.updateQueue.baseState=r,t.memoizedState=r,t.flags&256){t=Nd(e,t,a,n);break e}else if(a!==l){l=Ut(Error(u(424)),t),vs(l),t=Nd(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,He=$t(e.firstChild),ct=t,Re=!0,Rn=null,qt=!0,n=yu(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ta(),a===l){t=dn(e,t,n);break e}ut(e,t,a,n)}t=t.child}return t;case 26:return Bl(e,t),e===null?(n=Hf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Re||(n=t.type,e=t.pendingProps,a=ai(se.current).createElement(n),a[rt]=t,a[gt]=e,dt(a,n,e),st(a),t.stateNode=a):t.memoizedState=Hf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ie(t),e===null&&Re&&(a=t.stateNode=If(t.type,t.pendingProps,se.current),ct=t,qt=!0,l=He,Hn(t.type)?(wc=l,He=$t(a.firstChild)):He=l),ut(e,t,t.pendingProps.children,n),Bl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Re&&((l=a=He)&&(a=Wp(a,t.type,t.pendingProps,qt),a!==null?(t.stateNode=a,ct=t,He=$t(a.firstChild),qt=!1,l=!0):l=!1),l||Cn(t)),Ie(t),l=t.type,r=t.pendingProps,d=e!==null?e.memoizedProps:null,a=r.children,Cc(l,r)?a=null:d!==null&&Cc(l,d)&&(t.flags|=32),t.memoizedState!==null&&(l=Rr(e,t,fp,null,null,n),$s._currentValue=l),Bl(e,t),ut(e,t,a,n),t.child;case 6:return e===null&&Re&&((e=n=He)&&(n=Fp(n,t.pendingProps,qt),n!==null?(t.stateNode=n,ct=t,He=null,e=!0):e=!1),e||Cn(t)),null;case 13:return Rd(e,t,n);case 4:return de(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=ra(t,null,a,n):ut(e,t,a,n),t.child;case 11:return pd(e,t,t.type,t.pendingProps,n);case 7:return ut(e,t,t.pendingProps,n),t.child;case 8:return ut(e,t,t.pendingProps.children,n),t.child;case 12:return ut(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,Tn(t,t.type,a.value),ut(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,aa(t),l=ot(l),a=a(l),t.flags|=1,ut(e,t,a,n),t.child;case 14:return vd(e,t,t.type,t.pendingProps,n);case 15:return gd(e,t,t.type,t.pendingProps,n);case 19:return Td(e,t,n);case 31:return xp(e,t,n);case 22:return yd(e,t,n,t.pendingProps);case 24:return aa(t),a=ot(We),e===null?(l=hr(),l===null&&(l=Le,r=fr(),l.pooledCache=r,r.refCount++,r!==null&&(l.pooledCacheLanes|=n),l=r),t.memoizedState={parent:a,cache:l},vr(t),Tn(t,We,l)):((e.lanes&n)!==0&&(gr(e,t),Ns(t,null,null,n),js()),l=e.memoizedState,r=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Tn(t,We,a)):(a=r.cache,Tn(t,We,a),a!==l.cache&&dr(t,[We],n,!0))),ut(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(u(156,t.tag))}function fn(e){e.flags|=4}function Fr(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(ef())e.flags|=8192;else throw ia=Cl,pr}else e.flags&=-16777217}function Ad(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Yf(t))if(ef())e.flags|=8192;else throw ia=Cl,pr}function Gl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?io():536870912,e.lanes|=t,$a|=t)}function ks(e,t){if(!Re)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 Be(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function jp(e,t,n){var a=t.pendingProps;switch(ir(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Be(t),null;case 1:return Be(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),cn(We),me(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(wa(t)?fn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,cr())),Be(t),null;case 26:var l=t.type,r=t.memoizedState;return e===null?(fn(t),r!==null?(Be(t),Ad(t,r)):(Be(t),Fr(t,l,null,a,n))):r?r!==e.memoizedState?(fn(t),Be(t),Ad(t,r)):(Be(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&fn(t),Be(t),Fr(t,l,e,a,n)),null;case 27:if(we(t),n=se.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&fn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return Be(t),null}e=B.current,wa(t)?ru(t):(e=If(l,a,n),t.stateNode=e,fn(t))}return Be(t),null;case 5:if(we(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&fn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return Be(t),null}if(r=B.current,wa(t))ru(t);else{var d=ai(se.current);switch(r){case 1:r=d.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:r=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":r=d.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":r=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":r=d.createElement("div"),r.innerHTML="<script><\/script>",r=r.removeChild(r.firstChild);break;case"select":r=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?r.multiple=!0:a.size&&(r.size=a.size);break;default:r=typeof a.is=="string"?d.createElement(l,{is:a.is}):d.createElement(l)}}r[rt]=t,r[gt]=a;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)r.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=r;e:switch(dt(r,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&fn(t)}}return Be(t),Fr(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&fn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(u(166));if(e=se.current,wa(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=ct,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[rt]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Cf(e.nodeValue,n)),e||Cn(t,!0)}else e=ai(e).createTextNode(a),e[rt]=t,t.stateNode=e}return Be(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=wa(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[rt]=t}else ta(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Be(t),e=!1}else n=cr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(At(t),t):(At(t),null);if((t.flags&128)!==0)throw Error(u(558))}return Be(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=wa(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(u(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(u(317));l[rt]=t}else ta(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Be(t),l=!1}else l=cr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(At(t),t):(At(t),null)}return At(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),r=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(r=a.memoizedState.cachePool.pool),r!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Gl(t,t.updateQueue),Be(t),null);case 4:return me(),e===null&&xc(t.stateNode.containerInfo),Be(t),null;case 10:return cn(t.type),Be(t),null;case 19:if(w(Ve),a=t.memoizedState,a===null)return Be(t),null;if(l=(t.flags&128)!==0,r=a.rendering,r===null)if(l)ks(a,!1);else{if(Ke!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(r=kl(e),r!==null){for(t.flags|=128,ks(a,!1),e=r.updateQueue,t.updateQueue=e,Gl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)nu(n,e),n=n.sibling;return P(Ve,Ve.current&1|2),Re&&ln(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&tt()>Ql&&(t.flags|=128,l=!0,ks(a,!1),t.lanes=4194304)}else{if(!l)if(e=kl(r),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Gl(t,e),ks(a,!0),a.tail===null&&a.tailMode==="hidden"&&!r.alternate&&!Re)return Be(t),null}else 2*tt()-a.renderingStartTime>Ql&&n!==536870912&&(t.flags|=128,l=!0,ks(a,!1),t.lanes=4194304);a.isBackwards?(r.sibling=t.child,t.child=r):(e=a.last,e!==null?e.sibling=r:t.child=r,a.last=r)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=tt(),e.sibling=null,n=Ve.current,P(Ve,l?n&1|2:n&1),Re&&ln(t,a.treeForkCount),e):(Be(t),null);case 22:case 23:return At(t),Sr(),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&&(Be(t),t.subtreeFlags&6&&(t.flags|=8192)):Be(t),n=t.updateQueue,n!==null&&Gl(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&&w(sa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),cn(We),Be(t),null;case 25:return null;case 30:return null}throw Error(u(156,t.tag))}function Np(e,t){switch(ir(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return cn(We),me(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return we(t),null;case 31:if(t.memoizedState!==null){if(At(t),t.alternate===null)throw Error(u(340));ta()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(At(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));ta()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return w(Ve),null;case 4:return me(),null;case 10:return cn(t.type),null;case 22:case 23:return At(t),Sr(),e!==null&&w(sa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return cn(We),null;case 25:return null;default:return null}}function kd(e,t){switch(ir(t),t.tag){case 3:cn(We),me();break;case 26:case 27:case 5:we(t);break;case 4:me();break;case 31:t.memoizedState!==null&&At(t);break;case 13:At(t);break;case 19:w(Ve);break;case 10:cn(t.type);break;case 22:case 23:At(t),Sr(),e!==null&&w(sa);break;case 24:cn(We)}}function ws(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var r=n.create,d=n.inst;a=r(),d.destroy=a}n=n.next}while(n!==l)}}catch(p){Oe(t,t.return,p)}}function On(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var r=l.next;a=r;do{if((a.tag&e)===e){var d=a.inst,p=d.destroy;if(p!==void 0){d.destroy=void 0,l=t;var S=n,I=p;try{I()}catch(V){Oe(l,S,V)}}}a=a.next}while(a!==r)}}catch(V){Oe(t,t.return,V)}}function wd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{xu(t,n)}catch(a){Oe(e,e.return,a)}}}function Dd(e,t,n){n.props=oa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Oe(e,t,a)}}function Ds(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(l){Oe(e,t,l)}}function Ft(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){Oe(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){Oe(e,t,l)}else n.current=null}function Od(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(l){Oe(e,e.return,l)}}function Pr(e,t,n){try{var a=e.stateNode;Kp(a,e.type,n,t),a[gt]=t}catch(l){Oe(e,e.return,l)}}function Md(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Hn(e.type)||e.tag===4}function ec(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Md(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&&Hn(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 tc(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=nn));else if(a!==4&&(a===27&&Hn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(tc(e,t,n),e=e.sibling;e!==null;)tc(e,t,n),e=e.sibling}function $l(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&&Hn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($l(e,t,n),e=e.sibling;e!==null;)$l(e,t,n),e=e.sibling}function zd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);dt(t,a,n),t[rt]=e,t[gt]=n}catch(r){Oe(e,e.return,r)}}var mn=!1,et=!1,nc=!1,_d=typeof WeakSet=="function"?WeakSet:Set,lt=null;function Rp(e,t){if(e=e.containerInfo,Nc=ui,e=Qo(e),Zi(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 l=a.anchorOffset,r=a.focusNode;a=a.focusOffset;try{n.nodeType,r.nodeType}catch{n=null;break e}var d=0,p=-1,S=-1,I=0,V=0,F=e,U=null;t:for(;;){for(var $;F!==n||l!==0&&F.nodeType!==3||(p=d+l),F!==r||a!==0&&F.nodeType!==3||(S=d+a),F.nodeType===3&&(d+=F.nodeValue.length),($=F.firstChild)!==null;)U=F,F=$;for(;;){if(F===e)break t;if(U===n&&++I===l&&(p=d),U===r&&++V===a&&(S=d),($=F.nextSibling)!==null)break;F=U,U=F.parentNode}F=$}n=p===-1||S===-1?null:{start:p,end:S}}else n=null}n=n||{start:0,end:0}}else n=null;for(Rc={focusedElem:e,selectionRange:n},ui=!1,lt=t;lt!==null;)if(t=lt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,lt=e;else for(;lt!==null;){switch(t=lt,r=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++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&r!==null){e=void 0,n=t,l=r.memoizedProps,r=r.memoizedState,a=n.stateNode;try{var oe=oa(n.type,l);e=a.getSnapshotBeforeUpdate(oe,r),a.__reactInternalSnapshotBeforeUpdate=e}catch(pe){Oe(n,n.return,pe)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Ec(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Ec(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,lt=e;break}lt=t.return}}function Id(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:pn(e,n),a&4&&ws(5,n);break;case 1:if(pn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(d){Oe(n,n.return,d)}else{var l=oa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(d){Oe(n,n.return,d)}}a&64&&wd(n),a&512&&Ds(n,n.return);break;case 3:if(pn(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{xu(e,t)}catch(d){Oe(n,n.return,d)}}break;case 27:t===null&&a&4&&zd(n);case 26:case 5:pn(e,n),t===null&&a&4&&Od(n),a&512&&Ds(n,n.return);break;case 12:pn(e,n);break;case 31:pn(e,n),a&4&&Hd(e,n);break;case 13:pn(e,n),a&4&&Bd(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Mp.bind(null,n),Pp(e,n))));break;case 22:if(a=n.memoizedState!==null||mn,!a){t=t!==null&&t.memoizedState!==null||et,l=mn;var r=et;mn=a,(et=t)&&!r?vn(e,n,(n.subtreeFlags&8772)!==0):pn(e,n),mn=l,et=r}break;case 30:break;default:pn(e,n)}}function Ld(e){var t=e.alternate;t!==null&&(e.alternate=null,Ld(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Oi(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 Ge=null,bt=!1;function hn(e,t,n){for(n=n.child;n!==null;)Ud(e,t,n),n=n.sibling}function Ud(e,t,n){if(ht&&typeof ht.onCommitFiberUnmount=="function")try{ht.onCommitFiberUnmount(zt,n)}catch{}switch(n.tag){case 26:et||Ft(n,t),hn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:et||Ft(n,t);var a=Ge,l=bt;Hn(n.type)&&(Ge=n.stateNode,bt=!1),hn(e,t,n),Bs(n.stateNode),Ge=a,bt=l;break;case 5:et||Ft(n,t);case 6:if(a=Ge,l=bt,Ge=null,hn(e,t,n),Ge=a,bt=l,Ge!==null)if(bt)try{(Ge.nodeType===9?Ge.body:Ge.nodeName==="HTML"?Ge.ownerDocument.body:Ge).removeChild(n.stateNode)}catch(r){Oe(n,t,r)}else try{Ge.removeChild(n.stateNode)}catch(r){Oe(n,t,r)}break;case 18:Ge!==null&&(bt?(e=Ge,Df(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Wa(e)):Df(Ge,n.stateNode));break;case 4:a=Ge,l=bt,Ge=n.stateNode.containerInfo,bt=!0,hn(e,t,n),Ge=a,bt=l;break;case 0:case 11:case 14:case 15:On(2,n,t),et||On(4,n,t),hn(e,t,n);break;case 1:et||(Ft(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Dd(n,t,a)),hn(e,t,n);break;case 21:hn(e,t,n);break;case 22:et=(a=et)||n.memoizedState!==null,hn(e,t,n),et=a;break;default:hn(e,t,n)}}function Hd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Wa(e)}catch(n){Oe(t,t.return,n)}}}function Bd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Wa(e)}catch(n){Oe(t,t.return,n)}}function Cp(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new _d),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new _d),t;default:throw Error(u(435,e.tag))}}function Yl(e,t){var n=Cp(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=zp.bind(null,e,a);a.then(l,l)}})}function xt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],r=e,d=t,p=d;e:for(;p!==null;){switch(p.tag){case 27:if(Hn(p.type)){Ge=p.stateNode,bt=!1;break e}break;case 5:Ge=p.stateNode,bt=!1;break e;case 3:case 4:Ge=p.stateNode.containerInfo,bt=!0;break e}p=p.return}if(Ge===null)throw Error(u(160));Ud(r,d,l),Ge=null,bt=!1,r=l.alternate,r!==null&&(r.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)qd(t,e),t=t.sibling}var Xt=null;function qd(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:xt(t,e),St(e),a&4&&(On(3,e,e.return),ws(3,e),On(5,e,e.return));break;case 1:xt(t,e),St(e),a&512&&(et||n===null||Ft(n,n.return)),a&64&&mn&&(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 l=Xt;if(xt(t,e),St(e),a&512&&(et||n===null||Ft(n,n.return)),a&4){var r=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,l=l.ownerDocument||l;t:switch(a){case"title":r=l.getElementsByTagName("title")[0],(!r||r[ss]||r[rt]||r.namespaceURI==="http://www.w3.org/2000/svg"||r.hasAttribute("itemprop"))&&(r=l.createElement(a),l.head.insertBefore(r,l.querySelector("head > title"))),dt(r,a,n),r[rt]=e,st(r),a=r;break e;case"link":var d=Gf("link","href",l).get(a+(n.href||""));if(d){for(var p=0;p<d.length;p++)if(r=d[p],r.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&r.getAttribute("rel")===(n.rel==null?null:n.rel)&&r.getAttribute("title")===(n.title==null?null:n.title)&&r.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(p,1);break t}}r=l.createElement(a),dt(r,a,n),l.head.appendChild(r);break;case"meta":if(d=Gf("meta","content",l).get(a+(n.content||""))){for(p=0;p<d.length;p++)if(r=d[p],r.getAttribute("content")===(n.content==null?null:""+n.content)&&r.getAttribute("name")===(n.name==null?null:n.name)&&r.getAttribute("property")===(n.property==null?null:n.property)&&r.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&r.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(p,1);break t}}r=l.createElement(a),dt(r,a,n),l.head.appendChild(r);break;default:throw Error(u(468,a))}r[rt]=e,st(r),a=r}e.stateNode=a}else $f(l,e.type,e.stateNode);else e.stateNode=qf(l,a,e.memoizedProps);else r!==a?(r===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):r.count--,a===null?$f(l,e.type,e.stateNode):qf(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&Pr(e,e.memoizedProps,n.memoizedProps)}break;case 27:xt(t,e),St(e),a&512&&(et||n===null||Ft(n,n.return)),n!==null&&a&4&&Pr(e,e.memoizedProps,n.memoizedProps);break;case 5:if(xt(t,e),St(e),a&512&&(et||n===null||Ft(n,n.return)),e.flags&32){l=e.stateNode;try{xa(l,"")}catch(oe){Oe(e,e.return,oe)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,Pr(e,l,n!==null?n.memoizedProps:l)),a&1024&&(nc=!0);break;case 6:if(xt(t,e),St(e),a&4){if(e.stateNode===null)throw Error(u(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(oe){Oe(e,e.return,oe)}}break;case 3:if(ii=null,l=Xt,Xt=si(t.containerInfo),xt(t,e),Xt=l,St(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Wa(t.containerInfo)}catch(oe){Oe(e,e.return,oe)}nc&&(nc=!1,Gd(e));break;case 4:a=Xt,Xt=si(e.stateNode.containerInfo),xt(t,e),St(e),Xt=a;break;case 12:xt(t,e),St(e);break;case 31:xt(t,e),St(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Yl(e,a)));break;case 13:xt(t,e),St(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Xl=tt()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Yl(e,a)));break;case 22:l=e.memoizedState!==null;var S=n!==null&&n.memoizedState!==null,I=mn,V=et;if(mn=I||l,et=V||S,xt(t,e),et=V,mn=I,St(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||S||mn||et||ua(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){S=n=t;try{if(r=S.stateNode,l)d=r.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{p=S.stateNode;var F=S.memoizedProps.style,U=F!=null&&F.hasOwnProperty("display")?F.display:null;p.style.display=U==null||typeof U=="boolean"?"":(""+U).trim()}}catch(oe){Oe(S,S.return,oe)}}}else if(t.tag===6){if(n===null){S=t;try{S.stateNode.nodeValue=l?"":S.memoizedProps}catch(oe){Oe(S,S.return,oe)}}}else if(t.tag===18){if(n===null){S=t;try{var $=S.stateNode;l?Of($,!0):Of(S.stateNode,!1)}catch(oe){Oe(S,S.return,oe)}}}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,Yl(e,n))));break;case 19:xt(t,e),St(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Yl(e,a)));break;case 30:break;case 21:break;default:xt(t,e),St(e)}}function St(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(Md(a)){n=a;break}a=a.return}if(n==null)throw Error(u(160));switch(n.tag){case 27:var l=n.stateNode,r=ec(e);$l(e,r,l);break;case 5:var d=n.stateNode;n.flags&32&&(xa(d,""),n.flags&=-33);var p=ec(e);$l(e,p,d);break;case 3:case 4:var S=n.stateNode.containerInfo,I=ec(e);tc(e,I,S);break;default:throw Error(u(161))}}catch(V){Oe(e,e.return,V)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Gd(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Gd(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function pn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Id(e,t.alternate,t),t=t.sibling}function ua(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:On(4,t,t.return),ua(t);break;case 1:Ft(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Dd(t,t.return,n),ua(t);break;case 27:Bs(t.stateNode);case 26:case 5:Ft(t,t.return),ua(t);break;case 22:t.memoizedState===null&&ua(t);break;case 30:ua(t);break;default:ua(t)}e=e.sibling}}function vn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,r=t,d=r.flags;switch(r.tag){case 0:case 11:case 15:vn(l,r,n),ws(4,r);break;case 1:if(vn(l,r,n),a=r,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(I){Oe(a,a.return,I)}if(a=r,l=a.updateQueue,l!==null){var p=a.stateNode;try{var S=l.shared.hiddenCallbacks;if(S!==null)for(l.shared.hiddenCallbacks=null,l=0;l<S.length;l++)bu(S[l],p)}catch(I){Oe(a,a.return,I)}}n&&d&64&&wd(r),Ds(r,r.return);break;case 27:zd(r);case 26:case 5:vn(l,r,n),n&&a===null&&d&4&&Od(r),Ds(r,r.return);break;case 12:vn(l,r,n);break;case 31:vn(l,r,n),n&&d&4&&Hd(l,r);break;case 13:vn(l,r,n),n&&d&4&&Bd(l,r);break;case 22:r.memoizedState===null&&vn(l,r,n),Ds(r,r.return);break;case 30:break;default:vn(l,r,n)}t=t.sibling}}function ac(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&&gs(n))}function sc(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&gs(e))}function Qt(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)$d(e,t,n,a),t=t.sibling}function $d(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Qt(e,t,n,a),l&2048&&ws(9,t);break;case 1:Qt(e,t,n,a);break;case 3:Qt(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&gs(e)));break;case 12:if(l&2048){Qt(e,t,n,a),e=t.stateNode;try{var r=t.memoizedProps,d=r.id,p=r.onPostCommit;typeof p=="function"&&p(d,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(S){Oe(t,t.return,S)}}else Qt(e,t,n,a);break;case 31:Qt(e,t,n,a);break;case 13:Qt(e,t,n,a);break;case 23:break;case 22:r=t.stateNode,d=t.alternate,t.memoizedState!==null?r._visibility&2?Qt(e,t,n,a):Os(e,t):r._visibility&2?Qt(e,t,n,a):(r._visibility|=2,Ba(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&ac(d,t);break;case 24:Qt(e,t,n,a),l&2048&&sc(t.alternate,t);break;default:Qt(e,t,n,a)}}function Ba(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var r=e,d=t,p=n,S=a,I=d.flags;switch(d.tag){case 0:case 11:case 15:Ba(r,d,p,S,l),ws(8,d);break;case 23:break;case 22:var V=d.stateNode;d.memoizedState!==null?V._visibility&2?Ba(r,d,p,S,l):Os(r,d):(V._visibility|=2,Ba(r,d,p,S,l)),l&&I&2048&&ac(d.alternate,d);break;case 24:Ba(r,d,p,S,l),l&&I&2048&&sc(d.alternate,d);break;default:Ba(r,d,p,S,l)}t=t.sibling}}function Os(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:Os(n,a),l&2048&&ac(a.alternate,a);break;case 24:Os(n,a),l&2048&&sc(a.alternate,a);break;default:Os(n,a)}t=t.sibling}}var Ms=8192;function qa(e,t,n){if(e.subtreeFlags&Ms)for(e=e.child;e!==null;)Yd(e,t,n),e=e.sibling}function Yd(e,t,n){switch(e.tag){case 26:qa(e,t,n),e.flags&Ms&&e.memoizedState!==null&&dv(n,Xt,e.memoizedState,e.memoizedProps);break;case 5:qa(e,t,n);break;case 3:case 4:var a=Xt;Xt=si(e.stateNode.containerInfo),qa(e,t,n),Xt=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Ms,Ms=16777216,qa(e,t,n),Ms=a):qa(e,t,n));break;default:qa(e,t,n)}}function Kd(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];lt=a,Qd(a,e)}Kd(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Xd(e),e=e.sibling}function Xd(e){switch(e.tag){case 0:case 11:case 15:zs(e),e.flags&2048&&On(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,Kl(e)):zs(e);break;default:zs(e)}}function Kl(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];lt=a,Qd(a,e)}Kd(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:On(8,t,t.return),Kl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Kl(t));break;default:Kl(t)}e=e.sibling}}function Qd(e,t){for(;lt!==null;){var n=lt;switch(n.tag){case 0:case 11:case 15:On(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:gs(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,lt=a;else e:for(n=e;lt!==null;){a=lt;var l=a.sibling,r=a.return;if(Ld(a),a===n){lt=null;break e}if(l!==null){l.return=r,lt=l;break e}lt=r}}}var Tp={getCacheForType:function(e){var t=ot(We),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ot(We).controller.signal}},Ep=typeof WeakMap=="function"?WeakMap:Map,ke=0,Le=null,xe=null,je=0,De=0,kt=null,Mn=!1,Ga=!1,lc=!1,gn=0,Ke=0,zn=0,da=0,ic=0,wt=0,$a=0,_s=null,jt=null,rc=!1,Xl=0,Vd=0,Ql=1/0,Vl=null,_n=null,at=0,In=null,Ya=null,yn=0,cc=0,oc=null,Zd=null,Is=0,uc=null;function Dt(){return(ke&2)!==0&&je!==0?je&-je:N.T!==null?vc():uo()}function Jd(){if(wt===0)if((je&536870912)===0||Re){var e=nl;nl<<=1,(nl&3932160)===0&&(nl=262144),wt=e}else wt=536870912;return e=Et.current,e!==null&&(e.flags|=32),wt}function Nt(e,t,n){(e===Le&&(De===2||De===9)||e.cancelPendingCommit!==null)&&(Ka(e,0),Ln(e,je,wt,!1)),as(e,n),((ke&2)===0||e!==Le)&&(e===Le&&((ke&2)===0&&(da|=n),Ke===4&&Ln(e,je,wt,!1)),Pt(e))}function Wd(e,t,n){if((ke&6)!==0)throw Error(u(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||ns(e,t),l=a?wp(e,t):fc(e,t,!0),r=a;do{if(l===0){Ga&&!a&&Ln(e,t,0,!1);break}else{if(n=e.current.alternate,r&&!Ap(n)){l=fc(e,t,!1),r=!1;continue}if(l===2){if(r=t,e.errorRecoveryDisabledLanes&r)var d=0;else d=e.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){t=d;e:{var p=e;l=_s;var S=p.current.memoizedState.isDehydrated;if(S&&(Ka(p,d).flags|=256),d=fc(p,d,!1),d!==2){if(lc&&!S){p.errorRecoveryDisabledLanes|=r,da|=r,l=4;break e}r=jt,jt=l,r!==null&&(jt===null?jt=r:jt.push.apply(jt,r))}l=d}if(r=!1,l!==2)continue}}if(l===1){Ka(e,0),Ln(e,t,0,!0);break}e:{switch(a=e,r=l,r){case 0:case 1:throw Error(u(345));case 4:if((t&4194048)!==t)break;case 6:Ln(a,t,wt,!Mn);break e;case 2:jt=null;break;case 3:case 5:break;default:throw Error(u(329))}if((t&62914560)===t&&(l=Xl+300-tt(),10<l)){if(Ln(a,t,wt,!Mn),sl(a,0,!0)!==0)break e;yn=t,a.timeoutHandle=kf(Fd.bind(null,a,n,jt,Vl,rc,t,wt,da,$a,Mn,r,"Throttled",-0,0),l);break e}Fd(a,n,jt,Vl,rc,t,wt,da,$a,Mn,r,null,-0,0)}}break}while(!0);Pt(e)}function Fd(e,t,n,a,l,r,d,p,S,I,V,F,U,$){if(e.timeoutHandle=-1,F=t.subtreeFlags,F&8192||(F&16785408)===16785408){F={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:nn},Yd(t,r,F);var oe=(r&62914560)===r?Xl-tt():(r&4194048)===r?Vd-tt():0;if(oe=fv(F,oe),oe!==null){yn=r,e.cancelPendingCommit=oe(rf.bind(null,e,t,r,n,a,l,d,p,S,V,F,null,U,$)),Ln(e,r,d,!I);return}}rf(e,t,r,n,a,l,d,p,S)}function Ap(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 l=n[a],r=l.getSnapshot;l=l.value;try{if(!Ct(r(),l))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 Ln(e,t,n,a){t&=~ic,t&=~da,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var r=31-ft(l),d=1<<r;a[r]=-1,l&=~d}n!==0&&ro(e,n,t)}function Zl(){return(ke&6)===0?(Ls(0),!1):!0}function dc(){if(xe!==null){if(De===0)var e=xe.return;else e=xe,rn=na=null,Er(e),_a=null,bs=0,e=xe;for(;e!==null;)kd(e.alternate,e),e=e.return;xe=null}}function Ka(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Vp(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),yn=0,dc(),Le=e,xe=n=sn(e.current,null),je=t,De=0,kt=null,Mn=!1,Ga=ns(e,t),lc=!1,$a=wt=ic=da=zn=Ke=0,jt=_s=null,rc=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-ft(a),r=1<<l;t|=e[l],a&=~r}return gn=t,vl(),n}function Pd(e,t){ge=null,N.H=Es,t===za||t===Rl?(t=pu(),De=3):t===pr?(t=pu(),De=4):De=t===$r?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,kt=t,xe===null&&(Ke=1,Ul(e,Ut(t,e.current)))}function ef(){var e=Et.current;return e===null?!0:(je&4194048)===je?Gt===null:(je&62914560)===je||(je&536870912)!==0?e===Gt:!1}function tf(){var e=N.H;return N.H=Es,e===null?Es:e}function nf(){var e=N.A;return N.A=Tp,e}function Jl(){Ke=4,Mn||(je&4194048)!==je&&Et.current!==null||(Ga=!0),(zn&134217727)===0&&(da&134217727)===0||Le===null||Ln(Le,je,wt,!1)}function fc(e,t,n){var a=ke;ke|=2;var l=tf(),r=nf();(Le!==e||je!==t)&&(Vl=null,Ka(e,t)),t=!1;var d=Ke;e:do try{if(De!==0&&xe!==null){var p=xe,S=kt;switch(De){case 8:dc(),d=6;break e;case 3:case 2:case 9:case 6:Et.current===null&&(t=!0);var I=De;if(De=0,kt=null,Xa(e,p,S,I),n&&Ga){d=0;break e}break;default:I=De,De=0,kt=null,Xa(e,p,S,I)}}kp(),d=Ke;break}catch(V){Pd(e,V)}while(!0);return t&&e.shellSuspendCounter++,rn=na=null,ke=a,N.H=l,N.A=r,xe===null&&(Le=null,je=0,vl()),d}function kp(){for(;xe!==null;)af(xe)}function wp(e,t){var n=ke;ke|=2;var a=tf(),l=nf();Le!==e||je!==t?(Vl=null,Ql=tt()+500,Ka(e,t)):Ga=ns(e,t);e:do try{if(De!==0&&xe!==null){t=xe;var r=kt;t:switch(De){case 1:De=0,kt=null,Xa(e,t,r,1);break;case 2:case 9:if(mu(r)){De=0,kt=null,sf(t);break}t=function(){De!==2&&De!==9||Le!==e||(De=7),Pt(e)},r.then(t,t);break e;case 3:De=7;break e;case 4:De=5;break e;case 7:mu(r)?(De=0,kt=null,sf(t)):(De=0,kt=null,Xa(e,t,r,7));break;case 5:var d=null;switch(xe.tag){case 26:d=xe.memoizedState;case 5:case 27:var p=xe;if(d?Yf(d):p.stateNode.complete){De=0,kt=null;var S=p.sibling;if(S!==null)xe=S;else{var I=p.return;I!==null?(xe=I,Wl(I)):xe=null}break t}}De=0,kt=null,Xa(e,t,r,5);break;case 6:De=0,kt=null,Xa(e,t,r,6);break;case 8:dc(),Ke=6;break e;default:throw Error(u(462))}}Dp();break}catch(V){Pd(e,V)}while(!0);return rn=na=null,N.H=a,N.A=l,ke=n,xe!==null?0:(Le=null,je=0,vl(),Ke)}function Dp(){for(;xe!==null&&!Ti();)af(xe)}function af(e){var t=Ed(e.alternate,e,gn);e.memoizedProps=e.pendingProps,t===null?Wl(e):xe=t}function sf(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Sd(n,t,t.pendingProps,t.type,void 0,je);break;case 11:t=Sd(n,t,t.pendingProps,t.type.render,t.ref,je);break;case 5:Er(t);default:kd(n,t),t=xe=nu(t,gn),t=Ed(n,t,gn)}e.memoizedProps=e.pendingProps,t===null?Wl(e):xe=t}function Xa(e,t,n,a){rn=na=null,Er(t),_a=null,bs=0;var l=t.return;try{if(bp(e,l,t,n,je)){Ke=1,Ul(e,Ut(n,e.current)),xe=null;return}}catch(r){if(l!==null)throw xe=l,r;Ke=1,Ul(e,Ut(n,e.current)),xe=null;return}t.flags&32768?(Re||a===1?e=!0:Ga||(je&536870912)!==0?e=!1:(Mn=e=!0,(a===2||a===9||a===3||a===6)&&(a=Et.current,a!==null&&a.tag===13&&(a.flags|=16384))),lf(t,e)):Wl(t)}function Wl(e){var t=e;do{if((t.flags&32768)!==0){lf(t,Mn);return}e=t.return;var n=jp(t.alternate,t,gn);if(n!==null){xe=n;return}if(t=t.sibling,t!==null){xe=t;return}xe=t=e}while(t!==null);Ke===0&&(Ke=5)}function lf(e,t){do{var n=Np(e.alternate,e);if(n!==null){n.flags&=32767,xe=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){xe=e;return}xe=e=n}while(e!==null);Ke=6,xe=null}function rf(e,t,n,a,l,r,d,p,S){e.cancelPendingCommit=null;do Fl();while(at!==0);if((ke&6)!==0)throw Error(u(327));if(t!==null){if(t===e.current)throw Error(u(177));if(r=t.lanes|t.childLanes,r|=er,uh(e,n,r,d,p,S),e===Le&&(xe=Le=null,je=0),Ya=t,In=e,yn=n,cc=r,oc=l,Zd=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,_p(ma,function(){return ff(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=N.T,N.T=null,l=M.p,M.p=2,d=ke,ke|=4;try{Rp(e,t,n)}finally{ke=d,M.p=l,N.T=a}}at=1,cf(),of(),uf()}}function cf(){if(at===1){at=0;var e=In,t=Ya,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=N.T,N.T=null;var a=M.p;M.p=2;var l=ke;ke|=4;try{qd(t,e);var r=Rc,d=Qo(e.containerInfo),p=r.focusedElem,S=r.selectionRange;if(d!==p&&p&&p.ownerDocument&&Xo(p.ownerDocument.documentElement,p)){if(S!==null&&Zi(p)){var I=S.start,V=S.end;if(V===void 0&&(V=I),"selectionStart"in p)p.selectionStart=I,p.selectionEnd=Math.min(V,p.value.length);else{var F=p.ownerDocument||document,U=F&&F.defaultView||window;if(U.getSelection){var $=U.getSelection(),oe=p.textContent.length,pe=Math.min(S.start,oe),_e=S.end===void 0?pe:Math.min(S.end,oe);!$.extend&&pe>_e&&(d=_e,_e=pe,pe=d);var k=Ko(p,pe),C=Ko(p,_e);if(k&&C&&($.rangeCount!==1||$.anchorNode!==k.node||$.anchorOffset!==k.offset||$.focusNode!==C.node||$.focusOffset!==C.offset)){var z=F.createRange();z.setStart(k.node,k.offset),$.removeAllRanges(),pe>_e?($.addRange(z),$.extend(C.node,C.offset)):(z.setEnd(C.node,C.offset),$.addRange(z))}}}}for(F=[],$=p;$=$.parentNode;)$.nodeType===1&&F.push({element:$,left:$.scrollLeft,top:$.scrollTop});for(typeof p.focus=="function"&&p.focus(),p=0;p<F.length;p++){var J=F[p];J.element.scrollLeft=J.left,J.element.scrollTop=J.top}}ui=!!Nc,Rc=Nc=null}finally{ke=l,M.p=a,N.T=n}}e.current=t,at=2}}function of(){if(at===2){at=0;var e=In,t=Ya,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=N.T,N.T=null;var a=M.p;M.p=2;var l=ke;ke|=4;try{Id(e,t.alternate,t)}finally{ke=l,M.p=a,N.T=n}}at=3}}function uf(){if(at===4||at===3){at=0,Ei();var e=In,t=Ya,n=yn,a=Zd;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?at=5:(at=0,Ya=In=null,df(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(_n=null),wi(n),t=t.stateNode,ht&&typeof ht.onCommitFiberRoot=="function")try{ht.onCommitFiberRoot(zt,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=N.T,l=M.p,M.p=2,N.T=null;try{for(var r=e.onRecoverableError,d=0;d<a.length;d++){var p=a[d];r(p.value,{componentStack:p.stack})}}finally{N.T=t,M.p=l}}(yn&3)!==0&&Fl(),Pt(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===uc?Is++:(Is=0,uc=e):Is=0,Ls(0)}}function df(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,gs(t)))}function Fl(){return cf(),of(),uf(),ff()}function ff(){if(at!==5)return!1;var e=In,t=cc;cc=0;var n=wi(yn),a=N.T,l=M.p;try{M.p=32>n?32:n,N.T=null,n=oc,oc=null;var r=In,d=yn;if(at=0,Ya=In=null,yn=0,(ke&6)!==0)throw Error(u(331));var p=ke;if(ke|=4,Xd(r.current),$d(r,r.current,d,n),ke=p,Ls(0,!1),ht&&typeof ht.onPostCommitFiberRoot=="function")try{ht.onPostCommitFiberRoot(zt,r)}catch{}return!0}finally{M.p=l,N.T=a,df(e,t)}}function mf(e,t,n){t=Ut(n,t),t=Gr(e.stateNode,t,2),e=kn(e,t,2),e!==null&&(as(e,2),Pt(e))}function Oe(e,t,n){if(e.tag===3)mf(e,e,n);else for(;t!==null;){if(t.tag===3){mf(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(_n===null||!_n.has(a))){e=Ut(n,e),n=md(2),a=kn(t,n,2),a!==null&&(hd(n,a,t,e),as(a,2),Pt(a));break}}t=t.return}}function mc(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new Ep;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(lc=!0,l.add(n),e=Op.bind(null,e,t,n),t.then(e,e))}function Op(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Le===e&&(je&n)===n&&(Ke===4||Ke===3&&(je&62914560)===je&&300>tt()-Xl?(ke&2)===0&&Ka(e,0):ic|=n,$a===je&&($a=0)),Pt(e)}function hf(e,t){t===0&&(t=io()),e=Pn(e,t),e!==null&&(as(e,t),Pt(e))}function Mp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hf(e,n)}function zp(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.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),hf(e,n)}function _p(e,t){return Mt(e,t)}var Pl=null,Qa=null,hc=!1,ei=!1,pc=!1,Un=0;function Pt(e){e!==Qa&&e.next===null&&(Qa===null?Pl=Qa=e:Qa=Qa.next=e),ei=!0,hc||(hc=!0,Lp())}function Ls(e,t){if(!pc&&ei){pc=!0;do for(var n=!1,a=Pl;a!==null;){if(e!==0){var l=a.pendingLanes;if(l===0)var r=0;else{var d=a.suspendedLanes,p=a.pingedLanes;r=(1<<31-ft(42|e)+1)-1,r&=l&~(d&~p),r=r&201326741?r&201326741|1:r?r|2:0}r!==0&&(n=!0,yf(a,r))}else r=je,r=sl(a,a===Le?r:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(r&3)===0||ns(a,r)||(n=!0,yf(a,r));a=a.next}while(n);pc=!1}}function Ip(){pf()}function pf(){ei=hc=!1;var e=0;Un!==0&&Qp()&&(e=Un);for(var t=tt(),n=null,a=Pl;a!==null;){var l=a.next,r=vf(a,t);r===0?(a.next=null,n===null?Pl=l:n.next=l,l===null&&(Qa=n)):(n=a,(e!==0||(r&3)!==0)&&(ei=!0)),a=l}at!==0&&at!==5||Ls(e),Un!==0&&(Un=0)}function vf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,r=e.pendingLanes&-62914561;0<r;){var d=31-ft(r),p=1<<d,S=l[d];S===-1?((p&n)===0||(p&a)!==0)&&(l[d]=oh(p,t)):S<=t&&(e.expiredLanes|=p),r&=~p}if(t=Le,n=je,n=sl(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(De===2||De===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&Xn(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||ns(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&Xn(a),wi(n)){case 2:case 8:n=el;break;case 32:n=ma;break;case 268435456:n=nt;break;default:n=ma}return a=gf.bind(null,e),n=Mt(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&Xn(a),e.callbackPriority=2,e.callbackNode=null,2}function gf(e,t){if(at!==0&&at!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Fl()&&e.callbackNode!==n)return null;var a=je;return a=sl(e,e===Le?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(Wd(e,a,t),vf(e,tt()),e.callbackNode!=null&&e.callbackNode===n?gf.bind(null,e):null)}function yf(e,t){if(Fl())return null;Wd(e,t,!0)}function Lp(){Zp(function(){(ke&6)!==0?Mt(Qn,Ip):pf()})}function vc(){if(Un===0){var e=Oa;e===0&&(e=tl,tl<<=1,(tl&261888)===0&&(tl=256)),Un=e}return Un}function bf(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:cl(""+e)}function xf(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 Up(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var r=bf((l[gt]||null).action),d=a.submitter;d&&(t=(t=d[gt]||null)?bf(t.formAction):d.getAttribute("formAction"),t!==null&&(r=t,d=null));var p=new fl("action","action",null,a,l);e.push({event:p,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(Un!==0){var S=d?xf(l,d):new FormData(l);Ir(n,{pending:!0,data:S,method:l.method,action:r},null,S)}}else typeof r=="function"&&(p.preventDefault(),S=d?xf(l,d):new FormData(l),Ir(n,{pending:!0,data:S,method:l.method,action:r},r,S))},currentTarget:l}]})}}for(var gc=0;gc<Pi.length;gc++){var yc=Pi[gc],Hp=yc.toLowerCase(),Bp=yc[0].toUpperCase()+yc.slice(1);Kt(Hp,"on"+Bp)}Kt(Jo,"onAnimationEnd"),Kt(Wo,"onAnimationIteration"),Kt(Fo,"onAnimationStart"),Kt("dblclick","onDoubleClick"),Kt("focusin","onFocus"),Kt("focusout","onBlur"),Kt(np,"onTransitionRun"),Kt(ap,"onTransitionStart"),Kt(sp,"onTransitionCancel"),Kt(Po,"onTransitionEnd"),ya("onMouseEnter",["mouseout","mouseover"]),ya("onMouseLeave",["mouseout","mouseover"]),ya("onPointerEnter",["pointerout","pointerover"]),ya("onPointerLeave",["pointerout","pointerover"]),Zn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Zn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Zn("onBeforeInput",["compositionend","keypress","textInput","paste"]),Zn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Zn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Zn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Us="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(" "),qp=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Us));function Sf(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var r=void 0;if(t)for(var d=a.length-1;0<=d;d--){var p=a[d],S=p.instance,I=p.currentTarget;if(p=p.listener,S!==r&&l.isPropagationStopped())break e;r=p,l.currentTarget=I;try{r(l)}catch(V){pl(V)}l.currentTarget=null,r=S}else for(d=0;d<a.length;d++){if(p=a[d],S=p.instance,I=p.currentTarget,p=p.listener,S!==r&&l.isPropagationStopped())break e;r=p,l.currentTarget=I;try{r(l)}catch(V){pl(V)}l.currentTarget=null,r=S}}}}function Se(e,t){var n=t[Di];n===void 0&&(n=t[Di]=new Set);var a=e+"__bubble";n.has(a)||(jf(t,e,2,!1),n.add(a))}function bc(e,t,n){var a=0;t&&(a|=4),jf(n,e,a,t)}var ti="_reactListening"+Math.random().toString(36).slice(2);function xc(e){if(!e[ti]){e[ti]=!0,ho.forEach(function(n){n!=="selectionchange"&&(qp.has(n)||bc(n,!1,e),bc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ti]||(t[ti]=!0,bc("selectionchange",!1,t))}}function jf(e,t,n,a){switch(Wf(t)){case 2:var l=pv;break;case 8:l=vv;break;default:l=_c}n=l.bind(null,t,n,e),l=void 0,!Bi||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function Sc(e,t,n,a,l){var r=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 p=a.stateNode.containerInfo;if(p===l)break;if(d===4)for(d=a.return;d!==null;){var S=d.tag;if((S===3||S===4)&&d.stateNode.containerInfo===l)return;d=d.return}for(;p!==null;){if(d=pa(p),d===null)return;if(S=d.tag,S===5||S===6||S===26||S===27){a=r=d;continue e}p=p.parentNode}}a=a.return}To(function(){var I=r,V=Ui(n),F=[];e:{var U=eu.get(e);if(U!==void 0){var $=fl,oe=e;switch(e){case"keypress":if(ul(n)===0)break e;case"keydown":case"keyup":$=zh;break;case"focusin":oe="focus",$=Yi;break;case"focusout":oe="blur",$=Yi;break;case"beforeblur":case"afterblur":$=Yi;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":$=ko;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":$=jh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":$=Lh;break;case Jo:case Wo:case Fo:$=Ch;break;case Po:$=Hh;break;case"scroll":case"scrollend":$=xh;break;case"wheel":$=qh;break;case"copy":case"cut":case"paste":$=Eh;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":$=Do;break;case"toggle":case"beforetoggle":$=$h}var pe=(t&4)!==0,_e=!pe&&(e==="scroll"||e==="scrollend"),k=pe?U!==null?U+"Capture":null:U;pe=[];for(var C=I,z;C!==null;){var J=C;if(z=J.stateNode,J=J.tag,J!==5&&J!==26&&J!==27||z===null||k===null||(J=is(C,k),J!=null&&pe.push(Hs(C,J,z))),_e)break;C=C.return}0<pe.length&&(U=new $(U,oe,null,n,V),F.push({event:U,listeners:pe}))}}if((t&7)===0){e:{if(U=e==="mouseover"||e==="pointerover",$=e==="mouseout"||e==="pointerout",U&&n!==Li&&(oe=n.relatedTarget||n.fromElement)&&(pa(oe)||oe[ha]))break e;if(($||U)&&(U=V.window===V?V:(U=V.ownerDocument)?U.defaultView||U.parentWindow:window,$?(oe=n.relatedTarget||n.toElement,$=I,oe=oe?pa(oe):null,oe!==null&&(_e=m(oe),pe=oe.tag,oe!==_e||pe!==5&&pe!==27&&pe!==6)&&(oe=null)):($=null,oe=I),$!==oe)){if(pe=ko,J="onMouseLeave",k="onMouseEnter",C="mouse",(e==="pointerout"||e==="pointerover")&&(pe=Do,J="onPointerLeave",k="onPointerEnter",C="pointer"),_e=$==null?U:ls($),z=oe==null?U:ls(oe),U=new pe(J,C+"leave",$,n,V),U.target=_e,U.relatedTarget=z,J=null,pa(V)===I&&(pe=new pe(k,C+"enter",oe,n,V),pe.target=z,pe.relatedTarget=_e,J=pe),_e=J,$&&oe)t:{for(pe=Gp,k=$,C=oe,z=0,J=k;J;J=pe(J))z++;J=0;for(var he=C;he;he=pe(he))J++;for(;0<z-J;)k=pe(k),z--;for(;0<J-z;)C=pe(C),J--;for(;z--;){if(k===C||C!==null&&k===C.alternate){pe=k;break t}k=pe(k),C=pe(C)}pe=null}else pe=null;$!==null&&Nf(F,U,$,pe,!1),oe!==null&&_e!==null&&Nf(F,_e,oe,pe,!0)}}e:{if(U=I?ls(I):window,$=U.nodeName&&U.nodeName.toLowerCase(),$==="select"||$==="input"&&U.type==="file")var Te=Ho;else if(Lo(U))if(Bo)Te=Ph;else{Te=Wh;var fe=Jh}else $=U.nodeName,!$||$.toLowerCase()!=="input"||U.type!=="checkbox"&&U.type!=="radio"?I&&Ii(I.elementType)&&(Te=Ho):Te=Fh;if(Te&&(Te=Te(e,I))){Uo(F,Te,n,V);break e}fe&&fe(e,U,I),e==="focusout"&&I&&U.type==="number"&&I.memoizedProps.value!=null&&_i(U,"number",U.value)}switch(fe=I?ls(I):window,e){case"focusin":(Lo(fe)||fe.contentEditable==="true")&&(Ra=fe,Ji=I,hs=null);break;case"focusout":hs=Ji=Ra=null;break;case"mousedown":Wi=!0;break;case"contextmenu":case"mouseup":case"dragend":Wi=!1,Vo(F,n,V);break;case"selectionchange":if(tp)break;case"keydown":case"keyup":Vo(F,n,V)}var be;if(Xi)e:{switch(e){case"compositionstart":var Ne="onCompositionStart";break e;case"compositionend":Ne="onCompositionEnd";break e;case"compositionupdate":Ne="onCompositionUpdate";break e}Ne=void 0}else Na?_o(e,n)&&(Ne="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Ne="onCompositionStart");Ne&&(Oo&&n.locale!=="ko"&&(Na||Ne!=="onCompositionStart"?Ne==="onCompositionEnd"&&Na&&(be=Eo()):(jn=V,qi="value"in jn?jn.value:jn.textContent,Na=!0)),fe=ni(I,Ne),0<fe.length&&(Ne=new wo(Ne,e,null,n,V),F.push({event:Ne,listeners:fe}),be?Ne.data=be:(be=Io(n),be!==null&&(Ne.data=be)))),(be=Kh?Xh(e,n):Qh(e,n))&&(Ne=ni(I,"onBeforeInput"),0<Ne.length&&(fe=new wo("onBeforeInput","beforeinput",null,n,V),F.push({event:fe,listeners:Ne}),fe.data=be)),Up(F,e,I,n,V)}Sf(F,t)})}function Hs(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ni(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,r=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||r===null||(l=is(e,n),l!=null&&a.unshift(Hs(e,l,r)),l=is(e,t),l!=null&&a.push(Hs(e,l,r))),e.tag===3)return a;e=e.return}return[]}function Gp(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Nf(e,t,n,a,l){for(var r=t._reactName,d=[];n!==null&&n!==a;){var p=n,S=p.alternate,I=p.stateNode;if(p=p.tag,S!==null&&S===a)break;p!==5&&p!==26&&p!==27||I===null||(S=I,l?(I=is(n,r),I!=null&&d.unshift(Hs(n,I,S))):l||(I=is(n,r),I!=null&&d.push(Hs(n,I,S)))),n=n.return}d.length!==0&&e.push({event:t,listeners:d})}var $p=/\r\n?/g,Yp=/\u0000|\uFFFD/g;function Rf(e){return(typeof e=="string"?e:""+e).replace($p,`
9
- `).replace(Yp,"")}function Cf(e,t){return t=Rf(t),Rf(e)===t}function ze(e,t,n,a,l,r){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||xa(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&xa(e,""+a);break;case"className":il(e,"class",a);break;case"tabIndex":il(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":il(e,n,a);break;case"style":Ro(e,a,r);break;case"data":if(t!=="object"){il(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=cl(""+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 r=="function"&&(n==="formAction"?(t!=="input"&&ze(e,t,"name",l.name,l,null),ze(e,t,"formEncType",l.formEncType,l,null),ze(e,t,"formMethod",l.formMethod,l,null),ze(e,t,"formTarget",l.formTarget,l,null)):(ze(e,t,"encType",l.encType,l,null),ze(e,t,"method",l.method,l,null),ze(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=cl(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=nn);break;case"onScroll":a!=null&&Se("scroll",e);break;case"onScrollEnd":a!=null&&Se("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(l.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=cl(""+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":Se("beforetoggle",e),Se("toggle",e),ll(e,"popover",a);break;case"xlinkActuate":tn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":tn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":tn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":tn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":tn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":tn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":tn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":tn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":tn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":ll(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=yh.get(n)||n,ll(e,n,a))}}function jc(e,t,n,a,l,r){switch(n){case"style":Ro(e,a,r);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(u(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(u(60));e.innerHTML=n}}break;case"children":typeof a=="string"?xa(e,a):(typeof a=="number"||typeof a=="bigint")&&xa(e,""+a);break;case"onScroll":a!=null&&Se("scroll",e);break;case"onScrollEnd":a!=null&&Se("scrollend",e);break;case"onClick":a!=null&&(e.onclick=nn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!po.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),r=e[gt]||null,r=r!=null?r[n]:null,typeof r=="function"&&e.removeEventListener(t,r,l),typeof a=="function")){typeof r!="function"&&r!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):ll(e,n,a)}}}function dt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Se("error",e),Se("load",e);var a=!1,l=!1,r;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:ze(e,t,r,d,n,null)}}l&&ze(e,t,"srcSet",n.srcSet,n,null),a&&ze(e,t,"src",n.src,n,null);return;case"input":Se("invalid",e);var p=r=d=l=null,S=null,I=null;for(a in n)if(n.hasOwnProperty(a)){var V=n[a];if(V!=null)switch(a){case"name":l=V;break;case"type":d=V;break;case"checked":S=V;break;case"defaultChecked":I=V;break;case"value":r=V;break;case"defaultValue":p=V;break;case"children":case"dangerouslySetInnerHTML":if(V!=null)throw Error(u(137,t));break;default:ze(e,t,a,V,n,null)}}xo(e,r,p,S,I,d,l,!1);return;case"select":Se("invalid",e),a=d=r=null;for(l in n)if(n.hasOwnProperty(l)&&(p=n[l],p!=null))switch(l){case"value":r=p;break;case"defaultValue":d=p;break;case"multiple":a=p;default:ze(e,t,l,p,n,null)}t=r,n=d,e.multiple=!!a,t!=null?ba(e,!!a,t,!1):n!=null&&ba(e,!!a,n,!0);return;case"textarea":Se("invalid",e),r=l=a=null;for(d in n)if(n.hasOwnProperty(d)&&(p=n[d],p!=null))switch(d){case"value":a=p;break;case"defaultValue":l=p;break;case"children":r=p;break;case"dangerouslySetInnerHTML":if(p!=null)throw Error(u(91));break;default:ze(e,t,d,p,n,null)}jo(e,a,l,r);return;case"option":for(S in n)n.hasOwnProperty(S)&&(a=n[S],a!=null)&&(S==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":ze(e,t,S,a,n,null));return;case"dialog":Se("beforetoggle",e),Se("toggle",e),Se("cancel",e),Se("close",e);break;case"iframe":case"object":Se("load",e);break;case"video":case"audio":for(a=0;a<Us.length;a++)Se(Us[a],e);break;case"image":Se("error",e),Se("load",e);break;case"details":Se("toggle",e);break;case"embed":case"source":case"link":Se("error",e),Se("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(I in n)if(n.hasOwnProperty(I)&&(a=n[I],a!=null))switch(I){case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:ze(e,t,I,a,n,null)}return;default:if(Ii(t)){for(V in n)n.hasOwnProperty(V)&&(a=n[V],a!==void 0&&jc(e,t,V,a,n,void 0));return}}for(p in n)n.hasOwnProperty(p)&&(a=n[p],a!=null&&ze(e,t,p,a,n,null))}function Kp(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 l=null,r=null,d=null,p=null,S=null,I=null,V=null;for($ in n){var F=n[$];if(n.hasOwnProperty($)&&F!=null)switch($){case"checked":break;case"value":break;case"defaultValue":S=F;default:a.hasOwnProperty($)||ze(e,t,$,null,a,F)}}for(var U in a){var $=a[U];if(F=n[U],a.hasOwnProperty(U)&&($!=null||F!=null))switch(U){case"type":r=$;break;case"name":l=$;break;case"checked":I=$;break;case"defaultChecked":V=$;break;case"value":d=$;break;case"defaultValue":p=$;break;case"children":case"dangerouslySetInnerHTML":if($!=null)throw Error(u(137,t));break;default:$!==F&&ze(e,t,U,$,a,F)}}zi(e,d,p,S,I,V,r,l);return;case"select":$=d=p=U=null;for(r in n)if(S=n[r],n.hasOwnProperty(r)&&S!=null)switch(r){case"value":break;case"multiple":$=S;default:a.hasOwnProperty(r)||ze(e,t,r,null,a,S)}for(l in a)if(r=a[l],S=n[l],a.hasOwnProperty(l)&&(r!=null||S!=null))switch(l){case"value":U=r;break;case"defaultValue":p=r;break;case"multiple":d=r;default:r!==S&&ze(e,t,l,r,a,S)}t=p,n=d,a=$,U!=null?ba(e,!!n,U,!1):!!a!=!!n&&(t!=null?ba(e,!!n,t,!0):ba(e,!!n,n?[]:"",!1));return;case"textarea":$=U=null;for(p in n)if(l=n[p],n.hasOwnProperty(p)&&l!=null&&!a.hasOwnProperty(p))switch(p){case"value":break;case"children":break;default:ze(e,t,p,null,a,l)}for(d in a)if(l=a[d],r=n[d],a.hasOwnProperty(d)&&(l!=null||r!=null))switch(d){case"value":U=l;break;case"defaultValue":$=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(u(91));break;default:l!==r&&ze(e,t,d,l,a,r)}So(e,U,$);return;case"option":for(var oe in n)U=n[oe],n.hasOwnProperty(oe)&&U!=null&&!a.hasOwnProperty(oe)&&(oe==="selected"?e.selected=!1:ze(e,t,oe,null,a,U));for(S in a)U=a[S],$=n[S],a.hasOwnProperty(S)&&U!==$&&(U!=null||$!=null)&&(S==="selected"?e.selected=U&&typeof U!="function"&&typeof U!="symbol":ze(e,t,S,U,a,$));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 pe in n)U=n[pe],n.hasOwnProperty(pe)&&U!=null&&!a.hasOwnProperty(pe)&&ze(e,t,pe,null,a,U);for(I in a)if(U=a[I],$=n[I],a.hasOwnProperty(I)&&U!==$&&(U!=null||$!=null))switch(I){case"children":case"dangerouslySetInnerHTML":if(U!=null)throw Error(u(137,t));break;default:ze(e,t,I,U,a,$)}return;default:if(Ii(t)){for(var _e in n)U=n[_e],n.hasOwnProperty(_e)&&U!==void 0&&!a.hasOwnProperty(_e)&&jc(e,t,_e,void 0,a,U);for(V in a)U=a[V],$=n[V],!a.hasOwnProperty(V)||U===$||U===void 0&&$===void 0||jc(e,t,V,U,a,$);return}}for(var k in n)U=n[k],n.hasOwnProperty(k)&&U!=null&&!a.hasOwnProperty(k)&&ze(e,t,k,null,a,U);for(F in a)U=a[F],$=n[F],!a.hasOwnProperty(F)||U===$||U==null&&$==null||ze(e,t,F,U,a,$)}function Tf(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Xp(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],r=l.transferSize,d=l.initiatorType,p=l.duration;if(r&&p&&Tf(d)){for(d=0,p=l.responseEnd,a+=1;a<n.length;a++){var S=n[a],I=S.startTime;if(I>p)break;var V=S.transferSize,F=S.initiatorType;V&&Tf(F)&&(S=S.responseEnd,d+=V*(S<p?1:(p-I)/(S-I)))}if(--a,t+=8*(r+d)/(l.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 Nc=null,Rc=null;function ai(e){return e.nodeType===9?e:e.ownerDocument}function Ef(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 Af(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 Cc(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 Tc=null;function Qp(){var e=window.event;return e&&e.type==="popstate"?e===Tc?!1:(Tc=e,!0):(Tc=null,!1)}var kf=typeof setTimeout=="function"?setTimeout:void 0,Vp=typeof clearTimeout=="function"?clearTimeout:void 0,wf=typeof Promise=="function"?Promise:void 0,Zp=typeof queueMicrotask=="function"?queueMicrotask:typeof wf<"u"?function(e){return wf.resolve(null).then(e).catch(Jp)}:kf;function Jp(e){setTimeout(function(){throw e})}function Hn(e){return e==="head"}function Df(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Wa(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")Bs(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,Bs(n);for(var r=n.firstChild;r;){var d=r.nextSibling,p=r.nodeName;r[ss]||p==="SCRIPT"||p==="STYLE"||p==="LINK"&&r.rel.toLowerCase()==="stylesheet"||n.removeChild(r),r=d}}else n==="body"&&Bs(e.ownerDocument.body);n=l}while(n);Wa(t)}function Of(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 Ec(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":Ec(n),Oi(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Wp(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[ss])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(r=e.getAttribute("rel"),r==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(r!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(r=e.getAttribute("src"),(r!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&r&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var r=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===r)return e}else return e;if(e=$t(e.nextSibling),e===null)break}return null}function Fp(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=$t(e.nextSibling),e===null))return null;return e}function Mf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=$t(e.nextSibling),e===null))return null;return e}function Ac(e){return e.data==="$?"||e.data==="$~"}function kc(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Pp(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 $t(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 wc=null;function zf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return $t(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function _f(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 If(e,t,n){switch(t=ai(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 Bs(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Oi(e)}var Yt=new Map,Lf=new Set;function si(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var bn=M.d;M.d={f:ev,r:tv,D:nv,C:av,L:sv,m:lv,X:rv,S:iv,M:cv};function ev(){var e=bn.f(),t=Zl();return e||t}function tv(e){var t=va(e);t!==null&&t.tag===5&&t.type==="form"?Pu(t):bn.r(e)}var Va=typeof document>"u"?null:document;function Uf(e,t,n){var a=Va;if(a&&typeof t=="string"&&t){var l=It(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),Lf.has(l)||(Lf.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),dt(t,"link",e),st(t),a.head.appendChild(t)))}}function nv(e){bn.D(e),Uf("dns-prefetch",e,null)}function av(e,t){bn.C(e,t),Uf("preconnect",e,t)}function sv(e,t,n){bn.L(e,t,n);var a=Va;if(a&&e&&t){var l='link[rel="preload"][as="'+It(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+It(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+It(n.imageSizes)+'"]')):l+='[href="'+It(e)+'"]';var r=l;switch(t){case"style":r=Za(e);break;case"script":r=Ja(e)}Yt.has(r)||(e=j({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Yt.set(r,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(qs(r))||t==="script"&&a.querySelector(Gs(r))||(t=a.createElement("link"),dt(t,"link",e),st(t),a.head.appendChild(t)))}}function lv(e,t){bn.m(e,t);var n=Va;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+It(a)+'"][href="'+It(e)+'"]',r=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=Ja(e)}if(!Yt.has(r)&&(e=j({rel:"modulepreload",href:e},t),Yt.set(r,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Gs(r)))return}a=n.createElement("link"),dt(a,"link",e),st(a),n.head.appendChild(a)}}}function iv(e,t,n){bn.S(e,t,n);var a=Va;if(a&&e){var l=ga(a).hoistableStyles,r=Za(e);t=t||"default";var d=l.get(r);if(!d){var p={loading:0,preload:null};if(d=a.querySelector(qs(r)))p.loading=5;else{e=j({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Yt.get(r))&&Dc(e,n);var S=d=a.createElement("link");st(S),dt(S,"link",e),S._p=new Promise(function(I,V){S.onload=I,S.onerror=V}),S.addEventListener("load",function(){p.loading|=1}),S.addEventListener("error",function(){p.loading|=2}),p.loading|=4,li(d,t,a)}d={type:"stylesheet",instance:d,count:1,state:p},l.set(r,d)}}}function rv(e,t){bn.X(e,t);var n=Va;if(n&&e){var a=ga(n).hoistableScripts,l=Ja(e),r=a.get(l);r||(r=n.querySelector(Gs(l)),r||(e=j({src:e,async:!0},t),(t=Yt.get(l))&&Oc(e,t),r=n.createElement("script"),st(r),dt(r,"link",e),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},a.set(l,r))}}function cv(e,t){bn.M(e,t);var n=Va;if(n&&e){var a=ga(n).hoistableScripts,l=Ja(e),r=a.get(l);r||(r=n.querySelector(Gs(l)),r||(e=j({src:e,async:!0,type:"module"},t),(t=Yt.get(l))&&Oc(e,t),r=n.createElement("script"),st(r),dt(r,"link",e),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},a.set(l,r))}}function Hf(e,t,n,a){var l=(l=se.current)?si(l):null;if(!l)throw Error(u(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Za(n.href),n=ga(l).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=Za(n.href);var r=ga(l).hoistableStyles,d=r.get(e);if(d||(l=l.ownerDocument||l,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(e,d),(r=l.querySelector(qs(e)))&&!r._p&&(d.instance=r,d.state.loading=5),Yt.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},Yt.set(e,n),r||ov(l,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=Ja(n),n=ga(l).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 Za(e){return'href="'+It(e)+'"'}function qs(e){return'link[rel="stylesheet"]['+e+"]"}function Bf(e){return j({},e,{"data-precedence":e.precedence,precedence:null})}function ov(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}),dt(t,"link",n),st(t),e.head.appendChild(t))}function Ja(e){return'[src="'+It(e)+'"]'}function Gs(e){return"script[async]"+e}function qf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+It(n.href)+'"]');if(a)return t.instance=a,st(a),a;var l=j({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),st(a),dt(a,"style",l),li(a,n.precedence,e),t.instance=a;case"stylesheet":l=Za(n.href);var r=e.querySelector(qs(l));if(r)return t.state.loading|=4,t.instance=r,st(r),r;a=Bf(n),(l=Yt.get(l))&&Dc(a,l),r=(e.ownerDocument||e).createElement("link"),st(r);var d=r;return d._p=new Promise(function(p,S){d.onload=p,d.onerror=S}),dt(r,"link",a),t.state.loading|=4,li(r,n.precedence,e),t.instance=r;case"script":return r=Ja(n.src),(l=e.querySelector(Gs(r)))?(t.instance=l,st(l),l):(a=n,(l=Yt.get(r))&&(a=j({},n),Oc(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),st(l),dt(l,"link",a),e.head.appendChild(l),t.instance=l);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,li(a,n.precedence,e));return t.instance}function li(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,r=l,d=0;d<a.length;d++){var p=a[d];if(p.dataset.precedence===t)r=p;else if(r!==l)break}r?r.parentNode.insertBefore(e,r.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Dc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Oc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var ii=null;function Gf(e,t,n){if(ii===null){var a=new Map,l=ii=new Map;l.set(n,a)}else l=ii,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var r=n[l];if(!(r[ss]||r[rt]||e==="link"&&r.getAttribute("rel")==="stylesheet")&&r.namespaceURI!=="http://www.w3.org/2000/svg"){var d=r.getAttribute(t)||"";d=e+d;var p=a.get(d);p?p.push(r):a.set(d,[r])}}return a}function $f(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function uv(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 Yf(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function dv(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 l=Za(a.href),r=t.querySelector(qs(l));if(r){t=r._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ri.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=r,st(r);return}r=t.ownerDocument||t,a=Bf(a),(l=Yt.get(l))&&Dc(a,l),r=r.createElement("link"),st(r);var d=r;d._p=new Promise(function(p,S){d.onload=p,d.onerror=S}),dt(r,"link",a),n.instance=r}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=ri.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Mc=0;function fv(e,t){return e.stylesheets&&e.count===0&&oi(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&oi(e,e.stylesheets),e.unsuspend){var r=e.unsuspend;e.unsuspend=null,r()}},6e4+t);0<e.imgBytes&&Mc===0&&(Mc=62500*Xp());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&oi(e,e.stylesheets),e.unsuspend)){var r=e.unsuspend;e.unsuspend=null,r()}},(e.imgBytes>Mc?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function ri(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)oi(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ci=null;function oi(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ci=new Map,t.forEach(mv,e),ci=null,ri.call(e))}function mv(e,t){if(!(t.state.loading&4)){var n=ci.get(e);if(n)var a=n.get(null);else{n=new Map,ci.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),r=0;r<l.length;r++){var d=l[r];(d.nodeName==="LINK"||d.getAttribute("media")!=="not all")&&(n.set(d.dataset.precedence,d),a=d)}a&&n.set(null,a)}l=t.instance,d=l.getAttribute("data-precedence"),r=n.get(d)||a,r===a&&n.set(null,l),n.set(d,l),this.count++,a=ri.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),r?r.parentNode.insertBefore(l,r.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var $s={$$typeof:Q,Provider:null,Consumer:null,_currentValue:Z,_currentValue2:Z,_threadCount:0};function hv(e,t,n,a,l,r,d,p,S){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=Ai(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ai(0),this.hiddenUpdates=Ai(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=r,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=S,this.incompleteTransitions=new Map}function Kf(e,t,n,a,l,r,d,p,S,I,V,F){return e=new hv(e,t,n,d,S,I,V,F,p),t=1,r===!0&&(t|=24),r=Tt(3,null,null,t),e.current=r,r.stateNode=e,t=fr(),t.refCount++,e.pooledCache=t,t.refCount++,r.memoizedState={element:a,isDehydrated:n,cache:t},vr(r),e}function Xf(e){return e?(e=Ea,e):Ea}function Qf(e,t,n,a,l,r){l=Xf(l),a.context===null?a.context=l:a.pendingContext=l,a=An(t),a.payload={element:n},r=r===void 0?null:r,r!==null&&(a.callback=r),n=kn(e,a,t),n!==null&&(Nt(n,e,t),Ss(n,e,t))}function Vf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function zc(e,t){Vf(e,t),(e=e.alternate)&&Vf(e,t)}function Zf(e){if(e.tag===13||e.tag===31){var t=Pn(e,67108864);t!==null&&Nt(t,e,67108864),zc(e,67108864)}}function Jf(e){if(e.tag===13||e.tag===31){var t=Dt();t=ki(t);var n=Pn(e,t);n!==null&&Nt(n,e,t),zc(e,t)}}var ui=!0;function pv(e,t,n,a){var l=N.T;N.T=null;var r=M.p;try{M.p=2,_c(e,t,n,a)}finally{M.p=r,N.T=l}}function vv(e,t,n,a){var l=N.T;N.T=null;var r=M.p;try{M.p=8,_c(e,t,n,a)}finally{M.p=r,N.T=l}}function _c(e,t,n,a){if(ui){var l=Ic(a);if(l===null)Sc(e,t,a,di,n),Ff(e,a);else if(yv(l,e,t,n,a))a.stopPropagation();else if(Ff(e,a),t&4&&-1<gv.indexOf(e)){for(;l!==null;){var r=va(l);if(r!==null)switch(r.tag){case 3:if(r=r.stateNode,r.current.memoizedState.isDehydrated){var d=Vn(r.pendingLanes);if(d!==0){var p=r;for(p.pendingLanes|=2,p.entangledLanes|=2;d;){var S=1<<31-ft(d);p.entanglements[1]|=S,d&=~S}Pt(r),(ke&6)===0&&(Ql=tt()+500,Ls(0))}}break;case 31:case 13:p=Pn(r,2),p!==null&&Nt(p,r,2),Zl(),zc(r,2)}if(r=Ic(a),r===null&&Sc(e,t,a,di,n),r===l)break;l=r}l!==null&&a.stopPropagation()}else Sc(e,t,a,null,n)}}function Ic(e){return e=Ui(e),Lc(e)}var di=null;function Lc(e){if(di=null,e=pa(e),e!==null){var t=m(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=h(t),e!==null)return e;e=null}else if(n===31){if(e=g(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 di=e,null}function Wf(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(Ps()){case Qn:return 2;case el:return 8;case ma:case Ae:return 32;case nt:return 268435456;default:return 32}default:return 32}}var Uc=!1,Bn=null,qn=null,Gn=null,Ys=new Map,Ks=new Map,$n=[],gv="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 Ff(e,t){switch(e){case"focusin":case"focusout":Bn=null;break;case"dragenter":case"dragleave":qn=null;break;case"mouseover":case"mouseout":Gn=null;break;case"pointerover":case"pointerout":Ys.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ks.delete(t.pointerId)}}function Xs(e,t,n,a,l,r){return e===null||e.nativeEvent!==r?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:r,targetContainers:[l]},t!==null&&(t=va(t),t!==null&&Zf(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function yv(e,t,n,a,l){switch(t){case"focusin":return Bn=Xs(Bn,e,t,n,a,l),!0;case"dragenter":return qn=Xs(qn,e,t,n,a,l),!0;case"mouseover":return Gn=Xs(Gn,e,t,n,a,l),!0;case"pointerover":var r=l.pointerId;return Ys.set(r,Xs(Ys.get(r)||null,e,t,n,a,l)),!0;case"gotpointercapture":return r=l.pointerId,Ks.set(r,Xs(Ks.get(r)||null,e,t,n,a,l)),!0}return!1}function Pf(e){var t=pa(e.target);if(t!==null){var n=m(t);if(n!==null){if(t=n.tag,t===13){if(t=h(n),t!==null){e.blockedOn=t,fo(e.priority,function(){Jf(n)});return}}else if(t===31){if(t=g(n),t!==null){e.blockedOn=t,fo(e.priority,function(){Jf(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 fi(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Ic(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Li=a,n.target.dispatchEvent(a),Li=null}else return t=va(n),t!==null&&Zf(t),e.blockedOn=n,!1;t.shift()}return!0}function em(e,t,n){fi(e)&&n.delete(t)}function bv(){Uc=!1,Bn!==null&&fi(Bn)&&(Bn=null),qn!==null&&fi(qn)&&(qn=null),Gn!==null&&fi(Gn)&&(Gn=null),Ys.forEach(em),Ks.forEach(em)}function mi(e,t){e.blockedOn===t&&(e.blockedOn=null,Uc||(Uc=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,bv)))}var hi=null;function tm(e){hi!==e&&(hi=e,i.unstable_scheduleCallback(i.unstable_NormalPriority,function(){hi===e&&(hi=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(Lc(a||n)===null)continue;break}var r=va(n);r!==null&&(e.splice(t,3),t-=3,Ir(r,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Wa(e){function t(S){return mi(S,e)}Bn!==null&&mi(Bn,e),qn!==null&&mi(qn,e),Gn!==null&&mi(Gn,e),Ys.forEach(t),Ks.forEach(t);for(var n=0;n<$n.length;n++){var a=$n[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<$n.length&&(n=$n[0],n.blockedOn===null);)Pf(n),n.blockedOn===null&&$n.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],r=n[a+1],d=l[gt]||null;if(typeof r=="function")d||tm(n);else if(d){var p=null;if(r&&r.hasAttribute("formAction")){if(l=r,d=r[gt]||null)p=d.formAction;else if(Lc(l)!==null)continue}else p=d.action;typeof p=="function"?n[a+1]=p:(n.splice(a,3),a-=3),tm(n)}}}function nm(){function e(r){r.canIntercept&&r.info==="react-transition"&&r.intercept({handler:function(){return new Promise(function(d){return l=d})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var r=navigation.currentEntry;r&&r.url!=null&&navigation.navigate(r.url,{state:r.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=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),l!==null&&(l(),l=null)}}}function Hc(e){this._internalRoot=e}pi.prototype.render=Hc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));var n=t.current,a=Dt();Qf(n,a,e,t,null,null)},pi.prototype.unmount=Hc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Qf(e.current,2,null,e,null,null),Zl(),t[ha]=null}};function pi(e){this._internalRoot=e}pi.prototype.unstable_scheduleHydration=function(e){if(e){var t=uo();e={blockedOn:null,target:e,priority:t};for(var n=0;n<$n.length&&t!==0&&t<$n[n].priority;n++);$n.splice(n,0,e),n===0&&Pf(e)}};var am=o.version;if(am!=="19.2.8")throw Error(u(527,am,"19.2.8"));M.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=y(t),e=e!==null?E(e):null,e=e===null?null:e.stateNode,e};var xv={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:N,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var vi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vi.isDisabled&&vi.supportsFiber)try{zt=vi.inject(xv),ht=vi}catch{}}return Vs.createRoot=function(e,t){if(!f(e))throw Error(u(299));var n=!1,a="",l=od,r=ud,d=dd;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(r=t.onCaughtError),t.onRecoverableError!==void 0&&(d=t.onRecoverableError)),t=Kf(e,1,!1,null,null,n,a,null,l,r,d,nm),e[ha]=t.current,xc(e),new Hc(t)},Vs.hydrateRoot=function(e,t,n){if(!f(e))throw Error(u(299));var a=!1,l="",r=od,d=ud,p=dd,S=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(r=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(p=n.onRecoverableError),n.formState!==void 0&&(S=n.formState)),t=Kf(e,1,!0,t,n??null,a,l,S,r,d,p,nm),t.context=Xf(null),n=t.current,a=Dt(),a=ki(a),l=An(a),l.callback=null,kn(n,l,a),n=a,t.current.lanes=n,as(t,n),Pt(t),e[ha]=t.current,xc(e),new pi(t)},Vs.version="19.2.8",Vs}var mm;function wv(){if(mm)return Gc.exports;mm=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(o){console.error(o)}}return i(),Gc.exports=kv(),Gc.exports}var Dv=wv();function fa(i){if(i==null)return null;if(typeof i=="string")return i.trim()||null;if(typeof i=="number"||typeof i=="boolean")return String(i);if(typeof i=="object"){const o=i;if(typeof o.text=="string"&&o.text.trim())return o.text.trim();if(typeof o.errorMessage=="string"&&o.errorMessage.trim())return o.errorMessage.trim();if(Array.isArray(o.content)){const c=o.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(c.length)return c.join(`
10
- `).slice(0,240)}if(typeof o.role=="string")return`${o.role} 消息`}return null}function Ov(i){const o=fa(i.at)??fa(i.timestamp)??fa(i.recordedAt)??"",c=fa(i.errorMessage)??fa(i.label)??fa(i.type)??fa(i.message)??"运行事件";return o?`${o} · ${c}`:c}function Ws(i){return String(i.nodeId??i.id??"").trim()}function Xc(i){const o=Ws(i);return String(i.label??i.name??(o||"未命名节点"))}function hm(i,o){if(i.length===0)return;const c=o?.trim();if(c){const m=i.find(h=>Ws(h)===c);if(m)return m}const u=i.find(m=>{const h=String(m.status??"").toLowerCase();return h.includes("fail")||h.includes("error")||h==="blocked"});return u||(i.find(m=>{const h=String(m.status??"").toLowerCase();return h==="running"||h==="in_progress"||h==="active"})??i[0])}function Mv({dagRunId:i,nodeId:o,onClose:c,onOpenFull:u}){const f=v.useRef(null),[m,h]=v.useState(null),[g,b]=v.useState([]),[y,E]=v.useState(null),[j,O]=v.useState(!0);v.useEffect(()=>{f.current?.focus();const le=_=>{_.key==="Escape"&&c()};return document.addEventListener("keydown",le),document.title=`检视 · DAG ${i} · Loop Operator`,()=>document.removeEventListener("keydown",le)},[i,c]),v.useEffect(()=>{const le=new AbortController;return O(!0),E(null),b([]),(async()=>{try{const _=await fetch(`/api/dag-runs/${encodeURIComponent(i)}`,{signal:le.signal,credentials:"same-origin"});if(!_.ok)throw new Error(`DAG 查询失败(HTTP ${_.status})`);const Q=await _.json();if(le.signal.aborted)return;h(Q);const Y=Array.isArray(Q.nodes)?Q.nodes:[],X=hm(Y,o),A=X?Ws(X):o?.trim();if(A){const R=await fetch(`/api/dag-runs/${encodeURIComponent(i)}/nodes/${encodeURIComponent(A)}/session-events`,{signal:le.signal,credentials:"same-origin"});if(R.ok){const W=await R.json();le.signal.aborted||b((W.events??[]).slice(-20))}}}catch(_){le.signal.aborted||E(_ instanceof Error?_.message:String(_))}finally{le.signal.aborted||O(!1)}})(),()=>le.abort()},[i,o]);const T=v.useMemo(()=>Array.isArray(m?.nodes)?m.nodes:[],[m]),H=hm(T,o),q=H?Ws(H):"",ae=String(m?.effectiveStatus??m?.status??(j?"加载中…":"未知"));return s.jsxs("aside",{className:"inspect-split-panel","aria-label":"DAG 紧凑检视",children:[s.jsxs("div",{className:"inspect-split-header",children:[s.jsxs("div",{children:[s.jsx("p",{className:"inspect-split-kicker",children:"Inspect"}),s.jsx("h2",{children:"检视 DAG"})]}),s.jsx("button",{ref:f,type:"button","aria-label":"关闭检视面板",onClick:c,children:"关闭"})]}),s.jsx("p",{className:"inspect-split-id",children:s.jsx("code",{children:i})}),y?s.jsx("p",{className:"error",children:y}):null,j&&!m?s.jsx("p",{className:"muted",children:"正在加载 DAG…"}):null,s.jsxs("dl",{className:"inspect-split-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:ae})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"当前节点"}),s.jsx("dd",{children:H?Xc(H):"暂无节点"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"节点状态"}),s.jsx("dd",{children:H?.status??"—"})]}),H?.errorPreview?s.jsxs("div",{children:[s.jsx("dt",{children:"错误摘要"}),s.jsx("dd",{children:H.errorPreview})]}):null]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["节点(",T.length,")"]}),T.length?s.jsx("ul",{className:"inspect-split-nodes",children:T.slice(0,24).map(le=>{const _=Ws(le)||Xc(le),Q=_===q;return s.jsxs("li",{"data-active":Q?"true":void 0,className:Q?"is-active":void 0,children:[s.jsx("span",{children:Xc(le)}),s.jsx("code",{children:le.status??"—"})]},_)})}):s.jsx("p",{className:"muted",children:j?"加载节点中…":"该运行暂无节点。"})]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["最近事件",q?` · ${q}`:""]}),g.length?s.jsx("ul",{className:"inspect-split-events",children:g.map((le,_)=>s.jsx("li",{children:Ov(le)},`${le.at??_}-${_}`))}):s.jsx("p",{className:"muted",children:j?"加载事件中…":"节点事件将在可用时显示。"})]}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:u,children:"全屏观测"}),s.jsx("p",{className:"muted",children:"全屏后点顶栏「返回操作台」可回来。"})]})}function zv(i){const{board:o,busy:c}=i;return s.jsxs("details",{className:"night-advanced","data-testid":"night-advanced",open:o.advancedOpen,onToggle:u=>o.setAdvancedOpen(u.target.open),children:[s.jsx("summary",{children:"高级 / Inspect"}),s.jsxs("p",{className:"muted",children:["只读深链:"," ",s.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-morning-btn",onClick:()=>{o.onMorningReport()},children:"早晨 night 报告"})}),o.morningPreview?s.jsx("pre",{className:"cmd","data-testid":"night-morning-preview",children:o.morningPreview}):null]})}function gi(i){return!i||typeof i!="object"||Array.isArray(i)?null:i}function Je(i,o){const c=i[o];return typeof c=="string"&&c.trim()?c.trim():void 0}function pm(i,o){const c=i[o];if(!Array.isArray(c))return;const u=c.filter(f=>typeof f=="string");return u.length>0?u:void 0}function _v(i){const o=gi(i);if(!o)return null;const c=gi(o.result),u=[gi(o.reviewPacket),c?gi(c.reviewPacket):null,c,o].filter(Boolean);for(const f of u){const m=Je(f,"scheduleId")??Je(f,"id"),h=Je(f,"gateToken")??Je(f,"approveGate")??Je(f,"writeSetGateToken");if(!(!m||!h))return{scheduleId:m,gateToken:h,...Je(f,"featureId")?{featureId:Je(f,"featureId")}:{},...Je(f,"taskId")?{taskId:Je(f,"taskId")}:{},...pm(f,"writeSet")?{writeSet:pm(f,"writeSet")}:{},...Je(f,"worktreePath")?{worktreePath:Je(f,"worktreePath")}:{},...Je(f,"branch")?{branch:Je(f,"branch")}:{},...Je(f,"baseBranch")?{baseBranch:Je(f,"baseBranch")}:{},...Je(f,"baseCommit")?{baseCommit:Je(f,"baseCommit")}:{},...Je(f,"executeAtUtc")?{executeAtUtc:Je(f,"executeAtUtc")}:{},...Je(f,"taskCard")?{taskCard:Je(f,"taskCard")}:{}}}return null}function vm(i){return`docs/features/${i.trim().replace(/^\/+|\/+$/g,"")}`}function Iv(i){const o=i.trim(),c=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})/.exec(o);return c?`${c[1]} ${c[2]}`:null}function gm(){const i=new Date;i.setHours(20,0,0,0);const o=c=>String(c).padStart(2,"0");return`${i.getFullYear()}-${o(i.getMonth()+1)}-${o(i.getDate())}T${o(i.getHours())}:${o(i.getMinutes())}`}function km(i){if(!i)return"—";const o=Date.parse(i);if(Number.isNaN(o))return i;try{return new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"short",timeZone:"Asia/Shanghai"}).format(new Date(o))}catch{return i}}function Lv(i){return i.mergeState==="pending-harvest"||/\bscheduler harvest\b/i.test(i.nextAction)}function Uv(i){return i.status==="failed"||i.status==="human_required"||i.status==="cancelled"||/\bscheduler discard\b/i.test(i.nextAction)}function xi(i){return i==="failed"||i==="human_required"}function Hv(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function wm(i){return{submitted:"已提交",validating:"校验中",validated:"待预约确认",scheduled:"已预约",waiting:"等待触发",dispatching:"派发中",running:"执行中",succeeded:"成功",failed:"失败",human_required:"需人工",cancelled:"已取消",rejected:"已拒绝",cancel_requested:"取消中"}[i]??i}function Bv(i){const{target:o,reason:c,onReasonChange:u,force:f,onForceChange:m,busy:h}=i;return s.jsxs("div",{className:"night-discard-card","data-testid":"night-discard-card",children:[s.jsx("h3",{children:"确认 Discard"}),s.jsxs("p",{className:"muted",children:[o.featureId,"/",o.taskId,"(",wm(o.status),")"]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"原因"}),s.jsx("input",{"data-testid":"night-discard-reason",value:c,disabled:h,placeholder:"human discard reason",onChange:g=>u(g.target.value)})]}),xi(o.status)?s.jsxs("label",{className:"field checkbox-field",children:[s.jsx("input",{type:"checkbox","data-testid":"night-discard-force",checked:f,disabled:h,onChange:g=>m(g.target.checked)}),s.jsx("span",{className:"muted",children:"强制 Discard(failed / human_required)"})]}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h||xi(o.status)&&!f,"data-testid":"night-discard-confirm",onClick:i.onConfirm,children:"确认 Discard"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:h,onClick:i.onCancel,children:"返回"})]})]})}function qv(i){const{board:o}=i,{doctor:c,list:u,clockHint:f,doctorIssues:m,auxTicker:h}=o;return s.jsxs("div",{className:"night-health","data-testid":"night-health-bar",children:[s.jsxs("div",{className:"night-health-main",children:[s.jsx("span",{className:`night-health-pill${c?.ok===!1?" is-bad":""}`,children:c?.ok===!1?"Scheduler 异常":"Scheduler 健康"}),s.jsxs("span",{className:"muted",children:["计划 ",c?.scheduleCount??u?.summary.total??"—"," · 活动"," ",c?.activeCount??u?.summary.active??"—"]})]}),f?s.jsxs("p",{className:"muted night-health-hint","data-testid":"night-clock-hint",children:["时钟:",f.message,"(安装/启停请用 CLI:",s.jsx("code",{children:"agent-worker scheduler clock status --repo ."}),")"]}):s.jsxs("p",{className:"muted night-health-hint",children:["到点执行依赖本机 clock / tick,不在此面板安装。详见"," ",s.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),s.jsxs("div",{className:"night-aux-ticker","data-testid":"night-aux-ticker",children:[s.jsxs("p",{className:"night-aux-ticker-label",children:["开着 Console 时辅助 tick(每 ",h?.intervalSec??60,"s)"]}),s.jsx("p",{className:"muted night-health-hint","data-testid":"night-aux-ticker-disclaimer",children:h?.disclaimer??"仅在本 Console 进程开着时有效;过夜无人值守仍需 OS clock。"}),h?.lastOutcome?s.jsxs("p",{className:"muted","data-testid":"night-aux-ticker-last",children:["上次:",h.lastOutcome,h.running?"(进行中)":"",h.lastSummary?` · ${h.lastSummary}`:"",h.lastError?` · ${h.lastError}`:""]}):null]}),m.length>0?s.jsx("ul",{className:"night-doctor-list","data-testid":"night-doctor-findings",children:m.slice(0,4).map(g=>s.jsxs("li",{children:[s.jsx("strong",{children:g.severity})," ",g.message]},`${g.code}-${g.scheduleId??""}-${g.message}`))}):null]})}function Gv(i){const{board:o,busy:c,onHarvest:u,onOpenDiscard:f}=i,{list:m}=o;return s.jsxs(s.Fragment,{children:[m?s.jsxs("div",{className:"night-kpi","data-testid":"night-kpi",children:[s.jsxs("span",{children:["合计 ",m.summary.total]}),s.jsxs("span",{children:["活动 ",m.summary.active]}),s.jsxs("span",{children:["待收成 ",m.summary.pendingHarvest]}),s.jsxs("span",{children:["需人工 ",m.summary.humanRequired]}),s.jsxs("span",{children:["失败 ",m.summary.failed]})]}):null,s.jsxs("div",{className:"night-board","data-testid":"night-board",children:[s.jsx("h3",{children:"计划列表"}),!m||m.schedules.length===0?s.jsxs("div",{className:"empty-state","data-testid":"night-board-empty",children:[s.jsx("p",{className:"empty-title",children:"暂无夜间计划"}),s.jsx("p",{className:"muted",children:"用下方向导预约第一个任务。"})]}):s.jsx("ul",{className:"night-schedule-list",children:m.schedules.map(h=>s.jsxs("li",{className:"night-schedule-row","data-testid":"night-schedule-row","data-status":h.status,children:[s.jsxs("div",{className:"night-schedule-head",children:[s.jsxs("strong",{children:[h.featureId,"/",h.taskId]}),s.jsx("span",{className:"night-status-chip",children:wm(h.status)})]}),s.jsxs("p",{className:"muted",children:["执行 ",km(h.executeAtUtc),h.mergeState?` · merge ${h.mergeState}`:"",h.taskCard?` · ${h.taskCard}`:""]}),h.waitingReason?s.jsxs("p",{className:"muted",children:["等待原因:",h.waitingReason]}):null,s.jsxs("p",{className:"muted night-next-action",children:["下一步:",h.nextAction]}),s.jsxs("div",{className:"cta-row",children:[Lv(h)?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c,"data-testid":"night-row-harvest",onClick:()=>u(h),children:"Harvest"}):null,Uv(h)?s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-row-discard",onClick:()=>f(h),children:"Discard"}):null,s.jsx("a",{className:"external-link",href:`/inspect/#/night/${encodeURIComponent(h.scheduleId)}`,children:"Inspect"})]})]},h.scheduleId))})]})]})}function $v(i){const{wizard:o,busy:c}=i;return s.jsxs("div",{className:"night-wizard","data-testid":"night-wizard",children:[s.jsx("h3",{children:"预约夜间任务"}),o.phase==="pick"?s.jsxs(s.Fragment,{children:[o.selectableTasks.length===0?s.jsxs("div",{className:"empty-state","data-testid":"night-task-empty",children:[s.jsx("p",{className:"empty-title",children:"没有可选任务"}),s.jsx("p",{className:"muted",children:"请先在 Feature Packet / Task Pool 中创建任务,再回到此处刷新。"})]}):s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Feature / Task"}),s.jsxs("select",{"data-testid":"night-task-select",value:o.selectedKey,disabled:c,onChange:u=>o.setSelectedKey(u.target.value),children:[s.jsx("option",{value:"",children:"选择任务…"}),o.selectableTasks.map(u=>{const f=`${u.featureId}::${u.taskId}`;return s.jsxs("option",{value:f,children:[u.featureId,"/",u.taskId,u.status?` · ${u.status}`:""]},f)})]})]}),o.derivedFeatureDir?s.jsxs("p",{className:"muted","data-testid":"night-feature-dir",children:["Feature 目录:",s.jsx("code",{children:o.derivedFeatureDir})]}):null,s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"本地执行时间"}),s.jsx("input",{type:"datetime-local","data-testid":"night-at",value:o.nightAt,disabled:c,onChange:u=>o.setNightAt(u.target.value)})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"任务卡片(可选)"}),s.jsx("input",{"data-testid":"night-task-card",value:o.taskCard,disabled:c,placeholder:"UCP-LOOP#11",onChange:u=>o.setTaskCard(u.target.value)})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c||!o.selectedKey||!o.nightAt,"data-testid":"night-prepare-btn",onClick:()=>{o.onPrepare()},children:"准备并审阅"})})]}):s.jsxs("div",{className:"night-review-card","data-testid":"night-review-card",children:[s.jsx("p",{className:"muted",children:"请确认 writeSet 与执行环境后预约。Token 已隐藏。"}),s.jsxs("dl",{className:"kv",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"Schedule"}),s.jsx("dd",{children:s.jsx("code",{children:o.review?.scheduleId})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务"}),s.jsxs("dd",{children:[o.review?.featureId,"/",o.review?.taskId]})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"执行时间 (UTC)"}),s.jsx("dd",{children:km(o.review?.executeAtUtc)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Worktree"}),s.jsx("dd",{children:s.jsx("code",{children:o.review?.worktreePath??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"分支"}),s.jsx("dd",{children:s.jsx("code",{children:o.review?.branch??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Base"}),s.jsx("dd",{children:s.jsxs("code",{children:[o.review?.baseBranch??"—","@",(o.review?.baseCommit??"").slice(0,12)||"—"]})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"WriteSet"}),s.jsx("dd",{children:o.review?.writeSet&&o.review.writeSet.length>0?s.jsx("ul",{className:"night-writeset",children:o.review.writeSet.map(u=>s.jsx("li",{children:s.jsx("code",{children:u})},u))}):s.jsx("span",{className:"muted",children:"(未返回显式 writeSet)"})})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c||!o.review,"data-testid":"night-confirm-add-btn",onClick:()=>{o.onConfirmAdd()},children:"确认预约"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-review-back-btn",onClick:o.onCancelWizard,children:"返回修改"})]})]})]})}function Yv(i){const{setOpError:o}=i,[c,u]=v.useState(null),[f,m]=v.useState(null),[h,g]=v.useState([]),[b,y]=v.useState(null),[E,j]=v.useState(!1),[O,T]=v.useState(!1),[H,q]=v.useState(null),[ae,le]=v.useState(null),_=v.useCallback(async()=>{j(!0),y(null);try{const[A,R,W,ie]=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(!A.ok)throw new Error(`加载计划列表失败(HTTP ${A.status})`);const K=await A.json();if(u(K),R.ok?m(await R.json()):m(null),W.ok){const L=await W.json();g(Array.isArray(L)?L:[])}else g([]);if(ie.ok){const L=await ie.json();L.ticker&&le(L.ticker)}}catch(A){y(A instanceof Error?A.message:String(A))}finally{j(!1)}},[]);v.useEffect(()=>{_()},[_]);const Q=v.useCallback(async()=>{try{const A=await fetch("/api/night-jobs/morning",{credentials:"same-origin"});if(!A.ok){o(`早晨报告加载失败(HTTP ${A.status})`);return}const R=await A.json();q(JSON.stringify(R,null,2).slice(0,4e3)),T(!0)}catch(A){o(A instanceof Error?A.message:String(A))}},[o]),Y=(f?.findings??[]).filter(A=>A.severity==="error"||A.severity==="warning"),X=(f?.findings??[]).find(A=>/clock/i.test(A.code)||/clock/i.test(A.message));return{list:c,doctor:f,tasks:h,loadError:b,loadingBoard:E,advancedOpen:O,setAdvancedOpen:T,morningPreview:H,auxTicker:ae,refreshBoard:_,onMorningReport:Q,doctorIssues:Y,clockHint:X}}function Kv(i){const{board:o,runAction:c,isActionSuccess:u,setOpError:f}=i,{tasks:m,refreshBoard:h}=o,[g,b]=v.useState("pick"),[y,E]=v.useState(""),[j,O]=v.useState(gm),[T,H]=v.useState(""),[q,ae]=v.useState(null),[le,_]=v.useState(""),[Q,Y]=v.useState(null),[X,A]=v.useState(!1),R=v.useMemo(()=>{const M=m.filter(Z=>typeof Z.featureId=="string"&&Z.featureId.trim()&&Z.taskId);return M.sort((Z,ue)=>{const ce=Z.featureId??"",x=ue.featureId??"";return ce!==x?ce.localeCompare(x):Z.taskId.localeCompare(ue.taskId)}),M},[m]),W=v.useMemo(()=>y?R.find(M=>`${M.featureId}::${M.taskId}`===y)??null:null,[R,y]),ie=W?.featureId?vm(W.featureId):"",K=v.useCallback(async(M,Z,ue)=>{const ce=await c("prepareMutationGate",{action:M,actionParams:Z});if(!u(ce))return;const x=ce?.result??ce,w=x.receiptId?x:x.result??x;if(!w.receiptId||!w.humanGateToken){f("prepareMutationGate 未返回可消费的 Human Gate receipt");return}return c(M,{...Z,confirmationId:w.receiptId,humanGateToken:w.humanGateToken},{clientRequestId:Hv(ue)})},[u,c,f]),L=v.useCallback(async()=>{if(!W?.featureId){f("请先点选 Feature / Task");return}const M=Iv(j);if(!M){f("执行时间格式无效,请使用日期时间选择器");return}const Z={featureDir:vm(W.featureId),taskId:W.taskId,at:M,tz:"Asia/Shanghai",...T.trim()?{taskCard:T.trim()}:{}},ue=await K("workerAdmissionPrepare",Z,"night-prepare");if(!u(ue))return;const ce=_v(ue?.result??ue);if(!ce){f("准备成功但未解析到 scheduleId / gateToken。请刷新后重试,或查看 Inspect。");return}ae(ce),b("review")},[u,j,K,W,f,T]),G=v.useCallback(async()=>{if(!q)return;const M=await K("workerSchedulerAdd",{scheduleId:q.scheduleId,approveGate:q.gateToken},"night-add");u(M)&&(ae(null),b("pick"),E(""),H(""),O(gm()),await h())},[u,h,q,K]),ee=v.useCallback(()=>{b("pick"),ae(null)},[]),D=v.useCallback(async M=>{const Z=await K("workerSchedulerHarvest",{scheduleId:M.scheduleId},"night-harvest");u(Z)&&await h()},[u,h,K]),te=v.useCallback(async()=>{if(!Q)return;const M=le.trim()||"discard from console night workbench",Z=xi(Q.status),ue=await K("workerSchedulerDiscard",{scheduleId:Q.scheduleId,reason:M,...Z||X?{force:!0}:{}},"night-discard");u(ue)&&(Y(null),_(""),A(!1),await h())},[le,Q,X,u,h,K]),N=v.useCallback(M=>{Y(M),A(xi(M.status)),_("")},[]);return{phase:g,selectedKey:y,setSelectedKey:E,nightAt:j,setNightAt:O,taskCard:T,setTaskCard:H,review:q,discardReason:le,setDiscardReason:_,discardTarget:Q,setDiscardTarget:Y,forceDiscard:X,setForceDiscard:A,selectableTasks:R,derivedFeatureDir:ie,onPrepare:L,onConfirmAdd:G,onCancelWizard:ee,onHarvest:D,onDiscard:te,openDiscard:N}}function Xv({busy:i,runAction:o,isActionSuccess:c,setOpError:u}){const f=Yv({setOpError:u}),m=Kv({board:f,runAction:o,isActionSuccess:c,setOpError:u});return s.jsxs("section",{className:"panel night-workbench","aria-labelledby":"night-title","data-testid":"night-jobs-panel",children:[s.jsx("h2",{id:"night-title",children:"夜间任务"}),s.jsx("p",{className:"panel-lead",children:"白天点选任务并预约;列表查看状态;早晨在行内收成或丢弃。写操作仍经 Human Gate,列表复用 Inspect 投影。"}),s.jsx(qv,{board:f,busy:i}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:i||f.loadingBoard,"data-testid":"night-refresh-btn",onClick:()=>{f.refreshBoard()},children:"刷新看板"})}),f.loadError?s.jsx("p",{className:"error","data-testid":"night-load-error",children:f.loadError}):null,s.jsx(Gv,{board:f,busy:i,onHarvest:h=>{m.onHarvest(h)},onOpenDiscard:m.openDiscard}),m.discardTarget?s.jsx(Bv,{target:m.discardTarget,reason:m.discardReason,onReasonChange:m.setDiscardReason,force:m.forceDiscard,onForceChange:m.setForceDiscard,busy:i,onConfirm:()=>{m.onDiscard()},onCancel:()=>m.setDiscardTarget(null)}):null,s.jsx($v,{wizard:m,busy:i}),s.jsx(zv,{board:f,busy:i})]})}const Qv=["command","path","file_path","filePath","pattern","query","glob","url"],Vv=120,Zv=800;function ym(i){if(!(!i||typeof i!="object"||Array.isArray(i)))return i}function Jv(i){if(i!=null){if(typeof i=="string"){const o=i.trim();if(!o)return;try{return ym(JSON.parse(o))}catch{return}}return ym(i)}}function Wv(i,o){const c=Vv,u=Jv(i);if(!u){if(typeof i=="string"){const g=i.replace(/\s+/g," ").trim();return!g||g==="{}"?"":g.length>c?`${g.slice(0,c)}…`:g}return""}for(const g of Qv){const b=u[g];if(typeof b=="string"&&b.trim()){const y=b.replace(/\s+/g," ").trim();return y.length>c?`${y.slice(0,c)}…`:y}}const f=Object.keys(u);if(f.length===0)return"";const m=u[f[0]],h=String(m??"").replace(/\s+/g," ").trim();return h?h.length>c?`${h.slice(0,c)}…`:h:""}function Fv(i){if(i==null)return"";try{return typeof i=="string"?i:JSON.stringify(i,null,2)}catch{return String(i)}}function Pv(i,o){if(i===void 0)return{text:"",truncated:!1};const c=o?.maxLen??Zv;return i.length<=c?{text:i,truncated:!1}:{text:`${i.slice(0,c)}…`,truncated:!0}}function eg(i,o){if(o===void 0||!Number.isFinite(i)||!Number.isFinite(o))return;const c=Math.round((o-i)/1e3);return c>0?c:void 0}function Ot(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Fs(i){return`${i}-${Math.random().toString(36).slice(2,10)}`}function Qc(i,o){return new Promise((c,u)=>{if(o?.aborted){u(new DOMException("Aborted","AbortError"));return}const f=setTimeout(()=>{o?.removeEventListener("abort",m),c()},i),m=()=>{clearTimeout(f),u(new DOMException("Aborted","AbortError"))};o?.addEventListener("abort",m)})}function Dm(i){return new Date(i).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Vc(i){const o=new Date(i),c=new Date;return o.getFullYear()===c.getFullYear()&&o.getMonth()===c.getMonth()&&o.getDate()===c.getDate()?"今天":o.toLocaleDateString([],{month:"long",day:"numeric"})}function bm(i){switch(i){case"mutation":return"变更";case"long-running":return"长任务";case"explore":return"探查";default:return"只读"}}function tg(i,o){return i?i.taskId===o.taskId&&i.updatedAt===o.updatedAt&&i.lastEventId===o.lastEventId&&i.operations.length===o.operations.length:!1}const Om={status:"idle",snapshot:null,error:null,reloading:!1,reloadError:null,mutationBusy:!1,mutationToken:null};function Mm(i){if(!i||typeof i!="object")return{message:"runtime snapshot request failed"};const o=i,c=o.error;if(c&&typeof c=="object"){const u=c;return{...typeof u.code=="string"&&u.code?{code:u.code}:{},...typeof o.status=="number"?{status:o.status}:{},message:typeof u.message=="string"&&u.message?u.message:"runtime snapshot request failed"}}return{...typeof o.status=="number"?{status:o.status}:{},message:typeof o=="object"&&"message"in o&&typeof o.message=="string"&&o.message?o.message:"runtime snapshot request failed"}}function ng(i,o){switch(o.type){case"load-start":return{...i,sessionId:o.sessionId,status:"loading",error:null};case"load-success":return i.snapshot&&i.sessionId===o.sessionId&&o.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:o.sessionId,status:"ready",snapshot:o.snapshot,error:null,reloadError:null,reloading:!1};case"load-failure":return{...i,sessionId:o.sessionId,status:"error",error:o.error,snapshot:null};case"reload-start":return i.reloading?i:{...i,reloading:!0,reloadError:null,...i.status==="error"?{error:null}:{}};case"reload-success":return{...i,status:"ready",snapshot:o.snapshot,reloading:!1,reloadError:null,error:null,sessionId:o.snapshot.sessionId||i.sessionId};case"reload-failure":return{...i,reloading:!1,reloadError:o.error};case"mutation-start":return{...i,mutationBusy:!0,mutationToken:o.token};case"mutation-adopt":return i.mutationToken!==o.token||i.sessionId!==void 0&&i.sessionId!==o.sessionId||i.snapshot&&o.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:o.sessionId,status:"ready",snapshot:o.snapshot,error:null,reloadError:null,reloading:!1};case"mutation-settle":return i.mutationToken!==o.token?i:{...i,mutationBusy:!1,mutationToken:null};case"mutation-reset":return{...i,mutationBusy:!1,mutationToken:null};case"reset":return{...Om};default:return i}}function zm(i){const o=i.selection;return{...o.model?{model:{provider:o.model.provider,modelId:o.model.id}}:{},...o.thinkingSelection==="auto"?o.effectiveThinkingLevel?{thinkingLevel:o.effectiveThinkingLevel}:{}:{thinkingLevel:o.thinkingSelection}}}function ag(i,o,c,u){const f=c&&c.sessionId===u?zm(c):{},m=f.model??i?.model,h=f.thinkingLevel??i?.thinkingLevel;return{readOnly:o.readOnly,systemPrompt:o.systemPrompt,resources:o.resources,suffix:o.suffix,...m?{model:m}:{},...h?{thinkingLevel:h}:{}}}function sg(i=Om){let o=i;const c=new Set;return{getState:()=>o,dispatch:u=>{o=ng(o,u);for(const f of c)f();return o},subscribe:u=>(c.add(u),()=>c.delete(u))}}const Xe=sg();let Kn;function _m(i){return`/api/operator/v1/chat/sessions/${encodeURIComponent(i)}`}function lg(i){const o=Kn;if(Kn=i,!(o&&o.sessionId===i.sessionId&&o.origin===i.origin)){if((!o||o.sessionId!==i.sessionId)&&Xe.dispatch({type:"mutation-reset"}),!i.sessionId){Xe.dispatch({type:"reset"});return}Xe.dispatch({type:"load-start",sessionId:i.sessionId}),Im(i.sessionId,i.origin)}}async function Im(i,o){try{const c=await fetch(`${o}${_m(i)}/runtime-snapshot`,{credentials:"include"}),u=await c.json().catch(()=>({}));if(Kn?.sessionId!==i)return;if(!c.ok){Xe.dispatch({type:"load-failure",sessionId:i,error:{...Mm(u),status:c.status}});return}if(!u.snapshot){Xe.dispatch({type:"load-failure",sessionId:i,error:{status:c.status,message:"runtime snapshot missing in response"}});return}Xe.dispatch({type:"load-success",sessionId:i,snapshot:u.snapshot})}catch(c){if(Kn?.sessionId!==i)return;Xe.dispatch({type:"load-failure",sessionId:i,error:{message:c instanceof Error?c.message:String(c)}})}}async function Pa(){const i=Kn;if(!i?.sessionId||Xe.getState().reloading)return!1;const o=i.sessionId;Xe.dispatch({type:"reload-start"});try{const c=await fetch(`${i.origin}${_m(o)}/reload`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ot()},body:"{}"}),u=await c.json().catch(()=>({}));return Kn?.sessionId!==o?!1:c.ok?u.snapshot?(Xe.dispatch({type:"reload-success",snapshot:u.snapshot}),!0):(Xe.dispatch({type:"reload-failure",error:{status:c.status,message:"reload succeeded but snapshot missing"}}),!1):(Xe.dispatch({type:"reload-failure",error:{...Mm(u),status:c.status}}),!1)}catch(c){return Kn?.sessionId!==o||Xe.dispatch({type:"reload-failure",error:{message:c instanceof Error?c.message:String(c)}}),!1}}async function es(){const i=Kn;if(!i?.sessionId)return!1;const o=i.sessionId;return Xe.dispatch({type:"load-start",sessionId:o}),Im(o,i.origin),!0}function ig(i,o,c){return c?(Xe.dispatch({type:"mutation-adopt",token:i,sessionId:o,snapshot:c}),Xe.getState().snapshot===c):!1}function rg(i,o,c){return c.sessionRef.current?.sessionId!==o||Xe.getState().mutationToken!==i?!1:(Xe.dispatch({type:"mutation-settle",token:i}),!0)}function ts(){return v.useSyncExternalStore(Xe.subscribe,Xe.getState)}function cg(i){Xe.dispatch(i)}function og(){return Xe.getState()}const xm=()=>window.__CONSOLE_CONFIRMATION_TOKEN__??"";function ug({origin:i}){const[o,c]=v.useState(null),[u,f]=v.useState(null),[m,h]=v.useState(null),[g,b]=v.useState(!1),y=ts(),E=y.snapshot,j=y.reloading,O=y.reloadError,T=E?.diagnostics??[],H=async _=>{c(_),h(null);{f(null);try{const Q=await fetch(`${i}/api/operator/v1/pi/models-config`,{credentials:"include"}),Y=await Q.json();if(!Q.ok)throw new Error(Y.error?.message??"读取失败");f(Y.data)}catch(Q){h(Q instanceof Error?Q.message:String(Q))}}},q=async _=>{b(!0),h(null);try{const Q=await fetch(`${i}/api/operator/v1/pi/models-config`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":xm()},body:JSON.stringify(_)}),Y=await Q.json();if(!Q.ok)throw new Error(Y.error?.message??"模型配置保存失败");f(Y.data)}catch(Q){h(Q instanceof Error?Q.message:String(Q))}finally{b(!1)}},ae=async(_,Q)=>{b(!0),h(null);try{const Y=await fetch(`${i}/api/operator/v1/pi/models-config/test`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":xm()},body:JSON.stringify({provider:_,modelId:Q})}),X=await Y.json();if(!Y.ok)throw new Error(X.error?.message??"模型测试失败");return X.data?.available===!0}catch(Y){return h(Y instanceof Error?Y.message:String(Y)),!1}finally{b(!1)}},le=o==="models"?"Models":o==="skills"?"Skills":"Packages";return s.jsxs("div",{className:"oc-governance",children:[s.jsxs("div",{className:"oc-governance-links",children:[s.jsx("button",{type:"button",onClick:()=>{H("models")},children:"Models"}),s.jsx("button",{type:"button",className:o==="skills"?"is-active":"",onClick:()=>c("skills"),children:"Skills"}),s.jsx("button",{type:"button",className:o==="packages"?"is-active":"",onClick:()=>c("packages"),children:"Packages"})]}),o&&s.jsx("div",{className:"oc-resource-backdrop",onMouseDown:_=>{_.target===_.currentTarget&&c(null)},children:s.jsxs("section",{className:"oc-resource-panel",role:"dialog","aria-modal":"true","aria-label":le,children:[s.jsxs("header",{className:"oc-resource-panel-head",children:[s.jsxs("div",{className:"oc-resource-panel-head-copy",children:[s.jsx("strong",{children:le}),s.jsx("span",{className:"oc-resource-panel-meta",children:o==="models"?"models.json 管理(读写,经 mutation gate)":o==="skills"?"只读 · 当前 Pi session 实际加载的 Skills":"只读 · 当前 Pi session 实际解析的 Packages"})]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>c(null),children:"关闭"})]}),s.jsxs("div",{className:"oc-resource-panel-body",children:[T.length>0&&s.jsxs("div",{className:"oc-resource-diagnostics",children:[T.map((_,Q)=>s.jsx("div",{className:`oc-resource-diagnostic${_.type==="error"?" is-error":""}`,role:_.type==="error"?"alert":void 0,children:s.jsxs("span",{children:[_.type,_.code?` ${_.code}`:"",":",_.message,_.path?`(${_.path})`:"",_.retryable?" · 可重试":""]})},Q)),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{es()},children:"重试"})]}),m&&s.jsx("p",{className:"oc-resource-error",children:m}),o==="models"&&s.jsx(dg,{busy:g,data:u,onMutate:q,onTest:ae}),o==="skills"&&s.jsx(fg,{status:y.status,loadError:y.error,skills:E?.skills,hasSession:!!E?.sessionId,hasDiagnostics:T.length>0}),o==="packages"&&s.jsx(pg,{status:y.status,loadError:y.error,packages:E?.packages,hasSession:!!E?.sessionId,hasDiagnostics:T.length>0})]}),s.jsxs("footer",{className:"oc-resource-panel-foot",children:[s.jsx("span",{className:"oc-resource-panel-meta",children:j?"正在重新加载会话…":O?`${O.code??"ERROR"}:${O.message}`:E?`revision ${E.revision} · ${E.loadedAt}`:"等待会话快照…"}),s.jsxs("div",{className:"oc-resource-panel-actions",children:[O&&s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{Pa()},children:"重试"}),y.status==="error"&&s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{es()},children:"重新读取快照"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{Pa()},children:"重新加载会话"})]})]})]})})]})}function dg({busy:i,data:o,onMutate:c,onTest:u}){const[f,m]=v.useState(""),[h,g]=v.useState(""),[b,y]=v.useState(""),[E,j]=v.useState(null),O=async T=>{T.preventDefault(),!(!o||!f.trim()||!h.trim())&&(await c({expectedRevision:o.revision,action:"upsert-model",provider:f.trim(),model:{id:h.trim(),...b.trim()?{name:b.trim()}:{}}}),g(""),y(""))};return o?s.jsxs("div",{className:"oc-models-config",children:[s.jsx("p",{className:"oc-resource-panel-meta",children:"Console 不读取或写入 API key;credential 请通过 Pi CLI 配置。"}),o.providers.length===0?s.jsx("p",{className:"oc-resource-empty",children:"models.json 中暂无 Provider(真实空态;用 Pi CLI 配置)。"}):null,o.providers.map(T=>s.jsxs("article",{className:"oc-model-provider",children:[s.jsxs("div",{className:"oc-model-provider-head",children:[s.jsx("strong",{children:T.name}),s.jsx("span",{children:T.credential.configured?"credential configured":"credential 未配置"})]}),T.models.map(H=>s.jsxs("div",{className:"oc-model-row",children:[s.jsx("span",{children:H.name?`${H.name} (${H.id})`:H.id}),s.jsxs("div",{className:"oc-model-row-actions",children:[s.jsx("button",{type:"button",disabled:i,onClick:()=>{u(T.name,H.id).then(q=>j(`${T.name}/${H.id}: ${q?"可用":"不可用"}`))},children:"测试"}),s.jsx("button",{type:"button",disabled:i,onClick:()=>{window.confirm(`确认删除模型 ${T.name}/${H.id}?`)&&c({expectedRevision:o.revision,action:"remove-model",provider:T.name,model:{id:H.id}})},children:"删除"})]})]},H.id)),s.jsx("button",{type:"button",className:"oc-model-provider-remove",disabled:i,onClick:()=>{window.confirm(`确认删除 Provider ${T.name}?`)&&c({expectedRevision:o.revision,action:"remove-provider",provider:T.name})},children:"删除 Provider"})]},T.name)),E&&s.jsx("p",{className:"oc-model-test-result",children:E}),s.jsxs("form",{className:"oc-model-form",onSubmit:T=>{O(T)},children:[s.jsx("strong",{children:"新增或更新模型"}),s.jsx("input",{required:!0,placeholder:"Provider",value:f,onChange:T=>m(T.target.value)}),s.jsx("input",{required:!0,placeholder:"Model ID",value:h,onChange:T=>g(T.target.value)}),s.jsx("input",{placeholder:"显示名称(可选)",value:b,onChange:T=>y(T.target.value)}),s.jsx("button",{type:"submit",disabled:i,children:i?"保存中…":"保存模型"})]})]}):s.jsx("p",{className:"oc-resource-empty",children:"正在读取模型配置…"})}function Lm(i){return i.status==="loading"?s.jsx("p",{className:"oc-resource-empty",children:"会话快照加载中…"}):i.status==="error"?s.jsxs("div",{className:"oc-resource-error",role:"alert",children:[s.jsxs("span",{children:[i.loadError?.code?`${i.loadError.code}:`:"",i.loadError?.message??"会话快照读取失败"]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{es()},children:"重试"})]}):i.hasSession?s.jsx("p",{className:"oc-resource-empty",children:i.emptyText}):s.jsx("p",{className:"oc-resource-empty",children:"当前没有活动会话;打开会话后显示真实资源清单(真实空态)。"})}function fg(i){const o=i.skills??[];if(i.status!=="ready"||!i.hasSession)return s.jsx(Lm,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未加载任何 Skills(真实空态)"});if(o.length===0&&!i.hasDiagnostics)return s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未加载任何 Skills(真实空态,未伪造列表)。"});const c=new Map;for(const u of o){const f=u.scope||"unknown",m=c.get(f)??[];m.push(u),c.set(f,m)}return s.jsx("div",{className:"oc-resource-lists",children:[...c.entries()].map(([u,f])=>s.jsxs("section",{className:"oc-resource-group",children:[s.jsxs("header",{className:"oc-resource-group-head",children:[s.jsx("strong",{children:u}),s.jsxs("span",{children:[f.length," 项"]})]}),s.jsx("ul",{className:"oc-resource-list",children:f.map(m=>s.jsxs("li",{className:"oc-resource-item",children:[s.jsxs("div",{className:"oc-resource-item-head",children:[s.jsx("strong",{children:m.name}),s.jsx("span",{children:m.enabled?"enabled":"disabled"})]}),m.description?s.jsx("p",{children:m.description}):null,s.jsx("code",{children:m.path}),m.source?s.jsxs("span",{className:"oc-resource-panel-meta",children:["source: ",m.source]}):null,Array.isArray(m.diagnostics)&&m.diagnostics.length>0?s.jsx("span",{className:"oc-resource-diagnostic",children:m.diagnostics.join(";")}):null]},`${u}:${m.path}`))})]},u))})}const mg={extension:"Extensions",skill:"Skills",prompt:"Prompts",theme:"Themes"};function hg(i){return Array.isArray(i.diagnostics)&&i.diagnostics.length>0?"error":i.enabled?i.version?"installed":"loaded":"disabled"}function pg(i){const o=i.packages??[];return i.status!=="ready"||!i.hasSession?s.jsx(Lm,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未配置 Packages(真实空态)"}):o.length===0&&!i.hasDiagnostics?s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未配置 Packages(真实空态,未伪造列表)。"}):s.jsx("div",{className:"oc-resource-lists",children:o.map(c=>{const u=hg(c),f=new Map;for(const m of c.resolved??[]){const h=mg[m.type]??m.type,g=f.get(h)??[];g.push(m),f.set(h,g)}return s.jsxs("article",{className:"oc-resource-item oc-package",children:[s.jsxs("div",{className:"oc-resource-item-head",children:[s.jsx("strong",{children:c.spec}),s.jsx("span",{className:`oc-package-status is-${u}`,children:u})]}),s.jsxs("p",{className:"oc-resource-panel-meta",children:[c.scope," · ",c.enabled?"loaded":"disabled"]}),c.packageName?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"package"}),s.jsx("code",{children:c.packageName})]}):null,c.version?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"installed"}),s.jsxs("code",{children:["v",c.version]})]}):null,c.configuredVersion?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"configured"}),s.jsx("code",{children:c.configuredVersion})]}):null,c.installedPath?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"installed path"}),s.jsx("code",{children:c.installedPath})]}):null,c.cwd?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"cwd"}),s.jsx("code",{children:c.cwd})]}):null,f.size>0?s.jsx("div",{className:"oc-package-resources",children:[...f.entries()].map(([m,h])=>s.jsxs("section",{className:"oc-package-group",children:[s.jsxs("header",{className:"oc-resource-group-head",children:[s.jsx("strong",{children:m}),s.jsxs("span",{children:[h.length," 项"]})]}),s.jsx("ul",{className:"oc-resource-sub-list",children:h.map((g,b)=>s.jsxs("li",{children:[s.jsx("span",{children:g.name||g.path}),s.jsxs("span",{className:"oc-resource-panel-meta",children:[g.scope,g.source?` · ${g.source}`:""]}),s.jsx("code",{children:g.path})]},`${m}:${b}`))})]},m))}):s.jsx("p",{className:"oc-resource-panel-meta",children:"未解析出扩展/技能/提示词/主题(真实空态)"}),Array.isArray(c.diagnostics)&&c.diagnostics.length>0?s.jsx("div",{className:"oc-package-diagnostics",children:c.diagnostics.map((m,h)=>s.jsx("span",{children:m},h))}):null]},`${c.scope}:${c.spec}`)})})}const Wc=10;function vg(i){return[...i].sort((o,c)=>o.kind!==c.kind?o.kind==="directory"?-1:1:o.name.localeCompare(c.name,void 0,{sensitivity:"base"}))}function gg({open:i}){return s.jsx("svg",{className:`oc-tree-chevron${i?" is-open":""}`,width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.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 yg({open:i}){return i?s.jsxs("svg",{className:"oc-tree-glyph is-folder-open",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:[s.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"}),s.jsx("path",{d:"M1.8 5.8h10.4l-.7 5.2H2.5L1.8 5.8Z",fill:"currentColor",opacity:"0.55"})]}):s.jsx("svg",{className:"oc-tree-glyph is-folder",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.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 bg(){return s.jsxs("svg",{className:"oc-tree-glyph is-file",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:[s.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"}),s.jsx("path",{d:"M8.3 1.7v2.5h2.4",fill:"none",stroke:"currentColor",strokeWidth:"1.1",strokeLinejoin:"round",opacity:"0.75"})]})}function xg(i){const o=i.sessions.slice(0,Wc);return s.jsx("aside",{className:`oc-sidebar${i.open?"":" is-collapsed"}`,"aria-label":"会话与仓库",children:i.open?s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"oc-sidebar-section oc-sessions",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"会话"}),s.jsxs("div",{className:"oc-sidebar-header-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onCreate,children:"新建"}),s.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:i.onToggleOpen,"aria-expanded":!0,"aria-label":"收起侧栏",title:"收起侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M8.8 2.6 5.2 7l3.6 4.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),s.jsxs("div",{className:"oc-session-scroll",children:[["active","archived"].map(c=>{const u=o.filter(f=>f.state===c);return u.length?s.jsxs("div",{className:"oc-session-group",children:[s.jsx("small",{children:c==="active"?"进行中":"已归档"}),u.map(f=>s.jsxs("div",{className:`oc-session-item${i.activeSessionId===f.sessionId?" is-active":""}`,children:[s.jsxs("button",{type:"button",className:"oc-session-main",onClick:()=>i.onActivate(f.sessionId),children:[s.jsxs("strong",{children:[f.title||"未命名对话",f.activeTurnId?" · 运行中":""]}),s.jsx("span",{children:new Date(f.updatedAt).toLocaleString()})]}),s.jsxs("div",{className:"oc-session-actions",children:[s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>{const m=window.prompt("会话名称",f.title??"");m!==null&&i.onRename(f.sessionId,m)},children:"重命名"}),s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>i.onSetState(f.sessionId,c==="active"?"archived":"active"),children:c==="active"?"归档":"恢复"}),s.jsx("button",{type:"button",className:"oc-session-menu oc-session-delete",onClick:()=>i.onDelete(f.sessionId),children:"删除"})]})]},f.sessionId))]},c):null}),o.length===0?s.jsx("p",{className:"oc-tree-empty",children:"暂无会话,点击上方新建。"}):null]})]}),s.jsxs("section",{className:"oc-sidebar-section oc-explorer",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"仓库"}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onRefreshTree,children:"刷新"})]}),s.jsx("p",{className:"oc-explorer-hint",children:"单击插入 @路径 · 双击预览"}),i.treeError&&s.jsx("p",{className:"oc-sidebar-error",children:i.treeError}),s.jsx("div",{className:"oc-tree-scroll",children:s.jsx(Um,{entries:i.tree[""]??[],tree:i.tree,expanded:i.expanded,depth:0,onToggle:i.onToggleDir,onInsert:i.onInsert,onPreview:i.onPreview})})]}),s.jsx(ug,{origin:i.origin})]}):s.jsx("button",{type:"button",className:"oc-sidebar-toggle is-collapsed",onClick:i.onToggleOpen,"aria-expanded":!1,"aria-label":"展开侧栏",title:"展开侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.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"})})})})}function Um(i){const o=v.useMemo(()=>vg(i.entries),[i.entries]);return o.length?s.jsx("ul",{className:"oc-tree",role:i.depth===0?"tree":"group",children:o.map(c=>{const u=c.name.startsWith(".");if(c.kind==="directory"){const f=i.expanded.has(c.path);return s.jsxs("li",{className:`oc-tree-node is-dir${f?" is-open":""}${u?" is-dot":""}`,role:"treeitem","aria-expanded":f,children:[s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-dir",onClick:()=>i.onToggle(c.path),style:{paddingLeft:`${8+i.depth*12}px`},children:[s.jsx(gg,{open:f}),s.jsx(yg,{open:f}),s.jsx("span",{className:"oc-tree-label",children:c.name})]}),f?s.jsx("div",{className:"oc-tree-children",style:{"--oc-tree-guide":`${14+i.depth*12}px`},children:s.jsx(Um,{entries:i.tree[c.path]??[],tree:i.tree,expanded:i.expanded,depth:i.depth+1,onToggle:i.onToggle,onInsert:i.onInsert,onPreview:i.onPreview})}):null]},c.path)}return s.jsx("li",{className:`oc-tree-node is-file${u?" is-dot":""}`,role:"treeitem",children:s.jsx(Sg,{entry:c,depth:i.depth,onInsert:i.onInsert,onPreview:i.onPreview})},c.path)})}):s.jsx("p",{className:"oc-tree-empty",children:"此目录为空或没有可安全浏览的文件。"})}function Sg(i){const o=v.useRef(null);return v.useEffect(()=>()=>{o.current!==null&&window.clearTimeout(o.current)},[]),s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-file",style:{paddingLeft:`${8+i.depth*12}px`},title:"单击插入引用;双击预览",onClick:()=>{o.current!==null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{i.onInsert(i.entry.path),o.current=null},220)},onDoubleClick:()=>{o.current!==null&&window.clearTimeout(o.current),o.current=null,i.onPreview(i.entry.path)},children:[s.jsx("span",{className:"oc-tree-chevron-spacer","aria-hidden":"true"}),s.jsx(bg,{}),s.jsx("span",{className:"oc-tree-label",children:i.entry.name})]})}function jg(i){const o=i.previews.find(c=>c.path===i.activePath);return!o&&!i.loading?null:s.jsxs(s.Fragment,{children:[o&&s.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${o.path}`,children:[s.jsxs("header",{children:[s.jsx("div",{className:"oc-file-tabs",role:"tablist","aria-label":"文件预览 Tabs",children:i.previews.map(c=>s.jsx("button",{type:"button",role:"tab","aria-selected":c.path===o.path,className:c.path===o.path?"is-active":"",onClick:()=>i.onActivate(c.path),children:c.path},c.path))}),s.jsxs("span",{children:[o.bytes," bytes",o.truncated?" · 已截断":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>i.onClose(o.path),children:"关闭预览"})]}),s.jsx("pre",{children:s.jsx("code",{children:o.content})})]}),i.loading&&s.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const no=[{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 Ng(i){const o=i.trim().split(/\s+/,1)[0]?.toLowerCase();if(!o?.startsWith("/"))return;const c=no.find(u=>u.command===o);return c?{command:c.command,action:c.action}:{command:o,action:"unknown"}}const Rg=[{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 Hm(i){const o=i.readiness==="setup-required",c=!!i.disabled||o,u=i.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",f=i.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return s.jsxs("div",{className:"oc-empty",role:"status",children:[s.jsxs("div",{className:"oc-empty-hero",children:[s.jsx("div",{className:"oc-empty-icon","aria-hidden":"true",children:"π"}),s.jsxs("div",{className:"oc-empty-copy",children:[s.jsx("h3",{children:u}),s.jsx("p",{children:f})]})]}),s.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:Rg.map(m=>s.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>i.onSuggest(m.prompt),disabled:c,children:[s.jsx("strong",{children:m.label}),s.jsx("span",{children:m.hint})]},m.label))}),s.jsxs("ul",{className:"oc-empty-tips",children:[s.jsxs("li",{children:[s.jsx("kbd",{children:"@"}),s.jsx("span",{children:"引用仓库文件"})]}),s.jsxs("li",{children:[s.jsx("kbd",{children:"/"}),s.jsx("span",{children:"快捷命令"})]}),s.jsxs("li",{children:[s.jsx("kbd",{children:"Enter"}),s.jsx("span",{children:"发送 · Shift+Enter 换行"})]})]}),i.mode==="no-session"&&i.onCreateSession?s.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:i.onCreateSession,disabled:o,children:o?"需先完成 Pi setup":"新建空白对话"}):null]})}function Cg(i){const{artifact:o}=i;return s.jsxs("section",{className:"oc-artifact-card","aria-label":`${o.kind} artifact`,children:[s.jsxs("header",{children:[s.jsx("strong",{children:o.title??o.artifactId}),s.jsx("span",{children:o.kind})]}),o.summary&&s.jsx("p",{children:o.summary}),o.reportText&&s.jsx("pre",{children:o.reportText}),o.htmlPreview&&s.jsx("iframe",{title:`${o.title??o.artifactId} preview`,sandbox:"",srcDoc:o.htmlPreview}),o.inspectHref&&s.jsx("a",{href:o.inspectHref,children:"查看详情"})]})}function Tg({card:i,origin:o,sessionId:c}){const[u,f]=v.useState(!1),[m,h]=v.useState(),g=async()=>{f(!0),h(void 0);try{const j=i.gateType==="dag-run"?i.state==="prepared"?"dag-confirm":"dag-run":i.gateType==="mutation"?"mutation-apply":"contract-apply",O=i.gateType==="dag-run"?{confirmationId:i.confirmationId,...i.state==="prepared"?{humanGateToken:i.humanGateToken}:{}}:{receiptId:i.receiptId,humanGateToken:i.humanGateToken},T=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/human-gate/${j}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},body:JSON.stringify(O)}),H=await T.json();if(!T.ok)throw new Error(H.error?.message??`HTTP ${T.status}`)}catch(j){h(j instanceof Error?j.message:String(j))}finally{f(!1)}},b=i.state==="prepared"||i.gateType==="dag-run"&&i.state==="confirmed",y=i.gateType==="contract-apply"?"Contract apply":i.gateType==="mutation"?"Mutation":"DAG run",E=i.gateType==="contract-apply"?"Apply":i.gateType==="mutation"?"Execute":i.state==="prepared"?"Confirm":"Run";return s.jsxs("section",{className:`oc-human-gate-card is-${i.state}`,"aria-label":`Human gate ${i.cardId}`,children:[s.jsxs("header",{children:[s.jsxs("div",{children:[s.jsx("small",{children:"HumanGateCard · 仅人类可确认"}),s.jsx("strong",{children:y})]}),s.jsx("span",{children:i.state})]}),i.contractDiffSummary&&s.jsx("p",{children:i.contractDiffSummary}),i.displayOnlyChallenges&&s.jsxs("div",{className:"oc-human-gate-challenges",children:[s.jsx("b",{children:"Challenge(仅展示,不是确认信号)"}),s.jsx("ul",{children:i.displayOnlyChallenges.map(j=>s.jsx("li",{children:j},j))})]}),i.dagSpine&&i.dagSpine.length>0&&s.jsxs("div",{children:[s.jsx("b",{children:"DAG spine"}),s.jsx("ol",{children:i.dagSpine.map(j=>s.jsx("li",{children:s.jsx("code",{children:j})},j))})]}),s.jsxs("footer",{children:[s.jsx("a",{href:i.inspectHref,children:"Inspect"}),s.jsx("button",{className:"btn btn-primary",type:"button",disabled:!b||u,onClick:()=>{g()},children:u?"提交中…":E})]}),m&&s.jsx("div",{className:"oc-human-gate-error",children:m})]})}const Vt="loop-console.operator-chat.active-session.v1",Eg="loop-console.operator-chat.default-landing.v1";function Si(i){const o=i?.trim().toLowerCase();if(o==="chat")return"chat";if(o==="tasks")return"tasks"}function Bm(i){const o=i?.trim().toLowerCase();if(o==="chat"||o==="tasks"||o==="recovery"||o==="night"||o==="models"||o==="settings")return o}function qm(i){const o=c=>i.get(c)?.trim()||void 0;return{...o("taskId")?{taskId:o("taskId")}:{},...o("dagRunId")?{dagRunId:o("dagRunId")}:{},...o("fromNodeId")?{fromNodeId:o("fromNodeId")}:{},...o("featureId")?{featureId:o("featureId")}:{}}}function Gm(i){const o=String(i??"").replace(/^#/,"");if(!o)return null;const c=o.indexOf("?"),u=c>=0?o.slice(0,c):o,f=c>=0?o.slice(c+1):"",m=(u||"/").split("?")[0]||"/";if(m==="/"||m==="")return null;const h=m.replace(/^\//,"").split("/")[0],g=Bm(h);return g?{workspace:g,...qm(new URLSearchParams(f))}:null}function Ag(i){const o=new URLSearchParams(i.search),c=i.hash.startsWith("#")?i.hash.slice(1):i.hash,u=new URLSearchParams(c),f=Bm(o.get("workspace")??o.get("landing")??u.get("workspace"));return f?{workspace:f,...qm(o)}:null}function kg(i){if(!i)return;const o=Gm(i.hash);if(o)return o.workspace;const c=new URLSearchParams(i.search),u=Si(c.get("landing")??c.get("workspace"));if(u)return u;const f=i.hash.startsWith("#")?i.hash.slice(1):i.hash;return Si(new URLSearchParams(f).get("workspace"))}function $m(i){return kg(i.location)??Si(i.storage?.getItem(Eg))??Si(i.env)??"tasks"}function Ym(i,o={}){const c=new URLSearchParams;for(const[m,h]of Object.entries(o))h?.trim()&&c.set(m,h.trim());const u=c.toString(),f=`/${i}`;return u?`${f}?${u}`:f}function wg(i,o={}){return`#${Ym(i,o)}`}function Dg(i){return Gm(i.hash)??Ag(i)}function Og(i){const{operation:o}=i,c=o.inspectHref.startsWith("/")?`${i.origin}${o.inspectHref}`:o.inspectHref,u=o.state==="failed"||o.state==="timed-out"||o.state==="needs-reconcile",f=(h,g)=>{i.onNavigateWorkspace?i.onNavigateWorkspace(h,g):window.location.assign(wg(h,g))},m=[o.taskId?["task",o.taskId]:void 0,o.dagRunId?["dag",o.dagRunId]:void 0,o.featureId?["feature",o.featureId]:void 0,o.workerRunId?["worker",o.workerRunId]:void 0].filter(h=>!!h);return s.jsxs("section",{className:`oc-operation-card is-${o.state}`,"aria-label":`Operation ${o.operationId}`,children:[s.jsxs("header",{className:"oc-operation-head",children:[s.jsxs("div",{children:[s.jsx("div",{className:"oc-operation-kicker",children:"Operation"}),s.jsx("strong",{children:o.action})]}),s.jsx("span",{className:`oc-operation-state is-${o.state}`,children:o.state})]}),s.jsx("div",{className:"oc-operation-id",children:s.jsx("code",{children:o.operationId})}),m.length>0&&s.jsx("div",{className:"oc-operation-identities",children:m.map(([h,g])=>s.jsxs("span",{children:[s.jsx("b",{children:h})," ",g]},`${h}:${g}`))}),o.controller&&s.jsxs("div",{className:"oc-operation-controller",children:["controller: ",o.controller]}),o.summaryPreview&&s.jsx("pre",{className:"oc-operation-preview",children:o.summaryPreview}),o.stderrPreview&&s.jsx("pre",{className:"oc-operation-preview is-error",children:o.stderrPreview}),o.stdoutPreview&&s.jsx("pre",{className:"oc-operation-preview",children:o.stdoutPreview}),s.jsxs("footer",{className:"oc-operation-actions",children:[s.jsx("a",{className:"btn btn-ghost",href:c,target:"_blank",rel:"noreferrer",children:"Inspect"}),o.taskId&&s.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("tasks",{taskId:o.taskId}),children:"打开 Task Ops"}),o.dagRunId&&s.jsx("a",{className:"btn btn-ghost",href:`${i.origin}/inspect/#/dag/${encodeURIComponent(o.dagRunId)}`,target:"_blank",rel:"noreferrer",children:"打开 Run / Inspect"}),u&&(o.dagRunId||o.taskId)&&s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("recovery",{taskId:o.taskId,dagRunId:o.dagRunId}),children:"打开 Recovery"}),s.jsx("time",{dateTime:o.updatedAt,children:new Date(o.updatedAt).toLocaleString()})]})]})}function Mg(i){const{interview:o,interviewAnswer:c,onAnswerChange:u,onAnswer:f}=i;return s.jsxs("section",{className:"oc-draft-card","aria-label":"Requirement Interview",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"Requirement Interview"}),s.jsx("span",{children:o.state})]}),o.question&&s.jsxs("div",{className:"oc-interview-bubble",children:[s.jsx("strong",{children:o.question.text}),s.jsxs("p",{children:["建议:",o.question.recommendation]}),s.jsx("textarea",{value:c,onChange:m=>u(m.target.value),placeholder:"输入答案"}),s.jsxs("div",{children:[s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("override"),disabled:!c.trim(),children:"提交答案"}),s.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("accept-recommendation"),children:"接受建议"})]})]}),o.draft&&s.jsxs("details",{open:!0,children:[s.jsxs("summary",{children:["TaskContractDraftV1 · ",o.draftSha256?.slice(0,12)]}),s.jsx("pre",{children:JSON.stringify(o.draft,null,2)})]}),o.assessment&&s.jsxs("div",{className:`oc-assessment${o.assessment.fresh?" is-fresh":""}`,children:[s.jsxs("strong",{children:["完整性:",o.assessment.outcome]}),(o.assessment.missingFields??[]).length>0&&s.jsxs("p",{children:["缺失:",o.assessment.missingFields?.join("、")]})]}),o.taskKindRecommendation&&s.jsxs("div",{className:"oc-task-kind-card",children:[s.jsx("span",{children:"taskKind 建议"}),s.jsx("strong",{children:o.taskKindRecommendation}),s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>i.onConfirmTaskKind(),children:"由我确认"}),s.jsx("small",{children:"模型不能代替人类确认。"})]}),o.confirmedTaskKind&&s.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",s.jsx("strong",{children:o.confirmedTaskKind})]})]})}function zg(i){const o=[],c=i.split(`
11
- `);let u=0,f=[];const m=()=>{const h=f.join(`
12
- `).trimEnd();h&&o.push({type:"text",text:h}),f=[]};for(;u<c.length;){const h=c[u],g=h.match(/^\s*(`{3,}|~{3,})\s*([^\s`~]*)\s*$/);if(g){m();const b=g[1][0],y=(g[2]??"").trim(),E=[];for(u+=1;u<c.length;){const j=c[u];if(j.trim()===b.repeat(g[1].length)){u+=1;break}if(new RegExp(`^\\s*${b}{3,}`).test(j)){u+=1;break}E.push(j),u+=1}o.push({type:"code",lang:y,text:E.join(`
13
- `)});continue}f.push(h),u+=1}return m(),o}const _g=/(`[^`]+`)|(\*\*[^*]+\*\*)|(\*[^*]+\*|_[^_]+_)|(~~[^~]+~~)|(\[[^\]]+\]\([^)\s]+\))/;function Zs(i,o){const c=[];let u=i,f=0;for(;u.length>0;){const m=_g.exec(u);if(!m||m.index===void 0){c.push(u);break}m.index>0&&c.push(u.slice(0,m.index));const h=m[0],g=`${o}-i${f++}`;if(h.startsWith("`"))c.push(s.jsx("code",{children:h.slice(1,-1)},g));else if(h.startsWith("**"))c.push(s.jsx("strong",{children:h.slice(2,-2)},g));else if(h.startsWith("*")||h.startsWith("_"))c.push(s.jsx("em",{children:h.slice(1,-1)},g));else if(h.startsWith("~~"))c.push(s.jsx("s",{children:h.slice(2,-2)},g));else if(h.startsWith("[")){const b=h.match(/^\[([^\]]+)\]\(([^)\s]+)\)$/);b?c.push(s.jsx("a",{href:b[2],target:"_blank",rel:"noreferrer noopener",children:b[1]},g)):c.push(h)}u=u.slice(m.index+h.length)}return c}function Ig({lang:i,text:o}){const[c,u]=v.useState(!1),f=()=>{navigator.clipboard?.writeText(o).then(()=>{u(!0),window.setTimeout(()=>u(!1),1600)},()=>{})};return s.jsxs("div",{className:"oc-codeblock",children:[s.jsxs("div",{className:"oc-codeblock-head",children:[s.jsx("span",{className:"oc-codeblock-lang",children:i||"text"}),s.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:f,children:c?"已复制":"复制"})]}),s.jsx("pre",{children:s.jsx("code",{children:o})})]})}function Lg(i,o){const c=[],u=i.split(`
14
- `);let f=0,m=0;for(;m<u.length;){const g=u[m].trim();if(g===""){m+=1;continue}const b=g.match(/^(#{1,4})\s+(.*)$/);if(b){const j=`h${b[1].length}`;c.push(s.jsx(j,{children:Zs(b[2],`${o}-h${f}`)},`${o}-h${f++}`)),m+=1;continue}if(/^(---|\*\*\*|___)\s*$/.test(g)){c.push(s.jsx("hr",{},`${o}-hr${f++}`)),m+=1;continue}if(g.startsWith(">")){const E=[];for(;m<u.length&&u[m].trim().startsWith(">");)E.push(u[m].trim().replace(/^>\s?/,"")),m+=1;c.push(s.jsx("blockquote",{children:E.map((j,O)=>s.jsx("p",{children:Zs(j,`${o}-bq${f}-${O}`)},O))},`${o}-bq${f++}`));continue}if(/^[-*+]\s+/.test(g)){const E=[];for(;m<u.length&&/^\s*[-*+]\s+/.test(u[m]);)E.push(u[m].trim().replace(/^[-*+]\s+/,"")),m+=1;c.push(s.jsx("ul",{children:E.map((j,O)=>s.jsx("li",{children:Zs(j,`${o}-ul${f}-${O}`)},O))},`${o}-ul${f++}`));continue}if(/^\d+\.\s+/.test(g)){const E=[];for(;m<u.length&&/^\s*\d+\.\s+/.test(u[m]);)E.push(u[m].trim().replace(/^\d+\.\s+/,"")),m+=1;c.push(s.jsx("ol",{children:E.map((j,O)=>s.jsx("li",{children:Zs(j,`${o}-ol${f}-${O}`)},O))},`${o}-ol${f++}`));continue}const y=[];for(;m<u.length&&u[m].trim()!==""&&!/^(#{1,4})\s+/.test(u[m].trim())&&!/^(---|\*\*\*|___)\s*$/.test(u[m].trim())&&!u[m].trim().startsWith(">")&&!/^[-*+]\s+/.test(u[m].trim())&&!/^\d+\.\s+/.test(u[m].trim());)y.push(u[m].trim()),m+=1;c.push(s.jsx("p",{children:Zs(y.join(" "),`${o}-p${f}`)},`${o}-p${f++}`))}return c}function Ug({text:i}){const o=zg(i);return s.jsx("div",{className:"oc-md",children:o.map((c,u)=>c.type==="code"?s.jsx(Ig,{lang:c.lang,text:c.text},`cb-${u}`):s.jsx("div",{children:Lg(c.text,`tx-${u}`)},`tx-${u}`))})}function Hg(){return s.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:[s.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),s.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function Bg(){return s.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:s.jsx("polyline",{points:"20 6 9 17 4 12"})})}function qg(){return s.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:[s.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),s.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})}function Gg(){return s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:s.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}function Km(){return s.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:s.jsx("polyline",{points:"4 2.5 7.5 6 4 9.5"})})}function $g(){return s.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:s.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 Xm(i){const[o,c]=v.useState(!1),u=()=>{navigator.clipboard?.writeText(i.text).then(()=>{c(!0),window.setTimeout(()=>c(!1),1600)},()=>{})};return s.jsx("button",{type:"button",className:`oc-message-copy${o?" is-copied":""}`,"aria-label":o?"已复制":"复制消息",title:o?"已复制":"复制",onClick:u,children:o?s.jsx(Bg,{}):s.jsx(Hg,{})})}function Sm(i){const{message:o,streaming:c,activeAssistantId:u}=i,f=o.role==="user",m=f?"你":"π",h=f?"你":"助手",g=!f&&c&&u!==null&&o.id===u,b=g&&o.text.length===0,y=o.text.trim().length>0;return s.jsxs("div",{className:`oc-row ${f?"is-user":"is-assistant"}`,children:[s.jsxs("div",{className:"oc-meta",children:[s.jsx("span",{className:`oc-avatar ${f?"oc-avatar-user":"oc-avatar-assistant"}`,"aria-hidden":"true",children:m}),s.jsx("span",{className:"oc-role",children:h}),s.jsx("span",{className:"oc-time",children:Dm(o.createdAt)}),y&&s.jsx(Xm,{text:o.text})]}),s.jsxs("div",{className:`oc-bubble ${f?"oc-bubble-user":"oc-bubble-assistant"}`,children:[y?f?s.jsx("div",{style:{whiteSpace:"pre-wrap"},children:o.text}):s.jsx(Ug,{text:o.text}):b?s.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,g&&y&&s.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function Yg(i){const o=[],c=[];let u,f=[];const m=h=>{for(const g of f)g.assistantMessageId||(g.assistantMessageId=h),g.turnId||(g.turnId=u);f=[]};for(const h of i){const g=Date.parse(h.at)||Date.now();if(h.role==="user"){u=`restored-${h.id}`,f=[],o.push({id:h.id,role:"user",text:h.text,createdAt:g});continue}if(h.role==="assistant"){u||(u=`restored-${h.id}`),o.push({id:h.id,role:"assistant",text:h.text,createdAt:g}),m(h.id);continue}if(h.role==="tool"){u||(u=`restored-tool-${h.id}`);const b={id:h.toolCallId||h.id,toolName:h.toolName||"tool",status:h.isError===!0?"error":"ok",resultText:h.text,result:h.text,createdAt:g,finishedAt:g,turnId:u};c.push(b),f.push(b)}}return{messages:o,toolCalls:c}}function Kg(i){const o=i.messages.filter(g=>g.role==="user"||g.role==="assistant"),c=[];let u=null;const f=g=>{const b={key:g,assistants:[],tools:[],live:!1};return c.push(b),b};for(const g of o){if(g.role==="user"){u=f(`user-${g.id}`),u.user=g;continue}u||(u=f(`assistant-${g.id}`)),u.assistants.push(g)}c.length===0&&i.toolCalls.length>0&&c.push({key:"orphan-tools",assistants:[],tools:[],live:!1});const m=new Set,h=new Map;for(const g of c)for(const b of g.assistants)h.set(b.id,g);for(const g of i.toolCalls)if(g.assistantMessageId){const b=h.get(g.assistantMessageId);if(b){b.tools.push(g),m.add(g.id);continue}}for(const g of i.toolCalls)if(!m.has(g.id)&&g.turnId){const b=c.find(E=>E.tools.some(j=>j.turnId===g.turnId)||E.key===`turn-${g.turnId}`||E.user&&`restored-${E.user.id}`===g.turnId);if(b){b.tools.push(g),m.add(g.id);continue}const y=c.find(E=>g.turnId===`restored-${E.user?.id}`||E.assistants.some(j=>g.turnId===`restored-${j.id}`));if(y){y.tools.push(g),m.add(g.id);continue}}for(const g of i.toolCalls){if(m.has(g.id))continue;const b=c.find((y,E)=>{const j=y.user?.createdAt??y.assistants[0]?.createdAt??0,T=c[E+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return g.createdAt>=j&&g.createdAt<T});b?(b.tools.push(g),m.add(g.id)):c.length>0&&(c[c.length-1].tools.push(g),m.add(g.id))}for(const g of c)g.tools.sort((b,y)=>b.createdAt-y.createdAt),g.live=i.streaming&&i.activeAssistantId!==null&&g.assistants.some(b=>b.id===i.activeAssistantId);return c}function Xg(i){const o=i.length,c=i.filter(m=>m.status==="error").length,u=i.filter(m=>m.status==="running").length,f=[`执行过程 · ${o} 工具`];return c>0?f.push(`${c} 出错`):u>0&&f.push("运行中"),{count:o,errorCount:c,runningCount:u,label:f.join(" · ")}}function Qm(i){const{entry:o}=i,[c,u]=v.useState(o.status==="error"),[f,m]=v.useState(!1),h=o.status==="running"?"运行中":o.status==="error"?"出错":"完成",g=`is-${o.status}`,b=Wv(o.args),y=eg(o.createdAt,o.finishedAt),E=Pv(o.resultText,f?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return s.jsxs("div",{className:`oc-tool ${o.status==="error"?"is-error":""} ${o.status==="running"?"is-running":""}`,children:[s.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":c,onClick:()=>u(j=>!j),children:[s.jsx(Km,{}),s.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:s.jsx($g,{})}),s.jsx("span",{className:"oc-tool-name",children:o.toolName}),b&&s.jsx("span",{className:"oc-tool-args",children:b}),y!==void 0&&s.jsxs("span",{className:"oc-tool-duration",children:[y,"s"]}),s.jsx("span",{className:`oc-tool-status ${g}`,children:h})]}),c&&s.jsxs("div",{className:"oc-tool-body",children:[o.args!==void 0&&s.jsxs("div",{className:"oc-tool-section",children:[s.jsx("div",{className:"oc-tool-label",children:"入参"}),s.jsx("pre",{className:"oc-tool-code",children:Fv(o.args)})]}),o.resultText!==void 0&&s.jsxs("div",{className:"oc-tool-section",children:[s.jsx("div",{className:"oc-tool-label",children:o.status==="error"?"错误":"结果"}),s.jsx("pre",{className:"oc-tool-code",children:E.text}),E.truncated&&!f&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>m(!0),children:"展开全部"})]}),o.status==="running"&&o.resultText===void 0&&o.args===void 0&&s.jsx("div",{className:"oc-tool-section",children:s.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function Qg(i){const{tools:o,defaultOpen:c}=i,[u,f]=v.useState(c),m=Xg(o);return v.useEffect(()=>{c&&f(!0)},[c]),s.jsxs("div",{className:"oc-process-inline",children:[s.jsxs("button",{type:"button",className:`oc-process-inline-summary${u?" is-open":""}${m.errorCount>0?" is-error":m.runningCount>0?" is-running":""}`,"aria-expanded":u,onClick:()=>f(h=>!h),children:[s.jsx(Km,{}),s.jsx("span",{children:m.label})]}),u&&s.jsx("div",{className:"oc-process-inline-body",children:o.map(h=>s.jsx(Qm,{entry:h},h.id))})]})}function Vg(i){const{scrollContainerRef:o,messagesEndRef:c,onScroll:u,hasThread:f,readiness:m,streaming:h,streamingAssistantId:g,messagesCount:b,visibleCount:y,onLoadMore:E,turnGroups:j,interview:O,humanGateCards:T,operationCards:H,artifactCards:q,origin:ae,sessionId:le}=i;return s.jsxs("div",{ref:o,className:`oc-messages${f?" has-thread":" is-empty"}`,onScroll:u,children:[f?null:s.jsx(Hm,{mode:"empty-session",readiness:m,disabled:h,onSuggest:i.onSuggest}),f&&b>y&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:E,children:"加载更早消息"}),f&&j.map((_,Q)=>{const Y=_.user??_.assistants[0],X=Q>0?j[Q-1].user??j[Q-1].assistants[0]:void 0,A=!!Y&&(!X||Vc(X.createdAt)!==Vc(Y.createdAt)),R=_.assistants[_.assistants.length-1];return s.jsxs("div",{className:"oc-turn-group",children:[A&&Y&&s.jsx("div",{className:"oc-day-sep",children:Vc(Y.createdAt)}),_.user&&s.jsx(Sm,{message:_.user,streaming:h,activeAssistantId:g}),_.tools.length>0&&s.jsx(Qg,{tools:_.tools,defaultOpen:_.live}),R&&s.jsx(Sm,{message:R,streaming:h,activeAssistantId:g})]},_.key)}),O&&s.jsx(Mg,{interview:O,interviewAnswer:i.interviewAnswer,onAnswerChange:i.onInterviewAnswerChange,onAnswer:i.onAnswerInterview,onConfirmTaskKind:i.onConfirmTaskKind}),T.map(_=>s.jsx(Tg,{card:_,origin:ae,sessionId:le},_.cardId)),H.map(_=>s.jsx(Og,{operation:_,origin:ae,onNavigateWorkspace:i.onNavigateWorkspace},_.operationId)),q.map(_=>s.jsx(Cg,{artifact:_},_.artifactId)),s.jsx("div",{ref:c})]})}function Js(i){return i>=1e6?`${(i/1e6).toFixed(1)}M`:i>=1e3?`${(i/1e3).toFixed(1)}k`:i.toLocaleString()}function jm(i){const o=[],c=i.inputTokens??0,u=i.outputTokens??0,f=i.cacheReadTokens??0,m=i.cacheWriteTokens??0,h=i.cost??0;if(c>0&&o.push(`${Js(c)} in`),u>0&&o.push(`${Js(u)} out`),f>0&&o.push(`${Js(f)} cache R`),m>0&&o.push(`${Js(m)} cache W`),h>0&&o.push(h>=.01?`$${h.toFixed(2)}`:"<$0.01"),o.length===0){const g=i.totalTokens??0;return g>0?`${Js(g)} tokens`:"—"}return o.join(" · ")}const Zg={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function Jg(i,o){const c=o.trim().toLowerCase(),u=new Map;for(const f of i){if(c&&!f.provider.toLowerCase().includes(c)&&!f.id.toLowerCase().includes(c)&&!(f.name??"").toLowerCase().includes(c))continue;const m=u.get(f.provider)??[];m.push(f),u.set(f.provider,m)}return[...u.entries()].map(([f,m])=>({provider:f,models:m}))}function Wg(i,o){const c=new Set,u=[],f=m=>{c.has(m)||(c.add(m),u.push({value:m,label:Zg[m]??m,...m==="auto"&&o?{effective:o}:{}}))};f("auto");for(const m of i)f(m);return u}function ji(i,o){return`${i}/${o}`}function Nm(i){return{...i.modelProvider&&i.modelId?{model:{provider:i.modelProvider,modelId:i.modelId}}:{},...i.thinkingLevel?{thinkingLevel:i.thinkingLevel}:{}}}function Vm(i,o){return{...i,model:o.model??i.model,thinkingLevel:o.thinkingLevel??i.thinkingLevel}}function Fg(i,o){const c=Vm(i,o);return c.model?.provider===i.model?.provider&&c.model?.modelId===i.model?.modelId&&c.thinkingLevel===i.thinkingLevel}function Pg(){return s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.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 ey(i){const o=ts(),[c,u]=v.useState(!1),[f,m]=v.useState(""),[h,g]=v.useState(0),b=v.useRef(null),y=v.useRef(null),E=o.snapshot,j=o.status==="loading",O=o.status==="error"?o.error:null,T=E?(E.models??[]).map(_=>({provider:_.provider,id:_.id,..._.name?{name:_.name}:{},..._.hasCredentials!==void 0?{hasCredentials:_.hasCredentials}:{}})):i.models,H=v.useMemo(()=>Jg(T,f),[T,f]),q=v.useMemo(()=>H.flatMap(_=>_.models),[H]);v.useEffect(()=>{c&&(m(""),g(0),window.setTimeout(()=>y.current?.focus(),0))},[c]),v.useEffect(()=>{if(!c)return;const _=Y=>{const X=b.current;X&&Y.target instanceof Node&&!X.contains(Y.target)&&u(!1)},Q=Y=>{Y.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",_),document.addEventListener("keydown",Q),()=>{document.removeEventListener("mousedown",_),document.removeEventListener("keydown",Q)}},[c]);const ae=_=>{if(i.disabled)return;const Q=q[_];Q&&(u(!1),i.onSelect(Q.provider,Q.id))},le=_=>{if(_.key==="ArrowDown"){_.preventDefault(),g(Q=>q.length?(Q+1)%q.length:0);return}if(_.key==="ArrowUp"){_.preventDefault(),g(Q=>q.length?(Q-1+q.length)%q.length:0);return}if(_.key==="Enter"){_.preventDefault(),ae(h);return}if(_.key==="Escape"){_.preventDefault(),u(!1);return}};return s.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:b,children:[s.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":c,title:"选择模型",disabled:i.disabled,onClick:()=>u(_=>!_),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(Pg,{})]}),c&&s.jsxs("div",{className:"oc-select-panel oc-model-panel",role:"listbox","aria-label":"选择模型",children:[s.jsx("input",{ref:y,className:"oc-select-search",placeholder:"搜索模型或 Provider…",value:f,onChange:_=>{m(_.target.value),g(0)},onKeyDown:le}),j&&s.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),O&&s.jsxs("div",{className:"oc-select-status is-error",children:[s.jsxs("span",{children:[O.code?`${O.code}:`:"",O.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{es()},children:"重试"})]}),!j&&!O&&H.length===0&&s.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),H.map(_=>s.jsxs("div",{className:"oc-model-group",children:[s.jsx("div",{className:"oc-model-group-head",children:_.provider}),_.models.map(Q=>{const Y=ji(Q.provider,Q.id),X=Y===i.activeModelRef,A=q[h]===Q;return s.jsxs("button",{type:"button",role:"option","aria-selected":X,disabled:i.disabled,className:`oc-select-option oc-model-option${A?" is-highlighted":""}${X?" is-active":""}`,onMouseDown:R=>R.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(Q.provider,Q.id))},children:[s.jsxs("span",{className:"oc-model-option-name",children:[Q.name?`${Q.name} · `:"",Q.id]}),X&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},Y)})]},_.provider))]})]})}function ty(){return s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.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 ny(i){const o=ts(),[c,u]=v.useState(!1),[f,m]=v.useState(0),h=v.useRef(null),g=i.effectiveLevel??o.snapshot?.selection?.effectiveThinkingLevel,b=o.snapshot?.thinkingLevels?.length?o.snapshot.thinkingLevels.map(O=>O.value):void 0,y=v.useMemo(()=>Wg(b??i.levels,g),[b,i.levels,g]);v.useEffect(()=>{c&&m(0)},[c]),v.useEffect(()=>{if(!c)return;const O=H=>{const q=h.current;q&&H.target instanceof Node&&!q.contains(H.target)&&u(!1)},T=H=>{H.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",O),document.addEventListener("keydown",T),()=>{document.removeEventListener("mousedown",O),document.removeEventListener("keydown",T)}},[c]);const E=O=>{if(i.disabled)return;const T=y[O];T&&(u(!1),i.onSelect(T.value))},j=O=>{if(O.key==="ArrowDown"){O.preventDefault(),m(T=>y.length?(T+1)%y.length:0);return}if(O.key==="ArrowUp"){O.preventDefault(),m(T=>y.length?(T-1+y.length)%y.length:0);return}if(O.key==="Enter"){O.preventDefault(),E(f);return}if(O.key==="Escape"){O.preventDefault(),u(!1);return}};return s.jsxs("div",{className:"oc-select-menu oc-thinking-menu",ref:h,children:[s.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":c,title:"思考等级",disabled:i.disabled,onClick:()=>u(O=>!O),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(ty,{})]}),c&&s.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:j,children:y.map((O,T)=>{const H=O.value===i.activeValue,q=T===f;return s.jsxs("button",{type:"button",role:"option","aria-selected":H,disabled:i.disabled,className:`oc-select-option oc-thinking-option${q?" is-highlighted":""}${H?" is-active":""}`,onMouseDown:ae=>ae.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(O.value))},children:[s.jsx("span",{className:"oc-thinking-option-label",children:O.label}),O.value==="auto"&&O.effective?s.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",O.effective]}):null,H&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},O.value)})})]})}function yi(i){const o=Array.isArray(i.items)?i.items:void 0;return s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:i.title}),s.jsx("span",{className:"oc-runtime-context-meta",children:o?`${o.length} 项`:"未投影"})]}),o===void 0?s.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):o.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:i.emptyText}):s.jsx("ul",{className:"oc-runtime-context-resources",children:o.map((c,u)=>s.jsxs("li",{children:[s.jsx("strong",{children:c.name||c.path||"未命名资源"}),c.description?s.jsx("span",{children:c.description}):null,c.path?s.jsxs("code",{children:[c.path,c.baseDir?`(base: ${c.baseDir})`:""]}):null,s.jsxs("span",{className:"oc-runtime-context-meta",children:[c.scope?`scope ${c.scope}`:"",c.source?` · ${c.source}`:"",c.version?` · v${c.version}`:"",c.cwd?` · cwd ${c.cwd}`:""]}),i.renderPath?i.renderPath(c):null,c.error?s.jsx("span",{className:"oc-runtime-context-diag is-error",children:c.error}):null,Array.isArray(c.diagnostics)&&c.diagnostics.length>0?s.jsx("span",{className:"oc-runtime-context-diag",children:c.diagnostics.join(";")}):null,Array.isArray(c.resolved)&&c.resolved.length>0?s.jsx("code",{className:"oc-runtime-context-resolved",children:c.resolved.map(f=>`${f.type??"?"}:${f.name??f.path??"?"}`).join(" · ")}):null]},`${c.name??c.path??u}:${u}`))})]})}const ay=v.forwardRef(function({open:o,onToggle:c,onClose:u,context:f},m){const h=ts(),g=h.reloading,b=h.reloadError,y=Array.isArray(f.resources.activeTools)?f.resources.activeTools:[],E=typeof f.resources.activeToolCount=="number"?f.resources.activeToolCount:y.length,j=f.systemPrompt.text??f.systemPrompt.summary??"",O=f.systemPrompt.charCount??j.length,T=f.resources;return s.jsxs("div",{className:"oc-runtime-context-menu",ref:m,children:[s.jsx("button",{type:"button",className:`btn btn-ghost oc-runtime-context-toggle${o?" is-active":""}`,"aria-expanded":o,"aria-controls":"oc-runtime-context-panel",onClick:c,children:"注入上下文"}),o&&s.jsxs("div",{id:"oc-runtime-context-panel",className:"oc-runtime-context-panel",role:"dialog","aria-label":"注入上下文",children:[s.jsxs("header",{className:"oc-runtime-context-head",children:[s.jsxs("div",{className:"oc-runtime-context-head-copy",children:[s.jsx("strong",{children:"注入上下文"}),s.jsx("span",{className:"oc-runtime-context-meta",children:"只读 · 本轮实际注入的 system prompt / 资源(已脱敏)"})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭",onClick:u,children:"关闭"})]}),s.jsxs("div",{className:"oc-runtime-context-body",children:[s.jsxs("div",{className:"oc-runtime-context-chips","aria-label":"摘要",children:[f.model&&s.jsxs("span",{className:"oc-runtime-context-chip",children:["模型"," ",s.jsx("code",{children:ji(f.model.provider,f.model.modelId)})]}),f.thinkingLevel&&s.jsxs("span",{className:"oc-runtime-context-chip",children:["思考 ",f.thinkingLevel]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["Prompt ",O.toLocaleString()," 字"]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["工具 ",E]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["资源面 ",String(f.resources.mode??"closed")]})]}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsxs("div",{children:[s.jsx("strong",{children:"System prompt"}),s.jsxs("code",{className:"oc-runtime-context-hash",children:[f.systemPrompt.hash.slice(0,12),"…"]})]}),j?s.jsx(Xm,{text:j}):null]}),s.jsx("pre",{className:"oc-runtime-context-text",children:j||"(空)"})]}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"Session suffix"}),s.jsx("span",{className:"oc-runtime-context-meta",children:f.suffix.present?`${(f.suffix.charCount??0).toLocaleString()} 字`:"未注入"})]}),f.suffix.present?s.jsx("pre",{className:"oc-runtime-context-text",children:f.suffix.text??f.suffix.summary??"已注入"}):s.jsx("p",{className:"oc-runtime-context-empty",children:"本会话无额外 suffix"})]}),s.jsx(yi,{title:"Context files",items:T.contextFiles?.map(H=>({name:H.path,path:H.path,description:`${H.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件(真实空态)"}),s.jsx(yi,{title:"Skills",items:T.skills,emptyText:"该 session 未加载任何 Skills(真实空态)"}),s.jsx(yi,{title:"Extensions",items:T.extensions,emptyText:"该 session 未加载任何 Extensions(真实空态)"}),s.jsx(yi,{title:"Packages",items:T.packages,emptyText:"该 session 未配置 Packages(真实空态)"}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"Active tools"}),s.jsxs("span",{className:"oc-runtime-context-meta",children:[E," 个"]})]}),y.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):s.jsx("ul",{className:"oc-runtime-context-tools",children:y.map(H=>s.jsx("li",{children:s.jsx("code",{children:H})},H))})]}),Array.isArray(T.diagnostics)&&T.diagnostics.length>0&&s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"资源诊断"}),s.jsxs("span",{className:"oc-runtime-context-meta",children:[T.diagnostics.length," 条"]})]}),s.jsx("ul",{className:"oc-runtime-context-resources",children:T.diagnostics.map((H,q)=>s.jsxs("li",{children:[s.jsxs("span",{className:`oc-runtime-context-diag is-${H.type??"warning"}`,children:[H.type,": ",H.message]}),H.path?s.jsx("code",{children:H.path}):null]},q))})]}),s.jsxs("details",{className:"oc-runtime-context-raw",children:[s.jsx("summary",{children:"原始投影 JSON"}),s.jsx("pre",{children:JSON.stringify(f,null,2)})]})]}),s.jsxs("footer",{className:"oc-runtime-context-foot",children:[s.jsx("span",{className:"oc-runtime-context-meta",children:g?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g,onClick:()=>{Pa()},children:"重新加载会话"}),b&&s.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[b.code?`${b.code}:`:"",b.message,s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Pa()},children:"重试"})]})]})]})]})});function sy(i){const{catalog:o,open:c,onToggle:u,onClose:f,menuRef:m}=i;return s.jsxs("div",{className:"oc-tools-menu oc-tools-menu--composer",ref:m,children:[s.jsxs("button",{type:"button",className:`oc-cap-chip oc-tools-toggle${c?" is-active":""}`,"aria-pressed":c,"aria-expanded":c,"aria-controls":"oc-tools-catalog",onClick:u,children:[o.total," 工具"]}),c&&s.jsxs("div",{id:"oc-tools-catalog",className:"oc-tools-catalog",role:"dialog","aria-label":"可用工具列表",children:[s.jsxs("header",{className:"oc-tools-catalog-head",children:[s.jsx("strong",{children:"可用工具"}),s.jsxs("span",{className:"oc-tools-catalog-meta",children:[o.total," 个 · 点选了解简介"]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-tools-catalog-close","aria-label":"关闭工具列表",onClick:f,children:"关闭"})]}),s.jsxs("div",{className:"oc-tools-catalog-body",children:[o.explore.length>0&&s.jsxs("section",{className:"oc-tools-group",children:[s.jsx("h4",{className:"oc-tools-group-title",children:"仓库探查"}),s.jsx("ul",{className:"oc-tools-list",children:o.explore.map(h=>s.jsxs("li",{className:"oc-tools-item",children:[s.jsxs("div",{className:"oc-tools-item-head",children:[s.jsx("code",{className:"oc-tools-name",children:h.toolId}),s.jsx("span",{className:"oc-tools-kind is-explore",children:bm(h.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:h.description})]},h.toolId))})]}),s.jsxs("section",{className:"oc-tools-group",children:[s.jsx("h4",{className:"oc-tools-group-title",children:"Operator 动作"}),s.jsx("ul",{className:"oc-tools-list",children:o.operator.map(h=>s.jsxs("li",{className:"oc-tools-item",children:[s.jsxs("div",{className:"oc-tools-item-head",children:[s.jsx("code",{className:"oc-tools-name",children:h.toolId}),s.jsx("span",{className:`oc-tools-kind is-${h.kind??"read"}`,children:bm(h.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:h.description}),h.cli&&s.jsxs("p",{className:"oc-tools-cli",children:["CLI: ",s.jsx("code",{children:h.cli})]})]},h.toolId))})]})]})]})]})}function ly(i){const{composer:o,streaming:c,hasThread:u}=i,f=ts(),m=f.reloading,h=f.reloadError,b=f.mutationBusy||m||c,y=v.useCallback(()=>{o.setInput(""),o.setShortcutOpen(!1),Pa()},[o.setInput,o.setShortcutOpen]),E=v.useCallback(T=>{const H=o.isComposingNow()||T.nativeEvent.isComposing,q=o.recentlyComposedNow();if(T.key==="Enter"&&!T.shiftKey&&!H&&!q){if(o.shortcutOpen&&o.filteredShortcuts.length>0){if((o.filteredShortcuts[o.shortcutIndex]??o.filteredShortcuts[0])?.command==="/reload"){T.preventDefault(),y();return}}else if(o.input.trim()==="/reload"){T.preventDefault(),y();return}}i.onKeyDown(T)},[o.isComposingNow,o.recentlyComposedNow,o.shortcutOpen,o.filteredShortcuts,o.shortcutIndex,o.input,y,i.onKeyDown]),j=v.useCallback(T=>{if(T==="/reload"){y();return}i.onRunShortcut(T)},[y,i.onRunShortcut]),O=v.useCallback(()=>{if(o.input.trim()==="/reload"){y();return}i.onSend(o.input)},[o.input,y,i.onSend]);return s.jsx("div",{className:"oc-composer",children:s.jsxs("div",{className:"oc-composer-inner",children:[o.fileOptions.length>0&&s.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:o.fileOptions.map(T=>s.jsx("button",{type:"button",role:"option",onMouseDown:H=>H.preventDefault(),onClick:()=>o.insertFileReference(T),children:s.jsxs("code",{children:["@",T]})},T))}),o.pendingImages.length>0&&s.jsx("div",{className:"oc-attachment-list",children:o.pendingImages.map(T=>s.jsxs("span",{children:[T.name,s.jsx("button",{type:"button","aria-label":`移除 ${T.name}`,onClick:()=>o.removeImage(T),children:"×"})]},T.name))}),s.jsxs("div",{className:"oc-composer-toolbar",children:[s.jsxs("label",{className:"oc-attach-button",children:["添加图片",s.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,hidden:!0,onChange:T=>{o.addImagesFromFiles(Array.from(T.target.files??[]).slice(0,4)),T.target.value=""}})]}),s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",s.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]}),m&&s.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),o.shortcutOpen&&o.filteredShortcuts.length>0&&s.jsx("div",{className:"oc-shortcut-palette",role:"listbox","aria-label":"Chat shortcuts",children:o.filteredShortcuts.map((T,H)=>s.jsxs("button",{type:"button",role:"option","aria-selected":H===o.shortcutIndex,className:H===o.shortcutIndex?"is-active":"",onMouseDown:q=>q.preventDefault(),onClick:()=>j(T.command),children:[s.jsx("code",{children:T.command}),s.jsxs("span",{children:[s.jsx("strong",{children:T.label}),s.jsx("small",{children:T.description})]})]},T.command))}),s.jsxs("div",{className:`oc-composer-shell${c?" is-busy":""}`,children:[s.jsx("textarea",{ref:o.textareaRef,className:"oc-textarea",value:o.input,rows:3,placeholder:c?"正在生成回复…(可直接发起新问题)":u?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:T=>o.handleInputChange(T.target.value),onKeyDown:E,onCompositionStart:o.onCompositionStart,onCompositionEnd:o.onCompositionEnd,disabled:c}),c?s.jsx("button",{type:"button",className:"oc-stop",title:"停止生成","aria-label":"停止生成",onClick:i.onStop,children:s.jsx(Gg,{})}):s.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:O,disabled:!o.input.trim()&&o.pendingImages.length===0||m,children:s.jsx(qg,{})})]}),h&&s.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[s.jsxs("span",{children:[h.code?`${h.code}:`:"",h.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Pa()},children:"重试"})]}),s.jsxs("div",{className:"oc-runtime-controls",children:[s.jsx(ey,{models:i.models,activeModelRef:i.activeModelRef,triggerLabel:i.activeModelRef||"选择模型",disabled:b,onSelect:(T,H)=>i.onSwitchRuntime({provider:T,modelId:H})}),s.jsx(ny,{levels:i.thinkingLevels,activeValue:i.activeThinkingLevel||"auto",triggerLabel:i.activeThinkingLevel||"auto",disabled:b,onSelect:T=>i.onSwitchRuntime({thinkingLevel:T})}),s.jsxs("span",{className:"oc-usage",title:jm(i.usage),children:[c?"运行中":"空闲",i.unread>0?` · ${i.unread} 未读`:""," · ",jm(i.usage)]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onCompact,disabled:c||!u,title:u?c?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:"Compact"}),i.toolCatalog?s.jsx(sy,{catalog:i.toolCatalog,open:i.toolsOpen,onToggle:i.onToggleTools,onClose:i.onCloseTools,menuRef:i.toolsMenuRef}):null,i.processSummary&&s.jsxs("button",{type:"button",className:`oc-process-summary is-${i.processSummary.statusKind}${i.processOpen?" is-open":""}`,"aria-pressed":i.processOpen,"aria-controls":"oc-process-panel",onClick:i.onToggleProcess,children:["全部工具 · ",i.processSummary.count," ·"," ",i.processSummary.statusLabel]}),i.runtimeContext&&s.jsx(ay,{ref:i.runtimeContextMenuRef,open:i.runtimeContextOpen,onToggle:i.onToggleRuntimeContext,onClose:i.onCloseRuntimeContext,context:i.runtimeContext})]})]})})}function iy(i){const{toolCalls:o,onClose:c}=i;return s.jsxs("aside",{id:"oc-process-panel",className:"oc-process","aria-label":"全部工具",children:[s.jsxs("header",{className:"oc-process-head",children:[s.jsxs("div",{className:"oc-process-title",children:[s.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"全部工具",s.jsx("span",{className:"oc-process-count",children:o.length})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭全部工具",onClick:c,children:"关闭"})]}),s.jsx("div",{className:"oc-process-timeline",children:o.length===0?s.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):o.map((u,f)=>s.jsxs("div",{className:`oc-process-item${f===0?" is-first":""}${f===o.length-1?" is-last":""}${u.status==="error"?" is-error":""}${u.status==="running"?" is-running":""}`,children:[s.jsx("div",{className:"oc-process-rail","aria-hidden":"true",children:s.jsx("span",{className:"oc-process-dot"})}),s.jsx("div",{className:"oc-process-time",children:Dm(u.createdAt)}),s.jsx("div",{className:"oc-process-body",children:s.jsx(Qm,{entry:u})})]},u.id))})]})}function ry(){const i=v.useRef(null),o=v.useRef(!1),c=v.useRef(null),u=v.useRef(new Map),f=v.useRef(new Set),m=v.useRef(null),h=v.useRef(null),g=v.useRef(0),b=v.useRef(null),y=v.useRef(new Set),E=v.useRef(new Set),j=v.useRef(new Map),O=v.useRef(null),T=v.useRef(null),H=v.useRef(new Set),q=v.useRef(!1),ae=v.useRef(0);return v.useMemo(()=>({sessionRef:i,streamingRef:o,abortRef:c,sessionAbortControllersRef:u,inlineStreamSessionIdsRef:f,assistantIdRef:m,lastEventIdRef:h,sessionGenerationRef:g,eventsStreamStateRef:b,settledTurnIdsRef:y,seenEventIdsRef:E,turnAssistantIdsRef:j,reconnectAbortRef:O,activeTurnIdRef:T,usageResponseKeysRef:H,isComposingRef:q,compositionEndedAtRef:ae}),[i,o,c,u,f,m,h,g,b,y,E,j,O,T,H,q,ae])}const cy=["operation","contract","dag","report","html"];function oy(i){const o=i.artifact;if(!o||typeof o!="object")return;const c=o;if(!(c.schemaVersion!==1||typeof c.artifactId!="string"||!c.artifactId||typeof c.kind!="string"||!cy.includes(c.kind)||typeof c.previewHash!="string")){for(const u of["title","summary","htmlPreview","reportText","inspectHref"])if(c[u]!==void 0&&typeof c[u]!="string")return;return c}}function uy(i,o){const c=i.findIndex(u=>u.artifactId===o.artifactId);return c<0?[...i,o]:i.map((u,f)=>f===c?{...u,...o}:u)}function dy(i){if(!i||typeof i!="object")return;const o=i;if(!(o.schemaVersion!==1||typeof o.cardId!="string"||o.gateType!=="contract-apply"&&o.gateType!=="dag-run"||typeof o.taskId!="string"||typeof o.state!="string"||typeof o.expiresAt!="string"||typeof o.inspectHref!="string"||typeof o.previewHash!="string"))return o}function fy(i,o){const c=i.findIndex(f=>f.cardId===o.cardId);if(c<0)return[...i,o];const u=[...i];return u[c]=o,u}function my(i,o){const c=i.findIndex(u=>u.operationId===o.operationId);return c<0?[...i,o]:i.map((u,f)=>f===c?{...u,...o}:u)}function hy(i){const o=i.operation;if(!o||typeof o!="object")return;const c=o;if(!(c.schemaVersion!==1||typeof c.operationId!="string"||typeof c.action!="string"||typeof c.state!="string"||typeof c.inspectHref!="string"||typeof c.createdAt!="string"||typeof c.updatedAt!="string"||typeof c.previewHash!="string"))return c}function py(i){const{refs:o,onReconcile:c,setError:u,setProcessOpen:f,setInterview:m,setHumanGateCards:h,setArtifactCards:g,setStreaming:b,setStreamingAssistantId:y,setUnread:E,setOperationCards:j,setUsage:O,setMessages:T,setToolCalls:H}=i;return(q,ae,le,_)=>{if(_?.generation!==void 0&&o.sessionGenerationRef.current!==_.generation)return;const Q=_?.replay===!0;if(q==="stream_ready")return;if(q==="reconcile"){const R=typeof ae.reason=="string"?ae.reason:"cursor_expired";c?.({reason:R,...typeof ae.minSeq=="number"?{minSeq:ae.minSeq}:{},...typeof ae.epoch=="string"?{epoch:ae.epoch}:{},...typeof ae.latestTurnId=="string"?{latestTurnId:ae.latestTurnId}:{},...typeof ae.latestEventId=="string"?{latestEventId:ae.latestEventId}:ae.latestEventId===null?{latestEventId:null}:{}});return}const Y=ae.data&&typeof ae.data=="object"?ae.data:ae,X=typeof ae.turnId=="string"?ae.turnId:void 0;if(X&&(q==="agent_start"||q==="message_update")&&o.settledTurnIdsRef.current.has(X))return;let A=le;if(X){const R=o.turnAssistantIdsRef.current.get(X);R?A=R:o.turnAssistantIdsRef.current.set(X,le)}if(q==="interview-turn"){m(R=>({...R??{},interviewSessionId:typeof Y.interviewSessionId=="string"?Y.interviewSessionId:R?.interviewSessionId,taskId:typeof Y.taskId=="string"?Y.taskId:R?.taskId,state:typeof Y.state=="string"?Y.state:R?.state,question:Y.question&&typeof Y.question=="object"?Y.question:void 0}));return}if(q==="draft"){m(R=>({...R??{},taskId:typeof Y.taskId=="string"?Y.taskId:R?.taskId,draft:Y.draft&&typeof Y.draft=="object"?Y.draft:R?.draft,draftSha256:typeof Y.draftSha256=="string"?Y.draftSha256:R?.draftSha256,taskKindRecommendation:typeof Y.taskKindRecommendation=="string"?Y.taskKindRecommendation:R?.taskKindRecommendation}));return}if(q==="assessment"){m(R=>({...R??{},assessment:Y}));return}if(q==="taskKind-confirmed"){m(R=>({...R??{},confirmedTaskKind:typeof Y.taskKind=="string"?Y.taskKind:R?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(q==="human-gate-card"){const R=dy(Y);R&&h(W=>fy(W,R));return}if(q==="artifact-ref"){const R=oy(Y);R&&g(W=>uy(W,R));return}if(q==="agent_start"){if(Q&&X!==void 0&&X!==o.activeTurnIdRef.current)return;X&&(o.settledTurnIdsRef.current.delete(X),o.activeTurnIdRef.current=X),o.streamingRef.current=!0,b(!0),y(A);return}if(q==="agent_settled"||q==="agent_end"){if(X&&o.settledTurnIdsRef.current.add(X),q==="agent_end")return;X===o.activeTurnIdRef.current&&(o.activeTurnIdRef.current=null),o.streamingRef.current=!1,b(!1),y(null),q==="agent_settled"&&!Q&&typeof document<"u"&&document.hidden&&E(R=>R+1),T(R=>R.filter(W=>!(W.id===A&&W.role==="assistant"&&!W.text.trim()))),H(R=>R.map(W=>W.status==="running"&&W.assistantMessageId===A?{...W,status:"error",finishedAt:Date.now()}:W));return}if(q==="operation-ref"||q==="operation-status"){const R=hy(Y);R&&j(W=>my(W,R));return}if(q==="usage"){if(Q)return;const R=Y,W=typeof R.responseKey=="string"&&R.responseKey?R.responseKey:void 0;if(W&&o.usageResponseKeysRef.current.has(W))return;W&&o.usageResponseKeysRef.current.add(W),O(ie=>{const K=R.inputTokens??0,L=R.outputTokens??0,G=R.cacheReadTokens??0,ee=R.cacheWriteTokens??0,D=R.totalTokens??K+L+G+ee;return{inputTokens:ie.inputTokens+K,outputTokens:ie.outputTokens+L,cacheReadTokens:ie.cacheReadTokens+G,cacheWriteTokens:ie.cacheWriteTokens+ee,totalTokens:ie.totalTokens+D,cost:R.cost===void 0?ie.cost:(ie.cost??0)+R.cost}});return}if(q==="message_update"||q==="message_end"){if(Q)return;const R=typeof Y.text=="string"?Y.text:"";T(W=>W.some(K=>K.id===A)?W.map(K=>K.id===A?{...K,text:R}:K):[...W,{id:A,role:"assistant",text:R,createdAt:Date.now()}])}else if(q==="tool_call"){const R=typeof Y.toolCallId=="string"?Y.toolCallId:Fs("t"),W=typeof Y.toolName=="string"?Y.toolName:"tool",ie=typeof Y.argsPreview=="string"?Y.argsPreview:"{}",K=Date.now();H(L=>L.some(G=>G.id===R)?L.map(G=>G.id===R?{...G,args:ie,status:"running",turnId:X??G.turnId,assistantMessageId:A}:G):[...L,{id:R,toolName:W,args:ie,status:"running",createdAt:K,turnId:X,assistantMessageId:A}])}else if(q==="tool_result"){const R=typeof Y.toolCallId=="string"?Y.toolCallId:Fs("r"),W=typeof Y.toolName=="string"?Y.toolName:"tool",ie=Y.isError===!0,K=typeof Y.resultPreview=="string"?Y.resultPreview:"{}",L=Date.now();ie&&f(!0),H(G=>G.find(D=>D.id===R)?G.map(D=>D.id===R?{...D,result:K,resultText:K,status:ie?"error":"ok",finishedAt:L,turnId:X??D.turnId,assistantMessageId:D.assistantMessageId??A}:D):[...G,{id:R,toolName:W,result:K,resultText:K,status:ie?"error":"ok",createdAt:L,finishedAt:L,turnId:X,assistantMessageId:A}])}else q==="error"&&u(typeof Y.message=="string"?Y.message:"chat error")}}const Zc={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function vy(i){const{origin:o,refs:c,sessionId:u,setError:f,setProcessOpen:m,onReconcile:h}=i,[g,b]=v.useState([]),[y,E]=v.useState([]),[j,O]=v.useState([]),[T,H]=v.useState([]),[q,ae]=v.useState(50),[le,_]=v.useState(0),[Q,Y]=v.useState([]),[X,A]=v.useState(null),[R,W]=v.useState(null),[ie,K]=v.useState(!1),[L,G]=v.useState(Zc),[ee,D]=v.useState(!1),[te,N]=v.useState(null),[M]=v.useState(!1),Z=v.useMemo(()=>py({refs:c,onReconcile:h,setError:f,setProcessOpen:m,setInterview:A,setHumanGateCards:Y,setArtifactCards:H,setStreaming:D,setStreamingAssistantId:N,setUnread:_,setOperationCards:O,setUsage:G,setMessages:b,setToolCalls:E}),[c,h,f,m]),ue=v.useCallback((ne,de,me)=>{if(me?.targetSessionId&&c.sessionRef.current?.sessionId!==me.targetSessionId||me?.generation!==void 0&&c.sessionGenerationRef.current!==me.generation)return null;const Ie=ne.split(`
15
- `);let we="message",$e="",vt=null;for(const Ue of Ie)Ue.startsWith("event: ")?we=Ue.slice(7).trim():Ue.startsWith("data: ")?$e+=Ue.slice(6):Ue.startsWith("id: ")&&(vt=Ue.slice(4).trim());if(!$e)return vt;let ye;try{ye=JSON.parse($e)}catch{return vt}const Ce=vt??(typeof ye.eventId=="string"?ye.eventId:null);if(Ce){if(c.seenEventIdsRef.current.has(Ce))return Ce;c.seenEventIdsRef.current.add(Ce)}return Z(we,ye,de,me),vt??Ce},[Z,c]),ce=v.useCallback(async(ne,de)=>{const me=de?.background===!0;me||K(!0);try{const Ie=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(ne)}/context`,{credentials:"include"});if(!Ie.ok)return;const we=await Ie.json();we.context&&c.sessionRef.current?.sessionId===ne&&W($e=>tg($e,we.context)?$e:we.context)}finally{me||K(!1)}},[o,c]);v.useEffect(()=>{u&&ce(u)},[u,ce]),v.useEffect(()=>{if(!u)return;const ne=window.setTimeout(()=>{ce(u,{background:!0})},350);return()=>window.clearTimeout(ne)},[u,j,Q,X,ce]);const x=v.useMemo(()=>g.filter(ne=>ne.role!=="system"||M).slice(-q),[g,M,q]);v.useEffect(()=>{const ne=()=>{document.hidden||_(0)};return document.addEventListener("visibilitychange",ne),()=>document.removeEventListener("visibilitychange",ne)},[]);const w=v.useMemo(()=>{if(y.length===0)return null;const ne=y.filter($e=>$e.status==="running"),de=y.filter($e=>$e.status==="error"),me=ne[ne.length-1];let Ie="完成",we="ok";return de.length>0?(Ie=`${de.length} 出错`,we="error"):ne.length>0&&(Ie=me?`正在调用 ${me.toolName}`:"运行中",we="running"),{count:y.length,statusLabel:Ie,statusKind:we}},[y]),P=v.useMemo(()=>Kg({messages:x,toolCalls:y,streaming:ee,activeAssistantId:te}),[x,y,ee,te]),B=v.useCallback(()=>{b([]),E([]),O([]),Y([]),H([]),A(null),W(null),G(Zc),D(!1),N(null),_(0),ae(50),c.usageResponseKeysRef.current=new Set},[c]),re=v.useCallback(ne=>{b(ne.messages),E(ne.toolCalls),O([]),Y([]),H([]),W(null),A(null),G(Zc),c.usageResponseKeysRef.current=new Set,D(ne.streaming),N(null),_(0),ae(50)},[c]),se=v.useCallback(async ne=>{try{const de=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(ne)}`,{credentials:"include"});if(!de.ok)return!1;const me=await de.json();if(!me.session||c.sessionRef.current?.sessionId!==ne)return!1;const Ie=me.session.activeTurnId??null;return c.activeTurnIdRef.current=Ie,c.streamingRef.current=!!Ie,c.lastEventIdRef.current=me.lastEventId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,b((me.session.messages??[]).filter(we=>we.role==="user"||we.role==="assistant").map(we=>({id:we.id,role:we.role,text:we.text,createdAt:Date.parse(we.at)||Date.now()}))),N(null),!0}catch{return!1}},[o,c,b,N]);return{messages:g,setMessages:b,toolCalls:y,setToolCalls:E,operationCards:j,artifactCards:T,historyLimit:q,setHistoryLimit:ae,unread:le,humanGateCards:Q,interview:X,setInterview:A,taskContext:R,contextLoading:ie,usage:L,streaming:ee,setStreaming:D,streamingAssistantId:te,setStreamingAssistantId:N,visibleMessages:x,turnGroups:P,processSummary:w,applyChatSseEvent:Z,applySseBlock:ue,loadTaskContext:ce,resetForNewSession:B,applyActivatedSession:re,recoverSession:se}}function gy(i){const{origin:o,refs:c,setSession:u,thread:f,composer:m,browser:h,setError:g,setProcessOpen:b,setAutoScroll:y}=i,{applyActivatedSession:E,resetForNewSession:j,setMessages:O}=f,{setInput:T,setPendingImages:H}=m,{setPreviews:q,setActivePreviewPath:ae}=h,[le,_]=v.useState([]),Q=v.useRef(0),Y=v.useCallback(()=>{c.sessionGenerationRef.current+=1,c.abortRef.current?.abort(),c.reconnectAbortRef.current?.abort();for(const L of c.sessionAbortControllersRef.current.values())L.abort();c.sessionAbortControllersRef.current.clear(),c.reconnectAbortRef.current=null,c.eventsStreamStateRef.current=null,c.streamingRef.current=!1,c.abortRef.current=null,c.assistantIdRef.current=null,c.lastEventIdRef.current=null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.activeTurnIdRef.current=null,j(),T(""),H([]),q([]),ae(null),b(!1),y(!0)},[c,j,T,H,q,ae,b,y]),X=v.useCallback(async()=>{try{const L=await fetch(`${o}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!L.ok)return;const G=(await L.json()).sessions??[],ee=G.slice(0,Wc),D=G.slice(Wc);if(_(ee),D.length===0)return;await Promise.all(D.map(N=>fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(N.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Ot()}}).catch(()=>{})));const te=c.sessionRef.current?.sessionId;te&&D.some(N=>N.sessionId===te)&&(Q.current+=1,c.sessionRef.current=null,Y(),u(null),window.localStorage.removeItem(Vt))}catch{}},[o,c,Y,u]),A=v.useCallback(async L=>{if(window.confirm("确定删除该会话?删除后不可恢复。"))try{if(!(await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Ot()}})).ok){g("删除会话失败");return}c.sessionRef.current?.sessionId===L&&(Q.current+=1,c.sessionRef.current=null,Y(),u(null),window.localStorage.removeItem(Vt)),await X()}catch(G){g(G instanceof Error?G.message:String(G))}},[o,c,u,Y,X,g]),R=v.useCallback(async L=>{const G=++Q.current;try{const ee=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}`,{credentials:"include"}),D=await ee.json();if(!ee.ok||!D.session)throw new Error(D.error?.message??"会话不可用");if(G!==Q.current)return;const te={sessionId:D.session.sessionId,...Nm(D.session)};Y(),c.sessionRef.current=te,c.streamingRef.current=!!D.session.activeTurnId,c.activeTurnIdRef.current=D.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(te),c.assistantIdRef.current=null,c.abortRef.current=c.sessionAbortControllersRef.current.get(L)??null,H([]),q([]),T(D.session.composerDraft??"");const N=Yg(D.session.messages??[]);E({messages:N.messages,toolCalls:N.toolCalls,streaming:!!D.session.activeTurnId}),window.localStorage.setItem(Vt,L),ae(null)}catch(ee){if(G!==Q.current)return;g(ee instanceof Error?ee.message:String(ee))}},[o,c,u,H,q,T,E,Y,ae,g]);v.useEffect(()=>{X()},[X]),v.useEffect(()=>{let L=!1;const G=window.localStorage.getItem(Vt);if(!G)return;const ee=++Q.current;return(async()=>{try{const D=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(G)}`,{credentials:"include"});if(!D.ok){window.localStorage.removeItem(Vt);return}const te=await D.json();if(L||ee!==Q.current||!te.session)return;const N={sessionId:te.session.sessionId,...Nm(te.session)};c.sessionGenerationRef.current+=1,c.sessionRef.current=N,c.activeTurnIdRef.current=te.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(N),T(te.session.composerDraft??""),O((te.session.messages??[]).filter(M=>M.role==="user"||M.role==="assistant").map(M=>({id:M.id,role:M.role,text:M.text,createdAt:Date.parse(M.at)||Date.now()})))}catch{}})(),()=>{L=!0}},[o,c,u,T,O]);const W=v.useCallback(async L=>{const G=++Q.current;g(null);try{const ee=await fetch(`${o}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},credentials:"include",body:JSON.stringify(L??{})});if(!ee.ok){const N=await ee.json().catch(()=>({}));throw new Error(N.error?.message??`HTTP ${ee.status}`)}const D=await ee.json(),te={sessionId:D.sessionId,...D.model?{model:D.model}:{}};return X(),G!==Q.current?null:(Y(),c.sessionRef.current=te,window.localStorage.setItem(Vt,te.sessionId),u(te),te)}catch(ee){return G!==Q.current||g(ee instanceof Error?ee.message:String(ee)),null}},[o,c,u,g,Y,X]),ie=v.useCallback(async()=>{const L=c.sessionRef.current;if(!(!L||c.streamingRef.current))try{const G=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(L.sessionId)}/compact`,{method:"POST",credentials:"include",headers:{"x-loop-console-confirmation":Ot()}}),ee=await G.json().catch(()=>({}));if(!G.ok){g(ee.error?.message??"上下文压缩失败");return}g(null)}catch(G){g(G instanceof Error?G.message:"上下文压缩失败")}},[o,c,g]);return{sessionList:le,activateSession:R,refreshSessionList:X,deleteSession:A,createSession:W,updateSession:async(L,G)=>{if(!(await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ot()},body:JSON.stringify(G)})).ok){g("会话更新失败");return}await X(),G.state==="archived"&&c.sessionRef.current?.sessionId===L&&(Q.current+=1,c.sessionRef.current=null,Y(),u(null),window.localStorage.removeItem(Vt))},compactSession:ie}}function Fa(i){const o=(i??"").trim();return o?/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(o)?"控制器版本已变更(Console 启动后代码被重新编译)。请重启 Console 后再试,一次会话中途不要升级/重建控制器。":/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(o)?"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。":/reopened Pi sessionId mismatch/i.test(o)?"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。":/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(o)?"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。":/force-required|requires --force/i.test(o)?"该终态需要强制 Discard。请确认后勾选强制再试。":o:"操作失败"}function yy(i){return i.split(`
16
- `).find(o=>o.startsWith("event: "))?.slice(7).trim()??"message"}function by(){return new Promise(i=>window.setTimeout(i,25))}function xy(i){const{origin:o,refs:c,session:u,thread:f,composer:m,setError:h,setAutoScroll:g,recoveryVersion:b=0}=i,{applySseBlock:y,setMessages:E,setStreaming:j,setStreamingAssistantId:O,streaming:T}=f,{setInput:H,setPendingImages:q}=m,ae=v.useCallback(async(X,A,R)=>{for(;!R.aborted;){const W=c.eventsStreamStateRef.current;if(!W||W.sessionId!==X||W.generation!==A)return;W.ready=!1;try{const ie={Accept:"text/event-stream"},K=c.lastEventIdRef.current;K&&(ie["Last-Event-ID"]=K);const L=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(X)}/events`,{headers:ie,credentials:"include",signal:R});if(!L.ok||!L.body){if(L.status===404)return;await Qc(2e3,R);continue}const G=L.body.getReader(),ee=new TextDecoder;let D="",te=!0;const N=Fs("a");for(;;){const{done:Z,value:ue}=await G.read();if(Z)break;D+=ee.decode(ue,{stream:!0});const ce=D.split(`
17
-
18
- `);D=ce.pop()??"";for(const x of ce){if(yy(x)==="stream_ready"){const B=c.eventsStreamStateRef.current;B?.sessionId===X&&B.generation===A&&(B.ready=!0),te=!1;continue}const w=c.assistantIdRef.current??N,P=y(x,w,{replay:te,targetSessionId:X,generation:A});P&&(c.lastEventIdRef.current=P)}}const M=c.eventsStreamStateRef.current;M?.sessionId===X&&M.generation===A&&(M.ready=!1),await Qc(1e3,R)}catch{if(R.aborted)return;await Qc(2e3,R)}}},[o,c,y]),le=v.useCallback((X,A)=>{const R=c.eventsStreamStateRef.current;if(R?.sessionId===X&&R.generation===A&&c.reconnectAbortRef.current)return;c.reconnectAbortRef.current?.abort();const W=new AbortController;c.reconnectAbortRef.current=W,c.eventsStreamStateRef.current={sessionId:X,generation:A,ready:!1},ae(X,A,W.signal)},[c,ae]),_=v.useCallback(async(X,A)=>{le(X,A);const R=Date.now()+5e3;for(;Date.now()<R;){const W=c.eventsStreamStateRef.current;if(W?.sessionId===X&&W.generation===A&&W.ready)return;if(c.sessionRef.current?.sessionId!==X||c.sessionGenerationRef.current!==A)throw new Error("会话已切换");await by()}throw new Error("事件连接未就绪,请检查 Console 连接后重试")},[c,le]),Q=v.useCallback(async(X,A)=>{const R=c.sessionRef.current,W=c.sessionGenerationRef.current;if(!R||!X.trim()&&A.length===0||c.streamingRef.current)return;try{await _(R.sessionId,W)}catch(G){c.sessionRef.current?.sessionId===R.sessionId&&c.sessionGenerationRef.current===W&&h(Fa(G instanceof Error?G.message:String(G)));return}if(c.sessionRef.current?.sessionId!==R.sessionId||c.sessionGenerationRef.current!==W)return;const ie={id:Fs("u"),role:"user",text:X.trim(),createdAt:Date.now()},K=Fs("a");E(G=>[...G,ie,{id:K,role:"assistant",text:"",createdAt:Date.now()}]),H(""),g(!0),h(null),c.streamingRef.current=!0,c.assistantIdRef.current=K,j(!0),O(K);const L=new AbortController;c.abortRef.current=L,c.sessionAbortControllersRef.current.set(R.sessionId,L);try{const G=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(R.sessionId)}/turns`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},credentials:"include",body:JSON.stringify({text:X.trim()||"请查看附件图片。",images:A.map(({type:D,mimeType:te,data:N})=>({type:D,mimeType:te,data:N}))}),signal:L.signal}),ee=await G.json().catch(()=>({}));if(!G.ok||!ee.turnId)throw new Error(ee.error?.message??`HTTP ${G.status}`);if(c.sessionRef.current?.sessionId!==R.sessionId||c.sessionGenerationRef.current!==W)return;c.activeTurnIdRef.current=ee.turnId,c.turnAssistantIdsRef.current.set(ee.turnId,K),q([])}catch(G){G?.name!=="AbortError"&&c.sessionRef.current?.sessionId===R.sessionId&&c.sessionGenerationRef.current===W&&(h(Fa(G instanceof Error?G.message:String(G))),c.streamingRef.current=!1,c.assistantIdRef.current=null,j(!1),O(null),E(ee=>ee.filter(D=>D.id!==K||D.text.trim())))}finally{c.sessionAbortControllersRef.current.delete(R.sessionId),c.abortRef.current===L&&(c.abortRef.current=null)}},[o,c,_,E,H,g,h,j,O,q]),Y=v.useCallback(()=>{c.abortRef.current?.abort(),c.activeTurnIdRef.current&&c.settledTurnIdsRef.current.add(c.activeTurnIdRef.current),c.streamingRef.current=!1,c.activeTurnIdRef.current=null,j(!1),O(null),E(X=>X.filter(A=>!(A.id===c.assistantIdRef.current&&A.role==="assistant"&&!A.text.trim()))),c.assistantIdRef.current=null},[c,j,O,E]);return v.useEffect(()=>{if(!u||!T)return;const X=u.sessionId,A=c.sessionGenerationRef.current;let R=!1;const W=async()=>{try{const G=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(X)}/state`,{credentials:"include"}),ee=await G.json().catch(()=>({}));if(R||!G.ok||c.sessionRef.current?.sessionId!==X||c.sessionGenerationRef.current!==A)return;const D=ee.state?.activeTurnId??null;if(c.activeTurnIdRef.current=D,D!==null||!c.streamingRef.current)return;const te=c.assistantIdRef.current;c.streamingRef.current=!1,c.assistantIdRef.current=null,j(!1),O(null),E(N=>N.filter(M=>!(M.id===te&&M.role==="assistant"&&!M.text.trim())))}catch{}},ie=()=>{document.visibilityState==="visible"&&W()},K=()=>{W()},L=window.setInterval(()=>{W()},15e3);return document.addEventListener("visibilitychange",ie),window.addEventListener("online",K),()=>{R=!0,window.clearInterval(L),document.removeEventListener("visibilitychange",ie),window.removeEventListener("online",K)}},[o,c,u,T,j,O,E]),v.useEffect(()=>{if(!u)return;const X=c.sessionGenerationRef.current;return le(u.sessionId,X),()=>{const A=c.eventsStreamStateRef.current;A?.sessionId===u.sessionId&&A.generation===X&&(c.reconnectAbortRef.current?.abort(),c.reconnectAbortRef.current=null,c.eventsStreamStateRef.current=null)}},[u,b,c,le]),{sendPrompt:Q,handleStop:Y,openEventsStream:ae}}function Sy(i){const{origin:o,refs:c,thread:u,setError:f}=i,{interview:m,setInterview:h}=u,[g,b]=v.useState(""),y=v.useCallback(async()=>{const O=c.sessionRef.current;if(!O)return;const T=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!T)return;const H=await fetch(`${o}/api/operator/v1/chat/sessions/${O.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},credentials:"include",body:JSON.stringify({taskId:T})}),q=await H.json();if(!H.ok){f(q.error?.message??`HTTP ${H.status}`);return}h({interviewSessionId:q.interview?.sessionId,taskId:T,state:q.interview?.state,question:q.question,draft:q.draft?.draft,draftSha256:q.draft?.draftSha256,assessment:q.assessment})},[o,c,h,f]),E=v.useCallback(async O=>{const T=c.sessionRef.current;if(!T||!m?.interviewSessionId||!m.question)return;const H=await fetch(`${o}/api/operator/v1/chat/sessions/${T.sessionId}/interviews/${m.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},credentials:"include",body:JSON.stringify({questionId:m.question.id,response:O,...O==="override"?{text:g}:{}})}),q=await H.json();if(!H.ok){f(q.error?.message??`HTTP ${H.status}`);return}h(ae=>({...ae??{},state:q.interview?.state,question:q.question,draft:q.draft?.draft,draftSha256:q.draft?.draftSha256,assessment:q.assessment,taskKindRecommendation:q.taskKindRecommendation??ae?.taskKindRecommendation})),b("")},[o,c,m,g,h,f]),j=v.useCallback(async()=>{const O=c.sessionRef.current;if(!O||!m?.interviewSessionId||!m.taskKindRecommendation)return;const T=await fetch(`${o}/api/operator/v1/chat/sessions/${O.sessionId}/interviews/${m.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ot()},credentials:"include",body:JSON.stringify({taskKind:m.taskKindRecommendation})}),H=await T.json();if(!T.ok){f(H.error?.message??`HTTP ${T.status}`);return}h(q=>({...q??{},confirmedTaskKind:q?.taskKindRecommendation,taskKindRecommendation:void 0,draft:H.draft?.draft,draftSha256:H.draft?.draftSha256,assessment:H.assessment}))},[o,c,m,h,f]);return{interviewAnswer:g,setInterviewAnswer:b,startInterview:y,answerInterview:E,confirmTaskKind:j}}function jy(i){const{origin:o,refs:c,sessionId:u,setError:f}=i,[m,h]=v.useState({}),[g,b]=v.useState(new Set),[y,E]=v.useState(null),[j,O]=v.useState([]),[T,H]=v.useState(null),[q,ae]=v.useState(!1),le=v.useCallback(async(X="")=>{try{E(null);const A=await fetch(`${o}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(X)}`,{credentials:"include"}),R=await A.json();if(!A.ok)throw new Error(R.error?.message??"无法读取仓库目录");h(W=>({...W,[X]:R.data?.entries??[]}))}catch(A){E(A instanceof Error?A.message:String(A))}},[o]);v.useEffect(()=>{le()},[le]);const _=v.useCallback(async X=>{ae(!0);try{const A=await fetch(`${o}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(X)}`,{credentials:"include"}),R=await A.json();if(!A.ok||!R.data)throw new Error(R.error?.message??"无法预览文件");O(W=>{const ie=[...W.filter(L=>L.path!==R.data.path),R.data],K=c.sessionRef.current?.sessionId;return K&&window.localStorage.setItem(`${Vt}.previews.${K}`,JSON.stringify(ie.map(L=>L.path))),ie}),H(R.data.path)}catch(A){f(A instanceof Error?A.message:String(A))}finally{ae(!1)}},[o,c,f]);v.useEffect(()=>{if(!u)return;let X=[];try{const A=JSON.parse(window.localStorage.getItem(`${Vt}.previews.${u}`)??"[]");Array.isArray(A)&&(X=A.filter(R=>typeof R=="string").slice(0,10))}catch{}X.length&&Promise.all(X.map(async A=>{const R=await fetch(`${o}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(A)}`,{credentials:"include"});if(R.ok)return(await R.json()).data})).then(A=>{if(c.sessionRef.current?.sessionId!==u)return;const R=A.filter(W=>!!W);O(R),H(R.at(-1)?.path??null)})},[o,u,c]);const Q=v.useCallback(X=>{b(A=>{const R=new Set(A);return R.has(X)?R.delete(X):R.add(X),R}),m[X]||le(X)},[m,le]),Y=v.useCallback(X=>{O(A=>{const R=A.filter(W=>W.path!==X);return u&&window.localStorage.setItem(`${Vt}.previews.${u}`,JSON.stringify(R.map(W=>W.path))),R}),H(A=>A===X?j.find(R=>R.path!==X)?.path??null:A)},[j,u]);return{tree:m,expandedDirs:g,treeError:y,previews:j,activePreviewPath:T,setActivePreviewPath:H,previewLoading:q,setPreviews:O,loadTree:le,openPreview:_,closePreview:Y,toggleDir:Q}}function Ny(i){const{origin:o,sessionId:c,refs:u,setError:f}=i,[m,h]=v.useState(""),[g,b]=v.useState([]),[y,E]=v.useState([]),[j,O]=v.useState(!1),[T,H]=v.useState(0),q=v.useRef(null),ae=v.useCallback(ie=>{h(ie),O(ie.startsWith("/")),H(0)},[]);v.useEffect(()=>{if(!c)return;const ie=m.slice(0,q.current?.selectionStart??m.length).match(/(?:^|\s)@([^\s@]*)$/);if(!ie){b([]);return}const K=window.setTimeout(()=>{fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/files?q=${encodeURIComponent(ie[1]??"")}`).then(L=>L.ok?L.json():null).then(L=>b((L?.files??[]).map(G=>G.path)))},150);return()=>window.clearTimeout(K)},[o,c,m]);const le=v.useCallback(ie=>{const K=q.current?.selectionStart??m.length,G=m.slice(0,K).search(/@[^\s@]*$/);G<0||(h(`${m.slice(0,G)}@${ie} ${m.slice(K)}`),b([]))},[m]),_=v.useCallback(ie=>{for(const K of Array.from(ie).slice(0,4)){if(!K.type.startsWith("image/")||K.size>5*1024*1024){f("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const L=new FileReader;L.onload=()=>{const G=String(L.result??""),ee=G.slice(G.indexOf(",")+1);E(D=>[...D,{name:K.name,type:"image",mimeType:K.type,data:ee}].slice(0,4))},L.readAsDataURL(K)}},[f]),Q=v.useCallback(ie=>{E(K=>K.filter(L=>L!==ie))},[]);v.useLayoutEffect(()=>{const ie=q.current;ie&&(ie.style.height="auto",ie.style.height=`${Math.min(ie.scrollHeight,280)}px`)},[m]),v.useEffect(()=>{if(!c)return;const ie=window.setTimeout(()=>{fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ot()},body:JSON.stringify({text:m})})},400);return()=>window.clearTimeout(ie)},[o,c,m]);const Y=v.useMemo(()=>m.startsWith("/")?no.filter(ie=>ie.command.startsWith(m.trim().split(/\s+/,1)[0].toLowerCase())):[],[m]),X=v.useCallback(()=>{u.isComposingRef.current=!0},[u]),A=v.useCallback(()=>{u.isComposingRef.current=!1,u.compositionEndedAtRef.current=Date.now()},[u]),R=v.useCallback(()=>u.isComposingRef.current,[u]),W=v.useCallback(()=>Date.now()-u.compositionEndedAtRef.current<100,[u]);return v.useEffect(()=>{lg({origin:o,sessionId:c,refs:u})},[o,c,u]),{input:m,setInput:h,handleInputChange:ae,fileOptions:g,pendingImages:y,setPendingImages:E,addImagesFromFiles:_,removeImage:Q,shortcutOpen:j,setShortcutOpen:O,shortcutIndex:T,setShortcutIndex:H,filteredShortcuts:Y,insertFileReference:le,textareaRef:q,onCompositionStart:X,onCompositionEnd:A,isComposingNow:R,recentlyComposedNow:W}}const Ry=[{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 Cy(i){if(!i)return null;const o=(i.tools??[]).map(u=>({toolId:u.toolId,action:u.action,description:u.description,kind:u.kind??"read",cli:u.cli})),c=[...Ry];return{explore:c,operator:o,total:c.length+o.length}}let Ty=0;function Ey(i){const{origin:o,session:c,setSession:u,refs:f,setError:m}=i,[h,g]=v.useState(null),[b,y]=v.useState([]),[E,j]=v.useState("idle"),[O,T]=v.useState(null),[H,q]=v.useState([]),[ae,le]=v.useState(null),[_,Q]=v.useState(null),[Y,X]=v.useState(!1),[A,R]=v.useState(!1),[W,ie]=v.useState(!1),K=v.useRef(null),L=v.useRef(null),G=v.useRef(0);v.useEffect(()=>{G.current=-1,X(!1)},[c?.sessionId,X]);const D=ts().snapshot,te=v.useCallback(async()=>{try{const se=await fetch(`${o}/api/operator/v1/chat/capabilities`);if(!se.ok)return;const ne=await se.json();g(ne)}catch{}},[o]);v.useEffect(()=>{te()},[te]);const N=v.useCallback(async()=>{if(!c){y([]),j("idle");return}const se=c.sessionId;j("loading"),T(null);try{const ne=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(se)}/models`,{credentials:"include"}),de=await ne.json().catch(()=>null);if(f.sessionRef.current?.sessionId!==se)return;if(!ne.ok||!de){j("error"),T(de?.error?.message??`模型列表读取失败(HTTP ${ne.status})`);return}y(de.models??[]),q(de.thinkingLevels??[]),j("ready")}catch(ne){if(f.sessionRef.current?.sessionId!==se)return;j("error"),T(ne instanceof Error?ne.message:String(ne))}},[o,c,f]);v.useEffect(()=>{N()},[N]),v.useEffect(()=>{if(!c){le(null),Q(null);return}const se=c.sessionId,ne=`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(se)}`;Q(null),fetch(`${ne}/runtime-context`,{credentials:"include"}).then(async de=>{const me=await de.json().catch(()=>null);if(!me?.context||f.sessionRef.current?.sessionId!==se)return;const Ie=me.context,we=og().snapshot;le($e=>ag($e,Ie,we,se))}).catch(()=>{f.sessionRef.current?.sessionId===se&&Q("注入上下文读取失败,请重试")})},[o,c?.sessionId,f]),v.useEffect(()=>{if(!D||!c||D.sessionId!==c.sessionId)return;const se=zm(D);u(ne=>{if(!ne||ne.sessionId!==D.sessionId||Fg(ne,se))return ne;const de=Vm(ne,se);return f.sessionRef.current=de,de}),le(ne=>{if(!ne)return ne;const de={...ne,...se.model?{model:se.model}:{},...se.thinkingLevel?{thinkingLevel:se.thinkingLevel}:{}};return de.model?.provider===ne.model?.provider&&de.model?.modelId===ne.model?.modelId&&de.thinkingLevel===ne.thinkingLevel?ne:de})},[D,c?.sessionId,f,u,le]);const M=v.useCallback(async se=>{if(!c)return!1;const ne=c.sessionId,de=++Ty;G.current=de,cg({type:"mutation-start",token:de}),X(!0);try{const me=await fetch(`${o}/api/operator/v1/chat/sessions/${encodeURIComponent(c.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ot()},body:JSON.stringify(se)}),Ie=await me.json().catch(()=>({}));return G.current!==de?!1:me.ok?!Ie.session||f.sessionRef.current?.sessionId!==ne?!1:ig(de,ne,Ie.snapshot):(f.sessionRef.current?.sessionId===ne&&(m(Ie.error?.message??`模型或思考等级切换失败(HTTP ${me.status})`),es()),!1)}catch(me){return G.current!==de||f.sessionRef.current?.sessionId===ne&&m(me instanceof Error?me.message:String(me)),!1}finally{rg(de,ne,f)&&G.current===de&&X(!1)}},[o,c,f,u,m]);v.useEffect(()=>{if(!A)return;const se=de=>{const me=K.current;me&&de.target instanceof Node&&!me.contains(de.target)&&R(!1)},ne=de=>{de.key==="Escape"&&R(!1)};return document.addEventListener("mousedown",se),document.addEventListener("keydown",ne),()=>{document.removeEventListener("mousedown",se),document.removeEventListener("keydown",ne)}},[A]),v.useEffect(()=>{if(!W)return;const se=de=>{const me=L.current;me&&de.target instanceof Node&&!me.contains(de.target)&&ie(!1)},ne=de=>{de.key==="Escape"&&ie(!1)};return document.addEventListener("mousedown",se),document.addEventListener("keydown",ne),()=>{document.removeEventListener("mousedown",se),document.removeEventListener("keydown",ne)}},[W]);const Z=v.useMemo(()=>Cy(h),[h]),ue=D?(D.models??[]).map(se=>({provider:se.provider,id:se.id,...se.name?{name:se.name}:{},...se.hasCredentials!==void 0?{hasCredentials:se.hasCredentials}:{}})):b,ce=D?.thinkingLevels?.length?D.thinkingLevels.map(se=>se.value):H,x=c?.model??ae?.model,w=x?ji(x.provider,x.modelId):"",P=D?.selection?.thinkingSelection??c?.thinkingLevel??"",B=D?.selection?.effectiveThinkingLevel??c?.thinkingLevel??void 0,re=!w||ue.some(se=>ji(se.provider,se.id)===w);return{capabilities:h,models:ue,modelsStatus:E,modelsError:O,onRetryModels:()=>{N()},thinkingLevels:ce,runtimeContext:ae,runtimeContextError:_,onRetryRuntimeContext:()=>{Q(null),es()},toolsOpen:A,setToolsOpen:R,runtimeContextOpen:W,setRuntimeContextOpen:ie,toolsMenuRef:K,runtimeContextMenuRef:L,switchRuntime:M,switching:Y,toolCatalog:Z,activeModel:x,activeModelRef:w,activeThinkingLevel:P,effectiveThinkingLevel:B,activeModelListed:re}}function Ay(i){const{origin:o,surface:c="standalone"}=i,u=c==="workspace",f=ry(),[m,h]=v.useState(null),[g,b]=v.useState(null),[y,E]=v.useState(!0),[j,O]=v.useState(!0),[T,H]=v.useState(!1),[q,ae]=v.useState(null),[le,_]=v.useState(0),Q=v.useRef(null),Y=v.useRef(null),X=v.useRef(null),A=Ny({origin:o,sessionId:g?.sessionId,refs:f,setError:h}),R=jy({origin:o,refs:f,sessionId:g?.sessionId,setError:h}),W=v.useRef(()=>{}),ie=v.useCallback(B=>{W.current(B)},[]),K=vy({origin:o,refs:f,sessionId:g?.sessionId,setError:h,setProcessOpen:H,onReconcile:ie});W.current=B=>{const re=f.sessionRef.current?.sessionId;re&&(async()=>await K.recoverSession(re)?(ae({id:Date.now(),message:"已自动恢复:会话事件已重新同步,可继续对话。"}),_(ne=>ne+1)):ae({id:Date.now(),message:"自动恢复未完成,将在重连时重试。"}))()};const L=gy({origin:o,refs:f,setSession:b,thread:K,composer:{setInput:A.setInput,setPendingImages:A.setPendingImages},browser:{setPreviews:R.setPreviews,setActivePreviewPath:R.setActivePreviewPath},setError:h,setProcessOpen:H,setAutoScroll:O}),G=xy({origin:o,refs:f,session:g,thread:K,composer:{setInput:A.setInput,setPendingImages:A.setPendingImages},setError:h,setAutoScroll:O,recoveryVersion:le}),ee=Sy({origin:o,refs:f,thread:K,setError:h}),D=Ey({origin:o,session:g,setSession:b,refs:f,setError:h}),{sendPrompt:te,handleStop:N}=G,M=v.useCallback(async B=>{await te(B,A.pendingImages)},[te,A.pendingImages]),Z=v.useCallback(()=>{const B=Y.current;if(!B)return;const re=B.scrollHeight-B.scrollTop-B.clientHeight<80;O(re)},[]);v.useEffect(()=>{j&&Q.current?.scrollIntoView({behavior:"smooth",block:"end"})},[K.messages,j,K.streaming]),v.useEffect(()=>{if(!q)return;const B=window.setTimeout(()=>ae(null),6e3);return()=>window.clearTimeout(B)},[q]);const ue=v.useCallback(B=>{const re=Ng(B);A.setInput(""),A.setShortcutOpen(!1),re&&(re.action==="focus:interview"?ee.startInterview():re.action==="show-help"?h(`可用 shortcuts:${no.map(se=>se.command).join("、")}`):re.action.startsWith("focus-panel:")?X.current?.scrollIntoView({behavior:"smooth",block:"nearest"}):h(`未知 shortcut:${re.command}`))},[A.setInput,A.setShortcutOpen,ee.startInterview]),ce=v.useCallback(B=>{if(A.shortcutOpen&&A.filteredShortcuts.length>0&&!B.nativeEvent.isComposing){if(B.key==="ArrowDown"||B.key==="ArrowUp"){B.preventDefault(),A.setShortcutIndex(ne=>(ne+(B.key==="ArrowDown"?1:A.filteredShortcuts.length-1))%A.filteredShortcuts.length);return}if(B.key==="Escape"){B.preventDefault(),A.setShortcutOpen(!1);return}if(B.key==="Enter"){B.preventDefault(),ue(A.filteredShortcuts[A.shortcutIndex]?.command??A.filteredShortcuts[0].command);return}}const re=Date.now()-f.compositionEndedAtRef.current<100,se=f.isComposingRef.current||B.nativeEvent.isComposing;if(B.key==="Enter"&&!B.shiftKey&&(se||re)){re&&B.preventDefault();return}if(B.key==="Enter"&&!B.shiftKey){B.preventDefault(),M(A.input);return}},[A.input,A.shortcutOpen,A.filteredShortcuts,A.shortcutIndex,A.setShortcutIndex,A.setShortcutOpen,f,M,ue]),x=K.visibleMessages.length>0||K.operationCards.length>0||K.humanGateCards.length>0||K.artifactCards.length>0||!!K.interview,w=i.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":i.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,P=s.jsx(xg,{origin:o,open:y,activeSessionId:g?.sessionId,sessions:L.sessionList,tree:R.tree,expanded:R.expandedDirs,treeError:R.treeError,onToggleOpen:()=>E(B=>!B),onCreate:()=>{L.createSession()},onActivate:B=>{L.activateSession(B)},onRename:(B,re)=>{L.updateSession(B,{title:re})},onSetState:(B,re)=>{L.updateSession(B,{state:re})},onDelete:B=>{L.deleteSession(B)},onRefreshTree:()=>{R.loadTree()},onToggleDir:R.toggleDir,onInsert:B=>A.setInput(re=>`${re}${re&&!re.endsWith(" ")?" ":""}@${B} `),onPreview:B=>{R.openPreview(B)}});return s.jsxs("div",{className:"oc-shell",children:[u?null:s.jsxs("div",{className:"oc-banner",children:[s.jsxs("span",{className:"oc-banner-title",children:[s.jsx("span",{className:"oc-banner-dot","aria-hidden":"true"}),"对话"]}),s.jsxs("span",{className:"oc-banner-body",children:["用自然语言编排 loop-agent / agent-worker 的",s.jsx("strong",{children:"全部能力"}),"。这是 ",s.jsx("strong",{children:"Operator"})," 面:默认具备完整 Pi 工具(read/write/edit/bash/grep/find/ls)与 safe-* 探查、以及受策略约束的 operator action(ADR 0011)。",s.jsx("strong",{children:"软约束"}),":大改与高风险变更优先走受治 DAG 的 implement-pi / repair-pi 与 Human Gate,而非把 Chat 当作第二套 DAG kernel。"]})]}),w&&s.jsx("div",{className:"oc-alert oc-alert-warning",children:w}),m&&s.jsxs("div",{className:"oc-alert oc-alert-error",children:[s.jsx("strong",{children:"出错了:"}),m]}),q&&s.jsx("div",{className:"oc-alert oc-alert-warning",role:"status",children:q.message}),g?s.jsxs("div",{className:`oc-workspace${T?" has-process":""}`,children:[P,s.jsxs("div",{className:`oc-main${x?"":" is-landing"}`,children:[s.jsx(jg,{previews:R.previews,activePath:R.activePreviewPath,loading:R.previewLoading,onActivate:R.setActivePreviewPath,onClose:R.closePreview}),s.jsx(Vg,{scrollContainerRef:Y,messagesEndRef:Q,onScroll:Z,hasThread:x,readiness:i.readiness,streaming:K.streaming,streamingAssistantId:K.streamingAssistantId,messagesCount:K.messages.length,visibleCount:K.visibleMessages.length,onLoadMore:()=>K.setHistoryLimit(B=>B+50),turnGroups:K.turnGroups,interview:K.interview,interviewAnswer:ee.interviewAnswer,onInterviewAnswerChange:ee.setInterviewAnswer,onAnswerInterview:B=>{ee.answerInterview(B)},onConfirmTaskKind:()=>{ee.confirmTaskKind()},humanGateCards:K.humanGateCards,operationCards:K.operationCards,artifactCards:K.artifactCards,origin:o,sessionId:g.sessionId,onNavigateWorkspace:i.onNavigateWorkspace,onSuggest:B=>{M(B)}}),s.jsx(ly,{composer:A,streaming:K.streaming,hasThread:x,onSend:B=>{M(B)},onStop:N,onKeyDown:ce,onRunShortcut:ue,models:D.models,activeModel:D.activeModel,activeModelRef:D.activeModelRef,activeModelListed:D.activeModelListed,activeThinkingLevel:D.activeThinkingLevel,thinkingLevels:D.thinkingLevels,onSwitchRuntime:B=>{D.switchRuntime(B)},usage:K.usage,unread:K.unread,onCompact:()=>{L.compactSession()},toolCatalog:D.toolCatalog,toolsOpen:D.toolsOpen,onToggleTools:()=>{D.setToolsOpen(B=>!B),D.toolsOpen||H(!1)},onCloseTools:()=>D.setToolsOpen(!1),toolsMenuRef:D.toolsMenuRef,processSummary:K.processSummary,processOpen:T,onToggleProcess:()=>{H(B=>!B),T||D.setToolsOpen(!1)},runtimeContext:D.runtimeContext,runtimeContextOpen:D.runtimeContextOpen,onToggleRuntimeContext:()=>D.setRuntimeContextOpen(B=>!B),onCloseRuntimeContext:()=>D.setRuntimeContextOpen(!1),runtimeContextMenuRef:D.runtimeContextMenuRef})]}),T&&s.jsx(iy,{toolCalls:K.toolCalls,onClose:()=>H(!1)})]}):s.jsxs("div",{className:"oc-workspace",children:[P,s.jsx("div",{className:"oc-main is-landing",children:s.jsx("div",{className:"oc-messages is-empty",children:s.jsx(Hm,{mode:"no-session",readiness:i.readiness,onSuggest:async B=>{await L.createSession()&&await M(B)},onCreateSession:()=>{L.createSession()}})})})]})]})}function ky(i){return i==="validate"||i==="apply"||i==="spine"?"contract":i}const Zm="X-Loop-Console-Confirmation",Jm="agent-worker console doctor --repo .",Fc=[{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)"}],Wm={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},wy={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},Fm={low:"低",medium:"中",high:"高"},Pm={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账"},Dy={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function bi(i){return Dy[i]??i}function eh(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Ni(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function ao(i,o={},c){const u={"Content-Type":"application/json",[Zm]:eh()},f=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:u,body:JSON.stringify({action:i,actionParams:o,...c?{clientRequestId:c}:{}})});let m={};try{m=await f.json()}catch{m={ok:!1,error:{code:"INVALID_INPUT",message:"操作响应不是合法 JSON"}}}return{status:f.status,body:m}}const Oy=new Set(["runDag","dagRerun","standaloneTaskRerun"]);function Jc(i){const o=(i.blockedReasons??[]).map(String),c=(i.blockingNodes??[]).map(f=>[f.nodeId,f.reasonCode].filter(Boolean).join(":")),u=[...o,...c].filter(Boolean);return u.length===0?"从节点重跑不具备安全资格(子图含 writer / unsafe shell / decision-gate 等)。可改用「完整重跑任务」,或另选只读安全子图的起始节点。":`从节点重跑不具备安全资格:${u.slice(0,6).join("; ")}${u.length>6?"…":""}。可改用「完整重跑任务」。`}async function Rm(i,o=9e4){const c=Date.now();for(;Date.now()-c<o;){const u=await fetch(`/api/operator/v1/operations/${encodeURIComponent(i)}`,{credentials:"same-origin"});if(!u.ok)return null;const f=await u.json(),m=f.operation??f,h=m.state??"";if(h==="succeeded"||h==="failed"||h==="needs-reconcile"||h==="timed-out")return m;await new Promise(g=>setTimeout(g,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const My={};function zy(){const[i,o]=v.useState(()=>$m({env:My?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[c,u]=v.useState(null),[f,m]=v.useState("setup-required"),[h,g]=v.useState(null),[b,y]=v.useState(null),[E,j]=v.useState(!1),[O,T]=v.useState(!1),[H,q]=v.useState(null),[ae,le]=v.useState(null),[_,Q]=v.useState(null),[Y,X]=v.useState(null),[A,R]=v.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[W,ie]=v.useState("setup"),K=v.useCallback(te=>{ie(N=>ky(typeof te=="function"?te(N):te))},[]),L=f==="setup-required",G=f==="degraded",ee=v.useCallback(te=>{te!==i&&(q(null),Q(null),le(null)),o(te)},[i]),D=v.useCallback(async()=>{try{const N=await(await fetch("/api/health")).json();u(N);const M=N.piReadiness??"setup-required";m(M),y(null),K(M==="ready"||M==="degraded"?Z=>Z==="setup"?"import-prd":Z:"setup")}catch(te){y(te instanceof Error?te.message:String(te))}try{const N=await(await fetch("/api/operator/v1/readiness")).json();g(N),N.state&&m(N.state)}catch{}},[K]);return{nav:i,setNav:o,selectNav:ee,health:c,readiness:f,setReadiness:m,readinessReport:h,healthError:b,loadHealth:D,busy:E,setBusy:j,observeBusy:O,setObserveBusy:T,opError:H,setOpError:q,opMessage:ae,setOpMessage:le,opErrorCode:_,setOpErrorCode:Q,lastOpState:Y,setLastOpState:X,layers:A,setLayers:R,step:W,setStep:K,setupBlocked:L,degraded:G}}function _y(i){const{shell:o,applyInterviewPayload:c}=i,{setBusy:u,setOpError:f,setOpErrorCode:m,setOpMessage:h,setReadiness:g,setStep:b,setNav:y,setLastOpState:E,setLayers:j,step:O,nav:T}=o,[H,q]=v.useState(null),[ae,le]=v.useState([]),[_,Q]=v.useState(!0),Y=v.useRef(null),[X,A]=v.useState(null),[R,W]=v.useState(null),ie=v.useCallback(async(D,te={},N)=>{u(!0),f(null),m(null),h(null);try{const{status:M,body:Z}=await ao(D,te,N?.clientRequestId);if(M===412||Z.error?.code==="PI_SETUP_REQUIRED")return f(Fa(Z.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),m(Z.error?.code??"PI_SETUP_REQUIRED"),g("setup-required"),b("setup"),y("models"),Z;if(M>=400||Z.ok===!1)return f(Fa(Z.error?.message??Z.message??`操作失败(HTTP ${M})`)),m(Z.error?.code??String(M)),E(Z.state??`failed:${M}`),j(x=>({...x,command:Z.error?.message??`failed:${Z.error?.code??M}`})),Z;if(Z.operationId){const x=window.localStorage.getItem(Vt)?.trim();if(x&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(x)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[Zm]:eh()},body:JSON.stringify({operationId:Z.operationId})}).then(w=>{w.ok||console.warn("Operator Chat operation link failed",w.status)}).catch(w=>console.warn("Operator Chat operation link failed",w)),q(Z.operationId),E(Z.state??"accepted"),j(w=>({...w,command:Z.state??"accepted",dag:D==="runDag"?"running":w.dag})),Oy.has(D)){Q(!0),h(`操作已接受,后台运行中:${Z.operationId}(请看事件流;可同时打开 Observe)`);const w=Z.operationId;Rm(w,30*6e4).then(P=>{if(P){if(E(P.state??null),P.state==="failed"||P.state==="needs-reconcile"||P.state==="timed-out"){f(Fa(P.errorMessage??P.stderrPreview??`操作失败:${P.state}`)),m(P.errorCode??P.state??null),j(B=>({...B,command:`failed:${P.errorCode??P.state}`}));return}P.state==="succeeded"&&(h(`${D} 已成功`),j(B=>({...B,command:"succeeded"})))}})}else{h(`操作已接受:${Z.operationId}`);const w=await Rm(Z.operationId);if(w){if(E(w.state??null),w.state==="failed"||w.state==="needs-reconcile"||w.state==="timed-out")return f(Fa(w.errorMessage??w.stderrPreview??`操作失败:${w.state}`)),m(w.errorCode??w.state??null),j(se=>({...se,command:`failed:${w.errorCode??w.state}`})),{ok:!1,operationId:Z.operationId,state:w.state,error:{code:w.errorCode??w.state??"INTERNAL_ERROR",message:w.errorMessage??w.stderrPreview??`操作失败:${w.state}`}};h(w.errorMessage?`${D}:${w.errorMessage}`:`${D} 已成功`),j(se=>({...se,command:w.state??"succeeded"}));const P=w.result??{},B={ok:!0,operationId:Z.operationId,state:w.state??"succeeded",result:P};(D==="interviewStart"||D==="interviewTurn"||D==="interviewSkip")&&c(P);const re=P.confirmation;return re?.confirmationId&&(A(re.confirmationId),W(P)),N?.advanceTo&&b(N.advanceTo),B}}}else h(`${D} 已完成`),E(Z.state??"succeeded"),j(x=>({...x,command:"succeeded",verification:D==="contractValidate"||D==="spineCheck"?"ran":x.verification}));const ue=Z.result??{};(D==="interviewStart"||D==="interviewTurn"||D==="interviewSkip")&&c(ue);const ce=ue.confirmation;return ce?.confirmationId&&(A(ce.confirmationId),W(ue)),N?.advanceTo&&b(N.advanceTo),Z}catch(M){f(M instanceof Error?M.message:String(M));return}finally{u(!1)}},[c,u,f,m,h,g,b,y,E,j]),K=v.useCallback(D=>{if(!D)return"无响应";if(D.error?.message)return D.error.message;if(D.message)return D.message;const te=D.result;if(te&&typeof te=="object")try{return JSON.stringify(te).slice(0,1200)}catch{return"已返回结果"}return D.ok===!1?"失败":"成功"},[]),L=v.useCallback(D=>{if(!D||D.ok===!1||D.error)return!1;const te=D.result;if(!te)return!0;if(typeof te.valid=="boolean")return te.valid;const N=te.result;return N&&typeof N.valid=="boolean"?N.valid:!0},[]),G=v.useCallback(async D=>{Y.current?.abort();const te=new AbortController;Y.current=te,le(N=>[...N,`开始跟随事件流 ${D}`]);try{const N=await fetch(`/api/operator/v1/operations/${encodeURIComponent(D)}/events`,{credentials:"same-origin",signal:te.signal});if(!N.ok||!N.body){le(ce=>[...ce,`事件流 HTTP ${N.status}`]);return}const M=N.body.getReader(),Z=new TextDecoder;let ue="";for(;_;){const{done:ce,value:x}=await M.read();if(ce)break;ue+=Z.decode(x,{stream:!0});const w=ue.split(`
19
-
20
- `);ue=w.pop()??"";for(const P of w){const B=P.split(`
21
- `).find(se=>se.startsWith("data:"));if(!B)continue;const re=B.slice(5).trim();le(se=>[...se.slice(-80),re.slice(0,240)])}}}catch(N){N.name!=="AbortError"&&le(M=>[...M,`事件流错误:${N instanceof Error?N.message:String(N)}`])}},[_]);v.useEffect(()=>(H&&_&&(O==="run"||T==="recovery")&&G(H),()=>Y.current?.abort()),[H,_,O,T,G]);const ee=v.useCallback(()=>{Q(!1),Y.current?.abort(),h("已停止跟随日志(未取消子进程)")},[h]);return{runAction:ie,summarizeEnvelope:K,isActionSuccess:L,operationId:H,setOperationId:q,sseLog:ae,followSse:_,setFollowSse:Q,stopFollowSse:ee,confirmationId:X,setConfirmationId:A,confirmationDetails:R,setConfirmationDetails:W}}const Pc=8*1024*1024,Iy=10*1024*1024,Ri=8,Ly=".md,.markdown,.txt,text/markdown,text/plain",Uy=[".md",".markdown",".txt"],so=/\.[^.]+$/;function Hy(i){const o=so.exec(i.trim());return o?o[0].toLowerCase():""}function By(i){const o=Hy(i);return Uy.includes(o)}function eo(i){if(!Number.isFinite(i)||i<0)return"0 B";if(i<1024)return`${i} B`;if(i<1024*1024){const c=i/1024;return`${c>=10?c.toFixed(0):c.toFixed(1)} KiB`}const o=i/(1024*1024);return`${o>=10?o.toFixed(1):o.toFixed(2)} MiB`}function xn(i,o){return{ok:!1,code:i,message:o}}function qy(i,o){const c=i?Array.from(i):[],u=o?.maxFiles??Ri,f=o?.existingCount??0;return c.length===0?xn("file-count","请选择至少一个 .md / .markdown / .txt 文件"):f+c.length>u?xn("file-count",`最多支持 ${u} 个文件(当前已有 ${f} 个)`):null}async function Gy(i){const o=i.name?.trim()||"untitled.md";if(!By(o))return xn("unsupported-extension","仅支持 .md、.markdown、.txt 文件");if(i.size>Pc)return xn("file-too-large",`文件不能超过 ${eo(Pc)}`);let c;try{c=await i.arrayBuffer()}catch{return xn("read-failed","文件读取失败,请重试或直接粘贴")}let u;try{u=new TextDecoder("utf-8",{fatal:!0}).decode(c)}catch{return xn("invalid-utf8","文件不是有效 UTF-8,请另存为 UTF-8")}if(u.trim().length===0)return xn("empty-content","文件内容不能为空或只有空白");const f=new TextEncoder().encode(u).byteLength;return{ok:!0,text:u,fileName:o,sourceBytes:i.size,textBytes:f}}async function $y(i){if(i.length===0)return xn("file-count","请选择至少一个 .md / .markdown / .txt 文件");if(i.length>Ri)return xn("file-count",`最多支持 ${Ri} 个文件`);const o=[];for(const c of i){const u=await Gy(c);if(!u.ok)return u;o.push({fileName:u.fileName,text:u.text,sourceBytes:u.sourceBytes,textBytes:u.textBytes})}return{ok:!0,documents:o}}function Yy(i,o){const c=i.split(/\r?\n/);for(const f of c){const m=/^(#{1,6})\s+(.+)$/.exec(f.trim());if(m?.[2])return m[2].trim()}for(const f of c){const m=f.trim();if(m&&!/^---+$/.test(m)&&!/^```/.test(m)&&!/^<!--/.test(m))return m.replace(/^>\s+/,"").slice(0,120)}return o.replace(so,"").trim()||"需求"}function Ky(i){return i.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"requirement"}function Xy(i,o){const c=i.replace(so,"").trim(),u=Ky(c);return u==="requirement"&&/[^\u0000-\u007f]/.test(c)?`part-${o+1}`:u==="requirement"?c?`part-${o+1}`:`part-${o+1}`:u}function Qy(i){const o=new Set;return i.map((c,u)=>{let f=Xy(c.fileName,u);if(o.has(f)){let m=2;for(;o.has(`${f}-${m}`);)m+=1;f=`${f}-${m}`}return o.add(f),{name:f,content:c.text,fileName:c.fileName}})}function Vy(i,o){if(i.length===0)return"";if(i.length===1)return i[0].text;const c=Math.min(Math.max(0,o?.primaryIndex??0),i.length-1),u=i[c],f=Yy(u.text,u.fileName),h=[`<!-- composed-from: ${i.map(g=>g.fileName).join(", ")} -->`,"",`# ${f}`,""];for(const g of i)h.push(`## 来源:${g.fileName}`,"",g.text.trim(),"");return`${h.join(`
22
- `).trimEnd()}
23
- `}function Zy(i,o,c){const u={action:i,actionParams:o};return new TextEncoder().encode(JSON.stringify(u)).byteLength<=Iy}function Jy(){return"最终内容导致请求体超过服务端限制,请缩小文档或减少文件数量"}function Wy(){const[i,o]=v.useState(`# 需求
24
-
25
- 实现 Loop Operator Console Happy Path:Interview → 契约落地 → DAG confirm → run。
26
- `),[c,u]=v.useState([]),[f,m]=v.useState(0),[h,g]=v.useState(!1),[b,y]=v.useState(null),[E,j]=v.useState(!1),[O,T]=v.useState(!1),H=v.useRef(0),q=v.useRef(0),ae=v.useCallback((L,G)=>{const ee=L.length===0?0:Math.min(Math.max(0,G),L.length-1);m(ee),o(Vy(L,{primaryIndex:ee})),g(!1)},[]),le=v.useCallback(async L=>{const G=qy(L,{existingCount:c.length});if(G){y(G.message);return}const ee=Array.from(L),D=++q.current;j(!0),y(null);try{const te=await $y(ee);if(D!==q.current)return;if(!te.ok){y(te.message);return}const N=[...c,...te.documents],M=c.length===0?0:f;u(N),c.length===0||!h?(ae(N,M),y(null)):y("已追加文件,未改正文(正文已手动编辑);可点「按文件重新合成」覆盖。")}catch{if(D!==q.current)return;y("文件读取失败,请重试或直接粘贴")}finally{D===q.current&&j(!1)}},[ae,h,c,f]),_=v.useCallback(L=>{o(L),c.length>0&&g(!0)},[c.length]),Q=v.useCallback(L=>{m(L),h||ae(c,L)},[ae,h,c]),Y=v.useCallback((L,G)=>{const ee=L+G,D=[...c],te=D[ee];D[ee]=D[L],D[L]=te;const N=f===L?ee:f===ee?L:f;u(D),m(N),h||ae(D,N)},[ae,h,c,f]),X=v.useCallback(L=>{const G=c.filter((D,te)=>te!==L),ee=G.length===0?0:Math.min(f>=L?Math.max(0,f-1):f,Math.max(0,G.length-1));u(G),m(ee),G.length===0?g(!1):h||ae(G,ee)},[ae,h,c,f]),A=v.useCallback(()=>{u([]),m(0),g(!1),y(null)},[]),R=v.useCallback(()=>{h&&!window.confirm("将用当前文件列表重新合成正文,覆盖你在编辑区的修改。继续?")||(ae(c,f),y(null))},[ae,h,c,f]),W=v.useCallback((L,G)=>{L.preventDefault(),L.stopPropagation(),!G&&(H.current+=1,T(!0))},[]),ie=v.useCallback(L=>{L.preventDefault(),L.stopPropagation(),H.current=Math.max(0,H.current-1),H.current===0&&T(!1)},[]),K=v.useCallback((L,G)=>{L.preventDefault(),L.stopPropagation(),H.current=0,T(!1),!G&&le(L.dataTransfer.files)},[le]);return{prdText:i,setPrdText:o,onPrdTextChange:_,prdDocuments:c,prdPrimaryIndex:f,prdComposedDirty:h,prdFileError:b,setPrdFileError:y,prdFileReading:E,prdDragOver:O,loadPrdFromFiles:le,applyPrdComposition:ae,setPrimaryDocument:Q,moveDocument:Y,removeDocument:X,clearDocuments:A,recomposeDocuments:R,onDragEnter:W,onDragLeave:ie,onDrop:K}}const Fy={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,lane:"dag",guide:"状态不一致时先对账,再决定是否重跑(需原因)",commandHint:"loop-agent dag reconcile-run --run-id <run-id> --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>"}},Cm={"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","reconcile"],"terminal-failed":["report","doctor","dagRerun","standaloneTaskRerun","workerTaskRetry","regenerate"],"terminal-succeeded":["report","observeLink"],"needs-reconcile":["report","doctor","reconcile","regenerate"]};function Py(i){return(Cm[i]??Cm["orphan-unknown"]).map(c=>Fy[c])}function eb(i){const o=[],c=[];for(const u of i)u.lane==="worker"?c.push(u):o.push(u);return{dag:o,worker:c}}function tb(i){return typeof i.action=="string"&&i.action.trim().length>0}function th(i){return Py(i).filter(tb)}function nb(i){const o=new Set(th(i).map(u=>u.id)),c=(...u)=>{for(const f of u)if(o.has(f))return f;return null};switch(i){case"terminal-failed":case"verification-failed":return c("dagRerun","standaloneTaskRerun","doctor","report");case"pause-on-human":return c("doctor","report");case"needs-reconcile":case"runtime-mismatch":case"contract-drift":return c("doctor","report");case"validation-failed":return c("doctor","report");case"terminal-succeeded":return c("observeLink","report");default:return c("doctor","report")}}function ab(i){if(i.needsReconcile)return"needs-reconcile";const o=(i.errorCode??"").toLowerCase(),c=(i.operationState??"").toLowerCase(),u=(i.dagStatus??"").toLowerCase();return o.includes("validation")||o.includes("invalid")||c.includes("validation")?"validation-failed":o.includes("contract")||o.includes("drift")||o.includes("binding")?"contract-drift":o.includes("runtime")||o.includes("mismatch")||o.includes("fingerprint")?"runtime-mismatch":o.includes("human")||c.includes("paused")||u.includes("paused")||c.includes("awaiting")?"pause-on-human":o.includes("verif")||c.includes("verif")?"verification-failed":c==="succeeded"||c==="completed"||u==="succeeded"||u==="completed"?"terminal-succeeded":c==="failed"||c.includes("fail")||u==="failed"||o.includes("fail")?"terminal-failed":o.includes("reconcil")||c.includes("reconcil")?"needs-reconcile":"orphan-unknown"}const lo=new Set(["failed","error","partial_failed"]),nh=new Set(["blocked","paused","awaiting_human"]);function Ci(i){return(i??"").trim().toLowerCase()}function sb(i){return lo.has(Ci(i))}function Tm(i){const o=Ci(i.status);return lo.has(o)||o.includes("fail")?0:i.lifecycle==="paused"||o==="paused"?1:i.lifecycle==="active"?2:3}function lb(i){return[...i].sort((o,c)=>{const u=Tm(o)-Tm(c);return u!==0?u:c.mtimeMs-o.mtimeMs})}function ib(i){return lb(i)[0]?.dagRunId}function Em(i){const o=Ci(i.status);return lo.has(o)?0:nh.has(o)?1:2}function ah(i){return[...i].sort((o,c)=>{const u=Em(o)-Em(c);return u!==0?u:o.nodeId.localeCompare(c.nodeId)})}function rb(i){const o=ah(i);return o.find(u=>sb(u.status)||nh.has(Ci(u.status)))?.nodeId??o[0]?.nodeId}function cb(i){const o=i.status?.trim()||i.lifecycle;return`${i.dagRunId.length>36?`${i.dagRunId.slice(0,18)}…${i.dagRunId.slice(-8)}`:i.dagRunId} · ${o}`}function ob(i){const o=i.status?.trim()||"unknown",c=i.label?.trim();return c&&c!==i.nodeId?`${i.nodeId} · ${o} · ${c}`:`${i.nodeId} · ${o}`}function ub(i){const c=[`operator-recovery: ${i.actionLabel?.trim()||"恢复"}`],u=i.dagRunId?.trim();if(u){const g=i.runStatus?.trim();c.push(g?`run=${u} (${g})`:`run=${u}`)}const f=i.fromNodeId?.trim();if(f){const g=i.nodeStatus?.trim();c.push(g?`from-node=${f} (${g})`:`from-node=${f}`)}const m=i.factClassLabel?.trim();m&&c.push(`fact=${m}`);const h=i.nodeError?.trim()||i.errorMessage?.trim()||(i.errorCode?.trim()?`code=${i.errorCode.trim()}`:"");return h&&c.push(`detail=${h.replace(/\s+/g," ").slice(0,280)}`),c.join(`
27
- `).slice(0,500)}function sh(i){const o=i.trim();return o?o==="operator-recovery"||o.startsWith("operator-recovery:")||o.startsWith("recovery:"):!0}function db(i){const{shell:o,actions:c,taskId:u,dagRunId:f,fromNodeId:m,featureId:h,recoveryReason:g,recoveryReasonTouched:b,recoveryConfirm:y,recoveryPlanSummary:E,setRecoveryConfirm:j,setRecoveryPlanSummary:O,setRecoveryReport:T,setRecoveryReason:H,setRecoveryReasonTouched:q,buildCurrentRecoveryReason:ae,openFullCanvas:le}=i,{setOpError:_,setOpErrorCode:Q,setOpMessage:Y,setBusy:X}=o,{runAction:A,isActionSuccess:R}=c,W=v.useCallback(async K=>{if(K.requiresReason||(j(null),O(null)),K.action==="doctor"){T(null),A("doctor",{});return}if(K.action==="dagReport"||K.id==="report"){const L=f.trim();if(L){j(null),O(null);const G=await A("dagReport",{runId:L}),ee=G?.result??{},D=(ee.raw?.runs??ee.runs)?.[0];G&&G.ok!==!1&&!G.error&&D&&(T({runId:D.runId??L,title:D.title,status:D.status,category:D.productLineFailureCategory,recommendation:D.recoveryRecommendation?.summary??D.recommendedFollowUp??void 0}),Y(null));return}if(u.trim()){T(null),A("status",{taskId:u});return}_("查看报告需要先选择 DAG 运行 ID(或填写任务 ID)");return}if(K.action==="observeLink"){T(null),le();return}if(K.requiresReason){if(T(null),j(K),O(null),K.id!=="dagRerun"&&(_(null),Q(null)),(!b||sh(g))&&(H(ae(K.label)),q(!1)),K.id==="dagRerun"&&f.trim()&&m.trim()){X(!0);try{const{status:L,body:G}=await ao("dagRerunPlan",{runId:f.trim(),fromNode:m.trim()}),ee=G.result??{};ee&&typeof ee=="object"&&("eligible"in ee||ee.planHash)&&O(ee),L<400&&G.ok!==!1&&ee.eligible!==!1?Y(null):ee.eligible===!1?_(G.error?.message??Jc(ee)):Y(G.error?.message??"无法预检重跑计划;确认后仍将尝试提交(CLI 可能尚未就绪)")}finally{X(!1)}}return}_(null),Q(null),Y(`${K.label}:请经 CLI — ${K.commandHint??""}`)},[ae,f,m,le,g,b,A,X,_,Q,Y,j,O,T,H,q,u]),ie=v.useCallback(async()=>{const K=y;if(!K)return;const L=g.trim();if(!L){_("恢复操作需要结构化原因");return}const G=Ni(`recovery-${K.id}`);if(j(null),K.id==="dagRerun"){const ee=f.trim(),D=m.trim();if(!ee||!D){_("从节点重跑需要 DAG 运行 ID 与起始节点 ID");return}let te=E?.planHash?.trim(),N=E?.eligible;if(!te||N===void 0){const M=await A("dagRerunPlan",{runId:ee,fromNode:D}),Z=M?.result??{};if((Z.planHash||Z.eligible!==void 0)&&O(Z),te=Z.planHash?.trim()||te,N=Z.eligible,Z.eligible===!1){_(M?.error?.message??Jc(Z));return}if(M&&M.ok===!1&&!te){_(M.error?.message??"无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}}if(N===!1){_(Jc(E??{}));return}if(!te){_("无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}await A("dagRerun",{runId:ee,fromNode:D,planHash:te,reason:L},{clientRequestId:G});return}if(K.id==="standaloneTaskRerun"){const ee=f.trim();if(!ee){_("完整重跑任务需要 DAG 运行 ID");return}const D={runId:ee,reason:L,...u.trim()?{taskId:u.trim()}:{}},te=await A("prepareMutationGate",{action:"standaloneTaskRerun",actionParams:D});if(!R(te))return;const N=te?.result??te;if(!N.receiptId||!N.humanGateToken){_("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await A("standaloneTaskRerun",{...D,confirmationId:N.receiptId,humanGateToken:N.humanGateToken},{clientRequestId:G});return}if(K.id==="workerTaskRetry"){const ee=u.trim();if(!ee){_("重新排队 Worker Task 需要任务 ID");return}const D={taskId:ee,reason:L,...h.trim()?{featureId:h.trim()}:{}},te=await A("prepareMutationGate",{action:"workerTaskRetry",actionParams:D});if(!R(te))return;const N=te?.result??te;if(!N.receiptId||!N.humanGateToken){_("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await A("workerTaskRetry",{...D,confirmationId:N.receiptId,humanGateToken:N.humanGateToken},{clientRequestId:G});return}if(K.id==="reconcile"){if(!f.trim()){_("对账恢复需要 DAG 运行 ID");return}Y(`${K.label}:请经 CLI — ${K.commandHint??""}`);return}Y(`${K.label}:请经 CLI — ${K.commandHint??""}`)},[f,h,m,y,E?.planHash,g,A,R,_,Y,j,O,u]);return{handleRecoveryCta:W,submitRecoveryConfirm:ie}}function fb(i){const{shell:o,actions:c,wizard:u}=i,{nav:f,opError:m,opErrorCode:h,lastOpState:g,setOpError:b,setObserveBusy:y}=o,{taskId:E}=u,[j,O]=v.useState(""),[T,H]=v.useState(""),[q,ae]=v.useState(""),[le,_]=v.useState(""),[Q,Y]=v.useState(!1),[X,A]=v.useState(null),[R,W]=v.useState(null),[ie,K]=v.useState([]),[L,G]=v.useState([]),[ee,D]=v.useState(!1),[te,N]=v.useState(!1),[M,Z]=v.useState(null),[ue,ce]=v.useState(!1),[x,w]=v.useState(!1),[P,B]=v.useState(null),[re,se]=v.useState("idle"),[ne,de]=v.useState(null),[me,Ie]=v.useState(null),[we,$e]=v.useState(!1),vt=v.useCallback(()=>j.trim()?`/inspect/#/dag/${encodeURIComponent(j.trim())}?from=recovery`:"/inspect/#/",[j]),ye=v.useCallback(()=>{window.location.assign(vt())},[vt]),Ce=v.useCallback(async()=>{if(j.trim())return j.trim();const Ae=E.trim();if(!Ae)return b("打开 DAG 检视需要任务 ID 或 DAG 运行 ID"),null;y(!0),b(null);try{const{status:nt,body:qe}=await ao("observeLink",{taskId:Ae}),Rt=qe.result??{};if(nt>=400||qe.ok===!1)return b(qe.error?.message??"无法解析 DAG 画布地址"),se("unavailable"),de(qe.error?.message??null),null;const zt=typeof Rt.dagRunId=="string"?Rt.dagRunId.trim():"";return zt?(O(zt),se("match"),de(null),Ie(`/inspect/#/dag/${encodeURIComponent(zt)}`),zt):(b("尚未找到该任务的 DAG 运行,请稍后再打开检视"),se("unavailable"),de(Rt.message??"未解析到 DAG run"),null)}catch(nt){return b(nt instanceof Error?nt.message:String(nt)),null}finally{y(!1)}},[j,E,b,y]),Ue=v.useCallback(async()=>{await Ce()&&$e(!0)},[Ce]),Qe=v.useCallback(async()=>{const Ae=await Ce();Ae&&window.location.assign(`/inspect/#/dag/${encodeURIComponent(Ae)}?from=recovery`)},[Ce]),en=v.useCallback(async()=>{D(!0);try{const Ae=E.trim(),nt=new URLSearchParams;Ae&&nt.set("taskId",Ae),nt.set("limit","40");const qe=await fetch(`/api/operator/v1/recovery/candidates?${nt.toString()}`,{credentials:"same-origin"});if(!qe.ok){K([]);return}const Rt=await qe.json();K(Array.isArray(Rt.runs)?Rt.runs:[])}catch{K([])}finally{D(!1)}},[E]),Zt=v.useCallback(async Ae=>{const nt=Ae.trim();if(!nt){G([]),Z(null);return}N(!0);try{const qe=await fetch(`/api/dag-runs/${encodeURIComponent(nt)}`,{credentials:"same-origin"});if(!qe.ok){G([]),Z(null);return}const Rt=await qe.json();Z(typeof Rt.status=="string"?Rt.status:null);const zt=Array.isArray(Rt.nodes)?Rt.nodes:[],ht=ah(zt.map(it=>{const ft=(it.nodeId??it.id??"").trim();return ft?{nodeId:ft,status:it.status,label:it.label??it.name,errorPreview:it.errorPreview}:null}).filter(it=>it!==null));G(ht)}catch{G([]),Z(null)}finally{N(!1)}},[]);v.useEffect(()=>{f==="recovery"&&en()},[f,E,en]),v.useEffect(()=>{if(f!=="recovery"||ue||ie.length===0)return;const Ae=j.trim(),nt=Ae?ie.some(qe=>qe.dagRunId===Ae):!1;if(!Ae||!nt){const qe=ib(ie);qe&&qe!==Ae&&O(qe)}},[f,ie,j,ue]),v.useEffect(()=>{f==="recovery"&&Zt(j)},[f,j,Zt]),v.useEffect(()=>{if(f!=="recovery"||x||L.length===0)return;const Ae=T.trim(),nt=Ae?L.some(qe=>qe.nodeId===Ae):!1;if(!Ae||!nt){const qe=rb(L);qe&&qe!==Ae&&H(qe)}},[f,L,T,x]);const Mt=ab({operationState:M?null:g,errorCode:M?null:h,dagStatus:M}),Xn=v.useMemo(()=>th(Mt),[Mt]),Ti=v.useMemo(()=>eb(Xn),[Xn]),Ei=v.useMemo(()=>nb(Mt),[Mt]),tt=v.useMemo(()=>L.find(Ae=>Ae.nodeId===T.trim()),[L,T]),Ps=v.useRef(null);v.useEffect(()=>{R&&Ps.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[R?.id]);const Qn=v.useCallback(Ae=>ub({actionLabel:Ae,dagRunId:j.trim()||void 0,fromNodeId:T.trim()||void 0,runStatus:M,nodeStatus:tt?.status,nodeError:tt?.errorPreview,factClassLabel:Pm[Mt],errorMessage:m,errorCode:h}),[j,T,m,h,Mt,M,tt?.errorPreview,tt?.status]);v.useEffect(()=>{if(f!=="recovery"||Q&&!sh(le))return;const Ae=Qn(R?.label);Ae&&Ae!==le&&_(Ae)},[f,j,T,M,tt,Mt,m,h,R?.label,Q,le,Qn]);const{handleRecoveryCta:el,submitRecoveryConfirm:ma}=db({shell:o,actions:c,taskId:E,dagRunId:j,fromNodeId:T,featureId:q,recoveryReason:le,recoveryReasonTouched:Q,recoveryConfirm:R,recoveryPlanSummary:X,setRecoveryConfirm:W,setRecoveryPlanSummary:A,setRecoveryReport:B,setRecoveryReason:_,setRecoveryReasonTouched:Y,buildCurrentRecoveryReason:Qn,openFullCanvas:Qe});return{dagRunId:j,setDagRunId:O,fromNodeId:T,setFromNodeId:H,featureId:q,setFeatureId:ae,recoveryReason:le,setRecoveryReason:_,recoveryReasonTouched:Q,setRecoveryReasonTouched:Y,recoveryPlanSummary:X,recoveryConfirm:R,setRecoveryConfirm:W,setRecoveryPlanSummary:A,recoveryRuns:ie,recoveryNodes:L,recoveryRunsLoading:ee,recoveryNodesLoading:te,recoveryRunStatus:M,manualRunId:ue,setManualRunId:ce,manualNodeId:x,setManualNodeId:w,recoveryReport:P,setRecoveryReport:B,observeLinkStatus:re,observeLinkMessage:ne,observeUrl:me,inspectSplitOpen:we,setInspectSplitOpen:$e,inspectPath:vt,openFullInspect:ye,resolveDagRunForInspect:Ce,openInspectSplit:Ue,openFullCanvas:Qe,loadRecoveryRuns:en,loadRecoveryNodes:Zt,recoveryFact:Mt,recoveryCtas:Xn,recoveryLanes:Ti,recommendedCtaId:Ei,recoveryConfirmRef:Ps,buildCurrentRecoveryReason:Qn,handleRecoveryCta:el,submitRecoveryConfirm:ma}}function mb(i){const{shell:o,actions:c,prd:u}=i,{step:f,setStep:m,setOpMessage:h}=o,{runAction:g,isActionSuccess:b,summarizeEnvelope:y}=c,[E,j]=v.useState(""),[O,T]=v.useState(""),[H,q]=v.useState("standard"),ae=Fc.find(ye=>ye.kind===H)??Fc[0],[le,_]=v.useState(null),[Q,Y]=v.useState(null),[X,A]=v.useState(""),[R,W]=v.useState(null),[ie,K]=v.useState(null),[L,G]=v.useState(null),[ee,D]=v.useState(null),[te,N]=v.useState(null),[M,Z]=v.useState(!1),[ue,ce]=v.useState(null),[x,w]=v.useState(null),P=v.useRef(!1),B=v.useCallback(()=>{G(null),D(null),N(null),Z(!1),ce(null),w(null),P.current=!1},[]),re=v.useCallback(()=>{B(),m("contract")},[B,m]),se=v.useCallback(ye=>{const Ce=ye.session;Ce?.sessionId&&_(Ce.sessionId);const Ue=ye.question;Y(Ue),W(ye.summary??null);const Qe=ye.assessmentId;typeof Qe=="string"&&Qe&&K(Qe),(ye.complete===!0||typeof Qe=="string"&&Qe)&&(re(),h(ye.skipped===!0?"已跳过访谈:已按推荐补齐草稿并签发评估":"访谈已完成:草稿已绑定完整评估结果"))},[re,h]),ne=v.useCallback(async(ye=!1)=>{const Ce=E.trim();if(!Ce)return;const Ue=`${Ce}:${ie??""}`;if(!(!ye&&x===Ue&&L!==null)&&!P.current){P.current=!0,G(null),D(null),N(null),ce(null),Z(!1);try{const Qe=await g("contractValidate",{taskId:Ce}),en=b(Qe);if(G(en),D(y(Qe)),!en){w(Ue),h("契约校验未通过:请先修正草稿后再应用");return}const Zt=await g("contractDiff",{taskId:Ce});N(y(Zt)),w(Ue),h(b(Zt)?"校验与差异已就绪:确认后可应用契约":"校验通过,但差异查询失败(仍可查看下方摘要)")}finally{P.current=!1}}},[ie,x,L,b,g,h,y,E]),de=v.useCallback(async()=>{const ye=E.trim();if(!ye||!ie)return;const Ce=await g("contractApply",{taskId:ye,assessmentId:ie},{clientRequestId:Ni("apply")});if(!b(Ce)){Z(!1);return}Z(!0);const Ue=await g("spineCheck",{taskId:ye});if(b(Ue)){ce(!0),m("dag-confirm"),h("契约已应用并通过 Spine 审计,可生成并运行 DAG");return}ce(!1),h("契约已应用,但 Spine 审计未通过:可重试 Spine")},[ie,b,g,h,m,E]),me=v.useCallback(async()=>{const ye=E.trim();if(!ye)return;const Ce=await g("spineCheck",{taskId:ye});if(b(Ce)){ce(!0),m("dag-confirm"),h("Spine 审计已通过,可生成并运行 DAG");return}ce(!1)},[b,g,h,m,E]),Ie=v.useCallback(async()=>{const ye=c.confirmationId?.trim();if(!ye)return;const Ce=c.confirmationDetails?.confirmation?.humanGateToken,Ue=await g("confirmDagConfirmation",{confirmationId:ye,humanGateToken:Ce});b(Ue)&&(m("run"),await g("runDag",{confirmationId:ye},{clientRequestId:Ni("run")}))},[c.confirmationId,c.confirmationDetails,b,g,m]);v.useEffect(()=>{f==="contract"&&E.trim()&&ne(!1)},[f,E,ie,ne]);const we=v.useCallback(async()=>{const ye=u.prdDocuments.length>0?Qy(u.prdDocuments):void 0,Ce={content:u.prdText,taskKind:H,...ye?{documents:ye}:{}};if(!Zy("bootstrapFromPrd",Ce)){u.setPrdFileError(Jy());return}const Ue=await g("bootstrapFromPrd",Ce);if(!Ue||Ue.ok===!1)return;const Qe=Ue.result??{};Qe.taskId&&j(Qe.taskId),Qe.title&&T(Qe.title),h(`已创建任务「${Qe.title??""}」(${Qe.taskId??""}),来源:${Qe.identitySource??"prd"}`),m("interview")},[u,g,h,m,H]),$e=[{id:"setup",label:"就绪检查"},{id:"import-prd",label:"导入需求"},{id:"interview",label:"需求访谈(可跳过)"},{id:"contract",label:"契约落地"},{id:"dag-confirm",label:"确认 DAG"},{id:"run",label:"运行"}],vt=$e.findIndex(ye=>ye.id===f);return{taskId:E,setTaskId:j,taskTitle:O,taskKind:H,setTaskKind:q,workflowMeta:ae,sessionId:le,question:Q,answerText:X,setAnswerText:A,draftSummary:R,assessmentId:ie,contractValidateOk:L,contractValidateSummary:ee,contractDiffSummary:te,contractApplied:M,spineOk:ue,applyInterviewPayload:se,runContractPreflight:ne,applyContractThenSpine:de,retrySpineOnly:me,confirmAndRunDag:Ie,importPrdAndCreate:we,wizardSteps:$e,stepIndex:vt}}const hb={chat:"对话",tasks:"任务",recovery:"恢复",night:"夜间",models:"模型与认证",settings:"设置"};async function pb(i){return await import(i)}function vb(i){const o=i.repoName?.trim();if(o)return o;const c=(i.repoRoot??"").split(/[\\/]/).filter(Boolean);return c.length?c[c.length-1]:"repository"}function gb(i){const{nav:o,readiness:c,setupBlocked:u,degraded:f,health:m,inspectHref:h}=i,g=u||f?"models":"settings",b=u?"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。点击前往模型与认证。":f?"Pi 暂时降级:仍可恢复草稿与需求访谈。点击查看详情。":"Pi 已就绪。点击打开设置查看详情。";return{mode:"operate",activeTabHref:`#/${o}`,operateHref:"/#/",inspectHref:h,freshness:!1,readinessState:c,readinessHref:`#/${g}`,readinessTitle:b,repo:m?{name:vb(m),fingerprint:m.repoFingerprint??"",version:m.packageVersion??"",product:m.productName??m.product??"",inspectReady:m.inspect?.ready}:null}}function yb(i){const o=v.useRef(null),c=v.useRef(null),[u,f]=v.useState(!1),m=v.useMemo(()=>gb(i),[i.nav,i.readiness,i.setupBlocked,i.degraded,i.health,i.inspectHref]),h=v.useRef(m);return h.current=m,v.useEffect(()=>{let g=!1;return pb("/inspect/operator-chrome.js").then(b=>{g||!o.current||(c.current=b.mountOperatorChrome(o.current,h.current))}).catch(()=>{g||f(!0)}),()=>{g=!0,c.current?.destroy(),c.current=null}},[]),v.useEffect(()=>{c.current?.update(m)},[m]),s.jsxs(s.Fragment,{children:[s.jsx("div",{ref:o,"data-testid":"operator-chrome"}),u?s.jsxs("nav",{className:"operator-chrome-fallback","aria-label":"操作工作区",children:[s.jsx("button",{type:"button",onClick:()=>window.location.assign("/#/"),children:"Loop Agent"}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(`#/${i.nav}`),children:hb[i.nav]}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(i.inspectHref),children:"观测"}),s.jsx("span",{role:"status",children:"共享导航加载失败,请刷新页面"})]}):null]})}function bb(i){return s.jsxs(s.Fragment,{children:[i.opError?s.jsxs("div",{className:"flash flash-error","data-testid":"op-error",children:[s.jsx("span",{className:"flash-label",children:"错误"}),s.jsx("p",{className:"flash-body",children:i.opError})]}):null,i.opMessage?s.jsxs("div",{className:"flash flash-info","data-testid":"op-message",children:[s.jsx("span",{className:"flash-label",children:"状态"}),s.jsx("p",{className:"flash-body",children:i.opMessage})]}):null]})}const xb=[{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 Sb(i){if(!i)return null;const o=Date.parse(i);return Number.isNaN(o)?i:new Date(o).toLocaleString()}function jb(i){const o=i.readinessReport?.state??i.readiness,c=i.readinessReport?.probe,u=c?.details??{},f=i.readinessReport?.blockedActions??[],m=Sb(i.readinessReport?.generatedAt),h=i.readinessReport??{state:i.readiness,health:i.health};return s.jsxs("section",{className:"panel models-page","aria-labelledby":"models-title",children:[s.jsxs("div",{className:"models-header",children:[s.jsx("h2",{id:"models-title",children:"模型与认证"}),s.jsx("span",{className:"models-status-pill","data-state":o,"data-testid":"models-readiness-pill",children:Wm[o]??o})]}),s.jsxs("p",{className:"panel-lead",children:["复用 Pi ModelRuntime 凭据平面;密钥不会回传到页面。请用"," ",s.jsx("code",{children:"pi"})," 或 Pi 认证存储完成配置,然后刷新就绪探测。"]}),s.jsxs("section",{className:"models-probe-card","aria-labelledby":"models-probe-title","data-testid":"readiness-details",children:[s.jsx("h3",{id:"models-probe-title",className:"models-subtitle",children:"就绪检查"}),s.jsx("ul",{className:"models-probe-list",children:xb.map(g=>{const b=c?.[g.key],y=u[g.detailKey],E=b===void 0;return s.jsxs("li",{className:`models-probe-item${E?" is-pending":b?" is-ok":" is-bad"}`,children:[s.jsx("span",{className:"models-probe-badge","aria-label":E?"未探测":b?"通过":"未通过",children:E?"—":b?"✓":"✕"}),s.jsxs("div",{className:"models-probe-body",children:[s.jsx("strong",{children:g.label}),s.jsx("span",{className:"muted",children:g.hint}),y?s.jsx("p",{className:"models-probe-detail",children:y}):null]})]},g.key)})})]}),o==="setup-required"?s.jsxs("div",{className:"models-setup-card","data-testid":"models-setup-hint",children:[s.jsx("h3",{className:"models-subtitle",children:"如何完成配置"}),s.jsxs("ol",{className:"models-setup-steps",children:[s.jsxs("li",{children:["在终端配置 Pi 认证(例如 ",s.jsx("code",{children:"pi auth login"}),")或写入 provider API key。"]}),s.jsxs("li",{children:["确认 agent 目录下 ",s.jsx("code",{children:"models.json"})," / 认证文件可读。"]}),s.jsx("li",{children:"点击下方「刷新就绪探测」,或运行诊断命令查看详情。"})]}),s.jsx("pre",{className:"cmd",children:Jm})]}):null,o==="degraded"?s.jsx("p",{className:"models-degraded-note","data-testid":"models-degraded-note",children:"Pi 暂时降级:仍可恢复草稿与需求访谈;部分写入/运行类操作会被拦截。"}):null,f.length>0?s.jsxs("div",{className:"models-blocked-card",children:[s.jsx("h3",{className:"models-subtitle",children:"当前受限操作"}),s.jsx("ul",{className:"models-blocked-list",children:f.map(g=>s.jsx("li",{children:s.jsx("code",{children:g})},g))})]}):null,s.jsxs("div",{className:"models-actions",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:i.busy,onClick:i.onRefreshReadiness,children:"刷新就绪探测"}),m?s.jsxs("span",{className:"muted models-generated-at",children:["上次探测:",m]}):null]}),s.jsxs("details",{className:"models-raw-details",children:[s.jsx("summary",{children:"查看原始探测数据(调试)"}),s.jsx("pre",{className:"cmd models-raw-json",children:JSON.stringify(h,null,2)})]})]})}function Am(i){const{lane:o,cta:c,planSummary:u,reason:f,busy:m,confirmRef:h}=i;return!c||c.lane!==o?null:s.jsxs("div",{ref:h,className:"recovery-confirm","data-testid":"recovery-confirm",children:[s.jsxs("h3",{children:["待确认:",c.label]}),s.jsx("p",{className:"muted",children:"请核对上方运行 / 节点与恢复原因,再点「确定」执行。"}),u?s.jsxs("div",{className:"recovery-plan-summary",children:[s.jsxs("p",{className:"muted",children:["计划 eligible=",String(u.eligible??"—")," · 风险=",Fm[u.risk??""]??u.risk??"—"]}),u.effectiveFromNodeId?s.jsxs("p",{className:"muted",children:["有效起点:",u.effectiveFromNodeId]}):null,u.estimatedExecution?s.jsxs("p",{className:"muted",children:["将执行 ",u.estimatedExecution.nodeCount??"?"," 个节点 / ",u.estimatedExecution.piCallCount??"?"," 次 Pi;预计避免"," ",u.estimatedExecution.avoidedNodeCount??"?"," 个节点"]}):null,u.planHash?s.jsxs("p",{className:"muted",children:["planHash: ",s.jsxs("code",{children:[u.planHash.slice(0,16),"…"]})]}):null]}):c.id==="dagRerun"?s.jsx("p",{className:"muted",children:"未加载计划摘要;点「确定」前将再次尝试资格检查。"}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:m||!f.trim(),"data-testid":"recovery-confirm-submit",onClick:i.onSubmit,children:"确定"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:m,"data-testid":"recovery-confirm-cancel",onClick:i.onCancel,children:"取消"})]})]})}function Nb(i){const{shell:o,recovery:c,wizard:u}=i,{busy:f}=o,m={planSummary:c.recoveryPlanSummary,reason:c.recoveryReason,busy:f,confirmRef:c.recoveryConfirmRef,onSubmit:()=>{c.submitRecoveryConfirm()},onCancel:()=>{c.setRecoveryConfirm(null),c.setRecoveryPlanSummary(null)}};return s.jsxs("section",{className:"panel","aria-labelledby":"recovery-title",children:[s.jsx("h2",{id:"recovery-title",children:"恢复"}),s.jsxs("p",{className:"muted",children:["事实分类:",Pm[c.recoveryFact]," · 无 Cancel · 无「直接改代码」"]}),s.jsxs("ol",{className:"muted recovery-steps",children:[s.jsx("li",{children:"上方选 DAG 运行 / 节点,用「DAG 运行恢复」动作"}),s.jsx("li",{children:"Worker 队列失败才用下方「Worker Task 重排队」(二者不要混用)"}),s.jsx("li",{children:"带 * 的动作:核对预填原因 → 点下方「确定」"})]}),s.jsxs("p",{className:"muted",children:[u.taskId.trim()?`按任务 ${u.taskId.trim()} 拉取候选。`:"未填任务 ID 时列出最近 DAG 运行。","Doctor 诊断可选,不是重跑前置。"," ",s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f||c.recoveryRunsLoading,"data-testid":"recovery-refresh-candidates",onClick:()=>{c.loadRecoveryRuns()},children:c.recoveryRunsLoading?"刷新中…":"刷新候选"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"DAG 运行 ID"}),!c.manualRunId&&c.recoveryRuns.length>0?s.jsxs("select",{"data-testid":"recovery-run-select",value:c.dagRunId,disabled:f||c.recoveryRunsLoading,onChange:h=>{c.setManualRunId(!1),c.setManualNodeId(!1),c.setFromNodeId(""),c.setDagRunId(h.target.value),c.recoveryReasonTouched||c.setRecoveryReasonTouched(!1)},children:[c.recoveryRuns.some(h=>h.dagRunId===c.dagRunId)?null:s.jsx("option",{value:c.dagRunId||"",children:c.dagRunId?`${c.dagRunId}(当前)`:"— 请选择 —"}),c.recoveryRuns.map(h=>s.jsx("option",{value:h.dagRunId,children:cb(h)},h.dagRunId))]}):s.jsx("input",{"data-testid":"recovery-run-input",value:c.dagRunId,disabled:f,onChange:h=>{c.setManualRunId(!0),c.setDagRunId(h.target.value.trim())},placeholder:"dag-run-id(子图/完整重跑)"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-run-manual-toggle",onClick:()=>{if(!c.manualRunId&&c.recoveryRuns.length>0){c.setManualRunId(!0);return}c.setManualRunId(!1),c.loadRecoveryRuns()},children:!c.manualRunId&&c.recoveryRuns.length>0?"手动输入运行 ID":"刷新并改用下拉"})]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{className:"muted",children:["起始节点 ID(从节点重跑)",c.recoveryNodesLoading?" · 加载节点…":""]}),!c.manualNodeId&&c.recoveryNodes.length>0?s.jsxs("select",{"data-testid":"recovery-node-select",value:c.fromNodeId,disabled:f||c.recoveryNodesLoading,onChange:h=>{c.setManualNodeId(!1),c.setFromNodeId(h.target.value)},children:[c.recoveryNodes.some(h=>h.nodeId===c.fromNodeId)?null:s.jsx("option",{value:c.fromNodeId||"",children:c.fromNodeId?`${c.fromNodeId}(当前)`:"— 请选择 —"}),c.recoveryNodes.map(h=>s.jsx("option",{value:h.nodeId,children:ob(h)},h.nodeId))]}):s.jsx("input",{"data-testid":"recovery-node-input",value:c.fromNodeId,disabled:f,onChange:h=>{c.setManualNodeId(!0),c.setFromNodeId(h.target.value.trim())},placeholder:"例如 review-verdict-recovery-pi"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-node-manual-toggle",onClick:()=>{if(!c.manualNodeId&&c.recoveryNodes.length>0){c.setManualNodeId(!0);return}c.setManualNodeId(!1),c.loadRecoveryNodes(c.dagRunId)},children:!c.manualNodeId&&c.recoveryNodes.length>0?"手动输入节点 ID":"刷新并改用下拉"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"恢复原因(已按 run/节点失败事实自动预填,可编辑)"}),s.jsx("textarea",{"data-testid":"recovery-reason",value:c.recoveryReason,disabled:f,rows:4,onChange:h=>{c.setRecoveryReasonTouched(!0),c.setRecoveryReason(h.target.value)},placeholder:"将自动预填 operator-recovery / run / from-node / detail"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-reason-refresh",onClick:()=>{c.setRecoveryReasonTouched(!1),c.setRecoveryReason(c.buildCurrentRecoveryReason(c.recoveryConfirm?.label))},children:"重新预填原因"})]}),s.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-dag",children:[s.jsx("h3",{children:"DAG 运行恢复"}),s.jsx("p",{className:"muted",children:"针对 `.harness/dag-runs` 的 Agent DAG 运行。橙色为当前建议;带 * 需确认原因。"}),s.jsxs("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-dag",children:[c.recoveryLanes.dag.map(h=>{const g=h.id===c.recommendedCtaId;return s.jsxs("button",{type:"button",className:g?"btn btn-primary":"btn btn-secondary",disabled:f,title:h.guide,"aria-pressed":c.recoveryConfirm?.id===h.id?!0:void 0,"data-testid":`recovery-cta-${h.id}`,"data-recommended":g?"true":void 0,onClick:()=>{c.handleRecoveryCta(h)},children:[h.label,h.requiresReason?" *":""]},h.id)}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!c.dagRunId.trim(),"data-testid":"recovery-dag-preview",title:"在本页侧栏预览,可关闭返回",onClick:()=>{if(!c.dagRunId.trim()){o.setOpError("侧栏预览需要先选择 DAG 运行 ID");return}c.setInspectSplitOpen(!0)},children:"侧栏预览"})]}),c.recoveryReport?s.jsxs("div",{className:"recovery-report","data-testid":"recovery-report",children:[s.jsxs("div",{className:"recovery-report-header",children:[s.jsx("h3",{children:"交接报告摘要"}),s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"recovery-report-close",onClick:()=>c.setRecoveryReport(null),children:"关闭"})]}),s.jsxs("dl",{className:"recovery-report-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"运行"}),s.jsx("dd",{children:s.jsx("code",{children:c.recoveryReport.runId})})]}),c.recoveryReport.title?s.jsxs("div",{children:[s.jsx("dt",{children:"标题"}),s.jsx("dd",{children:c.recoveryReport.title})]}):null,s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:c.recoveryReport.status??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"失败分类"}),s.jsx("dd",{children:c.recoveryReport.category??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"建议"}),s.jsx("dd",{children:c.recoveryReport.recommendation??"暂无结构化建议"})]})]}),s.jsxs("p",{className:"muted",children:["完整 Markdown 可用 CLI:",s.jsxs("code",{children:["loop-agent dag report --run-id"," ",c.recoveryReport.runId," --markdown"]})]})]}):null,s.jsx(Am,{lane:"dag",cta:c.recoveryConfirm,...m})]}),s.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-worker",children:[s.jsx("h3",{children:"Worker Task 重排队"}),s.jsx("p",{className:"muted",children:"针对 agent-worker Task Pool,不是 DAG run。需要 Task ID;Feature ID 可选。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Task ID(Worker 重排队必填)"}),s.jsx("input",{"data-testid":"recovery-worker-task-id",value:u.taskId,disabled:f,onChange:h=>u.setTaskId(h.target.value.trim()),placeholder:"harness / worker task-id"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Feature ID(可选)"}),s.jsx("input",{"data-testid":"recovery-feature-id",value:c.featureId,disabled:f,onChange:h=>c.setFeatureId(h.target.value.trim()),placeholder:"feature-id"})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-worker",children:c.recoveryLanes.worker.length>0?c.recoveryLanes.worker.map(h=>s.jsxs("button",{type:"button",className:h.id===c.recommendedCtaId?"btn btn-primary":"btn btn-secondary",disabled:f,title:h.guide,"data-testid":`recovery-cta-${h.id}`,"data-recommended":h.id===c.recommendedCtaId?"true":void 0,onClick:()=>{c.handleRecoveryCta(h)},children:[h.label,h.requiresReason?" *":""]},h.id)):s.jsx("p",{className:"muted","data-testid":"recovery-worker-unavailable",children:"当前事实分类下不提供 Worker 重排队。"})}),s.jsx(Am,{lane:"worker",cta:c.recoveryConfirm,...m})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row",hidden:!0,children:c.recoveryCtas.map(h=>s.jsx("span",{children:h.id},h.id))}),c.observeLinkMessage?s.jsxs("p",{className:"muted",children:["[",wy[c.observeLinkStatus],"]"," ",c.observeLinkMessage]}):null,c.observeUrl?s.jsx("p",{className:"muted",children:s.jsx("a",{className:"external-link",href:c.observeUrl,children:c.observeUrl})}):null]})}function Rb(i){const{health:o,readiness:c,healthError:u,layers:f,setupBlocked:m,degraded:h}=i;return s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"panel","aria-labelledby":"settings-title",children:[s.jsx("h2",{id:"settings-title",children:"设置"}),s.jsxs("dl",{className:"kv",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"产品"}),s.jsx("dd",{children:o?.productName??"Loop Operator Console"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库根目录"}),s.jsx("dd",{children:s.jsx("code",{children:o?.repoRoot??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库指纹"}),s.jsx("dd",{children:s.jsx("code",{title:o?.repoFingerprint??void 0,children:o?.repoFingerprint?`${o.repoFingerprint.slice(0,12)}…`:"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Pi 就绪"}),s.jsxs("dd",{children:[s.jsxs("code",{children:[Wm[c]??c,"(",c,")"]}),m?s.jsx("p",{className:"muted",children:"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。请前往「模型与认证」。"}):h?s.jsx("p",{className:"muted",children:"Pi 暂时降级:仍可恢复草稿与需求访谈。"}):null]})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Inspect"}),s.jsxs("dd",{children:[s.jsx("code",{children:"/inspect/"}),"(同一 Console 进程)"]})]})]}),u?s.jsx("p",{className:"error",children:u}):null]}),s.jsxs("section",{className:"panel","aria-labelledby":"layers-title",children:[s.jsx("h2",{id:"layers-title",children:"完成语义分层"}),s.jsx("p",{className:"muted",children:"MVP 不执行收尾提交;不显示「任务已关闭/已交付」。"}),s.jsxs("dl",{className:"kv","data-testid":"completion-layers",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"命令"}),s.jsx("dd",{children:bi(f.command)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"DAG 生命周期"}),s.jsx("dd",{children:bi(f.dag)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"最终验证"}),s.jsx("dd",{children:bi(f.verification)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"晋升"}),s.jsx("dd",{children:bi(f.promote)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务关闭"}),s.jsx("dd",{children:"不可用(MVP)"})]})]})]})]})}function Cb(i){const{busy:o,degraded:c,taskId:u,assessmentId:f,contractValidateOk:m,contractValidateSummary:h,contractDiffSummary:g,contractApplied:b,spineOk:y,onRerunPreflight:E,onApplyContract:j,onRetrySpine:O}=i;return s.jsxs("div",{"data-testid":"panel-contract",children:[s.jsx("h3",{children:"契约落地"}),s.jsx("p",{className:"muted",children:"进入本步后自动跑确定性校验与差异(非 AI 代判)。写入仓库仍需你人工确认一次;应用成功后会自动跑 Spine 审计。"}),s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:f??"—"})]}),s.jsxs("div",{className:"contract-checks",children:[s.jsxs("p",{children:[s.jsx("strong",{children:"校验"}),":"," ",m===null?o?"进行中…":"等待开始":m?"通过":"未通过"]}),h?s.jsx("pre",{className:"cmd","data-testid":"contract-validate-summary",children:h}):null,s.jsxs("p",{children:[s.jsx("strong",{children:"差异"}),g?"":":尚未拉取"]}),g?s.jsx("pre",{className:"cmd","data-testid":"contract-diff-summary",children:g}):null,b?s.jsxs("p",{children:[s.jsx("strong",{children:"Spine"}),":"," ",y===null?"待检查":y?"通过":"未通过"]}):null]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:o||!u.trim(),onClick:E,children:"重新校验"}),s.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"contract-apply",disabled:o||c||!f||m!==!0||b,onClick:j,children:"确认并应用契约"}),b&&y===!1?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o,onClick:O,children:"重试 Spine"}):null]})]})}function Tb(i){const{busy:o,taskId:c,confirmationId:u,confirmationDetails:f,runAction:m,onConfirmAndRun:h}=i;return s.jsxs("div",{"data-testid":"panel-dag-confirm",children:[s.jsx("h3",{children:"DAG 确认(§5.5)"}),s.jsxs("ul",{className:"checklist",children:[s.jsx("li",{children:"源绑定(source)"}),s.jsx("li",{children:"Writer 写集范围(writer-scope)"}),s.jsx("li",{children:"验证命令(verification)"}),s.jsx("li",{children:"人工门禁(human-gates)"})]}),f?s.jsx("pre",{className:"cmd",children:JSON.stringify(f,null,2).slice(0,4e3)}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o,onClick:()=>{m("prepareDagConfirmation",{taskId:c,dagHandle:`${c}.dag.json`,profile:"auto"})},children:"生成 DAG 并准备确认"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o||!u,onClick:h,children:"开始运行"})]}),u?s.jsxs("p",{className:"muted",children:["确认 ID: ",s.jsx("code",{children:u})]}):null]})}function Eb(i){const{busy:o,taskKind:c,onTaskKindChange:u,workflowHint:f,prd:m,onImport:h}=i,g=o||m.prdFileReading;return s.jsxs("div",{"data-testid":"panel-import-prd",children:[s.jsx("h3",{children:"导入需求"}),s.jsx("p",{className:"muted",children:"粘贴、选择或拖入一份或多份 PRD / 需求 Markdown。多文件会分别归档到 source/references,并合成一份可编辑正文。创建前可继续编辑。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"流程类型"}),s.jsx("select",{"data-testid":"workflow-kind-select",value:c,disabled:o||m.prdFileReading,onChange:b=>u(b.target.value),children:Fc.map(b=>s.jsx("option",{value:b.kind,children:b.label},b.kind))})]}),s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-hint",children:[f," · taskKind=",s.jsx("code",{children:c})]}),s.jsxs("div",{className:`prd-drop-zone${m.prdDragOver?" is-dragover":""}`,"data-testid":"prd-drop-zone","data-dragover":m.prdDragOver?"true":"false",onDragEnter:b=>m.onDragEnter(b,g),onDragOver:b=>{b.preventDefault(),b.stopPropagation()},onDragLeave:m.onDragLeave,onDrop:b=>m.onDrop(b,g),children:[s.jsxs("div",{className:"prd-upload-toolbar",children:[s.jsxs("label",{className:`btn btn-ghost prd-upload-btn${g?" is-disabled":""}`,children:["选择需求文档",s.jsx("input",{type:"file",accept:Ly,multiple:!0,hidden:!0,disabled:g,"data-testid":"prd-file-input",onChange:b=>{const y=b.currentTarget;m.loadPrdFromFiles(y.files).finally(()=>{y.value=""})}})]}),s.jsxs("span",{className:"muted prd-upload-hint",children:["支持多文件 .md / .markdown / .txt,单文件最大"," ",eo(Pc),",最多 ",Ri," 个"]}),m.prdDocuments.length>0?s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"prd-recompose",disabled:g,onClick:m.recomposeDocuments,children:"按文件重新合成"}):null]}),m.prdDocuments.length>0?s.jsx("ul",{className:"prd-file-list","data-testid":"prd-file-list",children:m.prdDocuments.map((b,y)=>s.jsxs("li",{className:y===m.prdPrimaryIndex?"is-primary":void 0,"data-testid":`prd-file-item-${y}`,children:[s.jsxs("span",{className:"prd-file-item-name",children:[b.fileName,y===m.prdPrimaryIndex?s.jsx("span",{className:"prd-file-primary-tag",children:"主"}):null,s.jsxs("span",{className:"muted",children:[" ","· ",eo(b.sourceBytes)]})]}),s.jsxs("span",{className:"prd-file-item-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===m.prdPrimaryIndex,onClick:()=>m.setPrimaryDocument(y),children:"设为主"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===0,onClick:()=>m.moveDocument(y,-1),children:"上移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===m.prdDocuments.length-1,onClick:()=>m.moveDocument(y,1),children:"下移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g,onClick:()=>m.removeDocument(y),children:"移除"})]})]},`${b.fileName}-${y}`))}):null,m.prdDocuments.length>0?s.jsxs("div",{className:"prd-file-meta",children:[s.jsxs("span",{children:["分卷=上传原件(将分别归档);正文=本会话采用稿",m.prdComposedDirty?"(已手动编辑)":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost prd-file-clear","data-testid":"prd-file-clear",disabled:g,onClick:m.clearDocuments,children:"清除来源列表"})]}):null,m.prdDragOver?s.jsx("p",{className:"prd-drop-hint","data-testid":"prd-drop-hint",children:"释放以载入"}):null,s.jsxs("label",{className:"field prd-text-field",children:[s.jsx("span",{className:"muted",children:"PRD Markdown"}),s.jsx("textarea",{rows:10,value:m.prdText,disabled:g,"data-testid":"prd-textarea",onChange:b=>m.onPrdTextChange(b.target.value)})]})]}),m.prdFileError?s.jsx("p",{className:"prd-file-error",role:"alert","aria-live":"polite","data-testid":"prd-file-error",children:m.prdFileError}):null,s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o||m.prdFileReading||!m.prdText.trim(),onClick:h,children:"导入并创建任务"})})]})}function Ab(i){const{busy:o,taskId:c,taskTitle:u,taskKind:f,sessionId:m,question:h,answerText:g,onAnswerTextChange:b,draftSummary:y,assessmentId:E,runAction:j}=i;return s.jsxs("div",{"data-testid":"panel-interview",children:[s.jsx("h3",{children:"需求访谈(grill-me)"}),s.jsx("p",{className:"muted",children:"一次一问;也可跳过:系统会按推荐补齐草稿并签发评估,随后进入校验。 访谈中不可应用契约 / 运行 DAG / 对账。"}),y?s.jsx("pre",{className:"cmd","data-testid":"draft-summary",children:JSON.stringify(y,null,2)}):null,s.jsxs("div",{className:"cta-row",style:{marginBottom:"0.75rem"},children:[!m||!h?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o||!c.trim(),onClick:()=>{j("interviewStart",{taskId:c,title:u,taskKind:f})},children:"开始 / 继续访谈"}):null,s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"interview-skip",disabled:o||!c.trim(),onClick:()=>{j("interviewSkip",{taskId:c,title:u,taskKind:f})},children:"跳过访谈"})]}),m&&h?s.jsxs("div",{className:"interview-card",children:[s.jsxs("p",{className:"interview-q",children:[s.jsx("strong",{children:h.id})," · 风险=",Fm[h.risk??""]??h.risk??"—"]}),s.jsx("p",{children:h.text}),h.recommendation?s.jsxs("p",{className:"muted",children:["推荐:",h.recommendation]}):null,s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"你的回答(覆盖推荐)"}),s.jsx("textarea",{rows:3,value:g,disabled:o,onChange:O=>b(O.target.value)})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o,onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"accept-recommendation"}).then(()=>b(""))},children:"接受推荐"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o||!g.trim(),onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"override",text:g}).then(()=>b(""))},children:"提交自定义回答"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:o||h.risk==="high",onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"defer",text:g||h.recommendation}).then(()=>b(""))},children:"暂缓(非高风险)"})]})]}):null,E?s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:E})]}):null]})}function kb(i){const{busy:o,confirmationId:c,operationId:u,dagRunId:f,taskId:m,observeBusy:h,sseLog:g,runAction:b,onStopFollow:y,onShowInspectSplit:E,onOpenInspectSplit:j}=i;return s.jsxs("div",{"data-testid":"panel-run",children:[s.jsx("h3",{children:"运行详情"}),s.jsxs("div",{className:"meta-row",children:[s.jsxs("div",{children:["操作 ID: ",s.jsx("code",{children:u??"—"})]}),s.jsxs("div",{children:["确认 ID: ",s.jsx("code",{children:c??"—"})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:o||!c,onClick:()=>{b("runDag",{confirmationId:c},{clientRequestId:Ni("run")})},children:"重新运行"}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:y,children:"停止跟随日志"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!f.trim(),onClick:E,children:"打开检视"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:h||!f.trim()&&!m.trim(),title:"在本页侧栏预览,可关闭返回",onClick:j,children:"侧栏预览"})]}),s.jsx("pre",{className:"cmd","data-testid":"sse-log",children:g.join(`
28
- `)||"(尚无事件)"})]})}function wb(i){const{shell:o,actions:c,wizard:u,prd:f,recovery:m}=i,{busy:h,step:g,setupBlocked:b,degraded:y}=o;return s.jsxs("section",{className:"panel task-ops","aria-labelledby":"task-ops-title",children:[s.jsx("h2",{id:"task-ops-title",children:"任务操作"}),s.jsx("p",{className:"panel-lead",children:"按 Happy Path 推进;契约落地一步内自动校验,人工确认写入。"}),s.jsx("ol",{className:"wizard-steps","data-testid":"wizard-steps",children:u.wizardSteps.map((E,j)=>s.jsxs("li",{"data-active":g===E.id,"data-done":j<u.stepIndex,children:[s.jsx("span",{className:"step-index",children:String(j+1).padStart(2,"0")}),s.jsx("span",{className:"step-label",children:E.label})]},E.id))}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"任务 ID"}),s.jsx("input",{"data-testid":"task-id-input",value:u.taskId,disabled:h||b||g==="import-prd",placeholder:g==="import-prd"?"导入需求后自动生成":"task-id",onChange:E=>u.setTaskId(E.target.value.trim())})]}),u.taskTitle?s.jsxs("p",{className:"workflow-hint","data-testid":"task-title-chip",children:["任务名称:",u.taskTitle]}):null,g!=="import-prd"&&!b?s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-chip",children:["当前流程:",u.workflowMeta.label," ·"," ",s.jsx("code",{children:u.taskKind})]}):null,b||g==="setup"?s.jsxs("div",{className:"empty-state","data-testid":"setup-gate",children:[s.jsx("p",{className:"empty-title",children:"需要先完成设置"}),s.jsx("p",{className:"muted",children:"请先在「模型与认证」完成 Pi 就绪,再导入需求与访谈。"}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h,onClick:()=>{o.selectNav("models"),c.runAction("refreshReadiness",{}).then(()=>o.loadHealth())},children:"刷新就绪状态"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h,onClick:()=>{c.runAction("doctor",{})},children:"运行诊断"}),s.jsx("pre",{className:"cmd",children:Jm})]})]}):s.jsxs("div",{className:"wizard-body","data-testid":"wizard-body",children:[g==="import-prd"&&s.jsx(Eb,{busy:h,taskKind:u.taskKind,onTaskKindChange:u.setTaskKind,workflowHint:u.workflowMeta.hint,prd:f,onImport:()=>{u.importPrdAndCreate()}}),g==="interview"&&s.jsx(Ab,{busy:h,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:c.runAction}),g==="contract"&&s.jsx(Cb,{busy:h,degraded:y,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()}}),g==="dag-confirm"&&s.jsx(Tb,{busy:h,taskId:u.taskId,confirmationId:c.confirmationId,confirmationDetails:c.confirmationDetails,runAction:c.runAction,onConfirmAndRun:()=>{u.confirmAndRunDag()}}),g==="run"&&s.jsx(kb,{busy:h,confirmationId:c.confirmationId,operationId:c.operationId,dagRunId:m.dagRunId,taskId:u.taskId,observeBusy:o.observeBusy,sseLog:c.sseLog,runAction:c.runAction,onStopFollow:c.stopFollowSse,onShowInspectSplit:()=>m.setInspectSplitOpen(!0),onOpenInspectSplit:()=>{m.openInspectSplit()}})]})]})}const Db={};function Ob(){const i=zy(),o=v.useRef(()=>{}),c=v.useCallback(E=>o.current(E),[]),u=_y({shell:i,applyInterviewPayload:c}),f=Wy(),m=mb({shell:i,actions:u,prd:f}),h=fb({shell:i,actions:u,wizard:m});v.useEffect(()=>{o.current=m.applyInterviewPayload}),v.useEffect(()=>{i.loadHealth()},[i.loadHealth]);const g=v.useCallback((E,j={})=>{i.selectNav(E),j.taskId&&m.setTaskId(j.taskId),j.dagRunId&&h.setDagRunId(j.dagRunId),j.fromNodeId&&h.setFromNodeId(j.fromNodeId),j.featureId&&h.setFeatureId(j.featureId);const O=Ym(E,j);window.location.hash.replace(/^#/,"")!==O&&(window.location.hash=O)},[i.selectNav,m.setTaskId,h.setDagRunId,h.setFromNodeId,h.setFeatureId]),b=v.useCallback(()=>{const E=Dg(window.location);if(E){g(E.workspace,E);return}const j=$m({env:Db?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location});g(j,{})},[g]);v.useEffect(()=>(b(),window.addEventListener("hashchange",b),()=>window.removeEventListener("hashchange",b)),[b]);const y=i.nav==="recovery"&&h.dagRunId.trim()?`/inspect/#/dag/${encodeURIComponent(h.dagRunId.trim())}?from=recovery`:"/inspect/#/";return s.jsx(s.Fragment,{children:s.jsxs("div",{className:`console-app${i.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(yb,{nav:i.nav,readiness:i.readiness,setupBlocked:i.setupBlocked,degraded:i.degraded,health:i.health,inspectHref:y}),s.jsxs("div",{className:`console-shell${i.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(bb,{opError:i.opError,opMessage:i.opMessage}),s.jsxs("main",{className:`console-main${i.nav==="chat"?" console-main--fill":""}`,children:[i.nav==="tasks"?s.jsx(wb,{shell:i,actions:u,wizard:m,prd:f,recovery:h}):null,i.nav==="recovery"?s.jsx(Nb,{shell:i,recovery:h,wizard:m}):null,i.nav==="night"?s.jsx(Xv,{busy:i.busy,runAction:u.runAction,isActionSuccess:u.isActionSuccess,setOpError:i.setOpError}):null,i.nav==="models"?s.jsx(jb,{busy:i.busy,readiness:i.readiness,readinessReport:i.readinessReport,health:i.health,onRefreshReadiness:()=>{u.runAction("refreshReadiness",{}).then(()=>i.loadHealth())}}):null,i.nav==="chat"?s.jsxs("section",{className:"panel panel--chat","aria-labelledby":"chat-title",children:[s.jsx("h2",{id:"chat-title",className:"sr-only",children:"对话"}),s.jsx(Ay,{origin:"",readiness:i.readiness,surface:"workspace",onNavigateWorkspace:g})]}):null,i.nav==="settings"?s.jsx(Rb,{health:i.health,readiness:i.readiness,healthError:i.healthError,layers:i.layers,setupBlocked:i.setupBlocked,degraded:i.degraded}):null]}),h.inspectSplitOpen&&h.dagRunId.trim()?s.jsx(Mv,{dagRunId:h.dagRunId.trim(),nodeId:h.fromNodeId.trim()||void 0,onClose:()=>h.setInspectSplitOpen(!1),onOpenFull:h.openFullInspect}):null]})]})})}const lh=document.getElementById("root");if(!lh)throw new Error("Loop Operator Console: #root missing");Dv.createRoot(lh).render(s.jsx(v.StrictMode,{children:s.jsx(Ob,{})}));