@tea-agent/loop-agent 0.34.3 → 0.34.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +8 -3
- package/CHANGELOG.md +66 -22
- package/README.md +2 -2
- package/dist/shared/operator/capabilities.js +0 -7
- package/dist/worker/cli.js +21 -27
- package/dist/worker/console/app-data.js +2 -0
- package/dist/worker/console/chat/chat-event-store.js +134 -4
- package/dist/worker/console/chat/pi-runtime.js +308 -63
- package/dist/worker/console/chat/resource-preferences-store.js +152 -0
- package/dist/worker/console/chat/routes.js +425 -19
- package/dist/worker/console/chat/shortcuts.js +208 -9
- package/dist/worker/console/chat/tool-preview.js +162 -5
- package/dist/worker/console/chat/turn-execution-registry.js +82 -0
- package/dist/worker/console/dag-execution-receipt.js +14 -1
- package/dist/worker/console/doctor.js +1 -1
- package/dist/worker/console/index.js +1 -0
- package/dist/worker/console/open-browser.js +134 -0
- package/dist/worker/console/recovery-cta.js +1 -1
- package/dist/worker/console/server.js +5 -1
- package/dist/worker/console/static/assets/index-qpkysQYW.css +1 -0
- package/dist/worker/console/static/assets/index-y980PqtP.js +56 -0
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/chat-markdown-security.js +38 -0
- package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +1 -3
- package/dist/worker/console/static-src/operator-chat/format.js +2 -2
- package/dist/worker/console/static-src/operator-chat/refs.js +24 -0
- package/dist/worker/console/static-src/operator-chat/resource-auto-invocation.js +91 -0
- package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +690 -0
- package/dist/worker/console/static-src/operator-chat/turn-submission.js +158 -0
- package/dist/worker/console/static-src/operator-chat/useChatStream.js +535 -86
- package/dist/worker/console/static-src/operator-chat/useChatThread.js +11 -5
- package/dist/worker/console/static-src/operator-chat/useComposer.js +81 -3
- package/dist/workflows/dag/init-hybrid.js +2 -0
- package/docs/architecture/evolution.md +1 -1
- package/docs/architecture/system-overview.md +1 -1
- package/docs/architecture/worker-and-feature.md +1 -1
- package/docs/operations/local-development-environment.md +4 -2
- package/docs/templates/branch-merge-report.md +9 -0
- package/docs/templates/evaluation/agents-map-slim-v1.md +1 -1
- package/docs/templates/evaluation/agents-map-verbose-v0.md +2 -2
- package/docs/templates/init-managed-agents.md +2 -2
- package/package.json +6 -2
- package/skills/agent-worker/SKILL.md +1 -1
- package/skills/agent-worker/references/agent-worker-operator.md +2 -2
- package/skills/loop-agent/references/command-reference.md +2 -3
- package/dist/worker/console/static/assets/index-BQkhJpV8.css +0 -1
- package/dist/worker/console/static/assets/index-BpuHmlSP.js +0 -29
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.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 Jc={exports:{}},al={};var hm;function Hg(){if(hm)return al;hm=1;var i=Symbol.for("react.transitional.element"),r=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 v in f)v!=="key"&&(m[v]=f[v])}else m=f;return f=m.ref,{$$typeof:i,type:u,key:h,ref:f!==void 0?f:null,props:m}}return al.Fragment=r,al.jsx=c,al.jsxs=c,al}var pm;function Bg(){return pm||(pm=1,Jc.exports=Hg()),Jc.exports}var s=Bg(),Fc={exports:{}},be={};var gm;function Gg(){if(gm)return be;gm=1;var i=Symbol.for("react.transitional.element"),r=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"),v=Symbol.for("react.forward_ref"),S=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),M=Symbol.iterator;function w(b){return b===null||typeof b!="object"?null:(b=M&&b[M]||b["@@iterator"],typeof b=="function"?b:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},G=Object.assign,ae={};function se(b,k,Z){this.props=b,this.context=k,this.refs=ae,this.updater=Z||z}se.prototype.isReactComponent={},se.prototype.setState=function(b,k){if(typeof b!="object"&&typeof b!="function"&&b!=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,b,k,"setState")},se.prototype.forceUpdate=function(b){this.updater.enqueueForceUpdate(this,b,"forceUpdate")};function C(){}C.prototype=se.prototype;function A(b,k,Z){this.props=b,this.context=k,this.refs=ae,this.updater=Z||z}var D=A.prototype=new C;D.constructor=A,G(D,se.prototype),D.isPureReactComponent=!0;var J=Array.isArray;function L(){}var E={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function ne(b,k,Z){var $=Z.ref;return{$$typeof:i,type:b,key:k,ref:$!==void 0?$:null,props:Z}}function te(b,k){return ne(b.type,k,b.props)}function X(b){return typeof b=="object"&&b!==null&&b.$$typeof===i}function W(b){var k={"=":"=0",":":"=2"};return"$"+b.replace(/[=:]/g,function(Z){return k[Z]})}var ce=/\/+/g;function K(b,k){return typeof b=="object"&&b!==null&&b.key!=null?W(""+b.key):k.toString(36)}function ie(b){switch(b.status){case"fulfilled":return b.value;case"rejected":throw b.reason;default:switch(typeof b.status=="string"?b.then(L,L):(b.status="pending",b.then(function(k){b.status==="pending"&&(b.status="fulfilled",b.value=k)},function(k){b.status==="pending"&&(b.status="rejected",b.reason=k)})),b.status){case"fulfilled":return b.value;case"rejected":throw b.reason}}throw b}function j(b,k,Z,$,me){var re=typeof b;(re==="undefined"||re==="boolean")&&(b=null);var le=!1;if(b===null)le=!0;else switch(re){case"bigint":case"string":case"number":le=!0;break;case"object":switch(b.$$typeof){case i:case r:le=!0;break;case N:return le=b._init,j(le(b._payload),k,Z,$,me)}}if(le)return me=me(b),le=$===""?"."+K(b,0):$,J(me)?(Z="",le!=null&&(Z=le.replace(ce,"$&/")+"/"),j(me,k,Z,"",function(Ee){return Ee})):me!=null&&(X(me)&&(me=te(me,Z+(me.key==null||b&&b.key===me.key?"":(""+me.key).replace(ce,"$&/")+"/")+le)),k.push(me)),1;le=0;var de=$===""?".":$+":";if(J(b))for(var ue=0;ue<b.length;ue++)$=b[ue],re=de+K($,ue),le+=j($,k,Z,re,me);else if(ue=w(b),typeof ue=="function")for(b=ue.call(b),ue=0;!($=b.next()).done;)$=$.value,re=de+K($,ue++),le+=j($,k,Z,re,me);else if(re==="object"){if(typeof b.then=="function")return j(ie(b),k,Z,$,me);throw k=String(b),Error("Objects are not valid as a React child (found: "+(k==="[object Object]"?"object with keys {"+Object.keys(b).join(", ")+"}":k)+"). If you meant to render a collection of children, use an array instead.")}return le}function I(b,k,Z){if(b==null)return b;var $=[],me=0;return j(b,$,"","",function(re){return k.call(Z,re,me++)}),$}function _(b){if(b._status===-1){var k=b._result;k=k(),k.then(function(Z){(b._status===0||b._status===-1)&&(b._status=1,b._result=Z)},function(Z){(b._status===0||b._status===-1)&&(b._status=2,b._result=Z)}),b._status===-1&&(b._status=0,b._result=k)}if(b._status===1)return b._result.default;throw b._result}var oe=typeof reportError=="function"?reportError:function(b){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var k=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof b=="object"&&b!==null&&typeof b.message=="string"?String(b.message):String(b),error:b});if(!window.dispatchEvent(k))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",b);return}console.error(b)},P={map:I,forEach:function(b,k,Z){I(b,function(){k.apply(this,arguments)},Z)},count:function(b){var k=0;return I(b,function(){k++}),k},toArray:function(b){return I(b,function(k){return k})||[]},only:function(b){if(!X(b))throw Error("React.Children.only expected to receive a single React element child.");return b}};return be.Activity=x,be.Children=P,be.Component=se,be.Fragment=c,be.Profiler=f,be.PureComponent=A,be.StrictMode=u,be.Suspense=S,be.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,be.__COMPILER_RUNTIME={__proto__:null,c:function(b){return E.H.useMemoCache(b)}},be.cache=function(b){return function(){return b.apply(null,arguments)}},be.cacheSignal=function(){return null},be.cloneElement=function(b,k,Z){if(b==null)throw Error("The argument must be a React element, but you passed "+b+".");var $=G({},b.props),me=b.key;if(k!=null)for(re in k.key!==void 0&&(me=""+k.key),k)!Y.call(k,re)||re==="key"||re==="__self"||re==="__source"||re==="ref"&&k.ref===void 0||($[re]=k[re]);var re=arguments.length-2;if(re===1)$.children=Z;else if(1<re){for(var le=Array(re),de=0;de<re;de++)le[de]=arguments[de+2];$.children=le}return ne(b.type,me,$)},be.createContext=function(b){return b={$$typeof:h,_currentValue:b,_currentValue2:b,_threadCount:0,Provider:null,Consumer:null},b.Provider=b,b.Consumer={$$typeof:m,_context:b},b},be.createElement=function(b,k,Z){var $,me={},re=null;if(k!=null)for($ in k.key!==void 0&&(re=""+k.key),k)Y.call(k,$)&&$!=="key"&&$!=="__self"&&$!=="__source"&&(me[$]=k[$]);var le=arguments.length-2;if(le===1)me.children=Z;else if(1<le){for(var de=Array(le),ue=0;ue<le;ue++)de[ue]=arguments[ue+2];me.children=de}if(b&&b.defaultProps)for($ in le=b.defaultProps,le)me[$]===void 0&&(me[$]=le[$]);return ne(b,re,me)},be.createRef=function(){return{current:null}},be.forwardRef=function(b){return{$$typeof:v,render:b}},be.isValidElement=X,be.lazy=function(b){return{$$typeof:N,_payload:{_status:-1,_result:b},_init:_}},be.memo=function(b,k){return{$$typeof:y,type:b,compare:k===void 0?null:k}},be.startTransition=function(b){var k=E.T,Z={};E.T=Z;try{var $=b(),me=E.S;me!==null&&me(Z,$),typeof $=="object"&&$!==null&&typeof $.then=="function"&&$.then(L,oe)}catch(re){oe(re)}finally{k!==null&&Z.types!==null&&(k.types=Z.types),E.T=k}},be.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},be.use=function(b){return E.H.use(b)},be.useActionState=function(b,k,Z){return E.H.useActionState(b,k,Z)},be.useCallback=function(b,k){return E.H.useCallback(b,k)},be.useContext=function(b){return E.H.useContext(b)},be.useDebugValue=function(){},be.useDeferredValue=function(b,k){return E.H.useDeferredValue(b,k)},be.useEffect=function(b,k){return E.H.useEffect(b,k)},be.useEffectEvent=function(b){return E.H.useEffectEvent(b)},be.useId=function(){return E.H.useId()},be.useImperativeHandle=function(b,k,Z){return E.H.useImperativeHandle(b,k,Z)},be.useInsertionEffect=function(b,k){return E.H.useInsertionEffect(b,k)},be.useLayoutEffect=function(b,k){return E.H.useLayoutEffect(b,k)},be.useMemo=function(b,k){return E.H.useMemo(b,k)},be.useOptimistic=function(b,k){return E.H.useOptimistic(b,k)},be.useReducer=function(b,k,Z){return E.H.useReducer(b,k,Z)},be.useRef=function(b){return E.H.useRef(b)},be.useState=function(b){return E.H.useState(b)},be.useSyncExternalStore=function(b,k,Z){return E.H.useSyncExternalStore(b,k,Z)},be.useTransition=function(){return E.H.useTransition()},be.version="19.2.8",be}var vm;function fo(){return vm||(vm=1,Fc.exports=Gg()),Fc.exports}var p=fo(),Wc={exports:{}},sl={},Pc={exports:{}},eo={};var ym;function qg(){return ym||(ym=1,(function(i){function r(j,I){var _=j.length;j.push(I);e:for(;0<_;){var oe=_-1>>>1,P=j[oe];if(0<f(P,I))j[oe]=I,j[_]=P,_=oe;else break e}}function c(j){return j.length===0?null:j[0]}function u(j){if(j.length===0)return null;var I=j[0],_=j.pop();if(_!==I){j[0]=_;e:for(var oe=0,P=j.length,b=P>>>1;oe<b;){var k=2*(oe+1)-1,Z=j[k],$=k+1,me=j[$];if(0>f(Z,_))$<P&&0>f(me,Z)?(j[oe]=me,j[$]=_,oe=$):(j[oe]=Z,j[k]=_,oe=k);else if($<P&&0>f(me,_))j[oe]=me,j[$]=_,oe=$;else break e}}return I}function f(j,I){var _=j.sortIndex-I.sortIndex;return _!==0?_:j.id-I.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,v=h.now();i.unstable_now=function(){return h.now()-v}}var S=[],y=[],N=1,x=null,M=3,w=!1,z=!1,G=!1,ae=!1,se=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function D(j){for(var I=c(y);I!==null;){if(I.callback===null)u(y);else if(I.startTime<=j)u(y),I.sortIndex=I.expirationTime,r(S,I);else break;I=c(y)}}function J(j){if(G=!1,D(j),!z)if(c(S)!==null)z=!0,L||(L=!0,W());else{var I=c(y);I!==null&&ie(J,I.startTime-j)}}var L=!1,E=-1,Y=5,ne=-1;function te(){return ae?!0:!(i.unstable_now()-ne<Y)}function X(){if(ae=!1,L){var j=i.unstable_now();ne=j;var I=!0;try{e:{z=!1,G&&(G=!1,C(E),E=-1),w=!0;var _=M;try{t:{for(D(j),x=c(S);x!==null&&!(x.expirationTime>j&&te());){var oe=x.callback;if(typeof oe=="function"){x.callback=null,M=x.priorityLevel;var P=oe(x.expirationTime<=j);if(j=i.unstable_now(),typeof P=="function"){x.callback=P,D(j),I=!0;break t}x===c(S)&&u(S),D(j)}else u(S);x=c(S)}if(x!==null)I=!0;else{var b=c(y);b!==null&&ie(J,b.startTime-j),I=!1}}break e}finally{x=null,M=_,w=!1}I=void 0}}finally{I?W():L=!1}}}var W;if(typeof A=="function")W=function(){A(X)};else if(typeof MessageChannel<"u"){var ce=new MessageChannel,K=ce.port2;ce.port1.onmessage=X,W=function(){K.postMessage(null)}}else W=function(){se(X,0)};function ie(j,I){E=se(function(){j(i.unstable_now())},I)}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(j){j.callback=null},i.unstable_forceFrameRate=function(j){0>j||125<j?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Y=0<j?Math.floor(1e3/j):5},i.unstable_getCurrentPriorityLevel=function(){return M},i.unstable_next=function(j){switch(M){case 1:case 2:case 3:var I=3;break;default:I=M}var _=M;M=I;try{return j()}finally{M=_}},i.unstable_requestPaint=function(){ae=!0},i.unstable_runWithPriority=function(j,I){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var _=M;M=j;try{return I()}finally{M=_}},i.unstable_scheduleCallback=function(j,I,_){var oe=i.unstable_now();switch(typeof _=="object"&&_!==null?(_=_.delay,_=typeof _=="number"&&0<_?oe+_:oe):_=oe,j){case 1:var P=-1;break;case 2:P=250;break;case 5:P=1073741823;break;case 4:P=1e4;break;default:P=5e3}return P=_+P,j={id:N++,callback:I,priorityLevel:j,startTime:_,expirationTime:P,sortIndex:-1},_>oe?(j.sortIndex=_,r(y,j),c(S)===null&&j===c(y)&&(G?(C(E),E=-1):G=!0,ie(J,_-oe))):(j.sortIndex=P,r(S,j),z||w||(z=!0,L||(L=!0,W()))),j},i.unstable_shouldYield=te,i.unstable_wrapCallback=function(j){var I=M;return function(){var _=M;M=I;try{return j.apply(this,arguments)}finally{M=_}}}})(eo)),eo}var bm;function $g(){return bm||(bm=1,Pc.exports=qg()),Pc.exports}var to={exports:{}},St={};var xm;function Yg(){if(xm)return St;xm=1;var i=fo();function r(S){var y="https://react.dev/errors/"+S;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var N=2;N<arguments.length;N++)y+="&args[]="+encodeURIComponent(arguments[N])}return"Minified React error #"+S+"; 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(r(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(S,y,N){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:f,key:x==null?null:""+x,children:S,containerInfo:y,implementation:N}}var h=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function v(S,y){if(S==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return St.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,St.createPortal=function(S,y){var N=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(r(299));return m(S,y,null,N)},St.flushSync=function(S){var y=h.T,N=u.p;try{if(h.T=null,u.p=2,S)return S()}finally{h.T=y,u.p=N,u.d.f()}},St.preconnect=function(S,y){typeof S=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,u.d.C(S,y))},St.prefetchDNS=function(S){typeof S=="string"&&u.d.D(S)},St.preinit=function(S,y){if(typeof S=="string"&&y&&typeof y.as=="string"){var N=y.as,x=v(N,y.crossOrigin),M=typeof y.integrity=="string"?y.integrity:void 0,w=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;N==="style"?u.d.S(S,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:x,integrity:M,fetchPriority:w}):N==="script"&&u.d.X(S,{crossOrigin:x,integrity:M,fetchPriority:w,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},St.preinitModule=function(S,y){if(typeof S=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var N=v(y.as,y.crossOrigin);u.d.M(S,{crossOrigin:N,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0})}}else y==null&&u.d.M(S)},St.preload=function(S,y){if(typeof S=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var N=y.as,x=v(N,y.crossOrigin);u.d.L(S,N,{crossOrigin:x,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})}},St.preloadModule=function(S,y){if(typeof S=="string")if(y){var N=v(y.as,y.crossOrigin);u.d.m(S,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:N,integrity:typeof y.integrity=="string"?y.integrity:void 0})}else u.d.m(S)},St.requestFormReset=function(S){u.d.r(S)},St.unstable_batchedUpdates=function(S,y){return S(y)},St.useFormState=function(S,y,N){return h.H.useFormState(S,y,N)},St.useFormStatus=function(){return h.H.useHostTransitionStatus()},St.version="19.2.8",St}var Sm;function Kg(){if(Sm)return to.exports;Sm=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(r){console.error(r)}}return i(),to.exports=Yg(),to.exports}var jm;function Xg(){if(jm)return sl;jm=1;var i=$g(),r=fo(),c=Kg();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 v(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function S(e){if(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 o=l.alternate;if(o===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===n)return S(l),e;if(o===a)return S(l),t;o=o.sibling}throw Error(u(188))}if(n.return!==a.return)n=l,a=o;else{for(var d=!1,g=l.child;g;){if(g===n){d=!0,n=l,a=o;break}if(g===a){d=!0,a=l,n=o;break}g=g.sibling}if(!d){for(g=o.child;g;){if(g===n){d=!0,n=o,a=l;break}if(g===a){d=!0,a=o,n=l;break}g=g.sibling}if(!d)throw Error(u(189))}}if(n.alternate!==a)throw Error(u(190))}if(n.tag!==3)throw Error(u(188));return n.stateNode.current===n?e:t}function N(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=N(e),t!==null)return t;e=e.sibling}return null}var x=Object.assign,M=Symbol.for("react.element"),w=Symbol.for("react.transitional.element"),z=Symbol.for("react.portal"),G=Symbol.for("react.fragment"),ae=Symbol.for("react.strict_mode"),se=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),A=Symbol.for("react.context"),D=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),te=Symbol.for("react.memo_cache_sentinel"),X=Symbol.iterator;function W(e){return e===null||typeof e!="object"?null:(e=X&&e[X]||e["@@iterator"],typeof e=="function"?e:null)}var ce=Symbol.for("react.client.reference");function K(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ce?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case G:return"Fragment";case se:return"Profiler";case ae:return"StrictMode";case J:return"Suspense";case L:return"SuspenseList";case ne:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case z:return"Portal";case A:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case D:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case E:return t=e.displayName||null,t!==null?t:K(e.type)||"Memo";case Y:t=e._payload,e=e._init;try{return K(e(t))}catch{}}return null}var ie=Array.isArray,j=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_={pending:!1,data:null,method:null,action:null},oe=[],P=-1;function b(e){return{current:e}}function k(e){0>P||(e.current=oe[P],oe[P]=null,P--)}function Z(e,t){P++,oe[P]=e.current,e.current=t}var $=b(null),me=b(null),re=b(null),le=b(null);function de(e,t){switch(Z(re,t),Z(me,e),Z($,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Lf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Lf(t),e=Uf(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}k($),Z($,e)}function ue(){k($),k(me),k(re)}function Ee(e){e.memoizedState!==null&&Z(le,e);var t=$.current,n=Uf(t,e.type);t!==n&&(Z(me,e),Z($,n))}function ke(e){me.current===e&&(k($),k(me)),le.current===e&&(k(le),Ps._currentValue=_)}var Ke,yt;function at(e){if(Ke===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ke=t&&t[1]||"",yt=-1<n.stack.indexOf(`
|
|
2
|
-
at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
3
|
-
`+Ke+e+yt}var st=!1;function bt(e,t){if(!e||st)return"";st=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var ee=function(){throw Error()};if(Object.defineProperty(ee.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ee,[])}catch(q){var B=q}Reflect.construct(e,[],ee)}else{try{ee.call()}catch(q){B=q}e.call(ee.prototype)}}else{try{throw Error()}catch(q){B=q}(ee=e())&&typeof ee.catch=="function"&&ee.catch(function(){})}}catch(q){if(q&&B&&typeof q.stack=="string")return[q.stack,B.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 o=a.DetermineComponentFrameRoot(),d=o[0],g=o[1];if(d&&g){var R=d.split(`
|
|
4
|
-
`),H=g.split(`
|
|
5
|
-
`);for(l=a=0;a<R.length&&!R[a].includes("DetermineComponentFrameRoot");)a++;for(;l<H.length&&!H[l].includes("DetermineComponentFrameRoot");)l++;if(a===R.length||l===H.length)for(a=R.length-1,l=H.length-1;1<=a&&0<=l&&R[a]!==H[l];)l--;for(;1<=a&&0<=l;a--,l--)if(R[a]!==H[l]){if(a!==1||l!==1)do if(a--,l--,0>l||R[a]!==H[l]){var Q=`
|
|
6
|
-
`+R[a].replace(" at new "," at ");return e.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",e.displayName)),Q}while(1<=a&&0<=l);break}}}finally{st=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?at(n):""}function ut(e,t){switch(e.tag){case 26:case 27:case 5:return at(e.type);case 16:return at("Lazy");case 13:return e.child!==t&&t!==null?at("Suspense Fallback"):at("Suspense");case 19:return at("SuspenseList");case 0:case 15:return bt(e.type,!1);case 11:return bt(e.type.render,!1);case 1:return bt(e.type,!0);case 31:return at("Activity");default:return""}}function rn(e){try{var t="",n=null;do t+=ut(e,n),n=e,e=e.return;while(e);return t}catch(a){return`
|
|
7
|
-
Error generating stack: `+a.message+`
|
|
8
|
-
`+a.stack}}var Jt=Object.prototype.hasOwnProperty,Ht=i.unstable_scheduleCallback,ye=i.unstable_cancelCallback,Ae=i.unstable_shouldYield,V=i.unstable_requestPaint,he=i.unstable_now,dt=i.unstable_getCurrentPriorityLevel,We=i.unstable_ImmediatePriority,lt=i.unstable_UserBlockingPriority,Ft=i.unstable_NormalPriority,ja=i.unstable_LowPriority,Pn=i.unstable_IdlePriority,we=i.log,rt=i.unstable_setDisableYieldValue,Le=null,_e=null;function jt(e){if(typeof we=="function"&&rt(e),_e&&typeof _e.setStrictMode=="function")try{_e.setStrictMode(Le,e)}catch{}}var xt=Math.clz32?Math.clz32:Li,Ii=Math.log,zi=Math.LN2;function Li(e){return e>>>=0,e===0?32:31-(Ii(e)/zi|0)|0}var ft=256,ea=262144,ol=4194304;function ta(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 ul(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,o=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var g=a&134217727;return g!==0?(a=g&~o,a!==0?l=ta(a):(d&=g,d!==0?l=ta(d):n||(n=g&~e,n!==0&&(l=ta(n))))):(g=a&~o,g!==0?l=ta(g):d!==0?l=ta(d):n||(n=a&~e,n!==0&&(l=ta(n)))),l===0?0:t!==0&&t!==l&&(t&o)===0&&(o=l&-l,n=t&-t,o>=n||o===32&&(n&4194048)!==0)?t:l}function fs(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Th(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 vo(){var e=ol;return ol<<=1,(ol&62914560)===0&&(ol=4194304),e}function Ui(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ms(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Eh(e,t,n,a,l,o){var d=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var g=e.entanglements,R=e.expirationTimes,H=e.hiddenUpdates;for(n=d&~n;0<n;){var Q=31-xt(n),ee=1<<Q;g[Q]=0,R[Q]=-1;var B=H[Q];if(B!==null)for(H[Q]=null,Q=0;Q<B.length;Q++){var q=B[Q];q!==null&&(q.lane&=-536870913)}n&=~ee}a!==0&&yo(e,a,0),o!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=o&~(d&~t))}function yo(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-xt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function bo(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-xt(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function xo(e,t){var n=t&-t;return n=(n&42)!==0?1:Hi(n),(n&(e.suspendedLanes|t))!==0?0:n}function Hi(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 Bi(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function So(){var e=I.p;return e!==0?e:(e=window.event,e===void 0?32:rm(e.type))}function jo(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var wn=Math.random().toString(36).slice(2),mt="__reactFiber$"+wn,Rt="__reactProps$"+wn,Na="__reactContainer$"+wn,Gi="__reactEvents$"+wn,wh="__reactListeners$"+wn,kh="__reactHandles$"+wn,No="__reactResources$"+wn,hs="__reactMarker$"+wn;function qi(e){delete e[mt],delete e[Rt],delete e[Gi],delete e[wh],delete e[kh]}function Ra(e){var t=e[mt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Na]||n[mt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Kf(e);e!==null;){if(n=e[mt])return n;e=Kf(e)}return t}e=n,n=e.parentNode}return null}function Ca(e){if(e=e[mt]||e[Na]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ps(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(u(33))}function Ta(e){var t=e[No];return t||(t=e[No]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ct(e){e[hs]=!0}var Ro=new Set,Co={};function na(e,t){Ea(e,t),Ea(e+"Capture",t)}function Ea(e,t){for(Co[e]=t,e=0;e<t.length;e++)Ro.add(t[e])}var Ah=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]*$"),To={},Eo={};function Dh(e){return Jt.call(Eo,e)?!0:Jt.call(To,e)?!1:Ah.test(e)?Eo[e]=!0:(To[e]=!0,!1)}function dl(e,t,n){if(Dh(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 fl(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function cn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Bt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function wo(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Oh(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,o=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,o.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 $i(e){if(!e._valueTracker){var t=wo(e)?"checked":"value";e._valueTracker=Oh(e,t,""+e[t])}}function ko(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=wo(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function ml(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 Mh=/[\n"\\]/g;function Gt(e){return e.replace(Mh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Yi(e,t,n,a,l,o,d,g){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Bt(t)):e.value!==""+Bt(t)&&(e.value=""+Bt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Ki(e,d,Bt(t)):n!=null?Ki(e,d,Bt(n)):a!=null&&e.removeAttribute("value"),l==null&&o!=null&&(e.defaultChecked=!!o),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?e.name=""+Bt(g):e.removeAttribute("name")}function Ao(e,t,n,a,l,o,d,g){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.type=o),t!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||t!=null)){$i(e);return}n=n!=null?""+Bt(n):"",t=t!=null?""+Bt(t):n,g||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=g?e.checked:!!a,e.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),$i(e)}function Ki(e,t,n){t==="number"&&ml(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function wa(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=""+Bt(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 Do(e,t,n){if(t!=null&&(t=""+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Bt(n):""}function Oo(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(u(92));if(ie(a)){if(1<a.length)throw Error(u(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Bt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),$i(e)}function ka(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _h=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 Mo(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||_h.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function _o(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&&Mo(e,l,a)}else for(var o in t)t.hasOwnProperty(o)&&Mo(e,o,t[o])}function Xi(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 Ih=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"]]),zh=/^[\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 hl(e){return zh.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function on(){}var Qi=null;function Vi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Aa=null,Da=null;function Io(e){var t=Ca(e);if(t&&(e=t.stateNode)){var n=e[Rt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Yi(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="'+Gt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[Rt]||null;if(!l)throw Error(u(90));Yi(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&&ko(a)}break e;case"textarea":Do(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&wa(e,!!n.multiple,t,!1)}}}var Zi=!1;function zo(e,t,n){if(Zi)return e(t,n);Zi=!0;try{var a=e(t);return a}finally{if(Zi=!1,(Aa!==null||Da!==null)&&(ti(),Aa&&(t=Aa,e=Da,Da=Aa=null,Io(t),e)))for(t=0;t<e.length;t++)Io(e[t])}}function gs(e,t){var n=e.stateNode;if(n===null)return null;var a=n[Rt]||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 un=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ji=!1;if(un)try{var vs={};Object.defineProperty(vs,"passive",{get:function(){Ji=!0}}),window.addEventListener("test",vs,vs),window.removeEventListener("test",vs,vs)}catch{Ji=!1}var kn=null,Fi=null,pl=null;function Lo(){if(pl)return pl;var e,t=Fi,n=t.length,a,l="value"in kn?kn.value:kn.textContent,o=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[o-a];a++);return pl=l.slice(e,1<a?1-a:void 0)}function gl(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 vl(){return!0}function Uo(){return!1}function Ct(e){function t(n,a,l,o,d){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=o,this.target=d,this.currentTarget=null;for(var g in e)e.hasOwnProperty(g)&&(n=e[g],this[g]=n?n(o):o[g]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?vl:Uo,this.isPropagationStopped=Uo,this}return x(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=vl)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=vl)},persist:function(){},isPersistent:vl}),t}var aa={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},yl=Ct(aa),ys=x({},aa,{view:0,detail:0}),Lh=Ct(ys),Wi,Pi,bs,bl=x({},ys,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:tr,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!==bs&&(bs&&e.type==="mousemove"?(Wi=e.screenX-bs.screenX,Pi=e.screenY-bs.screenY):Pi=Wi=0,bs=e),Wi)},movementY:function(e){return"movementY"in e?e.movementY:Pi}}),Ho=Ct(bl),Uh=x({},bl,{dataTransfer:0}),Hh=Ct(Uh),Bh=x({},ys,{relatedTarget:0}),er=Ct(Bh),Gh=x({},aa,{animationName:0,elapsedTime:0,pseudoElement:0}),qh=Ct(Gh),$h=x({},aa,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Yh=Ct($h),Kh=x({},aa,{data:0}),Bo=Ct(Kh),Xh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Qh={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"},Vh={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zh(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Vh[e])?!!t[e]:!1}function tr(){return Zh}var Jh=x({},ys,{key:function(e){if(e.key){var t=Xh[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=gl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Qh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:tr,charCode:function(e){return e.type==="keypress"?gl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?gl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Fh=Ct(Jh),Wh=x({},bl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Go=Ct(Wh),Ph=x({},ys,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:tr}),ep=Ct(Ph),tp=x({},aa,{propertyName:0,elapsedTime:0,pseudoElement:0}),np=Ct(tp),ap=x({},bl,{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}),sp=Ct(ap),lp=x({},aa,{newState:0,oldState:0}),ip=Ct(lp),rp=[9,13,27,32],nr=un&&"CompositionEvent"in window,xs=null;un&&"documentMode"in document&&(xs=document.documentMode);var cp=un&&"TextEvent"in window&&!xs,qo=un&&(!nr||xs&&8<xs&&11>=xs),$o=" ",Yo=!1;function Ko(e,t){switch(e){case"keyup":return rp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Xo(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Oa=!1;function op(e,t){switch(e){case"compositionend":return Xo(t);case"keypress":return t.which!==32?null:(Yo=!0,$o);case"textInput":return e=t.data,e===$o&&Yo?null:e;default:return null}}function up(e,t){if(Oa)return e==="compositionend"||!nr&&Ko(e,t)?(e=Lo(),pl=Fi=kn=null,Oa=!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 qo&&t.locale!=="ko"?null:t.data;default:return null}}var dp={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 Qo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!dp[e.type]:t==="textarea"}function Vo(e,t,n,a){Aa?Da?Da.push(a):Da=[a]:Aa=a,t=ci(t,"onChange"),0<t.length&&(n=new yl("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Ss=null,js=null;function fp(e){Df(e,0)}function xl(e){var t=ps(e);if(ko(t))return e}function Zo(e,t){if(e==="change")return t}var Jo=!1;if(un){var ar;if(un){var sr="oninput"in document;if(!sr){var Fo=document.createElement("div");Fo.setAttribute("oninput","return;"),sr=typeof Fo.oninput=="function"}ar=sr}else ar=!1;Jo=ar&&(!document.documentMode||9<document.documentMode)}function Wo(){Ss&&(Ss.detachEvent("onpropertychange",Po),js=Ss=null)}function Po(e){if(e.propertyName==="value"&&xl(js)){var t=[];Vo(t,js,e,Vi(e)),zo(fp,t)}}function mp(e,t,n){e==="focusin"?(Wo(),Ss=t,js=n,Ss.attachEvent("onpropertychange",Po)):e==="focusout"&&Wo()}function hp(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return xl(js)}function pp(e,t){if(e==="click")return xl(t)}function gp(e,t){if(e==="input"||e==="change")return xl(t)}function vp(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Dt=typeof Object.is=="function"?Object.is:vp;function Ns(e,t){if(Dt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Jt.call(t,l)||!Dt(e[l],t[l]))return!1}return!0}function eu(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function tu(e,t){var n=eu(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=eu(n)}}function nu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?nu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function au(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ml(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=ml(e.document)}return t}function lr(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 yp=un&&"documentMode"in document&&11>=document.documentMode,Ma=null,ir=null,Rs=null,rr=!1;function su(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;rr||Ma==null||Ma!==ml(a)||(a=Ma,"selectionStart"in a&&lr(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}),Rs&&Ns(Rs,a)||(Rs=a,a=ci(ir,"onSelect"),0<a.length&&(t=new yl("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Ma)))}function sa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _a={animationend:sa("Animation","AnimationEnd"),animationiteration:sa("Animation","AnimationIteration"),animationstart:sa("Animation","AnimationStart"),transitionrun:sa("Transition","TransitionRun"),transitionstart:sa("Transition","TransitionStart"),transitioncancel:sa("Transition","TransitionCancel"),transitionend:sa("Transition","TransitionEnd")},cr={},lu={};un&&(lu=document.createElement("div").style,"AnimationEvent"in window||(delete _a.animationend.animation,delete _a.animationiteration.animation,delete _a.animationstart.animation),"TransitionEvent"in window||delete _a.transitionend.transition);function la(e){if(cr[e])return cr[e];if(!_a[e])return e;var t=_a[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in lu)return cr[e]=t[n];return e}var iu=la("animationend"),ru=la("animationiteration"),cu=la("animationstart"),bp=la("transitionrun"),xp=la("transitionstart"),Sp=la("transitioncancel"),ou=la("transitionend"),uu=new Map,or="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(" ");or.push("scrollEnd");function Wt(e,t){uu.set(e,t),na(t,[e])}var Sl=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)},qt=[],Ia=0,ur=0;function jl(){for(var e=Ia,t=ur=Ia=0;t<e;){var n=qt[t];qt[t++]=null;var a=qt[t];qt[t++]=null;var l=qt[t];qt[t++]=null;var o=qt[t];if(qt[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}o!==0&&du(n,l,o)}}function Nl(e,t,n,a){qt[Ia++]=e,qt[Ia++]=t,qt[Ia++]=n,qt[Ia++]=a,ur|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function dr(e,t,n,a){return Nl(e,t,n,a),Rl(e)}function ia(e,t){return Nl(e,null,null,t),Rl(e)}function du(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,o=e.return;o!==null;)o.childLanes|=n,a=o.alternate,a!==null&&(a.childLanes|=n),o.tag===22&&(e=o.stateNode,e===null||e._visibility&1||(l=!0)),e=o,o=o.return;return e.tag===3?(o=e.stateNode,l&&t!==null&&(l=31-xt(n),e=o.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),o):null}function Rl(e){if(50<Xs)throw Xs=0,xc=null,Error(u(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var za={};function jp(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ot(e,t,n,a){return new jp(e,t,n,a)}function fr(e){return e=e.prototype,!(!e||!e.isReactComponent)}function dn(e,t){var n=e.alternate;return n===null?(n=Ot(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function fu(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 Cl(e,t,n,a,l,o){var d=0;if(a=e,typeof e=="function")fr(e)&&(d=1);else if(typeof e=="string")d=Eg(e,n,$.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case ne:return e=Ot(31,n,t,l),e.elementType=ne,e.lanes=o,e;case G:return ra(n.children,l,o,t);case ae:d=8,l|=24;break;case se:return e=Ot(12,n,t,l|2),e.elementType=se,e.lanes=o,e;case J:return e=Ot(13,n,t,l),e.elementType=J,e.lanes=o,e;case L:return e=Ot(19,n,t,l),e.elementType=L,e.lanes=o,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case A:d=10;break e;case C:d=9;break e;case D:d=11;break e;case E:d=14;break e;case Y:d=16,a=null;break e}d=29,n=Error(u(130,e===null?"null":typeof e,"")),a=null}return t=Ot(d,n,t,l),t.elementType=e,t.type=a,t.lanes=o,t}function ra(e,t,n,a){return e=Ot(7,e,a,t),e.lanes=n,e}function mr(e,t,n){return e=Ot(6,e,null,t),e.lanes=n,e}function mu(e){var t=Ot(18,null,null,0);return t.stateNode=e,t}function hr(e,t,n){return t=Ot(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var hu=new WeakMap;function $t(e,t){if(typeof e=="object"&&e!==null){var n=hu.get(e);return n!==void 0?n:(t={value:e,source:t,stack:rn(t)},hu.set(e,t),t)}return{value:e,source:t,stack:rn(t)}}var La=[],Ua=0,Tl=null,Cs=0,Yt=[],Kt=0,An=null,nn=1,an="";function fn(e,t){La[Ua++]=Cs,La[Ua++]=Tl,Tl=e,Cs=t}function pu(e,t,n){Yt[Kt++]=nn,Yt[Kt++]=an,Yt[Kt++]=An,An=e;var a=nn;e=an;var l=32-xt(a)-1;a&=~(1<<l),n+=1;var o=32-xt(t)+l;if(30<o){var d=l-l%5;o=(a&(1<<d)-1).toString(32),a>>=d,l-=d,nn=1<<32-xt(t)+l|n<<l|a,an=o+e}else nn=1<<o|n<<l|a,an=e}function pr(e){e.return!==null&&(fn(e,1),pu(e,1,0))}function gr(e){for(;e===Tl;)Tl=La[--Ua],La[Ua]=null,Cs=La[--Ua],La[Ua]=null;for(;e===An;)An=Yt[--Kt],Yt[Kt]=null,an=Yt[--Kt],Yt[Kt]=null,nn=Yt[--Kt],Yt[Kt]=null}function gu(e,t){Yt[Kt++]=nn,Yt[Kt++]=an,Yt[Kt++]=An,nn=t.id,an=t.overflow,An=e}var ht=null,qe=null,Te=!1,Dn=null,Xt=!1,vr=Error(u(519));function On(e){var t=Error(u(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Ts($t(t,e)),vr}function vu(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[mt]=e,t[Rt]=a,n){case"dialog":Ne("cancel",t),Ne("close",t);break;case"iframe":case"object":case"embed":Ne("load",t);break;case"video":case"audio":for(n=0;n<Vs.length;n++)Ne(Vs[n],t);break;case"source":Ne("error",t);break;case"img":case"image":case"link":Ne("error",t),Ne("load",t);break;case"details":Ne("toggle",t);break;case"input":Ne("invalid",t),Ao(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":Ne("invalid",t);break;case"textarea":Ne("invalid",t),Oo(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||If(t.textContent,n)?(a.popover!=null&&(Ne("beforetoggle",t),Ne("toggle",t)),a.onScroll!=null&&Ne("scroll",t),a.onScrollEnd!=null&&Ne("scrollend",t),a.onClick!=null&&(t.onclick=on),t=!0):t=!1,t||On(e,!0)}function yu(e){for(ht=e.return;ht;)switch(ht.tag){case 5:case 31:case 13:Xt=!1;return;case 27:case 3:Xt=!0;return;default:ht=ht.return}}function Ha(e){if(e!==ht)return!1;if(!Te)return yu(e),Te=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Ic(e.type,e.memoizedProps)),n=!n),n&&qe&&On(e),yu(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));qe=Yf(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));qe=Yf(e)}else t===27?(t=qe,Xn(e.type)?(e=Bc,Bc=null,qe=e):qe=t):qe=ht?Vt(e.stateNode.nextSibling):null;return!0}function ca(){qe=ht=null,Te=!1}function yr(){var e=Dn;return e!==null&&(kt===null?kt=e:kt.push.apply(kt,e),Dn=null),e}function Ts(e){Dn===null?Dn=[e]:Dn.push(e)}var br=b(null),oa=null,mn=null;function Mn(e,t,n){Z(br,t._currentValue),t._currentValue=n}function hn(e){e._currentValue=br.current,k(br)}function xr(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 Sr(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var o=l.dependencies;if(o!==null){var d=l.child;o=o.firstContext;e:for(;o!==null;){var g=o;o=l;for(var R=0;R<t.length;R++)if(g.context===t[R]){o.lanes|=n,g=o.alternate,g!==null&&(g.lanes|=n),xr(o.return,n,e),a||(d=null);break e}o=g.next}}else if(l.tag===18){if(d=l.return,d===null)throw Error(u(341));d.lanes|=n,o=d.alternate,o!==null&&(o.lanes|=n),xr(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 Ba(e,t,n,a){e=null;for(var l=t,o=!1;l!==null;){if(!o){if((l.flags&524288)!==0)o=!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 g=l.type;Dt(l.pendingProps.value,d.value)||(e!==null?e.push(g):e=[g])}}else if(l===le.current){if(d=l.alternate,d===null)throw Error(u(387));d.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(Ps):e=[Ps])}l=l.return}e!==null&&Sr(t,e,n,a),t.flags|=262144}function El(e){for(e=e.firstContext;e!==null;){if(!Dt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ua(e){oa=e,mn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function pt(e){return bu(oa,e)}function wl(e,t){return oa===null&&ua(e),bu(e,t)}function bu(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},mn===null){if(e===null)throw Error(u(308));mn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else mn=mn.next=t;return n}var Np=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,Pe={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function jr(){return{controller:new Np,data:new Map,refCount:0}}function Es(e){e.refCount--,e.refCount===0&&Rp(Cp,function(){e.controller.abort()})}var ws=null,Nr=0,Ga=0,qa=null;function Tp(e,t){if(ws===null){var n=ws=[];Nr=0,Ga=Tc(),qa={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Nr++,t.then(xu,xu),t}function xu(){if(--Nr===0&&ws!==null){qa!==null&&(qa.status="fulfilled");var e=ws;ws=null,Ga=0,qa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ep(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 Su=j.S;j.S=function(e,t){sf=he(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Tp(e,t),Su!==null&&Su(e,t)};var da=b(null);function Rr(){var e=da.current;return e!==null?e:Ge.pooledCache}function kl(e,t){t===null?Z(da,da.current):Z(da,t.pool)}function ju(){var e=Rr();return e===null?null:{parent:Pe._currentValue,pool:e}}var $a=Error(u(460)),Cr=Error(u(474)),Al=Error(u(542)),Dl={then:function(){}};function Nu(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Ru(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(on,on),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Tu(e),e;default:if(typeof t.status=="string")t.then(on,on);else{if(e=Ge,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,Tu(e),e}throw ma=t,$a}}function fa(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(ma=n,$a):n}}var ma=null;function Cu(){if(ma===null)throw Error(u(459));var e=ma;return ma=null,e}function Tu(e){if(e===$a||e===Al)throw Error(u(483))}var Ya=null,ks=0;function Ol(e){var t=ks;return ks+=1,Ya===null&&(Ya=[]),Ru(Ya,e,t)}function As(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Ml(e,t){throw t.$$typeof===M?Error(u(525)):(e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function Eu(e){function t(O,T){if(e){var U=O.deletions;U===null?(O.deletions=[T],O.flags|=16):U.push(T)}}function n(O,T){if(!e)return null;for(;T!==null;)t(O,T),T=T.sibling;return null}function a(O){for(var T=new Map;O!==null;)O.key!==null?T.set(O.key,O):T.set(O.index,O),O=O.sibling;return T}function l(O,T){return O=dn(O,T),O.index=0,O.sibling=null,O}function o(O,T,U){return O.index=U,e?(U=O.alternate,U!==null?(U=U.index,U<T?(O.flags|=67108866,T):U):(O.flags|=67108866,T)):(O.flags|=1048576,T)}function d(O){return e&&O.alternate===null&&(O.flags|=67108866),O}function g(O,T,U,F){return T===null||T.tag!==6?(T=mr(U,O.mode,F),T.return=O,T):(T=l(T,U),T.return=O,T)}function R(O,T,U,F){var ge=U.type;return ge===G?Q(O,T,U.props.children,F,U.key):T!==null&&(T.elementType===ge||typeof ge=="object"&&ge!==null&&ge.$$typeof===Y&&fa(ge)===T.type)?(T=l(T,U.props),As(T,U),T.return=O,T):(T=Cl(U.type,U.key,U.props,null,O.mode,F),As(T,U),T.return=O,T)}function H(O,T,U,F){return T===null||T.tag!==4||T.stateNode.containerInfo!==U.containerInfo||T.stateNode.implementation!==U.implementation?(T=hr(U,O.mode,F),T.return=O,T):(T=l(T,U.children||[]),T.return=O,T)}function Q(O,T,U,F,ge){return T===null||T.tag!==7?(T=ra(U,O.mode,F,ge),T.return=O,T):(T=l(T,U),T.return=O,T)}function ee(O,T,U){if(typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint")return T=mr(""+T,O.mode,U),T.return=O,T;if(typeof T=="object"&&T!==null){switch(T.$$typeof){case w:return U=Cl(T.type,T.key,T.props,null,O.mode,U),As(U,T),U.return=O,U;case z:return T=hr(T,O.mode,U),T.return=O,T;case Y:return T=fa(T),ee(O,T,U)}if(ie(T)||W(T))return T=ra(T,O.mode,U,null),T.return=O,T;if(typeof T.then=="function")return ee(O,Ol(T),U);if(T.$$typeof===A)return ee(O,wl(O,T),U);Ml(O,T)}return null}function B(O,T,U,F){var ge=T!==null?T.key:null;if(typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint")return ge!==null?null:g(O,T,""+U,F);if(typeof U=="object"&&U!==null){switch(U.$$typeof){case w:return U.key===ge?R(O,T,U,F):null;case z:return U.key===ge?H(O,T,U,F):null;case Y:return U=fa(U),B(O,T,U,F)}if(ie(U)||W(U))return ge!==null?null:Q(O,T,U,F,null);if(typeof U.then=="function")return B(O,T,Ol(U),F);if(U.$$typeof===A)return B(O,T,wl(O,U),F);Ml(O,U)}return null}function q(O,T,U,F,ge){if(typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint")return O=O.get(U)||null,g(T,O,""+F,ge);if(typeof F=="object"&&F!==null){switch(F.$$typeof){case w:return O=O.get(F.key===null?U:F.key)||null,R(T,O,F,ge);case z:return O=O.get(F.key===null?U:F.key)||null,H(T,O,F,ge);case Y:return F=fa(F),q(O,T,U,F,ge)}if(ie(F)||W(F))return O=O.get(U)||null,Q(T,O,F,ge,null);if(typeof F.then=="function")return q(O,T,U,Ol(F),ge);if(F.$$typeof===A)return q(O,T,U,wl(T,F),ge);Ml(T,F)}return null}function fe(O,T,U,F){for(var ge=null,De=null,pe=T,Se=T=0,Ce=null;pe!==null&&Se<U.length;Se++){pe.index>Se?(Ce=pe,pe=null):Ce=pe.sibling;var Oe=B(O,pe,U[Se],F);if(Oe===null){pe===null&&(pe=Ce);break}e&&pe&&Oe.alternate===null&&t(O,pe),T=o(Oe,T,Se),De===null?ge=Oe:De.sibling=Oe,De=Oe,pe=Ce}if(Se===U.length)return n(O,pe),Te&&fn(O,Se),ge;if(pe===null){for(;Se<U.length;Se++)pe=ee(O,U[Se],F),pe!==null&&(T=o(pe,T,Se),De===null?ge=pe:De.sibling=pe,De=pe);return Te&&fn(O,Se),ge}for(pe=a(pe);Se<U.length;Se++)Ce=q(pe,O,Se,U[Se],F),Ce!==null&&(e&&Ce.alternate!==null&&pe.delete(Ce.key===null?Se:Ce.key),T=o(Ce,T,Se),De===null?ge=Ce:De.sibling=Ce,De=Ce);return e&&pe.forEach(function(Fn){return t(O,Fn)}),Te&&fn(O,Se),ge}function ve(O,T,U,F){if(U==null)throw Error(u(151));for(var ge=null,De=null,pe=T,Se=T=0,Ce=null,Oe=U.next();pe!==null&&!Oe.done;Se++,Oe=U.next()){pe.index>Se?(Ce=pe,pe=null):Ce=pe.sibling;var Fn=B(O,pe,Oe.value,F);if(Fn===null){pe===null&&(pe=Ce);break}e&&pe&&Fn.alternate===null&&t(O,pe),T=o(Fn,T,Se),De===null?ge=Fn:De.sibling=Fn,De=Fn,pe=Ce}if(Oe.done)return n(O,pe),Te&&fn(O,Se),ge;if(pe===null){for(;!Oe.done;Se++,Oe=U.next())Oe=ee(O,Oe.value,F),Oe!==null&&(T=o(Oe,T,Se),De===null?ge=Oe:De.sibling=Oe,De=Oe);return Te&&fn(O,Se),ge}for(pe=a(pe);!Oe.done;Se++,Oe=U.next())Oe=q(pe,O,Se,Oe.value,F),Oe!==null&&(e&&Oe.alternate!==null&&pe.delete(Oe.key===null?Se:Oe.key),T=o(Oe,T,Se),De===null?ge=Oe:De.sibling=Oe,De=Oe);return e&&pe.forEach(function(Ug){return t(O,Ug)}),Te&&fn(O,Se),ge}function Be(O,T,U,F){if(typeof U=="object"&&U!==null&&U.type===G&&U.key===null&&(U=U.props.children),typeof U=="object"&&U!==null){switch(U.$$typeof){case w:e:{for(var ge=U.key;T!==null;){if(T.key===ge){if(ge=U.type,ge===G){if(T.tag===7){n(O,T.sibling),F=l(T,U.props.children),F.return=O,O=F;break e}}else if(T.elementType===ge||typeof ge=="object"&&ge!==null&&ge.$$typeof===Y&&fa(ge)===T.type){n(O,T.sibling),F=l(T,U.props),As(F,U),F.return=O,O=F;break e}n(O,T);break}else t(O,T);T=T.sibling}U.type===G?(F=ra(U.props.children,O.mode,F,U.key),F.return=O,O=F):(F=Cl(U.type,U.key,U.props,null,O.mode,F),As(F,U),F.return=O,O=F)}return d(O);case z:e:{for(ge=U.key;T!==null;){if(T.key===ge)if(T.tag===4&&T.stateNode.containerInfo===U.containerInfo&&T.stateNode.implementation===U.implementation){n(O,T.sibling),F=l(T,U.children||[]),F.return=O,O=F;break e}else{n(O,T);break}else t(O,T);T=T.sibling}F=hr(U,O.mode,F),F.return=O,O=F}return d(O);case Y:return U=fa(U),Be(O,T,U,F)}if(ie(U))return fe(O,T,U,F);if(W(U)){if(ge=W(U),typeof ge!="function")throw Error(u(150));return U=ge.call(U),ve(O,T,U,F)}if(typeof U.then=="function")return Be(O,T,Ol(U),F);if(U.$$typeof===A)return Be(O,T,wl(O,U),F);Ml(O,U)}return typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint"?(U=""+U,T!==null&&T.tag===6?(n(O,T.sibling),F=l(T,U),F.return=O,O=F):(n(O,T),F=mr(U,O.mode,F),F.return=O,O=F),d(O)):n(O,T)}return function(O,T,U,F){try{ks=0;var ge=Be(O,T,U,F);return Ya=null,ge}catch(pe){if(pe===$a||pe===Al)throw pe;var De=Ot(29,pe,null,O.mode);return De.lanes=F,De.return=O,De}}}var ha=Eu(!0),wu=Eu(!1),_n=!1;function Tr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Er(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 In(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function zn(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Me&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Rl(e),du(e,null,n),t}return Nl(e,a,t,n),Rl(e)}function Ds(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,bo(e,n)}}function wr(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?l=o=d:o=o.next=d,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:o,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 kr=!1;function Os(){if(kr){var e=qa;if(e!==null)throw e}}function Ms(e,t,n,a){kr=!1;var l=e.updateQueue;_n=!1;var o=l.firstBaseUpdate,d=l.lastBaseUpdate,g=l.shared.pending;if(g!==null){l.shared.pending=null;var R=g,H=R.next;R.next=null,d===null?o=H:d.next=H,d=R;var Q=e.alternate;Q!==null&&(Q=Q.updateQueue,g=Q.lastBaseUpdate,g!==d&&(g===null?Q.firstBaseUpdate=H:g.next=H,Q.lastBaseUpdate=R))}if(o!==null){var ee=l.baseState;d=0,Q=H=R=null,g=o;do{var B=g.lane&-536870913,q=B!==g.lane;if(q?(Re&B)===B:(a&B)===B){B!==0&&B===Ga&&(kr=!0),Q!==null&&(Q=Q.next={lane:0,tag:g.tag,payload:g.payload,callback:null,next:null});e:{var fe=e,ve=g;B=t;var Be=n;switch(ve.tag){case 1:if(fe=ve.payload,typeof fe=="function"){ee=fe.call(Be,ee,B);break e}ee=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=ve.payload,B=typeof fe=="function"?fe.call(Be,ee,B):fe,B==null)break e;ee=x({},ee,B);break e;case 2:_n=!0}}B=g.callback,B!==null&&(e.flags|=64,q&&(e.flags|=8192),q=l.callbacks,q===null?l.callbacks=[B]:q.push(B))}else q={lane:B,tag:g.tag,payload:g.payload,callback:g.callback,next:null},Q===null?(H=Q=q,R=ee):Q=Q.next=q,d|=B;if(g=g.next,g===null){if(g=l.shared.pending,g===null)break;q=g,g=q.next,q.next=null,l.lastBaseUpdate=q,l.shared.pending=null}}while(!0);Q===null&&(R=ee),l.baseState=R,l.firstBaseUpdate=H,l.lastBaseUpdate=Q,o===null&&(l.shared.lanes=0),Gn|=d,e.lanes=d,e.memoizedState=ee}}function ku(e,t){if(typeof e!="function")throw Error(u(191,e));e.call(t)}function Au(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ku(n[e],t)}var Ka=b(null),_l=b(0);function Du(e,t){e=Nn,Z(_l,e),Z(Ka,t),Nn=e|t.baseLanes}function Ar(){Z(_l,Nn),Z(Ka,Ka.current)}function Dr(){Nn=_l.current,k(Ka),k(_l)}var Mt=b(null),Qt=null;function Ln(e){var t=e.alternate;Z(Ze,Ze.current&1),Z(Mt,e),Qt===null&&(t===null||Ka.current!==null||t.memoizedState!==null)&&(Qt=e)}function Or(e){Z(Ze,Ze.current),Z(Mt,e),Qt===null&&(Qt=e)}function Ou(e){e.tag===22?(Z(Ze,Ze.current),Z(Mt,e),Qt===null&&(Qt=e)):Un()}function Un(){Z(Ze,Ze.current),Z(Mt,Mt.current)}function _t(e){k(Mt),Qt===e&&(Qt=null),k(Ze)}var Ze=b(0);function Il(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Uc(n)||Hc(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 pn=0,xe=null,Ue=null,et=null,zl=!1,Xa=!1,pa=!1,Ll=0,_s=0,Qa=null,wp=0;function Xe(){throw Error(u(321))}function Mr(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Dt(e[n],t[n]))return!1;return!0}function _r(e,t,n,a,l,o){return pn=o,xe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,j.H=e===null||e.memoizedState===null?pd:Zr,pa=!1,o=n(a,l),pa=!1,Xa&&(o=_u(t,n,a,l)),Mu(e),o}function Mu(e){j.H=Ls;var t=Ue!==null&&Ue.next!==null;if(pn=0,et=Ue=xe=null,zl=!1,_s=0,Qa=null,t)throw Error(u(300));e===null||tt||(e=e.dependencies,e!==null&&El(e)&&(tt=!0))}function _u(e,t,n,a){xe=e;var l=0;do{if(Xa&&(Qa=null),_s=0,Xa=!1,25<=l)throw Error(u(301));if(l+=1,et=Ue=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}j.H=gd,o=t(n,a)}while(Xa);return o}function kp(){var e=j.H,t=e.useState()[0];return t=typeof t.then=="function"?Is(t):t,e=e.useState()[0],(Ue!==null?Ue.memoizedState:null)!==e&&(xe.flags|=1024),t}function Ir(){var e=Ll!==0;return Ll=0,e}function zr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Lr(e){if(zl){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}zl=!1}pn=0,et=Ue=xe=null,Xa=!1,_s=Ll=0,Qa=null}function Nt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return et===null?xe.memoizedState=et=e:et=et.next=e,et}function Je(){if(Ue===null){var e=xe.alternate;e=e!==null?e.memoizedState:null}else e=Ue.next;var t=et===null?xe.memoizedState:et.next;if(t!==null)et=t,Ue=e;else{if(e===null)throw xe.alternate===null?Error(u(467)):Error(u(310));Ue=e,e={memoizedState:Ue.memoizedState,baseState:Ue.baseState,baseQueue:Ue.baseQueue,queue:Ue.queue,next:null},et===null?xe.memoizedState=et=e:et=et.next=e}return et}function Ul(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Is(e){var t=_s;return _s+=1,Qa===null&&(Qa=[]),e=Ru(Qa,e,t),t=xe,(et===null?t.memoizedState:et.next)===null&&(t=t.alternate,j.H=t===null||t.memoizedState===null?pd:Zr),e}function Hl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Is(e);if(e.$$typeof===A)return pt(e)}throw Error(u(438,String(e)))}function Ur(e){var t=null,n=xe.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=xe.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=Ul(),xe.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]=te;return t.index++,n}function gn(e,t){return typeof t=="function"?t(e):t}function Bl(e){var t=Je();return Hr(t,Ue,e)}function Hr(e,t,n){var a=e.queue;if(a===null)throw Error(u(311));a.lastRenderedReducer=n;var l=e.baseQueue,o=a.pending;if(o!==null){if(l!==null){var d=l.next;l.next=o.next,o.next=d}t.baseQueue=l=o,a.pending=null}if(o=e.baseState,l===null)e.memoizedState=o;else{t=l.next;var g=d=null,R=null,H=t,Q=!1;do{var ee=H.lane&-536870913;if(ee!==H.lane?(Re&ee)===ee:(pn&ee)===ee){var B=H.revertLane;if(B===0)R!==null&&(R=R.next={lane:0,revertLane:0,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null}),ee===Ga&&(Q=!0);else if((pn&B)===B){H=H.next,B===Ga&&(Q=!0);continue}else ee={lane:0,revertLane:H.revertLane,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},R===null?(g=R=ee,d=o):R=R.next=ee,xe.lanes|=B,Gn|=B;ee=H.action,pa&&n(o,ee),o=H.hasEagerState?H.eagerState:n(o,ee)}else B={lane:ee,revertLane:H.revertLane,gesture:H.gesture,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},R===null?(g=R=B,d=o):R=R.next=B,xe.lanes|=ee,Gn|=ee;H=H.next}while(H!==null&&H!==t);if(R===null?d=o:R.next=g,!Dt(o,e.memoizedState)&&(tt=!0,Q&&(n=qa,n!==null)))throw n;e.memoizedState=o,e.baseState=d,e.baseQueue=R,a.lastRenderedState=o}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Br(e){var t=Je(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,o=t.memoizedState;if(l!==null){n.pending=null;var d=l=l.next;do o=e(o,d.action),d=d.next;while(d!==l);Dt(o,t.memoizedState)||(tt=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,a]}function Iu(e,t,n){var a=xe,l=Je(),o=Te;if(o){if(n===void 0)throw Error(u(407));n=n()}else n=t();var d=!Dt((Ue||l).memoizedState,n);if(d&&(l.memoizedState=n,tt=!0),l=l.queue,$r(Uu.bind(null,a,l,e),[e]),l.getSnapshot!==t||d||et!==null&&et.memoizedState.tag&1){if(a.flags|=2048,Va(9,{destroy:void 0},Lu.bind(null,a,l,n,t),null),Ge===null)throw Error(u(349));o||(pn&127)!==0||zu(a,t,n)}return n}function zu(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=xe.updateQueue,t===null?(t=Ul(),xe.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Lu(e,t,n,a){t.value=n,t.getSnapshot=a,Hu(t)&&Bu(e)}function Uu(e,t,n){return n(function(){Hu(t)&&Bu(e)})}function Hu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Dt(e,n)}catch{return!0}}function Bu(e){var t=ia(e,2);t!==null&&At(t,e,2)}function Gr(e){var t=Nt();if(typeof e=="function"){var n=e;if(e=n(),pa){jt(!0);try{n()}finally{jt(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:gn,lastRenderedState:e},t}function Gu(e,t,n,a){return e.baseState=n,Hr(e,Ue,typeof a=="function"?a:gn)}function Ap(e,t,n,a,l){if($l(e))throw Error(u(485));if(e=t.action,e!==null){var o={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){o.listeners.push(d)}};j.T!==null?n(!0):o.isTransition=!1,a(o),n=t.pending,n===null?(o.next=t.pending=o,qu(t,o)):(o.next=n.next,t.pending=n.next=o)}}function qu(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var o=j.T,d={};j.T=d;try{var g=n(l,a),R=j.S;R!==null&&R(d,g),$u(e,t,g)}catch(H){qr(e,t,H)}finally{o!==null&&d.types!==null&&(o.types=d.types),j.T=o}}else try{o=n(l,a),$u(e,t,o)}catch(H){qr(e,t,H)}}function $u(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){Yu(e,t,a)},function(a){return qr(e,t,a)}):Yu(e,t,n)}function Yu(e,t,n){t.status="fulfilled",t.value=n,Ku(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,qu(e,n)))}function qr(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,Ku(t),t=t.next;while(t!==a)}e.action=null}function Ku(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Xu(e,t){return t}function Qu(e,t){if(Te){var n=Ge.formState;if(n!==null){e:{var a=xe;if(Te){if(qe){t:{for(var l=qe,o=Xt;l.nodeType!==8;){if(!o){l=null;break t}if(l=Vt(l.nextSibling),l===null){l=null;break t}}o=l.data,l=o==="F!"||o==="F"?l:null}if(l){qe=Vt(l.nextSibling),a=l.data==="F!";break e}}On(a)}a=!1}a&&(t=n[0])}}return n=Nt(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Xu,lastRenderedState:t},n.queue=a,n=fd.bind(null,xe,a),a.dispatch=n,a=Gr(!1),o=Vr.bind(null,xe,!1,a.queue),a=Nt(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=Ap.bind(null,xe,l,o,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function Vu(e){var t=Je();return Zu(t,Ue,e)}function Zu(e,t,n){if(t=Hr(e,t,Xu)[0],e=Bl(gn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Is(t)}catch(d){throw d===$a?Al:d}else a=t;t=Je();var l=t.queue,o=l.dispatch;return n!==t.memoizedState&&(xe.flags|=2048,Va(9,{destroy:void 0},Dp.bind(null,l,n),null)),[a,o,e]}function Dp(e,t){e.action=t}function Ju(e){var t=Je(),n=Ue;if(n!==null)return Zu(t,n,e);Je(),t=t.memoizedState,n=Je();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Va(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=xe.updateQueue,t===null&&(t=Ul(),xe.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 Fu(){return Je().memoizedState}function Gl(e,t,n,a){var l=Nt();xe.flags|=e,l.memoizedState=Va(1|t,{destroy:void 0},n,a===void 0?null:a)}function ql(e,t,n,a){var l=Je();a=a===void 0?null:a;var o=l.memoizedState.inst;Ue!==null&&a!==null&&Mr(a,Ue.memoizedState.deps)?l.memoizedState=Va(t,o,n,a):(xe.flags|=e,l.memoizedState=Va(1|t,o,n,a))}function Wu(e,t){Gl(8390656,8,e,t)}function $r(e,t){ql(2048,8,e,t)}function Op(e){xe.flags|=4;var t=xe.updateQueue;if(t===null)t=Ul(),xe.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Pu(e){var t=Je().memoizedState;return Op({ref:t,nextImpl:e}),function(){if((Me&2)!==0)throw Error(u(440));return t.impl.apply(void 0,arguments)}}function ed(e,t){return ql(4,2,e,t)}function td(e,t){return ql(4,4,e,t)}function nd(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 ad(e,t,n){n=n!=null?n.concat([e]):null,ql(4,4,nd.bind(null,t,e),n)}function Yr(){}function sd(e,t){var n=Je();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&Mr(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function ld(e,t){var n=Je();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&Mr(t,a[1]))return a[0];if(a=e(),pa){jt(!0);try{e()}finally{jt(!1)}}return n.memoizedState=[a,t],a}function Kr(e,t,n){return n===void 0||(pn&1073741824)!==0&&(Re&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=rf(),xe.lanes|=e,Gn|=e,n)}function id(e,t,n,a){return Dt(n,t)?n:Ka.current!==null?(e=Kr(e,n,a),Dt(e,t)||(tt=!0),e):(pn&42)===0||(pn&1073741824)!==0&&(Re&261930)===0?(tt=!0,e.memoizedState=n):(e=rf(),xe.lanes|=e,Gn|=e,t)}function rd(e,t,n,a,l){var o=I.p;I.p=o!==0&&8>o?o:8;var d=j.T,g={};j.T=g,Vr(e,!1,t,n);try{var R=l(),H=j.S;if(H!==null&&H(g,R),R!==null&&typeof R=="object"&&typeof R.then=="function"){var Q=Ep(R,a);zs(e,t,Q,Lt(e))}else zs(e,t,a,Lt(e))}catch(ee){zs(e,t,{then:function(){},status:"rejected",reason:ee},Lt())}finally{I.p=o,d!==null&&g.types!==null&&(d.types=g.types),j.T=d}}function Mp(){}function Xr(e,t,n,a){if(e.tag!==5)throw Error(u(476));var l=cd(e).queue;rd(e,l,t,_,n===null?Mp:function(){return od(e),n(a)})}function cd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:gn,lastRenderedState:_},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:gn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function od(e){var t=cd(e);t.next===null&&(t=e.alternate.memoizedState),zs(e,t.next.queue,{},Lt())}function Qr(){return pt(Ps)}function ud(){return Je().memoizedState}function dd(){return Je().memoizedState}function _p(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Lt();e=In(n);var a=zn(t,e,n);a!==null&&(At(a,t,n),Ds(a,t,n)),t={cache:jr()},e.payload=t;return}t=t.return}}function Ip(e,t,n){var a=Lt();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},$l(e)?md(t,n):(n=dr(e,t,n,a),n!==null&&(At(n,e,a),hd(n,t,a)))}function fd(e,t,n){var a=Lt();zs(e,t,n,a)}function zs(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if($l(e))md(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var d=t.lastRenderedState,g=o(d,n);if(l.hasEagerState=!0,l.eagerState=g,Dt(g,d))return Nl(e,t,l,0),Ge===null&&jl(),!1}catch{}if(n=dr(e,t,l,a),n!==null)return At(n,e,a),hd(n,t,a),!0}return!1}function Vr(e,t,n,a){if(a={lane:2,revertLane:Tc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},$l(e)){if(t)throw Error(u(479))}else t=dr(e,n,a,2),t!==null&&At(t,e,2)}function $l(e){var t=e.alternate;return e===xe||t!==null&&t===xe}function md(e,t){Xa=zl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function hd(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,bo(e,n)}}var Ls={readContext:pt,use:Hl,useCallback:Xe,useContext:Xe,useEffect:Xe,useImperativeHandle:Xe,useLayoutEffect:Xe,useInsertionEffect:Xe,useMemo:Xe,useReducer:Xe,useRef:Xe,useState:Xe,useDebugValue:Xe,useDeferredValue:Xe,useTransition:Xe,useSyncExternalStore:Xe,useId:Xe,useHostTransitionStatus:Xe,useFormState:Xe,useActionState:Xe,useOptimistic:Xe,useMemoCache:Xe,useCacheRefresh:Xe};Ls.useEffectEvent=Xe;var pd={readContext:pt,use:Hl,useCallback:function(e,t){return Nt().memoizedState=[e,t===void 0?null:t],e},useContext:pt,useEffect:Wu,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Gl(4194308,4,nd.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Gl(4194308,4,e,t)},useInsertionEffect:function(e,t){Gl(4,2,e,t)},useMemo:function(e,t){var n=Nt();t=t===void 0?null:t;var a=e();if(pa){jt(!0);try{e()}finally{jt(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=Nt();if(n!==void 0){var l=n(t);if(pa){jt(!0);try{n(t)}finally{jt(!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=Ip.bind(null,xe,e),[a.memoizedState,e]},useRef:function(e){var t=Nt();return e={current:e},t.memoizedState=e},useState:function(e){e=Gr(e);var t=e.queue,n=fd.bind(null,xe,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Yr,useDeferredValue:function(e,t){var n=Nt();return Kr(n,e,t)},useTransition:function(){var e=Gr(!1);return e=rd.bind(null,xe,e.queue,!0,!1),Nt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=xe,l=Nt();if(Te){if(n===void 0)throw Error(u(407));n=n()}else{if(n=t(),Ge===null)throw Error(u(349));(Re&127)!==0||zu(a,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Wu(Uu.bind(null,a,o,e),[e]),a.flags|=2048,Va(9,{destroy:void 0},Lu.bind(null,a,o,n,t),null),n},useId:function(){var e=Nt(),t=Ge.identifierPrefix;if(Te){var n=an,a=nn;n=(a&~(1<<32-xt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Ll++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=wp++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Qr,useFormState:Qu,useActionState:Qu,useOptimistic:function(e){var t=Nt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Vr.bind(null,xe,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ur,useCacheRefresh:function(){return Nt().memoizedState=_p.bind(null,xe)},useEffectEvent:function(e){var t=Nt(),n={impl:e};return t.memoizedState=n,function(){if((Me&2)!==0)throw Error(u(440));return n.impl.apply(void 0,arguments)}}},Zr={readContext:pt,use:Hl,useCallback:sd,useContext:pt,useEffect:$r,useImperativeHandle:ad,useInsertionEffect:ed,useLayoutEffect:td,useMemo:ld,useReducer:Bl,useRef:Fu,useState:function(){return Bl(gn)},useDebugValue:Yr,useDeferredValue:function(e,t){var n=Je();return id(n,Ue.memoizedState,e,t)},useTransition:function(){var e=Bl(gn)[0],t=Je().memoizedState;return[typeof e=="boolean"?e:Is(e),t]},useSyncExternalStore:Iu,useId:ud,useHostTransitionStatus:Qr,useFormState:Vu,useActionState:Vu,useOptimistic:function(e,t){var n=Je();return Gu(n,Ue,e,t)},useMemoCache:Ur,useCacheRefresh:dd};Zr.useEffectEvent=Pu;var gd={readContext:pt,use:Hl,useCallback:sd,useContext:pt,useEffect:$r,useImperativeHandle:ad,useInsertionEffect:ed,useLayoutEffect:td,useMemo:ld,useReducer:Br,useRef:Fu,useState:function(){return Br(gn)},useDebugValue:Yr,useDeferredValue:function(e,t){var n=Je();return Ue===null?Kr(n,e,t):id(n,Ue.memoizedState,e,t)},useTransition:function(){var e=Br(gn)[0],t=Je().memoizedState;return[typeof e=="boolean"?e:Is(e),t]},useSyncExternalStore:Iu,useId:ud,useHostTransitionStatus:Qr,useFormState:Ju,useActionState:Ju,useOptimistic:function(e,t){var n=Je();return Ue!==null?Gu(n,Ue,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Ur,useCacheRefresh:dd};gd.useEffectEvent=Pu;function Jr(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:x({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Fr={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Lt(),l=In(a);l.payload=t,n!=null&&(l.callback=n),t=zn(e,l,a),t!==null&&(At(t,e,a),Ds(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Lt(),l=In(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=zn(e,l,a),t!==null&&(At(t,e,a),Ds(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Lt(),a=In(n);a.tag=2,t!=null&&(a.callback=t),t=zn(e,a,n),t!==null&&(At(t,e,n),Ds(t,e,n))}};function vd(e,t,n,a,l,o,d){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,o,d):t.prototype&&t.prototype.isPureReactComponent?!Ns(n,a)||!Ns(l,o):!0}function yd(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&&Fr.enqueueReplaceState(t,t.state,null)}function ga(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=x({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function bd(e){Sl(e)}function xd(e){console.error(e)}function Sd(e){Sl(e)}function Yl(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function jd(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 Wr(e,t,n){return n=In(n),n.tag=3,n.payload={element:null},n.callback=function(){Yl(e,t)},n}function Nd(e){return e=In(e),e.tag=3,e}function Rd(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var o=a.value;e.payload=function(){return l(o)},e.callback=function(){jd(t,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(e.callback=function(){jd(t,n,a),typeof l!="function"&&(qn===null?qn=new Set([this]):qn.add(this));var g=a.stack;this.componentDidCatch(a.value,{componentStack:g!==null?g:""})})}function zp(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&Ba(t,n,l,!0),n=Mt.current,n!==null){switch(n.tag){case 31:case 13:return Qt===null?ni():n.alternate===null&&Qe===0&&(Qe=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Dl?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),Nc(e,a,l)),!1;case 22:return n.flags|=65536,a===Dl?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)),Nc(e,a,l)),!1}throw Error(u(435,n.tag))}return Nc(e,a,l),ni(),!1}if(Te)return t=Mt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==vr&&(e=Error(u(422),{cause:a}),Ts($t(e,n)))):(a!==vr&&(t=Error(u(423),{cause:a}),Ts($t(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=$t(a,n),l=Wr(e.stateNode,a,l),wr(e,l),Qe!==4&&(Qe=2)),!1;var o=Error(u(520),{cause:a});if(o=$t(o,n),Ks===null?Ks=[o]:Ks.push(o),Qe!==4&&(Qe=2),t===null)return!0;a=$t(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Wr(n.stateNode,a,e),wr(n,e),!1;case 1:if(t=n.type,o=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||o!==null&&typeof o.componentDidCatch=="function"&&(qn===null||!qn.has(o))))return n.flags|=65536,l&=-l,n.lanes|=l,l=Nd(l),Rd(l,e,n,a),wr(n,l),!1}n=n.return}while(n!==null);return!1}var Pr=Error(u(461)),tt=!1;function gt(e,t,n,a){t.child=e===null?wu(t,null,n,a):ha(t,e.child,n,a)}function Cd(e,t,n,a,l){n=n.render;var o=t.ref;if("ref"in a){var d={};for(var g in a)g!=="ref"&&(d[g]=a[g])}else d=a;return ua(t),a=_r(e,t,n,d,o,l),g=Ir(),e!==null&&!tt?(zr(e,t,l),vn(e,t,l)):(Te&&g&&pr(t),t.flags|=1,gt(e,t,a,l),t.child)}function Td(e,t,n,a,l){if(e===null){var o=n.type;return typeof o=="function"&&!fr(o)&&o.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=o,Ed(e,t,o,a,l)):(e=Cl(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!rc(e,l)){var d=o.memoizedProps;if(n=n.compare,n=n!==null?n:Ns,n(d,a)&&e.ref===t.ref)return vn(e,t,l)}return t.flags|=1,e=dn(o,a),e.ref=t.ref,e.return=t,t.child=e}function Ed(e,t,n,a,l){if(e!==null){var o=e.memoizedProps;if(Ns(o,a)&&e.ref===t.ref)if(tt=!1,t.pendingProps=a=o,rc(e,l))(e.flags&131072)!==0&&(tt=!0);else return t.lanes=e.lanes,vn(e,t,l)}return ec(e,t,n,a,l)}function wd(e,t,n,a){var l=a.children,o=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(o=o!==null?o.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&~o}else a=0,t.child=null;return kd(e,t,o,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&kl(t,o!==null?o.cachePool:null),o!==null?Du(t,o):Ar(),Ou(t);else return a=t.lanes=536870912,kd(e,t,o!==null?o.baseLanes|n:n,n,a)}else o!==null?(kl(t,o.cachePool),Du(t,o),Un(),t.memoizedState=null):(e!==null&&kl(t,null),Ar(),Un());return gt(e,t,l,n),t.child}function Us(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function kd(e,t,n,a,l){var o=Rr();return o=o===null?null:{parent:Pe._currentValue,pool:o},t.memoizedState={baseLanes:n,cachePool:o},e!==null&&kl(t,null),Ar(),Ou(t),e!==null&&Ba(e,t,a,!0),t.childLanes=l,null}function Kl(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 Ad(e,t,n){return ha(t,e.child,null,n),e=Kl(t,t.pendingProps),e.flags|=2,_t(t),t.memoizedState=null,e}function Lp(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Te){if(a.mode==="hidden")return e=Kl(t,a),t.lanes=536870912,Us(null,e);if(Or(t),(e=qe)?(e=$f(e,Xt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:An!==null?{id:nn,overflow:an}:null,retryLane:536870912,hydrationErrors:null},n=mu(e),n.return=t,t.child=n,ht=t,qe=null)):e=null,e===null)throw On(t);return t.lanes=536870912,null}return Kl(t,a)}var o=e.memoizedState;if(o!==null){var d=o.dehydrated;if(Or(t),l)if(t.flags&256)t.flags&=-257,t=Ad(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(u(558));else if(tt||Ba(e,t,n,!1),l=(n&e.childLanes)!==0,tt||l){if(a=Ge,a!==null&&(d=xo(a,n),d!==0&&d!==o.retryLane))throw o.retryLane=d,ia(e,d),At(a,e,d),Pr;ni(),t=Ad(e,t,n)}else e=o.treeContext,qe=Vt(d.nextSibling),ht=t,Te=!0,Dn=null,Xt=!1,e!==null&&gu(t,e),t=Kl(t,a),t.flags|=4096;return t}return e=dn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Xl(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 ec(e,t,n,a,l){return ua(t),n=_r(e,t,n,a,void 0,l),a=Ir(),e!==null&&!tt?(zr(e,t,l),vn(e,t,l)):(Te&&a&&pr(t),t.flags|=1,gt(e,t,n,l),t.child)}function Dd(e,t,n,a,l,o){return ua(t),t.updateQueue=null,n=_u(t,a,n,l),Mu(e),a=Ir(),e!==null&&!tt?(zr(e,t,o),vn(e,t,o)):(Te&&a&&pr(t),t.flags|=1,gt(e,t,n,o),t.child)}function Od(e,t,n,a,l){if(ua(t),t.stateNode===null){var o=za,d=n.contextType;typeof d=="object"&&d!==null&&(o=pt(d)),o=new n(a,o),t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=Fr,t.stateNode=o,o._reactInternals=t,o=t.stateNode,o.props=a,o.state=t.memoizedState,o.refs={},Tr(t),d=n.contextType,o.context=typeof d=="object"&&d!==null?pt(d):za,o.state=t.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(Jr(t,n,d,a),o.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(d=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),d!==o.state&&Fr.enqueueReplaceState(o,o.state,null),Ms(t,a,o,l),Os(),o.state=t.memoizedState),typeof o.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){o=t.stateNode;var g=t.memoizedProps,R=ga(n,g);o.props=R;var H=o.context,Q=n.contextType;d=za,typeof Q=="object"&&Q!==null&&(d=pt(Q));var ee=n.getDerivedStateFromProps;Q=typeof ee=="function"||typeof o.getSnapshotBeforeUpdate=="function",g=t.pendingProps!==g,Q||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(g||H!==d)&&yd(t,o,a,d),_n=!1;var B=t.memoizedState;o.state=B,Ms(t,a,o,l),Os(),H=t.memoizedState,g||B!==H||_n?(typeof ee=="function"&&(Jr(t,n,ee,a),H=t.memoizedState),(R=_n||vd(t,n,R,a,B,H,d))?(Q||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=H),o.props=a,o.state=H,o.context=d,a=R):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{o=t.stateNode,Er(e,t),d=t.memoizedProps,Q=ga(n,d),o.props=Q,ee=t.pendingProps,B=o.context,H=n.contextType,R=za,typeof H=="object"&&H!==null&&(R=pt(H)),g=n.getDerivedStateFromProps,(H=typeof g=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(d!==ee||B!==R)&&yd(t,o,a,R),_n=!1,B=t.memoizedState,o.state=B,Ms(t,a,o,l),Os();var q=t.memoizedState;d!==ee||B!==q||_n||e!==null&&e.dependencies!==null&&El(e.dependencies)?(typeof g=="function"&&(Jr(t,n,g,a),q=t.memoizedState),(Q=_n||vd(t,n,Q,a,B,q,R)||e!==null&&e.dependencies!==null&&El(e.dependencies))?(H||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(a,q,R),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(a,q,R)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=q),o.props=a,o.state=q,o.context=R,a=Q):(typeof o.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),a=!1)}return o=a,Xl(e,t),a=(t.flags&128)!==0,o||a?(o=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:o.render(),t.flags|=1,e!==null&&a?(t.child=ha(t,e.child,null,l),t.child=ha(t,null,n,l)):gt(e,t,n,l),t.memoizedState=o.state,e=t.child):e=vn(e,t,l),e}function Md(e,t,n,a){return ca(),t.flags|=256,gt(e,t,n,a),t.child}var tc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function nc(e){return{baseLanes:e,cachePool:ju()}}function ac(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=zt),e}function _d(e,t,n){var a=t.pendingProps,l=!1,o=(t.flags&128)!==0,d;if((d=o)||(d=e!==null&&e.memoizedState===null?!1:(Ze.current&2)!==0),d&&(l=!0,t.flags&=-129),d=(t.flags&32)!==0,t.flags&=-33,e===null){if(Te){if(l?Ln(t):Un(),(e=qe)?(e=$f(e,Xt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:An!==null?{id:nn,overflow:an}:null,retryLane:536870912,hydrationErrors:null},n=mu(e),n.return=t,t.child=n,ht=t,qe=null)):e=null,e===null)throw On(t);return Hc(e)?t.lanes=32:t.lanes=536870912,null}var g=a.children;return a=a.fallback,l?(Un(),l=t.mode,g=Ql({mode:"hidden",children:g},l),a=ra(a,l,n,null),g.return=t,a.return=t,g.sibling=a,t.child=g,a=t.child,a.memoizedState=nc(n),a.childLanes=ac(e,d,n),t.memoizedState=tc,Us(null,a)):(Ln(t),sc(t,g))}var R=e.memoizedState;if(R!==null&&(g=R.dehydrated,g!==null)){if(o)t.flags&256?(Ln(t),t.flags&=-257,t=lc(e,t,n)):t.memoizedState!==null?(Un(),t.child=e.child,t.flags|=128,t=null):(Un(),g=a.fallback,l=t.mode,a=Ql({mode:"visible",children:a.children},l),g=ra(g,l,n,null),g.flags|=2,a.return=t,g.return=t,a.sibling=g,t.child=a,ha(t,e.child,null,n),a=t.child,a.memoizedState=nc(n),a.childLanes=ac(e,d,n),t.memoizedState=tc,t=Us(null,a));else if(Ln(t),Hc(g)){if(d=g.nextSibling&&g.nextSibling.dataset,d)var H=d.dgst;d=H,a=Error(u(419)),a.stack="",a.digest=d,Ts({value:a,source:null,stack:null}),t=lc(e,t,n)}else if(tt||Ba(e,t,n,!1),d=(n&e.childLanes)!==0,tt||d){if(d=Ge,d!==null&&(a=xo(d,n),a!==0&&a!==R.retryLane))throw R.retryLane=a,ia(e,a),At(d,e,a),Pr;Uc(g)||ni(),t=lc(e,t,n)}else Uc(g)?(t.flags|=192,t.child=e.child,t=null):(e=R.treeContext,qe=Vt(g.nextSibling),ht=t,Te=!0,Dn=null,Xt=!1,e!==null&&gu(t,e),t=sc(t,a.children),t.flags|=4096);return t}return l?(Un(),g=a.fallback,l=t.mode,R=e.child,H=R.sibling,a=dn(R,{mode:"hidden",children:a.children}),a.subtreeFlags=R.subtreeFlags&65011712,H!==null?g=dn(H,g):(g=ra(g,l,n,null),g.flags|=2),g.return=t,a.return=t,a.sibling=g,t.child=a,Us(null,a),a=t.child,g=e.child.memoizedState,g===null?g=nc(n):(l=g.cachePool,l!==null?(R=Pe._currentValue,l=l.parent!==R?{parent:R,pool:R}:l):l=ju(),g={baseLanes:g.baseLanes|n,cachePool:l}),a.memoizedState=g,a.childLanes=ac(e,d,n),t.memoizedState=tc,Us(e.child,a)):(Ln(t),n=e.child,e=n.sibling,n=dn(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 sc(e,t){return t=Ql({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Ql(e,t){return e=Ot(22,e,null,t),e.lanes=0,e}function lc(e,t,n){return ha(t,e.child,null,n),e=sc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Id(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),xr(e.return,t,n)}function ic(e,t,n,a,l,o){var d=e.memoizedState;d===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:o}:(d.isBackwards=t,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=l,d.treeForkCount=o)}function zd(e,t,n){var a=t.pendingProps,l=a.revealOrder,o=a.tail;a=a.children;var d=Ze.current,g=(d&2)!==0;if(g?(d=d&1|2,t.flags|=128):d&=1,Z(Ze,d),gt(e,t,a,n),a=Te?Cs:0,!g&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Id(e,n,t);else if(e.tag===19)Id(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&&Il(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ic(t,!1,l,n,o,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&&Il(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ic(t,!0,n,null,o,a);break;case"together":ic(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function vn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Ba(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=dn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=dn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function rc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&El(e)))}function Up(e,t,n){switch(t.tag){case 3:de(t,t.stateNode.containerInfo),Mn(t,Pe,e.memoizedState.cache),ca();break;case 27:case 5:Ee(t);break;case 4:de(t,t.stateNode.containerInfo);break;case 10:Mn(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Or(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Ln(t),t.flags|=128,null):(n&t.child.childLanes)!==0?_d(e,t,n):(Ln(t),e=vn(e,t,n),e!==null?e.sibling:null);Ln(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(Ba(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return zd(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),Z(Ze,Ze.current),a)break;return null;case 22:return t.lanes=0,wd(e,t,n,t.pendingProps);case 24:Mn(t,Pe,e.memoizedState.cache)}return vn(e,t,n)}function Ld(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)tt=!0;else{if(!rc(e,n)&&(t.flags&128)===0)return tt=!1,Up(e,t,n);tt=(e.flags&131072)!==0}else tt=!1,Te&&(t.flags&1048576)!==0&&pu(t,Cs,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=fa(t.elementType),t.type=e,typeof e=="function")fr(e)?(a=ga(e,a),t.tag=1,t=Od(null,t,e,a,n)):(t.tag=0,t=ec(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===D){t.tag=11,t=Cd(null,t,e,a,n);break e}else if(l===E){t.tag=14,t=Td(null,t,e,a,n);break e}}throw t=K(e)||e,Error(u(306,t,""))}}return t;case 0:return ec(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=ga(a,t.pendingProps),Od(e,t,a,l,n);case 3:e:{if(de(t,t.stateNode.containerInfo),e===null)throw Error(u(387));a=t.pendingProps;var o=t.memoizedState;l=o.element,Er(e,t),Ms(t,a,null,n);var d=t.memoizedState;if(a=d.cache,Mn(t,Pe,a),a!==o.cache&&Sr(t,[Pe],n,!0),Os(),a=d.element,o.isDehydrated)if(o={element:a,isDehydrated:!1,cache:d.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Md(e,t,a,n);break e}else if(a!==l){l=$t(Error(u(424)),t),Ts(l),t=Md(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,qe=Vt(e.firstChild),ht=t,Te=!0,Dn=null,Xt=!0,n=wu(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ca(),a===l){t=vn(e,t,n);break e}gt(e,t,a,n)}t=t.child}return t;case 26:return Xl(e,t),e===null?(n=Zf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Te||(n=t.type,e=t.pendingProps,a=oi(re.current).createElement(n),a[mt]=t,a[Rt]=e,vt(a,n,e),ct(a),t.stateNode=a):t.memoizedState=Zf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ee(t),e===null&&Te&&(a=t.stateNode=Xf(t.type,t.pendingProps,re.current),ht=t,Xt=!0,l=qe,Xn(t.type)?(Bc=l,qe=Vt(a.firstChild)):qe=l),gt(e,t,t.pendingProps.children,n),Xl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Te&&((l=a=qe)&&(a=hg(a,t.type,t.pendingProps,Xt),a!==null?(t.stateNode=a,ht=t,qe=Vt(a.firstChild),Xt=!1,l=!0):l=!1),l||On(t)),Ee(t),l=t.type,o=t.pendingProps,d=e!==null?e.memoizedProps:null,a=o.children,Ic(l,o)?a=null:d!==null&&Ic(l,d)&&(t.flags|=32),t.memoizedState!==null&&(l=_r(e,t,kp,null,null,n),Ps._currentValue=l),Xl(e,t),gt(e,t,a,n),t.child;case 6:return e===null&&Te&&((e=n=qe)&&(n=pg(n,t.pendingProps,Xt),n!==null?(t.stateNode=n,ht=t,qe=null,e=!0):e=!1),e||On(t)),null;case 13:return _d(e,t,n);case 4:return de(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=ha(t,null,a,n):gt(e,t,a,n),t.child;case 11:return Cd(e,t,t.type,t.pendingProps,n);case 7:return gt(e,t,t.pendingProps,n),t.child;case 8:return gt(e,t,t.pendingProps.children,n),t.child;case 12:return gt(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,Mn(t,t.type,a.value),gt(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ua(t),l=pt(l),a=a(l),t.flags|=1,gt(e,t,a,n),t.child;case 14:return Td(e,t,t.type,t.pendingProps,n);case 15:return Ed(e,t,t.type,t.pendingProps,n);case 19:return zd(e,t,n);case 31:return Lp(e,t,n);case 22:return wd(e,t,n,t.pendingProps);case 24:return ua(t),a=pt(Pe),e===null?(l=Rr(),l===null&&(l=Ge,o=jr(),l.pooledCache=o,o.refCount++,o!==null&&(l.pooledCacheLanes|=n),l=o),t.memoizedState={parent:a,cache:l},Tr(t),Mn(t,Pe,l)):((e.lanes&n)!==0&&(Er(e,t),Ms(t,null,null,n),Os()),l=e.memoizedState,o=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Mn(t,Pe,a)):(a=o.cache,Mn(t,Pe,a),a!==l.cache&&Sr(t,[Pe],n,!0))),gt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(u(156,t.tag))}function yn(e){e.flags|=4}function cc(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(df())e.flags|=8192;else throw ma=Dl,Cr}else e.flags&=-16777217}function Ud(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!em(t))if(df())e.flags|=8192;else throw ma=Dl,Cr}function Vl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?vo():536870912,e.lanes|=t,Wa|=t)}function Hs(e,t){if(!Te)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 $e(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 Hp(e,t,n){var a=t.pendingProps;switch(gr(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $e(t),null;case 1:return $e(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),hn(Pe),ue(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Ha(t)?yn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,yr())),$e(t),null;case 26:var l=t.type,o=t.memoizedState;return e===null?(yn(t),o!==null?($e(t),Ud(t,o)):($e(t),cc(t,l,null,a,n))):o?o!==e.memoizedState?(yn(t),$e(t),Ud(t,o)):($e(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&yn(t),$e(t),cc(t,l,e,a,n)),null;case 27:if(ke(t),n=re.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&yn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return $e(t),null}e=$.current,Ha(t)?vu(t):(e=Xf(l,a,n),t.stateNode=e,yn(t))}return $e(t),null;case 5:if(ke(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&yn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return $e(t),null}if(o=$.current,Ha(t))vu(t);else{var d=oi(re.current);switch(o){case 1:o=d.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:o=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":o=d.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":o=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":o=d.createElement("div"),o.innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?o.multiple=!0:a.size&&(o.size=a.size);break;default:o=typeof a.is=="string"?d.createElement(l,{is:a.is}):d.createElement(l)}}o[mt]=t,o[Rt]=a;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)o.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=o;e:switch(vt(o,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&&yn(t)}}return $e(t),cc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&yn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(u(166));if(e=re.current,Ha(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=ht,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[mt]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||If(e.nodeValue,n)),e||On(t,!0)}else e=oi(e).createTextNode(a),e[mt]=t,t.stateNode=e}return $e(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=Ha(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[mt]=t}else ca(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;$e(t),e=!1}else n=yr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(_t(t),t):(_t(t),null);if((t.flags&128)!==0)throw Error(u(558))}return $e(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=Ha(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[mt]=t}else ca(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;$e(t),l=!1}else l=yr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(_t(t),t):(_t(t),null)}return _t(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Vl(t,t.updateQueue),$e(t),null);case 4:return ue(),e===null&&Ac(t.stateNode.containerInfo),$e(t),null;case 10:return hn(t.type),$e(t),null;case 19:if(k(Ze),a=t.memoizedState,a===null)return $e(t),null;if(l=(t.flags&128)!==0,o=a.rendering,o===null)if(l)Hs(a,!1);else{if(Qe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(o=Il(e),o!==null){for(t.flags|=128,Hs(a,!1),e=o.updateQueue,t.updateQueue=e,Vl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)fu(n,e),n=n.sibling;return Z(Ze,Ze.current&1|2),Te&&fn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&he()>Pl&&(t.flags|=128,l=!0,Hs(a,!1),t.lanes=4194304)}else{if(!l)if(e=Il(o),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Vl(t,e),Hs(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Te)return $e(t),null}else 2*he()-a.renderingStartTime>Pl&&n!==536870912&&(t.flags|=128,l=!0,Hs(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(e=a.last,e!==null?e.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=he(),e.sibling=null,n=Ze.current,Z(Ze,l?n&1|2:n&1),Te&&fn(t,a.treeForkCount),e):($e(t),null);case 22:case 23:return _t(t),Dr(),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&&($e(t),t.subtreeFlags&6&&(t.flags|=8192)):$e(t),n=t.updateQueue,n!==null&&Vl(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&&k(da),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),hn(Pe),$e(t),null;case 25:return null;case 30:return null}throw Error(u(156,t.tag))}function Bp(e,t){switch(gr(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return hn(Pe),ue(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ke(t),null;case 31:if(t.memoizedState!==null){if(_t(t),t.alternate===null)throw Error(u(340));ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(_t(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return k(Ze),null;case 4:return ue(),null;case 10:return hn(t.type),null;case 22:case 23:return _t(t),Dr(),e!==null&&k(da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return hn(Pe),null;case 25:return null;default:return null}}function Hd(e,t){switch(gr(t),t.tag){case 3:hn(Pe),ue();break;case 26:case 27:case 5:ke(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&_t(t);break;case 13:_t(t);break;case 19:k(Ze);break;case 10:hn(t.type);break;case 22:case 23:_t(t),Dr(),e!==null&&k(da);break;case 24:hn(Pe)}}function Bs(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 o=n.create,d=n.inst;a=o(),d.destroy=a}n=n.next}while(n!==l)}}catch(g){ze(t,t.return,g)}}function Hn(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var o=l.next;a=o;do{if((a.tag&e)===e){var d=a.inst,g=d.destroy;if(g!==void 0){d.destroy=void 0,l=t;var R=n,H=g;try{H()}catch(Q){ze(l,R,Q)}}}a=a.next}while(a!==o)}}catch(Q){ze(t,t.return,Q)}}function Bd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Au(t,n)}catch(a){ze(e,e.return,a)}}}function Gd(e,t,n){n.props=ga(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){ze(e,t,a)}}function Gs(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){ze(e,t,l)}}function sn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){ze(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){ze(e,t,l)}else n.current=null}function qd(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){ze(e,e.return,l)}}function oc(e,t,n){try{var a=e.stateNode;cg(a,e.type,n,t),a[Rt]=t}catch(l){ze(e,e.return,l)}}function $d(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Xn(e.type)||e.tag===4}function uc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||$d(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&&Xn(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 dc(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=on));else if(a!==4&&(a===27&&Xn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(dc(e,t,n),e=e.sibling;e!==null;)dc(e,t,n),e=e.sibling}function Zl(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&&Xn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zl(e,t,n),e=e.sibling;e!==null;)Zl(e,t,n),e=e.sibling}function Yd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);vt(t,a,n),t[mt]=e,t[Rt]=n}catch(o){ze(e,e.return,o)}}var bn=!1,nt=!1,fc=!1,Kd=typeof WeakSet=="function"?WeakSet:Set,ot=null;function Gp(e,t){if(e=e.containerInfo,Mc=gi,e=au(e),lr(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,o=a.focusNode;a=a.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var d=0,g=-1,R=-1,H=0,Q=0,ee=e,B=null;t:for(;;){for(var q;ee!==n||l!==0&&ee.nodeType!==3||(g=d+l),ee!==o||a!==0&&ee.nodeType!==3||(R=d+a),ee.nodeType===3&&(d+=ee.nodeValue.length),(q=ee.firstChild)!==null;)B=ee,ee=q;for(;;){if(ee===e)break t;if(B===n&&++H===l&&(g=d),B===o&&++Q===a&&(R=d),(q=ee.nextSibling)!==null)break;ee=B,B=ee.parentNode}ee=q}n=g===-1||R===-1?null:{start:g,end:R}}else n=null}n=n||{start:0,end:0}}else n=null;for(_c={focusedElem:e,selectionRange:n},gi=!1,ot=t;ot!==null;)if(t=ot,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ot=e;else for(;ot!==null;){switch(t=ot,o=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&&o!==null){e=void 0,n=t,l=o.memoizedProps,o=o.memoizedState,a=n.stateNode;try{var fe=ga(n.type,l);e=a.getSnapshotBeforeUpdate(fe,o),a.__reactInternalSnapshotBeforeUpdate=e}catch(ve){ze(n,n.return,ve)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Lc(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Lc(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,ot=e;break}ot=t.return}}function Xd(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:Sn(e,n),a&4&&Bs(5,n);break;case 1:if(Sn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(d){ze(n,n.return,d)}else{var l=ga(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(d){ze(n,n.return,d)}}a&64&&Bd(n),a&512&&Gs(n,n.return);break;case 3:if(Sn(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{Au(e,t)}catch(d){ze(n,n.return,d)}}break;case 27:t===null&&a&4&&Yd(n);case 26:case 5:Sn(e,n),t===null&&a&4&&qd(n),a&512&&Gs(n,n.return);break;case 12:Sn(e,n);break;case 31:Sn(e,n),a&4&&Zd(e,n);break;case 13:Sn(e,n),a&4&&Jd(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Jp.bind(null,n),gg(e,n))));break;case 22:if(a=n.memoizedState!==null||bn,!a){t=t!==null&&t.memoizedState!==null||nt,l=bn;var o=nt;bn=a,(nt=t)&&!o?jn(e,n,(n.subtreeFlags&8772)!==0):Sn(e,n),bn=l,nt=o}break;case 30:break;default:Sn(e,n)}}function Qd(e){var t=e.alternate;t!==null&&(e.alternate=null,Qd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&qi(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 Ye=null,Tt=!1;function xn(e,t,n){for(n=n.child;n!==null;)Vd(e,t,n),n=n.sibling}function Vd(e,t,n){if(_e&&typeof _e.onCommitFiberUnmount=="function")try{_e.onCommitFiberUnmount(Le,n)}catch{}switch(n.tag){case 26:nt||sn(n,t),xn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:nt||sn(n,t);var a=Ye,l=Tt;Xn(n.type)&&(Ye=n.stateNode,Tt=!1),xn(e,t,n),Js(n.stateNode),Ye=a,Tt=l;break;case 5:nt||sn(n,t);case 6:if(a=Ye,l=Tt,Ye=null,xn(e,t,n),Ye=a,Tt=l,Ye!==null)if(Tt)try{(Ye.nodeType===9?Ye.body:Ye.nodeName==="HTML"?Ye.ownerDocument.body:Ye).removeChild(n.stateNode)}catch(o){ze(n,t,o)}else try{Ye.removeChild(n.stateNode)}catch(o){ze(n,t,o)}break;case 18:Ye!==null&&(Tt?(e=Ye,Gf(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),is(e)):Gf(Ye,n.stateNode));break;case 4:a=Ye,l=Tt,Ye=n.stateNode.containerInfo,Tt=!0,xn(e,t,n),Ye=a,Tt=l;break;case 0:case 11:case 14:case 15:Hn(2,n,t),nt||Hn(4,n,t),xn(e,t,n);break;case 1:nt||(sn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Gd(n,t,a)),xn(e,t,n);break;case 21:xn(e,t,n);break;case 22:nt=(a=nt)||n.memoizedState!==null,xn(e,t,n),nt=a;break;default:xn(e,t,n)}}function Zd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{is(e)}catch(n){ze(t,t.return,n)}}}function Jd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{is(e)}catch(n){ze(t,t.return,n)}}function qp(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Kd),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Kd),t;default:throw Error(u(435,e.tag))}}function Jl(e,t){var n=qp(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=Fp.bind(null,e,a);a.then(l,l)}})}function Et(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],o=e,d=t,g=d;e:for(;g!==null;){switch(g.tag){case 27:if(Xn(g.type)){Ye=g.stateNode,Tt=!1;break e}break;case 5:Ye=g.stateNode,Tt=!1;break e;case 3:case 4:Ye=g.stateNode.containerInfo,Tt=!0;break e}g=g.return}if(Ye===null)throw Error(u(160));Vd(o,d,l),Ye=null,Tt=!1,o=l.alternate,o!==null&&(o.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Fd(t,e),t=t.sibling}var Pt=null;function Fd(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Et(t,e),wt(e),a&4&&(Hn(3,e,e.return),Bs(3,e),Hn(5,e,e.return));break;case 1:Et(t,e),wt(e),a&512&&(nt||n===null||sn(n,n.return)),a&64&&bn&&(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=Pt;if(Et(t,e),wt(e),a&512&&(nt||n===null||sn(n,n.return)),a&4){var o=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":o=l.getElementsByTagName("title")[0],(!o||o[hs]||o[mt]||o.namespaceURI==="http://www.w3.org/2000/svg"||o.hasAttribute("itemprop"))&&(o=l.createElement(a),l.head.insertBefore(o,l.querySelector("head > title"))),vt(o,a,n),o[mt]=e,ct(o),a=o;break e;case"link":var d=Wf("link","href",l).get(a+(n.href||""));if(d){for(var g=0;g<d.length;g++)if(o=d[g],o.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&o.getAttribute("rel")===(n.rel==null?null:n.rel)&&o.getAttribute("title")===(n.title==null?null:n.title)&&o.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(g,1);break t}}o=l.createElement(a),vt(o,a,n),l.head.appendChild(o);break;case"meta":if(d=Wf("meta","content",l).get(a+(n.content||""))){for(g=0;g<d.length;g++)if(o=d[g],o.getAttribute("content")===(n.content==null?null:""+n.content)&&o.getAttribute("name")===(n.name==null?null:n.name)&&o.getAttribute("property")===(n.property==null?null:n.property)&&o.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(g,1);break t}}o=l.createElement(a),vt(o,a,n),l.head.appendChild(o);break;default:throw Error(u(468,a))}o[mt]=e,ct(o),a=o}e.stateNode=a}else Pf(l,e.type,e.stateNode);else e.stateNode=Ff(l,a,e.memoizedProps);else o!==a?(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,a===null?Pf(l,e.type,e.stateNode):Ff(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&oc(e,e.memoizedProps,n.memoizedProps)}break;case 27:Et(t,e),wt(e),a&512&&(nt||n===null||sn(n,n.return)),n!==null&&a&4&&oc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Et(t,e),wt(e),a&512&&(nt||n===null||sn(n,n.return)),e.flags&32){l=e.stateNode;try{ka(l,"")}catch(fe){ze(e,e.return,fe)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,oc(e,l,n!==null?n.memoizedProps:l)),a&1024&&(fc=!0);break;case 6:if(Et(t,e),wt(e),a&4){if(e.stateNode===null)throw Error(u(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(fe){ze(e,e.return,fe)}}break;case 3:if(fi=null,l=Pt,Pt=ui(t.containerInfo),Et(t,e),Pt=l,wt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{is(t.containerInfo)}catch(fe){ze(e,e.return,fe)}fc&&(fc=!1,Wd(e));break;case 4:a=Pt,Pt=ui(e.stateNode.containerInfo),Et(t,e),wt(e),Pt=a;break;case 12:Et(t,e),wt(e);break;case 31:Et(t,e),wt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 13:Et(t,e),wt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Wl=he()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 22:l=e.memoizedState!==null;var R=n!==null&&n.memoizedState!==null,H=bn,Q=nt;if(bn=H||l,nt=Q||R,Et(t,e),nt=Q,bn=H,wt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||R||bn||nt||va(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){R=n=t;try{if(o=R.stateNode,l)d=o.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{g=R.stateNode;var ee=R.memoizedProps.style,B=ee!=null&&ee.hasOwnProperty("display")?ee.display:null;g.style.display=B==null||typeof B=="boolean"?"":(""+B).trim()}}catch(fe){ze(R,R.return,fe)}}}else if(t.tag===6){if(n===null){R=t;try{R.stateNode.nodeValue=l?"":R.memoizedProps}catch(fe){ze(R,R.return,fe)}}}else if(t.tag===18){if(n===null){R=t;try{var q=R.stateNode;l?qf(q,!0):qf(R.stateNode,!1)}catch(fe){ze(R,R.return,fe)}}}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,Jl(e,n))));break;case 19:Et(t,e),wt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 30:break;case 21:break;default:Et(t,e),wt(e)}}function wt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if($d(a)){n=a;break}a=a.return}if(n==null)throw Error(u(160));switch(n.tag){case 27:var l=n.stateNode,o=uc(e);Zl(e,o,l);break;case 5:var d=n.stateNode;n.flags&32&&(ka(d,""),n.flags&=-33);var g=uc(e);Zl(e,g,d);break;case 3:case 4:var R=n.stateNode.containerInfo,H=uc(e);dc(e,H,R);break;default:throw Error(u(161))}}catch(Q){ze(e,e.return,Q)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Wd(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Wd(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Sn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Xd(e,t.alternate,t),t=t.sibling}function va(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Hn(4,t,t.return),va(t);break;case 1:sn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Gd(t,t.return,n),va(t);break;case 27:Js(t.stateNode);case 26:case 5:sn(t,t.return),va(t);break;case 22:t.memoizedState===null&&va(t);break;case 30:va(t);break;default:va(t)}e=e.sibling}}function jn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,o=t,d=o.flags;switch(o.tag){case 0:case 11:case 15:jn(l,o,n),Bs(4,o);break;case 1:if(jn(l,o,n),a=o,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(H){ze(a,a.return,H)}if(a=o,l=a.updateQueue,l!==null){var g=a.stateNode;try{var R=l.shared.hiddenCallbacks;if(R!==null)for(l.shared.hiddenCallbacks=null,l=0;l<R.length;l++)ku(R[l],g)}catch(H){ze(a,a.return,H)}}n&&d&64&&Bd(o),Gs(o,o.return);break;case 27:Yd(o);case 26:case 5:jn(l,o,n),n&&a===null&&d&4&&qd(o),Gs(o,o.return);break;case 12:jn(l,o,n);break;case 31:jn(l,o,n),n&&d&4&&Zd(l,o);break;case 13:jn(l,o,n),n&&d&4&&Jd(l,o);break;case 22:o.memoizedState===null&&jn(l,o,n),Gs(o,o.return);break;case 30:break;default:jn(l,o,n)}t=t.sibling}}function mc(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&&Es(n))}function hc(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Es(e))}function en(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Pd(e,t,n,a),t=t.sibling}function Pd(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:en(e,t,n,a),l&2048&&Bs(9,t);break;case 1:en(e,t,n,a);break;case 3:en(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&&Es(e)));break;case 12:if(l&2048){en(e,t,n,a),e=t.stateNode;try{var o=t.memoizedProps,d=o.id,g=o.onPostCommit;typeof g=="function"&&g(d,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(R){ze(t,t.return,R)}}else en(e,t,n,a);break;case 31:en(e,t,n,a);break;case 13:en(e,t,n,a);break;case 23:break;case 22:o=t.stateNode,d=t.alternate,t.memoizedState!==null?o._visibility&2?en(e,t,n,a):qs(e,t):o._visibility&2?en(e,t,n,a):(o._visibility|=2,Za(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&mc(d,t);break;case 24:en(e,t,n,a),l&2048&&hc(t.alternate,t);break;default:en(e,t,n,a)}}function Za(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var o=e,d=t,g=n,R=a,H=d.flags;switch(d.tag){case 0:case 11:case 15:Za(o,d,g,R,l),Bs(8,d);break;case 23:break;case 22:var Q=d.stateNode;d.memoizedState!==null?Q._visibility&2?Za(o,d,g,R,l):qs(o,d):(Q._visibility|=2,Za(o,d,g,R,l)),l&&H&2048&&mc(d.alternate,d);break;case 24:Za(o,d,g,R,l),l&&H&2048&&hc(d.alternate,d);break;default:Za(o,d,g,R,l)}t=t.sibling}}function qs(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:qs(n,a),l&2048&&mc(a.alternate,a);break;case 24:qs(n,a),l&2048&&hc(a.alternate,a);break;default:qs(n,a)}t=t.sibling}}var $s=8192;function Ja(e,t,n){if(e.subtreeFlags&$s)for(e=e.child;e!==null;)ef(e,t,n),e=e.sibling}function ef(e,t,n){switch(e.tag){case 26:Ja(e,t,n),e.flags&$s&&e.memoizedState!==null&&wg(n,Pt,e.memoizedState,e.memoizedProps);break;case 5:Ja(e,t,n);break;case 3:case 4:var a=Pt;Pt=ui(e.stateNode.containerInfo),Ja(e,t,n),Pt=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=$s,$s=16777216,Ja(e,t,n),$s=a):Ja(e,t,n));break;default:Ja(e,t,n)}}function tf(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 Ys(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];ot=a,af(a,e)}tf(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)nf(e),e=e.sibling}function nf(e){switch(e.tag){case 0:case 11:case 15:Ys(e),e.flags&2048&&Hn(9,e,e.return);break;case 3:Ys(e);break;case 12:Ys(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fl(e)):Ys(e);break;default:Ys(e)}}function Fl(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];ot=a,af(a,e)}tf(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Hn(8,t,t.return),Fl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Fl(t));break;default:Fl(t)}e=e.sibling}}function af(e,t){for(;ot!==null;){var n=ot;switch(n.tag){case 0:case 11:case 15:Hn(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:Es(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,ot=a;else e:for(n=e;ot!==null;){a=ot;var l=a.sibling,o=a.return;if(Qd(a),a===n){ot=null;break e}if(l!==null){l.return=o,ot=l;break e}ot=o}}}var $p={getCacheForType:function(e){var t=pt(Pe),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return pt(Pe).controller.signal}},Yp=typeof WeakMap=="function"?WeakMap:Map,Me=0,Ge=null,je=null,Re=0,Ie=0,It=null,Bn=!1,Fa=!1,pc=!1,Nn=0,Qe=0,Gn=0,ya=0,gc=0,zt=0,Wa=0,Ks=null,kt=null,vc=!1,Wl=0,sf=0,Pl=1/0,ei=null,qn=null,it=0,$n=null,Pa=null,Rn=0,yc=0,bc=null,lf=null,Xs=0,xc=null;function Lt(){return(Me&2)!==0&&Re!==0?Re&-Re:j.T!==null?Tc():So()}function rf(){if(zt===0)if((Re&536870912)===0||Te){var e=ea;ea<<=1,(ea&3932160)===0&&(ea=262144),zt=e}else zt=536870912;return e=Mt.current,e!==null&&(e.flags|=32),zt}function At(e,t,n){(e===Ge&&(Ie===2||Ie===9)||e.cancelPendingCommit!==null)&&(es(e,0),Yn(e,Re,zt,!1)),ms(e,n),((Me&2)===0||e!==Ge)&&(e===Ge&&((Me&2)===0&&(ya|=n),Qe===4&&Yn(e,Re,zt,!1)),ln(e))}function cf(e,t,n){if((Me&6)!==0)throw Error(u(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||fs(e,t),l=a?Qp(e,t):jc(e,t,!0),o=a;do{if(l===0){Fa&&!a&&Yn(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!Kp(n)){l=jc(e,t,!1),o=!1;continue}if(l===2){if(o=t,e.errorRecoveryDisabledLanes&o)var d=0;else d=e.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){t=d;e:{var g=e;l=Ks;var R=g.current.memoizedState.isDehydrated;if(R&&(es(g,d).flags|=256),d=jc(g,d,!1),d!==2){if(pc&&!R){g.errorRecoveryDisabledLanes|=o,ya|=o,l=4;break e}o=kt,kt=l,o!==null&&(kt===null?kt=o:kt.push.apply(kt,o))}l=d}if(o=!1,l!==2)continue}}if(l===1){es(e,0),Yn(e,t,0,!0);break}e:{switch(a=e,o=l,o){case 0:case 1:throw Error(u(345));case 4:if((t&4194048)!==t)break;case 6:Yn(a,t,zt,!Bn);break e;case 2:kt=null;break;case 3:case 5:break;default:throw Error(u(329))}if((t&62914560)===t&&(l=Wl+300-he(),10<l)){if(Yn(a,t,zt,!Bn),ul(a,0,!0)!==0)break e;Rn=t,a.timeoutHandle=Hf(of.bind(null,a,n,kt,ei,vc,t,zt,ya,Wa,Bn,o,"Throttled",-0,0),l);break e}of(a,n,kt,ei,vc,t,zt,ya,Wa,Bn,o,null,-0,0)}}break}while(!0);ln(e)}function of(e,t,n,a,l,o,d,g,R,H,Q,ee,B,q){if(e.timeoutHandle=-1,ee=t.subtreeFlags,ee&8192||(ee&16785408)===16785408){ee={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:on},ef(t,o,ee);var fe=(o&62914560)===o?Wl-he():(o&4194048)===o?sf-he():0;if(fe=kg(ee,fe),fe!==null){Rn=o,e.cancelPendingCommit=fe(vf.bind(null,e,t,o,n,a,l,d,g,R,Q,ee,null,B,q)),Yn(e,o,d,!H);return}}vf(e,t,o,n,a,l,d,g,R)}function Kp(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],o=l.getSnapshot;l=l.value;try{if(!Dt(o(),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 Yn(e,t,n,a){t&=~gc,t&=~ya,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var o=31-xt(l),d=1<<o;a[o]=-1,l&=~d}n!==0&&yo(e,n,t)}function ti(){return(Me&6)===0?(Qs(0),!1):!0}function Sc(){if(je!==null){if(Ie===0)var e=je.return;else e=je,mn=oa=null,Lr(e),Ya=null,ks=0,e=je;for(;e!==null;)Hd(e.alternate,e),e=e.return;je=null}}function es(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,dg(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Rn=0,Sc(),Ge=e,je=n=dn(e.current,null),Re=t,Ie=0,It=null,Bn=!1,Fa=fs(e,t),pc=!1,Wa=zt=gc=ya=Gn=Qe=0,kt=Ks=null,vc=!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-xt(a),o=1<<l;t|=e[l],a&=~o}return Nn=t,jl(),n}function uf(e,t){xe=null,j.H=Ls,t===$a||t===Al?(t=Cu(),Ie=3):t===Cr?(t=Cu(),Ie=4):Ie=t===Pr?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,It=t,je===null&&(Qe=1,Yl(e,$t(t,e.current)))}function df(){var e=Mt.current;return e===null?!0:(Re&4194048)===Re?Qt===null:(Re&62914560)===Re||(Re&536870912)!==0?e===Qt:!1}function ff(){var e=j.H;return j.H=Ls,e===null?Ls:e}function mf(){var e=j.A;return j.A=$p,e}function ni(){Qe=4,Bn||(Re&4194048)!==Re&&Mt.current!==null||(Fa=!0),(Gn&134217727)===0&&(ya&134217727)===0||Ge===null||Yn(Ge,Re,zt,!1)}function jc(e,t,n){var a=Me;Me|=2;var l=ff(),o=mf();(Ge!==e||Re!==t)&&(ei=null,es(e,t)),t=!1;var d=Qe;e:do try{if(Ie!==0&&je!==null){var g=je,R=It;switch(Ie){case 8:Sc(),d=6;break e;case 3:case 2:case 9:case 6:Mt.current===null&&(t=!0);var H=Ie;if(Ie=0,It=null,ts(e,g,R,H),n&&Fa){d=0;break e}break;default:H=Ie,Ie=0,It=null,ts(e,g,R,H)}}Xp(),d=Qe;break}catch(Q){uf(e,Q)}while(!0);return t&&e.shellSuspendCounter++,mn=oa=null,Me=a,j.H=l,j.A=o,je===null&&(Ge=null,Re=0,jl()),d}function Xp(){for(;je!==null;)hf(je)}function Qp(e,t){var n=Me;Me|=2;var a=ff(),l=mf();Ge!==e||Re!==t?(ei=null,Pl=he()+500,es(e,t)):Fa=fs(e,t);e:do try{if(Ie!==0&&je!==null){t=je;var o=It;t:switch(Ie){case 1:Ie=0,It=null,ts(e,t,o,1);break;case 2:case 9:if(Nu(o)){Ie=0,It=null,pf(t);break}t=function(){Ie!==2&&Ie!==9||Ge!==e||(Ie=7),ln(e)},o.then(t,t);break e;case 3:Ie=7;break e;case 4:Ie=5;break e;case 7:Nu(o)?(Ie=0,It=null,pf(t)):(Ie=0,It=null,ts(e,t,o,7));break;case 5:var d=null;switch(je.tag){case 26:d=je.memoizedState;case 5:case 27:var g=je;if(d?em(d):g.stateNode.complete){Ie=0,It=null;var R=g.sibling;if(R!==null)je=R;else{var H=g.return;H!==null?(je=H,ai(H)):je=null}break t}}Ie=0,It=null,ts(e,t,o,5);break;case 6:Ie=0,It=null,ts(e,t,o,6);break;case 8:Sc(),Qe=6;break e;default:throw Error(u(462))}}Vp();break}catch(Q){uf(e,Q)}while(!0);return mn=oa=null,j.H=a,j.A=l,Me=n,je!==null?0:(Ge=null,Re=0,jl(),Qe)}function Vp(){for(;je!==null&&!Ae();)hf(je)}function hf(e){var t=Ld(e.alternate,e,Nn);e.memoizedProps=e.pendingProps,t===null?ai(e):je=t}function pf(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Dd(n,t,t.pendingProps,t.type,void 0,Re);break;case 11:t=Dd(n,t,t.pendingProps,t.type.render,t.ref,Re);break;case 5:Lr(t);default:Hd(n,t),t=je=fu(t,Nn),t=Ld(n,t,Nn)}e.memoizedProps=e.pendingProps,t===null?ai(e):je=t}function ts(e,t,n,a){mn=oa=null,Lr(t),Ya=null,ks=0;var l=t.return;try{if(zp(e,l,t,n,Re)){Qe=1,Yl(e,$t(n,e.current)),je=null;return}}catch(o){if(l!==null)throw je=l,o;Qe=1,Yl(e,$t(n,e.current)),je=null;return}t.flags&32768?(Te||a===1?e=!0:Fa||(Re&536870912)!==0?e=!1:(Bn=e=!0,(a===2||a===9||a===3||a===6)&&(a=Mt.current,a!==null&&a.tag===13&&(a.flags|=16384))),gf(t,e)):ai(t)}function ai(e){var t=e;do{if((t.flags&32768)!==0){gf(t,Bn);return}e=t.return;var n=Hp(t.alternate,t,Nn);if(n!==null){je=n;return}if(t=t.sibling,t!==null){je=t;return}je=t=e}while(t!==null);Qe===0&&(Qe=5)}function gf(e,t){do{var n=Bp(e.alternate,e);if(n!==null){n.flags&=32767,je=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){je=e;return}je=e=n}while(e!==null);Qe=6,je=null}function vf(e,t,n,a,l,o,d,g,R){e.cancelPendingCommit=null;do si();while(it!==0);if((Me&6)!==0)throw Error(u(327));if(t!==null){if(t===e.current)throw Error(u(177));if(o=t.lanes|t.childLanes,o|=ur,Eh(e,n,o,d,g,R),e===Ge&&(je=Ge=null,Re=0),Pa=t,$n=e,Rn=n,yc=o,bc=l,lf=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Wp(Ft,function(){return jf(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=j.T,j.T=null,l=I.p,I.p=2,d=Me,Me|=4;try{Gp(e,t,n)}finally{Me=d,I.p=l,j.T=a}}it=1,yf(),bf(),xf()}}function yf(){if(it===1){it=0;var e=$n,t=Pa,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=j.T,j.T=null;var a=I.p;I.p=2;var l=Me;Me|=4;try{Fd(t,e);var o=_c,d=au(e.containerInfo),g=o.focusedElem,R=o.selectionRange;if(d!==g&&g&&g.ownerDocument&&nu(g.ownerDocument.documentElement,g)){if(R!==null&&lr(g)){var H=R.start,Q=R.end;if(Q===void 0&&(Q=H),"selectionStart"in g)g.selectionStart=H,g.selectionEnd=Math.min(Q,g.value.length);else{var ee=g.ownerDocument||document,B=ee&&ee.defaultView||window;if(B.getSelection){var q=B.getSelection(),fe=g.textContent.length,ve=Math.min(R.start,fe),Be=R.end===void 0?ve:Math.min(R.end,fe);!q.extend&&ve>Be&&(d=Be,Be=ve,ve=d);var O=tu(g,ve),T=tu(g,Be);if(O&&T&&(q.rangeCount!==1||q.anchorNode!==O.node||q.anchorOffset!==O.offset||q.focusNode!==T.node||q.focusOffset!==T.offset)){var U=ee.createRange();U.setStart(O.node,O.offset),q.removeAllRanges(),ve>Be?(q.addRange(U),q.extend(T.node,T.offset)):(U.setEnd(T.node,T.offset),q.addRange(U))}}}}for(ee=[],q=g;q=q.parentNode;)q.nodeType===1&&ee.push({element:q,left:q.scrollLeft,top:q.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;g<ee.length;g++){var F=ee[g];F.element.scrollLeft=F.left,F.element.scrollTop=F.top}}gi=!!Mc,_c=Mc=null}finally{Me=l,I.p=a,j.T=n}}e.current=t,it=2}}function bf(){if(it===2){it=0;var e=$n,t=Pa,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=j.T,j.T=null;var a=I.p;I.p=2;var l=Me;Me|=4;try{Xd(e,t.alternate,t)}finally{Me=l,I.p=a,j.T=n}}it=3}}function xf(){if(it===4||it===3){it=0,V();var e=$n,t=Pa,n=Rn,a=lf;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?it=5:(it=0,Pa=$n=null,Sf(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(qn=null),Bi(n),t=t.stateNode,_e&&typeof _e.onCommitFiberRoot=="function")try{_e.onCommitFiberRoot(Le,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=j.T,l=I.p,I.p=2,j.T=null;try{for(var o=e.onRecoverableError,d=0;d<a.length;d++){var g=a[d];o(g.value,{componentStack:g.stack})}}finally{j.T=t,I.p=l}}(Rn&3)!==0&&si(),ln(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===xc?Xs++:(Xs=0,xc=e):Xs=0,Qs(0)}}function Sf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Es(t)))}function si(){return yf(),bf(),xf(),jf()}function jf(){if(it!==5)return!1;var e=$n,t=yc;yc=0;var n=Bi(Rn),a=j.T,l=I.p;try{I.p=32>n?32:n,j.T=null,n=bc,bc=null;var o=$n,d=Rn;if(it=0,Pa=$n=null,Rn=0,(Me&6)!==0)throw Error(u(331));var g=Me;if(Me|=4,nf(o.current),Pd(o,o.current,d,n),Me=g,Qs(0,!1),_e&&typeof _e.onPostCommitFiberRoot=="function")try{_e.onPostCommitFiberRoot(Le,o)}catch{}return!0}finally{I.p=l,j.T=a,Sf(e,t)}}function Nf(e,t,n){t=$t(n,t),t=Wr(e.stateNode,t,2),e=zn(e,t,2),e!==null&&(ms(e,2),ln(e))}function ze(e,t,n){if(e.tag===3)Nf(e,e,n);else for(;t!==null;){if(t.tag===3){Nf(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(qn===null||!qn.has(a))){e=$t(n,e),n=Nd(2),a=zn(t,n,2),a!==null&&(Rd(n,a,t,e),ms(a,2),ln(a));break}}t=t.return}}function Nc(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new Yp;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)||(pc=!0,l.add(n),e=Zp.bind(null,e,t,n),t.then(e,e))}function Zp(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ge===e&&(Re&n)===n&&(Qe===4||Qe===3&&(Re&62914560)===Re&&300>he()-Wl?(Me&2)===0&&es(e,0):gc|=n,Wa===Re&&(Wa=0)),ln(e)}function Rf(e,t){t===0&&(t=vo()),e=ia(e,t),e!==null&&(ms(e,t),ln(e))}function Jp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Rf(e,n)}function Fp(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),Rf(e,n)}function Wp(e,t){return Ht(e,t)}var li=null,ns=null,Rc=!1,ii=!1,Cc=!1,Kn=0;function ln(e){e!==ns&&e.next===null&&(ns===null?li=ns=e:ns=ns.next=e),ii=!0,Rc||(Rc=!0,eg())}function Qs(e,t){if(!Cc&&ii){Cc=!0;do for(var n=!1,a=li;a!==null;){if(e!==0){var l=a.pendingLanes;if(l===0)var o=0;else{var d=a.suspendedLanes,g=a.pingedLanes;o=(1<<31-xt(42|e)+1)-1,o&=l&~(d&~g),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,wf(a,o))}else o=Re,o=ul(a,a===Ge?o:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(o&3)===0||fs(a,o)||(n=!0,wf(a,o));a=a.next}while(n);Cc=!1}}function Pp(){Cf()}function Cf(){ii=Rc=!1;var e=0;Kn!==0&&ug()&&(e=Kn);for(var t=he(),n=null,a=li;a!==null;){var l=a.next,o=Tf(a,t);o===0?(a.next=null,n===null?li=l:n.next=l,l===null&&(ns=n)):(n=a,(e!==0||(o&3)!==0)&&(ii=!0)),a=l}it!==0&&it!==5||Qs(e),Kn!==0&&(Kn=0)}function Tf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,o=e.pendingLanes&-62914561;0<o;){var d=31-xt(o),g=1<<d,R=l[d];R===-1?((g&n)===0||(g&a)!==0)&&(l[d]=Th(g,t)):R<=t&&(e.expiredLanes|=g),o&=~g}if(t=Ge,n=Re,n=ul(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(Ie===2||Ie===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&ye(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||fs(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&ye(a),Bi(n)){case 2:case 8:n=lt;break;case 32:n=Ft;break;case 268435456:n=Pn;break;default:n=Ft}return a=Ef.bind(null,e),n=Ht(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&ye(a),e.callbackPriority=2,e.callbackNode=null,2}function Ef(e,t){if(it!==0&&it!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(si()&&e.callbackNode!==n)return null;var a=Re;return a=ul(e,e===Ge?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(cf(e,a,t),Tf(e,he()),e.callbackNode!=null&&e.callbackNode===n?Ef.bind(null,e):null)}function wf(e,t){if(si())return null;cf(e,t,!0)}function eg(){fg(function(){(Me&6)!==0?Ht(We,Pp):Cf()})}function Tc(){if(Kn===0){var e=Ga;e===0&&(e=ft,ft<<=1,(ft&261888)===0&&(ft=256)),Kn=e}return Kn}function kf(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:hl(""+e)}function Af(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 tg(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var o=kf((l[Rt]||null).action),d=a.submitter;d&&(t=(t=d[Rt]||null)?kf(t.formAction):d.getAttribute("formAction"),t!==null&&(o=t,d=null));var g=new yl("action","action",null,a,l);e.push({event:g,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(Kn!==0){var R=d?Af(l,d):new FormData(l);Xr(n,{pending:!0,data:R,method:l.method,action:o},null,R)}}else typeof o=="function"&&(g.preventDefault(),R=d?Af(l,d):new FormData(l),Xr(n,{pending:!0,data:R,method:l.method,action:o},o,R))},currentTarget:l}]})}}for(var Ec=0;Ec<or.length;Ec++){var wc=or[Ec],ng=wc.toLowerCase(),ag=wc[0].toUpperCase()+wc.slice(1);Wt(ng,"on"+ag)}Wt(iu,"onAnimationEnd"),Wt(ru,"onAnimationIteration"),Wt(cu,"onAnimationStart"),Wt("dblclick","onDoubleClick"),Wt("focusin","onFocus"),Wt("focusout","onBlur"),Wt(bp,"onTransitionRun"),Wt(xp,"onTransitionStart"),Wt(Sp,"onTransitionCancel"),Wt(ou,"onTransitionEnd"),Ea("onMouseEnter",["mouseout","mouseover"]),Ea("onMouseLeave",["mouseout","mouseover"]),Ea("onPointerEnter",["pointerout","pointerover"]),Ea("onPointerLeave",["pointerout","pointerover"]),na("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),na("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),na("onBeforeInput",["compositionend","keypress","textInput","paste"]),na("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),na("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),na("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Vs="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(" "),sg=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Vs));function Df(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 o=void 0;if(t)for(var d=a.length-1;0<=d;d--){var g=a[d],R=g.instance,H=g.currentTarget;if(g=g.listener,R!==o&&l.isPropagationStopped())break e;o=g,l.currentTarget=H;try{o(l)}catch(Q){Sl(Q)}l.currentTarget=null,o=R}else for(d=0;d<a.length;d++){if(g=a[d],R=g.instance,H=g.currentTarget,g=g.listener,R!==o&&l.isPropagationStopped())break e;o=g,l.currentTarget=H;try{o(l)}catch(Q){Sl(Q)}l.currentTarget=null,o=R}}}}function Ne(e,t){var n=t[Gi];n===void 0&&(n=t[Gi]=new Set);var a=e+"__bubble";n.has(a)||(Of(t,e,2,!1),n.add(a))}function kc(e,t,n){var a=0;t&&(a|=4),Of(n,e,a,t)}var ri="_reactListening"+Math.random().toString(36).slice(2);function Ac(e){if(!e[ri]){e[ri]=!0,Ro.forEach(function(n){n!=="selectionchange"&&(sg.has(n)||kc(n,!1,e),kc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ri]||(t[ri]=!0,kc("selectionchange",!1,t))}}function Of(e,t,n,a){switch(rm(t)){case 2:var l=Og;break;case 8:l=Mg;break;default:l=Kc}n=l.bind(null,t,n,e),l=void 0,!Ji||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 Dc(e,t,n,a,l){var o=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var d=a.tag;if(d===3||d===4){var g=a.stateNode.containerInfo;if(g===l)break;if(d===4)for(d=a.return;d!==null;){var R=d.tag;if((R===3||R===4)&&d.stateNode.containerInfo===l)return;d=d.return}for(;g!==null;){if(d=Ra(g),d===null)return;if(R=d.tag,R===5||R===6||R===26||R===27){a=o=d;continue e}g=g.parentNode}}a=a.return}zo(function(){var H=o,Q=Vi(n),ee=[];e:{var B=uu.get(e);if(B!==void 0){var q=yl,fe=e;switch(e){case"keypress":if(gl(n)===0)break e;case"keydown":case"keyup":q=Fh;break;case"focusin":fe="focus",q=er;break;case"focusout":fe="blur",q=er;break;case"beforeblur":case"afterblur":q=er;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":q=Ho;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":q=Hh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":q=ep;break;case iu:case ru:case cu:q=qh;break;case ou:q=np;break;case"scroll":case"scrollend":q=Lh;break;case"wheel":q=sp;break;case"copy":case"cut":case"paste":q=Yh;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":q=Go;break;case"toggle":case"beforetoggle":q=ip}var ve=(t&4)!==0,Be=!ve&&(e==="scroll"||e==="scrollend"),O=ve?B!==null?B+"Capture":null:B;ve=[];for(var T=H,U;T!==null;){var F=T;if(U=F.stateNode,F=F.tag,F!==5&&F!==26&&F!==27||U===null||O===null||(F=gs(T,O),F!=null&&ve.push(Zs(T,F,U))),Be)break;T=T.return}0<ve.length&&(B=new q(B,fe,null,n,Q),ee.push({event:B,listeners:ve}))}}if((t&7)===0){e:{if(B=e==="mouseover"||e==="pointerover",q=e==="mouseout"||e==="pointerout",B&&n!==Qi&&(fe=n.relatedTarget||n.fromElement)&&(Ra(fe)||fe[Na]))break e;if((q||B)&&(B=Q.window===Q?Q:(B=Q.ownerDocument)?B.defaultView||B.parentWindow:window,q?(fe=n.relatedTarget||n.toElement,q=H,fe=fe?Ra(fe):null,fe!==null&&(Be=m(fe),ve=fe.tag,fe!==Be||ve!==5&&ve!==27&&ve!==6)&&(fe=null)):(q=null,fe=H),q!==fe)){if(ve=Ho,F="onMouseLeave",O="onMouseEnter",T="mouse",(e==="pointerout"||e==="pointerover")&&(ve=Go,F="onPointerLeave",O="onPointerEnter",T="pointer"),Be=q==null?B:ps(q),U=fe==null?B:ps(fe),B=new ve(F,T+"leave",q,n,Q),B.target=Be,B.relatedTarget=U,F=null,Ra(Q)===H&&(ve=new ve(O,T+"enter",fe,n,Q),ve.target=U,ve.relatedTarget=Be,F=ve),Be=F,q&&fe)t:{for(ve=lg,O=q,T=fe,U=0,F=O;F;F=ve(F))U++;F=0;for(var ge=T;ge;ge=ve(ge))F++;for(;0<U-F;)O=ve(O),U--;for(;0<F-U;)T=ve(T),F--;for(;U--;){if(O===T||T!==null&&O===T.alternate){ve=O;break t}O=ve(O),T=ve(T)}ve=null}else ve=null;q!==null&&Mf(ee,B,q,ve,!1),fe!==null&&Be!==null&&Mf(ee,Be,fe,ve,!0)}}e:{if(B=H?ps(H):window,q=B.nodeName&&B.nodeName.toLowerCase(),q==="select"||q==="input"&&B.type==="file")var De=Zo;else if(Qo(B))if(Jo)De=gp;else{De=hp;var pe=mp}else q=B.nodeName,!q||q.toLowerCase()!=="input"||B.type!=="checkbox"&&B.type!=="radio"?H&&Xi(H.elementType)&&(De=Zo):De=pp;if(De&&(De=De(e,H))){Vo(ee,De,n,Q);break e}pe&&pe(e,B,H),e==="focusout"&&H&&B.type==="number"&&H.memoizedProps.value!=null&&Ki(B,"number",B.value)}switch(pe=H?ps(H):window,e){case"focusin":(Qo(pe)||pe.contentEditable==="true")&&(Ma=pe,ir=H,Rs=null);break;case"focusout":Rs=ir=Ma=null;break;case"mousedown":rr=!0;break;case"contextmenu":case"mouseup":case"dragend":rr=!1,su(ee,n,Q);break;case"selectionchange":if(yp)break;case"keydown":case"keyup":su(ee,n,Q)}var Se;if(nr)e:{switch(e){case"compositionstart":var Ce="onCompositionStart";break e;case"compositionend":Ce="onCompositionEnd";break e;case"compositionupdate":Ce="onCompositionUpdate";break e}Ce=void 0}else Oa?Ko(e,n)&&(Ce="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Ce="onCompositionStart");Ce&&(qo&&n.locale!=="ko"&&(Oa||Ce!=="onCompositionStart"?Ce==="onCompositionEnd"&&Oa&&(Se=Lo()):(kn=Q,Fi="value"in kn?kn.value:kn.textContent,Oa=!0)),pe=ci(H,Ce),0<pe.length&&(Ce=new Bo(Ce,e,null,n,Q),ee.push({event:Ce,listeners:pe}),Se?Ce.data=Se:(Se=Xo(n),Se!==null&&(Ce.data=Se)))),(Se=cp?op(e,n):up(e,n))&&(Ce=ci(H,"onBeforeInput"),0<Ce.length&&(pe=new Bo("onBeforeInput","beforeinput",null,n,Q),ee.push({event:pe,listeners:Ce}),pe.data=Se)),tg(ee,e,H,n,Q)}Df(ee,t)})}function Zs(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ci(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,o=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||o===null||(l=gs(e,n),l!=null&&a.unshift(Zs(e,l,o)),l=gs(e,t),l!=null&&a.push(Zs(e,l,o))),e.tag===3)return a;e=e.return}return[]}function lg(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Mf(e,t,n,a,l){for(var o=t._reactName,d=[];n!==null&&n!==a;){var g=n,R=g.alternate,H=g.stateNode;if(g=g.tag,R!==null&&R===a)break;g!==5&&g!==26&&g!==27||H===null||(R=H,l?(H=gs(n,o),H!=null&&d.unshift(Zs(n,H,R))):l||(H=gs(n,o),H!=null&&d.push(Zs(n,H,R)))),n=n.return}d.length!==0&&e.push({event:t,listeners:d})}var ig=/\r\n?/g,rg=/\u0000|\uFFFD/g;function _f(e){return(typeof e=="string"?e:""+e).replace(ig,`
|
|
9
|
-
`).replace(rg,"")}function If(e,t){return t=_f(t),_f(e)===t}function He(e,t,n,a,l,o){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||ka(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&ka(e,""+a);break;case"className":fl(e,"class",a);break;case"tabIndex":fl(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":fl(e,n,a);break;case"style":_o(e,a,o);break;case"data":if(t!=="object"){fl(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=hl(""+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 o=="function"&&(n==="formAction"?(t!=="input"&&He(e,t,"name",l.name,l,null),He(e,t,"formEncType",l.formEncType,l,null),He(e,t,"formMethod",l.formMethod,l,null),He(e,t,"formTarget",l.formTarget,l,null)):(He(e,t,"encType",l.encType,l,null),He(e,t,"method",l.method,l,null),He(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=hl(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=on);break;case"onScroll":a!=null&&Ne("scroll",e);break;case"onScrollEnd":a!=null&&Ne("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=hl(""+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":Ne("beforetoggle",e),Ne("toggle",e),dl(e,"popover",a);break;case"xlinkActuate":cn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":cn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":cn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":cn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":cn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":cn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":cn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":cn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":cn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":dl(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=Ih.get(n)||n,dl(e,n,a))}}function Oc(e,t,n,a,l,o){switch(n){case"style":_o(e,a,o);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"?ka(e,a):(typeof a=="number"||typeof a=="bigint")&&ka(e,""+a);break;case"onScroll":a!=null&&Ne("scroll",e);break;case"onScrollEnd":a!=null&&Ne("scrollend",e);break;case"onClick":a!=null&&(e.onclick=on);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Co.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),o=e[Rt]||null,o=o!=null?o[n]:null,typeof o=="function"&&e.removeEventListener(t,o,l),typeof a=="function")){typeof o!="function"&&o!==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,""):dl(e,n,a)}}}function vt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ne("error",e),Ne("load",e);var a=!1,l=!1,o;for(o in n)if(n.hasOwnProperty(o)){var d=n[o];if(d!=null)switch(o){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:He(e,t,o,d,n,null)}}l&&He(e,t,"srcSet",n.srcSet,n,null),a&&He(e,t,"src",n.src,n,null);return;case"input":Ne("invalid",e);var g=o=d=l=null,R=null,H=null;for(a in n)if(n.hasOwnProperty(a)){var Q=n[a];if(Q!=null)switch(a){case"name":l=Q;break;case"type":d=Q;break;case"checked":R=Q;break;case"defaultChecked":H=Q;break;case"value":o=Q;break;case"defaultValue":g=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(u(137,t));break;default:He(e,t,a,Q,n,null)}}Ao(e,o,g,R,H,d,l,!1);return;case"select":Ne("invalid",e),a=d=o=null;for(l in n)if(n.hasOwnProperty(l)&&(g=n[l],g!=null))switch(l){case"value":o=g;break;case"defaultValue":d=g;break;case"multiple":a=g;default:He(e,t,l,g,n,null)}t=o,n=d,e.multiple=!!a,t!=null?wa(e,!!a,t,!1):n!=null&&wa(e,!!a,n,!0);return;case"textarea":Ne("invalid",e),o=l=a=null;for(d in n)if(n.hasOwnProperty(d)&&(g=n[d],g!=null))switch(d){case"value":a=g;break;case"defaultValue":l=g;break;case"children":o=g;break;case"dangerouslySetInnerHTML":if(g!=null)throw Error(u(91));break;default:He(e,t,d,g,n,null)}Oo(e,a,l,o);return;case"option":for(R in n)n.hasOwnProperty(R)&&(a=n[R],a!=null)&&(R==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":He(e,t,R,a,n,null));return;case"dialog":Ne("beforetoggle",e),Ne("toggle",e),Ne("cancel",e),Ne("close",e);break;case"iframe":case"object":Ne("load",e);break;case"video":case"audio":for(a=0;a<Vs.length;a++)Ne(Vs[a],e);break;case"image":Ne("error",e),Ne("load",e);break;case"details":Ne("toggle",e);break;case"embed":case"source":case"link":Ne("error",e),Ne("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(H in n)if(n.hasOwnProperty(H)&&(a=n[H],a!=null))switch(H){case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:He(e,t,H,a,n,null)}return;default:if(Xi(t)){for(Q in n)n.hasOwnProperty(Q)&&(a=n[Q],a!==void 0&&Oc(e,t,Q,a,n,void 0));return}}for(g in n)n.hasOwnProperty(g)&&(a=n[g],a!=null&&He(e,t,g,a,n,null))}function cg(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,o=null,d=null,g=null,R=null,H=null,Q=null;for(q in n){var ee=n[q];if(n.hasOwnProperty(q)&&ee!=null)switch(q){case"checked":break;case"value":break;case"defaultValue":R=ee;default:a.hasOwnProperty(q)||He(e,t,q,null,a,ee)}}for(var B in a){var q=a[B];if(ee=n[B],a.hasOwnProperty(B)&&(q!=null||ee!=null))switch(B){case"type":o=q;break;case"name":l=q;break;case"checked":H=q;break;case"defaultChecked":Q=q;break;case"value":d=q;break;case"defaultValue":g=q;break;case"children":case"dangerouslySetInnerHTML":if(q!=null)throw Error(u(137,t));break;default:q!==ee&&He(e,t,B,q,a,ee)}}Yi(e,d,g,R,H,Q,o,l);return;case"select":q=d=g=B=null;for(o in n)if(R=n[o],n.hasOwnProperty(o)&&R!=null)switch(o){case"value":break;case"multiple":q=R;default:a.hasOwnProperty(o)||He(e,t,o,null,a,R)}for(l in a)if(o=a[l],R=n[l],a.hasOwnProperty(l)&&(o!=null||R!=null))switch(l){case"value":B=o;break;case"defaultValue":g=o;break;case"multiple":d=o;default:o!==R&&He(e,t,l,o,a,R)}t=g,n=d,a=q,B!=null?wa(e,!!n,B,!1):!!a!=!!n&&(t!=null?wa(e,!!n,t,!0):wa(e,!!n,n?[]:"",!1));return;case"textarea":q=B=null;for(g in n)if(l=n[g],n.hasOwnProperty(g)&&l!=null&&!a.hasOwnProperty(g))switch(g){case"value":break;case"children":break;default:He(e,t,g,null,a,l)}for(d in a)if(l=a[d],o=n[d],a.hasOwnProperty(d)&&(l!=null||o!=null))switch(d){case"value":B=l;break;case"defaultValue":q=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(u(91));break;default:l!==o&&He(e,t,d,l,a,o)}Do(e,B,q);return;case"option":for(var fe in n)B=n[fe],n.hasOwnProperty(fe)&&B!=null&&!a.hasOwnProperty(fe)&&(fe==="selected"?e.selected=!1:He(e,t,fe,null,a,B));for(R in a)B=a[R],q=n[R],a.hasOwnProperty(R)&&B!==q&&(B!=null||q!=null)&&(R==="selected"?e.selected=B&&typeof B!="function"&&typeof B!="symbol":He(e,t,R,B,a,q));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var ve in n)B=n[ve],n.hasOwnProperty(ve)&&B!=null&&!a.hasOwnProperty(ve)&&He(e,t,ve,null,a,B);for(H in a)if(B=a[H],q=n[H],a.hasOwnProperty(H)&&B!==q&&(B!=null||q!=null))switch(H){case"children":case"dangerouslySetInnerHTML":if(B!=null)throw Error(u(137,t));break;default:He(e,t,H,B,a,q)}return;default:if(Xi(t)){for(var Be in n)B=n[Be],n.hasOwnProperty(Be)&&B!==void 0&&!a.hasOwnProperty(Be)&&Oc(e,t,Be,void 0,a,B);for(Q in a)B=a[Q],q=n[Q],!a.hasOwnProperty(Q)||B===q||B===void 0&&q===void 0||Oc(e,t,Q,B,a,q);return}}for(var O in n)B=n[O],n.hasOwnProperty(O)&&B!=null&&!a.hasOwnProperty(O)&&He(e,t,O,null,a,B);for(ee in a)B=a[ee],q=n[ee],!a.hasOwnProperty(ee)||B===q||B==null&&q==null||He(e,t,ee,B,a,q)}function zf(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function og(){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],o=l.transferSize,d=l.initiatorType,g=l.duration;if(o&&g&&zf(d)){for(d=0,g=l.responseEnd,a+=1;a<n.length;a++){var R=n[a],H=R.startTime;if(H>g)break;var Q=R.transferSize,ee=R.initiatorType;Q&&zf(ee)&&(R=R.responseEnd,d+=Q*(R<g?1:(g-H)/(R-H)))}if(--a,t+=8*(o+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 Mc=null,_c=null;function oi(e){return e.nodeType===9?e:e.ownerDocument}function Lf(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 Uf(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 Ic(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 zc=null;function ug(){var e=window.event;return e&&e.type==="popstate"?e===zc?!1:(zc=e,!0):(zc=null,!1)}var Hf=typeof setTimeout=="function"?setTimeout:void 0,dg=typeof clearTimeout=="function"?clearTimeout:void 0,Bf=typeof Promise=="function"?Promise:void 0,fg=typeof queueMicrotask=="function"?queueMicrotask:typeof Bf<"u"?function(e){return Bf.resolve(null).then(e).catch(mg)}:Hf;function mg(e){setTimeout(function(){throw e})}function Xn(e){return e==="head"}function Gf(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),is(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")Js(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,Js(n);for(var o=n.firstChild;o;){var d=o.nextSibling,g=o.nodeName;o[hs]||g==="SCRIPT"||g==="STYLE"||g==="LINK"&&o.rel.toLowerCase()==="stylesheet"||n.removeChild(o),o=d}}else n==="body"&&Js(e.ownerDocument.body);n=l}while(n);is(t)}function qf(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 Lc(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":Lc(n),qi(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function hg(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[hs])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(o=e.getAttribute("rel"),o==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(o!==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(o=e.getAttribute("src"),(o!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var o=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===o)return e}else return e;if(e=Vt(e.nextSibling),e===null)break}return null}function pg(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Vt(e.nextSibling),e===null))return null;return e}function $f(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Vt(e.nextSibling),e===null))return null;return e}function Uc(e){return e.data==="$?"||e.data==="$~"}function Hc(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function gg(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Vt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Bc=null;function Yf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Vt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Kf(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 Xf(e,t,n){switch(t=oi(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 Js(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);qi(e)}var Zt=new Map,Qf=new Set;function ui(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Cn=I.d;I.d={f:vg,r:yg,D:bg,C:xg,L:Sg,m:jg,X:Rg,S:Ng,M:Cg};function vg(){var e=Cn.f(),t=ti();return e||t}function yg(e){var t=Ca(e);t!==null&&t.tag===5&&t.type==="form"?od(t):Cn.r(e)}var as=typeof document>"u"?null:document;function Vf(e,t,n){var a=as;if(a&&typeof t=="string"&&t){var l=Gt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),Qf.has(l)||(Qf.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),vt(t,"link",e),ct(t),a.head.appendChild(t)))}}function bg(e){Cn.D(e),Vf("dns-prefetch",e,null)}function xg(e,t){Cn.C(e,t),Vf("preconnect",e,t)}function Sg(e,t,n){Cn.L(e,t,n);var a=as;if(a&&e&&t){var l='link[rel="preload"][as="'+Gt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+Gt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+Gt(n.imageSizes)+'"]')):l+='[href="'+Gt(e)+'"]';var o=l;switch(t){case"style":o=ss(e);break;case"script":o=ls(e)}Zt.has(o)||(e=x({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Zt.set(o,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(Fs(o))||t==="script"&&a.querySelector(Ws(o))||(t=a.createElement("link"),vt(t,"link",e),ct(t),a.head.appendChild(t)))}}function jg(e,t){Cn.m(e,t);var n=as;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+Gt(a)+'"][href="'+Gt(e)+'"]',o=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=ls(e)}if(!Zt.has(o)&&(e=x({rel:"modulepreload",href:e},t),Zt.set(o,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Ws(o)))return}a=n.createElement("link"),vt(a,"link",e),ct(a),n.head.appendChild(a)}}}function Ng(e,t,n){Cn.S(e,t,n);var a=as;if(a&&e){var l=Ta(a).hoistableStyles,o=ss(e);t=t||"default";var d=l.get(o);if(!d){var g={loading:0,preload:null};if(d=a.querySelector(Fs(o)))g.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Zt.get(o))&&Gc(e,n);var R=d=a.createElement("link");ct(R),vt(R,"link",e),R._p=new Promise(function(H,Q){R.onload=H,R.onerror=Q}),R.addEventListener("load",function(){g.loading|=1}),R.addEventListener("error",function(){g.loading|=2}),g.loading|=4,di(d,t,a)}d={type:"stylesheet",instance:d,count:1,state:g},l.set(o,d)}}}function Rg(e,t){Cn.X(e,t);var n=as;if(n&&e){var a=Ta(n).hoistableScripts,l=ls(e),o=a.get(l);o||(o=n.querySelector(Ws(l)),o||(e=x({src:e,async:!0},t),(t=Zt.get(l))&&qc(e,t),o=n.createElement("script"),ct(o),vt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},a.set(l,o))}}function Cg(e,t){Cn.M(e,t);var n=as;if(n&&e){var a=Ta(n).hoistableScripts,l=ls(e),o=a.get(l);o||(o=n.querySelector(Ws(l)),o||(e=x({src:e,async:!0,type:"module"},t),(t=Zt.get(l))&&qc(e,t),o=n.createElement("script"),ct(o),vt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},a.set(l,o))}}function Zf(e,t,n,a){var l=(l=re.current)?ui(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=ss(n.href),n=Ta(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=ss(n.href);var o=Ta(l).hoistableStyles,d=o.get(e);if(d||(l=l.ownerDocument||l,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,d),(o=l.querySelector(Fs(e)))&&!o._p&&(d.instance=o,d.state.loading=5),Zt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Zt.set(e,n),o||Tg(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=ls(n),n=Ta(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 ss(e){return'href="'+Gt(e)+'"'}function Fs(e){return'link[rel="stylesheet"]['+e+"]"}function Jf(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function Tg(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}),vt(t,"link",n),ct(t),e.head.appendChild(t))}function ls(e){return'[src="'+Gt(e)+'"]'}function Ws(e){return"script[async]"+e}function Ff(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+Gt(n.href)+'"]');if(a)return t.instance=a,ct(a),a;var l=x({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),ct(a),vt(a,"style",l),di(a,n.precedence,e),t.instance=a;case"stylesheet":l=ss(n.href);var o=e.querySelector(Fs(l));if(o)return t.state.loading|=4,t.instance=o,ct(o),o;a=Jf(n),(l=Zt.get(l))&&Gc(a,l),o=(e.ownerDocument||e).createElement("link"),ct(o);var d=o;return d._p=new Promise(function(g,R){d.onload=g,d.onerror=R}),vt(o,"link",a),t.state.loading|=4,di(o,n.precedence,e),t.instance=o;case"script":return o=ls(n.src),(l=e.querySelector(Ws(o)))?(t.instance=l,ct(l),l):(a=n,(l=Zt.get(o))&&(a=x({},n),qc(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),ct(l),vt(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,di(a,n.precedence,e));return t.instance}function di(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,o=l,d=0;d<a.length;d++){var g=a[d];if(g.dataset.precedence===t)o=g;else if(o!==l)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Gc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function qc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var fi=null;function Wf(e,t,n){if(fi===null){var a=new Map,l=fi=new Map;l.set(n,a)}else l=fi,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 o=n[l];if(!(o[hs]||o[mt]||e==="link"&&o.getAttribute("rel")==="stylesheet")&&o.namespaceURI!=="http://www.w3.org/2000/svg"){var d=o.getAttribute(t)||"";d=e+d;var g=a.get(d);g?g.push(o):a.set(d,[o])}}return a}function Pf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Eg(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 em(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function wg(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=ss(a.href),o=t.querySelector(Fs(l));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=mi.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,ct(o);return}o=t.ownerDocument||t,a=Jf(a),(l=Zt.get(l))&&Gc(a,l),o=o.createElement("link"),ct(o);var d=o;d._p=new Promise(function(g,R){d.onload=g,d.onerror=R}),vt(o,"link",a),n.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=mi.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var $c=0;function kg(e,t){return e.stylesheets&&e.count===0&&pi(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&pi(e,e.stylesheets),e.unsuspend){var o=e.unsuspend;e.unsuspend=null,o()}},6e4+t);0<e.imgBytes&&$c===0&&($c=62500*og());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&pi(e,e.stylesheets),e.unsuspend)){var o=e.unsuspend;e.unsuspend=null,o()}},(e.imgBytes>$c?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function mi(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)pi(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var hi=null;function pi(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,hi=new Map,t.forEach(Ag,e),hi=null,mi.call(e))}function Ag(e,t){if(!(t.state.loading&4)){var n=hi.get(e);if(n)var a=n.get(null);else{n=new Map,hi.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<l.length;o++){var d=l[o];(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"),o=n.get(d)||a,o===a&&n.set(null,l),n.set(d,l),this.count++,a=mi.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),o?o.parentNode.insertBefore(l,o.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var Ps={$$typeof:A,Provider:null,Consumer:null,_currentValue:_,_currentValue2:_,_threadCount:0};function Dg(e,t,n,a,l,o,d,g,R){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=Ui(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ui(0),this.hiddenUpdates=Ui(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=o,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=R,this.incompleteTransitions=new Map}function tm(e,t,n,a,l,o,d,g,R,H,Q,ee){return e=new Dg(e,t,n,d,R,H,Q,ee,g),t=1,o===!0&&(t|=24),o=Ot(3,null,null,t),e.current=o,o.stateNode=e,t=jr(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:a,isDehydrated:n,cache:t},Tr(o),e}function nm(e){return e?(e=za,e):za}function am(e,t,n,a,l,o){l=nm(l),a.context===null?a.context=l:a.pendingContext=l,a=In(t),a.payload={element:n},o=o===void 0?null:o,o!==null&&(a.callback=o),n=zn(e,a,t),n!==null&&(At(n,e,t),Ds(n,e,t))}function sm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Yc(e,t){sm(e,t),(e=e.alternate)&&sm(e,t)}function lm(e){if(e.tag===13||e.tag===31){var t=ia(e,67108864);t!==null&&At(t,e,67108864),Yc(e,67108864)}}function im(e){if(e.tag===13||e.tag===31){var t=Lt();t=Hi(t);var n=ia(e,t);n!==null&&At(n,e,t),Yc(e,t)}}var gi=!0;function Og(e,t,n,a){var l=j.T;j.T=null;var o=I.p;try{I.p=2,Kc(e,t,n,a)}finally{I.p=o,j.T=l}}function Mg(e,t,n,a){var l=j.T;j.T=null;var o=I.p;try{I.p=8,Kc(e,t,n,a)}finally{I.p=o,j.T=l}}function Kc(e,t,n,a){if(gi){var l=Xc(a);if(l===null)Dc(e,t,a,vi,n),cm(e,a);else if(Ig(l,e,t,n,a))a.stopPropagation();else if(cm(e,a),t&4&&-1<_g.indexOf(e)){for(;l!==null;){var o=Ca(l);if(o!==null)switch(o.tag){case 3:if(o=o.stateNode,o.current.memoizedState.isDehydrated){var d=ta(o.pendingLanes);if(d!==0){var g=o;for(g.pendingLanes|=2,g.entangledLanes|=2;d;){var R=1<<31-xt(d);g.entanglements[1]|=R,d&=~R}ln(o),(Me&6)===0&&(Pl=he()+500,Qs(0))}}break;case 31:case 13:g=ia(o,2),g!==null&&At(g,o,2),ti(),Yc(o,2)}if(o=Xc(a),o===null&&Dc(e,t,a,vi,n),o===l)break;l=o}l!==null&&a.stopPropagation()}else Dc(e,t,a,null,n)}}function Xc(e){return e=Vi(e),Qc(e)}var vi=null;function Qc(e){if(vi=null,e=Ra(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=v(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return vi=e,null}function rm(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(dt()){case We:return 2;case lt:return 8;case Ft:case ja:return 32;case Pn:return 268435456;default:return 32}default:return 32}}var Vc=!1,Qn=null,Vn=null,Zn=null,el=new Map,tl=new Map,Jn=[],_g="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 cm(e,t){switch(e){case"focusin":case"focusout":Qn=null;break;case"dragenter":case"dragleave":Vn=null;break;case"mouseover":case"mouseout":Zn=null;break;case"pointerover":case"pointerout":el.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":tl.delete(t.pointerId)}}function nl(e,t,n,a,l,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:o,targetContainers:[l]},t!==null&&(t=Ca(t),t!==null&&lm(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function Ig(e,t,n,a,l){switch(t){case"focusin":return Qn=nl(Qn,e,t,n,a,l),!0;case"dragenter":return Vn=nl(Vn,e,t,n,a,l),!0;case"mouseover":return Zn=nl(Zn,e,t,n,a,l),!0;case"pointerover":var o=l.pointerId;return el.set(o,nl(el.get(o)||null,e,t,n,a,l)),!0;case"gotpointercapture":return o=l.pointerId,tl.set(o,nl(tl.get(o)||null,e,t,n,a,l)),!0}return!1}function om(e){var t=Ra(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,jo(e.priority,function(){im(n)});return}}else if(t===31){if(t=v(n),t!==null){e.blockedOn=t,jo(e.priority,function(){im(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 yi(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Xc(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Qi=a,n.target.dispatchEvent(a),Qi=null}else return t=Ca(n),t!==null&&lm(t),e.blockedOn=n,!1;t.shift()}return!0}function um(e,t,n){yi(e)&&n.delete(t)}function zg(){Vc=!1,Qn!==null&&yi(Qn)&&(Qn=null),Vn!==null&&yi(Vn)&&(Vn=null),Zn!==null&&yi(Zn)&&(Zn=null),el.forEach(um),tl.forEach(um)}function bi(e,t){e.blockedOn===t&&(e.blockedOn=null,Vc||(Vc=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,zg)))}var xi=null;function dm(e){xi!==e&&(xi=e,i.unstable_scheduleCallback(i.unstable_NormalPriority,function(){xi===e&&(xi=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(Qc(a||n)===null)continue;break}var o=Ca(n);o!==null&&(e.splice(t,3),t-=3,Xr(o,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function is(e){function t(R){return bi(R,e)}Qn!==null&&bi(Qn,e),Vn!==null&&bi(Vn,e),Zn!==null&&bi(Zn,e),el.forEach(t),tl.forEach(t);for(var n=0;n<Jn.length;n++){var a=Jn[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<Jn.length&&(n=Jn[0],n.blockedOn===null);)om(n),n.blockedOn===null&&Jn.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],o=n[a+1],d=l[Rt]||null;if(typeof o=="function")d||dm(n);else if(d){var g=null;if(o&&o.hasAttribute("formAction")){if(l=o,d=o[Rt]||null)g=d.formAction;else if(Qc(l)!==null)continue}else g=d.action;typeof g=="function"?n[a+1]=g:(n.splice(a,3),a-=3),dm(n)}}}function fm(){function e(o){o.canIntercept&&o.info==="react-transition"&&o.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 o=navigation.currentEntry;o&&o.url!=null&&navigation.navigate(o.url,{state:o.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 Zc(e){this._internalRoot=e}Si.prototype.render=Zc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));var n=t.current,a=Lt();am(n,a,e,t,null,null)},Si.prototype.unmount=Zc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;am(e.current,2,null,e,null,null),ti(),t[Na]=null}};function Si(e){this._internalRoot=e}Si.prototype.unstable_scheduleHydration=function(e){if(e){var t=So();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Jn.length&&t!==0&&t<Jn[n].priority;n++);Jn.splice(n,0,e),n===0&&om(e)}};var mm=r.version;if(mm!=="19.2.8")throw Error(u(527,mm,"19.2.8"));I.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?N(e):null,e=e===null?null:e.stateNode,e};var Lg={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ji=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ji.isDisabled&&ji.supportsFiber)try{Le=ji.inject(Lg),_e=ji}catch{}}return sl.createRoot=function(e,t){if(!f(e))throw Error(u(299));var n=!1,a="",l=bd,o=xd,d=Sd;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&&(o=t.onCaughtError),t.onRecoverableError!==void 0&&(d=t.onRecoverableError)),t=tm(e,1,!1,null,null,n,a,null,l,o,d,fm),e[Na]=t.current,Ac(e),new Zc(t)},sl.hydrateRoot=function(e,t,n){if(!f(e))throw Error(u(299));var a=!1,l="",o=bd,d=xd,g=Sd,R=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(o=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(g=n.onRecoverableError),n.formState!==void 0&&(R=n.formState)),t=tm(e,1,!0,t,n??null,a,l,R,o,d,g,fm),t.context=nm(null),n=t.current,a=Lt(),a=Hi(a),l=In(a),l.callback=null,zn(n,l,a),n=a,t.current.lanes=n,ms(t,n),ln(t),e[Na]=t.current,Ac(e),new Si(t)},sl.version="19.2.8",sl}var Nm;function Qg(){if(Nm)return Wc.exports;Nm=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(r){console.error(r)}}return i(),Wc.exports=Xg(),Wc.exports}var Vg=Qg();function ba(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 r=i;if(typeof r.text=="string"&&r.text.trim())return r.text.trim();if(typeof r.errorMessage=="string"&&r.errorMessage.trim())return r.errorMessage.trim();if(Array.isArray(r.content)){const c=r.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 r.role=="string")return`${r.role} 消息`}return null}function Zg(i){const r=ba(i.at)??ba(i.timestamp)??ba(i.recordedAt)??"",c=ba(i.errorMessage)??ba(i.label)??ba(i.type)??ba(i.message)??"运行事件";return r?`${r} · ${c}`:c}function rl(i){return String(i.nodeId??i.id??"").trim()}function no(i){const r=rl(i);return String(i.label??i.name??(r||"未命名节点"))}function Rm(i,r){if(i.length===0)return;const c=r?.trim();if(c){const m=i.find(h=>rl(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 Jg({dagRunId:i,nodeId:r,onClose:c,onOpenFull:u}){const f=p.useRef(null),[m,h]=p.useState(null),[v,S]=p.useState([]),[y,N]=p.useState(null),[x,M]=p.useState(!0);p.useEffect(()=>{f.current?.focus();const se=C=>{C.key==="Escape"&&c()};return document.addEventListener("keydown",se),document.title=`检视 · DAG ${i} · Loop Operator`,()=>document.removeEventListener("keydown",se)},[i,c]),p.useEffect(()=>{const se=new AbortController;return M(!0),N(null),S([]),(async()=>{try{const C=await fetch(`/api/dag-runs/${encodeURIComponent(i)}`,{signal:se.signal,credentials:"same-origin"});if(!C.ok)throw new Error(`DAG 查询失败(HTTP ${C.status})`);const A=await C.json();if(se.signal.aborted)return;h(A);const D=Array.isArray(A.nodes)?A.nodes:[],J=Rm(D,r),L=J?rl(J):r?.trim();if(L){const E=await fetch(`/api/dag-runs/${encodeURIComponent(i)}/nodes/${encodeURIComponent(L)}/session-events`,{signal:se.signal,credentials:"same-origin"});if(E.ok){const Y=await E.json();se.signal.aborted||S((Y.events??[]).slice(-20))}}}catch(C){se.signal.aborted||N(C instanceof Error?C.message:String(C))}finally{se.signal.aborted||M(!1)}})(),()=>se.abort()},[i,r]);const w=p.useMemo(()=>Array.isArray(m?.nodes)?m.nodes:[],[m]),z=Rm(w,r),G=z?rl(z):"",ae=String(m?.effectiveStatus??m?.status??(x?"加载中…":"未知"));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,x&&!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:z?no(z):"暂无节点"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"节点状态"}),s.jsx("dd",{children:z?.status??"—"})]}),z?.errorPreview?s.jsxs("div",{children:[s.jsx("dt",{children:"错误摘要"}),s.jsx("dd",{children:z.errorPreview})]}):null]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["节点(",w.length,")"]}),w.length?s.jsx("ul",{className:"inspect-split-nodes",children:w.slice(0,24).map(se=>{const C=rl(se)||no(se),A=C===G;return s.jsxs("li",{"data-active":A?"true":void 0,className:A?"is-active":void 0,children:[s.jsx("span",{children:no(se)}),s.jsx("code",{children:se.status??"—"})]},C)})}):s.jsx("p",{className:"muted",children:x?"加载节点中…":"该运行暂无节点。"})]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["最近事件",G?` · ${G}`:""]}),v.length?s.jsx("ul",{className:"inspect-split-events",children:v.map((se,C)=>s.jsx("li",{children:Zg(se)},`${se.at??C}-${C}`))}):s.jsx("p",{className:"muted",children:x?"加载事件中…":"节点事件将在可用时显示。"})]}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:u,children:"全屏观测"}),s.jsx("p",{className:"muted",children:"全屏后点顶栏「返回操作台」可回来。"})]})}function Fg(i){const{board:r,busy:c}=i;return s.jsxs("details",{className:"night-advanced","data-testid":"night-advanced",open:r.advancedOpen,onToggle:u=>r.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:()=>{r.onMorningReport()},children:"早晨 night 报告"})}),r.morningPreview?s.jsx("pre",{className:"cmd","data-testid":"night-morning-preview",children:r.morningPreview}):null]})}function Ni(i){return!i||typeof i!="object"||Array.isArray(i)?null:i}function Fe(i,r){const c=i[r];return typeof c=="string"&&c.trim()?c.trim():void 0}function Cm(i,r){const c=i[r];if(!Array.isArray(c))return;const u=c.filter(f=>typeof f=="string");return u.length>0?u:void 0}function Wg(i){const r=Ni(i);if(!r)return null;const c=Ni(r.result),u=[Ni(r.reviewPacket),c?Ni(c.reviewPacket):null,c,r].filter(Boolean);for(const f of u){const m=Fe(f,"scheduleId")??Fe(f,"id"),h=Fe(f,"gateToken")??Fe(f,"approveGate")??Fe(f,"writeSetGateToken");if(!(!m||!h))return{scheduleId:m,gateToken:h,...Fe(f,"featureId")?{featureId:Fe(f,"featureId")}:{},...Fe(f,"taskId")?{taskId:Fe(f,"taskId")}:{},...Cm(f,"writeSet")?{writeSet:Cm(f,"writeSet")}:{},...Fe(f,"worktreePath")?{worktreePath:Fe(f,"worktreePath")}:{},...Fe(f,"branch")?{branch:Fe(f,"branch")}:{},...Fe(f,"baseBranch")?{baseBranch:Fe(f,"baseBranch")}:{},...Fe(f,"baseCommit")?{baseCommit:Fe(f,"baseCommit")}:{},...Fe(f,"executeAtUtc")?{executeAtUtc:Fe(f,"executeAtUtc")}:{},...Fe(f,"taskCard")?{taskCard:Fe(f,"taskCard")}:{}}}return null}function Tm(i){return`docs/features/${i.trim().replace(/^\/+|\/+$/g,"")}`}function Pg(i){const r=i.trim(),c=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})/.exec(r);return c?`${c[1]} ${c[2]}`:null}function Em(){const i=new Date;i.setHours(20,0,0,0);const r=c=>String(c).padStart(2,"0");return`${i.getFullYear()}-${r(i.getMonth()+1)}-${r(i.getDate())}T${r(i.getHours())}:${r(i.getMinutes())}`}function Xm(i){if(!i)return"—";const r=Date.parse(i);if(Number.isNaN(r))return i;try{return new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"short",timeZone:"Asia/Shanghai"}).format(new Date(r))}catch{return i}}function ev(i){return i.mergeState==="pending-harvest"||/\bscheduler harvest\b/i.test(i.nextAction)}function tv(i){return i.status==="failed"||i.status==="human_required"||i.status==="cancelled"||/\bscheduler discard\b/i.test(i.nextAction)}function Ti(i){return i==="failed"||i==="human_required"}function nv(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Qm(i){return{submitted:"已提交",validating:"校验中",validated:"待预约确认",scheduled:"已预约",waiting:"等待触发",dispatching:"派发中",running:"执行中",succeeded:"成功",failed:"失败",human_required:"需人工",cancelled:"已取消",rejected:"已拒绝",cancel_requested:"取消中"}[i]??i}function av(i){const{target:r,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:[r.featureId,"/",r.taskId,"(",Qm(r.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:v=>u(v.target.value)})]}),Ti(r.status)?s.jsxs("label",{className:"field checkbox-field",children:[s.jsx("input",{type:"checkbox","data-testid":"night-discard-force",checked:f,disabled:h,onChange:v=>m(v.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||Ti(r.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 sv(i){const{board:r}=i,{doctor:c,list:u,clockHint:f,doctorIssues:m,auxTicker:h}=r;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(v=>s.jsxs("li",{children:[s.jsx("strong",{children:v.severity})," ",v.message]},`${v.code}-${v.scheduleId??""}-${v.message}`))}):null]})}function lv(i){const{board:r,busy:c,onHarvest:u,onOpenDiscard:f}=i,{list:m}=r;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:Qm(h.status)})]}),s.jsxs("p",{className:"muted",children:["执行 ",Xm(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:[ev(h)?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c,"data-testid":"night-row-harvest",onClick:()=>u(h),children:"Harvest"}):null,tv(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 iv(i){const{wizard:r,busy:c}=i;return s.jsxs("div",{className:"night-wizard","data-testid":"night-wizard",children:[s.jsx("h3",{children:"预约夜间任务"}),r.phase==="pick"?s.jsxs(s.Fragment,{children:[r.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:r.selectedKey,disabled:c,onChange:u=>r.setSelectedKey(u.target.value),children:[s.jsx("option",{value:"",children:"选择任务…"}),r.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)})]})]}),r.derivedFeatureDir?s.jsxs("p",{className:"muted","data-testid":"night-feature-dir",children:["Feature 目录:",s.jsx("code",{children:r.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:r.nightAt,disabled:c,onChange:u=>r.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:r.taskCard,disabled:c,placeholder:"UCP-LOOP#11",onChange:u=>r.setTaskCard(u.target.value)})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c||!r.selectedKey||!r.nightAt,"data-testid":"night-prepare-btn",onClick:()=>{r.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:r.review?.scheduleId})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务"}),s.jsxs("dd",{children:[r.review?.featureId,"/",r.review?.taskId]})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"执行时间 (UTC)"}),s.jsx("dd",{children:Xm(r.review?.executeAtUtc)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Worktree"}),s.jsx("dd",{children:s.jsx("code",{children:r.review?.worktreePath??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"分支"}),s.jsx("dd",{children:s.jsx("code",{children:r.review?.branch??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Base"}),s.jsx("dd",{children:s.jsxs("code",{children:[r.review?.baseBranch??"—","@",(r.review?.baseCommit??"").slice(0,12)||"—"]})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"WriteSet"}),s.jsx("dd",{children:r.review?.writeSet&&r.review.writeSet.length>0?s.jsx("ul",{className:"night-writeset",children:r.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||!r.review,"data-testid":"night-confirm-add-btn",onClick:()=>{r.onConfirmAdd()},children:"确认预约"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-review-back-btn",onClick:r.onCancelWizard,children:"返回修改"})]})]})]})}function rv(i){const{setOpError:r}=i,[c,u]=p.useState(null),[f,m]=p.useState(null),[h,v]=p.useState([]),[S,y]=p.useState(null),[N,x]=p.useState(!1),[M,w]=p.useState(!1),[z,G]=p.useState(null),[ae,se]=p.useState(null),C=p.useCallback(async()=>{x(!0),y(null);try{const[L,E,Y,ne]=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(!L.ok)throw new Error(`加载计划列表失败(HTTP ${L.status})`);const te=await L.json();if(u(te),E.ok?m(await E.json()):m(null),Y.ok){const X=await Y.json();v(Array.isArray(X)?X:[])}else v([]);if(ne.ok){const X=await ne.json();X.ticker&&se(X.ticker)}}catch(L){y(L instanceof Error?L.message:String(L))}finally{x(!1)}},[]);p.useEffect(()=>{C()},[C]);const A=p.useCallback(async()=>{try{const L=await fetch("/api/night-jobs/morning",{credentials:"same-origin"});if(!L.ok){r(`早晨报告加载失败(HTTP ${L.status})`);return}const E=await L.json();G(JSON.stringify(E,null,2).slice(0,4e3)),w(!0)}catch(L){r(L instanceof Error?L.message:String(L))}},[r]),D=(f?.findings??[]).filter(L=>L.severity==="error"||L.severity==="warning"),J=(f?.findings??[]).find(L=>/clock/i.test(L.code)||/clock/i.test(L.message));return{list:c,doctor:f,tasks:h,loadError:S,loadingBoard:N,advancedOpen:M,setAdvancedOpen:w,morningPreview:z,auxTicker:ae,refreshBoard:C,onMorningReport:A,doctorIssues:D,clockHint:J}}function cv(i){const{board:r,runAction:c,isActionSuccess:u,setOpError:f}=i,{tasks:m,refreshBoard:h}=r,[v,S]=p.useState("pick"),[y,N]=p.useState(""),[x,M]=p.useState(Em),[w,z]=p.useState(""),[G,ae]=p.useState(null),[se,C]=p.useState(""),[A,D]=p.useState(null),[J,L]=p.useState(!1),E=p.useMemo(()=>{const I=m.filter(_=>typeof _.featureId=="string"&&_.featureId.trim()&&_.taskId);return I.sort((_,oe)=>{const P=_.featureId??"",b=oe.featureId??"";return P!==b?P.localeCompare(b):_.taskId.localeCompare(oe.taskId)}),I},[m]),Y=p.useMemo(()=>y?E.find(I=>`${I.featureId}::${I.taskId}`===y)??null:null,[E,y]),ne=Y?.featureId?Tm(Y.featureId):"",te=p.useCallback(async(I,_,oe)=>{const P=await c("prepareMutationGate",{action:I,actionParams:_});if(!u(P))return;const b=P?.result??P,k=b.receiptId?b:b.result??b;if(!k.receiptId||!k.humanGateToken){f("prepareMutationGate 未返回可消费的 Human Gate receipt");return}return c(I,{..._,confirmationId:k.receiptId,humanGateToken:k.humanGateToken},{clientRequestId:nv(oe)})},[u,c,f]),X=p.useCallback(async()=>{if(!Y?.featureId){f("请先点选 Feature / Task");return}const I=Pg(x);if(!I){f("执行时间格式无效,请使用日期时间选择器");return}const _={featureDir:Tm(Y.featureId),taskId:Y.taskId,at:I,tz:"Asia/Shanghai",...w.trim()?{taskCard:w.trim()}:{}},oe=await te("workerAdmissionPrepare",_,"night-prepare");if(!u(oe))return;const P=Wg(oe?.result??oe);if(!P){f("准备成功但未解析到 scheduleId / gateToken。请刷新后重试,或查看 Inspect。");return}ae(P),S("review")},[u,x,te,Y,f,w]),W=p.useCallback(async()=>{if(!G)return;const I=await te("workerSchedulerAdd",{scheduleId:G.scheduleId,approveGate:G.gateToken},"night-add");u(I)&&(ae(null),S("pick"),N(""),z(""),M(Em()),await h())},[u,h,G,te]),ce=p.useCallback(()=>{S("pick"),ae(null)},[]),K=p.useCallback(async I=>{const _=await te("workerSchedulerHarvest",{scheduleId:I.scheduleId},"night-harvest");u(_)&&await h()},[u,h,te]),ie=p.useCallback(async()=>{if(!A)return;const I=se.trim()||"discard from console night workbench",_=Ti(A.status),oe=await te("workerSchedulerDiscard",{scheduleId:A.scheduleId,reason:I,..._||J?{force:!0}:{}},"night-discard");u(oe)&&(D(null),C(""),L(!1),await h())},[se,A,J,u,h,te]),j=p.useCallback(I=>{D(I),L(Ti(I.status)),C("")},[]);return{phase:v,selectedKey:y,setSelectedKey:N,nightAt:x,setNightAt:M,taskCard:w,setTaskCard:z,review:G,discardReason:se,setDiscardReason:C,discardTarget:A,setDiscardTarget:D,forceDiscard:J,setForceDiscard:L,selectableTasks:E,derivedFeatureDir:ne,onPrepare:X,onConfirmAdd:W,onCancelWizard:ce,onHarvest:K,onDiscard:ie,openDiscard:j}}function ov({busy:i,runAction:r,isActionSuccess:c,setOpError:u}){const f=rv({setOpError:u}),m=cv({board:f,runAction:r,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(sv,{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(lv,{board:f,busy:i,onHarvest:h=>{m.onHarvest(h)},onOpenDiscard:m.openDiscard}),m.discardTarget?s.jsx(av,{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(iv,{wizard:m,busy:i}),s.jsx(Fg,{board:f,busy:i})]})}const uv=["command","path","file_path","filePath","pattern","query","glob","url"],dv=120,fv=800;function wm(i){if(!(!i||typeof i!="object"||Array.isArray(i)))return i}function mv(i){if(i!=null){if(typeof i=="string"){const r=i.trim();if(!r)return;try{return wm(JSON.parse(r))}catch{return}}return wm(i)}}function hv(i,r){const c=dv,u=mv(i);if(!u){if(typeof i=="string"){const v=i.replace(/\s+/g," ").trim();return!v||v==="{}"?"":v.length>c?`${v.slice(0,c)}…`:v}return""}for(const v of uv){const S=u[v];if(typeof S=="string"&&S.trim()){const y=S.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 pv(i){if(i==null)return"";try{return typeof i=="string"?i:JSON.stringify(i,null,2)}catch{return String(i)}}function gv(i,r){if(i===void 0)return{text:"",truncated:!1};const c=r?.maxLen??fv;return i.length<=c?{text:i,truncated:!1}:{text:`${i.slice(0,c)}…`,truncated:!0}}function vv(i,r){if(r===void 0||!Number.isFinite(i)||!Number.isFinite(r))return;const c=Math.round((r-i)/1e3);return c>0?c:void 0}function Ut(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function cl(i){return`${i}-${Math.random().toString(36).slice(2,10)}`}function ao(i,r){return new Promise((c,u)=>{if(r?.aborted){u(new DOMException("Aborted","AbortError"));return}const f=setTimeout(()=>{r?.removeEventListener("abort",m),c()},i),m=()=>{clearTimeout(f),u(new DOMException("Aborted","AbortError"))};r?.addEventListener("abort",m)})}function Vm(i){return new Date(i).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function so(i){const r=new Date(i),c=new Date;return r.getFullYear()===c.getFullYear()&&r.getMonth()===c.getMonth()&&r.getDate()===c.getDate()?"今天":r.toLocaleDateString([],{month:"long",day:"numeric"})}function km(i){switch(i){case"mutation":return"变更";case"long-running":return"长任务";case"explore":return"探查";default:return"只读"}}function yv(i,r){return i?i.taskId===r.taskId&&i.updatedAt===r.updatedAt&&i.lastEventId===r.lastEventId&&i.operations.length===r.operations.length:!1}const Zm={status:"idle",snapshot:null,error:null,reloading:!1,reloadError:null,mutationBusy:!1,mutationToken:null};function Jm(i){if(!i||typeof i!="object")return{message:"runtime snapshot request failed"};const r=i,c=r.error;if(c&&typeof c=="object"){const u=c;return{...typeof u.code=="string"&&u.code?{code:u.code}:{},...typeof r.status=="number"?{status:r.status}:{},message:typeof u.message=="string"&&u.message?u.message:"runtime snapshot request failed"}}return{...typeof r.status=="number"?{status:r.status}:{},message:typeof r=="object"&&"message"in r&&typeof r.message=="string"&&r.message?r.message:"runtime snapshot request failed"}}function bv(i,r){switch(r.type){case"load-start":return{...i,sessionId:r.sessionId,status:"loading",error:null};case"load-success":return i.snapshot&&i.sessionId===r.sessionId&&r.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:r.sessionId,status:"ready",snapshot:r.snapshot,error:null,reloadError:null,reloading:!1};case"load-failure":return{...i,sessionId:r.sessionId,status:"error",error:r.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:r.snapshot,reloading:!1,reloadError:null,error:null,sessionId:r.snapshot.sessionId||i.sessionId};case"reload-failure":return{...i,reloading:!1,reloadError:r.error};case"mutation-start":return{...i,mutationBusy:!0,mutationToken:r.token};case"mutation-adopt":return i.mutationToken!==r.token||i.sessionId!==void 0&&i.sessionId!==r.sessionId||i.snapshot&&r.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:r.sessionId,status:"ready",snapshot:r.snapshot,error:null,reloadError:null,reloading:!1};case"mutation-settle":return i.mutationToken!==r.token?i:{...i,mutationBusy:!1,mutationToken:null};case"mutation-reset":return{...i,mutationBusy:!1,mutationToken:null};case"reset":return{...Zm};default:return i}}function Fm(i){const r=i.selection;return{...r.model?{model:{provider:r.model.provider,modelId:r.model.id}}:{},...r.thinkingSelection==="auto"?r.effectiveThinkingLevel?{thinkingLevel:r.effectiveThinkingLevel}:{}:{thinkingLevel:r.thinkingSelection}}}function xv(i,r,c,u){const f=c&&c.sessionId===u?Fm(c):{},m=f.model??i?.model,h=f.thinkingLevel??i?.thinkingLevel;return{readOnly:r.readOnly,systemPrompt:r.systemPrompt,resources:r.resources,suffix:r.suffix,...m?{model:m}:{},...h?{thinkingLevel:h}:{}}}function Sv(i=Zm){let r=i;const c=new Set;return{getState:()=>r,dispatch:u=>{r=bv(r,u);for(const f of c)f();return r},subscribe:u=>(c.add(u),()=>c.delete(u))}}const Ve=Sv();let Wn;function Wm(i){return`/api/operator/v1/chat/sessions/${encodeURIComponent(i)}`}function jv(i){const r=Wn;if(Wn=i,!(r&&r.sessionId===i.sessionId&&r.origin===i.origin)){if((!r||r.sessionId!==i.sessionId)&&Ve.dispatch({type:"mutation-reset"}),!i.sessionId){Ve.dispatch({type:"reset"});return}Ve.dispatch({type:"load-start",sessionId:i.sessionId}),Pm(i.sessionId,i.origin)}}async function Pm(i,r){try{const c=await fetch(`${r}${Wm(i)}/runtime-snapshot`,{credentials:"include"}),u=await c.json().catch(()=>({}));if(Wn?.sessionId!==i)return;if(!c.ok){Ve.dispatch({type:"load-failure",sessionId:i,error:{...Jm(u),status:c.status}});return}if(!u.snapshot){Ve.dispatch({type:"load-failure",sessionId:i,error:{status:c.status,message:"runtime snapshot missing in response"}});return}Ve.dispatch({type:"load-success",sessionId:i,snapshot:u.snapshot})}catch(c){if(Wn?.sessionId!==i)return;Ve.dispatch({type:"load-failure",sessionId:i,error:{message:c instanceof Error?c.message:String(c)}})}}async function os(){const i=Wn;if(!i?.sessionId||Ve.getState().reloading)return!1;const r=i.sessionId;Ve.dispatch({type:"reload-start"});try{const c=await fetch(`${i.origin}${Wm(r)}/reload`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ut()},body:"{}"}),u=await c.json().catch(()=>({}));return Wn?.sessionId!==r?!1:c.ok?u.snapshot?(Ve.dispatch({type:"reload-success",snapshot:u.snapshot}),!0):(Ve.dispatch({type:"reload-failure",error:{status:c.status,message:"reload succeeded but snapshot missing"}}),!1):(Ve.dispatch({type:"reload-failure",error:{...Jm(u),status:c.status}}),!1)}catch(c){return Wn?.sessionId!==r||Ve.dispatch({type:"reload-failure",error:{message:c instanceof Error?c.message:String(c)}}),!1}}async function us(){const i=Wn;if(!i?.sessionId)return!1;const r=i.sessionId;return Ve.dispatch({type:"load-start",sessionId:r}),Pm(r,i.origin),!0}function Nv(i,r,c){return c?(Ve.dispatch({type:"mutation-adopt",token:i,sessionId:r,snapshot:c}),Ve.getState().snapshot===c):!1}function Rv(i,r,c){return c.sessionRef.current?.sessionId!==r||Ve.getState().mutationToken!==i?!1:(Ve.dispatch({type:"mutation-settle",token:i}),!0)}function ds(){return p.useSyncExternalStore(Ve.subscribe,Ve.getState)}function Cv(i){Ve.dispatch(i)}function Tv(){return Ve.getState()}const Am=()=>window.__CONSOLE_CONFIRMATION_TOKEN__??"";function Ev({origin:i}){const[r,c]=p.useState(null),[u,f]=p.useState(null),[m,h]=p.useState(null),[v,S]=p.useState(!1),y=ds(),N=y.snapshot,x=y.reloading,M=y.reloadError,w=N?.diagnostics??[],z=async C=>{c(C),h(null);{f(null);try{const A=await fetch(`${i}/api/operator/v1/pi/models-config`,{credentials:"include"}),D=await A.json();if(!A.ok)throw new Error(D.error?.message??"读取失败");f(D.data)}catch(A){h(A instanceof Error?A.message:String(A))}}},G=async C=>{S(!0),h(null);try{const A=await fetch(`${i}/api/operator/v1/pi/models-config`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Am()},body:JSON.stringify(C)}),D=await A.json();if(!A.ok)throw new Error(D.error?.message??"模型配置保存失败");f(D.data)}catch(A){h(A instanceof Error?A.message:String(A))}finally{S(!1)}},ae=async(C,A)=>{S(!0),h(null);try{const D=await fetch(`${i}/api/operator/v1/pi/models-config/test`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Am()},body:JSON.stringify({provider:C,modelId:A})}),J=await D.json();if(!D.ok)throw new Error(J.error?.message??"模型测试失败");return J.data?.available===!0}catch(D){return h(D instanceof Error?D.message:String(D)),!1}finally{S(!1)}},se=r==="models"?"Models":r==="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:()=>{z("models")},children:"Models"}),s.jsx("button",{type:"button",className:r==="skills"?"is-active":"",onClick:()=>c("skills"),children:"Skills"}),s.jsx("button",{type:"button",className:r==="packages"?"is-active":"",onClick:()=>c("packages"),children:"Packages"})]}),r&&s.jsx("div",{className:"oc-resource-backdrop",onMouseDown:C=>{C.target===C.currentTarget&&c(null)},children:s.jsxs("section",{className:"oc-resource-panel",role:"dialog","aria-modal":"true","aria-label":se,children:[s.jsxs("header",{className:"oc-resource-panel-head",children:[s.jsxs("div",{className:"oc-resource-panel-head-copy",children:[s.jsx("strong",{children:se}),s.jsx("span",{className:"oc-resource-panel-meta",children:r==="models"?"models.json 管理(读写,经 mutation gate)":r==="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:[w.length>0&&s.jsxs("div",{className:"oc-resource-diagnostics",children:[w.map((C,A)=>s.jsx("div",{className:`oc-resource-diagnostic${C.type==="error"?" is-error":""}`,role:C.type==="error"?"alert":void 0,children:s.jsxs("span",{children:[C.type,C.code?` ${C.code}`:"",":",C.message,C.path?`(${C.path})`:"",C.retryable?" · 可重试":""]})},A)),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{us()},children:"重试"})]}),m&&s.jsx("p",{className:"oc-resource-error",children:m}),r==="models"&&s.jsx(wv,{busy:v,data:u,onMutate:G,onTest:ae}),r==="skills"&&s.jsx(kv,{status:y.status,loadError:y.error,skills:N?.skills,hasSession:!!N?.sessionId,hasDiagnostics:w.length>0}),r==="packages"&&s.jsx(Ov,{status:y.status,loadError:y.error,packages:N?.packages,hasSession:!!N?.sessionId,hasDiagnostics:w.length>0})]}),s.jsxs("footer",{className:"oc-resource-panel-foot",children:[s.jsx("span",{className:"oc-resource-panel-meta",children:x?"正在重新加载会话…":M?`${M.code??"ERROR"}:${M.message}`:N?`revision ${N.revision} · ${N.loadedAt}`:"等待会话快照…"}),s.jsxs("div",{className:"oc-resource-panel-actions",children:[M&&s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x,onClick:()=>{os()},children:"重试"}),y.status==="error"&&s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{us()},children:"重新读取快照"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:x,onClick:()=>{os()},children:"重新加载会话"})]})]})]})})]})}function wv({busy:i,data:r,onMutate:c,onTest:u}){const[f,m]=p.useState(""),[h,v]=p.useState(""),[S,y]=p.useState(""),[N,x]=p.useState(null),M=async w=>{w.preventDefault(),!(!r||!f.trim()||!h.trim())&&(await c({expectedRevision:r.revision,action:"upsert-model",provider:f.trim(),model:{id:h.trim(),...S.trim()?{name:S.trim()}:{}}}),v(""),y(""))};return r?s.jsxs("div",{className:"oc-models-config",children:[s.jsx("p",{className:"oc-resource-panel-meta",children:"Console 不读取或写入 API key;credential 请通过 Pi CLI 配置。"}),r.providers.length===0?s.jsx("p",{className:"oc-resource-empty",children:"models.json 中暂无 Provider(真实空态;用 Pi CLI 配置)。"}):null,r.providers.map(w=>s.jsxs("article",{className:"oc-model-provider",children:[s.jsxs("div",{className:"oc-model-provider-head",children:[s.jsx("strong",{children:w.name}),s.jsx("span",{children:w.credential.configured?"credential configured":"credential 未配置"})]}),w.models.map(z=>s.jsxs("div",{className:"oc-model-row",children:[s.jsx("span",{children:z.name?`${z.name} (${z.id})`:z.id}),s.jsxs("div",{className:"oc-model-row-actions",children:[s.jsx("button",{type:"button",disabled:i,onClick:()=>{u(w.name,z.id).then(G=>x(`${w.name}/${z.id}: ${G?"可用":"不可用"}`))},children:"测试"}),s.jsx("button",{type:"button",disabled:i,onClick:()=>{window.confirm(`确认删除模型 ${w.name}/${z.id}?`)&&c({expectedRevision:r.revision,action:"remove-model",provider:w.name,model:{id:z.id}})},children:"删除"})]})]},z.id)),s.jsx("button",{type:"button",className:"oc-model-provider-remove",disabled:i,onClick:()=>{window.confirm(`确认删除 Provider ${w.name}?`)&&c({expectedRevision:r.revision,action:"remove-provider",provider:w.name})},children:"删除 Provider"})]},w.name)),N&&s.jsx("p",{className:"oc-model-test-result",children:N}),s.jsxs("form",{className:"oc-model-form",onSubmit:w=>{M(w)},children:[s.jsx("strong",{children:"新增或更新模型"}),s.jsx("input",{required:!0,placeholder:"Provider",value:f,onChange:w=>m(w.target.value)}),s.jsx("input",{required:!0,placeholder:"Model ID",value:h,onChange:w=>v(w.target.value)}),s.jsx("input",{placeholder:"显示名称(可选)",value:S,onChange:w=>y(w.target.value)}),s.jsx("button",{type:"submit",disabled:i,children:i?"保存中…":"保存模型"})]})]}):s.jsx("p",{className:"oc-resource-empty",children:"正在读取模型配置…"})}function eh(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:()=>{us()},children:"重试"})]}):i.hasSession?s.jsx("p",{className:"oc-resource-empty",children:i.emptyText}):s.jsx("p",{className:"oc-resource-empty",children:"当前没有活动会话;打开会话后显示真实资源清单(真实空态)。"})}function kv(i){const r=i.skills??[];if(i.status!=="ready"||!i.hasSession)return s.jsx(eh,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未加载任何 Skills(真实空态)"});if(r.length===0&&!i.hasDiagnostics)return s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未加载任何 Skills(真实空态,未伪造列表)。"});const c=new Map;for(const u of r){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 Av={extension:"Extensions",skill:"Skills",prompt:"Prompts",theme:"Themes"};function Dv(i){return Array.isArray(i.diagnostics)&&i.diagnostics.length>0?"error":i.enabled?i.version?"installed":"loaded":"disabled"}function Ov(i){const r=i.packages??[];return i.status!=="ready"||!i.hasSession?s.jsx(eh,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未配置 Packages(真实空态)"}):r.length===0&&!i.hasDiagnostics?s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未配置 Packages(真实空态,未伪造列表)。"}):s.jsx("div",{className:"oc-resource-lists",children:r.map(c=>{const u=Dv(c),f=new Map;for(const m of c.resolved??[]){const h=Av[m.type]??m.type,v=f.get(h)??[];v.push(m),f.set(h,v)}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((v,S)=>s.jsxs("li",{children:[s.jsx("span",{children:v.name||v.path}),s.jsxs("span",{className:"oc-resource-panel-meta",children:[v.scope,v.source?` · ${v.source}`:""]}),s.jsx("code",{children:v.path})]},`${m}:${S}`))})]},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 Ei=10,th="loop-console.operator-chat.sidebar-split.v1",Sa=45,Oi=28,Mi=70,Dm=5,Om=10;function cs(i){return Number.isFinite(i)?Math.min(Mi,Math.max(Oi,Math.round(i))):Sa}function Mv(i){if(i==null||i==="")return null;const r=Number(i);if(!Number.isFinite(r))return null;const c=Math.round(r);return c<Oi||c>Mi?null:c}function _v(i=nh()){if(!i)return Sa;try{return Mv(i.getItem(th))??Sa}catch{return Sa}}function Mm(i,r=nh()){const c=cs(i);if(!r)return c;try{r.setItem(th,String(c))}catch{}return c}function Iv(i,r,c=!1){const u=cs(i);switch(r){case"ArrowUp":return cs(u-(c?Om:Dm));case"ArrowDown":return cs(u+(c?Om:Dm));case"Home":return Oi;case"End":return Mi;case"Enter":return Sa;default:return null}}function _m(i,r,c){if(!Number.isFinite(c)||c<=0)return Sa;const u=(i-r)/c;return cs(u*100)}function nh(){try{return typeof globalThis>"u"?null:globalThis.localStorage??null}catch{return null}}const Im='a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])';function ah(i){const{open:r,containerRef:c,triggerRef:u,onEscape:f}=i,m=p.useRef(null),h=p.useRef(!1);p.useEffect(()=>{if(r){if(!h.current){const v=document.activeElement;m.current=u?.current??(v instanceof HTMLElement?v:null);const S=c.current;S&&(S.querySelector(Im)??S).focus?.(),h.current=!0}return()=>{if(!h.current)return;const v=u?.current??m.current;v&&document.contains(v)&&v.focus(),m.current=null,h.current=!1}}h.current=!1},[r,c,u]),p.useEffect(()=>{if(!r)return;const v=c.current;if(!v)return;const S=y=>{if(y.key==="Escape"){y.preventDefault(),f?.();return}if(y.key!=="Tab")return;const N=Array.from(v.querySelectorAll(Im)).filter(z=>!z.hasAttribute("disabled")&&z.tabIndex!==-1);if(N.length===0){y.preventDefault(),v.focus?.();return}const x=N[0],M=N[N.length-1],w=document.activeElement;y.shiftKey?(w===x||!v.contains(w))&&(y.preventDefault(),M.focus()):(w===M||!v.contains(w))&&(y.preventDefault(),x.focus())};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[r,c,f])}function zv(i){return[...i].sort((r,c)=>r.kind!==c.kind?r.kind==="directory"?-1:1:r.name.localeCompare(c.name,void 0,{sensitivity:"base"}))}function Lv({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 Uv({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 Hv(){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 Bv(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M3 3.5h10v2H3v-2Zm0 3.5h10v2H3V7Zm0 3.5h7V13H3v-2Z",fill:"currentColor"})})}function Gv(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M8 3v10M3 8h10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})}function qv(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M8 2.2 13 4.5v3.2c0 3.1-2.1 5.5-5 6.3-2.9-.8-5-3.2-5-6.3V4.5L8 2.2Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})})}function $v(i){const r=i.sessions.slice(0,Ei),[c,u]=p.useState(()=>_v()),[f,m]=p.useState(!1),h=p.useRef(null),v=p.useRef(null),S=i.layoutMode==="comfortable"&&i.open,y=i.layoutMode==="compact",N=i.drawerOpen&&(i.layoutMode==="compact"||i.layoutMode==="narrow");ah({open:N,containerRef:v,triggerRef:i.drawerTriggerRef,onEscape:i.onCloseDrawer});const x=p.useCallback((C,A)=>{const D=cs(C);u(D),A&&Mm(D)},[]),M=p.useCallback(C=>{const A=Iv(c,C.key,C.shiftKey);A!=null&&(C.preventDefault(),x(A,!0))},[x,c]),w=p.useCallback(C=>{C.preventDefault(),C.currentTarget.setPointerCapture(C.pointerId),m(!0);const D=h.current;if(!D)return;const J=D.getBoundingClientRect();x(_m(C.clientY,J.top,J.height),!1)},[x]),z=p.useCallback(C=>{if(!C.currentTarget.hasPointerCapture(C.pointerId))return;const A=h.current;if(!A)return;const D=A.getBoundingClientRect();x(_m(C.clientY,D.top,D.height),!1)},[x]),G=p.useCallback(C=>{C.currentTarget.hasPointerCapture(C.pointerId)&&C.currentTarget.releasePointerCapture(C.pointerId),m(!1),Mm(c)},[c]),ae=p.useCallback(()=>{x(Sa,!0)},[x]),se=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"oc-sidebar-split",ref:h,style:{"--oc-session-share":`${c}%`,"--oc-repo-share":`${100-c}%`},"data-dragging":f?"true":"false",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,disabled:i.creatingSession,"aria-busy":i.creatingSession||void 0,children:i.creatingSession?"创建中…":"新建"}),i.layoutMode==="comfortable"?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.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:i.onCloseDrawer,"aria-label":"关闭侧栏抽屉",title:"关闭",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M3.5 3.5 10.5 10.5M10.5 3.5 3.5 10.5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})})]})]}),s.jsxs("div",{className:"oc-session-scroll",children:[["active","archived"].map(C=>{const A=r.filter(D=>D.state===C);return A.length?s.jsxs("div",{className:"oc-session-group",children:[s.jsx("small",{children:C==="active"?"进行中":"已归档"}),A.map(D=>s.jsxs("div",{className:`oc-session-item${i.activeSessionId===D.sessionId?" is-active":""}`,children:[s.jsxs("button",{type:"button",className:"oc-session-main",onClick:()=>i.onActivate(D.sessionId),children:[s.jsxs("strong",{children:[D.title||D.displayTitle||"未命名对话",D.activeTurnId?" · 运行中":""]}),s.jsx("span",{children:new Date(D.updatedAt).toLocaleString()})]}),s.jsxs("div",{className:"oc-session-actions",children:[s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>{const J=window.prompt("会话名称",D.title??"");J!==null&&i.onRename(D.sessionId,J)},children:"重命名"}),s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>i.onSetState(D.sessionId,C==="active"?"archived":"active"),children:C==="active"?"归档":"恢复"}),s.jsx("button",{type:"button",className:"oc-session-menu oc-session-delete",onClick:()=>i.onDelete(D.sessionId),children:"删除"})]})]},D.sessionId))]},C):null}),r.length===0?s.jsx("p",{className:"oc-tree-empty",children:"暂无会话,点击上方新建。"}):null]})]}),s.jsx("div",{className:"oc-sidebar-separator",role:"separator","aria-orientation":"horizontal","aria-valuemin":Oi,"aria-valuemax":Mi,"aria-valuenow":c,"aria-label":"调整会话与仓库高度比例",tabIndex:0,onKeyDown:M,onPointerDown:w,onPointerMove:z,onPointerUp:G,onPointerCancel:G,onDoubleClick:ae}),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(sh,{entries:i.tree[""]??[],tree:i.tree,expanded:i.expanded,depth:0,onToggle:i.onToggleDir,onInsert:i.onInsert,onPreview:i.onPreview})})]})]}),s.jsx(Ev,{origin:i.origin})]});return s.jsxs(s.Fragment,{children:[y?s.jsxs("nav",{className:"oc-sidebar-rail","aria-label":"紧凑侧栏",children:[s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"打开会话与仓库",title:"会话与仓库","aria-expanded":N,onClick:()=>N?i.onCloseDrawer():i.onOpenDrawer(),children:s.jsx(Bv,{})}),s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":i.creatingSession?"创建会话中":"新建会话",title:i.creatingSession?"创建中…":"新建会话",onClick:i.onCreate,disabled:i.creatingSession,"aria-busy":i.creatingSession||void 0,children:s.jsx(Gv,{})}),s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"治理入口",title:"治理",onClick:()=>N?i.onCloseDrawer():i.onOpenDrawer(),children:s.jsx(qv,{})})]}):null,i.layoutMode==="comfortable"?s.jsx("aside",{className:`oc-sidebar${S?"":" is-collapsed"}`,"aria-label":"会话与仓库",children:S?se: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"})})})}):null,N?s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"oc-overlay-backdrop","aria-label":"关闭侧栏遮罩",onClick:i.onCloseDrawer}),s.jsx("aside",{ref:v,className:"oc-sidebar oc-sidebar-drawer","aria-label":"会话与仓库抽屉",role:"dialog","aria-modal":"true",tabIndex:-1,children:se})]}):null]})}function sh(i){const r=p.useMemo(()=>zv(i.entries),[i.entries]);return r.length?s.jsx("ul",{className:"oc-tree",role:i.depth===0?"tree":"group",children:r.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(Lv,{open:f}),s.jsx(Uv,{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(sh,{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(Yv,{entry:c,depth:i.depth,onInsert:i.onInsert,onPreview:i.onPreview})},c.path)})}):s.jsx("p",{className:"oc-tree-empty",children:"此目录为空或没有可安全浏览的文件。"})}function Yv(i){const r=p.useRef(null);return p.useEffect(()=>()=>{r.current!==null&&window.clearTimeout(r.current)},[]),s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-file",style:{paddingLeft:`${8+i.depth*12}px`},title:"单击插入引用;双击预览",onClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{i.onInsert(i.entry.path),r.current=null},220)},onDoubleClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=null,i.onPreview(i.entry.path)},children:[s.jsx("span",{className:"oc-tree-chevron-spacer","aria-hidden":"true"}),s.jsx(Hv,{}),s.jsx("span",{className:"oc-tree-label",children:i.entry.name})]})}function Kv(i){const r=i.previews.find(c=>c.path===i.activePath);return!r&&!i.loading?null:s.jsxs(s.Fragment,{children:[r&&s.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${r.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===r.path,className:c.path===r.path?"is-active":"",onClick:()=>i.onActivate(c.path),children:c.path},c.path))}),s.jsxs("span",{children:[r.bytes," bytes",r.truncated?" · 已截断":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>i.onClose(r.path),children:"关闭预览"})]}),s.jsx("pre",{children:s.jsx("code",{children:r.content})})]}),i.loading&&s.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const mo=[{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 Xv(i){const r=i.trim().split(/\s+/,1)[0]?.toLowerCase();if(!r?.startsWith("/"))return;const c=mo.find(u=>u.command===r);return c?{command:c.command,action:c.action}:{command:r,action:"unknown"}}const zm={comfortableMin:620,compactMin:480};function Qv(i){return!Number.isFinite(i)||i<0?"extra-compact":i>=zm.comfortableMin?"comfortable":i>=zm.compactMin?"compact":"extra-compact"}function Vv(i){return`is-landing-${i}`}const Zv=[{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 lh(i){const r=i.readiness==="setup-required",c=!!i.disabled||r,u=i.density??"comfortable",f=i.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",m=i.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return s.jsxs("div",{className:`oc-empty ${Vv(u)}`,role:"status","data-landing-density":u,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:f}),s.jsx("p",{children:m})]})]}),s.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:Zv.map(h=>s.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>i.onSuggest(h.prompt),disabled:c,children:[s.jsx("strong",{children:h.label}),s.jsx("span",{children:u==="extra-compact"?h.hint.replace(/[,,].*$/,""):h.hint})]},h.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:c,"aria-busy":i.disabled||void 0,children:r?"需先完成 Pi setup":i.disabled?"创建中…":"新建空白对话"}):null]})}function Jv(i){const{artifact:r}=i;return s.jsxs("section",{className:"oc-artifact-card","aria-label":`${r.kind} artifact`,children:[s.jsxs("header",{children:[s.jsx("strong",{children:r.title??r.artifactId}),s.jsx("span",{children:r.kind})]}),r.summary&&s.jsx("p",{children:r.summary}),r.reportText&&s.jsx("pre",{children:r.reportText}),r.htmlPreview&&s.jsx("iframe",{title:`${r.title??r.artifactId} preview`,sandbox:"",srcDoc:r.htmlPreview}),r.inspectHref&&s.jsx("a",{href:r.inspectHref,children:"查看详情"})]})}function Fv({card:i,origin:r,sessionId:c}){const[u,f]=p.useState(!1),[m,h]=p.useState(),v=async()=>{f(!0),h(void 0);try{const x=i.gateType==="dag-run"?i.state==="prepared"?"dag-confirm":"dag-run":i.gateType==="mutation"?"mutation-apply":"contract-apply",M=i.gateType==="dag-run"?{confirmationId:i.confirmationId,...i.state==="prepared"?{humanGateToken:i.humanGateToken}:{}}:{receiptId:i.receiptId,humanGateToken:i.humanGateToken},w=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/human-gate/${x}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},body:JSON.stringify(M)}),z=await w.json();if(!w.ok)throw new Error(z.error?.message??`HTTP ${w.status}`)}catch(x){h(x instanceof Error?x.message:String(x))}finally{f(!1)}},S=i.state==="prepared"||i.gateType==="dag-run"&&i.state==="confirmed",y=i.gateType==="contract-apply"?"Contract apply":i.gateType==="mutation"?"Mutation":"DAG run",N=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(x=>s.jsx("li",{children:x},x))})]}),i.dagSpine&&i.dagSpine.length>0&&s.jsxs("div",{children:[s.jsx("b",{children:"DAG spine"}),s.jsx("ol",{children:i.dagSpine.map(x=>s.jsx("li",{children:s.jsx("code",{children:x})},x))})]}),s.jsxs("footer",{children:[s.jsx("a",{href:i.inspectHref,children:"Inspect"}),s.jsx("button",{className:"btn btn-primary",type:"button",disabled:!S||u,onClick:()=>{v()},children:u?"提交中…":N})]}),m&&s.jsx("div",{className:"oc-human-gate-error",children:m})]})}const tn="loop-console.operator-chat.active-session.v1",Wv="loop-console.operator-chat.default-landing.v1";function wi(i){const r=i?.trim().toLowerCase();if(r==="chat")return"chat";if(r==="tasks")return"tasks"}function ih(i){const r=i?.trim().toLowerCase();if(r==="chat"||r==="tasks"||r==="recovery"||r==="night"||r==="models"||r==="settings")return r}function rh(i){const r=c=>i.get(c)?.trim()||void 0;return{...r("taskId")?{taskId:r("taskId")}:{},...r("dagRunId")?{dagRunId:r("dagRunId")}:{},...r("fromNodeId")?{fromNodeId:r("fromNodeId")}:{},...r("featureId")?{featureId:r("featureId")}:{}}}function ch(i){const r=String(i??"").replace(/^#/,"");if(!r)return null;const c=r.indexOf("?"),u=c>=0?r.slice(0,c):r,f=c>=0?r.slice(c+1):"",m=(u||"/").split("?")[0]||"/";if(m==="/"||m==="")return null;const h=m.replace(/^\//,"").split("/")[0],v=ih(h);return v?{workspace:v,...rh(new URLSearchParams(f))}:null}function Pv(i){const r=new URLSearchParams(i.search),c=i.hash.startsWith("#")?i.hash.slice(1):i.hash,u=new URLSearchParams(c),f=ih(r.get("workspace")??r.get("landing")??u.get("workspace"));return f?{workspace:f,...rh(r)}:null}function ey(i){if(!i)return;const r=ch(i.hash);if(r)return r.workspace;const c=new URLSearchParams(i.search),u=wi(c.get("landing")??c.get("workspace"));if(u)return u;const f=i.hash.startsWith("#")?i.hash.slice(1):i.hash;return wi(new URLSearchParams(f).get("workspace"))}function oh(i){return ey(i.location)??wi(i.storage?.getItem(Wv))??wi(i.env)??"tasks"}function uh(i,r={}){const c=new URLSearchParams;for(const[m,h]of Object.entries(r))h?.trim()&&c.set(m,h.trim());const u=c.toString(),f=`/${i}`;return u?`${f}?${u}`:f}function ty(i,r={}){return`#${uh(i,r)}`}function ny(i){return ch(i.hash)??Pv(i)}function ay(i){const{operation:r}=i,c=r.inspectHref.startsWith("/")?`${i.origin}${r.inspectHref}`:r.inspectHref,u=r.state==="failed"||r.state==="timed-out"||r.state==="needs-reconcile",f=(h,v)=>{i.onNavigateWorkspace?i.onNavigateWorkspace(h,v):window.location.assign(ty(h,v))},m=[r.taskId?["task",r.taskId]:void 0,r.dagRunId?["dag",r.dagRunId]:void 0,r.featureId?["feature",r.featureId]:void 0,r.workerRunId?["worker",r.workerRunId]:void 0].filter(h=>!!h);return s.jsxs("section",{className:`oc-operation-card is-${r.state}`,"aria-label":`Operation ${r.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:r.action})]}),s.jsx("span",{className:`oc-operation-state is-${r.state}`,children:r.state})]}),s.jsx("div",{className:"oc-operation-id",children:s.jsx("code",{children:r.operationId})}),m.length>0&&s.jsx("div",{className:"oc-operation-identities",children:m.map(([h,v])=>s.jsxs("span",{children:[s.jsx("b",{children:h})," ",v]},`${h}:${v}`))}),r.controller&&s.jsxs("div",{className:"oc-operation-controller",children:["controller: ",r.controller]}),r.summaryPreview&&s.jsx("pre",{className:"oc-operation-preview",children:r.summaryPreview}),r.stderrPreview&&s.jsx("pre",{className:"oc-operation-preview is-error",children:r.stderrPreview}),r.stdoutPreview&&s.jsx("pre",{className:"oc-operation-preview",children:r.stdoutPreview}),s.jsxs("footer",{className:"oc-operation-actions",children:[s.jsx("a",{className:"btn btn-ghost",href:c,target:"_blank",rel:"noreferrer",children:"Inspect"}),r.taskId&&s.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("tasks",{taskId:r.taskId}),children:"打开 Task Ops"}),r.dagRunId&&s.jsx("a",{className:"btn btn-ghost",href:`${i.origin}/inspect/#/dag/${encodeURIComponent(r.dagRunId)}`,target:"_blank",rel:"noreferrer",children:"打开 Run / Inspect"}),u&&(r.dagRunId||r.taskId)&&s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("recovery",{taskId:r.taskId,dagRunId:r.dagRunId}),children:"打开 Recovery"}),s.jsx("time",{dateTime:r.updatedAt,children:new Date(r.updatedAt).toLocaleString()})]})]})}function sy(i){const{interview:r,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:r.state})]}),r.question&&s.jsxs("div",{className:"oc-interview-bubble",children:[s.jsx("strong",{children:r.question.text}),s.jsxs("p",{children:["建议:",r.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:"接受建议"})]})]}),r.draft&&s.jsxs("details",{open:!0,children:[s.jsxs("summary",{children:["TaskContractDraftV1 · ",r.draftSha256?.slice(0,12)]}),s.jsx("pre",{children:JSON.stringify(r.draft,null,2)})]}),r.assessment&&s.jsxs("div",{className:`oc-assessment${r.assessment.fresh?" is-fresh":""}`,children:[s.jsxs("strong",{children:["完整性:",r.assessment.outcome]}),(r.assessment.missingFields??[]).length>0&&s.jsxs("p",{children:["缺失:",r.assessment.missingFields?.join("、")]})]}),r.taskKindRecommendation&&s.jsxs("div",{className:"oc-task-kind-card",children:[s.jsx("span",{children:"taskKind 建议"}),s.jsx("strong",{children:r.taskKindRecommendation}),s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>i.onConfirmTaskKind(),children:"由我确认"}),s.jsx("small",{children:"模型不能代替人类确认。"})]}),r.confirmedTaskKind&&s.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",s.jsx("strong",{children:r.confirmedTaskKind})]})]})}function ly(i){const r=[],c=i.split(`
|
|
11
|
-
`);let u=0,f=[];const m=()=>{const h=f.join(`
|
|
12
|
-
`).trimEnd();h&&r.push({type:"text",text:h}),f=[]};for(;u<c.length;){const h=c[u],v=h.match(/^\s*(`{3,}|~{3,})\s*([^\s`~]*)\s*$/);if(v){m();const S=v[1][0],y=(v[2]??"").trim(),N=[];for(u+=1;u<c.length;){const x=c[u];if(x.trim()===S.repeat(v[1].length)){u+=1;break}if(new RegExp(`^\\s*${S}{3,}`).test(x)){u+=1;break}N.push(x),u+=1}r.push({type:"code",lang:y,text:N.join(`
|
|
13
|
-
`)});continue}f.push(h),u+=1}return m(),r}const iy=/(`[^`]+`)|(\*\*[^*]+\*\*)|(\*[^*]+\*|_[^_]+_)|(~~[^~]+~~)|(\[[^\]]+\]\([^)\s]+\))/;function ll(i,r){const c=[];let u=i,f=0;for(;u.length>0;){const m=iy.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],v=`${r}-i${f++}`;if(h.startsWith("`"))c.push(s.jsx("code",{children:h.slice(1,-1)},v));else if(h.startsWith("**"))c.push(s.jsx("strong",{children:h.slice(2,-2)},v));else if(h.startsWith("*")||h.startsWith("_"))c.push(s.jsx("em",{children:h.slice(1,-1)},v));else if(h.startsWith("~~"))c.push(s.jsx("s",{children:h.slice(2,-2)},v));else if(h.startsWith("[")){const S=h.match(/^\[([^\]]+)\]\(([^)\s]+)\)$/);S?c.push(s.jsx("a",{href:S[2],target:"_blank",rel:"noreferrer noopener",children:S[1]},v)):c.push(h)}u=u.slice(m.index+h.length)}return c}function ry({lang:i,text:r}){const[c,u]=p.useState(!1),f=()=>{navigator.clipboard?.writeText(r).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:r})})]})}function cy(i,r){const c=[],u=i.split(`
|
|
14
|
-
`);let f=0,m=0;for(;m<u.length;){const v=u[m].trim();if(v===""){m+=1;continue}const S=v.match(/^(#{1,4})\s+(.*)$/);if(S){const x=`h${S[1].length}`;c.push(s.jsx(x,{children:ll(S[2],`${r}-h${f}`)},`${r}-h${f++}`)),m+=1;continue}if(/^(---|\*\*\*|___)\s*$/.test(v)){c.push(s.jsx("hr",{},`${r}-hr${f++}`)),m+=1;continue}if(v.startsWith(">")){const N=[];for(;m<u.length&&u[m].trim().startsWith(">");)N.push(u[m].trim().replace(/^>\s?/,"")),m+=1;c.push(s.jsx("blockquote",{children:N.map((x,M)=>s.jsx("p",{children:ll(x,`${r}-bq${f}-${M}`)},M))},`${r}-bq${f++}`));continue}if(/^[-*+]\s+/.test(v)){const N=[];for(;m<u.length&&/^\s*[-*+]\s+/.test(u[m]);)N.push(u[m].trim().replace(/^[-*+]\s+/,"")),m+=1;c.push(s.jsx("ul",{children:N.map((x,M)=>s.jsx("li",{children:ll(x,`${r}-ul${f}-${M}`)},M))},`${r}-ul${f++}`));continue}if(/^\d+\.\s+/.test(v)){const N=[];for(;m<u.length&&/^\s*\d+\.\s+/.test(u[m]);)N.push(u[m].trim().replace(/^\d+\.\s+/,"")),m+=1;c.push(s.jsx("ol",{children:N.map((x,M)=>s.jsx("li",{children:ll(x,`${r}-ol${f}-${M}`)},M))},`${r}-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:ll(y.join(" "),`${r}-p${f}`)},`${r}-p${f++}`))}return c}function oy({text:i}){const r=ly(i);return s.jsx("div",{className:"oc-md",children:r.map((c,u)=>c.type==="code"?s.jsx(ry,{lang:c.lang,text:c.text},`cb-${u}`):s.jsx("div",{children:cy(c.text,`tx-${u}`)},`tx-${u}`))})}function uy(){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 dy(){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 fy(){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 my(){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 dh(){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 hy(){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 fh(i){const[r,c]=p.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${r?" is-copied":""}`,"aria-label":r?"已复制":"复制消息",title:r?"已复制":"复制",onClick:u,children:r?s.jsx(dy,{}):s.jsx(uy,{})})}function Lm(i){const{message:r,streaming:c,activeAssistantId:u}=i,f=r.role==="user",m=f?"你":"π",h=f?"你":"助手",v=!f&&c&&u!==null&&r.id===u,S=v&&r.text.length===0,y=r.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:Vm(r.createdAt)}),y&&s.jsx(fh,{text:r.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:r.text}):s.jsx(oy,{text:r.text}):S?s.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,v&&y&&s.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function py(i){const r=[],c=[];let u,f=[];const m=h=>{for(const v of f)v.assistantMessageId||(v.assistantMessageId=h),v.turnId||(v.turnId=u);f=[]};for(const h of i){const v=Date.parse(h.at)||Date.now();if(h.role==="user"){u=`restored-${h.id}`,f=[],r.push({id:h.id,role:"user",text:h.text,createdAt:v});continue}if(h.role==="assistant"){u||(u=`restored-${h.id}`),r.push({id:h.id,role:"assistant",text:h.text,createdAt:v}),m(h.id);continue}if(h.role==="tool"){u||(u=`restored-tool-${h.id}`);const S={id:h.toolCallId||h.id,toolName:h.toolName||"tool",status:h.isError===!0?"error":"ok",resultText:h.text,result:h.text,createdAt:v,finishedAt:v,turnId:u};c.push(S),f.push(S)}}return{messages:r,toolCalls:c}}function gy(i){const r=i.messages.filter(v=>v.role==="user"||v.role==="assistant"),c=[];let u=null;const f=v=>{const S={key:v,assistants:[],tools:[],live:!1};return c.push(S),S};for(const v of r){if(v.role==="user"){u=f(`user-${v.id}`),u.user=v;continue}u||(u=f(`assistant-${v.id}`)),u.assistants.push(v)}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 v of c)for(const S of v.assistants)h.set(S.id,v);for(const v of i.toolCalls)if(v.assistantMessageId){const S=h.get(v.assistantMessageId);if(S){S.tools.push(v),m.add(v.id);continue}}for(const v of i.toolCalls)if(!m.has(v.id)&&v.turnId){const S=c.find(N=>N.tools.some(x=>x.turnId===v.turnId)||N.key===`turn-${v.turnId}`||N.user&&`restored-${N.user.id}`===v.turnId);if(S){S.tools.push(v),m.add(v.id);continue}const y=c.find(N=>v.turnId===`restored-${N.user?.id}`||N.assistants.some(x=>v.turnId===`restored-${x.id}`));if(y){y.tools.push(v),m.add(v.id);continue}}for(const v of i.toolCalls){if(m.has(v.id))continue;const S=c.find((y,N)=>{const x=y.user?.createdAt??y.assistants[0]?.createdAt??0,w=c[N+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return v.createdAt>=x&&v.createdAt<w});S?(S.tools.push(v),m.add(v.id)):c.length>0&&(c[c.length-1].tools.push(v),m.add(v.id))}for(const v of c)v.tools.sort((S,y)=>S.createdAt-y.createdAt),v.live=i.streaming&&i.activeAssistantId!==null&&v.assistants.some(S=>S.id===i.activeAssistantId);return c}function vy(i){const r=i.length,c=i.filter(m=>m.status==="error").length,u=i.filter(m=>m.status==="running").length,f=[`执行过程 · ${r} 工具`];return c>0?f.push(`${c} 出错`):u>0&&f.push("运行中"),{count:r,errorCount:c,runningCount:u,label:f.join(" · ")}}function mh(i){const{entry:r}=i,[c,u]=p.useState(r.status==="error"),[f,m]=p.useState(!1),h=r.status==="running"?"运行中":r.status==="error"?"出错":"完成",v=`is-${r.status}`,S=hv(r.args),y=vv(r.createdAt,r.finishedAt),N=gv(r.resultText,f?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return s.jsxs("div",{className:`oc-tool ${r.status==="error"?"is-error":""} ${r.status==="running"?"is-running":""}`,children:[s.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":c,onClick:()=>u(x=>!x),children:[s.jsx(dh,{}),s.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:s.jsx(hy,{})}),s.jsx("span",{className:"oc-tool-name",children:r.toolName}),S&&s.jsx("span",{className:"oc-tool-args",children:S}),y!==void 0&&s.jsxs("span",{className:"oc-tool-duration",children:[y,"s"]}),s.jsx("span",{className:`oc-tool-status ${v}`,children:h})]}),c&&s.jsxs("div",{className:"oc-tool-body",children:[r.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:pv(r.args)})]}),r.resultText!==void 0&&s.jsxs("div",{className:"oc-tool-section",children:[s.jsx("div",{className:"oc-tool-label",children:r.status==="error"?"错误":"结果"}),s.jsx("pre",{className:"oc-tool-code",children:N.text}),N.truncated&&!f&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>m(!0),children:"展开全部"})]}),r.status==="running"&&r.resultText===void 0&&r.args===void 0&&s.jsx("div",{className:"oc-tool-section",children:s.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function yy(i){const{tools:r,defaultOpen:c}=i,[u,f]=p.useState(c),m=vy(r);return p.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(dh,{}),s.jsx("span",{children:m.label})]}),u&&s.jsx("div",{className:"oc-process-inline-body",children:r.map(h=>s.jsx(mh,{entry:h},h.id))})]})}function by(i){const{scrollContainerRef:r,messagesEndRef:c,onScroll:u,hasThread:f,readiness:m,streaming:h,streamingAssistantId:v,messagesCount:S,visibleCount:y,onLoadMore:N,turnGroups:x,interview:M,humanGateCards:w,operationCards:z,artifactCards:G,origin:ae,sessionId:se}=i;return s.jsxs("div",{ref:r,className:`oc-messages${f?" has-thread":" is-empty"}`,onScroll:u,children:[f?null:s.jsx(lh,{mode:"empty-session",readiness:m,disabled:h,onSuggest:i.onSuggest}),f&&S>y&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:N,children:"加载更早消息"}),f&&x.map((C,A)=>{const D=C.user??C.assistants[0],J=A>0?x[A-1].user??x[A-1].assistants[0]:void 0,L=!!D&&(!J||so(J.createdAt)!==so(D.createdAt)),E=C.assistants[C.assistants.length-1];return s.jsxs("div",{className:"oc-turn-group",children:[L&&D&&s.jsx("div",{className:"oc-day-sep",children:so(D.createdAt)}),C.user&&s.jsx(Lm,{message:C.user,streaming:h,activeAssistantId:v}),C.tools.length>0&&s.jsx(yy,{tools:C.tools,defaultOpen:C.live}),E&&s.jsx(Lm,{message:E,streaming:h,activeAssistantId:v})]},C.key)}),M&&s.jsx(sy,{interview:M,interviewAnswer:i.interviewAnswer,onAnswerChange:i.onInterviewAnswerChange,onAnswer:i.onAnswerInterview,onConfirmTaskKind:i.onConfirmTaskKind}),w.map(C=>s.jsx(Fv,{card:C,origin:ae,sessionId:se},C.cardId)),z.map(C=>s.jsx(ay,{operation:C,origin:ae,onNavigateWorkspace:i.onNavigateWorkspace},C.operationId)),G.map(C=>s.jsx(Jv,{artifact:C},C.artifactId)),s.jsx("div",{ref:c})]})}function il(i){return i>=1e6?`${(i/1e6).toFixed(1)}M`:i>=1e3?`${(i/1e3).toFixed(1)}k`:i.toLocaleString()}function Um(i){const r=[],c=i.inputTokens??0,u=i.outputTokens??0,f=i.cacheReadTokens??0,m=i.cacheWriteTokens??0,h=i.cost??0;if(c>0&&r.push(`${il(c)} in`),u>0&&r.push(`${il(u)} out`),f>0&&r.push(`${il(f)} cache R`),m>0&&r.push(`${il(m)} cache W`),h>0&&r.push(h>=.01?`$${h.toFixed(2)}`:"<$0.01"),r.length===0){const v=i.totalTokens??0;return v>0?`${il(v)} tokens`:"—"}return r.join(" · ")}const xy={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function Sy(i,r){const c=r.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 jy(i,r){const c=new Set,u=[],f=m=>{c.has(m)||(c.add(m),u.push({value:m,label:xy[m]??m,...m==="auto"&&r?{effective:r}:{}}))};f("auto");for(const m of i)f(m);return u}function ki(i,r){return`${i}/${r}`}function ro(i){return{...i.modelProvider&&i.modelId?{model:{provider:i.modelProvider,modelId:i.modelId}}:{},...i.thinkingLevel?{thinkingLevel:i.thinkingLevel}:{}}}function hh(i,r){return{...i,model:r.model??i.model,thinkingLevel:r.thinkingLevel??i.thinkingLevel}}function Ny(i,r){const c=hh(i,r);return c.model?.provider===i.model?.provider&&c.model?.modelId===i.model?.modelId&&c.thinkingLevel===i.thinkingLevel}function Ry(){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 Hm(i){const r=ds(),[c,u]=p.useState(!1),[f,m]=p.useState(""),[h,v]=p.useState(0),S=p.useRef(null),y=p.useRef(null),N=r.snapshot,x=r.status==="loading",M=r.status==="error"?r.error:null,w=N?(N.models??[]).map(C=>({provider:C.provider,id:C.id,...C.name?{name:C.name}:{},...C.hasCredentials!==void 0?{hasCredentials:C.hasCredentials}:{}})):i.models,z=p.useMemo(()=>Sy(w,f),[w,f]),G=p.useMemo(()=>z.flatMap(C=>C.models),[z]);p.useEffect(()=>{c&&(m(""),v(0),window.setTimeout(()=>y.current?.focus(),0))},[c]),p.useEffect(()=>{if(!c)return;const C=D=>{const J=S.current;J&&D.target instanceof Node&&!J.contains(D.target)&&u(!1)},A=D=>{D.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",C),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",C),document.removeEventListener("keydown",A)}},[c]);const ae=C=>{if(i.disabled)return;const A=G[C];A&&(u(!1),i.onSelect(A.provider,A.id))},se=C=>{if(C.key==="ArrowDown"){C.preventDefault(),v(A=>G.length?(A+1)%G.length:0);return}if(C.key==="ArrowUp"){C.preventDefault(),v(A=>G.length?(A-1+G.length)%G.length:0);return}if(C.key==="Enter"){C.preventDefault(),ae(h);return}if(C.key==="Escape"){C.preventDefault(),u(!1);return}};return s.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:S,children:[s.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":c,title:"选择模型",disabled:i.disabled,onClick:()=>u(C=>!C),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(Ry,{})]}),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:C=>{m(C.target.value),v(0)},onKeyDown:se}),x&&s.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),M&&s.jsxs("div",{className:"oc-select-status is-error",children:[s.jsxs("span",{children:[M.code?`${M.code}:`:"",M.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{us()},children:"重试"})]}),!x&&!M&&z.length===0&&s.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),z.map(C=>s.jsxs("div",{className:"oc-model-group",children:[s.jsx("div",{className:"oc-model-group-head",children:C.provider}),C.models.map(A=>{const D=ki(A.provider,A.id),J=D===i.activeModelRef,L=G[h]===A;return s.jsxs("button",{type:"button",role:"option","aria-selected":J,disabled:i.disabled,className:`oc-select-option oc-model-option${L?" is-highlighted":""}${J?" is-active":""}`,onMouseDown:E=>E.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(A.provider,A.id))},children:[s.jsxs("span",{className:"oc-model-option-name",children:[A.name?`${A.name} · `:"",A.id]}),J&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},D)})]},C.provider))]})]})}function Cy(){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 Ty(i){const r=ds(),[c,u]=p.useState(!1),[f,m]=p.useState(0),h=p.useRef(null),v=i.effectiveLevel??r.snapshot?.selection?.effectiveThinkingLevel,S=r.snapshot?.thinkingLevels?.length?r.snapshot.thinkingLevels.map(M=>M.value):void 0,y=p.useMemo(()=>jy(S??i.levels,v),[S,i.levels,v]);p.useEffect(()=>{c&&m(0)},[c]),p.useEffect(()=>{if(!c)return;const M=z=>{const G=h.current;G&&z.target instanceof Node&&!G.contains(z.target)&&u(!1)},w=z=>{z.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",w),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",w)}},[c]);const N=M=>{if(i.disabled)return;const w=y[M];w&&(u(!1),i.onSelect(w.value))},x=M=>{if(M.key==="ArrowDown"){M.preventDefault(),m(w=>y.length?(w+1)%y.length:0);return}if(M.key==="ArrowUp"){M.preventDefault(),m(w=>y.length?(w-1+y.length)%y.length:0);return}if(M.key==="Enter"){M.preventDefault(),N(f);return}if(M.key==="Escape"){M.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(M=>!M),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(Cy,{})]}),c&&s.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:x,children:y.map((M,w)=>{const z=M.value===i.activeValue,G=w===f;return s.jsxs("button",{type:"button",role:"option","aria-selected":z,disabled:i.disabled,className:`oc-select-option oc-thinking-option${G?" is-highlighted":""}${z?" is-active":""}`,onMouseDown:ae=>ae.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(M.value))},children:[s.jsx("span",{className:"oc-thinking-option-label",children:M.label}),M.value==="auto"&&M.effective?s.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",M.effective]}):null,z&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},M.value)})})]})}function Ri(i){const r=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:r?`${r.length} 项`:"未投影"})]}),r===void 0?s.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):r.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:i.emptyText}):s.jsx("ul",{className:"oc-runtime-context-resources",children:r.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 Ey=p.forwardRef(function({open:r,onToggle:c,onClose:u,context:f},m){const h=ds(),v=h.reloading,S=h.reloadError,y=Array.isArray(f.resources.activeTools)?f.resources.activeTools:[],N=typeof f.resources.activeToolCount=="number"?f.resources.activeToolCount:y.length,x=f.systemPrompt.text??f.systemPrompt.summary??"",M=f.systemPrompt.charCount??x.length,w=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${r?" is-active":""}`,"aria-expanded":r,"aria-controls":"oc-runtime-context-panel",onClick:c,children:"注入上下文"}),r&&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:ki(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 ",M.toLocaleString()," 字"]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["工具 ",N]}),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),"…"]})]}),x?s.jsx(fh,{text:x}):null]}),s.jsx("pre",{className:"oc-runtime-context-text",children:x||"(空)"})]}),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(Ri,{title:"Context files",items:w.contextFiles?.map(z=>({name:z.path,path:z.path,description:`${z.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件(真实空态)"}),s.jsx(Ri,{title:"Skills",items:w.skills,emptyText:"该 session 未加载任何 Skills(真实空态)"}),s.jsx(Ri,{title:"Extensions",items:w.extensions,emptyText:"该 session 未加载任何 Extensions(真实空态)"}),s.jsx(Ri,{title:"Packages",items:w.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:[N," 个"]})]}),y.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):s.jsx("ul",{className:"oc-runtime-context-tools",children:y.map(z=>s.jsx("li",{children:s.jsx("code",{children:z})},z))})]}),Array.isArray(w.diagnostics)&&w.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:[w.diagnostics.length," 条"]})]}),s.jsx("ul",{className:"oc-runtime-context-resources",children:w.diagnostics.map((z,G)=>s.jsxs("li",{children:[s.jsxs("span",{className:`oc-runtime-context-diag is-${z.type??"warning"}`,children:[z.type,": ",z.message]}),z.path?s.jsx("code",{children:z.path}):null]},G))})]}),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:v?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:v,onClick:()=>{os()},children:"重新加载会话"}),S&&s.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[S.code?`${S.code}:`:"",S.message,s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{os()},children:"重试"})]})]})]})]})});function wy(i){const{catalog:r,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:[r.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:[r.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:[r.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:r.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:km(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:r.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:km(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 ky(i){const{composer:r,streaming:c,hasThread:u}=i,f=!!i.compactControls,[m,h]=p.useState(!1),v=p.useRef(null),S=ds(),y=S.reloading,N=S.reloadError,M=S.mutationBusy||y||c;p.useEffect(()=>{f||h(!1)},[f]),p.useEffect(()=>{if(!m)return;const A=J=>{const L=v.current;L&&J.target instanceof Node&&!L.contains(J.target)&&h(!1)},D=J=>{J.key==="Escape"&&h(!1)};return document.addEventListener("mousedown",A),document.addEventListener("keydown",D),()=>{document.removeEventListener("mousedown",A),document.removeEventListener("keydown",D)}},[m]);const w=p.useCallback(()=>{r.setInput(""),r.setShortcutOpen(!1),os()},[r.setInput,r.setShortcutOpen]),z=p.useCallback(A=>{const D=r.isComposingNow()||A.nativeEvent.isComposing,J=r.recentlyComposedNow();if(A.key==="Enter"&&!A.shiftKey&&!D&&!J){if(r.shortcutOpen&&r.filteredShortcuts.length>0){if((r.filteredShortcuts[r.shortcutIndex]??r.filteredShortcuts[0])?.command==="/reload"){A.preventDefault(),w();return}}else if(r.input.trim()==="/reload"){A.preventDefault(),w();return}}i.onKeyDown(A)},[r.isComposingNow,r.recentlyComposedNow,r.shortcutOpen,r.filteredShortcuts,r.shortcutIndex,r.input,w,i.onKeyDown]),G=p.useCallback(A=>{if(A==="/reload"){w();return}i.onRunShortcut(A)},[w,i.onRunShortcut]),ae=p.useCallback(()=>{if(r.input.trim()==="/reload"){w();return}i.onSend(r.input)},[r.input,w,i.onSend]),se=(()=>{const A=i.activeModelRef||"模型",D=A.split("/"),J=D[D.length-1]||A;return J.length>18?`${J.slice(0,16)}…`:J})(),C=s.jsxs(s.Fragment,{children:[f?null:s.jsx(Hm,{models:i.models,activeModelRef:i.activeModelRef,triggerLabel:i.activeModelRef||"选择模型",disabled:M,onSelect:(A,D)=>i.onSwitchRuntime({provider:A,modelId:D})}),s.jsx(Ty,{levels:i.thinkingLevels,activeValue:i.activeThinkingLevel||"auto",triggerLabel:i.activeThinkingLevel||"auto",disabled:M,onSelect:A=>i.onSwitchRuntime({thinkingLevel:A})}),s.jsxs("span",{className:"oc-usage",title:Um(i.usage),children:[c?"运行中":"空闲",i.unread>0?` · ${i.unread} 未读`:""," · ",Um(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(wy,{catalog:i.toolCatalog,open:i.toolsOpen,onToggle:i.onToggleTools,onClose:i.onCloseTools,menuRef:i.toolsMenuRef}):null,i.processSummary&&s.jsxs("button",{type:"button",ref:i.processTriggerRef,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(Ey,{ref:i.runtimeContextMenuRef,open:i.runtimeContextOpen,onToggle:i.onToggleRuntimeContext,onClose:i.onCloseRuntimeContext,context:i.runtimeContext})]});return s.jsx("div",{className:`oc-composer${f?" is-compact-controls":""}`,children:s.jsxs("div",{className:"oc-composer-inner",children:[r.fileOptions.length>0&&s.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:r.fileOptions.map(A=>s.jsx("button",{type:"button",role:"option",onMouseDown:D=>D.preventDefault(),onClick:()=>r.insertFileReference(A),children:s.jsxs("code",{children:["@",A]})},A))}),r.pendingImages.length>0&&s.jsx("div",{className:"oc-attachment-list",children:r.pendingImages.map(A=>s.jsxs("span",{children:[A.name,s.jsx("button",{type:"button","aria-label":`移除 ${A.name}`,onClick:()=>r.removeImage(A),children:"×"})]},A.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:A=>{r.addImagesFromFiles(Array.from(A.target.files??[]).slice(0,4)),A.target.value=""}})]}),f?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"oc-composer-primary-model",children:s.jsx(Hm,{models:i.models,activeModelRef:i.activeModelRef,triggerLabel:se,disabled:M,onSelect:(A,D)=>i.onSwitchRuntime({provider:A,modelId:D})})}),s.jsxs("div",{className:"oc-composer-more",ref:v,children:[s.jsx("button",{type:"button",className:`oc-composer-more-btn${m?" is-open":""}`,"aria-expanded":m,"aria-haspopup":"menu","aria-label":"更多控制",title:"更多",onClick:()=>h(A=>!A),children:"更多"}),m?s.jsx("div",{className:"oc-composer-more-menu",role:"menu","aria-label":"低频控制",children:C}):null]})]}):s.jsxs(s.Fragment,{children:[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"})," 换行"]})]}),y&&s.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),r.shortcutOpen&&r.filteredShortcuts.length>0&&s.jsx("div",{className:"oc-shortcut-palette",role:"listbox","aria-label":"Chat shortcuts",children:r.filteredShortcuts.map((A,D)=>s.jsxs("button",{type:"button",role:"option","aria-selected":D===r.shortcutIndex,className:D===r.shortcutIndex?"is-active":"",onMouseDown:J=>J.preventDefault(),onClick:()=>G(A.command),children:[s.jsx("code",{children:A.command}),s.jsxs("span",{children:[s.jsx("strong",{children:A.label}),s.jsx("small",{children:A.description})]})]},A.command))}),s.jsxs("div",{className:`oc-composer-shell${c?" is-busy":""}`,children:[s.jsx("textarea",{ref:r.textareaRef,className:"oc-textarea",value:r.input,rows:3,placeholder:c?"正在生成回复…(可直接发起新问题)":u?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:A=>r.handleInputChange(A.target.value),onKeyDown:z,onCompositionStart:r.onCompositionStart,onCompositionEnd:r.onCompositionEnd,disabled:c}),c?s.jsx("button",{type:"button",className:"oc-stop",title:"停止生成","aria-label":"停止生成",onClick:i.onStop,children:s.jsx(my,{})}):s.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:ae,disabled:!r.input.trim()&&r.pendingImages.length===0||y,children:s.jsx(fy,{})})]}),N&&s.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[s.jsxs("span",{children:[N.code?`${N.code}:`:"",N.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{os()},children:"重试"})]}),f?null:s.jsx("div",{className:"oc-runtime-controls",children:C})]})})}function Ay(i){const{toolCalls:r,onClose:c,overlay:u=!1}=i,f=p.useRef(null);return ah({open:u,containerRef:f,triggerRef:i.triggerRef,onEscape:c}),s.jsxs("aside",{ref:f,id:"oc-process-panel",className:`oc-process${u?" is-process-overlay":""}`,"aria-label":"全部工具",role:u?"dialog":void 0,"aria-modal":u?!0:void 0,tabIndex:-1,children:[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:r.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:r.length===0?s.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):r.map((m,h)=>s.jsxs("div",{className:`oc-process-item${h===0?" is-first":""}${h===r.length-1?" is-last":""}${m.status==="error"?" is-error":""}${m.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:Vm(m.createdAt)}),s.jsx("div",{className:"oc-process-body",children:s.jsx(mh,{entry:m})})]},m.id))})]})}function Dy(){const i=p.useRef(null),r=p.useRef(!1),c=p.useRef(null),u=p.useRef(new Map),f=p.useRef(new Set),m=p.useRef(null),h=p.useRef(null),v=p.useRef(0),S=p.useRef(null),y=p.useRef(new Set),N=p.useRef(new Set),x=p.useRef(new Map),M=p.useRef(null),w=p.useRef(null),z=p.useRef(new Set),G=p.useRef(!1),ae=p.useRef(0);return p.useMemo(()=>({sessionRef:i,streamingRef:r,abortRef:c,sessionAbortControllersRef:u,inlineStreamSessionIdsRef:f,assistantIdRef:m,lastEventIdRef:h,sessionGenerationRef:v,eventsStreamStateRef:S,settledTurnIdsRef:y,seenEventIdsRef:N,turnAssistantIdsRef:x,reconnectAbortRef:M,activeTurnIdRef:w,usageResponseKeysRef:z,isComposingRef:G,compositionEndedAtRef:ae}),[i,r,c,u,f,m,h,v,S,y,N,x,M,w,z,G,ae])}const Oy=["operation","contract","dag","report","html"];function My(i){const r=i.artifact;if(!r||typeof r!="object")return;const c=r;if(!(c.schemaVersion!==1||typeof c.artifactId!="string"||!c.artifactId||typeof c.kind!="string"||!Oy.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 _y(i,r){const c=i.findIndex(u=>u.artifactId===r.artifactId);return c<0?[...i,r]:i.map((u,f)=>f===c?{...u,...r}:u)}function Iy(i){if(!i||typeof i!="object")return;const r=i;if(!(r.schemaVersion!==1||typeof r.cardId!="string"||r.gateType!=="contract-apply"&&r.gateType!=="dag-run"||typeof r.taskId!="string"||typeof r.state!="string"||typeof r.expiresAt!="string"||typeof r.inspectHref!="string"||typeof r.previewHash!="string"))return r}function zy(i,r){const c=i.findIndex(f=>f.cardId===r.cardId);if(c<0)return[...i,r];const u=[...i];return u[c]=r,u}function Ly(i,r){const c=i.findIndex(u=>u.operationId===r.operationId);return c<0?[...i,r]:i.map((u,f)=>f===c?{...u,...r}:u)}function Uy(i){const r=i.operation;if(!r||typeof r!="object")return;const c=r;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 Hy(i){const{refs:r,onReconcile:c,setError:u,setProcessOpen:f,setInterview:m,setHumanGateCards:h,setArtifactCards:v,setStreaming:S,setStreamingAssistantId:y,setUnread:N,setOperationCards:x,setUsage:M,setMessages:w,setToolCalls:z}=i;return(G,ae,se,C)=>{if(C?.generation!==void 0&&r.sessionGenerationRef.current!==C.generation)return;const A=C?.replay===!0;if(G==="stream_ready")return;if(G==="reconcile"){const E=typeof ae.reason=="string"?ae.reason:"cursor_expired";c?.({reason:E,...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 D=ae.data&&typeof ae.data=="object"?ae.data:ae,J=typeof ae.turnId=="string"?ae.turnId:void 0;if(J&&(G==="agent_start"||G==="message_update")&&r.settledTurnIdsRef.current.has(J))return;let L=se;if(J){const E=r.turnAssistantIdsRef.current.get(J);E?L=E:r.turnAssistantIdsRef.current.set(J,se)}if(G==="interview-turn"){m(E=>({...E??{},interviewSessionId:typeof D.interviewSessionId=="string"?D.interviewSessionId:E?.interviewSessionId,taskId:typeof D.taskId=="string"?D.taskId:E?.taskId,state:typeof D.state=="string"?D.state:E?.state,question:D.question&&typeof D.question=="object"?D.question:void 0}));return}if(G==="draft"){m(E=>({...E??{},taskId:typeof D.taskId=="string"?D.taskId:E?.taskId,draft:D.draft&&typeof D.draft=="object"?D.draft:E?.draft,draftSha256:typeof D.draftSha256=="string"?D.draftSha256:E?.draftSha256,taskKindRecommendation:typeof D.taskKindRecommendation=="string"?D.taskKindRecommendation:E?.taskKindRecommendation}));return}if(G==="assessment"){m(E=>({...E??{},assessment:D}));return}if(G==="taskKind-confirmed"){m(E=>({...E??{},confirmedTaskKind:typeof D.taskKind=="string"?D.taskKind:E?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(G==="human-gate-card"){const E=Iy(D);E&&h(Y=>zy(Y,E));return}if(G==="artifact-ref"){const E=My(D);E&&v(Y=>_y(Y,E));return}if(G==="agent_start"){if(A&&J!==void 0&&J!==r.activeTurnIdRef.current)return;J&&(r.settledTurnIdsRef.current.delete(J),r.activeTurnIdRef.current=J),r.streamingRef.current=!0,S(!0),y(L);return}if(G==="agent_settled"||G==="agent_end"){if(J&&r.settledTurnIdsRef.current.add(J),G==="agent_end")return;J===r.activeTurnIdRef.current&&(r.activeTurnIdRef.current=null),r.streamingRef.current=!1,S(!1),y(null),G==="agent_settled"&&!A&&typeof document<"u"&&document.hidden&&N(E=>E+1),w(E=>E.filter(Y=>!(Y.id===L&&Y.role==="assistant"&&!Y.text.trim()))),z(E=>E.map(Y=>Y.status==="running"&&Y.assistantMessageId===L?{...Y,status:"error",finishedAt:Date.now()}:Y));return}if(G==="operation-ref"||G==="operation-status"){const E=Uy(D);E&&x(Y=>Ly(Y,E));return}if(G==="usage"){if(A)return;const E=D,Y=typeof E.responseKey=="string"&&E.responseKey?E.responseKey:void 0;if(Y&&r.usageResponseKeysRef.current.has(Y))return;Y&&r.usageResponseKeysRef.current.add(Y),M(ne=>{const te=E.inputTokens??0,X=E.outputTokens??0,W=E.cacheReadTokens??0,ce=E.cacheWriteTokens??0,K=E.totalTokens??te+X+W+ce;return{inputTokens:ne.inputTokens+te,outputTokens:ne.outputTokens+X,cacheReadTokens:ne.cacheReadTokens+W,cacheWriteTokens:ne.cacheWriteTokens+ce,totalTokens:ne.totalTokens+K,cost:E.cost===void 0?ne.cost:(ne.cost??0)+E.cost}});return}if(G==="message_update"||G==="message_end"){if(A)return;const E=typeof D.text=="string"?D.text:"";w(Y=>Y.some(te=>te.id===L)?Y.map(te=>te.id===L?{...te,text:E}:te):[...Y,{id:L,role:"assistant",text:E,createdAt:Date.now()}])}else if(G==="tool_call"){const E=typeof D.toolCallId=="string"?D.toolCallId:cl("t"),Y=typeof D.toolName=="string"?D.toolName:"tool",ne=typeof D.argsPreview=="string"?D.argsPreview:"{}",te=Date.now();z(X=>X.some(W=>W.id===E)?X.map(W=>W.id===E?{...W,args:ne,status:"running",turnId:J??W.turnId,assistantMessageId:L}:W):[...X,{id:E,toolName:Y,args:ne,status:"running",createdAt:te,turnId:J,assistantMessageId:L}])}else if(G==="tool_result"){const E=typeof D.toolCallId=="string"?D.toolCallId:cl("r"),Y=typeof D.toolName=="string"?D.toolName:"tool",ne=D.isError===!0,te=typeof D.resultPreview=="string"?D.resultPreview:"{}",X=Date.now();ne&&f(!0),z(W=>W.find(K=>K.id===E)?W.map(K=>K.id===E?{...K,result:te,resultText:te,status:ne?"error":"ok",finishedAt:X,turnId:J??K.turnId,assistantMessageId:K.assistantMessageId??L}:K):[...W,{id:E,toolName:Y,result:te,resultText:te,status:ne?"error":"ok",createdAt:X,finishedAt:X,turnId:J,assistantMessageId:L}])}else G==="error"&&u(typeof D.message=="string"?D.message:"chat error")}}const lo={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function By(i){const{origin:r,refs:c,sessionId:u,setError:f,setProcessOpen:m,onReconcile:h}=i,[v,S]=p.useState([]),[y,N]=p.useState([]),[x,M]=p.useState([]),[w,z]=p.useState([]),[G,ae]=p.useState(50),[se,C]=p.useState(0),[A,D]=p.useState([]),[J,L]=p.useState(null),[E,Y]=p.useState(null),[ne,te]=p.useState(!1),[X,W]=p.useState(lo),[ce,K]=p.useState(!1),[ie,j]=p.useState(null),[I]=p.useState(!1),_=p.useMemo(()=>Hy({refs:c,onReconcile:h,setError:f,setProcessOpen:m,setInterview:L,setHumanGateCards:D,setArtifactCards:z,setStreaming:K,setStreamingAssistantId:j,setUnread:C,setOperationCards:M,setUsage:W,setMessages:S,setToolCalls:N}),[c,h,f,m]),oe=p.useCallback((le,de,ue)=>{if(ue?.targetSessionId&&c.sessionRef.current?.sessionId!==ue.targetSessionId||ue?.generation!==void 0&&c.sessionGenerationRef.current!==ue.generation)return null;const Ee=le.split(`
|
|
15
|
-
`);let ke="message",Ke="",yt=null;for(const bt of Ee)bt.startsWith("event: ")?ke=bt.slice(7).trim():bt.startsWith("data: ")?Ke+=bt.slice(6):bt.startsWith("id: ")&&(yt=bt.slice(4).trim());if(!Ke)return yt;let at;try{at=JSON.parse(Ke)}catch{return yt}const st=yt??(typeof at.eventId=="string"?at.eventId:null);if(st){if(c.seenEventIdsRef.current.has(st))return st;c.seenEventIdsRef.current.add(st)}return _(ke,at,de,ue),yt??st},[_,c]),P=p.useCallback(async(le,de)=>{const ue=de?.background===!0;ue||te(!0);try{const Ee=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(le)}/context`,{credentials:"include"});if(!Ee.ok)return;const ke=await Ee.json();ke.context&&c.sessionRef.current?.sessionId===le&&Y(Ke=>yv(Ke,ke.context)?Ke:ke.context)}finally{ue||te(!1)}},[r,c]);p.useEffect(()=>{u&&P(u)},[u,P]),p.useEffect(()=>{if(!u)return;const le=window.setTimeout(()=>{P(u,{background:!0})},350);return()=>window.clearTimeout(le)},[u,x,A,J,P]);const b=p.useMemo(()=>v.filter(le=>le.role!=="system"||I).slice(-G),[v,I,G]);p.useEffect(()=>{const le=()=>{document.hidden||C(0)};return document.addEventListener("visibilitychange",le),()=>document.removeEventListener("visibilitychange",le)},[]);const k=p.useMemo(()=>{if(y.length===0)return null;const le=y.filter(Ke=>Ke.status==="running"),de=y.filter(Ke=>Ke.status==="error"),ue=le[le.length-1];let Ee="完成",ke="ok";return de.length>0?(Ee=`${de.length} 出错`,ke="error"):le.length>0&&(Ee=ue?`正在调用 ${ue.toolName}`:"运行中",ke="running"),{count:y.length,statusLabel:Ee,statusKind:ke}},[y]),Z=p.useMemo(()=>gy({messages:b,toolCalls:y,streaming:ce,activeAssistantId:ie}),[b,y,ce,ie]),$=p.useCallback(()=>{S([]),N([]),M([]),D([]),z([]),L(null),Y(null),W(lo),K(!1),j(null),C(0),ae(50),c.usageResponseKeysRef.current=new Set},[c]),me=p.useCallback(le=>{S(le.messages),N(le.toolCalls),M([]),D([]),z([]),Y(null),L(null),W(lo),c.usageResponseKeysRef.current=new Set,K(le.streaming),j(null),C(0),ae(50)},[c]),re=p.useCallback(async le=>{try{const de=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(le)}`,{credentials:"include"});if(!de.ok)return!1;const ue=await de.json();if(!ue.session||c.sessionRef.current?.sessionId!==le)return!1;const Ee=ue.session.activeTurnId??null;return c.activeTurnIdRef.current=Ee,c.streamingRef.current=!!Ee,c.lastEventIdRef.current=ue.lastEventId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,S((ue.session.messages??[]).filter(ke=>ke.role==="user"||ke.role==="assistant").map(ke=>({id:ke.id,role:ke.role,text:ke.text,createdAt:Date.parse(ke.at)||Date.now()}))),j(null),!0}catch{return!1}},[r,c,S,j]);return{messages:v,setMessages:S,toolCalls:y,setToolCalls:N,operationCards:x,artifactCards:w,historyLimit:G,setHistoryLimit:ae,unread:se,humanGateCards:A,interview:J,setInterview:L,taskContext:E,contextLoading:ne,usage:X,streaming:ce,setStreaming:K,streamingAssistantId:ie,setStreamingAssistantId:j,visibleMessages:b,turnGroups:Z,processSummary:k,applyChatSseEvent:_,applySseBlock:oe,loadTaskContext:P,resetForNewSession:$,applyActivatedSession:me,recoverSession:re}}class Gy{constructor(r){this.options=r,this.fetchFn=r.fetchFn??fetch,this.backoffMs=r.backoffMs??1e3,this.deadlineMs=r.deadlineMs??3e4}options;eligible=new Set;controllers=new Map;fetchFn;backoffMs;deadlineMs;markEligible(r){this.eligible.add(r)}startIfEligible(r){if(!this.eligible.delete(r)||this.controllers.has(r))return;const c=new AbortController;this.controllers.set(r,c),this.run(r,c)}cancel(r){this.eligible.delete(r),this.controllers.get(r)?.abort(),this.controllers.delete(r)}reconcile(r){const c=new Set(r);for(const u of this.controllers.keys())c.has(u)||this.cancel(u)}dispose(){for(const r of this.controllers.values())r.abort();this.controllers.clear(),this.eligible.clear()}async run(r,c){let u;const f=new Set;let m=!1;const h=window.setTimeout(()=>{m=!0,c.abort()},this.deadlineMs);try{for(;!c.signal.aborted;){try{const v={Accept:"text/event-stream"};u&&(v["Last-Event-ID"]=u);const S=await this.fetchFn(`${this.options.origin}/api/operator/v1/chat/sessions/${encodeURIComponent(r)}/events`,{headers:v,credentials:"include",signal:c.signal});if(S.status===404||!S.body)return;if(!S.ok)throw new Error(`HTTP ${S.status}`);const y=S.body.getReader(),N=new TextDecoder;let x="";for(;;){const{done:M,value:w}=await y.read();if(M||c.signal.aborted)break;x+=N.decode(w,{stream:!0});const z=x.split(`
|
|
16
|
-
|
|
17
|
-
`);x=z.pop()??"";for(const G of z){const ae=G.split(`
|
|
18
|
-
`).find(C=>C.startsWith("id: "))?.slice(4);if(ae&&(u=ae),!ae||f.has(ae)||!G.includes("event: session_title"))continue;const se=G.split(`
|
|
19
|
-
`).find(C=>C.startsWith("data: "))?.slice(6);if(se)try{const C=JSON.parse(se),A=C.data?.title?.trim();if(!A)continue;if(f.add(ae),!this.options.hasSession(r)||(this.options.onTitle(r,{title:A,automatic:!!C.data?.automatic}),C.data?.automatic))return}catch{}}}}catch{if(c.signal.aborted)return}c.signal.aborted||await qy(this.backoffMs,c.signal)}}finally{window.clearTimeout(h),this.controllers.get(r)===c&&this.controllers.delete(r),(m||!this.options.hasSession(r))&&this.options.refresh()}}}function qy(i,r){return new Promise(c=>{const u=window.setTimeout(m,i),f=()=>m();function m(){window.clearTimeout(u),r.removeEventListener("abort",f),c()}r.addEventListener("abort",f,{once:!0})})}async function $y(i){if(i.creatingRef?.current)throw new Error("CREATE_SESSION_IN_FLIGHT");i.creatingRef&&(i.creatingRef.current=!0),i.setCreatingSession?.(!0);try{const r=await(i.fetchFn??fetch)(`${i.origin}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},credentials:"include",body:JSON.stringify(i.options??{})});if(!r.ok){const h=await r.json().catch(()=>({}));throw new Error(h.error?.message??`HTTP ${r.status}`)}const c=await r.json();if(!c.session)throw new Error("创建会话响应缺少 durable session");const u=c.session,f={sessionId:u.sessionId,...ro(u)},m=[u,...i.sessionListRef.current.filter(h=>h.sessionId!==u.sessionId)].slice(0,Ei);return i.sessionListRef.current=m,i.setSessionList(m),i.titleWatcher?.markEligible(u.sessionId),i.refreshSessionList(),f}finally{i.creatingRef&&(i.creatingRef.current=!1),i.setCreatingSession?.(!1)}}function Yy(i){const{origin:r,refs:c,setSession:u,thread:f,composer:m,browser:h,setError:v,setProcessOpen:S,setAutoScroll:y}=i,{applyActivatedSession:N,resetForNewSession:x,setMessages:M}=f,{setInput:w,setPendingImages:z}=m,{setPreviews:G,setActivePreviewPath:ae}=h,[se,C]=p.useState([]),A=p.useRef([]);A.current=se;const D=p.useRef(null),[J,L]=p.useState(!1),E=p.useRef(!1),Y=p.useRef(0),ne=p.useCallback(()=>{c.sessionGenerationRef.current+=1,c.abortRef.current?.abort(),c.reconnectAbortRef.current?.abort();for(const _ of c.sessionAbortControllersRef.current.values())_.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,x(),w(""),z([]),G([]),ae(null),S(!1),y(!0)},[c,x,w,z,G,ae,S,y]),te=p.useCallback(async()=>{try{const _=await fetch(`${r}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!_.ok)return;const oe=(await _.json()).sessions??[],P=oe.slice(0,Ei),b=oe.slice(Ei);if(C(P),b.length===0)return;await Promise.all(b.map(Z=>fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(Z.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Ut()}}).catch(()=>{})));const k=c.sessionRef.current?.sessionId;k&&b.some(Z=>Z.sessionId===k)&&(Y.current+=1,c.sessionRef.current=null,ne(),u(null),window.localStorage.removeItem(tn))}catch{}},[r,c,ne,u]),X=p.useCallback(async _=>{if(window.confirm("确定删除该会话?删除后不可恢复。"))try{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Ut()}})).ok){v("删除会话失败");return}D.current?.cancel(_),c.sessionRef.current?.sessionId===_&&(Y.current+=1,c.sessionRef.current=null,ne(),u(null),window.localStorage.removeItem(tn)),await te()}catch(oe){v(oe instanceof Error?oe.message:String(oe))}},[r,c,u,ne,te,v]),W=p.useCallback(async _=>{const oe=++Y.current;try{const P=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{credentials:"include"}),b=await P.json();if(!P.ok||!b.session)throw new Error(b.error?.message??"会话不可用");if(oe!==Y.current)return;const k={sessionId:b.session.sessionId,...ro(b.session)};ne(),c.sessionRef.current=k,c.streamingRef.current=!!b.session.activeTurnId,c.activeTurnIdRef.current=b.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(k),c.assistantIdRef.current=null,c.abortRef.current=c.sessionAbortControllersRef.current.get(_)??null,z([]),G([]),w(b.session.composerDraft??"");const Z=py(b.session.messages??[]);N({messages:Z.messages,toolCalls:Z.toolCalls,streaming:!!b.session.activeTurnId}),window.localStorage.setItem(tn,_),ae(null)}catch(P){if(oe!==Y.current)return;v(P instanceof Error?P.message:String(P))}},[r,c,u,z,G,w,N,ne,ae,v]);p.useEffect(()=>{te()},[te]),D.current||(D.current=new Gy({origin:r,hasSession:_=>A.current.some(oe=>oe.sessionId===_),onTitle:(_,oe)=>{C(P=>P.map(b=>b.sessionId!==_||oe.automatic&&b.title?b:oe.automatic?{...b,title:oe.title}:{...b,displayTitle:oe.title}))},refresh:te}));const ce=p.useCallback(_=>D.current?.startIfEligible(_),[]);p.useEffect(()=>{D.current?.reconcile(se.filter(_=>_.state!=="archived"&&!_.title).map(_=>_.sessionId))},[se]),p.useEffect(()=>()=>D.current?.dispose(),[]),p.useEffect(()=>{let _=!1;const oe=window.localStorage.getItem(tn);if(!oe)return;const P=++Y.current;return(async()=>{try{const b=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(oe)}`,{credentials:"include"});if(!b.ok){window.localStorage.removeItem(tn);return}const k=await b.json();if(_||P!==Y.current||!k.session)return;const Z={sessionId:k.session.sessionId,...ro(k.session)};c.sessionGenerationRef.current+=1,c.sessionRef.current=Z,c.activeTurnIdRef.current=k.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(Z),w(k.session.composerDraft??""),M((k.session.messages??[]).filter($=>$.role==="user"||$.role==="assistant").map($=>({id:$.id,role:$.role,text:$.text,createdAt:Date.parse($.at)||Date.now()})))}catch{}})(),()=>{_=!0}},[r,c,u,w,M]);const K=p.useCallback(_=>$y({origin:r,sessionListRef:A,setSessionList:C,titleWatcher:D.current,refreshSessionList:te,options:_,setCreatingSession:L,creatingRef:E}),[r,te]),ie=p.useCallback(async _=>{if(E.current)return null;const oe=++Y.current;v(null);try{const P=await K(_);return oe!==Y.current?null:(ne(),c.sessionRef.current=P,window.localStorage.setItem(tn,P.sessionId),u(P),P)}catch(P){if(oe!==Y.current)return null;const b=P instanceof Error?P.message:String(P);return b!=="CREATE_SESSION_IN_FLIGHT"&&v(b),null}},[c,u,v,ne,K]),j=p.useCallback(async()=>{const _=c.sessionRef.current;if(!(!_||c.streamingRef.current))try{const oe=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_.sessionId)}/compact`,{method:"POST",credentials:"include",headers:{"x-loop-console-confirmation":Ut()}}),P=await oe.json().catch(()=>({}));if(!oe.ok){v(P.error?.message??"上下文压缩失败");return}v(null)}catch(oe){v(oe instanceof Error?oe.message:"上下文压缩失败")}},[r,c,v]);return{sessionList:se,creatingSession:J,activateSession:W,refreshSessionList:te,deleteSession:X,createSession:ie,updateSession:async(_,oe)=>{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ut()},body:JSON.stringify(oe)})).ok){v("会话更新失败");return}await te(),oe.state==="archived"&&D.current?.cancel(_),oe.state==="archived"&&c.sessionRef.current?.sessionId===_&&(Y.current+=1,c.sessionRef.current=null,ne(),u(null),window.localStorage.removeItem(tn))},watchSessionTitle:ce,compactSession:j}}function rs(i){const r=(i??"").trim();return r?/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(r)?"控制器版本已变更(Console 启动后代码被重新编译)。请重启 Console 后再试,一次会话中途不要升级/重建控制器。":/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(r)?"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。":/reopened Pi sessionId mismatch/i.test(r)?"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。":/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(r)?"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。":/force-required|requires --force/i.test(r)?"该终态需要强制 Discard。请确认后勾选强制再试。":r:"操作失败"}function Ky(i){return i.split(`
|
|
20
|
-
`).find(r=>r.startsWith("event: "))?.slice(7).trim()??"message"}function Xy(){return new Promise(i=>window.setTimeout(i,25))}function Qy(i){const{origin:r,refs:c,session:u,thread:f,composer:m,setError:h,setAutoScroll:v,recoveryVersion:S=0,watchSessionTitle:y}=i,{applySseBlock:N,setMessages:x,setStreaming:M,setStreamingAssistantId:w,streaming:z}=f,{setInput:G,setPendingImages:ae}=m,se=p.useCallback(async(L,E,Y)=>{for(;!Y.aborted;){const ne=c.eventsStreamStateRef.current;if(!ne||ne.sessionId!==L||ne.generation!==E)return;ne.ready=!1;try{const te={Accept:"text/event-stream"},X=c.lastEventIdRef.current;X&&(te["Last-Event-ID"]=X);const W=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}/events`,{headers:te,credentials:"include",signal:Y});if(!W.ok||!W.body){if(W.status===404)return;await ao(2e3,Y);continue}const ce=W.body.getReader(),K=new TextDecoder;let ie="",j=!0;const I=cl("a");for(;;){const{done:oe,value:P}=await ce.read();if(oe)break;ie+=K.decode(P,{stream:!0});const b=ie.split(`
|
|
21
|
-
|
|
22
|
-
`);ie=b.pop()??"";for(const k of b){if(Ky(k)==="stream_ready"){const me=c.eventsStreamStateRef.current;me?.sessionId===L&&me.generation===E&&(me.ready=!0),j=!1;continue}const Z=c.assistantIdRef.current??I,$=N(k,Z,{replay:j,targetSessionId:L,generation:E});$&&(c.lastEventIdRef.current=$)}}const _=c.eventsStreamStateRef.current;_?.sessionId===L&&_.generation===E&&(_.ready=!1),await ao(1e3,Y)}catch{if(Y.aborted)return;await ao(2e3,Y)}}},[r,c,N]),C=p.useCallback((L,E)=>{const Y=c.eventsStreamStateRef.current;if(Y?.sessionId===L&&Y.generation===E&&c.reconnectAbortRef.current)return;c.reconnectAbortRef.current?.abort();const ne=new AbortController;c.reconnectAbortRef.current=ne,c.eventsStreamStateRef.current={sessionId:L,generation:E,ready:!1},se(L,E,ne.signal)},[c,se]),A=p.useCallback(async(L,E)=>{C(L,E);const Y=Date.now()+5e3;for(;Date.now()<Y;){const ne=c.eventsStreamStateRef.current;if(ne?.sessionId===L&&ne.generation===E&&ne.ready)return;if(c.sessionRef.current?.sessionId!==L||c.sessionGenerationRef.current!==E)throw new Error("会话已切换");await Xy()}throw new Error("事件连接未就绪,请检查 Console 连接后重试")},[c,C]),D=p.useCallback(async(L,E)=>{const Y=c.sessionRef.current,ne=c.sessionGenerationRef.current;if(!Y||!L.trim()&&E.length===0||c.streamingRef.current)return;try{await A(Y.sessionId,ne)}catch(ce){c.sessionRef.current?.sessionId===Y.sessionId&&c.sessionGenerationRef.current===ne&&h(rs(ce instanceof Error?ce.message:String(ce)));return}if(c.sessionRef.current?.sessionId!==Y.sessionId||c.sessionGenerationRef.current!==ne)return;const te={id:cl("u"),role:"user",text:L.trim(),createdAt:Date.now()},X=cl("a");x(ce=>[...ce,te,{id:X,role:"assistant",text:"",createdAt:Date.now()}]),G(""),v(!0),h(null),c.streamingRef.current=!0,c.assistantIdRef.current=X,M(!0),w(X);const W=new AbortController;c.abortRef.current=W,c.sessionAbortControllersRef.current.set(Y.sessionId,W);try{const ce=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(Y.sessionId)}/turns`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},credentials:"include",body:JSON.stringify({text:L.trim()||"请查看附件图片。",images:E.map(({type:ie,mimeType:j,data:I})=>({type:ie,mimeType:j,data:I}))}),signal:W.signal}),K=await ce.json().catch(()=>({}));if(!ce.ok||!K.turnId)throw new Error(K.error?.message??`HTTP ${ce.status}`);if(y(Y.sessionId),c.sessionRef.current?.sessionId!==Y.sessionId||c.sessionGenerationRef.current!==ne)return;c.activeTurnIdRef.current=K.turnId,c.turnAssistantIdsRef.current.set(K.turnId,X),ae([])}catch(ce){ce?.name!=="AbortError"&&c.sessionRef.current?.sessionId===Y.sessionId&&c.sessionGenerationRef.current===ne&&(h(rs(ce instanceof Error?ce.message:String(ce))),c.streamingRef.current=!1,c.assistantIdRef.current=null,M(!1),w(null),x(K=>K.filter(ie=>ie.id!==X||ie.text.trim())))}finally{c.sessionAbortControllersRef.current.delete(Y.sessionId),c.abortRef.current===W&&(c.abortRef.current=null)}},[r,c,A,x,G,v,h,M,w,ae,y]),J=p.useCallback(()=>{c.abortRef.current?.abort(),c.activeTurnIdRef.current&&c.settledTurnIdsRef.current.add(c.activeTurnIdRef.current),c.streamingRef.current=!1,c.activeTurnIdRef.current=null,M(!1),w(null),x(L=>L.filter(E=>!(E.id===c.assistantIdRef.current&&E.role==="assistant"&&!E.text.trim()))),c.assistantIdRef.current=null},[c,M,w,x]);return p.useEffect(()=>{if(!u||!z)return;const L=u.sessionId,E=c.sessionGenerationRef.current;let Y=!1;const ne=async()=>{try{const ce=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}/state`,{credentials:"include"}),K=await ce.json().catch(()=>({}));if(Y||!ce.ok||c.sessionRef.current?.sessionId!==L||c.sessionGenerationRef.current!==E)return;const ie=K.state?.activeTurnId??null;if(c.activeTurnIdRef.current=ie,ie!==null||!c.streamingRef.current)return;const j=c.assistantIdRef.current;c.streamingRef.current=!1,c.assistantIdRef.current=null,M(!1),w(null),x(I=>I.filter(_=>!(_.id===j&&_.role==="assistant"&&!_.text.trim())))}catch{}},te=()=>{document.visibilityState==="visible"&&ne()},X=()=>{ne()},W=window.setInterval(()=>{ne()},15e3);return document.addEventListener("visibilitychange",te),window.addEventListener("online",X),()=>{Y=!0,window.clearInterval(W),document.removeEventListener("visibilitychange",te),window.removeEventListener("online",X)}},[r,c,u,z,M,w,x]),p.useEffect(()=>{if(!u)return;const L=c.sessionGenerationRef.current;return C(u.sessionId,L),()=>{const E=c.eventsStreamStateRef.current;E?.sessionId===u.sessionId&&E.generation===L&&(c.reconnectAbortRef.current?.abort(),c.reconnectAbortRef.current=null,c.eventsStreamStateRef.current=null)}},[u,S,c,C]),{sendPrompt:D,handleStop:J,openEventsStream:se}}function Vy(i){const{origin:r,refs:c,thread:u,setError:f}=i,{interview:m,setInterview:h}=u,[v,S]=p.useState(""),y=p.useCallback(async()=>{const M=c.sessionRef.current;if(!M)return;const w=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!w)return;const z=await fetch(`${r}/api/operator/v1/chat/sessions/${M.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},credentials:"include",body:JSON.stringify({taskId:w})}),G=await z.json();if(!z.ok){f(G.error?.message??`HTTP ${z.status}`);return}h({interviewSessionId:G.interview?.sessionId,taskId:w,state:G.interview?.state,question:G.question,draft:G.draft?.draft,draftSha256:G.draft?.draftSha256,assessment:G.assessment})},[r,c,h,f]),N=p.useCallback(async M=>{const w=c.sessionRef.current;if(!w||!m?.interviewSessionId||!m.question)return;const z=await fetch(`${r}/api/operator/v1/chat/sessions/${w.sessionId}/interviews/${m.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},credentials:"include",body:JSON.stringify({questionId:m.question.id,response:M,...M==="override"?{text:v}:{}})}),G=await z.json();if(!z.ok){f(G.error?.message??`HTTP ${z.status}`);return}h(ae=>({...ae??{},state:G.interview?.state,question:G.question,draft:G.draft?.draft,draftSha256:G.draft?.draftSha256,assessment:G.assessment,taskKindRecommendation:G.taskKindRecommendation??ae?.taskKindRecommendation})),S("")},[r,c,m,v,h,f]),x=p.useCallback(async()=>{const M=c.sessionRef.current;if(!M||!m?.interviewSessionId||!m.taskKindRecommendation)return;const w=await fetch(`${r}/api/operator/v1/chat/sessions/${M.sessionId}/interviews/${m.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Ut()},credentials:"include",body:JSON.stringify({taskKind:m.taskKindRecommendation})}),z=await w.json();if(!w.ok){f(z.error?.message??`HTTP ${w.status}`);return}h(G=>({...G??{},confirmedTaskKind:G?.taskKindRecommendation,taskKindRecommendation:void 0,draft:z.draft?.draft,draftSha256:z.draft?.draftSha256,assessment:z.assessment}))},[r,c,m,h,f]);return{interviewAnswer:v,setInterviewAnswer:S,startInterview:y,answerInterview:N,confirmTaskKind:x}}function Zy(i){const{origin:r,refs:c,sessionId:u,setError:f}=i,[m,h]=p.useState({}),[v,S]=p.useState(new Set),[y,N]=p.useState(null),[x,M]=p.useState([]),[w,z]=p.useState(null),[G,ae]=p.useState(!1),se=p.useCallback(async(J="")=>{try{N(null);const L=await fetch(`${r}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(J)}`,{credentials:"include"}),E=await L.json();if(!L.ok)throw new Error(E.error?.message??"无法读取仓库目录");h(Y=>({...Y,[J]:E.data?.entries??[]}))}catch(L){N(L instanceof Error?L.message:String(L))}},[r]);p.useEffect(()=>{se()},[se]);const C=p.useCallback(async J=>{ae(!0);try{const L=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(J)}`,{credentials:"include"}),E=await L.json();if(!L.ok||!E.data)throw new Error(E.error?.message??"无法预览文件");M(Y=>{const ne=[...Y.filter(X=>X.path!==E.data.path),E.data],te=c.sessionRef.current?.sessionId;return te&&window.localStorage.setItem(`${tn}.previews.${te}`,JSON.stringify(ne.map(X=>X.path))),ne}),z(E.data.path)}catch(L){f(L instanceof Error?L.message:String(L))}finally{ae(!1)}},[r,c,f]);p.useEffect(()=>{if(!u)return;let J=[];try{const L=JSON.parse(window.localStorage.getItem(`${tn}.previews.${u}`)??"[]");Array.isArray(L)&&(J=L.filter(E=>typeof E=="string").slice(0,10))}catch{}J.length&&Promise.all(J.map(async L=>{const E=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(L)}`,{credentials:"include"});if(E.ok)return(await E.json()).data})).then(L=>{if(c.sessionRef.current?.sessionId!==u)return;const E=L.filter(Y=>!!Y);M(E),z(E.at(-1)?.path??null)})},[r,u,c]);const A=p.useCallback(J=>{S(L=>{const E=new Set(L);return E.has(J)?E.delete(J):E.add(J),E}),m[J]||se(J)},[m,se]),D=p.useCallback(J=>{M(L=>{const E=L.filter(Y=>Y.path!==J);return u&&window.localStorage.setItem(`${tn}.previews.${u}`,JSON.stringify(E.map(Y=>Y.path))),E}),z(L=>L===J?x.find(E=>E.path!==J)?.path??null:L)},[x,u]);return{tree:m,expandedDirs:v,treeError:y,previews:x,activePreviewPath:w,setActivePreviewPath:z,previewLoading:G,setPreviews:M,loadTree:se,openPreview:C,closePreview:D,toggleDir:A}}function Jy(i){const{origin:r,sessionId:c,refs:u,setError:f}=i,[m,h]=p.useState(""),[v,S]=p.useState([]),[y,N]=p.useState([]),[x,M]=p.useState(!1),[w,z]=p.useState(0),G=p.useRef(null),ae=p.useCallback(ne=>{h(ne),M(ne.startsWith("/")),z(0)},[]);p.useEffect(()=>{if(!c)return;const ne=m.slice(0,G.current?.selectionStart??m.length).match(/(?:^|\s)@([^\s@]*)$/);if(!ne){S([]);return}const te=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/files?q=${encodeURIComponent(ne[1]??"")}`).then(X=>X.ok?X.json():null).then(X=>S((X?.files??[]).map(W=>W.path)))},150);return()=>window.clearTimeout(te)},[r,c,m]);const se=p.useCallback(ne=>{const te=G.current?.selectionStart??m.length,W=m.slice(0,te).search(/@[^\s@]*$/);W<0||(h(`${m.slice(0,W)}@${ne} ${m.slice(te)}`),S([]))},[m]),C=p.useCallback(ne=>{for(const te of Array.from(ne).slice(0,4)){if(!te.type.startsWith("image/")||te.size>5*1024*1024){f("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const X=new FileReader;X.onload=()=>{const W=String(X.result??""),ce=W.slice(W.indexOf(",")+1);N(K=>[...K,{name:te.name,type:"image",mimeType:te.type,data:ce}].slice(0,4))},X.readAsDataURL(te)}},[f]),A=p.useCallback(ne=>{N(te=>te.filter(X=>X!==ne))},[]);p.useLayoutEffect(()=>{const ne=G.current;ne&&(ne.style.height="auto",ne.style.height=`${Math.min(ne.scrollHeight,280)}px`)},[m]),p.useEffect(()=>{if(!c)return;const ne=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ut()},body:JSON.stringify({text:m})})},400);return()=>window.clearTimeout(ne)},[r,c,m]);const D=p.useMemo(()=>m.startsWith("/")?mo.filter(ne=>ne.command.startsWith(m.trim().split(/\s+/,1)[0].toLowerCase())):[],[m]),J=p.useCallback(()=>{u.isComposingRef.current=!0},[u]),L=p.useCallback(()=>{u.isComposingRef.current=!1,u.compositionEndedAtRef.current=Date.now()},[u]),E=p.useCallback(()=>u.isComposingRef.current,[u]),Y=p.useCallback(()=>Date.now()-u.compositionEndedAtRef.current<100,[u]);return p.useEffect(()=>{jv({origin:r,sessionId:c,refs:u})},[r,c,u]),{input:m,setInput:h,handleInputChange:ae,fileOptions:v,pendingImages:y,setPendingImages:N,addImagesFromFiles:C,removeImage:A,shortcutOpen:x,setShortcutOpen:M,shortcutIndex:w,setShortcutIndex:z,filteredShortcuts:D,insertFileReference:se,textareaRef:G,onCompositionStart:J,onCompositionEnd:L,isComposingNow:E,recentlyComposedNow:Y}}const Fy=[{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 Wy(i){if(!i)return null;const r=(i.tools??[]).map(u=>({toolId:u.toolId,action:u.action,description:u.description,kind:u.kind??"read",cli:u.cli})),c=[...Fy];return{explore:c,operator:r,total:c.length+r.length}}let Py=0;function eb(i){const{origin:r,session:c,setSession:u,refs:f,setError:m}=i,[h,v]=p.useState(null),[S,y]=p.useState([]),[N,x]=p.useState("idle"),[M,w]=p.useState(null),[z,G]=p.useState([]),[ae,se]=p.useState(null),[C,A]=p.useState(null),[D,J]=p.useState(!1),[L,E]=p.useState(!1),[Y,ne]=p.useState(!1),te=p.useRef(null),X=p.useRef(null),W=p.useRef(0);p.useEffect(()=>{W.current=-1,J(!1)},[c?.sessionId,J]);const K=ds().snapshot,ie=p.useCallback(async()=>{try{const re=await fetch(`${r}/api/operator/v1/chat/capabilities`);if(!re.ok)return;const le=await re.json();v(le)}catch{}},[r]);p.useEffect(()=>{ie()},[ie]);const j=p.useCallback(async()=>{if(!c){y([]),x("idle");return}const re=c.sessionId;x("loading"),w(null);try{const le=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}/models`,{credentials:"include"}),de=await le.json().catch(()=>null);if(f.sessionRef.current?.sessionId!==re)return;if(!le.ok||!de){x("error"),w(de?.error?.message??`模型列表读取失败(HTTP ${le.status})`);return}y(de.models??[]),G(de.thinkingLevels??[]),x("ready")}catch(le){if(f.sessionRef.current?.sessionId!==re)return;x("error"),w(le instanceof Error?le.message:String(le))}},[r,c,f]);p.useEffect(()=>{j()},[j]),p.useEffect(()=>{if(!c){se(null),A(null);return}const re=c.sessionId,le=`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}`;A(null),fetch(`${le}/runtime-context`,{credentials:"include"}).then(async de=>{const ue=await de.json().catch(()=>null);if(!ue?.context||f.sessionRef.current?.sessionId!==re)return;const Ee=ue.context,ke=Tv().snapshot;se(Ke=>xv(Ke,Ee,ke,re))}).catch(()=>{f.sessionRef.current?.sessionId===re&&A("注入上下文读取失败,请重试")})},[r,c?.sessionId,f]),p.useEffect(()=>{if(!K||!c||K.sessionId!==c.sessionId)return;const re=Fm(K);u(le=>{if(!le||le.sessionId!==K.sessionId||Ny(le,re))return le;const de=hh(le,re);return f.sessionRef.current=de,de}),se(le=>{if(!le)return le;const de={...le,...re.model?{model:re.model}:{},...re.thinkingLevel?{thinkingLevel:re.thinkingLevel}:{}};return de.model?.provider===le.model?.provider&&de.model?.modelId===le.model?.modelId&&de.thinkingLevel===le.thinkingLevel?le:de})},[K,c?.sessionId,f,u,se]);const I=p.useCallback(async re=>{if(!c)return!1;const le=c.sessionId,de=++Py;W.current=de,Cv({type:"mutation-start",token:de}),J(!0);try{const ue=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Ut()},body:JSON.stringify(re)}),Ee=await ue.json().catch(()=>({}));return W.current!==de?!1:ue.ok?!Ee.session||f.sessionRef.current?.sessionId!==le?!1:Nv(de,le,Ee.snapshot):(f.sessionRef.current?.sessionId===le&&(m(Ee.error?.message??`模型或思考等级切换失败(HTTP ${ue.status})`),us()),!1)}catch(ue){return W.current!==de||f.sessionRef.current?.sessionId===le&&m(ue instanceof Error?ue.message:String(ue)),!1}finally{Rv(de,le,f)&&W.current===de&&J(!1)}},[r,c,f,u,m]);p.useEffect(()=>{if(!L)return;const re=de=>{const ue=te.current;ue&&de.target instanceof Node&&!ue.contains(de.target)&&E(!1)},le=de=>{de.key==="Escape"&&E(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",le),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",le)}},[L]),p.useEffect(()=>{if(!Y)return;const re=de=>{const ue=X.current;ue&&de.target instanceof Node&&!ue.contains(de.target)&&ne(!1)},le=de=>{de.key==="Escape"&&ne(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",le),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",le)}},[Y]);const _=p.useMemo(()=>Wy(h),[h]),oe=K?(K.models??[]).map(re=>({provider:re.provider,id:re.id,...re.name?{name:re.name}:{},...re.hasCredentials!==void 0?{hasCredentials:re.hasCredentials}:{}})):S,P=K?.thinkingLevels?.length?K.thinkingLevels.map(re=>re.value):z,b=c?.model??ae?.model,k=b?ki(b.provider,b.modelId):"",Z=K?.selection?.thinkingSelection??c?.thinkingLevel??"",$=K?.selection?.effectiveThinkingLevel??c?.thinkingLevel??void 0,me=!k||oe.some(re=>ki(re.provider,re.id)===k);return{capabilities:h,models:oe,modelsStatus:N,modelsError:M,onRetryModels:()=>{j()},thinkingLevels:P,runtimeContext:ae,runtimeContextError:C,onRetryRuntimeContext:()=>{A(null),us()},toolsOpen:L,setToolsOpen:E,runtimeContextOpen:Y,setRuntimeContextOpen:ne,toolsMenuRef:te,runtimeContextMenuRef:X,switchRuntime:I,switching:D,toolCatalog:_,activeModel:b,activeModelRef:k,activeThinkingLevel:Z,effectiveThinkingLevel:$,activeModelListed:me}}const Bm={comfortableMin:1450,compactMin:1100};function tb(i){return!Number.isFinite(i)||i<0?"narrow":i>=Bm.comfortableMin?"comfortable":i>=Bm.compactMin?"compact":"narrow"}function nb(i){return i==="compact"||i==="narrow"}const ab={mode:"comfortable",width:1600,landingDensity:"comfortable",emptyHeight:720};function sb(i,r){const[c,u]=p.useState(ab);return p.useEffect(()=>{const f=i.current;if(!f||typeof ResizeObserver>"u")return;const m=()=>{const N=f.getBoundingClientRect().width,x=r?.current??null,M=x?x.getBoundingClientRect().height:720;u({mode:tb(N),width:N,landingDensity:Qv(M),emptyHeight:M})};m();const h=new ResizeObserver(()=>m());h.observe(f);let v=null;const S=()=>{const N=r?.current??null;N&&N!==v&&(v&&h.unobserve(v),h.observe(N),v=N,m())};S();const y=window.setInterval(S,250);return()=>{window.clearInterval(y),h.disconnect()}},[i,r]),c}function lb(i="none"){return{active:i}}function xa(i,r){return{active:r}}function Tn(i={active:"none"}){return{active:"none"}}function ib(i){return{sidebarDrawerOpen:i.active==="sidebar-drawer",processOpen:i.active==="process",runtimeContextOpen:i.active==="runtime-context",toolsOpen:i.active==="tools"}}function rb(i){const{origin:r,surface:c="standalone"}=i,u=c==="workspace",f=Dy(),[m,h]=p.useState(null),[v,S]=p.useState(null),[y,N]=p.useState(!0),[x,M]=p.useState(!0),[w,z]=p.useState(()=>lb()),[G,ae]=p.useState(null),[se,C]=p.useState(0),A=p.useRef(null),D=p.useRef(null),J=p.useRef(null),L=p.useRef(null),E=p.useRef(null),Y=p.useRef(null),ne=p.useRef(null),te=sb(L,E),X=te.mode,W=ib(w),ce=W.processOpen,K=nb(X)&&ce,ie=p.useCallback(V=>{z(he=>{const dt=he.active==="process";return(typeof V=="function"?V(dt):V)?xa(he,"process"):he.active==="process"?Tn(he):he})},[]),j=Jy({origin:r,sessionId:v?.sessionId,refs:f,setError:h}),I=Zy({origin:r,refs:f,sessionId:v?.sessionId,setError:h}),_=p.useRef(()=>{}),oe=p.useCallback(V=>{_.current(V)},[]),P=By({origin:r,refs:f,sessionId:v?.sessionId,setError:h,setProcessOpen:ie,onReconcile:oe});_.current=V=>{const he=f.sessionRef.current?.sessionId;he&&(async()=>await P.recoverSession(he)?(ae({id:Date.now(),message:"已自动恢复:会话事件已重新同步,可继续对话。"}),C(We=>We+1)):ae({id:Date.now(),message:"自动恢复未完成,将在重连时重试。"}))()};const b=Yy({origin:r,refs:f,setSession:S,thread:P,composer:{setInput:j.setInput,setPendingImages:j.setPendingImages},browser:{setPreviews:I.setPreviews,setActivePreviewPath:I.setActivePreviewPath},setError:h,setProcessOpen:ie,setAutoScroll:M}),k=Qy({origin:r,refs:f,session:v,thread:P,composer:{setInput:j.setInput,setPendingImages:j.setPendingImages},setError:h,setAutoScroll:M,recoveryVersion:se,watchSessionTitle:b.watchSessionTitle}),Z=Vy({origin:r,refs:f,thread:P,setError:h}),$=eb({origin:r,session:v,setSession:S,refs:f,setError:h});p.useEffect(()=>{$.toolsOpen&&w.active!=="tools"?z(V=>xa(V,"tools")):!$.toolsOpen&&w.active==="tools"&&z(V=>Tn(V))},[$.toolsOpen,w.active]),p.useEffect(()=>{$.runtimeContextOpen&&w.active!=="runtime-context"?z(V=>xa(V,"runtime-context")):!$.runtimeContextOpen&&w.active==="runtime-context"&&z(V=>Tn(V))},[$.runtimeContextOpen,w.active]),p.useEffect(()=>{w.active!=="tools"&&$.toolsOpen&&$.setToolsOpen(!1),w.active!=="runtime-context"&&$.runtimeContextOpen&&$.setRuntimeContextOpen(!1)},[w.active]);const{sendPrompt:me,handleStop:re}=k,le=p.useCallback(async V=>{await me(V,j.pendingImages)},[me,j.pendingImages]),de=p.useCallback(()=>{j.textareaRef.current?.focus()},[j.textareaRef]),ue=p.useCallback(()=>{z(V=>V.active==="sidebar-drawer"?Tn(V):V)},[]),Ee=p.useCallback(()=>{$.setToolsOpen(!1),$.setRuntimeContextOpen(!1),z(V=>xa(V,"sidebar-drawer"))},[$.setToolsOpen,$.setRuntimeContextOpen]),ke=p.useCallback(V=>{b.activateSession(V),ue(),queueMicrotask(()=>{D.current?.focus?.(),de()})},[b,ue,de]),Ke=p.useCallback(V=>{j.setInput(he=>`${he}${he&&!he.endsWith(" ")?" ":""}@${V} `),ue(),queueMicrotask(()=>de())},[j,ue,de]),yt=p.useCallback(V=>{I.openPreview(V),ue()},[I,ue]),at=p.useCallback(()=>{const V=D.current;if(!V)return;const he=V.scrollHeight-V.scrollTop-V.clientHeight<80;M(he)},[]);p.useEffect(()=>{x&&A.current?.scrollIntoView({behavior:"smooth",block:"end"})},[P.messages,x,P.streaming]),p.useEffect(()=>{if(!G)return;const V=window.setTimeout(()=>ae(null),6e3);return()=>window.clearTimeout(V)},[G]);const st=p.useCallback(V=>{const he=Xv(V);j.setInput(""),j.setShortcutOpen(!1),he&&(he.action==="focus:interview"?Z.startInterview():he.action==="show-help"?h(`可用 shortcuts:${mo.map(dt=>dt.command).join("、")}`):he.action.startsWith("focus-panel:")?J.current?.scrollIntoView({behavior:"smooth",block:"nearest"}):h(`未知 shortcut:${he.command}`))},[j.setInput,j.setShortcutOpen,Z.startInterview]),bt=p.useCallback(V=>{if(j.shortcutOpen&&j.filteredShortcuts.length>0&&!V.nativeEvent.isComposing){if(V.key==="ArrowDown"||V.key==="ArrowUp"){V.preventDefault(),j.setShortcutIndex(We=>(We+(V.key==="ArrowDown"?1:j.filteredShortcuts.length-1))%j.filteredShortcuts.length);return}if(V.key==="Escape"){V.preventDefault(),j.setShortcutOpen(!1);return}if(V.key==="Enter"){V.preventDefault(),st(j.filteredShortcuts[j.shortcutIndex]?.command??j.filteredShortcuts[0].command);return}}const he=Date.now()-f.compositionEndedAtRef.current<100,dt=f.isComposingRef.current||V.nativeEvent.isComposing;if(V.key==="Enter"&&!V.shiftKey&&(dt||he)){he&&V.preventDefault();return}if(V.key==="Enter"&&!V.shiftKey){V.preventDefault(),le(j.input);return}},[j.input,j.shortcutOpen,j.filteredShortcuts,j.shortcutIndex,j.setShortcutIndex,j.setShortcutOpen,f,le,st]),ut=P.visibleMessages.length>0||P.operationCards.length>0||P.humanGateCards.length>0||P.artifactCards.length>0||!!P.interview,rn=i.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":i.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,Jt=X==="compact"||X==="narrow",Ht=s.jsx($v,{origin:r,open:y,layoutMode:X,drawerOpen:W.sidebarDrawerOpen,activeSessionId:v?.sessionId,sessions:b.sessionList,tree:I.tree,expanded:I.expandedDirs,treeError:I.treeError,onToggleOpen:()=>N(V=>!V),onOpenDrawer:Ee,onCloseDrawer:ue,onCreate:()=>{b.createSession()},creatingSession:b.creatingSession,onActivate:V=>{W.sidebarDrawerOpen?ke(V):b.activateSession(V)},onRename:(V,he)=>{b.updateSession(V,{title:he})},onSetState:(V,he)=>{b.updateSession(V,{state:he})},onDelete:V=>{b.deleteSession(V)},onRefreshTree:()=>{I.loadTree()},onToggleDir:I.toggleDir,onInsert:V=>{W.sidebarDrawerOpen?Ke(V):j.setInput(he=>`${he}${he&&!he.endsWith(" ")?" ":""}@${V} `)},onPreview:V=>{W.sidebarDrawerOpen?yt(V):I.openPreview(V)},drawerTriggerRef:Y}),ye=["oc-workspace",ce&&!K?"has-process":"",K?"has-process-overlay":""].filter(Boolean).join(" "),Ae=V=>s.jsx("div",{className:"oc-messages is-empty",ref:E,"data-landing-density":te.landingDensity,children:s.jsx(lh,{mode:V,readiness:i.readiness,density:te.landingDensity,onSuggest:async he=>{b.creatingSession||(V==="no-session"?await b.createSession()&&await le(he):await le(he))},disabled:b.creatingSession,onCreateSession:V==="no-session"?()=>{b.createSession()}:void 0})});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。"]})]}),rn&&s.jsx("div",{className:"oc-alert oc-alert-warning",children:rn}),m&&s.jsxs("div",{className:"oc-alert oc-alert-error",children:[s.jsx("strong",{children:"出错了:"}),m]}),G&&s.jsx("div",{className:"oc-alert oc-alert-warning",role:"status",children:G.message}),v?s.jsxs("div",{className:ye,ref:L,"data-layout-mode":X,children:[Ht,s.jsxs("div",{className:`oc-main${ut?"":" is-landing"}`,children:[X==="narrow"?s.jsx("div",{className:"oc-main-topbar",children:s.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:Y,"aria-label":"打开会话与仓库","aria-expanded":W.sidebarDrawerOpen,onClick:()=>W.sidebarDrawerOpen?ue():Ee(),children:"会话与仓库"})}):null,s.jsx(Kv,{previews:I.previews,activePath:I.activePreviewPath,loading:I.previewLoading,onActivate:I.setActivePreviewPath,onClose:I.closePreview}),ut?s.jsx(by,{scrollContainerRef:D,messagesEndRef:A,onScroll:at,hasThread:ut,readiness:i.readiness,streaming:P.streaming,streamingAssistantId:P.streamingAssistantId,messagesCount:P.messages.length,visibleCount:P.visibleMessages.length,onLoadMore:()=>P.setHistoryLimit(V=>V+50),turnGroups:P.turnGroups,interview:P.interview,interviewAnswer:Z.interviewAnswer,onInterviewAnswerChange:Z.setInterviewAnswer,onAnswerInterview:V=>{Z.answerInterview(V)},onConfirmTaskKind:()=>{Z.confirmTaskKind()},humanGateCards:P.humanGateCards,operationCards:P.operationCards,artifactCards:P.artifactCards,origin:r,sessionId:v.sessionId,onNavigateWorkspace:i.onNavigateWorkspace,onSuggest:V=>{le(V)}}):Ae("empty-session"),s.jsx(ky,{composer:j,streaming:P.streaming,hasThread:ut,compactControls:Jt,onSend:V=>{le(V)},onStop:re,onKeyDown:bt,onRunShortcut:st,models:$.models,activeModel:$.activeModel,activeModelRef:$.activeModelRef,activeModelListed:$.activeModelListed,activeThinkingLevel:$.activeThinkingLevel,thinkingLevels:$.thinkingLevels,onSwitchRuntime:V=>{$.switchRuntime(V)},usage:P.usage,unread:P.unread,onCompact:()=>{b.compactSession()},toolCatalog:$.toolCatalog,toolsOpen:$.toolsOpen,onToggleTools:()=>{$.toolsOpen?($.setToolsOpen(!1),z(V=>Tn(V))):($.setToolsOpen(!0),$.setRuntimeContextOpen(!1),z(V=>xa(V,"tools")))},onCloseTools:()=>{$.setToolsOpen(!1),z(V=>V.active==="tools"?Tn(V):V)},toolsMenuRef:$.toolsMenuRef,processSummary:P.processSummary,processOpen:ce,onToggleProcess:()=>{z(V=>V.active==="process"?Tn(V):xa(V,"process")),ce||($.setToolsOpen(!1),$.setRuntimeContextOpen(!1))},processTriggerRef:ne,runtimeContext:$.runtimeContext,runtimeContextOpen:$.runtimeContextOpen,onToggleRuntimeContext:()=>{$.runtimeContextOpen?($.setRuntimeContextOpen(!1),z(V=>Tn(V))):($.setRuntimeContextOpen(!0),$.setToolsOpen(!1),z(V=>xa(V,"runtime-context")))},onCloseRuntimeContext:()=>{$.setRuntimeContextOpen(!1),z(V=>V.active==="runtime-context"?Tn(V):V)},runtimeContextMenuRef:$.runtimeContextMenuRef})]}),ce&&s.jsxs(s.Fragment,{children:[K?s.jsx("button",{type:"button",className:"oc-overlay-backdrop is-process","aria-label":"关闭执行过程遮罩",onClick:()=>ie(!1)}):null,s.jsx(Ay,{toolCalls:P.toolCalls,overlay:K,onClose:()=>ie(!1),triggerRef:ne})]})]}):s.jsxs("div",{className:ye,ref:L,"data-layout-mode":X,children:[Ht,s.jsxs("div",{className:"oc-main is-landing",children:[X==="narrow"?s.jsx("div",{className:"oc-main-topbar",children:s.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:Y,"aria-label":"打开会话与仓库","aria-expanded":W.sidebarDrawerOpen,onClick:()=>W.sidebarDrawerOpen?ue():Ee(),children:"会话与仓库"})}):null,Ae("no-session")]})]})]})}function cb(i){return i==="validate"||i==="apply"||i==="spine"?"contract":i}const ph="X-Loop-Console-Confirmation",gh="agent-worker console doctor --repo .",co=[{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)"}],vh={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},ob={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},yh={low:"低",medium:"中",high:"高"},bh={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账"},ub={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function Ci(i){return ub[i]??i}function xh(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Ai(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function ho(i,r={},c){const u={"Content-Type":"application/json",[ph]:xh()},f=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:u,body:JSON.stringify({action:i,actionParams:r,...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 db=new Set(["runDag","dagRerun","dagReconcileRun","standaloneTaskRerun"]);function io(i){const r=(i.blockedReasons??[]).map(String),c=(i.blockingNodes??[]).map(f=>[f.nodeId,f.reasonCode].filter(Boolean).join(":")),u=[...r,...c].filter(Boolean);return u.length===0?"从节点重跑不具备安全资格(子图含 writer / unsafe shell / decision-gate 等)。可改用「完整重跑任务」,或另选只读安全子图的起始节点。":`从节点重跑不具备安全资格:${u.slice(0,6).join("; ")}${u.length>6?"…":""}。可改用「完整重跑任务」。`}async function Gm(i,r=9e4){const c=Date.now();for(;Date.now()-c<r;){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(v=>setTimeout(v,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const fb={};function mb(){const[i,r]=p.useState(()=>oh({env:fb?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[c,u]=p.useState(null),[f,m]=p.useState("setup-required"),[h,v]=p.useState(null),[S,y]=p.useState(null),[N,x]=p.useState(!1),[M,w]=p.useState(!1),[z,G]=p.useState(null),[ae,se]=p.useState(null),[C,A]=p.useState(null),[D,J]=p.useState(null),[L,E]=p.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[Y,ne]=p.useState("setup"),te=p.useCallback(ie=>{ne(j=>cb(typeof ie=="function"?ie(j):ie))},[]),X=f==="setup-required",W=f==="degraded",ce=p.useCallback(ie=>{ie!==i&&(G(null),A(null),se(null)),r(ie)},[i]),K=p.useCallback(async()=>{try{const j=await(await fetch("/api/health")).json();u(j);const I=j.piReadiness??"setup-required";m(I),y(null),te(I==="ready"||I==="degraded"?_=>_==="setup"?"import-prd":_:"setup")}catch(ie){y(ie instanceof Error?ie.message:String(ie))}try{const j=await(await fetch("/api/operator/v1/readiness")).json();v(j),j.state&&m(j.state)}catch{}},[te]);return{nav:i,setNav:r,selectNav:ce,health:c,readiness:f,setReadiness:m,readinessReport:h,healthError:S,loadHealth:K,busy:N,setBusy:x,observeBusy:M,setObserveBusy:w,opError:z,setOpError:G,opMessage:ae,setOpMessage:se,opErrorCode:C,setOpErrorCode:A,lastOpState:D,setLastOpState:J,layers:L,setLayers:E,step:Y,setStep:te,setupBlocked:X,degraded:W}}function hb(i){const{shell:r,applyInterviewPayload:c}=i,{setBusy:u,setOpError:f,setOpErrorCode:m,setOpMessage:h,setReadiness:v,setStep:S,setNav:y,setLastOpState:N,setLayers:x,step:M,nav:w}=r,[z,G]=p.useState(null),[ae,se]=p.useState([]),[C,A]=p.useState(!0),D=p.useRef(null),[J,L]=p.useState(null),[E,Y]=p.useState(null),ne=p.useCallback(async(K,ie={},j)=>{u(!0),f(null),m(null),h(null);try{const{status:I,body:_}=await ho(K,ie,j?.clientRequestId);if(I===412||_.error?.code==="PI_SETUP_REQUIRED")return f(rs(_.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),m(_.error?.code??"PI_SETUP_REQUIRED"),v("setup-required"),S("setup"),y("models"),_;if(I>=400||_.ok===!1)return f(rs(_.error?.message??_.message??`操作失败(HTTP ${I})`)),m(_.error?.code??String(I)),N(_.state??`failed:${I}`),x(b=>({...b,command:_.error?.message??`failed:${_.error?.code??I}`})),_;if(_.operationId){const b=window.localStorage.getItem(tn)?.trim();if(b&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(b)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[ph]:xh()},body:JSON.stringify({operationId:_.operationId})}).then(k=>{k.ok||console.warn("Operator Chat operation link failed",k.status)}).catch(k=>console.warn("Operator Chat operation link failed",k)),G(_.operationId),N(_.state??"accepted"),x(k=>({...k,command:_.state??"accepted",dag:K==="runDag"?"running":k.dag})),db.has(K)){A(!0),h(`操作已接受,后台运行中:${_.operationId}(请看事件流;可同时打开 Observe)`);const k=_.operationId;Gm(k,30*6e4).then(Z=>{if(Z){if(N(Z.state??null),Z.state==="failed"||Z.state==="needs-reconcile"||Z.state==="timed-out"){f(rs(Z.errorMessage??Z.stderrPreview??`操作失败:${Z.state}`)),m(Z.errorCode??Z.state??null),x($=>({...$,command:`failed:${Z.errorCode??Z.state}`}));return}Z.state==="succeeded"&&(h(`${K} 已成功`),x($=>({...$,command:"succeeded"})))}})}else{h(`操作已接受:${_.operationId}`);const k=await Gm(_.operationId);if(k){if(N(k.state??null),k.state==="failed"||k.state==="needs-reconcile"||k.state==="timed-out")return f(rs(k.errorMessage??k.stderrPreview??`操作失败:${k.state}`)),m(k.errorCode??k.state??null),x(re=>({...re,command:`failed:${k.errorCode??k.state}`})),{ok:!1,operationId:_.operationId,state:k.state,error:{code:k.errorCode??k.state??"INTERNAL_ERROR",message:k.errorMessage??k.stderrPreview??`操作失败:${k.state}`}};h(k.errorMessage?`${K}:${k.errorMessage}`:`${K} 已成功`),x(re=>({...re,command:k.state??"succeeded"}));const Z=k.result??{},$={ok:!0,operationId:_.operationId,state:k.state??"succeeded",result:Z};(K==="interviewStart"||K==="interviewTurn"||K==="interviewSkip")&&c(Z);const me=Z.confirmation;return me?.confirmationId&&(L(me.confirmationId),Y(Z)),j?.advanceTo&&S(j.advanceTo),$}}}else h(`${K} 已完成`),N(_.state??"succeeded"),x(b=>({...b,command:"succeeded",verification:K==="contractValidate"||K==="spineCheck"?"ran":b.verification}));const oe=_.result??{};(K==="interviewStart"||K==="interviewTurn"||K==="interviewSkip")&&c(oe);const P=oe.confirmation;return P?.confirmationId&&(L(P.confirmationId),Y(oe)),j?.advanceTo&&S(j.advanceTo),_}catch(I){f(I instanceof Error?I.message:String(I));return}finally{u(!1)}},[c,u,f,m,h,v,S,y,N,x]),te=p.useCallback(K=>{if(!K)return"无响应";if(K.error?.message)return K.error.message;if(K.message)return K.message;const ie=K.result;if(ie&&typeof ie=="object")try{return JSON.stringify(ie).slice(0,1200)}catch{return"已返回结果"}return K.ok===!1?"失败":"成功"},[]),X=p.useCallback(K=>{if(!K||K.ok===!1||K.error)return!1;const ie=K.result;if(!ie)return!0;if(typeof ie.valid=="boolean")return ie.valid;const j=ie.result;return j&&typeof j.valid=="boolean"?j.valid:!0},[]),W=p.useCallback(async K=>{D.current?.abort();const ie=new AbortController;D.current=ie,se(j=>[...j,`开始跟随事件流 ${K}`]);try{const j=await fetch(`/api/operator/v1/operations/${encodeURIComponent(K)}/events`,{credentials:"same-origin",signal:ie.signal});if(!j.ok||!j.body){se(P=>[...P,`事件流 HTTP ${j.status}`]);return}const I=j.body.getReader(),_=new TextDecoder;let oe="";for(;C;){const{done:P,value:b}=await I.read();if(P)break;oe+=_.decode(b,{stream:!0});const k=oe.split(`
|
|
23
|
-
|
|
24
|
-
`);oe=k.pop()??"";for(const Z of k){const $=Z.split(`
|
|
25
|
-
`).find(re=>re.startsWith("data:"));if(!$)continue;const me=$.slice(5).trim();se(re=>[...re.slice(-80),me.slice(0,240)])}}}catch(j){j.name!=="AbortError"&&se(I=>[...I,`事件流错误:${j instanceof Error?j.message:String(j)}`])}},[C]);p.useEffect(()=>(z&&C&&(M==="run"||w==="recovery")&&W(z),()=>D.current?.abort()),[z,C,M,w,W]);const ce=p.useCallback(()=>{A(!1),D.current?.abort(),h("已停止跟随日志(未取消子进程)")},[h]);return{runAction:ne,summarizeEnvelope:te,isActionSuccess:X,operationId:z,setOperationId:G,sseLog:ae,followSse:C,setFollowSse:A,stopFollowSse:ce,confirmationId:J,setConfirmationId:L,confirmationDetails:E,setConfirmationDetails:Y}}const oo=8*1024*1024,pb=10*1024*1024,Di=8,gb=".md,.markdown,.txt,text/markdown,text/plain",vb=[".md",".markdown",".txt"],po=/\.[^.]+$/;function yb(i){const r=po.exec(i.trim());return r?r[0].toLowerCase():""}function bb(i){const r=yb(i);return vb.includes(r)}function uo(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 r=i/(1024*1024);return`${r>=10?r.toFixed(1):r.toFixed(2)} MiB`}function En(i,r){return{ok:!1,code:i,message:r}}function xb(i,r){const c=i?Array.from(i):[],u=r?.maxFiles??Di,f=r?.existingCount??0;return c.length===0?En("file-count","请选择至少一个 .md / .markdown / .txt 文件"):f+c.length>u?En("file-count",`最多支持 ${u} 个文件(当前已有 ${f} 个)`):null}async function Sb(i){const r=i.name?.trim()||"untitled.md";if(!bb(r))return En("unsupported-extension","仅支持 .md、.markdown、.txt 文件");if(i.size>oo)return En("file-too-large",`文件不能超过 ${uo(oo)}`);let c;try{c=await i.arrayBuffer()}catch{return En("read-failed","文件读取失败,请重试或直接粘贴")}let u;try{u=new TextDecoder("utf-8",{fatal:!0}).decode(c)}catch{return En("invalid-utf8","文件不是有效 UTF-8,请另存为 UTF-8")}if(u.trim().length===0)return En("empty-content","文件内容不能为空或只有空白");const f=new TextEncoder().encode(u).byteLength;return{ok:!0,text:u,fileName:r,sourceBytes:i.size,textBytes:f}}async function jb(i){if(i.length===0)return En("file-count","请选择至少一个 .md / .markdown / .txt 文件");if(i.length>Di)return En("file-count",`最多支持 ${Di} 个文件`);const r=[];for(const c of i){const u=await Sb(c);if(!u.ok)return u;r.push({fileName:u.fileName,text:u.text,sourceBytes:u.sourceBytes,textBytes:u.textBytes})}return{ok:!0,documents:r}}function Nb(i,r){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 r.replace(po,"").trim()||"需求"}function Rb(i){return i.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"requirement"}function Cb(i,r){const c=i.replace(po,"").trim(),u=Rb(c);return u==="requirement"&&/[^\u0000-\u007f]/.test(c)?`part-${r+1}`:u==="requirement"?c?`part-${r+1}`:`part-${r+1}`:u}function Tb(i){const r=new Set;return i.map((c,u)=>{let f=Cb(c.fileName,u);if(r.has(f)){let m=2;for(;r.has(`${f}-${m}`);)m+=1;f=`${f}-${m}`}return r.add(f),{name:f,content:c.text,fileName:c.fileName}})}function Eb(i,r){if(i.length===0)return"";if(i.length===1)return i[0].text;const c=Math.min(Math.max(0,r?.primaryIndex??0),i.length-1),u=i[c],f=Nb(u.text,u.fileName),h=[`<!-- composed-from: ${i.map(v=>v.fileName).join(", ")} -->`,"",`# ${f}`,""];for(const v of i)h.push(`## 来源:${v.fileName}`,"",v.text.trim(),"");return`${h.join(`
|
|
26
|
-
`).trimEnd()}
|
|
27
|
-
`}function wb(i,r,c){const u={action:i,actionParams:r};return new TextEncoder().encode(JSON.stringify(u)).byteLength<=pb}function kb(){return"最终内容导致请求体超过服务端限制,请缩小文档或减少文件数量"}function Ab(){const[i,r]=p.useState(""),[c,u]=p.useState([]),[f,m]=p.useState(0),[h,v]=p.useState(!1),[S,y]=p.useState(null),[N,x]=p.useState(!1),[M,w]=p.useState(!1),z=p.useRef(0),G=p.useRef(0),ae=p.useCallback((X,W)=>{const ce=X.length===0?0:Math.min(Math.max(0,W),X.length-1);m(ce),r(Eb(X,{primaryIndex:ce})),v(!1)},[]),se=p.useCallback(async X=>{const W=xb(X,{existingCount:c.length});if(W){y(W.message);return}const ce=Array.from(X),K=++G.current;x(!0),y(null);try{const ie=await jb(ce);if(K!==G.current)return;if(!ie.ok){y(ie.message);return}const j=[...c,...ie.documents],I=c.length===0?0:f;u(j),c.length===0||!h?(ae(j,I),y(null)):y("已追加文件,未改正文(正文已手动编辑);可点「按文件重新合成」覆盖。")}catch{if(K!==G.current)return;y("文件读取失败,请重试或直接粘贴")}finally{K===G.current&&x(!1)}},[ae,h,c,f]),C=p.useCallback(X=>{r(X),c.length>0&&v(!0)},[c.length]),A=p.useCallback(X=>{m(X),h||ae(c,X)},[ae,h,c]),D=p.useCallback((X,W)=>{const ce=X+W,K=[...c],ie=K[ce];K[ce]=K[X],K[X]=ie;const j=f===X?ce:f===ce?X:f;u(K),m(j),h||ae(K,j)},[ae,h,c,f]),J=p.useCallback(X=>{const W=c.filter((K,ie)=>ie!==X),ce=W.length===0?0:Math.min(f>=X?Math.max(0,f-1):f,Math.max(0,W.length-1));u(W),m(ce),W.length===0?v(!1):h||ae(W,ce)},[ae,h,c,f]),L=p.useCallback(()=>{u([]),m(0),v(!1),y(null)},[]),E=p.useCallback(()=>{h&&!window.confirm("将用当前文件列表重新合成正文,覆盖你在编辑区的修改。继续?")||(ae(c,f),y(null))},[ae,h,c,f]),Y=p.useCallback((X,W)=>{X.preventDefault(),X.stopPropagation(),!W&&(z.current+=1,w(!0))},[]),ne=p.useCallback(X=>{X.preventDefault(),X.stopPropagation(),z.current=Math.max(0,z.current-1),z.current===0&&w(!1)},[]),te=p.useCallback((X,W)=>{X.preventDefault(),X.stopPropagation(),z.current=0,w(!1),!W&&se(X.dataTransfer.files)},[se]);return{prdText:i,setPrdText:r,onPrdTextChange:C,prdDocuments:c,prdPrimaryIndex:f,prdComposedDirty:h,prdFileError:S,setPrdFileError:y,prdFileReading:N,prdDragOver:M,loadPrdFromFiles:se,applyPrdComposition:ae,setPrimaryDocument:A,moveDocument:D,removeDocument:J,clearDocuments:L,recomposeDocuments:E,onDragEnter:Y,onDragLeave:ne,onDrop:te}}const Db={report:{id:"report",label:"查看报告",action:"dagReport",lane:"dag",guide:"看失败分类与建议动作(交接报告摘要)",commandHint:"loop-agent dag report --run-id <run-id> --json"},doctor:{id:"doctor",label:"Doctor 诊断",action:"doctor",lane:"dag",guide:"只读诊断:检查 Console / Pi / 仓库就绪,不是重跑前置",commandHint:"agent-worker console doctor --repo ."},decision:{id:"decision",label:"人工决策",lane:"dag",guide:"暂停等人时:先看 doctor 输出再做决策(经 CLI)",commandHint:"loop-agent dag doctor --run-id <run-id> --markdown"},resume:{id:"resume",label:"恢复运行",lane:"dag",guide:"仅当运行可安全 resume 时使用(经 CLI)",commandHint:"loop-agent task advance <task-id> --json"},reconcile:{id:"reconcile",label:"对账 / reconcile",requiresReason:!0,action:"dagReconcileRun",lane:"dag",guide:"Orphan/中断时先对账归档(默认 supersede);runner 仍存活时勿盲 supersede",commandHint:"loop-agent dag reconcile-run --run-id <run-id> --action supersede --reason <structured-reason>"},regenerate:{id:"regenerate",label:"重新生成契约/计划",lane:"dag",guide:"契约/计划过期时:回任务页或经 CLI 重新 task advance(本页仅提示)",commandHint:"loop-agent task advance <task-id> --json"},observeLink:{id:"observeLink",label:"全屏观测",action:"observeLink",lane:"dag",guide:"打开完整 Inspect 画布;顶栏可返回操作台",commandHint:"agent-worker console serve --repo . --port 8790"},dagRerun:{id:"dagRerun",label:"从节点重跑",requiresReason:!0,action:"dagRerun",lane:"dag",guide:"终端失败默认首选:先 dagRerunPlan,plan 合格再 Human Gate 执行;provider 抖动/只读下游优先,勿无理由新开 task",commandHint:"loop-agent dag rerun --run-id <run-id> --from-node <node-id> --plan"},standaloneTaskRerun:{id:"standaloneTaskRerun",label:"完整重跑任务",requiresReason:!0,action:"standaloneTaskRerun",lane:"dag",guide:"整单重跑:仅当 from-node plan 不合格(writer/decision/fingerprint)或契约/源真变时;需确认原因",commandHint:"loop-agent dag rerun-task --run-id <run-id> --reason <text> --json"},workerTaskRetry:{id:"workerTaskRetry",label:"重新排队 Worker Task",requiresReason:!0,action:"workerTaskRetry",lane:"worker",guide:"仅 Worker 队列任务失败时使用,不要与 DAG 重跑混用",commandHint:"agent-worker task retry <task-id> --feature-id <feature-id> --repo . --reason <reason>"}},qm={"validation-failed":["report","doctor","regenerate"],"contract-drift":["report","doctor","decision","reconcile","regenerate"],"runtime-mismatch":["report","doctor","reconcile","regenerate"],"pause-on-human":["decision","resume","report","doctor"],"verification-failed":["report","doctor","dagRerun","standaloneTaskRerun","resume","regenerate"],"orphan-unknown":["report","doctor"],"terminal-failed":["report","doctor","dagRerun","standaloneTaskRerun","workerTaskRetry","regenerate"],"terminal-succeeded":["report","observeLink"],"needs-reconcile":["report","doctor","reconcile","regenerate"]};function Ob(i){return(qm[i]??qm["orphan-unknown"]).map(c=>Db[c])}function Mb(i){const r=[],c=[];for(const u of i)u.lane==="worker"?c.push(u):r.push(u);return{dag:r,worker:c}}function _b(i){return typeof i.action=="string"&&i.action.trim().length>0}function Sh(i){return Ob(i).filter(_b)}function Ib(i){const r=new Set(Sh(i).map(u=>u.id)),c=(...u)=>{for(const f of u)if(r.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":return c("doctor","reconcile","report");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 zb(i){if(i.needsReconcile)return"needs-reconcile";const r=(i.errorCode??"").toLowerCase(),c=(i.operationState??"").toLowerCase(),u=(i.dagStatus??"").toLowerCase(),f=(i.failureCategory??"").toLowerCase();return r.includes("validation")||r.includes("invalid")||c.includes("validation")?"validation-failed":r.includes("contract")||r.includes("drift")||r.includes("binding")?"contract-drift":r.includes("runtime")||r.includes("mismatch")||r.includes("fingerprint")?"runtime-mismatch":r.includes("human")||c.includes("paused")||u.includes("paused")||c.includes("awaiting")?"pause-on-human":r.includes("verif")||c.includes("verif")?"verification-failed":f==="controller-interrupted"||r.includes("controller-interrupted")||r.includes("interrupted")||u==="interrupted"||u==="orphaned"||c.includes("controller-interrupted")||c.includes("interrupted")?"needs-reconcile":u==="running-suspected-stall"||u==="running-quiet"||u==="suspected-stall"||u.includes("suspected-stall")||c.includes("suspected-stall")?"orphan-unknown":c==="succeeded"||c==="completed"||c==="finished"||u==="succeeded"||u==="completed"||u==="finished"?"terminal-succeeded":c==="failed"||c.includes("fail")||u==="failed"||u==="partial_failed"||r.includes("fail")?"terminal-failed":r.includes("reconcil")||c.includes("reconcil")?"needs-reconcile":"orphan-unknown"}const go=new Set(["failed","error","partial_failed"]),jh=new Set(["blocked","paused","awaiting_human"]);function _i(i){return(i??"").trim().toLowerCase()}function Lb(i){return go.has(_i(i))}function $m(i){const r=_i(i.status);return go.has(r)||r.includes("fail")?0:i.lifecycle==="paused"||r==="paused"?1:i.lifecycle==="active"?2:3}function Ub(i){return[...i].sort((r,c)=>{const u=$m(r)-$m(c);return u!==0?u:c.mtimeMs-r.mtimeMs})}function Hb(i){return Ub(i)[0]?.dagRunId}function Ym(i){const r=_i(i.status);return go.has(r)?0:jh.has(r)?1:2}function Nh(i){return[...i].sort((r,c)=>{const u=Ym(r)-Ym(c);return u!==0?u:r.nodeId.localeCompare(c.nodeId)})}function Bb(i){const r=Nh(i);return r.find(u=>Lb(u.status)||jh.has(_i(u.status)))?.nodeId??r[0]?.nodeId}function Gb(i){const r=i.status?.trim()||i.lifecycle;return`${i.dagRunId.length>36?`${i.dagRunId.slice(0,18)}…${i.dagRunId.slice(-8)}`:i.dagRunId} · ${r}`}function qb(i){const r=i.status?.trim()||"unknown",c=i.label?.trim();return c&&c!==i.nodeId?`${i.nodeId} · ${r} · ${c}`:`${i.nodeId} · ${r}`}function $b(i){const c=[`operator-recovery: ${i.actionLabel?.trim()||"恢复"}`],u=i.dagRunId?.trim();if(u){const v=i.runStatus?.trim();c.push(v?`run=${u} (${v})`:`run=${u}`)}const f=i.fromNodeId?.trim();if(f){const v=i.nodeStatus?.trim();c.push(v?`from-node=${f} (${v})`:`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(`
|
|
28
|
-
`).slice(0,500)}function Rh(i){const r=i.trim();return r?r==="operator-recovery"||r.startsWith("operator-recovery:")||r.startsWith("recovery:"):!0}function Yb(i){const{shell:r,actions:c,taskId:u,dagRunId:f,fromNodeId:m,featureId:h,recoveryReason:v,recoveryReasonTouched:S,recoveryConfirm:y,recoveryPlanSummary:N,setRecoveryConfirm:x,setRecoveryPlanSummary:M,setRecoveryReport:w,setRecoveryReason:z,setRecoveryReasonTouched:G,buildCurrentRecoveryReason:ae,openFullCanvas:se}=i,{setOpError:C,setOpErrorCode:A,setOpMessage:D,setBusy:J}=r,{runAction:L,isActionSuccess:E}=c,Y=p.useCallback(async te=>{if(te.requiresReason||(x(null),M(null)),te.action==="doctor"){w(null),L("doctor",{});return}if(te.action==="dagReport"||te.id==="report"){const X=f.trim();if(X){x(null),M(null);const W=await L("dagReport",{runId:X}),ce=W?.result??{},K=(ce.raw?.runs??ce.runs)?.[0];W&&W.ok!==!1&&!W.error&&K&&(w({runId:K.runId??X,title:K.title,status:K.status,category:K.productLineFailureCategory,recommendation:K.recoveryRecommendation?.summary??K.recommendedFollowUp??void 0}),D(null));return}if(u.trim()){w(null),L("status",{taskId:u});return}C("查看报告需要先选择 DAG 运行 ID(或填写任务 ID)");return}if(te.action==="observeLink"){w(null),se();return}if(te.requiresReason){if(w(null),x(te),M(null),te.id!=="dagRerun"&&(C(null),A(null)),(!S||Rh(v))&&(z(ae(te.label)),G(!1)),te.id==="dagRerun"&&f.trim()&&m.trim()){J(!0);try{const{status:X,body:W}=await ho("dagRerunPlan",{runId:f.trim(),fromNode:m.trim()}),ce=W.result??{};ce&&typeof ce=="object"&&("eligible"in ce||ce.planHash)&&M(ce),X<400&&W.ok!==!1&&ce.eligible!==!1?D(null):ce.eligible===!1?C(W.error?.message??io(ce)):D(W.error?.message??"无法预检重跑计划;确认后仍将尝试提交(CLI 可能尚未就绪)")}finally{J(!1)}}return}C(null),A(null),D(`${te.label}:请经 CLI — ${te.commandHint??""}`)},[ae,f,m,se,v,S,L,J,C,A,D,x,M,w,z,G,u]),ne=p.useCallback(async()=>{const te=y;if(!te)return;const X=v.trim();if(!X){C("恢复操作需要结构化原因");return}const W=Ai(`recovery-${te.id}`);if(x(null),te.id==="dagRerun"){const ce=f.trim(),K=m.trim();if(!ce||!K){C("从节点重跑需要 DAG 运行 ID 与起始节点 ID");return}let ie=N?.planHash?.trim(),j=N?.eligible;if(!ie||j===void 0){const I=await L("dagRerunPlan",{runId:ce,fromNode:K}),_=I?.result??{};if((_.planHash||_.eligible!==void 0)&&M(_),ie=_.planHash?.trim()||ie,j=_.eligible,_.eligible===!1){C(I?.error?.message??io(_));return}if(I&&I.ok===!1&&!ie){C(I.error?.message??"无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}}if(j===!1){C(io(N??{}));return}if(!ie){C("无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}await L("dagRerun",{runId:ce,fromNode:K,planHash:ie,reason:X},{clientRequestId:W});return}if(te.id==="standaloneTaskRerun"){const ce=f.trim();if(!ce){C("完整重跑任务需要 DAG 运行 ID");return}const K={runId:ce,reason:X,...u.trim()?{taskId:u.trim()}:{}},ie=await L("prepareMutationGate",{action:"standaloneTaskRerun",actionParams:K});if(!E(ie))return;const j=ie?.result??ie;if(!j.receiptId||!j.humanGateToken){C("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await L("standaloneTaskRerun",{...K,confirmationId:j.receiptId,humanGateToken:j.humanGateToken},{clientRequestId:W});return}if(te.id==="workerTaskRetry"){const ce=u.trim();if(!ce){C("重新排队 Worker Task 需要任务 ID");return}const K={taskId:ce,reason:X,...h.trim()?{featureId:h.trim()}:{}},ie=await L("prepareMutationGate",{action:"workerTaskRetry",actionParams:K});if(!E(ie))return;const j=ie?.result??ie;if(!j.receiptId||!j.humanGateToken){C("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await L("workerTaskRetry",{...K,confirmationId:j.receiptId,humanGateToken:j.humanGateToken},{clientRequestId:W});return}if(te.id==="reconcile"){const ce=f.trim();if(!ce){C("对账恢复需要 DAG 运行 ID");return}const K={runId:ce,reason:X,reconcileAction:"supersede"},ie=await L("prepareMutationGate",{action:"dagReconcileRun",actionParams:K});if(!E(ie))return;const j=ie?.result??ie;if(!j.receiptId||!j.humanGateToken){C("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await L("dagReconcileRun",{...K,confirmationId:j.receiptId,humanGateToken:j.humanGateToken},{clientRequestId:W});return}D(`${te.label}:请经 CLI — ${te.commandHint??""}`)},[f,h,m,y,N?.planHash,v,L,E,C,D,x,M,u]);return{handleRecoveryCta:Y,submitRecoveryConfirm:ne}}function Kb(i){const{shell:r,actions:c,wizard:u}=i,{nav:f,opError:m,opErrorCode:h,lastOpState:v,setOpError:S,setObserveBusy:y}=r,{taskId:N}=u,[x,M]=p.useState(""),[w,z]=p.useState(""),[G,ae]=p.useState(""),[se,C]=p.useState(""),[A,D]=p.useState(!1),[J,L]=p.useState(null),[E,Y]=p.useState(null),[ne,te]=p.useState([]),[X,W]=p.useState([]),[ce,K]=p.useState(!1),[ie,j]=p.useState(!1),[I,_]=p.useState(null),[oe,P]=p.useState(null),[b,k]=p.useState(!1),[Z,$]=p.useState(!1),[me,re]=p.useState(null),[le,de]=p.useState("idle"),[ue,Ee]=p.useState(null),[ke,Ke]=p.useState(null),[yt,at]=p.useState(!1),st=p.useCallback(()=>x.trim()?`/inspect/#/dag/${encodeURIComponent(x.trim())}?from=recovery`:"/inspect/#/",[x]),bt=p.useCallback(()=>{window.location.assign(st())},[st]),ut=p.useCallback(async()=>{if(x.trim())return x.trim();const we=N.trim();if(!we)return S("打开 DAG 检视需要任务 ID 或 DAG 运行 ID"),null;y(!0),S(null);try{const{status:rt,body:Le}=await ho("observeLink",{taskId:we}),_e=Le.result??{};if(rt>=400||Le.ok===!1)return S(Le.error?.message??"无法解析 DAG 画布地址"),de("unavailable"),Ee(Le.error?.message??null),null;const jt=typeof _e.dagRunId=="string"?_e.dagRunId.trim():"";return jt?(M(jt),de("match"),Ee(null),Ke(`/inspect/#/dag/${encodeURIComponent(jt)}`),jt):(S("尚未找到该任务的 DAG 运行,请稍后再打开检视"),de("unavailable"),Ee(_e.message??"未解析到 DAG run"),null)}catch(rt){return S(rt instanceof Error?rt.message:String(rt)),null}finally{y(!1)}},[x,N,S,y]),rn=p.useCallback(async()=>{await ut()&&at(!0)},[ut]),Jt=p.useCallback(async()=>{const we=await ut();we&&window.location.assign(`/inspect/#/dag/${encodeURIComponent(we)}?from=recovery`)},[ut]),Ht=p.useCallback(async()=>{K(!0);try{const we=N.trim(),rt=new URLSearchParams;we&&rt.set("taskId",we),rt.set("limit","40");const Le=await fetch(`/api/operator/v1/recovery/candidates?${rt.toString()}`,{credentials:"same-origin"});if(!Le.ok){te([]);return}const _e=await Le.json();te(Array.isArray(_e.runs)?_e.runs:[])}catch{te([])}finally{K(!1)}},[N]),ye=p.useCallback(async we=>{const rt=we.trim();if(!rt){W([]),_(null),P(null);return}j(!0);try{const Le=await fetch(`/api/dag-runs/${encodeURIComponent(rt)}`,{credentials:"same-origin"});if(!Le.ok){W([]),_(null),P(null);return}const _e=await Le.json(),jt=typeof _e.effectiveStatus=="string"&&_e.effectiveStatus||typeof _e.status=="string"&&_e.status||null;_(jt);const xt=Array.isArray(_e.nodes)?_e.nodes:[],Ii=Nh(xt.map(ft=>{const ea=(ft.nodeId??ft.id??"").trim();return ea?{nodeId:ea,status:ft.status,label:ft.label??ft.name,errorPreview:ft.errorPreview}:null}).filter(ft=>ft!==null));W(Ii);const zi=typeof _e.failureCategory=="string"&&_e.failureCategory||void 0,Li=xt.find(ft=>typeof ft.failureCategory=="string"&&ft.failureCategory&&ft.failureCategory!=="success")?.failureCategory;P(zi??Li??null)}catch{W([]),_(null),P(null)}finally{j(!1)}},[]);p.useEffect(()=>{f==="recovery"&&Ht()},[f,N,Ht]),p.useEffect(()=>{if(f!=="recovery"||b||ne.length===0)return;const we=x.trim(),rt=we?ne.some(Le=>Le.dagRunId===we):!1;if(!we||!rt){const Le=Hb(ne);Le&&Le!==we&&M(Le)}},[f,ne,x,b]),p.useEffect(()=>{f==="recovery"&&ye(x)},[f,x,ye]),p.useEffect(()=>{if(f!=="recovery"||Z||X.length===0)return;const we=w.trim(),rt=we?X.some(Le=>Le.nodeId===we):!1;if(!we||!rt){const Le=Bb(X);Le&&Le!==we&&z(Le)}},[f,X,w,Z]);const Ae=zb({operationState:I?null:v,errorCode:I?null:h,dagStatus:I,failureCategory:oe}),V=p.useMemo(()=>Sh(Ae),[Ae]),he=p.useMemo(()=>Mb(V),[V]),dt=p.useMemo(()=>Ib(Ae),[Ae]),We=p.useMemo(()=>X.find(we=>we.nodeId===w.trim()),[X,w]),lt=p.useRef(null);p.useEffect(()=>{E&<.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[E?.id]);const Ft=p.useCallback(we=>$b({actionLabel:we,dagRunId:x.trim()||void 0,fromNodeId:w.trim()||void 0,runStatus:I,nodeStatus:We?.status,nodeError:We?.errorPreview,factClassLabel:bh[Ae],errorMessage:m,errorCode:h}),[x,w,m,h,Ae,I,We?.errorPreview,We?.status]);p.useEffect(()=>{if(f!=="recovery"||A&&!Rh(se))return;const we=Ft(E?.label);we&&we!==se&&C(we)},[f,x,w,I,We,Ae,m,h,E?.label,A,se,Ft]);const{handleRecoveryCta:ja,submitRecoveryConfirm:Pn}=Yb({shell:r,actions:c,taskId:N,dagRunId:x,fromNodeId:w,featureId:G,recoveryReason:se,recoveryReasonTouched:A,recoveryConfirm:E,recoveryPlanSummary:J,setRecoveryConfirm:Y,setRecoveryPlanSummary:L,setRecoveryReport:re,setRecoveryReason:C,setRecoveryReasonTouched:D,buildCurrentRecoveryReason:Ft,openFullCanvas:Jt});return{dagRunId:x,setDagRunId:M,fromNodeId:w,setFromNodeId:z,featureId:G,setFeatureId:ae,recoveryReason:se,setRecoveryReason:C,recoveryReasonTouched:A,setRecoveryReasonTouched:D,recoveryPlanSummary:J,recoveryConfirm:E,setRecoveryConfirm:Y,setRecoveryPlanSummary:L,recoveryRuns:ne,recoveryNodes:X,recoveryRunsLoading:ce,recoveryNodesLoading:ie,recoveryRunStatus:I,manualRunId:b,setManualRunId:k,manualNodeId:Z,setManualNodeId:$,recoveryReport:me,setRecoveryReport:re,observeLinkStatus:le,observeLinkMessage:ue,observeUrl:ke,inspectSplitOpen:yt,setInspectSplitOpen:at,inspectPath:st,openFullInspect:bt,resolveDagRunForInspect:ut,openInspectSplit:rn,openFullCanvas:Jt,loadRecoveryRuns:Ht,loadRecoveryNodes:ye,recoveryFact:Ae,recoveryCtas:V,recoveryLanes:he,recommendedCtaId:dt,recoveryConfirmRef:lt,buildCurrentRecoveryReason:Ft,handleRecoveryCta:ja,submitRecoveryConfirm:Pn}}function Xb(i){const{shell:r,actions:c,prd:u}=i,{step:f,setStep:m,setOpMessage:h}=r,{runAction:v,isActionSuccess:S,summarizeEnvelope:y}=c,[N,x]=p.useState(""),[M,w]=p.useState(""),[z,G]=p.useState("standard"),[ae,se]=p.useState(""),[C,A]=p.useState(""),[D,J]=p.useState(""),L=co.find(ye=>ye.kind===z)??co[0],[E,Y]=p.useState(null),[ne,te]=p.useState(null),[X,W]=p.useState(""),[ce,K]=p.useState(null),[ie,j]=p.useState(null),[I,_]=p.useState(null),[oe,P]=p.useState(null),[b,k]=p.useState(null),[Z,$]=p.useState(!1),[me,re]=p.useState(null),[le,de]=p.useState(null),ue=p.useRef(!1),Ee=p.useCallback(()=>{_(null),P(null),k(null),$(!1),re(null),de(null),ue.current=!1},[]),ke=p.useCallback(()=>{Ee(),m("contract")},[Ee,m]),Ke=p.useCallback(ye=>{const Ae=ye.session;Ae?.sessionId&&Y(Ae.sessionId);const V=ye.question;te(V),K(ye.summary??null);const he=ye.assessmentId;typeof he=="string"&&he&&j(he),(ye.complete===!0||typeof he=="string"&&he)&&(ke(),h(ye.skipped===!0?"已跳过访谈:已按推荐补齐草稿并签发评估":"访谈已完成:草稿已绑定完整评估结果"))},[ke,h]),yt=p.useCallback(async(ye=!1)=>{const Ae=N.trim();if(!Ae)return;const V=`${Ae}:${ie??""}`;if(!(!ye&&le===V&&I!==null)&&!ue.current){ue.current=!0,_(null),P(null),k(null),re(null),$(!1);try{const he=await v("contractValidate",{taskId:Ae}),dt=S(he);if(_(dt),P(y(he)),!dt){de(V),h("契约校验未通过:请先修正草稿后再应用");return}const We=await v("contractDiff",{taskId:Ae});k(y(We)),de(V),h(S(We)?"校验与差异已就绪:确认后可应用契约":"校验通过,但差异查询失败(仍可查看下方摘要)")}finally{ue.current=!1}}},[ie,le,I,S,v,h,y,N]),at=p.useCallback(async()=>{const ye=N.trim();if(!ye||!ie)return;const Ae=await v("contractApply",{taskId:ye,assessmentId:ie},{clientRequestId:Ai("apply")});if(!S(Ae)){$(!1);return}$(!0);const V=await v("spineCheck",{taskId:ye});if(S(V)){re(!0),m("dag-confirm"),h("契约已应用并通过 Spine 审计,可生成并运行 DAG");return}re(!1),h("契约已应用,但 Spine 审计未通过:可重试 Spine")},[ie,S,v,h,m,N]),st=p.useCallback(async()=>{const ye=N.trim();if(!ye)return;const Ae=await v("spineCheck",{taskId:ye});if(S(Ae)){re(!0),m("dag-confirm"),h("Spine 审计已通过,可生成并运行 DAG");return}re(!1)},[S,v,h,m,N]),bt=p.useCallback(async()=>{const ye=c.confirmationId?.trim();if(!ye)return;const Ae=c.confirmationDetails?.confirmation?.humanGateToken,V=await v("confirmDagConfirmation",{confirmationId:ye,humanGateToken:Ae});S(V)&&(m("run"),await v("runDag",{confirmationId:ye},{clientRequestId:Ai("run")}))},[c.confirmationId,c.confirmationDetails,S,v,m]);p.useEffect(()=>{f==="contract"&&N.trim()&&yt(!1)},[f,N,ie,yt]);const ut=p.useCallback(ye=>ye.split(/[\n,;,;]+/).map(Ae=>Ae.trim()).filter(Boolean),[]),rn=p.useCallback(async()=>{const ye=u.prdDocuments.length>0?Tb(u.prdDocuments):void 0,Ae=ut(ae),V=ut(C),he=ut(D),dt={content:u.prdText,taskKind:z,...ye?{documents:ye}:{},...Ae.length>0?{allowedPaths:Ae}:{},...V.length>0?{forbiddenPaths:V}:{},...he.length>0?{verifyCommands:he}:{}};if(!wb("bootstrapFromPrd",dt)){u.setPrdFileError(kb());return}const We=await v("bootstrapFromPrd",dt);if(!We||We.ok===!1)return;const lt=We.result??{};lt.taskId&&x(lt.taskId),lt.title&&w(lt.title);const Ft=lt.parseStatus??"pending",ja=lt.draftPreview?.objective?.trim(),Pn=Array.isArray(lt.gaps)?lt.gaps.length:0,we=lt.semanticIntake?.applied?"semantic":lt.semanticIntake?.code??"no-semantic";h([`已创建任务「${lt.title??""}」(${lt.taskId??""})`,`来源:${lt.identitySource??"prd"}`,`解析:${Ft}(${we})`,ja?`目标:${ja.slice(0,120)}`:null,Pn>0?`缺口 ${Pn} 项待确认`:null].filter(Boolean).join(" · ")),m("interview")},[ae,C,u,v,h,m,ut,z,D]),Jt=[{id:"setup",label:"就绪检查"},{id:"import-prd",label:"导入需求"},{id:"interview",label:"需求访谈(可跳过)"},{id:"contract",label:"契约落地"},{id:"dag-confirm",label:"确认 DAG"},{id:"run",label:"运行"}],Ht=Jt.findIndex(ye=>ye.id===f);return{taskId:N,setTaskId:x,taskTitle:M,taskKind:z,setTaskKind:G,engineering:{allowedPathsText:ae,forbiddenPathsText:C,verifyCommandsText:D},setEngineering:ye=>{ye.allowedPathsText!==void 0&&se(ye.allowedPathsText),ye.forbiddenPathsText!==void 0&&A(ye.forbiddenPathsText),ye.verifyCommandsText!==void 0&&J(ye.verifyCommandsText)},workflowMeta:L,sessionId:E,question:ne,answerText:X,setAnswerText:W,draftSummary:ce,assessmentId:ie,contractValidateOk:I,contractValidateSummary:oe,contractDiffSummary:b,contractApplied:Z,spineOk:me,applyInterviewPayload:Ke,runContractPreflight:yt,applyContractThenSpine:at,retrySpineOnly:st,confirmAndRunDag:bt,importPrdAndCreate:rn,wizardSteps:Jt,stepIndex:Ht}}const Qb={chat:"对话",tasks:"任务",recovery:"恢复",night:"夜间",models:"模型与认证",settings:"设置"};async function Vb(i){return await import(i)}function Zb(i){const r=i.repoName?.trim();if(r)return r;const c=(i.repoRoot??"").split(/[\\/]/).filter(Boolean);return c.length?c[c.length-1]:"repository"}function Jb(i){const{nav:r,readiness:c,setupBlocked:u,degraded:f,health:m,inspectHref:h}=i,v=u||f?"models":"settings",S=u?"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。点击前往模型与认证。":f?"Pi 暂时降级:仍可恢复草稿与需求访谈。点击查看详情。":"Pi 已就绪。点击打开设置查看详情。";return{mode:"operate",activeTabHref:`#/${r}`,operateHref:"/#/",inspectHref:h,freshness:!1,readinessState:c,readinessHref:`#/${v}`,readinessTitle:S,repo:m?{name:Zb(m),fingerprint:m.repoFingerprint??"",version:m.packageVersion??"",product:m.productName??m.product??"",inspectReady:m.inspect?.ready}:null}}function Fb(i){const r=p.useRef(null),c=p.useRef(null),[u,f]=p.useState(!1),m=p.useMemo(()=>Jb(i),[i.nav,i.readiness,i.setupBlocked,i.degraded,i.health,i.inspectHref]),h=p.useRef(m);return h.current=m,p.useEffect(()=>{let v=!1;return Vb("/inspect/operator-chrome.js").then(S=>{v||!r.current||(c.current=S.mountOperatorChrome(r.current,h.current))}).catch(()=>{v||f(!0)}),()=>{v=!0,c.current?.destroy(),c.current=null}},[]),p.useEffect(()=>{c.current?.update(m)},[m]),s.jsxs(s.Fragment,{children:[s.jsx("div",{ref:r,"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:Qb[i.nav]}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(i.inspectHref),children:"观测"}),s.jsx("span",{role:"status",children:"共享导航加载失败,请刷新页面"})]}):null]})}function Wb(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 Pb=[{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 ex(i){if(!i)return null;const r=Date.parse(i);return Number.isNaN(r)?i:new Date(r).toLocaleString()}function tx(i){const r=i.readinessReport?.state??i.readiness,c=i.readinessReport?.probe,u=c?.details??{},f=i.readinessReport?.blockedActions??[],m=ex(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":r,"data-testid":"models-readiness-pill",children:vh[r]??r})]}),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:Pb.map(v=>{const S=c?.[v.key],y=u[v.detailKey],N=S===void 0;return s.jsxs("li",{className:`models-probe-item${N?" is-pending":S?" is-ok":" is-bad"}`,children:[s.jsx("span",{className:"models-probe-badge","aria-label":N?"未探测":S?"通过":"未通过",children:N?"—":S?"✓":"✕"}),s.jsxs("div",{className:"models-probe-body",children:[s.jsx("strong",{children:v.label}),s.jsx("span",{className:"muted",children:v.hint}),y?s.jsx("p",{className:"models-probe-detail",children:y}):null]})]},v.key)})})]}),r==="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:gh})]}):null,r==="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(v=>s.jsx("li",{children:s.jsx("code",{children:v})},v))})]}):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 Km(i){const{lane:r,cta:c,planSummary:u,reason:f,busy:m,confirmRef:h}=i;return!c||c.lane!==r?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??"—")," · 风险=",yh[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 nx(i){const{shell:r,recovery:c,wizard:u}=i,{busy:f}=r,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:["事实分类:",bh[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:Gb(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:qb(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 v=h.id===c.recommendedCtaId;return s.jsxs("button",{type:"button",className:v?"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":v?"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()){r.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(Km,{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(Km,{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:["[",ob[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 ax(i){const{health:r,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:r?.productName??"Loop Operator Console"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库根目录"}),s.jsx("dd",{children:s.jsx("code",{children:r?.repoRoot??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库指纹"}),s.jsx("dd",{children:s.jsx("code",{title:r?.repoFingerprint??void 0,children:r?.repoFingerprint?`${r.repoFingerprint.slice(0,12)}…`:"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Pi 就绪"}),s.jsxs("dd",{children:[s.jsxs("code",{children:[vh[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:Ci(f.command)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"DAG 生命周期"}),s.jsx("dd",{children:Ci(f.dag)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"最终验证"}),s.jsx("dd",{children:Ci(f.verification)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"晋升"}),s.jsx("dd",{children:Ci(f.promote)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务关闭"}),s.jsx("dd",{children:"不可用(MVP)"})]})]})]})]})}function sx(i){const{busy:r,degraded:c,taskId:u,assessmentId:f,contractValidateOk:m,contractValidateSummary:h,contractDiffSummary:v,contractApplied:S,spineOk:y,onRerunPreflight:N,onApplyContract:x,onRetrySpine:M}=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?r?"进行中…":"等待开始":m?"通过":"未通过"]}),h?s.jsx("pre",{className:"cmd","data-testid":"contract-validate-summary",children:h}):null,s.jsxs("p",{children:[s.jsx("strong",{children:"差异"}),v?"":":尚未拉取"]}),v?s.jsx("pre",{className:"cmd","data-testid":"contract-diff-summary",children:v}):null,S?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:r||!u.trim(),onClick:N,children:"重新校验"}),s.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"contract-apply",disabled:r||c||!f||m!==!0||S,onClick:x,children:"确认并应用契约"}),S&&y===!1?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:M,children:"重试 Spine"}):null]})]})}function lx(i){const{busy:r,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:r,onClick:()=>{m("prepareDagConfirmation",{taskId:c,dagHandle:`${c}.dag.json`,profile:"auto"})},children:"生成 DAG 并准备确认"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!u,onClick:h,children:"开始运行"})]}),u?s.jsxs("p",{className:"muted",children:["确认 ID: ",s.jsx("code",{children:u})]}):null]})}function ix(i){const{busy:r,taskKind:c,onTaskKindChange:u,workflowHint:f,prd:m,engineering:h,onEngineeringChange:v,onImport:S}=i,y=r||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,并合成一份可编辑正文。创建前可继续编辑。 系统会对 PRD 做确定性/语义结构化;工程边界(路径与验证)须人类确认,不会由模型编造。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"流程类型"}),s.jsx("select",{"data-testid":"workflow-kind-select",value:c,disabled:r||m.prdFileReading,onChange:N=>u(N.target.value),children:co.map(N=>s.jsx("option",{value:N.kind,children:N.label},N.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:N=>m.onDragEnter(N,y),onDragOver:N=>{N.preventDefault(),N.stopPropagation()},onDragLeave:m.onDragLeave,onDrop:N=>m.onDrop(N,y),children:[s.jsxs("div",{className:"prd-upload-toolbar",children:[s.jsxs("label",{className:`btn btn-ghost prd-upload-btn${y?" is-disabled":""}`,children:["选择需求文档",s.jsx("input",{type:"file",accept:gb,multiple:!0,hidden:!0,disabled:y,"data-testid":"prd-file-input",onChange:N=>{const x=N.currentTarget;m.loadPrdFromFiles(x.files).finally(()=>{x.value=""})}})]}),s.jsxs("span",{className:"muted prd-upload-hint",children:["支持多文件 .md / .markdown / .txt,单文件最大"," ",uo(oo),",最多 ",Di," 个"]}),m.prdDocuments.length>0?s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"prd-recompose",disabled:y,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((N,x)=>s.jsxs("li",{className:x===m.prdPrimaryIndex?"is-primary":void 0,"data-testid":`prd-file-item-${x}`,children:[s.jsxs("span",{className:"prd-file-item-name",children:[N.fileName,x===m.prdPrimaryIndex?s.jsx("span",{className:"prd-file-primary-tag",children:"主"}):null,s.jsxs("span",{className:"muted",children:[" ","· ",uo(N.sourceBytes)]})]}),s.jsxs("span",{className:"prd-file-item-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:y||x===m.prdPrimaryIndex,onClick:()=>m.setPrimaryDocument(x),children:"设为主"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:y||x===0,onClick:()=>m.moveDocument(x,-1),children:"上移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:y||x===m.prdDocuments.length-1,onClick:()=>m.moveDocument(x,1),children:"下移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:y,onClick:()=>m.removeDocument(x),children:"移除"})]})]},`${N.fileName}-${x}`))}):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:y,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:y,"data-testid":"prd-textarea",onChange:N=>m.onPrdTextChange(N.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.jsxs("details",{className:"engineering-boundary","data-testid":"engineering-boundary",children:[s.jsx("summary",{children:"工程边界(可选,人类确认)"}),s.jsxs("p",{className:"muted",children:["逗号或换行分隔。留空则 intake 后进入访谈补齐;不会自动填",s.jsx("code",{children:"src/worker/console/**"})," 模板。"]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"allowedPaths"}),s.jsx("textarea",{rows:2,value:h.allowedPathsText,disabled:y,"data-testid":"prd-allowed-paths",placeholder:"src/**, test/**",onChange:N=>v({allowedPathsText:N.target.value})})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"forbiddenPaths"}),s.jsx("textarea",{rows:2,value:h.forbiddenPathsText,disabled:y,"data-testid":"prd-forbidden-paths",placeholder:".harness/**, node_modules/**",onChange:N=>v({forbiddenPathsText:N.target.value})})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"verifyCommands(label:command 或纯命令)"}),s.jsx("textarea",{rows:2,value:h.verifyCommandsText,disabled:y,"data-testid":"prd-verify-commands",placeholder:"typecheck:npm run typecheck",onChange:N=>v({verifyCommandsText:N.target.value})})]})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||m.prdFileReading||!m.prdText.trim(),onClick:S,children:"导入并创建任务"})})]})}function rx(i){const{busy:r,taskId:c,taskTitle:u,taskKind:f,sessionId:m,question:h,answerText:v,onAnswerTextChange:S,draftSummary:y,assessmentId:N,runAction:x}=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:r||!c.trim(),onClick:()=>{x("interviewStart",{taskId:c,title:u,taskKind:f})},children:"开始 / 继续访谈"}):null,s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"interview-skip",disabled:r||!c.trim(),onClick:()=>{x("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})," · 风险=",yh[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:v,disabled:r,onChange:M=>S(M.target.value)})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:()=>{x("interviewTurn",{sessionId:m,questionId:h.id,response:"accept-recommendation"}).then(()=>S(""))},children:"接受推荐"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!v.trim(),onClick:()=>{x("interviewTurn",{sessionId:m,questionId:h.id,response:"override",text:v}).then(()=>S(""))},children:"提交自定义回答"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r||h.risk==="high",onClick:()=>{x("interviewTurn",{sessionId:m,questionId:h.id,response:"defer",text:v||h.recommendation}).then(()=>S(""))},children:"暂缓(非高风险)"})]})]}):null,N?s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:N})]}):null]})}function cx(i){const{busy:r,confirmationId:c,operationId:u,dagRunId:f,taskId:m,observeBusy:h,sseLog:v,runAction:S,onStopFollow:y,onShowInspectSplit:N,onOpenInspectSplit:x}=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:r||!c,onClick:()=>{S("runDag",{confirmationId:c},{clientRequestId:Ai("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:N,children:"打开检视"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:h||!f.trim()&&!m.trim(),title:"在本页侧栏预览,可关闭返回",onClick:x,children:"侧栏预览"})]}),s.jsx("pre",{className:"cmd","data-testid":"sse-log",children:v.join(`
|
|
29
|
-
`)||"(尚无事件)"})]})}function ox(i){const{shell:r,actions:c,wizard:u,prd:f,recovery:m}=i,{busy:h,step:v,setupBlocked:S,degraded:y}=r;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((N,x)=>s.jsxs("li",{"data-active":v===N.id,"data-done":x<u.stepIndex,children:[s.jsx("span",{className:"step-index",children:String(x+1).padStart(2,"0")}),s.jsx("span",{className:"step-label",children:N.label})]},N.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||S||v==="import-prd",placeholder:v==="import-prd"?"导入需求后自动生成":"task-id",onChange:N=>u.setTaskId(N.target.value.trim())})]}),u.taskTitle?s.jsxs("p",{className:"workflow-hint","data-testid":"task-title-chip",children:["任务名称:",u.taskTitle]}):null,v!=="import-prd"&&!S?s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-chip",children:["当前流程:",u.workflowMeta.label," ·"," ",s.jsx("code",{children:u.taskKind})]}):null,S||v==="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:()=>{r.selectNav("models"),c.runAction("refreshReadiness",{}).then(()=>r.loadHealth())},children:"刷新就绪状态"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h,onClick:()=>{c.runAction("doctor",{})},children:"运行诊断"}),s.jsx("pre",{className:"cmd",children:gh})]})]}):s.jsxs("div",{className:"wizard-body","data-testid":"wizard-body",children:[v==="import-prd"&&s.jsx(ix,{busy:h,taskKind:u.taskKind,onTaskKindChange:u.setTaskKind,workflowHint:u.workflowMeta.hint,prd:f,engineering:u.engineering,onEngineeringChange:u.setEngineering,onImport:()=>{u.importPrdAndCreate()}}),v==="interview"&&s.jsx(rx,{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}),v==="contract"&&s.jsx(sx,{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()}}),v==="dag-confirm"&&s.jsx(lx,{busy:h,taskId:u.taskId,confirmationId:c.confirmationId,confirmationDetails:c.confirmationDetails,runAction:c.runAction,onConfirmAndRun:()=>{u.confirmAndRunDag()}}),v==="run"&&s.jsx(cx,{busy:h,confirmationId:c.confirmationId,operationId:c.operationId,dagRunId:m.dagRunId,taskId:u.taskId,observeBusy:r.observeBusy,sseLog:c.sseLog,runAction:c.runAction,onStopFollow:c.stopFollowSse,onShowInspectSplit:()=>m.setInspectSplitOpen(!0),onOpenInspectSplit:()=>{m.openInspectSplit()}})]})]})}const ux={};function dx(){const i=mb(),r=p.useRef(()=>{}),c=p.useCallback(N=>r.current(N),[]),u=hb({shell:i,applyInterviewPayload:c}),f=Ab(),m=Xb({shell:i,actions:u,prd:f}),h=Kb({shell:i,actions:u,wizard:m});p.useEffect(()=>{r.current=m.applyInterviewPayload}),p.useEffect(()=>{i.loadHealth()},[i.loadHealth]);const v=p.useCallback((N,x={})=>{i.selectNav(N),x.taskId&&m.setTaskId(x.taskId),x.dagRunId&&h.setDagRunId(x.dagRunId),x.fromNodeId&&h.setFromNodeId(x.fromNodeId),x.featureId&&h.setFeatureId(x.featureId);const M=uh(N,x);window.location.hash.replace(/^#/,"")!==M&&(window.location.hash=M)},[i.selectNav,m.setTaskId,h.setDagRunId,h.setFromNodeId,h.setFeatureId]),S=p.useCallback(()=>{const N=ny(window.location);if(N){v(N.workspace,N);return}const x=oh({env:ux?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location});v(x,{})},[v]);p.useEffect(()=>(S(),window.addEventListener("hashchange",S),()=>window.removeEventListener("hashchange",S)),[S]);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(Fb,{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(Wb,{opError:i.opError,opMessage:i.opMessage}),s.jsxs("main",{className:`console-main${i.nav==="chat"?" console-main--fill":""}`,children:[i.nav==="tasks"?s.jsx(ox,{shell:i,actions:u,wizard:m,prd:f,recovery:h}):null,i.nav==="recovery"?s.jsx(nx,{shell:i,recovery:h,wizard:m}):null,i.nav==="night"?s.jsx(ov,{busy:i.busy,runAction:u.runAction,isActionSuccess:u.isActionSuccess,setOpError:i.setOpError}):null,i.nav==="models"?s.jsx(tx,{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(rb,{origin:"",readiness:i.readiness,surface:"workspace",onNavigateWorkspace:v})]}):null,i.nav==="settings"?s.jsx(ax,{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(Jg,{dagRunId:h.dagRunId.trim(),nodeId:h.fromNodeId.trim()||void 0,onClose:()=>h.setInspectSplitOpen(!1),onOpenFull:h.openFullInspect}):null]})]})})}const Ch=document.getElementById("root");if(!Ch)throw new Error("Loop Operator Console: #root missing");Vg.createRoot(Ch).render(s.jsx(p.StrictMode,{children:s.jsx(dx,{})}));
|