@tea-agent/loop-agent 0.33.5 → 0.33.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/application/task-lifecycle/advance.js +254 -4
  3. package/dist/application/task-lifecycle/gates.js +50 -0
  4. package/dist/application/task-lifecycle/observe.js +11 -2
  5. package/dist/commands/init-upgrade.js +32 -1
  6. package/dist/commands/init.js +94 -3
  7. package/dist/executors/shell-write-guard.js +26 -8
  8. package/dist/shared/operator/capabilities.js +72 -42
  9. package/dist/shared/resilient-git.js +133 -0
  10. package/dist/task/source-prepare/artifact-meta.js +137 -0
  11. package/dist/task/source-prepare/index.js +2 -0
  12. package/dist/task/source-prepare/parse-intent.js +58 -10
  13. package/dist/task/source-prepare/prepare.js +180 -16
  14. package/dist/task/source-prepare/reference-integrity.js +18 -2
  15. package/dist/task/source-prepare/semantic-intake.js +404 -0
  16. package/dist/worker/console/app-data.js +2 -0
  17. package/dist/worker/console/chat/chat-event-store.js +190 -25
  18. package/dist/worker/console/chat/pi-console-config.js +250 -32
  19. package/dist/worker/console/chat/pi-runtime.js +625 -71
  20. package/dist/worker/console/chat/resource-loader.js +5 -4
  21. package/dist/worker/console/chat/routes.js +324 -146
  22. package/dist/worker/console/chat/runtime-context.js +48 -12
  23. package/dist/worker/console/chat/runtime-selection.js +59 -0
  24. package/dist/worker/console/chat/shortcuts.js +1 -0
  25. package/dist/worker/console/chat/tool-adapter.js +9 -3
  26. package/dist/worker/console/chat/tools.js +5 -1
  27. package/dist/worker/console/dag-execution-receipt.js +380 -0
  28. package/dist/worker/console/operator-actions.js +559 -68
  29. package/dist/worker/console/server.js +8 -15
  30. package/dist/worker/console/static/assets/index-BUOLppPr.js +28 -0
  31. package/dist/worker/console/static/assets/index-C1KzazY5.css +1 -0
  32. package/dist/worker/console/static/index.html +2 -2
  33. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +45 -8
  34. package/dist/worker/console/static-src/operator-chat/refs.js +9 -0
  35. package/dist/worker/console/static-src/operator-chat/runtime-snapshot-store.js +257 -0
  36. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +16 -0
  37. package/dist/worker/console/static-src/operator-chat/useChatStream.js +210 -184
  38. package/dist/worker/console/static-src/operator-chat/useChatThread.js +49 -5
  39. package/dist/worker/console/static-src/operator-chat/useComposer.js +17 -0
  40. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +225 -74
  41. package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +196 -0
  42. package/dist/worker/delivery/final-verification.js +13 -5
  43. package/dist/worker/delivery/package.js +31 -19
  44. package/dist/worker/delivery/verification-bundle.js +6 -4
  45. package/dist/worker/observe/static/operator-chrome.css +5 -2
  46. package/dist/worker/observe/static/operator-chrome.js +6 -1
  47. package/dist/worker/observe/static/styles.css +39 -9
  48. package/dist/workflows/dag/frontend-worktree-diff.js +12 -27
  49. package/dist/workflows/dag/workspace-checkpoint.js +8 -27
  50. package/harness.json +1 -1
  51. package/package.json +1 -1
  52. package/skills/loop-agent/references/command-reference.md +3 -1
  53. package/skills/loop-agent/references/source-and-plan-practice.md +13 -0
  54. package/skills/loop-agent/references/task-workflow.md +4 -0
  55. package/dist/worker/console/chat/instruction-skills.js +0 -217
  56. package/dist/worker/console/static/assets/index-CnUXAqxG.css +0 -1
  57. package/dist/worker/console/static/assets/index-CteJFFL2.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"]'))o(f);new MutationObserver(f=>{for(const h of f)if(h.type==="childList")for(const m of h.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&o(m)}).observe(document,{childList:!0,subtree:!0});function u(f){const h={};return f.integrity&&(h.integrity=f.integrity),f.referrerPolicy&&(h.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?h.credentials="include":f.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function o(f){if(f.ep)return;f.ep=!0;const h=u(f);fetch(f.href,h)}})();var zr={exports:{}},Gl={};var tm;function dv(){if(tm)return Gl;tm=1;var c=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function u(o,f,h){var m=null;if(h!==void 0&&(m=""+h),f.key!==void 0&&(m=""+f.key),"key"in f){h={};for(var g in f)g!=="key"&&(h[g]=f[g])}else h=f;return f=h.ref,{$$typeof:c,type:o,key:m,ref:f!==void 0?f:null,props:h}}return Gl.Fragment=r,Gl.jsx=u,Gl.jsxs=u,Gl}var nm;function fv(){return nm||(nm=1,zr.exports=dv()),zr.exports}var s=fv(),_r={exports:{}},he={};var am;function mv(){if(am)return he;am=1;var c=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),A=Symbol.for("react.lazy"),R=Symbol.for("react.activity"),V=Symbol.iterator;function L(S){return S===null||typeof S!="object"?null:(S=V&&S[V]||S["@@iterator"],typeof S=="function"?S:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},X=Object.assign,ae={};function te(S,w,P){this.props=S,this.context=w,this.refs=ae,this.updater=P||H}te.prototype.isReactComponent={},te.prototype.setState=function(S,w){if(typeof S!="object"&&typeof S!="function"&&S!=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,S,w,"setState")},te.prototype.forceUpdate=function(S){this.updater.enqueueForceUpdate(this,S,"forceUpdate")};function U(){}U.prototype=te.prototype;function _(S,w,P){this.props=S,this.context=w,this.refs=ae,this.updater=P||H}var Q=_.prototype=new U;Q.constructor=_,X(Q,te.prototype),Q.isPureReactComponent=!0;var W=Array.isArray;function C(){}var k={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function ne(S,w,P){var se=P.ref;return{$$typeof:c,type:S,key:w,ref:se!==void 0?se:null,props:P}}function ee(S,w){return ne(S.type,w,S.props)}function M(S){return typeof S=="object"&&S!==null&&S.$$typeof===c}function K(S){var w={"=":"=0",":":"=2"};return"$"+S.replace(/[=:]/g,function(P){return w[P]})}var G=/\/+/g;function q(S,w){return typeof S=="object"&&S!==null&&S.key!=null?K(""+S.key):w.toString(36)}function F(S){switch(S.status){case"fulfilled":return S.value;case"rejected":throw S.reason;default:switch(typeof S.status=="string"?S.then(C,C):(S.status="pending",S.then(function(w){S.status==="pending"&&(S.status="fulfilled",S.value=w)},function(w){S.status==="pending"&&(S.status="rejected",S.reason=w)})),S.status){case"fulfilled":return S.value;case"rejected":throw S.reason}}throw S}function j(S,w,P,se,ie){var oe=typeof S;(oe==="undefined"||oe==="boolean")&&(S=null);var me=!1;if(S===null)me=!0;else switch(oe){case"bigint":case"string":case"number":me=!0;break;case"object":switch(S.$$typeof){case c:case r:me=!0;break;case A:return me=S._init,j(me(S._payload),w,P,se,ie)}}if(me)return ie=ie(S),me=se===""?"."+q(S,0):se,W(ie)?(P="",me!=null&&(P=me.replace(G,"$&/")+"/"),j(ie,w,P,"",function(Ke){return Ke})):ie!=null&&(M(ie)&&(ie=ee(ie,P+(ie.key==null||S&&S.key===ie.key?"":(""+ie.key).replace(G,"$&/")+"/")+me)),w.push(ie)),1;me=0;var Ee=se===""?".":se+":";if(W(S))for(var xe=0;xe<S.length;xe++)se=S[xe],oe=Ee+q(se,xe),me+=j(se,w,P,oe,ie);else if(xe=L(S),typeof xe=="function")for(S=xe.call(S),xe=0;!(se=S.next()).done;)se=se.value,oe=Ee+q(se,xe++),me+=j(se,w,P,oe,ie);else if(oe==="object"){if(typeof S.then=="function")return j(F(S),w,P,se,ie);throw w=String(S),Error("Objects are not valid as a React child (found: "+(w==="[object Object]"?"object with keys {"+Object.keys(S).join(", ")+"}":w)+"). If you meant to render a collection of children, use an array instead.")}return me}function z(S,w,P){if(S==null)return S;var se=[],ie=0;return j(S,se,"","",function(oe){return w.call(P,oe,ie++)}),se}function E(S){if(S._status===-1){var w=S._result;w=w(),w.then(function(P){(S._status===0||S._status===-1)&&(S._status=1,S._result=P)},function(P){(S._status===0||S._status===-1)&&(S._status=2,S._result=P)}),S._status===-1&&(S._status=0,S._result=w)}if(S._status===1)return S._result.default;throw S._result}var le=typeof reportError=="function"?reportError:function(S){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var w=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof S=="object"&&S!==null&&typeof S.message=="string"?String(S.message):String(S),error:S});if(!window.dispatchEvent(w))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",S);return}console.error(S)},re={map:z,forEach:function(S,w,P){z(S,function(){w.apply(this,arguments)},P)},count:function(S){var w=0;return z(S,function(){w++}),w},toArray:function(S){return z(S,function(w){return w})||[]},only:function(S){if(!M(S))throw Error("React.Children.only expected to receive a single React element child.");return S}};return he.Activity=R,he.Children=re,he.Component=te,he.Fragment=u,he.Profiler=f,he.PureComponent=_,he.StrictMode=o,he.Suspense=y,he.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=k,he.__COMPILER_RUNTIME={__proto__:null,c:function(S){return k.H.useMemoCache(S)}},he.cache=function(S){return function(){return S.apply(null,arguments)}},he.cacheSignal=function(){return null},he.cloneElement=function(S,w,P){if(S==null)throw Error("The argument must be a React element, but you passed "+S+".");var se=X({},S.props),ie=S.key;if(w!=null)for(oe in w.key!==void 0&&(ie=""+w.key),w)!Y.call(w,oe)||oe==="key"||oe==="__self"||oe==="__source"||oe==="ref"&&w.ref===void 0||(se[oe]=w[oe]);var oe=arguments.length-2;if(oe===1)se.children=P;else if(1<oe){for(var me=Array(oe),Ee=0;Ee<oe;Ee++)me[Ee]=arguments[Ee+2];se.children=me}return ne(S.type,ie,se)},he.createContext=function(S){return S={$$typeof:m,_currentValue:S,_currentValue2:S,_threadCount:0,Provider:null,Consumer:null},S.Provider=S,S.Consumer={$$typeof:h,_context:S},S},he.createElement=function(S,w,P){var se,ie={},oe=null;if(w!=null)for(se in w.key!==void 0&&(oe=""+w.key),w)Y.call(w,se)&&se!=="key"&&se!=="__self"&&se!=="__source"&&(ie[se]=w[se]);var me=arguments.length-2;if(me===1)ie.children=P;else if(1<me){for(var Ee=Array(me),xe=0;xe<me;xe++)Ee[xe]=arguments[xe+2];ie.children=Ee}if(S&&S.defaultProps)for(se in me=S.defaultProps,me)ie[se]===void 0&&(ie[se]=me[se]);return ne(S,oe,ie)},he.createRef=function(){return{current:null}},he.forwardRef=function(S){return{$$typeof:g,render:S}},he.isValidElement=M,he.lazy=function(S){return{$$typeof:A,_payload:{_status:-1,_result:S},_init:E}},he.memo=function(S,w){return{$$typeof:b,type:S,compare:w===void 0?null:w}},he.startTransition=function(S){var w=k.T,P={};k.T=P;try{var se=S(),ie=k.S;ie!==null&&ie(P,se),typeof se=="object"&&se!==null&&typeof se.then=="function"&&se.then(C,le)}catch(oe){le(oe)}finally{w!==null&&P.types!==null&&(w.types=P.types),k.T=w}},he.unstable_useCacheRefresh=function(){return k.H.useCacheRefresh()},he.use=function(S){return k.H.use(S)},he.useActionState=function(S,w,P){return k.H.useActionState(S,w,P)},he.useCallback=function(S,w){return k.H.useCallback(S,w)},he.useContext=function(S){return k.H.useContext(S)},he.useDebugValue=function(){},he.useDeferredValue=function(S,w){return k.H.useDeferredValue(S,w)},he.useEffect=function(S,w){return k.H.useEffect(S,w)},he.useEffectEvent=function(S){return k.H.useEffectEvent(S)},he.useId=function(){return k.H.useId()},he.useImperativeHandle=function(S,w,P){return k.H.useImperativeHandle(S,w,P)},he.useInsertionEffect=function(S,w){return k.H.useInsertionEffect(S,w)},he.useLayoutEffect=function(S,w){return k.H.useLayoutEffect(S,w)},he.useMemo=function(S,w){return k.H.useMemo(S,w)},he.useOptimistic=function(S,w){return k.H.useOptimistic(S,w)},he.useReducer=function(S,w,P){return k.H.useReducer(S,w,P)},he.useRef=function(S){return k.H.useRef(S)},he.useState=function(S){return k.H.useState(S)},he.useSyncExternalStore=function(S,w,P){return k.H.useSyncExternalStore(S,w,P)},he.useTransition=function(){return k.H.useTransition()},he.version="19.2.8",he}var lm;function Wr(){return lm||(lm=1,_r.exports=mv()),_r.exports}var v=Wr(),Ir={exports:{}},Yl={},Ur={exports:{}},Hr={};var sm;function hv(){return sm||(sm=1,(function(c){function r(j,z){var E=j.length;j.push(z);e:for(;0<E;){var le=E-1>>>1,re=j[le];if(0<f(re,z))j[le]=z,j[E]=re,E=le;else break e}}function u(j){return j.length===0?null:j[0]}function o(j){if(j.length===0)return null;var z=j[0],E=j.pop();if(E!==z){j[0]=E;e:for(var le=0,re=j.length,S=re>>>1;le<S;){var w=2*(le+1)-1,P=j[w],se=w+1,ie=j[se];if(0>f(P,E))se<re&&0>f(ie,P)?(j[le]=ie,j[se]=E,le=se):(j[le]=P,j[w]=E,le=w);else if(se<re&&0>f(ie,E))j[le]=ie,j[se]=E,le=se;else break e}}return z}function f(j,z){var E=j.sortIndex-z.sortIndex;return E!==0?E:j.id-z.id}if(c.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;c.unstable_now=function(){return h.now()}}else{var m=Date,g=m.now();c.unstable_now=function(){return m.now()-g}}var y=[],b=[],A=1,R=null,V=3,L=!1,H=!1,X=!1,ae=!1,te=typeof setTimeout=="function"?setTimeout:null,U=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function Q(j){for(var z=u(b);z!==null;){if(z.callback===null)o(b);else if(z.startTime<=j)o(b),z.sortIndex=z.expirationTime,r(y,z);else break;z=u(b)}}function W(j){if(X=!1,Q(j),!H)if(u(y)!==null)H=!0,C||(C=!0,K());else{var z=u(b);z!==null&&F(W,z.startTime-j)}}var C=!1,k=-1,Y=5,ne=-1;function ee(){return ae?!0:!(c.unstable_now()-ne<Y)}function M(){if(ae=!1,C){var j=c.unstable_now();ne=j;var z=!0;try{e:{H=!1,X&&(X=!1,U(k),k=-1),L=!0;var E=V;try{t:{for(Q(j),R=u(y);R!==null&&!(R.expirationTime>j&&ee());){var le=R.callback;if(typeof le=="function"){R.callback=null,V=R.priorityLevel;var re=le(R.expirationTime<=j);if(j=c.unstable_now(),typeof re=="function"){R.callback=re,Q(j),z=!0;break t}R===u(y)&&o(y),Q(j)}else o(y);R=u(y)}if(R!==null)z=!0;else{var S=u(b);S!==null&&F(W,S.startTime-j),z=!1}}break e}finally{R=null,V=E,L=!1}z=void 0}}finally{z?K():C=!1}}}var K;if(typeof _=="function")K=function(){_(M)};else if(typeof MessageChannel<"u"){var G=new MessageChannel,q=G.port2;G.port1.onmessage=M,K=function(){q.postMessage(null)}}else K=function(){te(M,0)};function F(j,z){k=te(function(){j(c.unstable_now())},z)}c.unstable_IdlePriority=5,c.unstable_ImmediatePriority=1,c.unstable_LowPriority=4,c.unstable_NormalPriority=3,c.unstable_Profiling=null,c.unstable_UserBlockingPriority=2,c.unstable_cancelCallback=function(j){j.callback=null},c.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},c.unstable_getCurrentPriorityLevel=function(){return V},c.unstable_next=function(j){switch(V){case 1:case 2:case 3:var z=3;break;default:z=V}var E=V;V=z;try{return j()}finally{V=E}},c.unstable_requestPaint=function(){ae=!0},c.unstable_runWithPriority=function(j,z){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var E=V;V=j;try{return z()}finally{V=E}},c.unstable_scheduleCallback=function(j,z,E){var le=c.unstable_now();switch(typeof E=="object"&&E!==null?(E=E.delay,E=typeof E=="number"&&0<E?le+E:le):E=le,j){case 1:var re=-1;break;case 2:re=250;break;case 5:re=1073741823;break;case 4:re=1e4;break;default:re=5e3}return re=E+re,j={id:A++,callback:z,priorityLevel:j,startTime:E,expirationTime:re,sortIndex:-1},E>le?(j.sortIndex=E,r(b,j),u(y)===null&&j===u(b)&&(X?(U(k),k=-1):X=!0,F(W,E-le))):(j.sortIndex=re,r(y,j),H||L||(H=!0,C||(C=!0,K()))),j},c.unstable_shouldYield=ee,c.unstable_wrapCallback=function(j){var z=V;return function(){var E=V;V=z;try{return j.apply(this,arguments)}finally{V=E}}}})(Hr)),Hr}var im;function pv(){return im||(im=1,Ur.exports=hv()),Ur.exports}var Lr={exports:{}},ot={};var cm;function vv(){if(cm)return ot;cm=1;var c=Wr();function r(y){var b="https://react.dev/errors/"+y;if(1<arguments.length){b+="?args[]="+encodeURIComponent(arguments[1]);for(var A=2;A<arguments.length;A++)b+="&args[]="+encodeURIComponent(arguments[A])}return"Minified React error #"+y+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function u(){}var o={d:{f:u,r:function(){throw Error(r(522))},D:u,C:u,L:u,m:u,X:u,S:u,M:u},p:0,findDOMNode:null},f=Symbol.for("react.portal");function h(y,b,A){var R=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:f,key:R==null?null:""+R,children:y,containerInfo:b,implementation:A}}var m=c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(y,b){if(y==="font")return"";if(typeof b=="string")return b==="use-credentials"?b:""}return ot.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,ot.createPortal=function(y,b){var A=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!b||b.nodeType!==1&&b.nodeType!==9&&b.nodeType!==11)throw Error(r(299));return h(y,b,null,A)},ot.flushSync=function(y){var b=m.T,A=o.p;try{if(m.T=null,o.p=2,y)return y()}finally{m.T=b,o.p=A,o.d.f()}},ot.preconnect=function(y,b){typeof y=="string"&&(b?(b=b.crossOrigin,b=typeof b=="string"?b==="use-credentials"?b:"":void 0):b=null,o.d.C(y,b))},ot.prefetchDNS=function(y){typeof y=="string"&&o.d.D(y)},ot.preinit=function(y,b){if(typeof y=="string"&&b&&typeof b.as=="string"){var A=b.as,R=g(A,b.crossOrigin),V=typeof b.integrity=="string"?b.integrity:void 0,L=typeof b.fetchPriority=="string"?b.fetchPriority:void 0;A==="style"?o.d.S(y,typeof b.precedence=="string"?b.precedence:void 0,{crossOrigin:R,integrity:V,fetchPriority:L}):A==="script"&&o.d.X(y,{crossOrigin:R,integrity:V,fetchPriority:L,nonce:typeof b.nonce=="string"?b.nonce:void 0})}},ot.preinitModule=function(y,b){if(typeof y=="string")if(typeof b=="object"&&b!==null){if(b.as==null||b.as==="script"){var A=g(b.as,b.crossOrigin);o.d.M(y,{crossOrigin:A,integrity:typeof b.integrity=="string"?b.integrity:void 0,nonce:typeof b.nonce=="string"?b.nonce:void 0})}}else b==null&&o.d.M(y)},ot.preload=function(y,b){if(typeof y=="string"&&typeof b=="object"&&b!==null&&typeof b.as=="string"){var A=b.as,R=g(A,b.crossOrigin);o.d.L(y,A,{crossOrigin:R,integrity:typeof b.integrity=="string"?b.integrity:void 0,nonce:typeof b.nonce=="string"?b.nonce:void 0,type:typeof b.type=="string"?b.type:void 0,fetchPriority:typeof b.fetchPriority=="string"?b.fetchPriority:void 0,referrerPolicy:typeof b.referrerPolicy=="string"?b.referrerPolicy:void 0,imageSrcSet:typeof b.imageSrcSet=="string"?b.imageSrcSet:void 0,imageSizes:typeof b.imageSizes=="string"?b.imageSizes:void 0,media:typeof b.media=="string"?b.media:void 0})}},ot.preloadModule=function(y,b){if(typeof y=="string")if(b){var A=g(b.as,b.crossOrigin);o.d.m(y,{as:typeof b.as=="string"&&b.as!=="script"?b.as:void 0,crossOrigin:A,integrity:typeof b.integrity=="string"?b.integrity:void 0})}else o.d.m(y)},ot.requestFormReset=function(y){o.d.r(y)},ot.unstable_batchedUpdates=function(y,b){return y(b)},ot.useFormState=function(y,b,A){return m.H.useFormState(y,b,A)},ot.useFormStatus=function(){return m.H.useHostTransitionStatus()},ot.version="19.2.8",ot}var rm;function gv(){if(rm)return Lr.exports;rm=1;function c(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(r){console.error(r)}}return c(),Lr.exports=vv(),Lr.exports}var um;function yv(){if(um)return Yl;um=1;var c=pv(),r=Wr(),u=gv();function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function f(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function h(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function m(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function g(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function y(e){if(h(e)!==e)throw Error(o(188))}function b(e){var t=e.alternate;if(!t){if(t=h(e),t===null)throw Error(o(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return y(l),e;if(i===a)return y(l),t;i=i.sibling}throw Error(o(188))}if(n.return!==a.return)n=l,a=i;else{for(var d=!1,p=l.child;p;){if(p===n){d=!0,n=l,a=i;break}if(p===a){d=!0,a=l,n=i;break}p=p.sibling}if(!d){for(p=i.child;p;){if(p===n){d=!0,n=i,a=l;break}if(p===a){d=!0,a=i,n=l;break}p=p.sibling}if(!d)throw Error(o(189))}}if(n.alternate!==a)throw Error(o(190))}if(n.tag!==3)throw Error(o(188));return n.stateNode.current===n?e:t}function A(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=A(e),t!==null)return t;e=e.sibling}return null}var R=Object.assign,V=Symbol.for("react.element"),L=Symbol.for("react.transitional.element"),H=Symbol.for("react.portal"),X=Symbol.for("react.fragment"),ae=Symbol.for("react.strict_mode"),te=Symbol.for("react.profiler"),U=Symbol.for("react.consumer"),_=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),W=Symbol.for("react.suspense"),C=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),ee=Symbol.for("react.memo_cache_sentinel"),M=Symbol.iterator;function K(e){return e===null||typeof e!="object"?null:(e=M&&e[M]||e["@@iterator"],typeof e=="function"?e:null)}var G=Symbol.for("react.client.reference");function q(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===G?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case X:return"Fragment";case te:return"Profiler";case ae:return"StrictMode";case W:return"Suspense";case C:return"SuspenseList";case ne:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case H:return"Portal";case _:return e.displayName||"Context";case U:return(e._context.displayName||"Context")+".Consumer";case Q:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case k:return t=e.displayName||null,t!==null?t:q(e.type)||"Memo";case Y:t=e._payload,e=e._init;try{return q(e(t))}catch{}}return null}var F=Array.isArray,j=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=u.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E={pending:!1,data:null,method:null,action:null},le=[],re=-1;function S(e){return{current:e}}function w(e){0>re||(e.current=le[re],le[re]=null,re--)}function P(e,t){re++,le[re]=e.current,e.current=t}var se=S(null),ie=S(null),oe=S(null),me=S(null);function Ee(e,t){switch(P(oe,t),P(ie,e),P(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Rf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Rf(t),e=Cf(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}w(se),P(se,e)}function xe(){w(se),w(ie),w(oe)}function Ke(e){e.memoizedState!==null&&P(me,e);var t=se.current,n=Cf(t,e.type);t!==n&&(P(ie,e),P(se,n))}function mt(e){ie.current===e&&(w(se),w(ie)),me.current===e&&(w(me),Hl._currentValue=E)}var ht,pt;function pe(e){if(ht===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);ht=t&&t[1]||"",pt=-1<n.stack.indexOf(`
2
- at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
3
- `+ht+e+pt}var _e=!1;function Fe(e,t){if(!e||_e)return"";_e=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var J=function(){throw Error()};if(Object.defineProperty(J.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(J,[])}catch(B){var I=B}Reflect.construct(e,[],J)}else{try{J.call()}catch(B){I=B}e.call(J.prototype)}}else{try{throw Error()}catch(B){I=B}(J=e())&&typeof J.catch=="function"&&J.catch(function(){})}}catch(B){if(B&&I&&typeof B.stack=="string")return[B.stack,I.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 i=a.DetermineComponentFrameRoot(),d=i[0],p=i[1];if(d&&p){var x=d.split(`
4
- `),O=p.split(`
5
- `);for(l=a=0;a<x.length&&!x[a].includes("DetermineComponentFrameRoot");)a++;for(;l<O.length&&!O[l].includes("DetermineComponentFrameRoot");)l++;if(a===x.length||l===O.length)for(a=x.length-1,l=O.length-1;1<=a&&0<=l&&x[a]!==O[l];)l--;for(;1<=a&&0<=l;a--,l--)if(x[a]!==O[l]){if(a!==1||l!==1)do if(a--,l--,0>l||x[a]!==O[l]){var $=`
6
- `+x[a].replace(" at new "," at ");return e.displayName&&$.includes("<anonymous>")&&($=$.replace("<anonymous>",e.displayName)),$}while(1<=a&&0<=l);break}}}finally{_e=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?pe(n):""}function Ge(e,t){switch(e.tag){case 26:case 27:case 5:return pe(e.type);case 16:return pe("Lazy");case 13:return e.child!==t&&t!==null?pe("Suspense Fallback"):pe("Suspense");case 19:return pe("SuspenseList");case 0:case 15:return Fe(e.type,!1);case 11:return Fe(e.type.render,!1);case 1:return Fe(e.type,!0);case 31:return pe("Activity");default:return""}}function Pt(e){try{var t="",n=null;do t+=Ge(e,n),n=e,e=e.return;while(e);return t}catch(a){return`
7
- Error generating stack: `+a.message+`
8
- `+a.stack}}var Vt=Object.prototype.hasOwnProperty,Dt=c.unstable_scheduleCallback,$n=c.unstable_cancelCallback,xi=c.unstable_shouldYield,Si=c.unstable_requestPaint,We=c.unstable_now,Zl=c.unstable_getCurrentPriorityLevel,Xn=c.unstable_ImmediatePriority,Jl=c.unstable_UserBlockingPriority,fa=c.unstable_NormalPriority,Te=c.unstable_LowPriority,Pe=c.unstable_IdlePriority,He=c.log,Nt=c.unstable_setDisableYieldValue,Ot=null,dt=null;function at(e){if(typeof He=="function"&&Nt(e),dt&&typeof dt.setStrictMode=="function")try{dt.setStrictMode(Ot,e)}catch{}}var ut=Math.clz32?Math.clz32:Fm,Zm=Math.log,Jm=Math.LN2;function Fm(e){return e>>>=0,e===0?32:31-(Zm(e)/Jm|0)|0}var Fl=256,Wl=262144,Pl=4194304;function Kn(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 es(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var p=a&134217727;return p!==0?(a=p&~i,a!==0?l=Kn(a):(d&=p,d!==0?l=Kn(d):n||(n=p&~e,n!==0&&(l=Kn(n))))):(p=a&~i,p!==0?l=Kn(p):d!==0?l=Kn(d):n||(n=a&~e,n!==0&&(l=Kn(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Fa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Wm(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 au(){var e=Pl;return Pl<<=1,(Pl&62914560)===0&&(Pl=4194304),e}function ji(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Wa(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Pm(e,t,n,a,l,i){var d=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var p=e.entanglements,x=e.expirationTimes,O=e.hiddenUpdates;for(n=d&~n;0<n;){var $=31-ut(n),J=1<<$;p[$]=0,x[$]=-1;var I=O[$];if(I!==null)for(O[$]=null,$=0;$<I.length;$++){var B=I[$];B!==null&&(B.lane&=-536870913)}n&=~J}a!==0&&lu(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(d&~t))}function lu(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-ut(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function su(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-ut(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function iu(e,t){var n=t&-t;return n=(n&42)!==0?1:Ni(n),(n&(e.suspendedLanes|t))!==0?0:n}function Ni(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 Ri(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function cu(){var e=z.p;return e!==0?e:(e=window.event,e===void 0?32:Vf(e.type))}function ru(e,t){var n=z.p;try{return z.p=e,t()}finally{z.p=n}}var xn=Math.random().toString(36).slice(2),lt="__reactFiber$"+xn,vt="__reactProps$"+xn,ma="__reactContainer$"+xn,Ci="__reactEvents$"+xn,eh="__reactListeners$"+xn,th="__reactHandles$"+xn,uu="__reactResources$"+xn,Pa="__reactMarker$"+xn;function Ti(e){delete e[lt],delete e[vt],delete e[Ci],delete e[eh],delete e[th]}function ha(e){var t=e[lt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[lt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Of(e);e!==null;){if(n=e[lt])return n;e=Of(e)}return t}e=n,n=e.parentNode}return null}function pa(e){if(e=e[lt]||e[ma]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function el(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(o(33))}function va(e){var t=e[uu];return t||(t=e[uu]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function tt(e){e[Pa]=!0}var ou=new Set,du={};function Qn(e,t){ga(e,t),ga(e+"Capture",t)}function ga(e,t){for(du[e]=t,e=0;e<t.length;e++)ou.add(t[e])}var nh=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]*$"),fu={},mu={};function ah(e){return Vt.call(mu,e)?!0:Vt.call(fu,e)?!1:nh.test(e)?mu[e]=!0:(fu[e]=!0,!1)}function ts(e,t,n){if(ah(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 ns(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 en(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 Mt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function hu(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function lh(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,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,i.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 Ai(e){if(!e._valueTracker){var t=hu(e)?"checked":"value";e._valueTracker=lh(e,t,""+e[t])}}function pu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=hu(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function as(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 sh=/[\n"\\]/g;function zt(e){return e.replace(sh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ei(e,t,n,a,l,i,d,p){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Mt(t)):e.value!==""+Mt(t)&&(e.value=""+Mt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?ki(e,d,Mt(t)):n!=null?ki(e,d,Mt(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?e.name=""+Mt(p):e.removeAttribute("name")}function vu(e,t,n,a,l,i,d,p){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Ai(e);return}n=n!=null?""+Mt(n):"",t=t!=null?""+Mt(t):n,p||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=p?e.checked:!!a,e.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Ai(e)}function ki(e,t,n){t==="number"&&as(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ya(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=""+Mt(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 gu(e,t,n){if(t!=null&&(t=""+Mt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Mt(n):""}function yu(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(o(92));if(F(a)){if(1<a.length)throw Error(o(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Mt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Ai(e)}function ba(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ih=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 bu(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||ih.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function xu(e,t,n){if(t!=null&&typeof t!="object")throw Error(o(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&&bu(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&bu(e,i,t[i])}function wi(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 ch=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"]]),rh=/^[\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 ls(e){return rh.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function tn(){}var Di=null;function Oi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xa=null,Sa=null;function Su(e){var t=pa(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Ei(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="'+zt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[vt]||null;if(!l)throw Error(o(90));Ei(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&&pu(a)}break e;case"textarea":gu(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&ya(e,!!n.multiple,t,!1)}}}var Mi=!1;function ju(e,t,n){if(Mi)return e(t,n);Mi=!0;try{var a=e(t);return a}finally{if(Mi=!1,(xa!==null||Sa!==null)&&(Xs(),xa&&(t=xa,e=Sa,Sa=xa=null,Su(t),e)))for(t=0;t<e.length;t++)Su(e[t])}}function tl(e,t){var n=e.stateNode;if(n===null)return null;var a=n[vt]||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(o(231,t,typeof n));return n}var nn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),zi=!1;if(nn)try{var nl={};Object.defineProperty(nl,"passive",{get:function(){zi=!0}}),window.addEventListener("test",nl,nl),window.removeEventListener("test",nl,nl)}catch{zi=!1}var Sn=null,_i=null,ss=null;function Nu(){if(ss)return ss;var e,t=_i,n=t.length,a,l="value"in Sn?Sn.value:Sn.textContent,i=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[i-a];a++);return ss=l.slice(e,1<a?1-a:void 0)}function is(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 cs(){return!0}function Ru(){return!1}function gt(e){function t(n,a,l,i,d){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=d,this.currentTarget=null;for(var p in e)e.hasOwnProperty(p)&&(n=e[p],this[p]=n?n(i):i[p]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?cs:Ru,this.isPropagationStopped=Ru,this}return R(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=cs)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=cs)},persist:function(){},isPersistent:cs}),t}var Vn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},rs=gt(Vn),al=R({},Vn,{view:0,detail:0}),uh=gt(al),Ii,Ui,ll,us=R({},al,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Li,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!==ll&&(ll&&e.type==="mousemove"?(Ii=e.screenX-ll.screenX,Ui=e.screenY-ll.screenY):Ui=Ii=0,ll=e),Ii)},movementY:function(e){return"movementY"in e?e.movementY:Ui}}),Cu=gt(us),oh=R({},us,{dataTransfer:0}),dh=gt(oh),fh=R({},al,{relatedTarget:0}),Hi=gt(fh),mh=R({},Vn,{animationName:0,elapsedTime:0,pseudoElement:0}),hh=gt(mh),ph=R({},Vn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vh=gt(ph),gh=R({},Vn,{data:0}),Tu=gt(gh),yh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},bh={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"},xh={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Sh(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=xh[e])?!!t[e]:!1}function Li(){return Sh}var jh=R({},al,{key:function(e){if(e.key){var t=yh[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=is(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?bh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Li,charCode:function(e){return e.type==="keypress"?is(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?is(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Nh=gt(jh),Rh=R({},us,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Au=gt(Rh),Ch=R({},al,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Li}),Th=gt(Ch),Ah=R({},Vn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Eh=gt(Ah),kh=R({},us,{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}),wh=gt(kh),Dh=R({},Vn,{newState:0,oldState:0}),Oh=gt(Dh),Mh=[9,13,27,32],Bi=nn&&"CompositionEvent"in window,sl=null;nn&&"documentMode"in document&&(sl=document.documentMode);var zh=nn&&"TextEvent"in window&&!sl,Eu=nn&&(!Bi||sl&&8<sl&&11>=sl),ku=" ",wu=!1;function Du(e,t){switch(e){case"keyup":return Mh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ou(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ja=!1;function _h(e,t){switch(e){case"compositionend":return Ou(t);case"keypress":return t.which!==32?null:(wu=!0,ku);case"textInput":return e=t.data,e===ku&&wu?null:e;default:return null}}function Ih(e,t){if(ja)return e==="compositionend"||!Bi&&Du(e,t)?(e=Nu(),ss=_i=Sn=null,ja=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Eu&&t.locale!=="ko"?null:t.data;default:return null}}var Uh={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 Mu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Uh[e.type]:t==="textarea"}function zu(e,t,n,a){xa?Sa?Sa.push(a):Sa=[a]:xa=a,t=Ws(t,"onChange"),0<t.length&&(n=new rs("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var il=null,cl=null;function Hh(e){yf(e,0)}function os(e){var t=el(e);if(pu(t))return e}function _u(e,t){if(e==="change")return t}var Iu=!1;if(nn){var qi;if(nn){var Gi="oninput"in document;if(!Gi){var Uu=document.createElement("div");Uu.setAttribute("oninput","return;"),Gi=typeof Uu.oninput=="function"}qi=Gi}else qi=!1;Iu=qi&&(!document.documentMode||9<document.documentMode)}function Hu(){il&&(il.detachEvent("onpropertychange",Lu),cl=il=null)}function Lu(e){if(e.propertyName==="value"&&os(cl)){var t=[];zu(t,cl,e,Oi(e)),ju(Hh,t)}}function Lh(e,t,n){e==="focusin"?(Hu(),il=t,cl=n,il.attachEvent("onpropertychange",Lu)):e==="focusout"&&Hu()}function Bh(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return os(cl)}function qh(e,t){if(e==="click")return os(t)}function Gh(e,t){if(e==="input"||e==="change")return os(t)}function Yh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Rt=typeof Object.is=="function"?Object.is:Yh;function rl(e,t){if(Rt(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(!Vt.call(t,l)||!Rt(e[l],t[l]))return!1}return!0}function Bu(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function qu(e,t){var n=Bu(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=Bu(n)}}function Gu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Gu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Yu(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=as(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=as(e.document)}return t}function Yi(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 $h=nn&&"documentMode"in document&&11>=document.documentMode,Na=null,$i=null,ul=null,Xi=!1;function $u(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Xi||Na==null||Na!==as(a)||(a=Na,"selectionStart"in a&&Yi(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}),ul&&rl(ul,a)||(ul=a,a=Ws($i,"onSelect"),0<a.length&&(t=new rs("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Na)))}function Zn(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ra={animationend:Zn("Animation","AnimationEnd"),animationiteration:Zn("Animation","AnimationIteration"),animationstart:Zn("Animation","AnimationStart"),transitionrun:Zn("Transition","TransitionRun"),transitionstart:Zn("Transition","TransitionStart"),transitioncancel:Zn("Transition","TransitionCancel"),transitionend:Zn("Transition","TransitionEnd")},Ki={},Xu={};nn&&(Xu=document.createElement("div").style,"AnimationEvent"in window||(delete Ra.animationend.animation,delete Ra.animationiteration.animation,delete Ra.animationstart.animation),"TransitionEvent"in window||delete Ra.transitionend.transition);function Jn(e){if(Ki[e])return Ki[e];if(!Ra[e])return e;var t=Ra[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Xu)return Ki[e]=t[n];return e}var Ku=Jn("animationend"),Qu=Jn("animationiteration"),Vu=Jn("animationstart"),Xh=Jn("transitionrun"),Kh=Jn("transitionstart"),Qh=Jn("transitioncancel"),Zu=Jn("transitionend"),Ju=new Map,Qi="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(" ");Qi.push("scrollEnd");function $t(e,t){Ju.set(e,t),Qn(t,[e])}var ds=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)},_t=[],Ca=0,Vi=0;function fs(){for(var e=Ca,t=Vi=Ca=0;t<e;){var n=_t[t];_t[t++]=null;var a=_t[t];_t[t++]=null;var l=_t[t];_t[t++]=null;var i=_t[t];if(_t[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}i!==0&&Fu(n,l,i)}}function ms(e,t,n,a){_t[Ca++]=e,_t[Ca++]=t,_t[Ca++]=n,_t[Ca++]=a,Vi|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function Zi(e,t,n,a){return ms(e,t,n,a),hs(e)}function Fn(e,t){return ms(e,null,null,t),hs(e)}function Fu(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-ut(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function hs(e){if(50<Dl)throw Dl=0,lr=null,Error(o(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ta={};function Vh(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 Ct(e,t,n,a){return new Vh(e,t,n,a)}function Ji(e){return e=e.prototype,!(!e||!e.isReactComponent)}function an(e,t){var n=e.alternate;return n===null?(n=Ct(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 Wu(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 ps(e,t,n,a,l,i){var d=0;if(a=e,typeof e=="function")Ji(e)&&(d=1);else if(typeof e=="string")d=Pp(e,n,se.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case ne:return e=Ct(31,n,t,l),e.elementType=ne,e.lanes=i,e;case X:return Wn(n.children,l,i,t);case ae:d=8,l|=24;break;case te:return e=Ct(12,n,t,l|2),e.elementType=te,e.lanes=i,e;case W:return e=Ct(13,n,t,l),e.elementType=W,e.lanes=i,e;case C:return e=Ct(19,n,t,l),e.elementType=C,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _:d=10;break e;case U:d=9;break e;case Q:d=11;break e;case k:d=14;break e;case Y:d=16,a=null;break e}d=29,n=Error(o(130,e===null?"null":typeof e,"")),a=null}return t=Ct(d,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Wn(e,t,n,a){return e=Ct(7,e,a,t),e.lanes=n,e}function Fi(e,t,n){return e=Ct(6,e,null,t),e.lanes=n,e}function Pu(e){var t=Ct(18,null,null,0);return t.stateNode=e,t}function Wi(e,t,n){return t=Ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var eo=new WeakMap;function It(e,t){if(typeof e=="object"&&e!==null){var n=eo.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Pt(t)},eo.set(e,t),t)}return{value:e,source:t,stack:Pt(t)}}var Aa=[],Ea=0,vs=null,ol=0,Ut=[],Ht=0,jn=null,Zt=1,Jt="";function ln(e,t){Aa[Ea++]=ol,Aa[Ea++]=vs,vs=e,ol=t}function to(e,t,n){Ut[Ht++]=Zt,Ut[Ht++]=Jt,Ut[Ht++]=jn,jn=e;var a=Zt;e=Jt;var l=32-ut(a)-1;a&=~(1<<l),n+=1;var i=32-ut(t)+l;if(30<i){var d=l-l%5;i=(a&(1<<d)-1).toString(32),a>>=d,l-=d,Zt=1<<32-ut(t)+l|n<<l|a,Jt=i+e}else Zt=1<<i|n<<l|a,Jt=e}function Pi(e){e.return!==null&&(ln(e,1),to(e,1,0))}function ec(e){for(;e===vs;)vs=Aa[--Ea],Aa[Ea]=null,ol=Aa[--Ea],Aa[Ea]=null;for(;e===jn;)jn=Ut[--Ht],Ut[Ht]=null,Jt=Ut[--Ht],Ut[Ht]=null,Zt=Ut[--Ht],Ut[Ht]=null}function no(e,t){Ut[Ht++]=Zt,Ut[Ht++]=Jt,Ut[Ht++]=jn,Zt=t.id,Jt=t.overflow,jn=e}var st=null,Ie=null,Ne=!1,Nn=null,Lt=!1,tc=Error(o(519));function Rn(e){var t=Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw dl(It(t,e)),tc}function ao(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[lt]=e,t[vt]=a,n){case"dialog":be("cancel",t),be("close",t);break;case"iframe":case"object":case"embed":be("load",t);break;case"video":case"audio":for(n=0;n<Ml.length;n++)be(Ml[n],t);break;case"source":be("error",t);break;case"img":case"image":case"link":be("error",t),be("load",t);break;case"details":be("toggle",t);break;case"input":be("invalid",t),vu(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":be("invalid",t);break;case"textarea":be("invalid",t),yu(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||jf(t.textContent,n)?(a.popover!=null&&(be("beforetoggle",t),be("toggle",t)),a.onScroll!=null&&be("scroll",t),a.onScrollEnd!=null&&be("scrollend",t),a.onClick!=null&&(t.onclick=tn),t=!0):t=!1,t||Rn(e,!0)}function lo(e){for(st=e.return;st;)switch(st.tag){case 5:case 31:case 13:Lt=!1;return;case 27:case 3:Lt=!0;return;default:st=st.return}}function ka(e){if(e!==st)return!1;if(!Ne)return lo(e),Ne=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||br(e.type,e.memoizedProps)),n=!n),n&&Ie&&Rn(e),lo(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));Ie=Df(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));Ie=Df(e)}else t===27?(t=Ie,Hn(e.type)?(e=Rr,Rr=null,Ie=e):Ie=t):Ie=st?qt(e.stateNode.nextSibling):null;return!0}function Pn(){Ie=st=null,Ne=!1}function nc(){var e=Nn;return e!==null&&(St===null?St=e:St.push.apply(St,e),Nn=null),e}function dl(e){Nn===null?Nn=[e]:Nn.push(e)}var ac=S(null),ea=null,sn=null;function Cn(e,t,n){P(ac,t._currentValue),t._currentValue=n}function cn(e){e._currentValue=ac.current,w(ac)}function lc(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 sc(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var d=l.child;i=i.firstContext;e:for(;i!==null;){var p=i;i=l;for(var x=0;x<t.length;x++)if(p.context===t[x]){i.lanes|=n,p=i.alternate,p!==null&&(p.lanes|=n),lc(i.return,n,e),a||(d=null);break e}i=p.next}}else if(l.tag===18){if(d=l.return,d===null)throw Error(o(341));d.lanes|=n,i=d.alternate,i!==null&&(i.lanes|=n),lc(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 wa(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var d=l.alternate;if(d===null)throw Error(o(387));if(d=d.memoizedProps,d!==null){var p=l.type;Rt(l.pendingProps.value,d.value)||(e!==null?e.push(p):e=[p])}}else if(l===me.current){if(d=l.alternate,d===null)throw Error(o(387));d.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(Hl):e=[Hl])}l=l.return}e!==null&&sc(t,e,n,a),t.flags|=262144}function gs(e){for(e=e.firstContext;e!==null;){if(!Rt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ta(e){ea=e,sn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function it(e){return so(ea,e)}function ys(e,t){return ea===null&&ta(e),so(e,t)}function so(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},sn===null){if(e===null)throw Error(o(308));sn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else sn=sn.next=t;return n}var Zh=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()})}},Jh=c.unstable_scheduleCallback,Fh=c.unstable_NormalPriority,Qe={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ic(){return{controller:new Zh,data:new Map,refCount:0}}function fl(e){e.refCount--,e.refCount===0&&Jh(Fh,function(){e.controller.abort()})}var ml=null,cc=0,Da=0,Oa=null;function Wh(e,t){if(ml===null){var n=ml=[];cc=0,Da=or(),Oa={status:"pending",value:void 0,then:function(a){n.push(a)}}}return cc++,t.then(io,io),t}function io(){if(--cc===0&&ml!==null){Oa!==null&&(Oa.status="fulfilled");var e=ml;ml=null,Da=0,Oa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ph(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 co=j.S;j.S=function(e,t){Xd=We(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Wh(e,t),co!==null&&co(e,t)};var na=S(null);function rc(){var e=na.current;return e!==null?e:ze.pooledCache}function bs(e,t){t===null?P(na,na.current):P(na,t.pool)}function ro(){var e=rc();return e===null?null:{parent:Qe._currentValue,pool:e}}var Ma=Error(o(460)),uc=Error(o(474)),xs=Error(o(542)),Ss={then:function(){}};function uo(e){return e=e.status,e==="fulfilled"||e==="rejected"}function oo(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(tn,tn),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mo(e),e;default:if(typeof t.status=="string")t.then(tn,tn);else{if(e=ze,e!==null&&100<e.shellSuspendCounter)throw Error(o(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,mo(e),e}throw la=t,Ma}}function aa(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(la=n,Ma):n}}var la=null;function fo(){if(la===null)throw Error(o(459));var e=la;return la=null,e}function mo(e){if(e===Ma||e===xs)throw Error(o(483))}var za=null,hl=0;function js(e){var t=hl;return hl+=1,za===null&&(za=[]),oo(za,e,t)}function pl(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Ns(e,t){throw t.$$typeof===V?Error(o(525)):(e=Object.prototype.toString.call(t),Error(o(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function ho(e){function t(T,N){if(e){var D=T.deletions;D===null?(T.deletions=[N],T.flags|=16):D.push(N)}}function n(T,N){if(!e)return null;for(;N!==null;)t(T,N),N=N.sibling;return null}function a(T){for(var N=new Map;T!==null;)T.key!==null?N.set(T.key,T):N.set(T.index,T),T=T.sibling;return N}function l(T,N){return T=an(T,N),T.index=0,T.sibling=null,T}function i(T,N,D){return T.index=D,e?(D=T.alternate,D!==null?(D=D.index,D<N?(T.flags|=67108866,N):D):(T.flags|=67108866,N)):(T.flags|=1048576,N)}function d(T){return e&&T.alternate===null&&(T.flags|=67108866),T}function p(T,N,D,Z){return N===null||N.tag!==6?(N=Fi(D,T.mode,Z),N.return=T,N):(N=l(N,D),N.return=T,N)}function x(T,N,D,Z){var de=D.type;return de===X?$(T,N,D.props.children,Z,D.key):N!==null&&(N.elementType===de||typeof de=="object"&&de!==null&&de.$$typeof===Y&&aa(de)===N.type)?(N=l(N,D.props),pl(N,D),N.return=T,N):(N=ps(D.type,D.key,D.props,null,T.mode,Z),pl(N,D),N.return=T,N)}function O(T,N,D,Z){return N===null||N.tag!==4||N.stateNode.containerInfo!==D.containerInfo||N.stateNode.implementation!==D.implementation?(N=Wi(D,T.mode,Z),N.return=T,N):(N=l(N,D.children||[]),N.return=T,N)}function $(T,N,D,Z,de){return N===null||N.tag!==7?(N=Wn(D,T.mode,Z,de),N.return=T,N):(N=l(N,D),N.return=T,N)}function J(T,N,D){if(typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint")return N=Fi(""+N,T.mode,D),N.return=T,N;if(typeof N=="object"&&N!==null){switch(N.$$typeof){case L:return D=ps(N.type,N.key,N.props,null,T.mode,D),pl(D,N),D.return=T,D;case H:return N=Wi(N,T.mode,D),N.return=T,N;case Y:return N=aa(N),J(T,N,D)}if(F(N)||K(N))return N=Wn(N,T.mode,D,null),N.return=T,N;if(typeof N.then=="function")return J(T,js(N),D);if(N.$$typeof===_)return J(T,ys(T,N),D);Ns(T,N)}return null}function I(T,N,D,Z){var de=N!==null?N.key:null;if(typeof D=="string"&&D!==""||typeof D=="number"||typeof D=="bigint")return de!==null?null:p(T,N,""+D,Z);if(typeof D=="object"&&D!==null){switch(D.$$typeof){case L:return D.key===de?x(T,N,D,Z):null;case H:return D.key===de?O(T,N,D,Z):null;case Y:return D=aa(D),I(T,N,D,Z)}if(F(D)||K(D))return de!==null?null:$(T,N,D,Z,null);if(typeof D.then=="function")return I(T,N,js(D),Z);if(D.$$typeof===_)return I(T,N,ys(T,D),Z);Ns(T,D)}return null}function B(T,N,D,Z,de){if(typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint")return T=T.get(D)||null,p(N,T,""+Z,de);if(typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case L:return T=T.get(Z.key===null?D:Z.key)||null,x(N,T,Z,de);case H:return T=T.get(Z.key===null?D:Z.key)||null,O(N,T,Z,de);case Y:return Z=aa(Z),B(T,N,D,Z,de)}if(F(Z)||K(Z))return T=T.get(D)||null,$(N,T,Z,de,null);if(typeof Z.then=="function")return B(T,N,D,js(Z),de);if(Z.$$typeof===_)return B(T,N,D,ys(N,Z),de);Ns(N,Z)}return null}function ce(T,N,D,Z){for(var de=null,Re=null,ue=N,ge=N=0,je=null;ue!==null&&ge<D.length;ge++){ue.index>ge?(je=ue,ue=null):je=ue.sibling;var Ce=I(T,ue,D[ge],Z);if(Ce===null){ue===null&&(ue=je);break}e&&ue&&Ce.alternate===null&&t(T,ue),N=i(Ce,N,ge),Re===null?de=Ce:Re.sibling=Ce,Re=Ce,ue=je}if(ge===D.length)return n(T,ue),Ne&&ln(T,ge),de;if(ue===null){for(;ge<D.length;ge++)ue=J(T,D[ge],Z),ue!==null&&(N=i(ue,N,ge),Re===null?de=ue:Re.sibling=ue,Re=ue);return Ne&&ln(T,ge),de}for(ue=a(ue);ge<D.length;ge++)je=B(ue,T,ge,D[ge],Z),je!==null&&(e&&je.alternate!==null&&ue.delete(je.key===null?ge:je.key),N=i(je,N,ge),Re===null?de=je:Re.sibling=je,Re=je);return e&&ue.forEach(function(Yn){return t(T,Yn)}),Ne&&ln(T,ge),de}function fe(T,N,D,Z){if(D==null)throw Error(o(151));for(var de=null,Re=null,ue=N,ge=N=0,je=null,Ce=D.next();ue!==null&&!Ce.done;ge++,Ce=D.next()){ue.index>ge?(je=ue,ue=null):je=ue.sibling;var Yn=I(T,ue,Ce.value,Z);if(Yn===null){ue===null&&(ue=je);break}e&&ue&&Yn.alternate===null&&t(T,ue),N=i(Yn,N,ge),Re===null?de=Yn:Re.sibling=Yn,Re=Yn,ue=je}if(Ce.done)return n(T,ue),Ne&&ln(T,ge),de;if(ue===null){for(;!Ce.done;ge++,Ce=D.next())Ce=J(T,Ce.value,Z),Ce!==null&&(N=i(Ce,N,ge),Re===null?de=Ce:Re.sibling=Ce,Re=Ce);return Ne&&ln(T,ge),de}for(ue=a(ue);!Ce.done;ge++,Ce=D.next())Ce=B(ue,T,ge,Ce.value,Z),Ce!==null&&(e&&Ce.alternate!==null&&ue.delete(Ce.key===null?ge:Ce.key),N=i(Ce,N,ge),Re===null?de=Ce:Re.sibling=Ce,Re=Ce);return e&&ue.forEach(function(ov){return t(T,ov)}),Ne&&ln(T,ge),de}function Me(T,N,D,Z){if(typeof D=="object"&&D!==null&&D.type===X&&D.key===null&&(D=D.props.children),typeof D=="object"&&D!==null){switch(D.$$typeof){case L:e:{for(var de=D.key;N!==null;){if(N.key===de){if(de=D.type,de===X){if(N.tag===7){n(T,N.sibling),Z=l(N,D.props.children),Z.return=T,T=Z;break e}}else if(N.elementType===de||typeof de=="object"&&de!==null&&de.$$typeof===Y&&aa(de)===N.type){n(T,N.sibling),Z=l(N,D.props),pl(Z,D),Z.return=T,T=Z;break e}n(T,N);break}else t(T,N);N=N.sibling}D.type===X?(Z=Wn(D.props.children,T.mode,Z,D.key),Z.return=T,T=Z):(Z=ps(D.type,D.key,D.props,null,T.mode,Z),pl(Z,D),Z.return=T,T=Z)}return d(T);case H:e:{for(de=D.key;N!==null;){if(N.key===de)if(N.tag===4&&N.stateNode.containerInfo===D.containerInfo&&N.stateNode.implementation===D.implementation){n(T,N.sibling),Z=l(N,D.children||[]),Z.return=T,T=Z;break e}else{n(T,N);break}else t(T,N);N=N.sibling}Z=Wi(D,T.mode,Z),Z.return=T,T=Z}return d(T);case Y:return D=aa(D),Me(T,N,D,Z)}if(F(D))return ce(T,N,D,Z);if(K(D)){if(de=K(D),typeof de!="function")throw Error(o(150));return D=de.call(D),fe(T,N,D,Z)}if(typeof D.then=="function")return Me(T,N,js(D),Z);if(D.$$typeof===_)return Me(T,N,ys(T,D),Z);Ns(T,D)}return typeof D=="string"&&D!==""||typeof D=="number"||typeof D=="bigint"?(D=""+D,N!==null&&N.tag===6?(n(T,N.sibling),Z=l(N,D),Z.return=T,T=Z):(n(T,N),Z=Fi(D,T.mode,Z),Z.return=T,T=Z),d(T)):n(T,N)}return function(T,N,D,Z){try{hl=0;var de=Me(T,N,D,Z);return za=null,de}catch(ue){if(ue===Ma||ue===xs)throw ue;var Re=Ct(29,ue,null,T.mode);return Re.lanes=Z,Re.return=T,Re}}}var sa=ho(!0),po=ho(!1),Tn=!1;function oc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function dc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function An(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function En(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Ae&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=hs(e),Fu(e,null,n),t}return ms(e,a,t,n),hs(e)}function vl(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,su(e,n)}}function fc(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=d:i=i.next=d,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,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 mc=!1;function gl(){if(mc){var e=Oa;if(e!==null)throw e}}function yl(e,t,n,a){mc=!1;var l=e.updateQueue;Tn=!1;var i=l.firstBaseUpdate,d=l.lastBaseUpdate,p=l.shared.pending;if(p!==null){l.shared.pending=null;var x=p,O=x.next;x.next=null,d===null?i=O:d.next=O,d=x;var $=e.alternate;$!==null&&($=$.updateQueue,p=$.lastBaseUpdate,p!==d&&(p===null?$.firstBaseUpdate=O:p.next=O,$.lastBaseUpdate=x))}if(i!==null){var J=l.baseState;d=0,$=O=x=null,p=i;do{var I=p.lane&-536870913,B=I!==p.lane;if(B?(Se&I)===I:(a&I)===I){I!==0&&I===Da&&(mc=!0),$!==null&&($=$.next={lane:0,tag:p.tag,payload:p.payload,callback:null,next:null});e:{var ce=e,fe=p;I=t;var Me=n;switch(fe.tag){case 1:if(ce=fe.payload,typeof ce=="function"){J=ce.call(Me,J,I);break e}J=ce;break e;case 3:ce.flags=ce.flags&-65537|128;case 0:if(ce=fe.payload,I=typeof ce=="function"?ce.call(Me,J,I):ce,I==null)break e;J=R({},J,I);break e;case 2:Tn=!0}}I=p.callback,I!==null&&(e.flags|=64,B&&(e.flags|=8192),B=l.callbacks,B===null?l.callbacks=[I]:B.push(I))}else B={lane:I,tag:p.tag,payload:p.payload,callback:p.callback,next:null},$===null?(O=$=B,x=J):$=$.next=B,d|=I;if(p=p.next,p===null){if(p=l.shared.pending,p===null)break;B=p,p=B.next,B.next=null,l.lastBaseUpdate=B,l.shared.pending=null}}while(!0);$===null&&(x=J),l.baseState=x,l.firstBaseUpdate=O,l.lastBaseUpdate=$,i===null&&(l.shared.lanes=0),Mn|=d,e.lanes=d,e.memoizedState=J}}function vo(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function go(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)vo(n[e],t)}var _a=S(null),Rs=S(0);function yo(e,t){e=vn,P(Rs,e),P(_a,t),vn=e|t.baseLanes}function hc(){P(Rs,vn),P(_a,_a.current)}function pc(){vn=Rs.current,w(_a),w(Rs)}var Tt=S(null),Bt=null;function kn(e){var t=e.alternate;P(Ye,Ye.current&1),P(Tt,e),Bt===null&&(t===null||_a.current!==null||t.memoizedState!==null)&&(Bt=e)}function vc(e){P(Ye,Ye.current),P(Tt,e),Bt===null&&(Bt=e)}function bo(e){e.tag===22?(P(Ye,Ye.current),P(Tt,e),Bt===null&&(Bt=e)):wn()}function wn(){P(Ye,Ye.current),P(Tt,Tt.current)}function At(e){w(Tt),Bt===e&&(Bt=null),w(Ye)}var Ye=S(0);function Cs(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||jr(n)||Nr(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 rn=0,ve=null,De=null,Ve=null,Ts=!1,Ia=!1,ia=!1,As=0,bl=0,Ua=null,ep=0;function Be(){throw Error(o(321))}function gc(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Rt(e[n],t[n]))return!1;return!0}function yc(e,t,n,a,l,i){return rn=i,ve=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,j.H=e===null||e.memoizedState===null?nd:Mc,ia=!1,i=n(a,l),ia=!1,Ia&&(i=So(t,n,a,l)),xo(e),i}function xo(e){j.H=jl;var t=De!==null&&De.next!==null;if(rn=0,Ve=De=ve=null,Ts=!1,bl=0,Ua=null,t)throw Error(o(300));e===null||Ze||(e=e.dependencies,e!==null&&gs(e)&&(Ze=!0))}function So(e,t,n,a){ve=e;var l=0;do{if(Ia&&(Ua=null),bl=0,Ia=!1,25<=l)throw Error(o(301));if(l+=1,Ve=De=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}j.H=ad,i=t(n,a)}while(Ia);return i}function tp(){var e=j.H,t=e.useState()[0];return t=typeof t.then=="function"?xl(t):t,e=e.useState()[0],(De!==null?De.memoizedState:null)!==e&&(ve.flags|=1024),t}function bc(){var e=As!==0;return As=0,e}function xc(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Sc(e){if(Ts){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}Ts=!1}rn=0,Ve=De=ve=null,Ia=!1,bl=As=0,Ua=null}function ft(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ve===null?ve.memoizedState=Ve=e:Ve=Ve.next=e,Ve}function $e(){if(De===null){var e=ve.alternate;e=e!==null?e.memoizedState:null}else e=De.next;var t=Ve===null?ve.memoizedState:Ve.next;if(t!==null)Ve=t,De=e;else{if(e===null)throw ve.alternate===null?Error(o(467)):Error(o(310));De=e,e={memoizedState:De.memoizedState,baseState:De.baseState,baseQueue:De.baseQueue,queue:De.queue,next:null},Ve===null?ve.memoizedState=Ve=e:Ve=Ve.next=e}return Ve}function Es(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function xl(e){var t=bl;return bl+=1,Ua===null&&(Ua=[]),e=oo(Ua,e,t),t=ve,(Ve===null?t.memoizedState:Ve.next)===null&&(t=t.alternate,j.H=t===null||t.memoizedState===null?nd:Mc),e}function ks(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return xl(e);if(e.$$typeof===_)return it(e)}throw Error(o(438,String(e)))}function jc(e){var t=null,n=ve.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=ve.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=Es(),ve.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]=ee;return t.index++,n}function un(e,t){return typeof t=="function"?t(e):t}function ws(e){var t=$e();return Nc(t,De,e)}function Nc(e,t,n){var a=e.queue;if(a===null)throw Error(o(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var d=l.next;l.next=i.next,i.next=d}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var p=d=null,x=null,O=t,$=!1;do{var J=O.lane&-536870913;if(J!==O.lane?(Se&J)===J:(rn&J)===J){var I=O.revertLane;if(I===0)x!==null&&(x=x.next={lane:0,revertLane:0,gesture:null,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null}),J===Da&&($=!0);else if((rn&I)===I){O=O.next,I===Da&&($=!0);continue}else J={lane:0,revertLane:O.revertLane,gesture:null,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null},x===null?(p=x=J,d=i):x=x.next=J,ve.lanes|=I,Mn|=I;J=O.action,ia&&n(i,J),i=O.hasEagerState?O.eagerState:n(i,J)}else I={lane:J,revertLane:O.revertLane,gesture:O.gesture,action:O.action,hasEagerState:O.hasEagerState,eagerState:O.eagerState,next:null},x===null?(p=x=I,d=i):x=x.next=I,ve.lanes|=J,Mn|=J;O=O.next}while(O!==null&&O!==t);if(x===null?d=i:x.next=p,!Rt(i,e.memoizedState)&&(Ze=!0,$&&(n=Oa,n!==null)))throw n;e.memoizedState=i,e.baseState=d,e.baseQueue=x,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Rc(e){var t=$e(),n=t.queue;if(n===null)throw Error(o(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var d=l=l.next;do i=e(i,d.action),d=d.next;while(d!==l);Rt(i,t.memoizedState)||(Ze=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function jo(e,t,n){var a=ve,l=$e(),i=Ne;if(i){if(n===void 0)throw Error(o(407));n=n()}else n=t();var d=!Rt((De||l).memoizedState,n);if(d&&(l.memoizedState=n,Ze=!0),l=l.queue,Ac(Co.bind(null,a,l,e),[e]),l.getSnapshot!==t||d||Ve!==null&&Ve.memoizedState.tag&1){if(a.flags|=2048,Ha(9,{destroy:void 0},Ro.bind(null,a,l,n,t),null),ze===null)throw Error(o(349));i||(rn&127)!==0||No(a,t,n)}return n}function No(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ve.updateQueue,t===null?(t=Es(),ve.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ro(e,t,n,a){t.value=n,t.getSnapshot=a,To(t)&&Ao(e)}function Co(e,t,n){return n(function(){To(t)&&Ao(e)})}function To(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Rt(e,n)}catch{return!0}}function Ao(e){var t=Fn(e,2);t!==null&&jt(t,e,2)}function Cc(e){var t=ft();if(typeof e=="function"){var n=e;if(e=n(),ia){at(!0);try{n()}finally{at(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:e},t}function Eo(e,t,n,a){return e.baseState=n,Nc(e,De,typeof a=="function"?a:un)}function np(e,t,n,a,l){if(Ms(e))throw Error(o(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){i.listeners.push(d)}};j.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,ko(t,i)):(i.next=n.next,t.pending=n.next=i)}}function ko(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=j.T,d={};j.T=d;try{var p=n(l,a),x=j.S;x!==null&&x(d,p),wo(e,t,p)}catch(O){Tc(e,t,O)}finally{i!==null&&d.types!==null&&(i.types=d.types),j.T=i}}else try{i=n(l,a),wo(e,t,i)}catch(O){Tc(e,t,O)}}function wo(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){Do(e,t,a)},function(a){return Tc(e,t,a)}):Do(e,t,n)}function Do(e,t,n){t.status="fulfilled",t.value=n,Oo(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,ko(e,n)))}function Tc(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,Oo(t),t=t.next;while(t!==a)}e.action=null}function Oo(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Mo(e,t){return t}function zo(e,t){if(Ne){var n=ze.formState;if(n!==null){e:{var a=ve;if(Ne){if(Ie){t:{for(var l=Ie,i=Lt;l.nodeType!==8;){if(!i){l=null;break t}if(l=qt(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){Ie=qt(l.nextSibling),a=l.data==="F!";break e}}Rn(a)}a=!1}a&&(t=n[0])}}return n=ft(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mo,lastRenderedState:t},n.queue=a,n=Po.bind(null,ve,a),a.dispatch=n,a=Cc(!1),i=Oc.bind(null,ve,!1,a.queue),a=ft(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=np.bind(null,ve,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function _o(e){var t=$e();return Io(t,De,e)}function Io(e,t,n){if(t=Nc(e,t,Mo)[0],e=ws(un)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=xl(t)}catch(d){throw d===Ma?xs:d}else a=t;t=$e();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(ve.flags|=2048,Ha(9,{destroy:void 0},ap.bind(null,l,n),null)),[a,i,e]}function ap(e,t){e.action=t}function Uo(e){var t=$e(),n=De;if(n!==null)return Io(t,n,e);$e(),t=t.memoizedState,n=$e();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Ha(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=ve.updateQueue,t===null&&(t=Es(),ve.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 Ho(){return $e().memoizedState}function Ds(e,t,n,a){var l=ft();ve.flags|=e,l.memoizedState=Ha(1|t,{destroy:void 0},n,a===void 0?null:a)}function Os(e,t,n,a){var l=$e();a=a===void 0?null:a;var i=l.memoizedState.inst;De!==null&&a!==null&&gc(a,De.memoizedState.deps)?l.memoizedState=Ha(t,i,n,a):(ve.flags|=e,l.memoizedState=Ha(1|t,i,n,a))}function Lo(e,t){Ds(8390656,8,e,t)}function Ac(e,t){Os(2048,8,e,t)}function lp(e){ve.flags|=4;var t=ve.updateQueue;if(t===null)t=Es(),ve.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Bo(e){var t=$e().memoizedState;return lp({ref:t,nextImpl:e}),function(){if((Ae&2)!==0)throw Error(o(440));return t.impl.apply(void 0,arguments)}}function qo(e,t){return Os(4,2,e,t)}function Go(e,t){return Os(4,4,e,t)}function Yo(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 $o(e,t,n){n=n!=null?n.concat([e]):null,Os(4,4,Yo.bind(null,t,e),n)}function Ec(){}function Xo(e,t){var n=$e();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&gc(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function Ko(e,t){var n=$e();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&gc(t,a[1]))return a[0];if(a=e(),ia){at(!0);try{e()}finally{at(!1)}}return n.memoizedState=[a,t],a}function kc(e,t,n){return n===void 0||(rn&1073741824)!==0&&(Se&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=Qd(),ve.lanes|=e,Mn|=e,n)}function Qo(e,t,n,a){return Rt(n,t)?n:_a.current!==null?(e=kc(e,n,a),Rt(e,t)||(Ze=!0),e):(rn&42)===0||(rn&1073741824)!==0&&(Se&261930)===0?(Ze=!0,e.memoizedState=n):(e=Qd(),ve.lanes|=e,Mn|=e,t)}function Vo(e,t,n,a,l){var i=z.p;z.p=i!==0&&8>i?i:8;var d=j.T,p={};j.T=p,Oc(e,!1,t,n);try{var x=l(),O=j.S;if(O!==null&&O(p,x),x!==null&&typeof x=="object"&&typeof x.then=="function"){var $=Ph(x,a);Sl(e,t,$,wt(e))}else Sl(e,t,a,wt(e))}catch(J){Sl(e,t,{then:function(){},status:"rejected",reason:J},wt())}finally{z.p=i,d!==null&&p.types!==null&&(d.types=p.types),j.T=d}}function sp(){}function wc(e,t,n,a){if(e.tag!==5)throw Error(o(476));var l=Zo(e).queue;Vo(e,l,t,E,n===null?sp:function(){return Jo(e),n(a)})}function Zo(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:E,baseState:E,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:E},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:un,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Jo(e){var t=Zo(e);t.next===null&&(t=e.alternate.memoizedState),Sl(e,t.next.queue,{},wt())}function Dc(){return it(Hl)}function Fo(){return $e().memoizedState}function Wo(){return $e().memoizedState}function ip(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=wt();e=An(n);var a=En(t,e,n);a!==null&&(jt(a,t,n),vl(a,t,n)),t={cache:ic()},e.payload=t;return}t=t.return}}function cp(e,t,n){var a=wt();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ms(e)?ed(t,n):(n=Zi(e,t,n,a),n!==null&&(jt(n,e,a),td(n,t,a)))}function Po(e,t,n){var a=wt();Sl(e,t,n,a)}function Sl(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ms(e))ed(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var d=t.lastRenderedState,p=i(d,n);if(l.hasEagerState=!0,l.eagerState=p,Rt(p,d))return ms(e,t,l,0),ze===null&&fs(),!1}catch{}if(n=Zi(e,t,l,a),n!==null)return jt(n,e,a),td(n,t,a),!0}return!1}function Oc(e,t,n,a){if(a={lane:2,revertLane:or(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ms(e)){if(t)throw Error(o(479))}else t=Zi(e,n,a,2),t!==null&&jt(t,e,2)}function Ms(e){var t=e.alternate;return e===ve||t!==null&&t===ve}function ed(e,t){Ia=Ts=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function td(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,su(e,n)}}var jl={readContext:it,use:ks,useCallback:Be,useContext:Be,useEffect:Be,useImperativeHandle:Be,useLayoutEffect:Be,useInsertionEffect:Be,useMemo:Be,useReducer:Be,useRef:Be,useState:Be,useDebugValue:Be,useDeferredValue:Be,useTransition:Be,useSyncExternalStore:Be,useId:Be,useHostTransitionStatus:Be,useFormState:Be,useActionState:Be,useOptimistic:Be,useMemoCache:Be,useCacheRefresh:Be};jl.useEffectEvent=Be;var nd={readContext:it,use:ks,useCallback:function(e,t){return ft().memoizedState=[e,t===void 0?null:t],e},useContext:it,useEffect:Lo,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Ds(4194308,4,Yo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ds(4194308,4,e,t)},useInsertionEffect:function(e,t){Ds(4,2,e,t)},useMemo:function(e,t){var n=ft();t=t===void 0?null:t;var a=e();if(ia){at(!0);try{e()}finally{at(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=ft();if(n!==void 0){var l=n(t);if(ia){at(!0);try{n(t)}finally{at(!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=cp.bind(null,ve,e),[a.memoizedState,e]},useRef:function(e){var t=ft();return e={current:e},t.memoizedState=e},useState:function(e){e=Cc(e);var t=e.queue,n=Po.bind(null,ve,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Ec,useDeferredValue:function(e,t){var n=ft();return kc(n,e,t)},useTransition:function(){var e=Cc(!1);return e=Vo.bind(null,ve,e.queue,!0,!1),ft().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=ve,l=ft();if(Ne){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),ze===null)throw Error(o(349));(Se&127)!==0||No(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,Lo(Co.bind(null,a,i,e),[e]),a.flags|=2048,Ha(9,{destroy:void 0},Ro.bind(null,a,i,n,t),null),n},useId:function(){var e=ft(),t=ze.identifierPrefix;if(Ne){var n=Jt,a=Zt;n=(a&~(1<<32-ut(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=As++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=ep++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Dc,useFormState:zo,useActionState:zo,useOptimistic:function(e){var t=ft();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Oc.bind(null,ve,!0,n),n.dispatch=t,[e,t]},useMemoCache:jc,useCacheRefresh:function(){return ft().memoizedState=ip.bind(null,ve)},useEffectEvent:function(e){var t=ft(),n={impl:e};return t.memoizedState=n,function(){if((Ae&2)!==0)throw Error(o(440));return n.impl.apply(void 0,arguments)}}},Mc={readContext:it,use:ks,useCallback:Xo,useContext:it,useEffect:Ac,useImperativeHandle:$o,useInsertionEffect:qo,useLayoutEffect:Go,useMemo:Ko,useReducer:ws,useRef:Ho,useState:function(){return ws(un)},useDebugValue:Ec,useDeferredValue:function(e,t){var n=$e();return Qo(n,De.memoizedState,e,t)},useTransition:function(){var e=ws(un)[0],t=$e().memoizedState;return[typeof e=="boolean"?e:xl(e),t]},useSyncExternalStore:jo,useId:Fo,useHostTransitionStatus:Dc,useFormState:_o,useActionState:_o,useOptimistic:function(e,t){var n=$e();return Eo(n,De,e,t)},useMemoCache:jc,useCacheRefresh:Wo};Mc.useEffectEvent=Bo;var ad={readContext:it,use:ks,useCallback:Xo,useContext:it,useEffect:Ac,useImperativeHandle:$o,useInsertionEffect:qo,useLayoutEffect:Go,useMemo:Ko,useReducer:Rc,useRef:Ho,useState:function(){return Rc(un)},useDebugValue:Ec,useDeferredValue:function(e,t){var n=$e();return De===null?kc(n,e,t):Qo(n,De.memoizedState,e,t)},useTransition:function(){var e=Rc(un)[0],t=$e().memoizedState;return[typeof e=="boolean"?e:xl(e),t]},useSyncExternalStore:jo,useId:Fo,useHostTransitionStatus:Dc,useFormState:Uo,useActionState:Uo,useOptimistic:function(e,t){var n=$e();return De!==null?Eo(n,De,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:jc,useCacheRefresh:Wo};ad.useEffectEvent=Bo;function zc(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:R({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var _c={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=wt(),l=An(a);l.payload=t,n!=null&&(l.callback=n),t=En(e,l,a),t!==null&&(jt(t,e,a),vl(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=wt(),l=An(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=En(e,l,a),t!==null&&(jt(t,e,a),vl(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=wt(),a=An(n);a.tag=2,t!=null&&(a.callback=t),t=En(e,a,n),t!==null&&(jt(t,e,n),vl(t,e,n))}};function ld(e,t,n,a,l,i,d){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,d):t.prototype&&t.prototype.isPureReactComponent?!rl(n,a)||!rl(l,i):!0}function sd(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&&_c.enqueueReplaceState(t,t.state,null)}function ca(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=R({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function id(e){ds(e)}function cd(e){console.error(e)}function rd(e){ds(e)}function zs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function ud(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 Ic(e,t,n){return n=An(n),n.tag=3,n.payload={element:null},n.callback=function(){zs(e,t)},n}function od(e){return e=An(e),e.tag=3,e}function dd(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){ud(t,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(e.callback=function(){ud(t,n,a),typeof l!="function"&&(zn===null?zn=new Set([this]):zn.add(this));var p=a.stack;this.componentDidCatch(a.value,{componentStack:p!==null?p:""})})}function rp(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&wa(t,n,l,!0),n=Tt.current,n!==null){switch(n.tag){case 31:case 13:return Bt===null?Ks():n.alternate===null&&qe===0&&(qe=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Ss?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),cr(e,a,l)),!1;case 22:return n.flags|=65536,a===Ss?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)),cr(e,a,l)),!1}throw Error(o(435,n.tag))}return cr(e,a,l),Ks(),!1}if(Ne)return t=Tt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==tc&&(e=Error(o(422),{cause:a}),dl(It(e,n)))):(a!==tc&&(t=Error(o(423),{cause:a}),dl(It(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=It(a,n),l=Ic(e.stateNode,a,l),fc(e,l),qe!==4&&(qe=2)),!1;var i=Error(o(520),{cause:a});if(i=It(i,n),wl===null?wl=[i]:wl.push(i),qe!==4&&(qe=2),t===null)return!0;a=It(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Ic(n.stateNode,a,e),fc(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(zn===null||!zn.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=od(l),dd(l,e,n,a),fc(n,l),!1}n=n.return}while(n!==null);return!1}var Uc=Error(o(461)),Ze=!1;function ct(e,t,n,a){t.child=e===null?po(t,null,n,a):sa(t,e.child,n,a)}function fd(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var d={};for(var p in a)p!=="ref"&&(d[p]=a[p])}else d=a;return ta(t),a=yc(e,t,n,d,i,l),p=bc(),e!==null&&!Ze?(xc(e,t,l),on(e,t,l)):(Ne&&p&&Pi(t),t.flags|=1,ct(e,t,a,l),t.child)}function md(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ji(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,hd(e,t,i,a,l)):(e=ps(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Xc(e,l)){var d=i.memoizedProps;if(n=n.compare,n=n!==null?n:rl,n(d,a)&&e.ref===t.ref)return on(e,t,l)}return t.flags|=1,e=an(i,a),e.ref=t.ref,e.return=t,t.child=e}function hd(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(rl(i,a)&&e.ref===t.ref)if(Ze=!1,t.pendingProps=a=i,Xc(e,l))(e.flags&131072)!==0&&(Ze=!0);else return t.lanes=e.lanes,on(e,t,l)}return Hc(e,t,n,a,l)}function pd(e,t,n,a){var l=a.children,i=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(i=i!==null?i.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&~i}else a=0,t.child=null;return vd(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&bs(t,i!==null?i.cachePool:null),i!==null?yo(t,i):hc(),bo(t);else return a=t.lanes=536870912,vd(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(bs(t,i.cachePool),yo(t,i),wn(),t.memoizedState=null):(e!==null&&bs(t,null),hc(),wn());return ct(e,t,l,n),t.child}function Nl(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function vd(e,t,n,a,l){var i=rc();return i=i===null?null:{parent:Qe._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&bs(t,null),hc(),bo(t),e!==null&&wa(e,t,a,!0),t.childLanes=l,null}function _s(e,t){return t=Us({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function gd(e,t,n){return sa(t,e.child,null,n),e=_s(t,t.pendingProps),e.flags|=2,At(t),t.memoizedState=null,e}function up(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Ne){if(a.mode==="hidden")return e=_s(t,a),t.lanes=536870912,Nl(null,e);if(vc(t),(e=Ie)?(e=wf(e,Lt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:jn!==null?{id:Zt,overflow:Jt}:null,retryLane:536870912,hydrationErrors:null},n=Pu(e),n.return=t,t.child=n,st=t,Ie=null)):e=null,e===null)throw Rn(t);return t.lanes=536870912,null}return _s(t,a)}var i=e.memoizedState;if(i!==null){var d=i.dehydrated;if(vc(t),l)if(t.flags&256)t.flags&=-257,t=gd(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(o(558));else if(Ze||wa(e,t,n,!1),l=(n&e.childLanes)!==0,Ze||l){if(a=ze,a!==null&&(d=iu(a,n),d!==0&&d!==i.retryLane))throw i.retryLane=d,Fn(e,d),jt(a,e,d),Uc;Ks(),t=gd(e,t,n)}else e=i.treeContext,Ie=qt(d.nextSibling),st=t,Ne=!0,Nn=null,Lt=!1,e!==null&&no(t,e),t=_s(t,a),t.flags|=4096;return t}return e=an(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Is(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(o(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Hc(e,t,n,a,l){return ta(t),n=yc(e,t,n,a,void 0,l),a=bc(),e!==null&&!Ze?(xc(e,t,l),on(e,t,l)):(Ne&&a&&Pi(t),t.flags|=1,ct(e,t,n,l),t.child)}function yd(e,t,n,a,l,i){return ta(t),t.updateQueue=null,n=So(t,a,n,l),xo(e),a=bc(),e!==null&&!Ze?(xc(e,t,i),on(e,t,i)):(Ne&&a&&Pi(t),t.flags|=1,ct(e,t,n,i),t.child)}function bd(e,t,n,a,l){if(ta(t),t.stateNode===null){var i=Ta,d=n.contextType;typeof d=="object"&&d!==null&&(i=it(d)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=_c,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},oc(t),d=n.contextType,i.context=typeof d=="object"&&d!==null?it(d):Ta,i.state=t.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(zc(t,n,d,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(d=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),d!==i.state&&_c.enqueueReplaceState(i,i.state,null),yl(t,a,i,l),gl(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var p=t.memoizedProps,x=ca(n,p);i.props=x;var O=i.context,$=n.contextType;d=Ta,typeof $=="object"&&$!==null&&(d=it($));var J=n.getDerivedStateFromProps;$=typeof J=="function"||typeof i.getSnapshotBeforeUpdate=="function",p=t.pendingProps!==p,$||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(p||O!==d)&&sd(t,i,a,d),Tn=!1;var I=t.memoizedState;i.state=I,yl(t,a,i,l),gl(),O=t.memoizedState,p||I!==O||Tn?(typeof J=="function"&&(zc(t,n,J,a),O=t.memoizedState),(x=Tn||ld(t,n,x,a,I,O,d))?($||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=O),i.props=a,i.state=O,i.context=d,a=x):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,dc(e,t),d=t.memoizedProps,$=ca(n,d),i.props=$,J=t.pendingProps,I=i.context,O=n.contextType,x=Ta,typeof O=="object"&&O!==null&&(x=it(O)),p=n.getDerivedStateFromProps,(O=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(d!==J||I!==x)&&sd(t,i,a,x),Tn=!1,I=t.memoizedState,i.state=I,yl(t,a,i,l),gl();var B=t.memoizedState;d!==J||I!==B||Tn||e!==null&&e.dependencies!==null&&gs(e.dependencies)?(typeof p=="function"&&(zc(t,n,p,a),B=t.memoizedState),($=Tn||ld(t,n,$,a,I,B,x)||e!==null&&e.dependencies!==null&&gs(e.dependencies))?(O||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,B,x),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,B,x)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&I===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&I===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=B),i.props=a,i.state=B,i.context=x,a=$):(typeof i.componentDidUpdate!="function"||d===e.memoizedProps&&I===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&I===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,Is(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=sa(t,e.child,null,l),t.child=sa(t,null,n,l)):ct(e,t,n,l),t.memoizedState=i.state,e=t.child):e=on(e,t,l),e}function xd(e,t,n,a){return Pn(),t.flags|=256,ct(e,t,n,a),t.child}var Lc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Bc(e){return{baseLanes:e,cachePool:ro()}}function qc(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=kt),e}function Sd(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,d;if((d=i)||(d=e!==null&&e.memoizedState===null?!1:(Ye.current&2)!==0),d&&(l=!0,t.flags&=-129),d=(t.flags&32)!==0,t.flags&=-33,e===null){if(Ne){if(l?kn(t):wn(),(e=Ie)?(e=wf(e,Lt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:jn!==null?{id:Zt,overflow:Jt}:null,retryLane:536870912,hydrationErrors:null},n=Pu(e),n.return=t,t.child=n,st=t,Ie=null)):e=null,e===null)throw Rn(t);return Nr(e)?t.lanes=32:t.lanes=536870912,null}var p=a.children;return a=a.fallback,l?(wn(),l=t.mode,p=Us({mode:"hidden",children:p},l),a=Wn(a,l,n,null),p.return=t,a.return=t,p.sibling=a,t.child=p,a=t.child,a.memoizedState=Bc(n),a.childLanes=qc(e,d,n),t.memoizedState=Lc,Nl(null,a)):(kn(t),Gc(t,p))}var x=e.memoizedState;if(x!==null&&(p=x.dehydrated,p!==null)){if(i)t.flags&256?(kn(t),t.flags&=-257,t=Yc(e,t,n)):t.memoizedState!==null?(wn(),t.child=e.child,t.flags|=128,t=null):(wn(),p=a.fallback,l=t.mode,a=Us({mode:"visible",children:a.children},l),p=Wn(p,l,n,null),p.flags|=2,a.return=t,p.return=t,a.sibling=p,t.child=a,sa(t,e.child,null,n),a=t.child,a.memoizedState=Bc(n),a.childLanes=qc(e,d,n),t.memoizedState=Lc,t=Nl(null,a));else if(kn(t),Nr(p)){if(d=p.nextSibling&&p.nextSibling.dataset,d)var O=d.dgst;d=O,a=Error(o(419)),a.stack="",a.digest=d,dl({value:a,source:null,stack:null}),t=Yc(e,t,n)}else if(Ze||wa(e,t,n,!1),d=(n&e.childLanes)!==0,Ze||d){if(d=ze,d!==null&&(a=iu(d,n),a!==0&&a!==x.retryLane))throw x.retryLane=a,Fn(e,a),jt(d,e,a),Uc;jr(p)||Ks(),t=Yc(e,t,n)}else jr(p)?(t.flags|=192,t.child=e.child,t=null):(e=x.treeContext,Ie=qt(p.nextSibling),st=t,Ne=!0,Nn=null,Lt=!1,e!==null&&no(t,e),t=Gc(t,a.children),t.flags|=4096);return t}return l?(wn(),p=a.fallback,l=t.mode,x=e.child,O=x.sibling,a=an(x,{mode:"hidden",children:a.children}),a.subtreeFlags=x.subtreeFlags&65011712,O!==null?p=an(O,p):(p=Wn(p,l,n,null),p.flags|=2),p.return=t,a.return=t,a.sibling=p,t.child=a,Nl(null,a),a=t.child,p=e.child.memoizedState,p===null?p=Bc(n):(l=p.cachePool,l!==null?(x=Qe._currentValue,l=l.parent!==x?{parent:x,pool:x}:l):l=ro(),p={baseLanes:p.baseLanes|n,cachePool:l}),a.memoizedState=p,a.childLanes=qc(e,d,n),t.memoizedState=Lc,Nl(e.child,a)):(kn(t),n=e.child,e=n.sibling,n=an(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 Gc(e,t){return t=Us({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Us(e,t){return e=Ct(22,e,null,t),e.lanes=0,e}function Yc(e,t,n){return sa(t,e.child,null,n),e=Gc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function jd(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),lc(e.return,t,n)}function $c(e,t,n,a,l,i){var d=e.memoizedState;d===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(d.isBackwards=t,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=l,d.treeForkCount=i)}function Nd(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var d=Ye.current,p=(d&2)!==0;if(p?(d=d&1|2,t.flags|=128):d&=1,P(Ye,d),ct(e,t,a,n),a=Ne?ol:0,!p&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&jd(e,n,t);else if(e.tag===19)jd(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&&Cs(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),$c(t,!1,l,n,i,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&&Cs(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}$c(t,!0,n,null,i,a);break;case"together":$c(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function on(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Mn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(wa(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,n=an(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=an(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Xc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&gs(e)))}function op(e,t,n){switch(t.tag){case 3:Ee(t,t.stateNode.containerInfo),Cn(t,Qe,e.memoizedState.cache),Pn();break;case 27:case 5:Ke(t);break;case 4:Ee(t,t.stateNode.containerInfo);break;case 10:Cn(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,vc(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(kn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Sd(e,t,n):(kn(t),e=on(e,t,n),e!==null?e.sibling:null);kn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(wa(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Nd(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),P(Ye,Ye.current),a)break;return null;case 22:return t.lanes=0,pd(e,t,n,t.pendingProps);case 24:Cn(t,Qe,e.memoizedState.cache)}return on(e,t,n)}function Rd(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Ze=!0;else{if(!Xc(e,n)&&(t.flags&128)===0)return Ze=!1,op(e,t,n);Ze=(e.flags&131072)!==0}else Ze=!1,Ne&&(t.flags&1048576)!==0&&to(t,ol,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=aa(t.elementType),t.type=e,typeof e=="function")Ji(e)?(a=ca(e,a),t.tag=1,t=bd(null,t,e,a,n)):(t.tag=0,t=Hc(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===Q){t.tag=11,t=fd(null,t,e,a,n);break e}else if(l===k){t.tag=14,t=md(null,t,e,a,n);break e}}throw t=q(e)||e,Error(o(306,t,""))}}return t;case 0:return Hc(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=ca(a,t.pendingProps),bd(e,t,a,l,n);case 3:e:{if(Ee(t,t.stateNode.containerInfo),e===null)throw Error(o(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,dc(e,t),yl(t,a,null,n);var d=t.memoizedState;if(a=d.cache,Cn(t,Qe,a),a!==i.cache&&sc(t,[Qe],n,!0),gl(),a=d.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:d.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=xd(e,t,a,n);break e}else if(a!==l){l=It(Error(o(424)),t),dl(l),t=xd(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,Ie=qt(e.firstChild),st=t,Ne=!0,Nn=null,Lt=!0,n=po(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Pn(),a===l){t=on(e,t,n);break e}ct(e,t,a,n)}t=t.child}return t;case 26:return Is(e,t),e===null?(n=If(t.type,null,t.pendingProps,null))?t.memoizedState=n:Ne||(n=t.type,e=t.pendingProps,a=Ps(oe.current).createElement(n),a[lt]=t,a[vt]=e,rt(a,n,e),tt(a),t.stateNode=a):t.memoizedState=If(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ke(t),e===null&&Ne&&(a=t.stateNode=Mf(t.type,t.pendingProps,oe.current),st=t,Lt=!0,l=Ie,Hn(t.type)?(Rr=l,Ie=qt(a.firstChild)):Ie=l),ct(e,t,t.pendingProps.children,n),Is(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ne&&((l=a=Ie)&&(a=Bp(a,t.type,t.pendingProps,Lt),a!==null?(t.stateNode=a,st=t,Ie=qt(a.firstChild),Lt=!1,l=!0):l=!1),l||Rn(t)),Ke(t),l=t.type,i=t.pendingProps,d=e!==null?e.memoizedProps:null,a=i.children,br(l,i)?a=null:d!==null&&br(l,d)&&(t.flags|=32),t.memoizedState!==null&&(l=yc(e,t,tp,null,null,n),Hl._currentValue=l),Is(e,t),ct(e,t,a,n),t.child;case 6:return e===null&&Ne&&((e=n=Ie)&&(n=qp(n,t.pendingProps,Lt),n!==null?(t.stateNode=n,st=t,Ie=null,e=!0):e=!1),e||Rn(t)),null;case 13:return Sd(e,t,n);case 4:return Ee(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=sa(t,null,a,n):ct(e,t,a,n),t.child;case 11:return fd(e,t,t.type,t.pendingProps,n);case 7:return ct(e,t,t.pendingProps,n),t.child;case 8:return ct(e,t,t.pendingProps.children,n),t.child;case 12:return ct(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,Cn(t,t.type,a.value),ct(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ta(t),l=it(l),a=a(l),t.flags|=1,ct(e,t,a,n),t.child;case 14:return md(e,t,t.type,t.pendingProps,n);case 15:return hd(e,t,t.type,t.pendingProps,n);case 19:return Nd(e,t,n);case 31:return up(e,t,n);case 22:return pd(e,t,n,t.pendingProps);case 24:return ta(t),a=it(Qe),e===null?(l=rc(),l===null&&(l=ze,i=ic(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},oc(t),Cn(t,Qe,l)):((e.lanes&n)!==0&&(dc(e,t),yl(t,null,null,n),gl()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Cn(t,Qe,a)):(a=i.cache,Cn(t,Qe,a),a!==l.cache&&sc(t,[Qe],n,!0))),ct(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function dn(e){e.flags|=4}function Kc(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(Fd())e.flags|=8192;else throw la=Ss,uc}else e.flags&=-16777217}function Cd(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!qf(t))if(Fd())e.flags|=8192;else throw la=Ss,uc}function Hs(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?au():536870912,e.lanes|=t,Ga|=t)}function Rl(e,t){if(!Ne)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 Ue(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 dp(e,t,n){var a=t.pendingProps;switch(ec(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ue(t),null;case 1:return Ue(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),cn(Qe),xe(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ka(t)?dn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,nc())),Ue(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(dn(t),i!==null?(Ue(t),Cd(t,i)):(Ue(t),Kc(t,l,null,a,n))):i?i!==e.memoizedState?(dn(t),Ue(t),Cd(t,i)):(Ue(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&dn(t),Ue(t),Kc(t,l,e,a,n)),null;case 27:if(mt(t),n=oe.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&dn(t);else{if(!a){if(t.stateNode===null)throw Error(o(166));return Ue(t),null}e=se.current,ka(t)?ao(t):(e=Mf(l,a,n),t.stateNode=e,dn(t))}return Ue(t),null;case 5:if(mt(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&dn(t);else{if(!a){if(t.stateNode===null)throw Error(o(166));return Ue(t),null}if(i=se.current,ka(t))ao(t);else{var d=Ps(oe.current);switch(i){case 1:i=d.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=d.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=d.createElement("div"),i.innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?d.createElement(l,{is:a.is}):d.createElement(l)}}i[lt]=t,i[vt]=a;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)i.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=i;e:switch(rt(i,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&&dn(t)}}return Ue(t),Kc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&dn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(e=oe.current,ka(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=st,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[lt]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||jf(e.nodeValue,n)),e||Rn(t,!0)}else e=Ps(e).createTextNode(a),e[lt]=t,t.stateNode=e}return Ue(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=ka(t),n!==null){if(e===null){if(!a)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[lt]=t}else Pn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),e=!1}else n=nc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(At(t),t):(At(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Ue(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=ka(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(o(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(o(317));l[lt]=t}else Pn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),l=!1}else l=nc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(At(t),t):(At(t),null)}return At(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Hs(t,t.updateQueue),Ue(t),null);case 4:return xe(),e===null&&hr(t.stateNode.containerInfo),Ue(t),null;case 10:return cn(t.type),Ue(t),null;case 19:if(w(Ye),a=t.memoizedState,a===null)return Ue(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Rl(a,!1);else{if(qe!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=Cs(e),i!==null){for(t.flags|=128,Rl(a,!1),e=i.updateQueue,t.updateQueue=e,Hs(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wu(n,e),n=n.sibling;return P(Ye,Ye.current&1|2),Ne&&ln(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&We()>Ys&&(t.flags|=128,l=!0,Rl(a,!1),t.lanes=4194304)}else{if(!l)if(e=Cs(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Hs(t,e),Rl(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!Ne)return Ue(t),null}else 2*We()-a.renderingStartTime>Ys&&n!==536870912&&(t.flags|=128,l=!0,Rl(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=We(),e.sibling=null,n=Ye.current,P(Ye,l?n&1|2:n&1),Ne&&ln(t,a.treeForkCount),e):(Ue(t),null);case 22:case 23:return At(t),pc(),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&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),n=t.updateQueue,n!==null&&Hs(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&w(na),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),cn(Qe),Ue(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function fp(e,t){switch(ec(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return cn(Qe),xe(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return mt(t),null;case 31:if(t.memoizedState!==null){if(At(t),t.alternate===null)throw Error(o(340));Pn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(At(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Pn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return w(Ye),null;case 4:return xe(),null;case 10:return cn(t.type),null;case 22:case 23:return At(t),pc(),e!==null&&w(na),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return cn(Qe),null;case 25:return null;default:return null}}function Td(e,t){switch(ec(t),t.tag){case 3:cn(Qe),xe();break;case 26:case 27:case 5:mt(t);break;case 4:xe();break;case 31:t.memoizedState!==null&&At(t);break;case 13:At(t);break;case 19:w(Ye);break;case 10:cn(t.type);break;case 22:case 23:At(t),pc(),e!==null&&w(na);break;case 24:cn(Qe)}}function Cl(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 i=n.create,d=n.inst;a=i(),d.destroy=a}n=n.next}while(n!==l)}}catch(p){we(t,t.return,p)}}function Dn(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var d=a.inst,p=d.destroy;if(p!==void 0){d.destroy=void 0,l=t;var x=n,O=p;try{O()}catch($){we(l,x,$)}}}a=a.next}while(a!==i)}}catch($){we(t,t.return,$)}}function Ad(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{go(t,n)}catch(a){we(e,e.return,a)}}}function Ed(e,t,n){n.props=ca(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){we(e,t,a)}}function Tl(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){we(e,t,l)}}function Ft(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){we(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){we(e,t,l)}else n.current=null}function kd(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){we(e,e.return,l)}}function Qc(e,t,n){try{var a=e.stateNode;zp(a,e.type,n,t),a[vt]=t}catch(l){we(e,e.return,l)}}function wd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Hn(e.type)||e.tag===4}function Vc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wd(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Hn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Zc(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=tn));else if(a!==4&&(a===27&&Hn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Ls(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Hn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Ls(e,t,n),e=e.sibling;e!==null;)Ls(e,t,n),e=e.sibling}function Dd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);rt(t,a,n),t[lt]=e,t[vt]=n}catch(i){we(e,e.return,i)}}var fn=!1,Je=!1,Jc=!1,Od=typeof WeakSet=="function"?WeakSet:Set,nt=null;function mp(e,t){if(e=e.containerInfo,gr=ii,e=Yu(e),Yi(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,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var d=0,p=-1,x=-1,O=0,$=0,J=e,I=null;t:for(;;){for(var B;J!==n||l!==0&&J.nodeType!==3||(p=d+l),J!==i||a!==0&&J.nodeType!==3||(x=d+a),J.nodeType===3&&(d+=J.nodeValue.length),(B=J.firstChild)!==null;)I=J,J=B;for(;;){if(J===e)break t;if(I===n&&++O===l&&(p=d),I===i&&++$===a&&(x=d),(B=J.nextSibling)!==null)break;J=I,I=J.parentNode}J=B}n=p===-1||x===-1?null:{start:p,end:x}}else n=null}n=n||{start:0,end:0}}else n=null;for(yr={focusedElem:e,selectionRange:n},ii=!1,nt=t;nt!==null;)if(t=nt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,nt=e;else for(;nt!==null;){switch(t=nt,i=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&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var ce=ca(n.type,l);e=a.getSnapshotBeforeUpdate(ce,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(fe){we(n,n.return,fe)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Sr(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Sr(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(o(163))}if(e=t.sibling,e!==null){e.return=t.return,nt=e;break}nt=t.return}}function Md(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:hn(e,n),a&4&&Cl(5,n);break;case 1:if(hn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(d){we(n,n.return,d)}else{var l=ca(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(d){we(n,n.return,d)}}a&64&&Ad(n),a&512&&Tl(n,n.return);break;case 3:if(hn(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{go(e,t)}catch(d){we(n,n.return,d)}}break;case 27:t===null&&a&4&&Dd(n);case 26:case 5:hn(e,n),t===null&&a&4&&kd(n),a&512&&Tl(n,n.return);break;case 12:hn(e,n);break;case 31:hn(e,n),a&4&&Id(e,n);break;case 13:hn(e,n),a&4&&Ud(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=jp.bind(null,n),Gp(e,n))));break;case 22:if(a=n.memoizedState!==null||fn,!a){t=t!==null&&t.memoizedState!==null||Je,l=fn;var i=Je;fn=a,(Je=t)&&!i?pn(e,n,(n.subtreeFlags&8772)!==0):hn(e,n),fn=l,Je=i}break;case 30:break;default:hn(e,n)}}function zd(e){var t=e.alternate;t!==null&&(e.alternate=null,zd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ti(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 Le=null,yt=!1;function mn(e,t,n){for(n=n.child;n!==null;)_d(e,t,n),n=n.sibling}function _d(e,t,n){if(dt&&typeof dt.onCommitFiberUnmount=="function")try{dt.onCommitFiberUnmount(Ot,n)}catch{}switch(n.tag){case 26:Je||Ft(n,t),mn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Je||Ft(n,t);var a=Le,l=yt;Hn(n.type)&&(Le=n.stateNode,yt=!1),mn(e,t,n),_l(n.stateNode),Le=a,yt=l;break;case 5:Je||Ft(n,t);case 6:if(a=Le,l=yt,Le=null,mn(e,t,n),Le=a,yt=l,Le!==null)if(yt)try{(Le.nodeType===9?Le.body:Le.nodeName==="HTML"?Le.ownerDocument.body:Le).removeChild(n.stateNode)}catch(i){we(n,t,i)}else try{Le.removeChild(n.stateNode)}catch(i){we(n,t,i)}break;case 18:Le!==null&&(yt?(e=Le,Ef(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Ja(e)):Ef(Le,n.stateNode));break;case 4:a=Le,l=yt,Le=n.stateNode.containerInfo,yt=!0,mn(e,t,n),Le=a,yt=l;break;case 0:case 11:case 14:case 15:Dn(2,n,t),Je||Dn(4,n,t),mn(e,t,n);break;case 1:Je||(Ft(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Ed(n,t,a)),mn(e,t,n);break;case 21:mn(e,t,n);break;case 22:Je=(a=Je)||n.memoizedState!==null,mn(e,t,n),Je=a;break;default:mn(e,t,n)}}function Id(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Ja(e)}catch(n){we(t,t.return,n)}}}function Ud(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Ja(e)}catch(n){we(t,t.return,n)}}function hp(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Od),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Od),t;default:throw Error(o(435,e.tag))}}function Bs(e,t){var n=hp(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=Np.bind(null,e,a);a.then(l,l)}})}function bt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,d=t,p=d;e:for(;p!==null;){switch(p.tag){case 27:if(Hn(p.type)){Le=p.stateNode,yt=!1;break e}break;case 5:Le=p.stateNode,yt=!1;break e;case 3:case 4:Le=p.stateNode.containerInfo,yt=!0;break e}p=p.return}if(Le===null)throw Error(o(160));_d(i,d,l),Le=null,yt=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Hd(t,e),t=t.sibling}var Xt=null;function Hd(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:bt(t,e),xt(e),a&4&&(Dn(3,e,e.return),Cl(3,e),Dn(5,e,e.return));break;case 1:bt(t,e),xt(e),a&512&&(Je||n===null||Ft(n,n.return)),a&64&&fn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=Xt;if(bt(t,e),xt(e),a&512&&(Je||n===null||Ft(n,n.return)),a&4){var i=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":i=l.getElementsByTagName("title")[0],(!i||i[Pa]||i[lt]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),rt(i,a,n),i[lt]=e,tt(i),a=i;break e;case"link":var d=Lf("link","href",l).get(a+(n.href||""));if(d){for(var p=0;p<d.length;p++)if(i=d[p],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(p,1);break t}}i=l.createElement(a),rt(i,a,n),l.head.appendChild(i);break;case"meta":if(d=Lf("meta","content",l).get(a+(n.content||""))){for(p=0;p<d.length;p++)if(i=d[p],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(p,1);break t}}i=l.createElement(a),rt(i,a,n),l.head.appendChild(i);break;default:throw Error(o(468,a))}i[lt]=e,tt(i),a=i}e.stateNode=a}else Bf(l,e.type,e.stateNode);else e.stateNode=Hf(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?Bf(l,e.type,e.stateNode):Hf(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&Qc(e,e.memoizedProps,n.memoizedProps)}break;case 27:bt(t,e),xt(e),a&512&&(Je||n===null||Ft(n,n.return)),n!==null&&a&4&&Qc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(bt(t,e),xt(e),a&512&&(Je||n===null||Ft(n,n.return)),e.flags&32){l=e.stateNode;try{ba(l,"")}catch(ce){we(e,e.return,ce)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,Qc(e,l,n!==null?n.memoizedProps:l)),a&1024&&(Jc=!0);break;case 6:if(bt(t,e),xt(e),a&4){if(e.stateNode===null)throw Error(o(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(ce){we(e,e.return,ce)}}break;case 3:if(ni=null,l=Xt,Xt=ei(t.containerInfo),bt(t,e),Xt=l,xt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Ja(t.containerInfo)}catch(ce){we(e,e.return,ce)}Jc&&(Jc=!1,Ld(e));break;case 4:a=Xt,Xt=ei(e.stateNode.containerInfo),bt(t,e),xt(e),Xt=a;break;case 12:bt(t,e),xt(e);break;case 31:bt(t,e),xt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Bs(e,a)));break;case 13:bt(t,e),xt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Gs=We()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Bs(e,a)));break;case 22:l=e.memoizedState!==null;var x=n!==null&&n.memoizedState!==null,O=fn,$=Je;if(fn=O||l,Je=$||x,bt(t,e),Je=$,fn=O,xt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||x||fn||Je||ra(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){x=n=t;try{if(i=x.stateNode,l)d=i.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{p=x.stateNode;var J=x.memoizedProps.style,I=J!=null&&J.hasOwnProperty("display")?J.display:null;p.style.display=I==null||typeof I=="boolean"?"":(""+I).trim()}}catch(ce){we(x,x.return,ce)}}}else if(t.tag===6){if(n===null){x=t;try{x.stateNode.nodeValue=l?"":x.memoizedProps}catch(ce){we(x,x.return,ce)}}}else if(t.tag===18){if(n===null){x=t;try{var B=x.stateNode;l?kf(B,!0):kf(x.stateNode,!1)}catch(ce){we(x,x.return,ce)}}}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,Bs(e,n))));break;case 19:bt(t,e),xt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Bs(e,a)));break;case 30:break;case 21:break;default:bt(t,e),xt(e)}}function xt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(wd(a)){n=a;break}a=a.return}if(n==null)throw Error(o(160));switch(n.tag){case 27:var l=n.stateNode,i=Vc(e);Ls(e,i,l);break;case 5:var d=n.stateNode;n.flags&32&&(ba(d,""),n.flags&=-33);var p=Vc(e);Ls(e,p,d);break;case 3:case 4:var x=n.stateNode.containerInfo,O=Vc(e);Zc(e,O,x);break;default:throw Error(o(161))}}catch($){we(e,e.return,$)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ld(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Ld(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function hn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Md(e,t.alternate,t),t=t.sibling}function ra(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Dn(4,t,t.return),ra(t);break;case 1:Ft(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Ed(t,t.return,n),ra(t);break;case 27:_l(t.stateNode);case 26:case 5:Ft(t,t.return),ra(t);break;case 22:t.memoizedState===null&&ra(t);break;case 30:ra(t);break;default:ra(t)}e=e.sibling}}function pn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,d=i.flags;switch(i.tag){case 0:case 11:case 15:pn(l,i,n),Cl(4,i);break;case 1:if(pn(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(O){we(a,a.return,O)}if(a=i,l=a.updateQueue,l!==null){var p=a.stateNode;try{var x=l.shared.hiddenCallbacks;if(x!==null)for(l.shared.hiddenCallbacks=null,l=0;l<x.length;l++)vo(x[l],p)}catch(O){we(a,a.return,O)}}n&&d&64&&Ad(i),Tl(i,i.return);break;case 27:Dd(i);case 26:case 5:pn(l,i,n),n&&a===null&&d&4&&kd(i),Tl(i,i.return);break;case 12:pn(l,i,n);break;case 31:pn(l,i,n),n&&d&4&&Id(l,i);break;case 13:pn(l,i,n),n&&d&4&&Ud(l,i);break;case 22:i.memoizedState===null&&pn(l,i,n),Tl(i,i.return);break;case 30:break;default:pn(l,i,n)}t=t.sibling}}function Fc(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&&fl(n))}function Wc(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&fl(e))}function Kt(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Bd(e,t,n,a),t=t.sibling}function Bd(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Kt(e,t,n,a),l&2048&&Cl(9,t);break;case 1:Kt(e,t,n,a);break;case 3:Kt(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&&fl(e)));break;case 12:if(l&2048){Kt(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,d=i.id,p=i.onPostCommit;typeof p=="function"&&p(d,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(x){we(t,t.return,x)}}else Kt(e,t,n,a);break;case 31:Kt(e,t,n,a);break;case 13:Kt(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,d=t.alternate,t.memoizedState!==null?i._visibility&2?Kt(e,t,n,a):Al(e,t):i._visibility&2?Kt(e,t,n,a):(i._visibility|=2,La(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Fc(d,t);break;case 24:Kt(e,t,n,a),l&2048&&Wc(t.alternate,t);break;default:Kt(e,t,n,a)}}function La(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,d=t,p=n,x=a,O=d.flags;switch(d.tag){case 0:case 11:case 15:La(i,d,p,x,l),Cl(8,d);break;case 23:break;case 22:var $=d.stateNode;d.memoizedState!==null?$._visibility&2?La(i,d,p,x,l):Al(i,d):($._visibility|=2,La(i,d,p,x,l)),l&&O&2048&&Fc(d.alternate,d);break;case 24:La(i,d,p,x,l),l&&O&2048&&Wc(d.alternate,d);break;default:La(i,d,p,x,l)}t=t.sibling}}function Al(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:Al(n,a),l&2048&&Fc(a.alternate,a);break;case 24:Al(n,a),l&2048&&Wc(a.alternate,a);break;default:Al(n,a)}t=t.sibling}}var El=8192;function Ba(e,t,n){if(e.subtreeFlags&El)for(e=e.child;e!==null;)qd(e,t,n),e=e.sibling}function qd(e,t,n){switch(e.tag){case 26:Ba(e,t,n),e.flags&El&&e.memoizedState!==null&&ev(n,Xt,e.memoizedState,e.memoizedProps);break;case 5:Ba(e,t,n);break;case 3:case 4:var a=Xt;Xt=ei(e.stateNode.containerInfo),Ba(e,t,n),Xt=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=El,El=16777216,Ba(e,t,n),El=a):Ba(e,t,n));break;default:Ba(e,t,n)}}function Gd(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 kl(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];nt=a,$d(a,e)}Gd(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Yd(e),e=e.sibling}function Yd(e){switch(e.tag){case 0:case 11:case 15:kl(e),e.flags&2048&&Dn(9,e,e.return);break;case 3:kl(e);break;case 12:kl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,qs(e)):kl(e);break;default:kl(e)}}function qs(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];nt=a,$d(a,e)}Gd(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Dn(8,t,t.return),qs(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,qs(t));break;default:qs(t)}e=e.sibling}}function $d(e,t){for(;nt!==null;){var n=nt;switch(n.tag){case 0:case 11:case 15:Dn(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:fl(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,nt=a;else e:for(n=e;nt!==null;){a=nt;var l=a.sibling,i=a.return;if(zd(a),a===n){nt=null;break e}if(l!==null){l.return=i,nt=l;break e}nt=i}}}var pp={getCacheForType:function(e){var t=it(Qe),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return it(Qe).controller.signal}},vp=typeof WeakMap=="function"?WeakMap:Map,Ae=0,ze=null,ye=null,Se=0,ke=0,Et=null,On=!1,qa=!1,Pc=!1,vn=0,qe=0,Mn=0,ua=0,er=0,kt=0,Ga=0,wl=null,St=null,tr=!1,Gs=0,Xd=0,Ys=1/0,$s=null,zn=null,et=0,_n=null,Ya=null,gn=0,nr=0,ar=null,Kd=null,Dl=0,lr=null;function wt(){return(Ae&2)!==0&&Se!==0?Se&-Se:j.T!==null?or():cu()}function Qd(){if(kt===0)if((Se&536870912)===0||Ne){var e=Wl;Wl<<=1,(Wl&3932160)===0&&(Wl=262144),kt=e}else kt=536870912;return e=Tt.current,e!==null&&(e.flags|=32),kt}function jt(e,t,n){(e===ze&&(ke===2||ke===9)||e.cancelPendingCommit!==null)&&($a(e,0),In(e,Se,kt,!1)),Wa(e,n),((Ae&2)===0||e!==ze)&&(e===ze&&((Ae&2)===0&&(ua|=n),qe===4&&In(e,Se,kt,!1)),Wt(e))}function Vd(e,t,n){if((Ae&6)!==0)throw Error(o(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Fa(e,t),l=a?bp(e,t):ir(e,t,!0),i=a;do{if(l===0){qa&&!a&&In(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!gp(n)){l=ir(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var d=0;else d=e.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){t=d;e:{var p=e;l=wl;var x=p.current.memoizedState.isDehydrated;if(x&&($a(p,d).flags|=256),d=ir(p,d,!1),d!==2){if(Pc&&!x){p.errorRecoveryDisabledLanes|=i,ua|=i,l=4;break e}i=St,St=l,i!==null&&(St===null?St=i:St.push.apply(St,i))}l=d}if(i=!1,l!==2)continue}}if(l===1){$a(e,0),In(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(o(345));case 4:if((t&4194048)!==t)break;case 6:In(a,t,kt,!On);break e;case 2:St=null;break;case 3:case 5:break;default:throw Error(o(329))}if((t&62914560)===t&&(l=Gs+300-We(),10<l)){if(In(a,t,kt,!On),es(a,0,!0)!==0)break e;gn=t,a.timeoutHandle=Tf(Zd.bind(null,a,n,St,$s,tr,t,kt,ua,Ga,On,i,"Throttled",-0,0),l);break e}Zd(a,n,St,$s,tr,t,kt,ua,Ga,On,i,null,-0,0)}}break}while(!0);Wt(e)}function Zd(e,t,n,a,l,i,d,p,x,O,$,J,I,B){if(e.timeoutHandle=-1,J=t.subtreeFlags,J&8192||(J&16785408)===16785408){J={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tn},qd(t,i,J);var ce=(i&62914560)===i?Gs-We():(i&4194048)===i?Xd-We():0;if(ce=tv(J,ce),ce!==null){gn=i,e.cancelPendingCommit=ce(af.bind(null,e,t,i,n,a,l,d,p,x,$,J,null,I,B)),In(e,i,d,!O);return}}af(e,t,i,n,a,l,d,p,x)}function gp(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],i=l.getSnapshot;l=l.value;try{if(!Rt(i(),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 In(e,t,n,a){t&=~er,t&=~ua,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-ut(l),d=1<<i;a[i]=-1,l&=~d}n!==0&&lu(e,n,t)}function Xs(){return(Ae&6)===0?(Ol(0),!1):!0}function sr(){if(ye!==null){if(ke===0)var e=ye.return;else e=ye,sn=ea=null,Sc(e),za=null,hl=0,e=ye;for(;e!==null;)Td(e.alternate,e),e=e.return;ye=null}}function $a(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Up(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),gn=0,sr(),ze=e,ye=n=an(e.current,null),Se=t,ke=0,Et=null,On=!1,qa=Fa(e,t),Pc=!1,Ga=kt=er=ua=Mn=qe=0,St=wl=null,tr=!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-ut(a),i=1<<l;t|=e[l],a&=~i}return vn=t,fs(),n}function Jd(e,t){ve=null,j.H=jl,t===Ma||t===xs?(t=fo(),ke=3):t===uc?(t=fo(),ke=4):ke=t===Uc?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Et=t,ye===null&&(qe=1,zs(e,It(t,e.current)))}function Fd(){var e=Tt.current;return e===null?!0:(Se&4194048)===Se?Bt===null:(Se&62914560)===Se||(Se&536870912)!==0?e===Bt:!1}function Wd(){var e=j.H;return j.H=jl,e===null?jl:e}function Pd(){var e=j.A;return j.A=pp,e}function Ks(){qe=4,On||(Se&4194048)!==Se&&Tt.current!==null||(qa=!0),(Mn&134217727)===0&&(ua&134217727)===0||ze===null||In(ze,Se,kt,!1)}function ir(e,t,n){var a=Ae;Ae|=2;var l=Wd(),i=Pd();(ze!==e||Se!==t)&&($s=null,$a(e,t)),t=!1;var d=qe;e:do try{if(ke!==0&&ye!==null){var p=ye,x=Et;switch(ke){case 8:sr(),d=6;break e;case 3:case 2:case 9:case 6:Tt.current===null&&(t=!0);var O=ke;if(ke=0,Et=null,Xa(e,p,x,O),n&&qa){d=0;break e}break;default:O=ke,ke=0,Et=null,Xa(e,p,x,O)}}yp(),d=qe;break}catch($){Jd(e,$)}while(!0);return t&&e.shellSuspendCounter++,sn=ea=null,Ae=a,j.H=l,j.A=i,ye===null&&(ze=null,Se=0,fs()),d}function yp(){for(;ye!==null;)ef(ye)}function bp(e,t){var n=Ae;Ae|=2;var a=Wd(),l=Pd();ze!==e||Se!==t?($s=null,Ys=We()+500,$a(e,t)):qa=Fa(e,t);e:do try{if(ke!==0&&ye!==null){t=ye;var i=Et;t:switch(ke){case 1:ke=0,Et=null,Xa(e,t,i,1);break;case 2:case 9:if(uo(i)){ke=0,Et=null,tf(t);break}t=function(){ke!==2&&ke!==9||ze!==e||(ke=7),Wt(e)},i.then(t,t);break e;case 3:ke=7;break e;case 4:ke=5;break e;case 7:uo(i)?(ke=0,Et=null,tf(t)):(ke=0,Et=null,Xa(e,t,i,7));break;case 5:var d=null;switch(ye.tag){case 26:d=ye.memoizedState;case 5:case 27:var p=ye;if(d?qf(d):p.stateNode.complete){ke=0,Et=null;var x=p.sibling;if(x!==null)ye=x;else{var O=p.return;O!==null?(ye=O,Qs(O)):ye=null}break t}}ke=0,Et=null,Xa(e,t,i,5);break;case 6:ke=0,Et=null,Xa(e,t,i,6);break;case 8:sr(),qe=6;break e;default:throw Error(o(462))}}xp();break}catch($){Jd(e,$)}while(!0);return sn=ea=null,j.H=a,j.A=l,Ae=n,ye!==null?0:(ze=null,Se=0,fs(),qe)}function xp(){for(;ye!==null&&!xi();)ef(ye)}function ef(e){var t=Rd(e.alternate,e,vn);e.memoizedProps=e.pendingProps,t===null?Qs(e):ye=t}function tf(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=yd(n,t,t.pendingProps,t.type,void 0,Se);break;case 11:t=yd(n,t,t.pendingProps,t.type.render,t.ref,Se);break;case 5:Sc(t);default:Td(n,t),t=ye=Wu(t,vn),t=Rd(n,t,vn)}e.memoizedProps=e.pendingProps,t===null?Qs(e):ye=t}function Xa(e,t,n,a){sn=ea=null,Sc(t),za=null,hl=0;var l=t.return;try{if(rp(e,l,t,n,Se)){qe=1,zs(e,It(n,e.current)),ye=null;return}}catch(i){if(l!==null)throw ye=l,i;qe=1,zs(e,It(n,e.current)),ye=null;return}t.flags&32768?(Ne||a===1?e=!0:qa||(Se&536870912)!==0?e=!1:(On=e=!0,(a===2||a===9||a===3||a===6)&&(a=Tt.current,a!==null&&a.tag===13&&(a.flags|=16384))),nf(t,e)):Qs(t)}function Qs(e){var t=e;do{if((t.flags&32768)!==0){nf(t,On);return}e=t.return;var n=dp(t.alternate,t,vn);if(n!==null){ye=n;return}if(t=t.sibling,t!==null){ye=t;return}ye=t=e}while(t!==null);qe===0&&(qe=5)}function nf(e,t){do{var n=fp(e.alternate,e);if(n!==null){n.flags&=32767,ye=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){ye=e;return}ye=e=n}while(e!==null);qe=6,ye=null}function af(e,t,n,a,l,i,d,p,x){e.cancelPendingCommit=null;do Vs();while(et!==0);if((Ae&6)!==0)throw Error(o(327));if(t!==null){if(t===e.current)throw Error(o(177));if(i=t.lanes|t.childLanes,i|=Vi,Pm(e,n,i,d,p,x),e===ze&&(ye=ze=null,Se=0),Ya=t,_n=e,gn=n,nr=i,ar=l,Kd=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Rp(fa,function(){return uf(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=j.T,j.T=null,l=z.p,z.p=2,d=Ae,Ae|=4;try{mp(e,t,n)}finally{Ae=d,z.p=l,j.T=a}}et=1,lf(),sf(),cf()}}function lf(){if(et===1){et=0;var e=_n,t=Ya,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=j.T,j.T=null;var a=z.p;z.p=2;var l=Ae;Ae|=4;try{Hd(t,e);var i=yr,d=Yu(e.containerInfo),p=i.focusedElem,x=i.selectionRange;if(d!==p&&p&&p.ownerDocument&&Gu(p.ownerDocument.documentElement,p)){if(x!==null&&Yi(p)){var O=x.start,$=x.end;if($===void 0&&($=O),"selectionStart"in p)p.selectionStart=O,p.selectionEnd=Math.min($,p.value.length);else{var J=p.ownerDocument||document,I=J&&J.defaultView||window;if(I.getSelection){var B=I.getSelection(),ce=p.textContent.length,fe=Math.min(x.start,ce),Me=x.end===void 0?fe:Math.min(x.end,ce);!B.extend&&fe>Me&&(d=Me,Me=fe,fe=d);var T=qu(p,fe),N=qu(p,Me);if(T&&N&&(B.rangeCount!==1||B.anchorNode!==T.node||B.anchorOffset!==T.offset||B.focusNode!==N.node||B.focusOffset!==N.offset)){var D=J.createRange();D.setStart(T.node,T.offset),B.removeAllRanges(),fe>Me?(B.addRange(D),B.extend(N.node,N.offset)):(D.setEnd(N.node,N.offset),B.addRange(D))}}}}for(J=[],B=p;B=B.parentNode;)B.nodeType===1&&J.push({element:B,left:B.scrollLeft,top:B.scrollTop});for(typeof p.focus=="function"&&p.focus(),p=0;p<J.length;p++){var Z=J[p];Z.element.scrollLeft=Z.left,Z.element.scrollTop=Z.top}}ii=!!gr,yr=gr=null}finally{Ae=l,z.p=a,j.T=n}}e.current=t,et=2}}function sf(){if(et===2){et=0;var e=_n,t=Ya,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=j.T,j.T=null;var a=z.p;z.p=2;var l=Ae;Ae|=4;try{Md(e,t.alternate,t)}finally{Ae=l,z.p=a,j.T=n}}et=3}}function cf(){if(et===4||et===3){et=0,Si();var e=_n,t=Ya,n=gn,a=Kd;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?et=5:(et=0,Ya=_n=null,rf(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(zn=null),Ri(n),t=t.stateNode,dt&&typeof dt.onCommitFiberRoot=="function")try{dt.onCommitFiberRoot(Ot,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=j.T,l=z.p,z.p=2,j.T=null;try{for(var i=e.onRecoverableError,d=0;d<a.length;d++){var p=a[d];i(p.value,{componentStack:p.stack})}}finally{j.T=t,z.p=l}}(gn&3)!==0&&Vs(),Wt(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===lr?Dl++:(Dl=0,lr=e):Dl=0,Ol(0)}}function rf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,fl(t)))}function Vs(){return lf(),sf(),cf(),uf()}function uf(){if(et!==5)return!1;var e=_n,t=nr;nr=0;var n=Ri(gn),a=j.T,l=z.p;try{z.p=32>n?32:n,j.T=null,n=ar,ar=null;var i=_n,d=gn;if(et=0,Ya=_n=null,gn=0,(Ae&6)!==0)throw Error(o(331));var p=Ae;if(Ae|=4,Yd(i.current),Bd(i,i.current,d,n),Ae=p,Ol(0,!1),dt&&typeof dt.onPostCommitFiberRoot=="function")try{dt.onPostCommitFiberRoot(Ot,i)}catch{}return!0}finally{z.p=l,j.T=a,rf(e,t)}}function of(e,t,n){t=It(n,t),t=Ic(e.stateNode,t,2),e=En(e,t,2),e!==null&&(Wa(e,2),Wt(e))}function we(e,t,n){if(e.tag===3)of(e,e,n);else for(;t!==null;){if(t.tag===3){of(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(zn===null||!zn.has(a))){e=It(n,e),n=od(2),a=En(t,n,2),a!==null&&(dd(n,a,t,e),Wa(a,2),Wt(a));break}}t=t.return}}function cr(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new vp;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=Sp.bind(null,e,t,n),t.then(e,e))}function Sp(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ze===e&&(Se&n)===n&&(qe===4||qe===3&&(Se&62914560)===Se&&300>We()-Gs?(Ae&2)===0&&$a(e,0):er|=n,Ga===Se&&(Ga=0)),Wt(e)}function df(e,t){t===0&&(t=au()),e=Fn(e,t),e!==null&&(Wa(e,t),Wt(e))}function jp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),df(e,n)}function Np(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(o(314))}a!==null&&a.delete(t),df(e,n)}function Rp(e,t){return Dt(e,t)}var Zs=null,Ka=null,rr=!1,Js=!1,ur=!1,Un=0;function Wt(e){e!==Ka&&e.next===null&&(Ka===null?Zs=Ka=e:Ka=Ka.next=e),Js=!0,rr||(rr=!0,Tp())}function Ol(e,t){if(!ur&&Js){ur=!0;do for(var n=!1,a=Zs;a!==null;){if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var d=a.suspendedLanes,p=a.pingedLanes;i=(1<<31-ut(42|e)+1)-1,i&=l&~(d&~p),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,pf(a,i))}else i=Se,i=es(a,a===ze?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Fa(a,i)||(n=!0,pf(a,i));a=a.next}while(n);ur=!1}}function Cp(){ff()}function ff(){Js=rr=!1;var e=0;Un!==0&&Ip()&&(e=Un);for(var t=We(),n=null,a=Zs;a!==null;){var l=a.next,i=mf(a,t);i===0?(a.next=null,n===null?Zs=l:n.next=l,l===null&&(Ka=n)):(n=a,(e!==0||(i&3)!==0)&&(Js=!0)),a=l}et!==0&&et!==5||Ol(e),Un!==0&&(Un=0)}function mf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var d=31-ut(i),p=1<<d,x=l[d];x===-1?((p&n)===0||(p&a)!==0)&&(l[d]=Wm(p,t)):x<=t&&(e.expiredLanes|=p),i&=~p}if(t=ze,n=Se,n=es(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(ke===2||ke===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&$n(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Fa(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&$n(a),Ri(n)){case 2:case 8:n=Jl;break;case 32:n=fa;break;case 268435456:n=Pe;break;default:n=fa}return a=hf.bind(null,e),n=Dt(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&$n(a),e.callbackPriority=2,e.callbackNode=null,2}function hf(e,t){if(et!==0&&et!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Vs()&&e.callbackNode!==n)return null;var a=Se;return a=es(e,e===ze?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(Vd(e,a,t),mf(e,We()),e.callbackNode!=null&&e.callbackNode===n?hf.bind(null,e):null)}function pf(e,t){if(Vs())return null;Vd(e,t,!0)}function Tp(){Hp(function(){(Ae&6)!==0?Dt(Xn,Cp):ff()})}function or(){if(Un===0){var e=Da;e===0&&(e=Fl,Fl<<=1,(Fl&261888)===0&&(Fl=256)),Un=e}return Un}function vf(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:ls(""+e)}function gf(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Ap(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=vf((l[vt]||null).action),d=a.submitter;d&&(t=(t=d[vt]||null)?vf(t.formAction):d.getAttribute("formAction"),t!==null&&(i=t,d=null));var p=new rs("action","action",null,a,l);e.push({event:p,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(Un!==0){var x=d?gf(l,d):new FormData(l);wc(n,{pending:!0,data:x,method:l.method,action:i},null,x)}}else typeof i=="function"&&(p.preventDefault(),x=d?gf(l,d):new FormData(l),wc(n,{pending:!0,data:x,method:l.method,action:i},i,x))},currentTarget:l}]})}}for(var dr=0;dr<Qi.length;dr++){var fr=Qi[dr],Ep=fr.toLowerCase(),kp=fr[0].toUpperCase()+fr.slice(1);$t(Ep,"on"+kp)}$t(Ku,"onAnimationEnd"),$t(Qu,"onAnimationIteration"),$t(Vu,"onAnimationStart"),$t("dblclick","onDoubleClick"),$t("focusin","onFocus"),$t("focusout","onBlur"),$t(Xh,"onTransitionRun"),$t(Kh,"onTransitionStart"),$t(Qh,"onTransitionCancel"),$t(Zu,"onTransitionEnd"),ga("onMouseEnter",["mouseout","mouseover"]),ga("onMouseLeave",["mouseout","mouseover"]),ga("onPointerEnter",["pointerout","pointerover"]),ga("onPointerLeave",["pointerout","pointerover"]),Qn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qn("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ml="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(" "),wp=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ml));function yf(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 i=void 0;if(t)for(var d=a.length-1;0<=d;d--){var p=a[d],x=p.instance,O=p.currentTarget;if(p=p.listener,x!==i&&l.isPropagationStopped())break e;i=p,l.currentTarget=O;try{i(l)}catch($){ds($)}l.currentTarget=null,i=x}else for(d=0;d<a.length;d++){if(p=a[d],x=p.instance,O=p.currentTarget,p=p.listener,x!==i&&l.isPropagationStopped())break e;i=p,l.currentTarget=O;try{i(l)}catch($){ds($)}l.currentTarget=null,i=x}}}}function be(e,t){var n=t[Ci];n===void 0&&(n=t[Ci]=new Set);var a=e+"__bubble";n.has(a)||(bf(t,e,2,!1),n.add(a))}function mr(e,t,n){var a=0;t&&(a|=4),bf(n,e,a,t)}var Fs="_reactListening"+Math.random().toString(36).slice(2);function hr(e){if(!e[Fs]){e[Fs]=!0,ou.forEach(function(n){n!=="selectionchange"&&(wp.has(n)||mr(n,!1,e),mr(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Fs]||(t[Fs]=!0,mr("selectionchange",!1,t))}}function bf(e,t,n,a){switch(Vf(t)){case 2:var l=lv;break;case 8:l=sv;break;default:l=kr}n=l.bind(null,t,n,e),l=void 0,!zi||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 pr(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var d=a.tag;if(d===3||d===4){var p=a.stateNode.containerInfo;if(p===l)break;if(d===4)for(d=a.return;d!==null;){var x=d.tag;if((x===3||x===4)&&d.stateNode.containerInfo===l)return;d=d.return}for(;p!==null;){if(d=ha(p),d===null)return;if(x=d.tag,x===5||x===6||x===26||x===27){a=i=d;continue e}p=p.parentNode}}a=a.return}ju(function(){var O=i,$=Oi(n),J=[];e:{var I=Ju.get(e);if(I!==void 0){var B=rs,ce=e;switch(e){case"keypress":if(is(n)===0)break e;case"keydown":case"keyup":B=Nh;break;case"focusin":ce="focus",B=Hi;break;case"focusout":ce="blur",B=Hi;break;case"beforeblur":case"afterblur":B=Hi;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":B=Cu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":B=dh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":B=Th;break;case Ku:case Qu:case Vu:B=hh;break;case Zu:B=Eh;break;case"scroll":case"scrollend":B=uh;break;case"wheel":B=wh;break;case"copy":case"cut":case"paste":B=vh;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":B=Au;break;case"toggle":case"beforetoggle":B=Oh}var fe=(t&4)!==0,Me=!fe&&(e==="scroll"||e==="scrollend"),T=fe?I!==null?I+"Capture":null:I;fe=[];for(var N=O,D;N!==null;){var Z=N;if(D=Z.stateNode,Z=Z.tag,Z!==5&&Z!==26&&Z!==27||D===null||T===null||(Z=tl(N,T),Z!=null&&fe.push(zl(N,Z,D))),Me)break;N=N.return}0<fe.length&&(I=new B(I,ce,null,n,$),J.push({event:I,listeners:fe}))}}if((t&7)===0){e:{if(I=e==="mouseover"||e==="pointerover",B=e==="mouseout"||e==="pointerout",I&&n!==Di&&(ce=n.relatedTarget||n.fromElement)&&(ha(ce)||ce[ma]))break e;if((B||I)&&(I=$.window===$?$:(I=$.ownerDocument)?I.defaultView||I.parentWindow:window,B?(ce=n.relatedTarget||n.toElement,B=O,ce=ce?ha(ce):null,ce!==null&&(Me=h(ce),fe=ce.tag,ce!==Me||fe!==5&&fe!==27&&fe!==6)&&(ce=null)):(B=null,ce=O),B!==ce)){if(fe=Cu,Z="onMouseLeave",T="onMouseEnter",N="mouse",(e==="pointerout"||e==="pointerover")&&(fe=Au,Z="onPointerLeave",T="onPointerEnter",N="pointer"),Me=B==null?I:el(B),D=ce==null?I:el(ce),I=new fe(Z,N+"leave",B,n,$),I.target=Me,I.relatedTarget=D,Z=null,ha($)===O&&(fe=new fe(T,N+"enter",ce,n,$),fe.target=D,fe.relatedTarget=Me,Z=fe),Me=Z,B&&ce)t:{for(fe=Dp,T=B,N=ce,D=0,Z=T;Z;Z=fe(Z))D++;Z=0;for(var de=N;de;de=fe(de))Z++;for(;0<D-Z;)T=fe(T),D--;for(;0<Z-D;)N=fe(N),Z--;for(;D--;){if(T===N||N!==null&&T===N.alternate){fe=T;break t}T=fe(T),N=fe(N)}fe=null}else fe=null;B!==null&&xf(J,I,B,fe,!1),ce!==null&&Me!==null&&xf(J,Me,ce,fe,!0)}}e:{if(I=O?el(O):window,B=I.nodeName&&I.nodeName.toLowerCase(),B==="select"||B==="input"&&I.type==="file")var Re=_u;else if(Mu(I))if(Iu)Re=Gh;else{Re=Bh;var ue=Lh}else B=I.nodeName,!B||B.toLowerCase()!=="input"||I.type!=="checkbox"&&I.type!=="radio"?O&&wi(O.elementType)&&(Re=_u):Re=qh;if(Re&&(Re=Re(e,O))){zu(J,Re,n,$);break e}ue&&ue(e,I,O),e==="focusout"&&O&&I.type==="number"&&O.memoizedProps.value!=null&&ki(I,"number",I.value)}switch(ue=O?el(O):window,e){case"focusin":(Mu(ue)||ue.contentEditable==="true")&&(Na=ue,$i=O,ul=null);break;case"focusout":ul=$i=Na=null;break;case"mousedown":Xi=!0;break;case"contextmenu":case"mouseup":case"dragend":Xi=!1,$u(J,n,$);break;case"selectionchange":if($h)break;case"keydown":case"keyup":$u(J,n,$)}var ge;if(Bi)e:{switch(e){case"compositionstart":var je="onCompositionStart";break e;case"compositionend":je="onCompositionEnd";break e;case"compositionupdate":je="onCompositionUpdate";break e}je=void 0}else ja?Du(e,n)&&(je="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(je="onCompositionStart");je&&(Eu&&n.locale!=="ko"&&(ja||je!=="onCompositionStart"?je==="onCompositionEnd"&&ja&&(ge=Nu()):(Sn=$,_i="value"in Sn?Sn.value:Sn.textContent,ja=!0)),ue=Ws(O,je),0<ue.length&&(je=new Tu(je,e,null,n,$),J.push({event:je,listeners:ue}),ge?je.data=ge:(ge=Ou(n),ge!==null&&(je.data=ge)))),(ge=zh?_h(e,n):Ih(e,n))&&(je=Ws(O,"onBeforeInput"),0<je.length&&(ue=new Tu("onBeforeInput","beforeinput",null,n,$),J.push({event:ue,listeners:je}),ue.data=ge)),Ap(J,e,O,n,$)}yf(J,t)})}function zl(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ws(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=tl(e,n),l!=null&&a.unshift(zl(e,l,i)),l=tl(e,t),l!=null&&a.push(zl(e,l,i))),e.tag===3)return a;e=e.return}return[]}function Dp(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function xf(e,t,n,a,l){for(var i=t._reactName,d=[];n!==null&&n!==a;){var p=n,x=p.alternate,O=p.stateNode;if(p=p.tag,x!==null&&x===a)break;p!==5&&p!==26&&p!==27||O===null||(x=O,l?(O=tl(n,i),O!=null&&d.unshift(zl(n,O,x))):l||(O=tl(n,i),O!=null&&d.push(zl(n,O,x)))),n=n.return}d.length!==0&&e.push({event:t,listeners:d})}var Op=/\r\n?/g,Mp=/\u0000|\uFFFD/g;function Sf(e){return(typeof e=="string"?e:""+e).replace(Op,`
9
- `).replace(Mp,"")}function jf(e,t){return t=Sf(t),Sf(e)===t}function Oe(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||ba(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&ba(e,""+a);break;case"className":ns(e,"class",a);break;case"tabIndex":ns(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":ns(e,n,a);break;case"style":xu(e,a,i);break;case"data":if(t!=="object"){ns(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=ls(""+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 i=="function"&&(n==="formAction"?(t!=="input"&&Oe(e,t,"name",l.name,l,null),Oe(e,t,"formEncType",l.formEncType,l,null),Oe(e,t,"formMethod",l.formMethod,l,null),Oe(e,t,"formTarget",l.formTarget,l,null)):(Oe(e,t,"encType",l.encType,l,null),Oe(e,t,"method",l.method,l,null),Oe(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=ls(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=tn);break;case"onScroll":a!=null&&be("scroll",e);break;case"onScrollEnd":a!=null&&be("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(o(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(o(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=ls(""+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":be("beforetoggle",e),be("toggle",e),ts(e,"popover",a);break;case"xlinkActuate":en(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":en(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":en(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":en(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":en(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":en(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":en(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":en(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":en(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":ts(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=ch.get(n)||n,ts(e,n,a))}}function vr(e,t,n,a,l,i){switch(n){case"style":xu(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(o(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(o(60));e.innerHTML=n}}break;case"children":typeof a=="string"?ba(e,a):(typeof a=="number"||typeof a=="bigint")&&ba(e,""+a);break;case"onScroll":a!=null&&be("scroll",e);break;case"onScrollEnd":a!=null&&be("scrollend",e);break;case"onClick":a!=null&&(e.onclick=tn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!du.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[vt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==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,""):ts(e,n,a)}}}function rt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":be("error",e),be("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var d=n[i];if(d!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:Oe(e,t,i,d,n,null)}}l&&Oe(e,t,"srcSet",n.srcSet,n,null),a&&Oe(e,t,"src",n.src,n,null);return;case"input":be("invalid",e);var p=i=d=l=null,x=null,O=null;for(a in n)if(n.hasOwnProperty(a)){var $=n[a];if($!=null)switch(a){case"name":l=$;break;case"type":d=$;break;case"checked":x=$;break;case"defaultChecked":O=$;break;case"value":i=$;break;case"defaultValue":p=$;break;case"children":case"dangerouslySetInnerHTML":if($!=null)throw Error(o(137,t));break;default:Oe(e,t,a,$,n,null)}}vu(e,i,p,x,O,d,l,!1);return;case"select":be("invalid",e),a=d=i=null;for(l in n)if(n.hasOwnProperty(l)&&(p=n[l],p!=null))switch(l){case"value":i=p;break;case"defaultValue":d=p;break;case"multiple":a=p;default:Oe(e,t,l,p,n,null)}t=i,n=d,e.multiple=!!a,t!=null?ya(e,!!a,t,!1):n!=null&&ya(e,!!a,n,!0);return;case"textarea":be("invalid",e),i=l=a=null;for(d in n)if(n.hasOwnProperty(d)&&(p=n[d],p!=null))switch(d){case"value":a=p;break;case"defaultValue":l=p;break;case"children":i=p;break;case"dangerouslySetInnerHTML":if(p!=null)throw Error(o(91));break;default:Oe(e,t,d,p,n,null)}yu(e,a,l,i);return;case"option":for(x in n)n.hasOwnProperty(x)&&(a=n[x],a!=null)&&(x==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":Oe(e,t,x,a,n,null));return;case"dialog":be("beforetoggle",e),be("toggle",e),be("cancel",e),be("close",e);break;case"iframe":case"object":be("load",e);break;case"video":case"audio":for(a=0;a<Ml.length;a++)be(Ml[a],e);break;case"image":be("error",e),be("load",e);break;case"details":be("toggle",e);break;case"embed":case"source":case"link":be("error",e),be("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(O in n)if(n.hasOwnProperty(O)&&(a=n[O],a!=null))switch(O){case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:Oe(e,t,O,a,n,null)}return;default:if(wi(t)){for($ in n)n.hasOwnProperty($)&&(a=n[$],a!==void 0&&vr(e,t,$,a,n,void 0));return}}for(p in n)n.hasOwnProperty(p)&&(a=n[p],a!=null&&Oe(e,t,p,a,n,null))}function zp(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,i=null,d=null,p=null,x=null,O=null,$=null;for(B in n){var J=n[B];if(n.hasOwnProperty(B)&&J!=null)switch(B){case"checked":break;case"value":break;case"defaultValue":x=J;default:a.hasOwnProperty(B)||Oe(e,t,B,null,a,J)}}for(var I in a){var B=a[I];if(J=n[I],a.hasOwnProperty(I)&&(B!=null||J!=null))switch(I){case"type":i=B;break;case"name":l=B;break;case"checked":O=B;break;case"defaultChecked":$=B;break;case"value":d=B;break;case"defaultValue":p=B;break;case"children":case"dangerouslySetInnerHTML":if(B!=null)throw Error(o(137,t));break;default:B!==J&&Oe(e,t,I,B,a,J)}}Ei(e,d,p,x,O,$,i,l);return;case"select":B=d=p=I=null;for(i in n)if(x=n[i],n.hasOwnProperty(i)&&x!=null)switch(i){case"value":break;case"multiple":B=x;default:a.hasOwnProperty(i)||Oe(e,t,i,null,a,x)}for(l in a)if(i=a[l],x=n[l],a.hasOwnProperty(l)&&(i!=null||x!=null))switch(l){case"value":I=i;break;case"defaultValue":p=i;break;case"multiple":d=i;default:i!==x&&Oe(e,t,l,i,a,x)}t=p,n=d,a=B,I!=null?ya(e,!!n,I,!1):!!a!=!!n&&(t!=null?ya(e,!!n,t,!0):ya(e,!!n,n?[]:"",!1));return;case"textarea":B=I=null;for(p in n)if(l=n[p],n.hasOwnProperty(p)&&l!=null&&!a.hasOwnProperty(p))switch(p){case"value":break;case"children":break;default:Oe(e,t,p,null,a,l)}for(d in a)if(l=a[d],i=n[d],a.hasOwnProperty(d)&&(l!=null||i!=null))switch(d){case"value":I=l;break;case"defaultValue":B=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(o(91));break;default:l!==i&&Oe(e,t,d,l,a,i)}gu(e,I,B);return;case"option":for(var ce in n)I=n[ce],n.hasOwnProperty(ce)&&I!=null&&!a.hasOwnProperty(ce)&&(ce==="selected"?e.selected=!1:Oe(e,t,ce,null,a,I));for(x in a)I=a[x],B=n[x],a.hasOwnProperty(x)&&I!==B&&(I!=null||B!=null)&&(x==="selected"?e.selected=I&&typeof I!="function"&&typeof I!="symbol":Oe(e,t,x,I,a,B));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 fe in n)I=n[fe],n.hasOwnProperty(fe)&&I!=null&&!a.hasOwnProperty(fe)&&Oe(e,t,fe,null,a,I);for(O in a)if(I=a[O],B=n[O],a.hasOwnProperty(O)&&I!==B&&(I!=null||B!=null))switch(O){case"children":case"dangerouslySetInnerHTML":if(I!=null)throw Error(o(137,t));break;default:Oe(e,t,O,I,a,B)}return;default:if(wi(t)){for(var Me in n)I=n[Me],n.hasOwnProperty(Me)&&I!==void 0&&!a.hasOwnProperty(Me)&&vr(e,t,Me,void 0,a,I);for($ in a)I=a[$],B=n[$],!a.hasOwnProperty($)||I===B||I===void 0&&B===void 0||vr(e,t,$,I,a,B);return}}for(var T in n)I=n[T],n.hasOwnProperty(T)&&I!=null&&!a.hasOwnProperty(T)&&Oe(e,t,T,null,a,I);for(J in a)I=a[J],B=n[J],!a.hasOwnProperty(J)||I===B||I==null&&B==null||Oe(e,t,J,I,a,B)}function Nf(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function _p(){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],i=l.transferSize,d=l.initiatorType,p=l.duration;if(i&&p&&Nf(d)){for(d=0,p=l.responseEnd,a+=1;a<n.length;a++){var x=n[a],O=x.startTime;if(O>p)break;var $=x.transferSize,J=x.initiatorType;$&&Nf(J)&&(x=x.responseEnd,d+=$*(x<p?1:(p-O)/(x-O)))}if(--a,t+=8*(i+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 gr=null,yr=null;function Ps(e){return e.nodeType===9?e:e.ownerDocument}function Rf(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 Cf(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 br(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 xr=null;function Ip(){var e=window.event;return e&&e.type==="popstate"?e===xr?!1:(xr=e,!0):(xr=null,!1)}var Tf=typeof setTimeout=="function"?setTimeout:void 0,Up=typeof clearTimeout=="function"?clearTimeout:void 0,Af=typeof Promise=="function"?Promise:void 0,Hp=typeof queueMicrotask=="function"?queueMicrotask:typeof Af<"u"?function(e){return Af.resolve(null).then(e).catch(Lp)}:Tf;function Lp(e){setTimeout(function(){throw e})}function Hn(e){return e==="head"}function Ef(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),Ja(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")_l(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,_l(n);for(var i=n.firstChild;i;){var d=i.nextSibling,p=i.nodeName;i[Pa]||p==="SCRIPT"||p==="STYLE"||p==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=d}}else n==="body"&&_l(e.ownerDocument.body);n=l}while(n);Ja(t)}function kf(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 Sr(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":Sr(n),Ti(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Bp(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[Pa])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==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(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=qt(e.nextSibling),e===null)break}return null}function qp(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=qt(e.nextSibling),e===null))return null;return e}function wf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=qt(e.nextSibling),e===null))return null;return e}function jr(e){return e.data==="$?"||e.data==="$~"}function Nr(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Gp(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 qt(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 Rr=null;function Df(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return qt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Of(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 Mf(e,t,n){switch(t=Ps(n),e){case"html":if(e=t.documentElement,!e)throw Error(o(452));return e;case"head":if(e=t.head,!e)throw Error(o(453));return e;case"body":if(e=t.body,!e)throw Error(o(454));return e;default:throw Error(o(451))}}function _l(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ti(e)}var Gt=new Map,zf=new Set;function ei(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var yn=z.d;z.d={f:Yp,r:$p,D:Xp,C:Kp,L:Qp,m:Vp,X:Jp,S:Zp,M:Fp};function Yp(){var e=yn.f(),t=Xs();return e||t}function $p(e){var t=pa(e);t!==null&&t.tag===5&&t.type==="form"?Jo(t):yn.r(e)}var Qa=typeof document>"u"?null:document;function _f(e,t,n){var a=Qa;if(a&&typeof t=="string"&&t){var l=zt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),zf.has(l)||(zf.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),rt(t,"link",e),tt(t),a.head.appendChild(t)))}}function Xp(e){yn.D(e),_f("dns-prefetch",e,null)}function Kp(e,t){yn.C(e,t),_f("preconnect",e,t)}function Qp(e,t,n){yn.L(e,t,n);var a=Qa;if(a&&e&&t){var l='link[rel="preload"][as="'+zt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+zt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+zt(n.imageSizes)+'"]')):l+='[href="'+zt(e)+'"]';var i=l;switch(t){case"style":i=Va(e);break;case"script":i=Za(e)}Gt.has(i)||(e=R({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Gt.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(Il(i))||t==="script"&&a.querySelector(Ul(i))||(t=a.createElement("link"),rt(t,"link",e),tt(t),a.head.appendChild(t)))}}function Vp(e,t){yn.m(e,t);var n=Qa;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+zt(a)+'"][href="'+zt(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=Za(e)}if(!Gt.has(i)&&(e=R({rel:"modulepreload",href:e},t),Gt.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Ul(i)))return}a=n.createElement("link"),rt(a,"link",e),tt(a),n.head.appendChild(a)}}}function Zp(e,t,n){yn.S(e,t,n);var a=Qa;if(a&&e){var l=va(a).hoistableStyles,i=Va(e);t=t||"default";var d=l.get(i);if(!d){var p={loading:0,preload:null};if(d=a.querySelector(Il(i)))p.loading=5;else{e=R({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Gt.get(i))&&Cr(e,n);var x=d=a.createElement("link");tt(x),rt(x,"link",e),x._p=new Promise(function(O,$){x.onload=O,x.onerror=$}),x.addEventListener("load",function(){p.loading|=1}),x.addEventListener("error",function(){p.loading|=2}),p.loading|=4,ti(d,t,a)}d={type:"stylesheet",instance:d,count:1,state:p},l.set(i,d)}}}function Jp(e,t){yn.X(e,t);var n=Qa;if(n&&e){var a=va(n).hoistableScripts,l=Za(e),i=a.get(l);i||(i=n.querySelector(Ul(l)),i||(e=R({src:e,async:!0},t),(t=Gt.get(l))&&Tr(e,t),i=n.createElement("script"),tt(i),rt(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Fp(e,t){yn.M(e,t);var n=Qa;if(n&&e){var a=va(n).hoistableScripts,l=Za(e),i=a.get(l);i||(i=n.querySelector(Ul(l)),i||(e=R({src:e,async:!0,type:"module"},t),(t=Gt.get(l))&&Tr(e,t),i=n.createElement("script"),tt(i),rt(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function If(e,t,n,a){var l=(l=oe.current)?ei(l):null;if(!l)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Va(n.href),n=va(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=Va(n.href);var i=va(l).hoistableStyles,d=i.get(e);if(d||(l=l.ownerDocument||l,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,d),(i=l.querySelector(Il(e)))&&!i._p&&(d.instance=i,d.state.loading=5),Gt.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},Gt.set(e,n),i||Wp(l,e,n,d.state))),t&&a===null)throw Error(o(528,""));return d}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Za(n),n=va(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(o(444,e))}}function Va(e){return'href="'+zt(e)+'"'}function Il(e){return'link[rel="stylesheet"]['+e+"]"}function Uf(e){return R({},e,{"data-precedence":e.precedence,precedence:null})}function Wp(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}),rt(t,"link",n),tt(t),e.head.appendChild(t))}function Za(e){return'[src="'+zt(e)+'"]'}function Ul(e){return"script[async]"+e}function Hf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+zt(n.href)+'"]');if(a)return t.instance=a,tt(a),a;var l=R({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),tt(a),rt(a,"style",l),ti(a,n.precedence,e),t.instance=a;case"stylesheet":l=Va(n.href);var i=e.querySelector(Il(l));if(i)return t.state.loading|=4,t.instance=i,tt(i),i;a=Uf(n),(l=Gt.get(l))&&Cr(a,l),i=(e.ownerDocument||e).createElement("link"),tt(i);var d=i;return d._p=new Promise(function(p,x){d.onload=p,d.onerror=x}),rt(i,"link",a),t.state.loading|=4,ti(i,n.precedence,e),t.instance=i;case"script":return i=Za(n.src),(l=e.querySelector(Ul(i)))?(t.instance=l,tt(l),l):(a=n,(l=Gt.get(i))&&(a=R({},n),Tr(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),tt(l),rt(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,ti(a,n.precedence,e));return t.instance}function ti(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,d=0;d<a.length;d++){var p=a[d];if(p.dataset.precedence===t)i=p;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Cr(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Tr(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var ni=null;function Lf(e,t,n){if(ni===null){var a=new Map,l=ni=new Map;l.set(n,a)}else l=ni,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 i=n[l];if(!(i[Pa]||i[lt]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var d=i.getAttribute(t)||"";d=e+d;var p=a.get(d);p?p.push(i):a.set(d,[i])}}return a}function Bf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Pp(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 qf(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function ev(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=Va(a.href),i=t.querySelector(Il(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ai.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,tt(i);return}i=t.ownerDocument||t,a=Uf(a),(l=Gt.get(l))&&Cr(a,l),i=i.createElement("link"),tt(i);var d=i;d._p=new Promise(function(p,x){d.onload=p,d.onerror=x}),rt(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=ai.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Ar=0;function tv(e,t){return e.stylesheets&&e.count===0&&si(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&si(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&Ar===0&&(Ar=62500*_p());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&si(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>Ar?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function ai(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)si(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var li=null;function si(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,li=new Map,t.forEach(nv,e),li=null,ai.call(e))}function nv(e,t){if(!(t.state.loading&4)){var n=li.get(e);if(n)var a=n.get(null);else{n=new Map,li.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var d=l[i];(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"),i=n.get(d)||a,i===a&&n.set(null,l),n.set(d,l),this.count++,a=ai.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var Hl={$$typeof:_,Provider:null,Consumer:null,_currentValue:E,_currentValue2:E,_threadCount:0};function av(e,t,n,a,l,i,d,p,x){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=ji(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ji(0),this.hiddenUpdates=ji(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=x,this.incompleteTransitions=new Map}function Gf(e,t,n,a,l,i,d,p,x,O,$,J){return e=new av(e,t,n,d,x,O,$,J,p),t=1,i===!0&&(t|=24),i=Ct(3,null,null,t),e.current=i,i.stateNode=e,t=ic(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},oc(i),e}function Yf(e){return e?(e=Ta,e):Ta}function $f(e,t,n,a,l,i){l=Yf(l),a.context===null?a.context=l:a.pendingContext=l,a=An(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=En(e,a,t),n!==null&&(jt(n,e,t),vl(n,e,t))}function Xf(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Er(e,t){Xf(e,t),(e=e.alternate)&&Xf(e,t)}function Kf(e){if(e.tag===13||e.tag===31){var t=Fn(e,67108864);t!==null&&jt(t,e,67108864),Er(e,67108864)}}function Qf(e){if(e.tag===13||e.tag===31){var t=wt();t=Ni(t);var n=Fn(e,t);n!==null&&jt(n,e,t),Er(e,t)}}var ii=!0;function lv(e,t,n,a){var l=j.T;j.T=null;var i=z.p;try{z.p=2,kr(e,t,n,a)}finally{z.p=i,j.T=l}}function sv(e,t,n,a){var l=j.T;j.T=null;var i=z.p;try{z.p=8,kr(e,t,n,a)}finally{z.p=i,j.T=l}}function kr(e,t,n,a){if(ii){var l=wr(a);if(l===null)pr(e,t,a,ci,n),Zf(e,a);else if(cv(l,e,t,n,a))a.stopPropagation();else if(Zf(e,a),t&4&&-1<iv.indexOf(e)){for(;l!==null;){var i=pa(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var d=Kn(i.pendingLanes);if(d!==0){var p=i;for(p.pendingLanes|=2,p.entangledLanes|=2;d;){var x=1<<31-ut(d);p.entanglements[1]|=x,d&=~x}Wt(i),(Ae&6)===0&&(Ys=We()+500,Ol(0))}}break;case 31:case 13:p=Fn(i,2),p!==null&&jt(p,i,2),Xs(),Er(i,2)}if(i=wr(a),i===null&&pr(e,t,a,ci,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else pr(e,t,a,null,n)}}function wr(e){return e=Oi(e),Dr(e)}var ci=null;function Dr(e){if(ci=null,e=ha(e),e!==null){var t=h(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=m(t),e!==null)return e;e=null}else if(n===31){if(e=g(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return ci=e,null}function Vf(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(Zl()){case Xn:return 2;case Jl:return 8;case fa:case Te:return 32;case Pe:return 268435456;default:return 32}default:return 32}}var Or=!1,Ln=null,Bn=null,qn=null,Ll=new Map,Bl=new Map,Gn=[],iv="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 Zf(e,t){switch(e){case"focusin":case"focusout":Ln=null;break;case"dragenter":case"dragleave":Bn=null;break;case"mouseover":case"mouseout":qn=null;break;case"pointerover":case"pointerout":Ll.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Bl.delete(t.pointerId)}}function ql(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=pa(t),t!==null&&Kf(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function cv(e,t,n,a,l){switch(t){case"focusin":return Ln=ql(Ln,e,t,n,a,l),!0;case"dragenter":return Bn=ql(Bn,e,t,n,a,l),!0;case"mouseover":return qn=ql(qn,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return Ll.set(i,ql(Ll.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,Bl.set(i,ql(Bl.get(i)||null,e,t,n,a,l)),!0}return!1}function Jf(e){var t=ha(e.target);if(t!==null){var n=h(t);if(n!==null){if(t=n.tag,t===13){if(t=m(n),t!==null){e.blockedOn=t,ru(e.priority,function(){Qf(n)});return}}else if(t===31){if(t=g(n),t!==null){e.blockedOn=t,ru(e.priority,function(){Qf(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 ri(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=wr(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Di=a,n.target.dispatchEvent(a),Di=null}else return t=pa(n),t!==null&&Kf(t),e.blockedOn=n,!1;t.shift()}return!0}function Ff(e,t,n){ri(e)&&n.delete(t)}function rv(){Or=!1,Ln!==null&&ri(Ln)&&(Ln=null),Bn!==null&&ri(Bn)&&(Bn=null),qn!==null&&ri(qn)&&(qn=null),Ll.forEach(Ff),Bl.forEach(Ff)}function ui(e,t){e.blockedOn===t&&(e.blockedOn=null,Or||(Or=!0,c.unstable_scheduleCallback(c.unstable_NormalPriority,rv)))}var oi=null;function Wf(e){oi!==e&&(oi=e,c.unstable_scheduleCallback(c.unstable_NormalPriority,function(){oi===e&&(oi=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(Dr(a||n)===null)continue;break}var i=pa(n);i!==null&&(e.splice(t,3),t-=3,wc(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Ja(e){function t(x){return ui(x,e)}Ln!==null&&ui(Ln,e),Bn!==null&&ui(Bn,e),qn!==null&&ui(qn,e),Ll.forEach(t),Bl.forEach(t);for(var n=0;n<Gn.length;n++){var a=Gn[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<Gn.length&&(n=Gn[0],n.blockedOn===null);)Jf(n),n.blockedOn===null&&Gn.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],d=l[vt]||null;if(typeof i=="function")d||Wf(n);else if(d){var p=null;if(i&&i.hasAttribute("formAction")){if(l=i,d=i[vt]||null)p=d.formAction;else if(Dr(l)!==null)continue}else p=d.action;typeof p=="function"?n[a+1]=p:(n.splice(a,3),a-=3),Wf(n)}}}function Pf(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.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 i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.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 Mr(e){this._internalRoot=e}di.prototype.render=Mr.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));var n=t.current,a=wt();$f(n,a,e,t,null,null)},di.prototype.unmount=Mr.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;$f(e.current,2,null,e,null,null),Xs(),t[ma]=null}};function di(e){this._internalRoot=e}di.prototype.unstable_scheduleHydration=function(e){if(e){var t=cu();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Gn.length&&t!==0&&t<Gn[n].priority;n++);Gn.splice(n,0,e),n===0&&Jf(e)}};var em=r.version;if(em!=="19.2.8")throw Error(o(527,em,"19.2.8"));z.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(o(188)):(e=Object.keys(e).join(","),Error(o(268,e)));return e=b(t),e=e!==null?A(e):null,e=e===null?null:e.stateNode,e};var uv={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:j,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var fi=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fi.isDisabled&&fi.supportsFiber)try{Ot=fi.inject(uv),dt=fi}catch{}}return Yl.createRoot=function(e,t){if(!f(e))throw Error(o(299));var n=!1,a="",l=id,i=cd,d=rd;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&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(d=t.onRecoverableError)),t=Gf(e,1,!1,null,null,n,a,null,l,i,d,Pf),e[ma]=t.current,hr(e),new Mr(t)},Yl.hydrateRoot=function(e,t,n){if(!f(e))throw Error(o(299));var a=!1,l="",i=id,d=cd,p=rd,x=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(p=n.onRecoverableError),n.formState!==void 0&&(x=n.formState)),t=Gf(e,1,!0,t,n??null,a,l,x,i,d,p,Pf),t.context=Yf(null),n=t.current,a=wt(),a=Ni(a),l=An(a),l.callback=null,En(n,l,a),n=a,t.current.lanes=n,Wa(t,n),Wt(t),e[ma]=t.current,hr(e),new di(t)},Yl.version="19.2.8",Yl}var om;function bv(){if(om)return Ir.exports;om=1;function c(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(r){console.error(r)}}return c(),Ir.exports=yv(),Ir.exports}var xv=bv();function oa(c){if(c==null)return null;if(typeof c=="string")return c.trim()||null;if(typeof c=="number"||typeof c=="boolean")return String(c);if(typeof c=="object"){const r=c;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 u=r.content.map(o=>{if(typeof o=="string")return o;if(o&&typeof o=="object"){const f=o;if(typeof f.text=="string")return f.text}return""}).filter(Boolean);if(u.length)return u.join(`
10
- `).slice(0,240)}if(typeof r.role=="string")return`${r.role} 消息`}return null}function Sv(c){const r=oa(c.at)??oa(c.timestamp)??oa(c.recordedAt)??"",u=oa(c.errorMessage)??oa(c.label)??oa(c.type)??oa(c.message)??"运行事件";return r?`${r} · ${u}`:u}function Ql(c){return String(c.nodeId??c.id??"").trim()}function Br(c){const r=Ql(c);return String(c.label??c.name??(r||"未命名节点"))}function dm(c,r){if(c.length===0)return;const u=r?.trim();if(u){const h=c.find(m=>Ql(m)===u);if(h)return h}const o=c.find(h=>{const m=String(h.status??"").toLowerCase();return m.includes("fail")||m.includes("error")||m==="blocked"});return o||(c.find(h=>{const m=String(h.status??"").toLowerCase();return m==="running"||m==="in_progress"||m==="active"})??c[0])}function jv({dagRunId:c,nodeId:r,onClose:u,onOpenFull:o}){const f=v.useRef(null),[h,m]=v.useState(null),[g,y]=v.useState([]),[b,A]=v.useState(null),[R,V]=v.useState(!0);v.useEffect(()=>{f.current?.focus();const te=U=>{U.key==="Escape"&&u()};return document.addEventListener("keydown",te),document.title=`检视 · DAG ${c} · Loop Operator`,()=>document.removeEventListener("keydown",te)},[c,u]),v.useEffect(()=>{const te=new AbortController;return V(!0),A(null),y([]),(async()=>{try{const U=await fetch(`/api/dag-runs/${encodeURIComponent(c)}`,{signal:te.signal,credentials:"same-origin"});if(!U.ok)throw new Error(`DAG 查询失败(HTTP ${U.status})`);const _=await U.json();if(te.signal.aborted)return;m(_);const Q=Array.isArray(_.nodes)?_.nodes:[],W=dm(Q,r),C=W?Ql(W):r?.trim();if(C){const k=await fetch(`/api/dag-runs/${encodeURIComponent(c)}/nodes/${encodeURIComponent(C)}/session-events`,{signal:te.signal,credentials:"same-origin"});if(k.ok){const Y=await k.json();te.signal.aborted||y((Y.events??[]).slice(-20))}}}catch(U){te.signal.aborted||A(U instanceof Error?U.message:String(U))}finally{te.signal.aborted||V(!1)}})(),()=>te.abort()},[c,r]);const L=v.useMemo(()=>Array.isArray(h?.nodes)?h.nodes:[],[h]),H=dm(L,r),X=H?Ql(H):"",ae=String(h?.effectiveStatus??h?.status??(R?"加载中…":"未知"));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:u,children:"关闭"})]}),s.jsx("p",{className:"inspect-split-id",children:s.jsx("code",{children:c})}),b?s.jsx("p",{className:"error",children:b}):null,R&&!h?s.jsx("p",{className:"muted",children:"正在加载 DAG…"}):null,s.jsxs("dl",{className:"inspect-split-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:ae})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"当前节点"}),s.jsx("dd",{children:H?Br(H):"暂无节点"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"节点状态"}),s.jsx("dd",{children:H?.status??"—"})]}),H?.errorPreview?s.jsxs("div",{children:[s.jsx("dt",{children:"错误摘要"}),s.jsx("dd",{children:H.errorPreview})]}):null]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["节点(",L.length,")"]}),L.length?s.jsx("ul",{className:"inspect-split-nodes",children:L.slice(0,24).map(te=>{const U=Ql(te)||Br(te),_=U===X;return s.jsxs("li",{"data-active":_?"true":void 0,className:_?"is-active":void 0,children:[s.jsx("span",{children:Br(te)}),s.jsx("code",{children:te.status??"—"})]},U)})}):s.jsx("p",{className:"muted",children:R?"加载节点中…":"该运行暂无节点。"})]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["最近事件",X?` · ${X}`:""]}),g.length?s.jsx("ul",{className:"inspect-split-events",children:g.map((te,U)=>s.jsx("li",{children:Sv(te)},`${te.at??U}-${U}`))}):s.jsx("p",{className:"muted",children:R?"加载事件中…":"节点事件将在可用时显示。"})]}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:o,children:"全屏观测"}),s.jsx("p",{className:"muted",children:"全屏后点顶栏「返回操作台」可回来。"})]})}function Nv(c){const{board:r,busy:u}=c;return s.jsxs("details",{className:"night-advanced","data-testid":"night-advanced",open:r.advancedOpen,onToggle:o=>r.setAdvancedOpen(o.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:u,"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 mi(c){return!c||typeof c!="object"||Array.isArray(c)?null:c}function Xe(c,r){const u=c[r];return typeof u=="string"&&u.trim()?u.trim():void 0}function fm(c,r){const u=c[r];if(!Array.isArray(u))return;const o=u.filter(f=>typeof f=="string");return o.length>0?o:void 0}function Rv(c){const r=mi(c);if(!r)return null;const u=mi(r.result),o=[mi(r.reviewPacket),u?mi(u.reviewPacket):null,u,r].filter(Boolean);for(const f of o){const h=Xe(f,"scheduleId")??Xe(f,"id"),m=Xe(f,"gateToken")??Xe(f,"approveGate")??Xe(f,"writeSetGateToken");if(!(!h||!m))return{scheduleId:h,gateToken:m,...Xe(f,"featureId")?{featureId:Xe(f,"featureId")}:{},...Xe(f,"taskId")?{taskId:Xe(f,"taskId")}:{},...fm(f,"writeSet")?{writeSet:fm(f,"writeSet")}:{},...Xe(f,"worktreePath")?{worktreePath:Xe(f,"worktreePath")}:{},...Xe(f,"branch")?{branch:Xe(f,"branch")}:{},...Xe(f,"baseBranch")?{baseBranch:Xe(f,"baseBranch")}:{},...Xe(f,"baseCommit")?{baseCommit:Xe(f,"baseCommit")}:{},...Xe(f,"executeAtUtc")?{executeAtUtc:Xe(f,"executeAtUtc")}:{},...Xe(f,"taskCard")?{taskCard:Xe(f,"taskCard")}:{}}}return null}function mm(c){return`docs/features/${c.trim().replace(/^\/+|\/+$/g,"")}`}function Cv(c){const r=c.trim(),u=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})/.exec(r);return u?`${u[1]} ${u[2]}`:null}function hm(){const c=new Date;c.setHours(20,0,0,0);const r=u=>String(u).padStart(2,"0");return`${c.getFullYear()}-${r(c.getMonth()+1)}-${r(c.getDate())}T${r(c.getHours())}:${r(c.getMinutes())}`}function Cm(c){if(!c)return"—";const r=Date.parse(c);if(Number.isNaN(r))return c;try{return new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"short",timeZone:"Asia/Shanghai"}).format(new Date(r))}catch{return c}}function Tv(c){return c.mergeState==="pending-harvest"||/\bscheduler harvest\b/i.test(c.nextAction)}function Av(c){return c.status==="failed"||c.status==="human_required"||c.status==="cancelled"||/\bscheduler discard\b/i.test(c.nextAction)}function pi(c){return c==="failed"||c==="human_required"}function Ev(c){return`${c}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Tm(c){return{submitted:"已提交",validating:"校验中",validated:"待预约确认",scheduled:"已预约",waiting:"等待触发",dispatching:"派发中",running:"执行中",succeeded:"成功",failed:"失败",human_required:"需人工",cancelled:"已取消",rejected:"已拒绝",cancel_requested:"取消中"}[c]??c}function kv(c){const{target:r,reason:u,onReasonChange:o,force:f,onForceChange:h,busy:m}=c;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,"(",Tm(r.status),")"]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"原因"}),s.jsx("input",{"data-testid":"night-discard-reason",value:u,disabled:m,placeholder:"human discard reason",onChange:g=>o(g.target.value)})]}),pi(r.status)?s.jsxs("label",{className:"field checkbox-field",children:[s.jsx("input",{type:"checkbox","data-testid":"night-discard-force",checked:f,disabled:m,onChange:g=>h(g.target.checked)}),s.jsx("span",{className:"muted",children:"强制 Discard(failed / human_required)"})]}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:m||pi(r.status)&&!f,"data-testid":"night-discard-confirm",onClick:c.onConfirm,children:"确认 Discard"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:m,onClick:c.onCancel,children:"返回"})]})]})}function wv(c){const{board:r}=c,{doctor:u,list:o,clockHint:f,doctorIssues:h,auxTicker:m}=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${u?.ok===!1?" is-bad":""}`,children:u?.ok===!1?"Scheduler 异常":"Scheduler 健康"}),s.jsxs("span",{className:"muted",children:["计划 ",u?.scheduleCount??o?.summary.total??"—"," · 活动"," ",u?.activeCount??o?.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(每 ",m?.intervalSec??60,"s)"]}),s.jsx("p",{className:"muted night-health-hint","data-testid":"night-aux-ticker-disclaimer",children:m?.disclaimer??"仅在本 Console 进程开着时有效;过夜无人值守仍需 OS clock。"}),m?.lastOutcome?s.jsxs("p",{className:"muted","data-testid":"night-aux-ticker-last",children:["上次:",m.lastOutcome,m.running?"(进行中)":"",m.lastSummary?` · ${m.lastSummary}`:"",m.lastError?` · ${m.lastError}`:""]}):null]}),h.length>0?s.jsx("ul",{className:"night-doctor-list","data-testid":"night-doctor-findings",children:h.slice(0,4).map(g=>s.jsxs("li",{children:[s.jsx("strong",{children:g.severity})," ",g.message]},`${g.code}-${g.scheduleId??""}-${g.message}`))}):null]})}function Dv(c){const{board:r,busy:u,onHarvest:o,onOpenDiscard:f}=c,{list:h}=r;return s.jsxs(s.Fragment,{children:[h?s.jsxs("div",{className:"night-kpi","data-testid":"night-kpi",children:[s.jsxs("span",{children:["合计 ",h.summary.total]}),s.jsxs("span",{children:["活动 ",h.summary.active]}),s.jsxs("span",{children:["待收成 ",h.summary.pendingHarvest]}),s.jsxs("span",{children:["需人工 ",h.summary.humanRequired]}),s.jsxs("span",{children:["失败 ",h.summary.failed]})]}):null,s.jsxs("div",{className:"night-board","data-testid":"night-board",children:[s.jsx("h3",{children:"计划列表"}),!h||h.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:h.schedules.map(m=>s.jsxs("li",{className:"night-schedule-row","data-testid":"night-schedule-row","data-status":m.status,children:[s.jsxs("div",{className:"night-schedule-head",children:[s.jsxs("strong",{children:[m.featureId,"/",m.taskId]}),s.jsx("span",{className:"night-status-chip",children:Tm(m.status)})]}),s.jsxs("p",{className:"muted",children:["执行 ",Cm(m.executeAtUtc),m.mergeState?` · merge ${m.mergeState}`:"",m.taskCard?` · ${m.taskCard}`:""]}),m.waitingReason?s.jsxs("p",{className:"muted",children:["等待原因:",m.waitingReason]}):null,s.jsxs("p",{className:"muted night-next-action",children:["下一步:",m.nextAction]}),s.jsxs("div",{className:"cta-row",children:[Tv(m)?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:u,"data-testid":"night-row-harvest",onClick:()=>o(m),children:"Harvest"}):null,Av(m)?s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:u,"data-testid":"night-row-discard",onClick:()=>f(m),children:"Discard"}):null,s.jsx("a",{className:"external-link",href:`/inspect/#/night/${encodeURIComponent(m.scheduleId)}`,children:"Inspect"})]})]},m.scheduleId))})]})]})}function Ov(c){const{wizard:r,busy:u}=c;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:u,onChange:o=>r.setSelectedKey(o.target.value),children:[s.jsx("option",{value:"",children:"选择任务…"}),r.selectableTasks.map(o=>{const f=`${o.featureId}::${o.taskId}`;return s.jsxs("option",{value:f,children:[o.featureId,"/",o.taskId,o.status?` · ${o.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:u,onChange:o=>r.setNightAt(o.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:u,placeholder:"UCP-LOOP#11",onChange:o=>r.setTaskCard(o.target.value)})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:u||!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:Cm(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(o=>s.jsx("li",{children:s.jsx("code",{children:o})},o))}):s.jsx("span",{className:"muted",children:"(未返回显式 writeSet)"})})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:u||!r.review,"data-testid":"night-confirm-add-btn",onClick:()=>{r.onConfirmAdd()},children:"确认预约"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:u,"data-testid":"night-review-back-btn",onClick:r.onCancelWizard,children:"返回修改"})]})]})]})}function Mv(c){const{setOpError:r}=c,[u,o]=v.useState(null),[f,h]=v.useState(null),[m,g]=v.useState([]),[y,b]=v.useState(null),[A,R]=v.useState(!1),[V,L]=v.useState(!1),[H,X]=v.useState(null),[ae,te]=v.useState(null),U=v.useCallback(async()=>{R(!0),b(null);try{const[C,k,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(!C.ok)throw new Error(`加载计划列表失败(HTTP ${C.status})`);const ee=await C.json();if(o(ee),k.ok?h(await k.json()):h(null),Y.ok){const M=await Y.json();g(Array.isArray(M)?M:[])}else g([]);if(ne.ok){const M=await ne.json();M.ticker&&te(M.ticker)}}catch(C){b(C instanceof Error?C.message:String(C))}finally{R(!1)}},[]);v.useEffect(()=>{U()},[U]);const _=v.useCallback(async()=>{try{const C=await fetch("/api/night-jobs/morning",{credentials:"same-origin"});if(!C.ok){r(`早晨报告加载失败(HTTP ${C.status})`);return}const k=await C.json();X(JSON.stringify(k,null,2).slice(0,4e3)),L(!0)}catch(C){r(C instanceof Error?C.message:String(C))}},[r]),Q=(f?.findings??[]).filter(C=>C.severity==="error"||C.severity==="warning"),W=(f?.findings??[]).find(C=>/clock/i.test(C.code)||/clock/i.test(C.message));return{list:u,doctor:f,tasks:m,loadError:y,loadingBoard:A,advancedOpen:V,setAdvancedOpen:L,morningPreview:H,auxTicker:ae,refreshBoard:U,onMorningReport:_,doctorIssues:Q,clockHint:W}}function zv(c){const{board:r,runAction:u,isActionSuccess:o,setOpError:f}=c,{tasks:h,refreshBoard:m}=r,[g,y]=v.useState("pick"),[b,A]=v.useState(""),[R,V]=v.useState(hm),[L,H]=v.useState(""),[X,ae]=v.useState(null),[te,U]=v.useState(""),[_,Q]=v.useState(null),[W,C]=v.useState(!1),k=v.useMemo(()=>{const z=h.filter(E=>typeof E.featureId=="string"&&E.featureId.trim()&&E.taskId);return z.sort((E,le)=>{const re=E.featureId??"",S=le.featureId??"";return re!==S?re.localeCompare(S):E.taskId.localeCompare(le.taskId)}),z},[h]),Y=v.useMemo(()=>b?k.find(z=>`${z.featureId}::${z.taskId}`===b)??null:null,[k,b]),ne=Y?.featureId?mm(Y.featureId):"",ee=v.useCallback(async(z,E,le)=>{const re=await u("prepareMutationGate",{action:z,actionParams:E});if(!o(re))return;const S=re?.result??re,w=S.receiptId?S:S.result??S;if(!w.receiptId||!w.humanGateToken){f("prepareMutationGate 未返回可消费的 Human Gate receipt");return}return u(z,{...E,confirmationId:w.receiptId,humanGateToken:w.humanGateToken},{clientRequestId:Ev(le)})},[o,u,f]),M=v.useCallback(async()=>{if(!Y?.featureId){f("请先点选 Feature / Task");return}const z=Cv(R);if(!z){f("执行时间格式无效,请使用日期时间选择器");return}const E={featureDir:mm(Y.featureId),taskId:Y.taskId,at:z,tz:"Asia/Shanghai",...L.trim()?{taskCard:L.trim()}:{}},le=await ee("workerAdmissionPrepare",E,"night-prepare");if(!o(le))return;const re=Rv(le?.result??le);if(!re){f("准备成功但未解析到 scheduleId / gateToken。请刷新后重试,或查看 Inspect。");return}ae(re),y("review")},[o,R,ee,Y,f,L]),K=v.useCallback(async()=>{if(!X)return;const z=await ee("workerSchedulerAdd",{scheduleId:X.scheduleId,approveGate:X.gateToken},"night-add");o(z)&&(ae(null),y("pick"),A(""),H(""),V(hm()),await m())},[o,m,X,ee]),G=v.useCallback(()=>{y("pick"),ae(null)},[]),q=v.useCallback(async z=>{const E=await ee("workerSchedulerHarvest",{scheduleId:z.scheduleId},"night-harvest");o(E)&&await m()},[o,m,ee]),F=v.useCallback(async()=>{if(!_)return;const z=te.trim()||"discard from console night workbench",E=pi(_.status),le=await ee("workerSchedulerDiscard",{scheduleId:_.scheduleId,reason:z,...E||W?{force:!0}:{}},"night-discard");o(le)&&(Q(null),U(""),C(!1),await m())},[te,_,W,o,m,ee]),j=v.useCallback(z=>{Q(z),C(pi(z.status)),U("")},[]);return{phase:g,selectedKey:b,setSelectedKey:A,nightAt:R,setNightAt:V,taskCard:L,setTaskCard:H,review:X,discardReason:te,setDiscardReason:U,discardTarget:_,setDiscardTarget:Q,forceDiscard:W,setForceDiscard:C,selectableTasks:k,derivedFeatureDir:ne,onPrepare:M,onConfirmAdd:K,onCancelWizard:G,onHarvest:q,onDiscard:F,openDiscard:j}}function _v({busy:c,runAction:r,isActionSuccess:u,setOpError:o}){const f=Mv({setOpError:o}),h=zv({board:f,runAction:r,isActionSuccess:u,setOpError:o});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(wv,{board:f,busy:c}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c||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(Dv,{board:f,busy:c,onHarvest:m=>{h.onHarvest(m)},onOpenDiscard:h.openDiscard}),h.discardTarget?s.jsx(kv,{target:h.discardTarget,reason:h.discardReason,onReasonChange:h.setDiscardReason,force:h.forceDiscard,onForceChange:h.setForceDiscard,busy:c,onConfirm:()=>{h.onDiscard()},onCancel:()=>h.setDiscardTarget(null)}):null,s.jsx(Ov,{wizard:h,busy:c}),s.jsx(Nv,{board:f,busy:c})]})}const qr=()=>window.__CONSOLE_CONFIRMATION_TOKEN__??"";function Iv({origin:c}){const[r,u]=v.useState(null),[o,f]=v.useState(null),[h,m]=v.useState(null),[g,y]=v.useState(!1),b=async L=>{u(L),f(null),m(null);const H=L==="models"?"/api/operator/v1/pi/models-config":L==="skills"?"/api/operator/v1/chat/instruction-skills":"/api/operator/v1/pi/packages";try{const X=await fetch(`${c}${H}`,{credentials:"include"}),ae=await X.json();if(!X.ok)throw new Error(ae.error?.message??"读取失败");f(ae.data)}catch(X){m(X instanceof Error?X.message:String(X))}},A=async L=>{y(!0),m(null);try{const H=await fetch(`${c}/api/operator/v1/pi/models-config`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":qr()},body:JSON.stringify(L)}),X=await H.json();if(!H.ok)throw new Error(X.error?.message??"模型配置保存失败");f(X.data)}catch(H){m(H instanceof Error?H.message:String(H))}finally{y(!1)}},R=async(L,H)=>{y(!0),m(null);try{const X=await fetch(`${c}/api/operator/v1/pi/models-config/test`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":qr()},body:JSON.stringify({provider:L,modelId:H})}),ae=await X.json();if(!X.ok)throw new Error(ae.error?.message??"模型测试失败");return ae.data?.available===!0}catch(X){return m(X instanceof Error?X.message:String(X)),!1}finally{y(!1)}},V=async(L,H)=>{const X=o,ae=H?[...X.disabledNames??[],L]:(X.disabledNames??[]).filter(U=>U!==L);(await fetch(`${c}/api/operator/v1/chat/instruction-skills/preferences`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":qr()},body:JSON.stringify({disabledNames:ae})})).ok?f({...X,disabledNames:[...new Set(ae)]}):m("偏好保存失败")};return s.jsxs("div",{className:"oc-governance",children:[s.jsxs("div",{className:"oc-governance-links",children:[s.jsx("button",{type:"button",onClick:()=>{b("models")},children:"Models"}),s.jsx("button",{type:"button",onClick:()=>{b("skills")},children:"Skills"}),s.jsx("button",{type:"button",onClick:()=>{b("packages")},children:"Packages"})]}),r&&s.jsxs("section",{className:"oc-governance-panel",children:[s.jsxs("header",{children:[s.jsx("strong",{children:r==="models"?"Models":r==="skills"?"Skills":"Packages(只读)"}),s.jsx("button",{type:"button",onClick:()=>u(null),children:"关闭"})]}),h&&s.jsx("p",{className:"oc-governance-error",children:h}),r==="models"&&s.jsx(Uv,{busy:g,data:o,onMutate:A,onTest:R}),r==="skills"&&s.jsx(Hv,{data:o,onToggle:V}),r==="packages"&&s.jsx(Lv,{data:o})]})]})}function Uv({busy:c,data:r,onMutate:u,onTest:o}){const[f,h]=v.useState(""),[m,g]=v.useState(""),[y,b]=v.useState(""),[A,R]=v.useState(null),V=async L=>{L.preventDefault(),!(!r||!f.trim()||!m.trim())&&(await u({expectedRevision:r.revision,action:"upsert-model",provider:f.trim(),model:{id:m.trim(),...y.trim()?{name:y.trim()}:{}}}),g(""),b(""))};return r?s.jsxs("div",{className:"oc-models-config",children:[s.jsx("p",{children:"Console 不读取或写入 API key;credential 请通过 Pi CLI 配置。"}),r.providers.map(L=>s.jsxs("article",{className:"oc-model-provider",children:[s.jsxs("div",{children:[s.jsx("strong",{children:L.name}),s.jsx("span",{children:L.credential.configured?"credential configured":"credential 未配置"})]}),L.models.map(H=>s.jsxs("div",{className:"oc-model-row",children:[s.jsx("span",{children:H.name?`${H.name} (${H.id})`:H.id}),s.jsxs("div",{children:[s.jsx("button",{type:"button",disabled:c,onClick:()=>{o(L.name,H.id).then(X=>R(`${L.name}/${H.id}: ${X?"可用":"不可用"}`))},children:"测试"}),s.jsx("button",{type:"button",disabled:c,onClick:()=>{window.confirm(`确认删除模型 ${L.name}/${H.id}?`)&&u({expectedRevision:r.revision,action:"remove-model",provider:L.name,model:{id:H.id}})},children:"删除"})]})]},H.id)),s.jsx("button",{type:"button",disabled:c,onClick:()=>{window.confirm(`确认删除 Provider ${L.name}?`)&&u({expectedRevision:r.revision,action:"remove-provider",provider:L.name})},children:"删除 Provider"})]},L.name)),A&&s.jsx("p",{className:"oc-model-test-result",children:A}),s.jsxs("form",{className:"oc-model-form",onSubmit:L=>{V(L)},children:[s.jsx("strong",{children:"新增或更新模型"}),s.jsx("input",{required:!0,placeholder:"Provider",value:f,onChange:L=>h(L.target.value)}),s.jsx("input",{required:!0,placeholder:"Model ID",value:m,onChange:L=>g(L.target.value)}),s.jsx("input",{placeholder:"显示名称(可选)",value:y,onChange:L=>b(L.target.value)}),s.jsx("button",{type:"submit",disabled:c,children:c?"保存中…":"保存模型"})]})]}):s.jsx("p",{children:"正在读取模型配置…"})}function Hv({data:c,onToggle:r}){return s.jsxs("div",{children:[c?.allowed?.map(u=>{const o=typeof u=="string"?u:u.name,f=c.disabledNames?.includes(o)===!0;return s.jsxs("label",{children:[s.jsx("input",{type:"checkbox",checked:!f,onChange:h=>r(o,!h.target.checked)}),o,typeof u!="string"&&u.description?s.jsx("small",{children:u.description}):null]},o)}),s.jsx("small",{children:"偏好仅影响之后创建的新会话;denied/conditional 策略不可在此绕过。"})]})}function Lv({data:c}){return s.jsxs("div",{children:[s.jsx("p",{children:"此处仅展示 Pi 配置;不会扩大 Operator Chat 工具面。"}),c?.packages?.map(r=>s.jsxs("article",{children:[s.jsx("strong",{children:r.spec}),s.jsx("span",{children:r.scope})]},`${r.scope}:${r.spec}`))]})}const Kr=10;function Bv(c){return[...c].sort((r,u)=>r.kind!==u.kind?r.kind==="directory"?-1:1:r.name.localeCompare(u.name,void 0,{sensitivity:"base"}))}function qv({open:c}){return s.jsx("svg",{className:`oc-tree-chevron${c?" 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 Gv({open:c}){return c?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 Yv(){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 $v(c){const r=c.sessions.slice(0,Kr);return s.jsx("aside",{className:`oc-sidebar${c.open?"":" is-collapsed"}`,"aria-label":"会话与仓库",children:c.open?s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"oc-sidebar-section oc-sessions",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"会话"}),s.jsxs("div",{className:"oc-sidebar-header-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:c.onCreate,children:"新建"}),s.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:c.onToggleOpen,"aria-expanded":!0,"aria-label":"收起侧栏",title:"收起侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M8.8 2.6 5.2 7l3.6 4.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),s.jsxs("div",{className:"oc-session-scroll",children:[["active","archived"].map(u=>{const o=r.filter(f=>f.state===u);return o.length?s.jsxs("div",{className:"oc-session-group",children:[s.jsx("small",{children:u==="active"?"进行中":"已归档"}),o.map(f=>s.jsxs("div",{className:`oc-session-item${c.activeSessionId===f.sessionId?" is-active":""}`,children:[s.jsxs("button",{type:"button",className:"oc-session-main",onClick:()=>c.onActivate(f.sessionId),children:[s.jsxs("strong",{children:[f.title||"未命名对话",f.activeTurnId?" · 运行中":""]}),s.jsx("span",{children:new Date(f.updatedAt).toLocaleString()})]}),s.jsxs("div",{className:"oc-session-actions",children:[s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>{const h=window.prompt("会话名称",f.title??"");h!==null&&c.onRename(f.sessionId,h)},children:"重命名"}),s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>c.onSetState(f.sessionId,u==="active"?"archived":"active"),children:u==="active"?"归档":"恢复"}),s.jsx("button",{type:"button",className:"oc-session-menu oc-session-delete",onClick:()=>c.onDelete(f.sessionId),children:"删除"})]})]},f.sessionId))]},u):null}),r.length===0?s.jsx("p",{className:"oc-tree-empty",children:"暂无会话,点击上方新建。"}):null]})]}),s.jsxs("section",{className:"oc-sidebar-section oc-explorer",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"仓库"}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:c.onRefreshTree,children:"刷新"})]}),s.jsx("p",{className:"oc-explorer-hint",children:"单击插入 @路径 · 双击预览"}),c.treeError&&s.jsx("p",{className:"oc-sidebar-error",children:c.treeError}),s.jsx("div",{className:"oc-tree-scroll",children:s.jsx(Am,{entries:c.tree[""]??[],tree:c.tree,expanded:c.expanded,depth:0,onToggle:c.onToggleDir,onInsert:c.onInsert,onPreview:c.onPreview})})]}),s.jsx(Iv,{origin:c.origin})]}):s.jsx("button",{type:"button",className:"oc-sidebar-toggle is-collapsed",onClick:c.onToggleOpen,"aria-expanded":!1,"aria-label":"展开侧栏",title:"展开侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M5.2 2.6 8.8 7 5.2 11.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})})})}function Am(c){const r=v.useMemo(()=>Bv(c.entries),[c.entries]);return r.length?s.jsx("ul",{className:"oc-tree",role:c.depth===0?"tree":"group",children:r.map(u=>{const o=u.name.startsWith(".");if(u.kind==="directory"){const f=c.expanded.has(u.path);return s.jsxs("li",{className:`oc-tree-node is-dir${f?" is-open":""}${o?" is-dot":""}`,role:"treeitem","aria-expanded":f,children:[s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-dir",onClick:()=>c.onToggle(u.path),style:{paddingLeft:`${8+c.depth*12}px`},children:[s.jsx(qv,{open:f}),s.jsx(Gv,{open:f}),s.jsx("span",{className:"oc-tree-label",children:u.name})]}),f?s.jsx("div",{className:"oc-tree-children",style:{"--oc-tree-guide":`${14+c.depth*12}px`},children:s.jsx(Am,{entries:c.tree[u.path]??[],tree:c.tree,expanded:c.expanded,depth:c.depth+1,onToggle:c.onToggle,onInsert:c.onInsert,onPreview:c.onPreview})}):null]},u.path)}return s.jsx("li",{className:`oc-tree-node is-file${o?" is-dot":""}`,role:"treeitem",children:s.jsx(Xv,{entry:u,depth:c.depth,onInsert:c.onInsert,onPreview:c.onPreview})},u.path)})}):s.jsx("p",{className:"oc-tree-empty",children:"此目录为空或没有可安全浏览的文件。"})}function Xv(c){const r=v.useRef(null);return v.useEffect(()=>()=>{r.current!==null&&window.clearTimeout(r.current)},[]),s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-file",style:{paddingLeft:`${8+c.depth*12}px`},title:"单击插入引用;双击预览",onClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{c.onInsert(c.entry.path),r.current=null},220)},onDoubleClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=null,c.onPreview(c.entry.path)},children:[s.jsx("span",{className:"oc-tree-chevron-spacer","aria-hidden":"true"}),s.jsx(Yv,{}),s.jsx("span",{className:"oc-tree-label",children:c.entry.name})]})}function Kv(c){const r=c.previews.find(u=>u.path===c.activePath);return!r&&!c.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:c.previews.map(u=>s.jsx("button",{type:"button",role:"tab","aria-selected":u.path===r.path,className:u.path===r.path?"is-active":"",onClick:()=>c.onActivate(u.path),children:u.path},u.path))}),s.jsxs("span",{children:[r.bytes," bytes",r.truncated?" · 已截断":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>c.onClose(r.path),children:"关闭预览"})]}),s.jsx("pre",{children:s.jsx("code",{children:r.content})})]}),c.loading&&s.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const Pr=[{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:"/help",label:"Shortcuts",description:"显示可用 shortcut",action:"show-help"}];function Qv(c){const r=c.trim().split(/\s+/,1)[0]?.toLowerCase();if(!r?.startsWith("/"))return;const u=Pr.find(o=>o.command===r);return u?{command:u.command,action:u.action}:{command:r,action:"unknown"}}const Vv=[{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 Em(c){const r=c.readiness==="setup-required",u=!!c.disabled||r,o=c.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",f=c.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return s.jsxs("div",{className:"oc-empty",role:"status",children:[s.jsxs("div",{className:"oc-empty-hero",children:[s.jsx("div",{className:"oc-empty-icon","aria-hidden":"true",children:"π"}),s.jsxs("div",{className:"oc-empty-copy",children:[s.jsx("h3",{children:o}),s.jsx("p",{children:f})]})]}),s.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:Vv.map(h=>s.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>c.onSuggest(h.prompt),disabled:u,children:[s.jsx("strong",{children:h.label}),s.jsx("span",{children: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 换行"})]})]}),c.mode==="no-session"&&c.onCreateSession?s.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:c.onCreateSession,disabled:r,children:r?"需先完成 Pi setup":"新建空白对话"}):null]})}function Zv(c){const{artifact:r}=c;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:"查看详情"})]})}const Jv=["command","path","file_path","filePath","pattern","query","glob","url"],Fv=120,Wv=800;function pm(c){if(!(!c||typeof c!="object"||Array.isArray(c)))return c}function Pv(c){if(c!=null){if(typeof c=="string"){const r=c.trim();if(!r)return;try{return pm(JSON.parse(r))}catch{return}}return pm(c)}}function eg(c,r){const u=Fv,o=Pv(c);if(!o){if(typeof c=="string"){const g=c.replace(/\s+/g," ").trim();return!g||g==="{}"?"":g.length>u?`${g.slice(0,u)}…`:g}return""}for(const g of Jv){const y=o[g];if(typeof y=="string"&&y.trim()){const b=y.replace(/\s+/g," ").trim();return b.length>u?`${b.slice(0,u)}…`:b}}const f=Object.keys(o);if(f.length===0)return"";const h=o[f[0]],m=String(h??"").replace(/\s+/g," ").trim();return m?m.length>u?`${m.slice(0,u)}…`:m:""}function tg(c){if(c==null)return"";try{return typeof c=="string"?c:JSON.stringify(c,null,2)}catch{return String(c)}}function ng(c,r){if(c===void 0)return{text:"",truncated:!1};const u=r?.maxLen??Wv;return c.length<=u?{text:c,truncated:!1}:{text:`${c.slice(0,u)}…`,truncated:!0}}function ag(c,r){if(r===void 0||!Number.isFinite(c)||!Number.isFinite(r))return;const u=Math.round((r-c)/1e3);return u>0?u:void 0}function Yt(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Vl(c){return`${c}-${Math.random().toString(36).slice(2,10)}`}function Gr(c,r){return new Promise((u,o)=>{if(r?.aborted){o(new DOMException("Aborted","AbortError"));return}const f=setTimeout(()=>{r?.removeEventListener("abort",h),u()},c),h=()=>{clearTimeout(f),o(new DOMException("Aborted","AbortError"))};r?.addEventListener("abort",h)})}function km(c){return new Date(c).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function Yr(c){const r=new Date(c),u=new Date;return r.getFullYear()===u.getFullYear()&&r.getMonth()===u.getMonth()&&r.getDate()===u.getDate()?"今天":r.toLocaleDateString([],{month:"long",day:"numeric"})}function vm(c){switch(c){case"mutation":return"变更";case"long-running":return"长任务";case"explore":return"探查";default:return"只读"}}function lg(c,r){return c?c.taskId===r.taskId&&c.updatedAt===r.updatedAt&&c.lastEventId===r.lastEventId&&c.operations.length===r.operations.length:!1}function sg({card:c,origin:r,sessionId:u}){const[o,f]=v.useState(!1),[h,m]=v.useState(),g=async()=>{f(!0),m(void 0);try{const R=c.gateType==="dag-run"?c.state==="prepared"?"dag-confirm":"dag-run":c.gateType==="mutation"?"mutation-apply":"contract-apply",V=c.gateType==="dag-run"?{confirmationId:c.confirmationId,...c.state==="prepared"?{humanGateToken:c.humanGateToken}:{}}:{receiptId:c.receiptId,humanGateToken:c.humanGateToken},L=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(u)}/human-gate/${R}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt()},body:JSON.stringify(V)}),H=await L.json();if(!L.ok)throw new Error(H.error?.message??`HTTP ${L.status}`)}catch(R){m(R instanceof Error?R.message:String(R))}finally{f(!1)}},y=c.state==="prepared"||c.gateType==="dag-run"&&c.state==="confirmed",b=c.gateType==="contract-apply"?"Contract apply":c.gateType==="mutation"?"Mutation":"DAG run",A=c.gateType==="contract-apply"?"Apply":c.gateType==="mutation"?"Execute":c.state==="prepared"?"Confirm":"Run";return s.jsxs("section",{className:`oc-human-gate-card is-${c.state}`,"aria-label":`Human gate ${c.cardId}`,children:[s.jsxs("header",{children:[s.jsxs("div",{children:[s.jsx("small",{children:"HumanGateCard · 仅人类可确认"}),s.jsx("strong",{children:b})]}),s.jsx("span",{children:c.state})]}),c.contractDiffSummary&&s.jsx("p",{children:c.contractDiffSummary}),c.displayOnlyChallenges&&s.jsxs("div",{className:"oc-human-gate-challenges",children:[s.jsx("b",{children:"Challenge(仅展示,不是确认信号)"}),s.jsx("ul",{children:c.displayOnlyChallenges.map(R=>s.jsx("li",{children:R},R))})]}),c.dagSpine&&c.dagSpine.length>0&&s.jsxs("div",{children:[s.jsx("b",{children:"DAG spine"}),s.jsx("ol",{children:c.dagSpine.map(R=>s.jsx("li",{children:s.jsx("code",{children:R})},R))})]}),s.jsxs("footer",{children:[s.jsx("a",{href:c.inspectHref,children:"Inspect"}),s.jsx("button",{className:"btn btn-primary",type:"button",disabled:!y||o,onClick:()=>{g()},children:o?"提交中…":A})]}),h&&s.jsx("div",{className:"oc-human-gate-error",children:h})]})}const Qt="loop-console.operator-chat.active-session.v1",ig="loop-console.operator-chat.default-landing.v1";function vi(c){const r=c?.trim().toLowerCase();if(r==="chat")return"chat";if(r==="tasks")return"tasks"}function wm(c){const r=c?.trim().toLowerCase();if(r==="chat"||r==="tasks"||r==="recovery"||r==="night"||r==="models"||r==="settings")return r}function Dm(c){const r=u=>c.get(u)?.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 Om(c){const r=String(c??"").replace(/^#/,"");if(!r)return null;const u=r.indexOf("?"),o=u>=0?r.slice(0,u):r,f=u>=0?r.slice(u+1):"",h=(o||"/").split("?")[0]||"/";if(h==="/"||h==="")return null;const m=h.replace(/^\//,"").split("/")[0],g=wm(m);return g?{workspace:g,...Dm(new URLSearchParams(f))}:null}function cg(c){const r=new URLSearchParams(c.search),u=c.hash.startsWith("#")?c.hash.slice(1):c.hash,o=new URLSearchParams(u),f=wm(r.get("workspace")??r.get("landing")??o.get("workspace"));return f?{workspace:f,...Dm(r)}:null}function rg(c){if(!c)return;const r=Om(c.hash);if(r)return r.workspace;const u=new URLSearchParams(c.search),o=vi(u.get("landing")??u.get("workspace"));if(o)return o;const f=c.hash.startsWith("#")?c.hash.slice(1):c.hash;return vi(new URLSearchParams(f).get("workspace"))}function Mm(c){return rg(c.location)??vi(c.storage?.getItem(ig))??vi(c.env)??"tasks"}function zm(c,r={}){const u=new URLSearchParams;for(const[h,m]of Object.entries(r))m?.trim()&&u.set(h,m.trim());const o=u.toString(),f=`/${c}`;return o?`${f}?${o}`:f}function ug(c,r={}){return`#${zm(c,r)}`}function og(c){return Om(c.hash)??cg(c)}function dg(c){const{operation:r}=c,u=r.inspectHref.startsWith("/")?`${c.origin}${r.inspectHref}`:r.inspectHref,o=r.state==="failed"||r.state==="timed-out"||r.state==="needs-reconcile",f=(m,g)=>{c.onNavigateWorkspace?c.onNavigateWorkspace(m,g):window.location.assign(ug(m,g))},h=[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(m=>!!m);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})}),h.length>0&&s.jsx("div",{className:"oc-operation-identities",children:h.map(([m,g])=>s.jsxs("span",{children:[s.jsx("b",{children:m})," ",g]},`${m}:${g}`))}),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:u,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:`${c.origin}/inspect/#/dag/${encodeURIComponent(r.dagRunId)}`,target:"_blank",rel:"noreferrer",children:"打开 Run / Inspect"}),o&&(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 fg(c){const{interview:r,interviewAnswer:u,onAnswerChange:o,onAnswer:f}=c;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:u,onChange:h=>o(h.target.value),placeholder:"输入答案"}),s.jsxs("div",{children:[s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("override"),disabled:!u.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:()=>c.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 mg(c){const r=[],u=c.split(`
11
- `);let o=0,f=[];const h=()=>{const m=f.join(`
12
- `).trimEnd();m&&r.push({type:"text",text:m}),f=[]};for(;o<u.length;){const m=u[o],g=m.match(/^\s*(`{3,}|~{3,})\s*([^\s`~]*)\s*$/);if(g){h();const y=g[1][0],b=(g[2]??"").trim(),A=[];for(o+=1;o<u.length;){const R=u[o];if(R.trim()===y.repeat(g[1].length)){o+=1;break}if(new RegExp(`^\\s*${y}{3,}`).test(R)){o+=1;break}A.push(R),o+=1}r.push({type:"code",lang:b,text:A.join(`
13
- `)});continue}f.push(m),o+=1}return h(),r}const hg=/(`[^`]+`)|(\*\*[^*]+\*\*)|(\*[^*]+\*|_[^_]+_)|(~~[^~]+~~)|(\[[^\]]+\]\([^)\s]+\))/;function $l(c,r){const u=[];let o=c,f=0;for(;o.length>0;){const h=hg.exec(o);if(!h||h.index===void 0){u.push(o);break}h.index>0&&u.push(o.slice(0,h.index));const m=h[0],g=`${r}-i${f++}`;if(m.startsWith("`"))u.push(s.jsx("code",{children:m.slice(1,-1)},g));else if(m.startsWith("**"))u.push(s.jsx("strong",{children:m.slice(2,-2)},g));else if(m.startsWith("*")||m.startsWith("_"))u.push(s.jsx("em",{children:m.slice(1,-1)},g));else if(m.startsWith("~~"))u.push(s.jsx("s",{children:m.slice(2,-2)},g));else if(m.startsWith("[")){const y=m.match(/^\[([^\]]+)\]\(([^)\s]+)\)$/);y?u.push(s.jsx("a",{href:y[2],target:"_blank",rel:"noreferrer noopener",children:y[1]},g)):u.push(m)}o=o.slice(h.index+m.length)}return u}function pg({lang:c,text:r}){const[u,o]=v.useState(!1),f=()=>{navigator.clipboard?.writeText(r).then(()=>{o(!0),window.setTimeout(()=>o(!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:c||"text"}),s.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:f,children:u?"已复制":"复制"})]}),s.jsx("pre",{children:s.jsx("code",{children:r})})]})}function vg(c,r){const u=[],o=c.split(`
14
- `);let f=0,h=0;for(;h<o.length;){const g=o[h].trim();if(g===""){h+=1;continue}const y=g.match(/^(#{1,4})\s+(.*)$/);if(y){const R=`h${y[1].length}`;u.push(s.jsx(R,{children:$l(y[2],`${r}-h${f}`)},`${r}-h${f++}`)),h+=1;continue}if(/^(---|\*\*\*|___)\s*$/.test(g)){u.push(s.jsx("hr",{},`${r}-hr${f++}`)),h+=1;continue}if(g.startsWith(">")){const A=[];for(;h<o.length&&o[h].trim().startsWith(">");)A.push(o[h].trim().replace(/^>\s?/,"")),h+=1;u.push(s.jsx("blockquote",{children:A.map((R,V)=>s.jsx("p",{children:$l(R,`${r}-bq${f}-${V}`)},V))},`${r}-bq${f++}`));continue}if(/^[-*+]\s+/.test(g)){const A=[];for(;h<o.length&&/^\s*[-*+]\s+/.test(o[h]);)A.push(o[h].trim().replace(/^[-*+]\s+/,"")),h+=1;u.push(s.jsx("ul",{children:A.map((R,V)=>s.jsx("li",{children:$l(R,`${r}-ul${f}-${V}`)},V))},`${r}-ul${f++}`));continue}if(/^\d+\.\s+/.test(g)){const A=[];for(;h<o.length&&/^\s*\d+\.\s+/.test(o[h]);)A.push(o[h].trim().replace(/^\d+\.\s+/,"")),h+=1;u.push(s.jsx("ol",{children:A.map((R,V)=>s.jsx("li",{children:$l(R,`${r}-ol${f}-${V}`)},V))},`${r}-ol${f++}`));continue}const b=[];for(;h<o.length&&o[h].trim()!==""&&!/^(#{1,4})\s+/.test(o[h].trim())&&!/^(---|\*\*\*|___)\s*$/.test(o[h].trim())&&!o[h].trim().startsWith(">")&&!/^[-*+]\s+/.test(o[h].trim())&&!/^\d+\.\s+/.test(o[h].trim());)b.push(o[h].trim()),h+=1;u.push(s.jsx("p",{children:$l(b.join(" "),`${r}-p${f}`)},`${r}-p${f++}`))}return u}function gg({text:c}){const r=mg(c);return s.jsx("div",{className:"oc-md",children:r.map((u,o)=>u.type==="code"?s.jsx(pg,{lang:u.lang,text:u.text},`cb-${o}`):s.jsx("div",{children:vg(u.text,`tx-${o}`)},`tx-${o}`))})}function yg(){return s.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[s.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),s.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function bg(){return s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:s.jsx("polyline",{points:"20 6 9 17 4 12"})})}function xg(){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 Sg(){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 _m(){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 jg(){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 Im(c){const[r,u]=v.useState(!1),o=()=>{navigator.clipboard?.writeText(c.text).then(()=>{u(!0),window.setTimeout(()=>u(!1),1600)},()=>{})};return s.jsx("button",{type:"button",className:`oc-message-copy${r?" is-copied":""}`,"aria-label":r?"已复制":"复制消息",title:r?"已复制":"复制",onClick:o,children:r?s.jsx(bg,{}):s.jsx(yg,{})})}function gm(c){const{message:r,streaming:u,activeAssistantId:o}=c,f=r.role==="user",h=f?"你":"π",m=f?"你":"助手",g=!f&&u&&o!==null&&r.id===o,y=g&&r.text.length===0,b=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:h}),s.jsx("span",{className:"oc-role",children:m}),s.jsx("span",{className:"oc-time",children:km(r.createdAt)}),b&&s.jsx(Im,{text:r.text})]}),s.jsxs("div",{className:`oc-bubble ${f?"oc-bubble-user":"oc-bubble-assistant"}`,children:[b?f?s.jsx("div",{style:{whiteSpace:"pre-wrap"},children:r.text}):s.jsx(gg,{text:r.text}):y?s.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,g&&b&&s.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function Ng(c){const r=[],u=[];let o,f=[];const h=m=>{for(const g of f)g.assistantMessageId||(g.assistantMessageId=m),g.turnId||(g.turnId=o);f=[]};for(const m of c){const g=Date.parse(m.at)||Date.now();if(m.role==="user"){o=`restored-${m.id}`,f=[],r.push({id:m.id,role:"user",text:m.text,createdAt:g});continue}if(m.role==="assistant"){o||(o=`restored-${m.id}`),r.push({id:m.id,role:"assistant",text:m.text,createdAt:g}),h(m.id);continue}if(m.role==="tool"){o||(o=`restored-tool-${m.id}`);const y={id:m.toolCallId||m.id,toolName:m.toolName||"tool",status:m.isError===!0?"error":"ok",resultText:m.text,result:m.text,createdAt:g,finishedAt:g,turnId:o};u.push(y),f.push(y)}}return{messages:r,toolCalls:u}}function Rg(c){const r=c.messages.filter(g=>g.role==="user"||g.role==="assistant"),u=[];let o=null;const f=g=>{const y={key:g,assistants:[],tools:[],live:!1};return u.push(y),y};for(const g of r){if(g.role==="user"){o=f(`user-${g.id}`),o.user=g;continue}o||(o=f(`assistant-${g.id}`)),o.assistants.push(g)}u.length===0&&c.toolCalls.length>0&&u.push({key:"orphan-tools",assistants:[],tools:[],live:!1});const h=new Set,m=new Map;for(const g of u)for(const y of g.assistants)m.set(y.id,g);for(const g of c.toolCalls)if(g.assistantMessageId){const y=m.get(g.assistantMessageId);if(y){y.tools.push(g),h.add(g.id);continue}}for(const g of c.toolCalls)if(!h.has(g.id)&&g.turnId){const y=u.find(A=>A.tools.some(R=>R.turnId===g.turnId)||A.key===`turn-${g.turnId}`||A.user&&`restored-${A.user.id}`===g.turnId);if(y){y.tools.push(g),h.add(g.id);continue}const b=u.find(A=>g.turnId===`restored-${A.user?.id}`||A.assistants.some(R=>g.turnId===`restored-${R.id}`));if(b){b.tools.push(g),h.add(g.id);continue}}for(const g of c.toolCalls){if(h.has(g.id))continue;const y=u.find((b,A)=>{const R=b.user?.createdAt??b.assistants[0]?.createdAt??0,L=u[A+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return g.createdAt>=R&&g.createdAt<L});y?(y.tools.push(g),h.add(g.id)):u.length>0&&(u[u.length-1].tools.push(g),h.add(g.id))}for(const g of u)g.tools.sort((y,b)=>y.createdAt-b.createdAt),g.live=c.streaming&&c.activeAssistantId!==null&&g.assistants.some(y=>y.id===c.activeAssistantId);return u}function Cg(c){const r=c.length,u=c.filter(h=>h.status==="error").length,o=c.filter(h=>h.status==="running").length,f=[`执行过程 · ${r} 工具`];return u>0?f.push(`${u} 出错`):o>0&&f.push("运行中"),{count:r,errorCount:u,runningCount:o,label:f.join(" · ")}}function Um(c){const{entry:r}=c,[u,o]=v.useState(r.status==="error"),[f,h]=v.useState(!1),m=r.status==="running"?"运行中":r.status==="error"?"出错":"完成",g=`is-${r.status}`,y=eg(r.args),b=ag(r.createdAt,r.finishedAt),A=ng(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":u,onClick:()=>o(R=>!R),children:[s.jsx(_m,{}),s.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:s.jsx(jg,{})}),s.jsx("span",{className:"oc-tool-name",children:r.toolName}),y&&s.jsx("span",{className:"oc-tool-args",children:y}),b!==void 0&&s.jsxs("span",{className:"oc-tool-duration",children:[b,"s"]}),s.jsx("span",{className:`oc-tool-status ${g}`,children:m})]}),u&&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:tg(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:A.text}),A.truncated&&!f&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>h(!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 Tg(c){const{tools:r,defaultOpen:u}=c,[o,f]=v.useState(u),h=Cg(r);return v.useEffect(()=>{u&&f(!0)},[u]),s.jsxs("div",{className:"oc-process-inline",children:[s.jsxs("button",{type:"button",className:`oc-process-inline-summary${o?" is-open":""}${h.errorCount>0?" is-error":h.runningCount>0?" is-running":""}`,"aria-expanded":o,onClick:()=>f(m=>!m),children:[s.jsx(_m,{}),s.jsx("span",{children:h.label})]}),o&&s.jsx("div",{className:"oc-process-inline-body",children:r.map(m=>s.jsx(Um,{entry:m},m.id))})]})}function Ag(c){const{scrollContainerRef:r,messagesEndRef:u,onScroll:o,hasThread:f,readiness:h,streaming:m,streamingAssistantId:g,messagesCount:y,visibleCount:b,onLoadMore:A,turnGroups:R,interview:V,humanGateCards:L,operationCards:H,artifactCards:X,origin:ae,sessionId:te}=c;return s.jsxs("div",{ref:r,className:`oc-messages${f?" has-thread":" is-empty"}`,onScroll:o,children:[f?null:s.jsx(Em,{mode:"empty-session",readiness:h,disabled:m,onSuggest:c.onSuggest}),f&&y>b&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:A,children:"加载更早消息"}),f&&R.map((U,_)=>{const Q=U.user??U.assistants[0],W=_>0?R[_-1].user??R[_-1].assistants[0]:void 0,C=!!Q&&(!W||Yr(W.createdAt)!==Yr(Q.createdAt)),k=U.assistants[U.assistants.length-1];return s.jsxs("div",{className:"oc-turn-group",children:[C&&Q&&s.jsx("div",{className:"oc-day-sep",children:Yr(Q.createdAt)}),U.user&&s.jsx(gm,{message:U.user,streaming:m,activeAssistantId:g}),U.tools.length>0&&s.jsx(Tg,{tools:U.tools,defaultOpen:U.live}),k&&s.jsx(gm,{message:k,streaming:m,activeAssistantId:g})]},U.key)}),V&&s.jsx(fg,{interview:V,interviewAnswer:c.interviewAnswer,onAnswerChange:c.onInterviewAnswerChange,onAnswer:c.onAnswerInterview,onConfirmTaskKind:c.onConfirmTaskKind}),L.map(U=>s.jsx(sg,{card:U,origin:ae,sessionId:te},U.cardId)),H.map(U=>s.jsx(dg,{operation:U,origin:ae,onNavigateWorkspace:c.onNavigateWorkspace},U.operationId)),X.map(U=>s.jsx(Zv,{artifact:U},U.artifactId)),s.jsx("div",{ref:u})]})}function Xl(c){return c>=1e6?`${(c/1e6).toFixed(1)}M`:c>=1e3?`${(c/1e3).toFixed(1)}k`:c.toLocaleString()}function ym(c){const r=[],u=c.inputTokens??0,o=c.outputTokens??0,f=c.cacheReadTokens??0,h=c.cacheWriteTokens??0,m=c.cost??0;if(u>0&&r.push(`${Xl(u)} in`),o>0&&r.push(`${Xl(o)} out`),f>0&&r.push(`${Xl(f)} cache R`),h>0&&r.push(`${Xl(h)} cache W`),m>0&&r.push(m>=.01?`$${m.toFixed(2)}`:"<$0.01"),r.length===0){const g=c.totalTokens??0;return g>0?`${Xl(g)} tokens`:"—"}return r.join(" · ")}function da(c,r){return`${c}/${r}`}function Qr(c){return{...c.modelProvider&&c.modelId?{model:{provider:c.modelProvider,modelId:c.modelId}}:{},...c.thinkingLevel?{thinkingLevel:c.thinkingLevel}:{}}}function Vr(c,r){return{...c,model:r.model??c.model,thinkingLevel:r.thinkingLevel??c.thinkingLevel}}function bm(c,r){const u=Vr(c,r);return u.model?.provider===c.model?.provider&&u.model?.modelId===c.model?.modelId&&u.thinkingLevel===c.thinkingLevel}const Eg=v.forwardRef(function({open:r,onToggle:u,onClose:o,context:f},h){const m=Array.isArray(f.resources.activeTools)?f.resources.activeTools:[],g=typeof f.resources.activeToolCount=="number"?f.resources.activeToolCount:m.length,y=f.systemPrompt.text??f.systemPrompt.summary??"",b=f.systemPrompt.charCount??y.length;return s.jsxs("div",{className:"oc-runtime-context-menu",ref:h,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:u,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 / skills(已脱敏)"})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭",onClick:o,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:da(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 ",b.toLocaleString()," 字"]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["Skills ",f.skills.length]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["工具 ",g]}),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),"…"]})]}),y?s.jsx(Im,{text:y}):null]}),s.jsx("pre",{className:"oc-runtime-context-text",children:y||"(空)"})]}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"Instruction skills"}),s.jsx("span",{className:"oc-runtime-context-meta",children:f.skills.length===0?"未注入":`${f.skills.length} 个只读方法论片段`})]}),f.skills.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:"无 skill 注入"}):s.jsx("ul",{className:"oc-runtime-context-skill-cards",children:f.skills.map(A=>s.jsx("li",{children:s.jsxs("details",{children:[s.jsxs("summary",{children:[s.jsx("code",{children:A.name}),s.jsxs("span",{children:[A.charCount.toLocaleString()," 字"]})]}),A.description?s.jsx("p",{className:"oc-runtime-context-skill-desc",children:A.description}):null,A.body?s.jsx("pre",{className:"oc-runtime-context-text",children:A.body}):s.jsx("p",{className:"oc-runtime-context-empty",children:"正文未下发"})]})},A.name))})]}),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.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:[g," 个"]})]}),m.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):s.jsx("ul",{className:"oc-runtime-context-tools",children:m.map(A=>s.jsx("li",{children:s.jsx("code",{children:A})},A))})]}),s.jsxs("details",{className:"oc-runtime-context-raw",children:[s.jsx("summary",{children:"原始投影 JSON"}),s.jsx("pre",{children:JSON.stringify(f,null,2)})]})]})]})]})});function kg(c){const{catalog:r,open:u,onToggle:o,onClose:f,menuRef:h}=c;return s.jsxs("div",{className:"oc-tools-menu oc-tools-menu--composer",ref:h,children:[s.jsxs("button",{type:"button",className:`oc-cap-chip oc-tools-toggle${u?" is-active":""}`,"aria-pressed":u,"aria-expanded":u,"aria-controls":"oc-tools-catalog",onClick:o,children:[r.total," 工具"]}),u&&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(m=>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:m.toolId}),s.jsx("span",{className:"oc-tools-kind is-explore",children:vm(m.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:m.description})]},m.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(m=>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:m.toolId}),s.jsx("span",{className:`oc-tools-kind is-${m.kind??"read"}`,children:vm(m.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:m.description}),m.cli&&s.jsxs("p",{className:"oc-tools-cli",children:["CLI: ",s.jsx("code",{children:m.cli})]})]},m.toolId))})]})]})]})]})}function wg(c){const{composer:r,streaming:u,hasThread:o}=c;return s.jsx("div",{className:"oc-composer",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(f=>s.jsx("button",{type:"button",role:"option",onMouseDown:h=>h.preventDefault(),onClick:()=>r.insertFileReference(f),children:s.jsxs("code",{children:["@",f]})},f))}),r.pendingImages.length>0&&s.jsx("div",{className:"oc-attachment-list",children:r.pendingImages.map(f=>s.jsxs("span",{children:[f.name,s.jsx("button",{type:"button","aria-label":`移除 ${f.name}`,onClick:()=>r.removeImage(f),children:"×"})]},f.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:f=>{r.addImagesFromFiles(Array.from(f.target.files??[]).slice(0,4)),f.target.value=""}})]}),s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",s.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]})]}),r.shortcutOpen&&r.filteredShortcuts.length>0&&s.jsx("div",{className:"oc-shortcut-palette",role:"listbox","aria-label":"Chat shortcuts",children:r.filteredShortcuts.map((f,h)=>s.jsxs("button",{type:"button",role:"option","aria-selected":h===r.shortcutIndex,className:h===r.shortcutIndex?"is-active":"",onMouseDown:m=>m.preventDefault(),onClick:()=>c.onRunShortcut(f.command),children:[s.jsx("code",{children:f.command}),s.jsxs("span",{children:[s.jsx("strong",{children:f.label}),s.jsx("small",{children:f.description})]})]},f.command))}),s.jsxs("div",{className:`oc-composer-shell${u?" is-busy":""}`,children:[s.jsx("textarea",{ref:r.textareaRef,className:"oc-textarea",value:r.input,rows:3,placeholder:u?"正在生成回复…(可直接发起新问题)":o?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:f=>r.handleInputChange(f.target.value),onKeyDown:c.onKeyDown,onCompositionStart:r.onCompositionStart,onCompositionEnd:r.onCompositionEnd,disabled:u}),u?s.jsx("button",{type:"button",className:"oc-stop",title:"停止生成","aria-label":"停止生成",onClick:c.onStop,children:s.jsx(Sg,{})}):s.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:()=>c.onSend(r.input),disabled:!r.input.trim()&&r.pendingImages.length===0,children:s.jsx(xg,{})})]}),s.jsxs("div",{className:"oc-runtime-controls",children:[s.jsxs("select",{className:"oc-model-select","aria-label":"Model",value:c.activeModelRef,onChange:f=>{const h=c.models.find(m=>da(m.provider,m.id)===f.target.value);h&&c.onSwitchRuntime({provider:h.provider,modelId:h.id})},children:[s.jsx("option",{value:"",children:"选择模型"}),c.activeModel&&!c.activeModelListed?s.jsx("option",{value:c.activeModelRef,children:c.activeModelRef}):null,c.models.filter(f=>f.hasCredentials!==!1).map(f=>s.jsx("option",{value:da(f.provider,f.id),children:da(f.provider,f.id)},da(f.provider,f.id)))]}),s.jsxs("select",{className:"oc-thinking-select","aria-label":"Thinking level",value:c.activeThinkingLevel,onChange:f=>c.onSwitchRuntime({thinkingLevel:f.target.value}),children:[s.jsx("option",{value:"",children:"思考等级"}),c.thinkingLevels.map(f=>s.jsx("option",{value:f,children:f},f))]}),s.jsxs("span",{className:"oc-usage",title:ym(c.usage),children:[u?"运行中":"空闲",c.unread>0?` · ${c.unread} 未读`:""," · ",ym(c.usage)]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:c.onCompact,disabled:u||!o,title:o?u?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:"Compact"}),c.toolCatalog?s.jsx(kg,{catalog:c.toolCatalog,open:c.toolsOpen,onToggle:c.onToggleTools,onClose:c.onCloseTools,menuRef:c.toolsMenuRef}):null,c.processSummary&&s.jsxs("button",{type:"button",className:`oc-process-summary is-${c.processSummary.statusKind}${c.processOpen?" is-open":""}`,"aria-pressed":c.processOpen,"aria-controls":"oc-process-panel",onClick:c.onToggleProcess,children:["全部工具 · ",c.processSummary.count," ·"," ",c.processSummary.statusLabel]}),c.runtimeContext&&s.jsx(Eg,{ref:c.runtimeContextMenuRef,open:c.runtimeContextOpen,onToggle:c.onToggleRuntimeContext,onClose:c.onCloseRuntimeContext,context:c.runtimeContext})]})]})})}function Dg(c){const{toolCalls:r,onClose:u}=c;return s.jsxs("aside",{id:"oc-process-panel",className:"oc-process","aria-label":"全部工具",children:[s.jsxs("header",{className:"oc-process-head",children:[s.jsxs("div",{className:"oc-process-title",children:[s.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"全部工具",s.jsx("span",{className:"oc-process-count",children:r.length})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭全部工具",onClick:u,children:"关闭"})]}),s.jsx("div",{className:"oc-process-timeline",children:r.length===0?s.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):r.map((o,f)=>s.jsxs("div",{className:`oc-process-item${f===0?" is-first":""}${f===r.length-1?" is-last":""}${o.status==="error"?" is-error":""}${o.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:km(o.createdAt)}),s.jsx("div",{className:"oc-process-body",children:s.jsx(Um,{entry:o})})]},o.id))})]})}function Og(){const c=v.useRef(null),r=v.useRef(!1),u=v.useRef(null),o=v.useRef(new Map),f=v.useRef(new Set),h=v.useRef(null),m=v.useRef(null),g=v.useRef(new Set),y=v.useRef(new Map),b=v.useRef(null),A=v.useRef(null),R=v.useRef(new Set),V=v.useRef(!1),L=v.useRef(0);return v.useMemo(()=>({sessionRef:c,streamingRef:r,abortRef:u,sessionAbortControllersRef:o,inlineStreamSessionIdsRef:f,assistantIdRef:h,lastEventIdRef:m,seenEventIdsRef:g,turnAssistantIdsRef:y,reconnectAbortRef:b,activeTurnIdRef:A,usageResponseKeysRef:R,isComposingRef:V,compositionEndedAtRef:L}),[c,r,u,o,f,h,m,g,y,b,A,R,V,L])}const Mg=["operation","contract","dag","report","html"];function zg(c){const r=c.artifact;if(!r||typeof r!="object")return;const u=r;if(!(u.schemaVersion!==1||typeof u.artifactId!="string"||!u.artifactId||typeof u.kind!="string"||!Mg.includes(u.kind)||typeof u.previewHash!="string")){for(const o of["title","summary","htmlPreview","reportText","inspectHref"])if(u[o]!==void 0&&typeof u[o]!="string")return;return u}}function _g(c,r){const u=c.findIndex(o=>o.artifactId===r.artifactId);return u<0?[...c,r]:c.map((o,f)=>f===u?{...o,...r}:o)}function Ig(c){if(!c||typeof c!="object")return;const r=c;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 Ug(c,r){const u=c.findIndex(f=>f.cardId===r.cardId);if(u<0)return[...c,r];const o=[...c];return o[u]=r,o}function Hg(c,r){const u=c.findIndex(o=>o.operationId===r.operationId);return u<0?[...c,r]:c.map((o,f)=>f===u?{...o,...r}:o)}function Lg(c){const r=c.operation;if(!r||typeof r!="object")return;const u=r;if(!(u.schemaVersion!==1||typeof u.operationId!="string"||typeof u.action!="string"||typeof u.state!="string"||typeof u.inspectHref!="string"||typeof u.createdAt!="string"||typeof u.updatedAt!="string"||typeof u.previewHash!="string"))return u}function Bg(c){const{refs:r,setError:u,setProcessOpen:o,setInterview:f,setHumanGateCards:h,setArtifactCards:m,setStreaming:g,setStreamingAssistantId:y,setUnread:b,setOperationCards:A,setUsage:R,setMessages:V,setToolCalls:L}=c;return(H,X,ae,te)=>{const U=te?.replay===!0;if(H==="reconcile"){const C=typeof X.reason=="string"?X.reason:"cursor_expired";u(`会话事件窗口已过期(${C}),建议刷新历史或新建会话。`);return}const _=X.data&&typeof X.data=="object"?X.data:X,Q=typeof X.turnId=="string"?X.turnId:void 0;let W=ae;if(Q){const C=r.turnAssistantIdsRef.current.get(Q);C?W=C:r.turnAssistantIdsRef.current.set(Q,ae)}if(H==="interview-turn"){f(C=>({...C??{},interviewSessionId:typeof _.interviewSessionId=="string"?_.interviewSessionId:C?.interviewSessionId,taskId:typeof _.taskId=="string"?_.taskId:C?.taskId,state:typeof _.state=="string"?_.state:C?.state,question:_.question&&typeof _.question=="object"?_.question:void 0}));return}if(H==="draft"){f(C=>({...C??{},taskId:typeof _.taskId=="string"?_.taskId:C?.taskId,draft:_.draft&&typeof _.draft=="object"?_.draft:C?.draft,draftSha256:typeof _.draftSha256=="string"?_.draftSha256:C?.draftSha256,taskKindRecommendation:typeof _.taskKindRecommendation=="string"?_.taskKindRecommendation:C?.taskKindRecommendation}));return}if(H==="assessment"){f(C=>({...C??{},assessment:_}));return}if(H==="taskKind-confirmed"){f(C=>({...C??{},confirmedTaskKind:typeof _.taskKind=="string"?_.taskKind:C?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(H==="human-gate-card"){const C=Ig(_);C&&h(k=>Ug(k,C));return}if(H==="artifact-ref"){const C=zg(_);C&&m(k=>_g(k,C));return}if(H==="agent_start"){if(U&&Q!==void 0&&Q!==r.activeTurnIdRef.current)return;Q&&(r.activeTurnIdRef.current=Q),g(!0),y(W);return}if(H==="agent_settled"||H==="agent_end"){g(!1),y(null),H==="agent_settled"&&!U&&typeof document<"u"&&document.hidden&&b(C=>C+1),V(C=>C.filter(k=>!(k.id===W&&k.role==="assistant"&&!k.text.trim()))),L(C=>C.map(k=>k.status==="running"&&k.assistantMessageId===W?{...k,status:"error",finishedAt:Date.now()}:k));return}if(H==="operation-ref"||H==="operation-status"){const C=Lg(_);C&&A(k=>Hg(k,C));return}if(H==="usage"){if(U)return;const C=_,k=typeof C.responseKey=="string"&&C.responseKey?C.responseKey:void 0;if(k&&r.usageResponseKeysRef.current.has(k))return;k&&r.usageResponseKeysRef.current.add(k),R(Y=>{const ne=C.inputTokens??0,ee=C.outputTokens??0,M=C.cacheReadTokens??0,K=C.cacheWriteTokens??0,G=C.totalTokens??ne+ee+M+K;return{inputTokens:Y.inputTokens+ne,outputTokens:Y.outputTokens+ee,cacheReadTokens:Y.cacheReadTokens+M,cacheWriteTokens:Y.cacheWriteTokens+K,totalTokens:Y.totalTokens+G,cost:C.cost===void 0?Y.cost:(Y.cost??0)+C.cost}});return}if(H==="message_update"||H==="message_end"){if(U)return;const C=typeof _.text=="string"?_.text:"";V(k=>k.some(ne=>ne.id===W)?k.map(ne=>ne.id===W?{...ne,text:C}:ne):[...k,{id:W,role:"assistant",text:C,createdAt:Date.now()}])}else if(H==="tool_call"){const C=typeof _.toolCallId=="string"?_.toolCallId:Vl("t"),k=typeof _.toolName=="string"?_.toolName:"tool",Y=typeof _.argsPreview=="string"?_.argsPreview:"{}",ne=Date.now();L(ee=>ee.some(M=>M.id===C)?ee.map(M=>M.id===C?{...M,args:Y,status:"running",turnId:Q??M.turnId,assistantMessageId:W}:M):[...ee,{id:C,toolName:k,args:Y,status:"running",createdAt:ne,turnId:Q,assistantMessageId:W}])}else if(H==="tool_result"){const C=typeof _.toolCallId=="string"?_.toolCallId:Vl("r"),k=typeof _.toolName=="string"?_.toolName:"tool",Y=_.isError===!0,ne=typeof _.resultPreview=="string"?_.resultPreview:"{}",ee=Date.now();Y&&o(!0),L(M=>M.find(G=>G.id===C)?M.map(G=>G.id===C?{...G,result:ne,resultText:ne,status:Y?"error":"ok",finishedAt:ee,turnId:Q??G.turnId,assistantMessageId:G.assistantMessageId??W}:G):[...M,{id:C,toolName:k,result:ne,resultText:ne,status:Y?"error":"ok",createdAt:ee,finishedAt:ee,turnId:Q,assistantMessageId:W}])}else H==="error"&&u(typeof _.message=="string"?_.message:"chat error")}}const $r={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function qg(c){const{origin:r,refs:u,sessionId:o,setError:f,setProcessOpen:h}=c,[m,g]=v.useState([]),[y,b]=v.useState([]),[A,R]=v.useState([]),[V,L]=v.useState([]),[H,X]=v.useState(50),[ae,te]=v.useState(0),[U,_]=v.useState([]),[Q,W]=v.useState(null),[C,k]=v.useState(null),[Y,ne]=v.useState(!1),[ee,M]=v.useState($r),[K,G]=v.useState(!1),[q,F]=v.useState(null),[j]=v.useState(!1),z=v.useMemo(()=>Bg({refs:u,setError:f,setProcessOpen:h,setInterview:W,setHumanGateCards:_,setArtifactCards:L,setStreaming:G,setStreamingAssistantId:F,setUnread:te,setOperationCards:R,setUsage:M,setMessages:g,setToolCalls:b}),[u,f,h]),E=v.useCallback((ie,oe,me)=>{if(me?.targetSessionId&&u.sessionRef.current?.sessionId!==me.targetSessionId)return null;const Ee=ie.split(`
15
- `);let xe="message",Ke="",mt=null;for(const pe of Ee)pe.startsWith("event: ")?xe=pe.slice(7).trim():pe.startsWith("data: ")?Ke+=pe.slice(6):pe.startsWith("id: ")&&(mt=pe.slice(4).trim());if(!Ke)return mt;let ht;try{ht=JSON.parse(Ke)}catch{return mt}const pt=mt??(typeof ht.eventId=="string"?ht.eventId:null);if(pt){if(u.seenEventIdsRef.current.has(pt))return pt;u.seenEventIdsRef.current.add(pt)}return z(xe,ht,oe,me),mt??pt},[z,u]),le=v.useCallback(async(ie,oe)=>{const me=oe?.background===!0;me||ne(!0);try{const Ee=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(ie)}/context`,{credentials:"include"});if(!Ee.ok)return;const xe=await Ee.json();xe.context&&u.sessionRef.current?.sessionId===ie&&k(Ke=>lg(Ke,xe.context)?Ke:xe.context)}finally{me||ne(!1)}},[r,u]);v.useEffect(()=>{o&&le(o)},[o,le]),v.useEffect(()=>{if(!o)return;const ie=window.setTimeout(()=>{le(o,{background:!0})},350);return()=>window.clearTimeout(ie)},[o,A,U,Q,le]);const re=v.useMemo(()=>m.filter(ie=>ie.role!=="system"||j).slice(-H),[m,j,H]);v.useEffect(()=>{const ie=()=>{document.hidden||te(0)};return document.addEventListener("visibilitychange",ie),()=>document.removeEventListener("visibilitychange",ie)},[]);const S=v.useMemo(()=>{if(y.length===0)return null;const ie=y.filter(Ke=>Ke.status==="running"),oe=y.filter(Ke=>Ke.status==="error"),me=ie[ie.length-1];let Ee="完成",xe="ok";return oe.length>0?(Ee=`${oe.length} 出错`,xe="error"):ie.length>0&&(Ee=me?`正在调用 ${me.toolName}`:"运行中",xe="running"),{count:y.length,statusLabel:Ee,statusKind:xe}},[y]),w=v.useMemo(()=>Rg({messages:re,toolCalls:y,streaming:K,activeAssistantId:q}),[re,y,K,q]),P=v.useCallback(()=>{g([]),b([]),R([]),_([]),L([]),W(null),k(null),M($r),G(!1),F(null),te(0),X(50),u.usageResponseKeysRef.current=new Set},[u]),se=v.useCallback(ie=>{g(ie.messages),b(ie.toolCalls),R([]),_([]),L([]),k(null),W(null),M($r),u.usageResponseKeysRef.current=new Set,G(ie.streaming),F(null),te(0),X(50)},[u]);return{messages:m,setMessages:g,toolCalls:y,setToolCalls:b,operationCards:A,artifactCards:V,historyLimit:H,setHistoryLimit:X,unread:ae,humanGateCards:U,interview:Q,setInterview:W,taskContext:C,contextLoading:Y,usage:ee,streaming:K,setStreaming:G,streamingAssistantId:q,setStreamingAssistantId:F,visibleMessages:re,turnGroups:w,processSummary:S,applyChatSseEvent:z,applySseBlock:E,loadTaskContext:le,resetForNewSession:P,applyActivatedSession:se}}function Gg(c){const{origin:r,refs:u,setSession:o,thread:f,composer:h,browser:m,setError:g,setProcessOpen:y,setAutoScroll:b}=c,{applyActivatedSession:A,resetForNewSession:R,setMessages:V}=f,{setInput:L,setPendingImages:H}=h,{setPreviews:X,setActivePreviewPath:ae}=m,[te,U]=v.useState([]),_=v.useRef(0),Q=v.useCallback(()=>{u.streamingRef.current=!1,u.abortRef.current=null,u.assistantIdRef.current=null,u.lastEventIdRef.current=null,u.seenEventIdsRef.current=new Set,u.turnAssistantIdsRef.current=new Map,u.activeTurnIdRef.current=null,R(),L(""),H([]),X([]),ae(null),y(!1),b(!0)},[u,R,L,H,X,ae,y,b]),W=v.useCallback(async()=>{try{const M=await fetch(`${r}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!M.ok)return;const K=(await M.json()).sessions??[],G=K.slice(0,Kr),q=K.slice(Kr);if(U(G),q.length===0)return;await Promise.all(q.map(j=>fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(j.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Yt()}}).catch(()=>{})));const F=u.sessionRef.current?.sessionId;F&&q.some(j=>j.sessionId===F)&&(_.current+=1,u.sessionRef.current=null,Q(),o(null),window.localStorage.removeItem(Qt))}catch{}},[r,u,Q,o]),C=v.useCallback(async M=>{if(window.confirm("确定删除该会话?删除后不可恢复。"))try{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(M)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":Yt()}})).ok){g("删除会话失败");return}u.sessionRef.current?.sessionId===M&&(_.current+=1,u.sessionRef.current=null,Q(),o(null),window.localStorage.removeItem(Qt)),await W()}catch(K){g(K instanceof Error?K.message:String(K))}},[r,u,o,Q,W,g]),k=v.useCallback(async M=>{const K=++_.current;try{const G=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(M)}`,{credentials:"include"}),q=await G.json();if(!G.ok||!q.session)throw new Error(q.error?.message??"会话不可用");if(K!==_.current)return;const F={sessionId:q.session.sessionId,...Qr(q.session)};u.sessionRef.current=F,u.streamingRef.current=!!q.session.activeTurnId,u.activeTurnIdRef.current=q.session.activeTurnId??null,u.seenEventIdsRef.current=new Set,u.turnAssistantIdsRef.current=new Map,u.lastEventIdRef.current=null,o(F),u.assistantIdRef.current=null,u.abortRef.current=u.sessionAbortControllersRef.current.get(M)??null,H([]),X([]),L(q.session.composerDraft??"");const j=Ng(q.session.messages??[]);A({messages:j.messages,toolCalls:j.toolCalls,streaming:!!q.session.activeTurnId}),window.localStorage.setItem(Qt,M),ae(null)}catch(G){if(K!==_.current)return;g(G instanceof Error?G.message:String(G))}},[r,u,o,H,X,L,A,ae,g]);v.useEffect(()=>{W()},[W]),v.useEffect(()=>{let M=!1;const K=window.localStorage.getItem(Qt);if(!K)return;const G=++_.current;return(async()=>{try{const q=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(K)}`,{credentials:"include"});if(!q.ok){window.localStorage.removeItem(Qt);return}const F=await q.json();if(M||G!==_.current||!F.session)return;const j={sessionId:F.session.sessionId,...Qr(F.session)};u.sessionRef.current=j,u.activeTurnIdRef.current=F.session.activeTurnId??null,u.seenEventIdsRef.current=new Set,u.turnAssistantIdsRef.current=new Map,u.lastEventIdRef.current=null,o(j),L(F.session.composerDraft??""),V((F.session.messages??[]).filter(z=>z.role==="user"||z.role==="assistant").map(z=>({id:z.id,role:z.role,text:z.text,createdAt:Date.parse(z.at)||Date.now()})))}catch{}})(),()=>{M=!0}},[r,u,o,L,V]);const Y=v.useCallback(async M=>{const K=++_.current;g(null);try{const G=await fetch(`${r}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt()},credentials:"include",body:JSON.stringify(M??{})});if(!G.ok){const j=await G.json().catch(()=>({}));throw new Error(j.error?.message??`HTTP ${G.status}`)}const q=await G.json(),F={sessionId:q.sessionId,...q.model?{model:q.model}:{}};return W(),K!==_.current?null:(Q(),u.sessionRef.current=F,window.localStorage.setItem(Qt,F.sessionId),o(F),F)}catch(G){return K!==_.current||g(G instanceof Error?G.message:String(G)),null}},[r,u,o,g,Q,W]),ne=v.useCallback(async()=>{const M=u.sessionRef.current;if(!(!M||u.streamingRef.current))try{const K=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(M.sessionId)}/compact`,{method:"POST",credentials:"include",headers:{"x-loop-console-confirmation":Yt()}}),G=await K.json().catch(()=>({}));if(!K.ok){g(G.error?.message??"上下文压缩失败");return}g(null)}catch(K){g(K instanceof Error?K.message:"上下文压缩失败")}},[r,u,g]);return{sessionList:te,activateSession:k,refreshSessionList:W,deleteSession:C,createSession:Y,updateSession:async(M,K)=>{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(M)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Yt()},body:JSON.stringify(K)})).ok){g("会话更新失败");return}await W(),K.state==="archived"&&u.sessionRef.current?.sessionId===M&&(_.current+=1,u.sessionRef.current=null,Q(),o(null),window.localStorage.removeItem(Qt))},compactSession:ne}}function Kl(c){const r=(c??"").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 Yg(c){const{origin:r,refs:u,session:o,thread:f,composer:h,setError:m,setAutoScroll:g}=c,{applySseBlock:y,setMessages:b,setStreaming:A,setStreamingAssistantId:R,streaming:V}=f,{setInput:L,setPendingImages:H}=h,X=v.useCallback(async(U,_)=>{const Q=u.sessionRef.current;if(!Q||!U.trim()&&_.length===0||u.streamingRef.current)return;const W={id:Vl("u"),role:"user",text:U.trim(),createdAt:Date.now()};b(Y=>[...Y,W]),L(""),u.reconnectAbortRef.current?.abort(),u.reconnectAbortRef.current=null,u.streamingRef.current=!0,A(!0),g(!0),m(null);const C=Vl("a");u.assistantIdRef.current=C,R(C),b(Y=>[...Y,{id:C,role:"assistant",text:"",createdAt:Date.now()}]);const k=new AbortController;u.abortRef.current=k,u.sessionAbortControllersRef.current.set(Q.sessionId,k),u.inlineStreamSessionIdsRef.current.add(Q.sessionId);try{const Y=await fetch(`${r}/api/operator/v1/chat/sessions/${Q.sessionId}/prompt`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt(),Accept:"text/event-stream"},credentials:"include",body:JSON.stringify({text:U.trim()||"请查看附件图片。",images:_.map(({type:K,mimeType:G,data:q})=>({type:K,mimeType:G,data:q}))}),signal:k.signal});if(!Y.ok||!Y.body){const K=await Y.json().catch(()=>({}));throw new Error(K.error?.message??`HTTP ${Y.status}`)}const ne=Y.body.getReader(),ee=new TextDecoder;let M="";for(;;){const{done:K,value:G}=await ne.read();if(K)break;M+=ee.decode(G,{stream:!0});const q=M.split(`
16
-
17
- `);M=q.pop()??"";for(const F of q){const j=y(F,C,{targetSessionId:Q.sessionId});j&&(u.lastEventIdRef.current=j)}}}catch(Y){Y?.name==="AbortError"||u.sessionRef.current?.sessionId===Q.sessionId&&m(Kl(Y instanceof Error?Y.message:String(Y)))}finally{u.sessionRef.current?.sessionId===Q.sessionId&&(u.streamingRef.current=!1,A(!1),R(null),u.abortRef.current=null,u.assistantIdRef.current=null,H([])),u.inlineStreamSessionIdsRef.current.delete(Q.sessionId),u.sessionAbortControllersRef.current.delete(Q.sessionId)}},[r,u,y,b,A,R,L,H,g,m]),ae=v.useCallback(()=>{u.abortRef.current?.abort(),u.streamingRef.current=!1,A(!1),R(null),b(U=>U.filter(_=>!(_.id===u.assistantIdRef.current&&_.role==="assistant"&&!_.text.trim())))},[u,A,R,b]);v.useEffect(()=>{if(!o||!V)return;const U=o.sessionId;let _=!1;const Q=async()=>{if(!_)try{const Y=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(U)}/state`,{credentials:"include"});if(!Y.ok)return;const ee=(await Y.json()).state?.activeTurnId??null;if(u.activeTurnIdRef.current=ee,ee!==null||!u.streamingRef.current||u.inlineStreamSessionIdsRef.current.has(U))return;const M=u.assistantIdRef.current;u.streamingRef.current=!1,A(!1),R(null),u.abortRef.current?.abort(),u.abortRef.current=null,u.assistantIdRef.current=null,b(K=>K.filter(G=>!(G.id===M&&G.role==="assistant"&&!G.text.trim())))}catch{}},W=()=>{document.visibilityState==="visible"&&Q()},C=()=>{Q()},k=setInterval(()=>{Q()},15e3);return document.addEventListener("visibilitychange",W),window.addEventListener("online",C),()=>{_=!0,clearInterval(k),document.removeEventListener("visibilitychange",W),window.removeEventListener("online",C)}},[r,u,o,V,A,R,b]);const te=v.useCallback(async(U,_)=>{for(;!_.aborted;)try{const Q={Accept:"text/event-stream"},W=u.lastEventIdRef.current;W&&(Q["Last-Event-ID"]=W);const C=await fetch(`${r}/api/operator/v1/chat/sessions/${U}/events`,{headers:Q,credentials:"include",signal:_});if(!C.ok||!C.body){if(C.status===404)return;await Gr(2e3,_);continue}const k=C.body.getReader(),Y=new TextDecoder;let ne="",ee=u.assistantIdRef.current;for(ee||(ee=Vl("a"),u.assistantIdRef.current=ee);;){const{done:M,value:K}=await k.read();if(M)break;ne+=Y.decode(K,{stream:!0});const G=ne.split(`
18
-
19
- `);ne=G.pop()??"";for(const q of G){const F=y(q,ee,{replay:!0,targetSessionId:U});F&&(u.lastEventIdRef.current=F)}}await Gr(1e3,_)}catch{if(_.aborted)return;await Gr(2e3,_)}},[r,u,y]);return v.useEffect(()=>{if(!o||V&&u.inlineStreamSessionIdsRef.current.has(o.sessionId))return;const U=new AbortController;return u.reconnectAbortRef.current=U,te(o.sessionId,U.signal),()=>{U.abort(),u.reconnectAbortRef.current===U&&(u.reconnectAbortRef.current=null)}},[o,V,te,u]),{sendPrompt:X,handleStop:ae,openEventsStream:te}}function $g(c){const{origin:r,refs:u,thread:o,setError:f}=c,{interview:h,setInterview:m}=o,[g,y]=v.useState(""),b=v.useCallback(async()=>{const V=u.sessionRef.current;if(!V)return;const L=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!L)return;const H=await fetch(`${r}/api/operator/v1/chat/sessions/${V.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt()},credentials:"include",body:JSON.stringify({taskId:L})}),X=await H.json();if(!H.ok){f(X.error?.message??`HTTP ${H.status}`);return}m({interviewSessionId:X.interview?.sessionId,taskId:L,state:X.interview?.state,question:X.question,draft:X.draft?.draft,draftSha256:X.draft?.draftSha256,assessment:X.assessment})},[r,u,m,f]),A=v.useCallback(async V=>{const L=u.sessionRef.current;if(!L||!h?.interviewSessionId||!h.question)return;const H=await fetch(`${r}/api/operator/v1/chat/sessions/${L.sessionId}/interviews/${h.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt()},credentials:"include",body:JSON.stringify({questionId:h.question.id,response:V,...V==="override"?{text:g}:{}})}),X=await H.json();if(!H.ok){f(X.error?.message??`HTTP ${H.status}`);return}m(ae=>({...ae??{},state:X.interview?.state,question:X.question,draft:X.draft?.draft,draftSha256:X.draft?.draftSha256,assessment:X.assessment,taskKindRecommendation:X.taskKindRecommendation??ae?.taskKindRecommendation})),y("")},[r,u,h,g,m,f]),R=v.useCallback(async()=>{const V=u.sessionRef.current;if(!V||!h?.interviewSessionId||!h.taskKindRecommendation)return;const L=await fetch(`${r}/api/operator/v1/chat/sessions/${V.sessionId}/interviews/${h.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":Yt()},credentials:"include",body:JSON.stringify({taskKind:h.taskKindRecommendation})}),H=await L.json();if(!L.ok){f(H.error?.message??`HTTP ${L.status}`);return}m(X=>({...X??{},confirmedTaskKind:X?.taskKindRecommendation,taskKindRecommendation:void 0,draft:H.draft?.draft,draftSha256:H.draft?.draftSha256,assessment:H.assessment}))},[r,u,h,m,f]);return{interviewAnswer:g,setInterviewAnswer:y,startInterview:b,answerInterview:A,confirmTaskKind:R}}function Xg(c){const{origin:r,refs:u,sessionId:o,setError:f}=c,[h,m]=v.useState({}),[g,y]=v.useState(new Set),[b,A]=v.useState(null),[R,V]=v.useState([]),[L,H]=v.useState(null),[X,ae]=v.useState(!1),te=v.useCallback(async(W="")=>{try{A(null);const C=await fetch(`${r}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(W)}`,{credentials:"include"}),k=await C.json();if(!C.ok)throw new Error(k.error?.message??"无法读取仓库目录");m(Y=>({...Y,[W]:k.data?.entries??[]}))}catch(C){A(C instanceof Error?C.message:String(C))}},[r]);v.useEffect(()=>{te()},[te]);const U=v.useCallback(async W=>{ae(!0);try{const C=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(W)}`,{credentials:"include"}),k=await C.json();if(!C.ok||!k.data)throw new Error(k.error?.message??"无法预览文件");V(Y=>{const ne=[...Y.filter(M=>M.path!==k.data.path),k.data],ee=u.sessionRef.current?.sessionId;return ee&&window.localStorage.setItem(`${Qt}.previews.${ee}`,JSON.stringify(ne.map(M=>M.path))),ne}),H(k.data.path)}catch(C){f(C instanceof Error?C.message:String(C))}finally{ae(!1)}},[r,u,f]);v.useEffect(()=>{if(!o)return;let W=[];try{const C=JSON.parse(window.localStorage.getItem(`${Qt}.previews.${o}`)??"[]");Array.isArray(C)&&(W=C.filter(k=>typeof k=="string").slice(0,10))}catch{}W.length&&Promise.all(W.map(async C=>{const k=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(C)}`,{credentials:"include"});if(k.ok)return(await k.json()).data})).then(C=>{if(u.sessionRef.current?.sessionId!==o)return;const k=C.filter(Y=>!!Y);V(k),H(k.at(-1)?.path??null)})},[r,o,u]);const _=v.useCallback(W=>{y(C=>{const k=new Set(C);return k.has(W)?k.delete(W):k.add(W),k}),h[W]||te(W)},[h,te]),Q=v.useCallback(W=>{V(C=>{const k=C.filter(Y=>Y.path!==W);return o&&window.localStorage.setItem(`${Qt}.previews.${o}`,JSON.stringify(k.map(Y=>Y.path))),k}),H(C=>C===W?R.find(k=>k.path!==W)?.path??null:C)},[R,o]);return{tree:h,expandedDirs:g,treeError:b,previews:R,activePreviewPath:L,setActivePreviewPath:H,previewLoading:X,setPreviews:V,loadTree:te,openPreview:U,closePreview:Q,toggleDir:_}}function Kg(c){const{origin:r,sessionId:u,refs:o,setError:f}=c,[h,m]=v.useState(""),[g,y]=v.useState([]),[b,A]=v.useState([]),[R,V]=v.useState(!1),[L,H]=v.useState(0),X=v.useRef(null),ae=v.useCallback(k=>{m(k),V(k.startsWith("/")),H(0)},[]);v.useEffect(()=>{if(!u)return;const k=h.slice(0,X.current?.selectionStart??h.length).match(/(?:^|\s)@([^\s@]*)$/);if(!k){y([]);return}const Y=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(u)}/files?q=${encodeURIComponent(k[1]??"")}`).then(ne=>ne.ok?ne.json():null).then(ne=>y((ne?.files??[]).map(ee=>ee.path)))},150);return()=>window.clearTimeout(Y)},[r,u,h]);const te=v.useCallback(k=>{const Y=X.current?.selectionStart??h.length,ee=h.slice(0,Y).search(/@[^\s@]*$/);ee<0||(m(`${h.slice(0,ee)}@${k} ${h.slice(Y)}`),y([]))},[h]),U=v.useCallback(k=>{for(const Y of Array.from(k).slice(0,4)){if(!Y.type.startsWith("image/")||Y.size>5*1024*1024){f("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const ne=new FileReader;ne.onload=()=>{const ee=String(ne.result??""),M=ee.slice(ee.indexOf(",")+1);A(K=>[...K,{name:Y.name,type:"image",mimeType:Y.type,data:M}].slice(0,4))},ne.readAsDataURL(Y)}},[f]),_=v.useCallback(k=>{A(Y=>Y.filter(ne=>ne!==k))},[]);v.useLayoutEffect(()=>{const k=X.current;k&&(k.style.height="auto",k.style.height=`${Math.min(k.scrollHeight,280)}px`)},[h]),v.useEffect(()=>{if(!u)return;const k=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(u)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Yt()},body:JSON.stringify({text:h})})},400);return()=>window.clearTimeout(k)},[r,u,h]);const Q=v.useMemo(()=>h.startsWith("/")?Pr.filter(k=>k.command.startsWith(h.trim().split(/\s+/,1)[0].toLowerCase())):[],[h]),W=v.useCallback(()=>{o.isComposingRef.current=!0},[o]),C=v.useCallback(()=>{o.isComposingRef.current=!1,o.compositionEndedAtRef.current=Date.now()},[o]);return{input:h,setInput:m,handleInputChange:ae,fileOptions:g,pendingImages:b,setPendingImages:A,addImagesFromFiles:U,removeImage:_,shortcutOpen:R,setShortcutOpen:V,shortcutIndex:L,setShortcutIndex:H,filteredShortcuts:Q,insertFileReference:te,textareaRef:X,onCompositionStart:W,onCompositionEnd:C}}const Qg=[{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 Vg(c){if(!c)return null;const r=(c.tools??[]).map(o=>({toolId:o.toolId,action:o.action,description:o.description,kind:o.kind??"read",cli:o.cli})),u=[...Qg];return{explore:u,operator:r,total:u.length+r.length}}function Zg(c){const{origin:r,session:u,setSession:o,refs:f,setError:h}=c,[m,g]=v.useState(null),[y,b]=v.useState([]),[A,R]=v.useState([]),[V,L]=v.useState(null),[H,X]=v.useState(!1),[ae,te]=v.useState(!1),U=v.useRef(null),_=v.useRef(null),Q=v.useCallback(async()=>{try{const M=await fetch(`${r}/api/operator/v1/chat/capabilities`);if(!M.ok)return;const K=await M.json();g(K)}catch{}},[r]);v.useEffect(()=>{Q()},[Q]),v.useEffect(()=>{if(!u){b([]),L(null);return}const M=u.sessionId,K=`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(M)}`;fetch(`${K}/models`,{credentials:"include"}).then(G=>G.ok?G.json():null).then(G=>{!G||f.sessionRef.current?.sessionId!==M||(b(G.models??[]),R(G.thinkingLevels??[]))}),fetch(`${K}/runtime-context`,{credentials:"include"}).then(G=>G.ok?G.json():null).then(G=>{if(!G?.context||f.sessionRef.current?.sessionId!==M)return;L(G.context);const q=G.context,F={model:q.model,thinkingLevel:q.thinkingLevel};o(j=>{if(!j||j.sessionId!==M||bm(j,F))return j;const z=Vr(j,F);return f.sessionRef.current=z,z})})},[r,u?.sessionId,f,o]);const W=v.useCallback(async M=>{if(!u)return;const K=u.sessionId,G=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(u.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Yt()},body:JSON.stringify(M)});if(!G.ok){f.sessionRef.current?.sessionId===K&&h("模型或思考等级切换失败");return}const q=await G.json().catch(()=>({}));q.session&&f.sessionRef.current?.sessionId===K&&(o(F=>{if(!F||F.sessionId!==K)return F;const j=Qr(q.session);if(bm(F,j))return F;const z=Vr(F,j);return f.sessionRef.current=z,z}),L(F=>F&&{...F,...q.session.modelProvider&&q.session.modelId?{model:{provider:q.session.modelProvider,modelId:q.session.modelId}}:{},...q.session.thinkingLevel?{thinkingLevel:q.session.thinkingLevel}:M.thinkingLevel?{thinkingLevel:M.thinkingLevel}:{}}))},[r,u,f,o,h]);v.useEffect(()=>{if(!H)return;const M=G=>{const q=U.current;q&&G.target instanceof Node&&!q.contains(G.target)&&X(!1)},K=G=>{G.key==="Escape"&&X(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",K),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",K)}},[H]),v.useEffect(()=>{if(!ae)return;const M=G=>{const q=_.current;q&&G.target instanceof Node&&!q.contains(G.target)&&te(!1)},K=G=>{G.key==="Escape"&&te(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",K),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",K)}},[ae]);const C=v.useMemo(()=>Vg(m),[m]),k=u?.model??V?.model,Y=k?da(k.provider,k.modelId):"",ne=u?.thinkingLevel??V?.thinkingLevel??"",ee=!Y||y.some(M=>da(M.provider,M.id)===Y);return{capabilities:m,models:y,thinkingLevels:A,runtimeContext:V,toolsOpen:H,setToolsOpen:X,runtimeContextOpen:ae,setRuntimeContextOpen:te,toolsMenuRef:U,runtimeContextMenuRef:_,switchRuntime:W,toolCatalog:C,activeModel:k,activeModelRef:Y,activeThinkingLevel:ne,activeModelListed:ee}}function Jg(c){const{origin:r,surface:u="standalone"}=c,o=u==="workspace",f=Og(),[h,m]=v.useState(null),[g,y]=v.useState(null),[b,A]=v.useState(!0),[R,V]=v.useState(!0),[L,H]=v.useState(!1),X=v.useRef(null),ae=v.useRef(null),te=v.useRef(null),U=Kg({origin:r,sessionId:g?.sessionId,refs:f,setError:m}),_=Xg({origin:r,refs:f,sessionId:g?.sessionId,setError:m}),Q=qg({origin:r,refs:f,sessionId:g?.sessionId,setError:m,setProcessOpen:H}),W=Gg({origin:r,refs:f,setSession:y,thread:Q,composer:{setInput:U.setInput,setPendingImages:U.setPendingImages},browser:{setPreviews:_.setPreviews,setActivePreviewPath:_.setActivePreviewPath},setError:m,setProcessOpen:H,setAutoScroll:V}),C=Yg({origin:r,refs:f,session:g,thread:Q,composer:{setInput:U.setInput,setPendingImages:U.setPendingImages},setError:m,setAutoScroll:V}),k=$g({origin:r,refs:f,thread:Q,setError:m}),Y=Zg({origin:r,session:g,setSession:y,refs:f,setError:m}),{sendPrompt:ne,handleStop:ee}=C,M=v.useCallback(async E=>{await ne(E,U.pendingImages)},[ne,U.pendingImages]),K=v.useCallback(()=>{const E=ae.current;if(!E)return;const le=E.scrollHeight-E.scrollTop-E.clientHeight<80;V(le)},[]);v.useEffect(()=>{R&&X.current?.scrollIntoView({behavior:"smooth",block:"end"})},[Q.messages,R,Q.streaming]);const G=v.useCallback(E=>{const le=Qv(E);U.setInput(""),U.setShortcutOpen(!1),le&&(le.action==="focus:interview"?k.startInterview():le.action==="show-help"?m(`可用 shortcuts:${Pr.map(re=>re.command).join("、")}`):le.action.startsWith("focus-panel:")?te.current?.scrollIntoView({behavior:"smooth",block:"nearest"}):m(`未知 shortcut:${le.command}`))},[U.setInput,U.setShortcutOpen,k.startInterview]),q=v.useCallback(E=>{if(U.shortcutOpen&&U.filteredShortcuts.length>0&&!E.nativeEvent.isComposing){if(E.key==="ArrowDown"||E.key==="ArrowUp"){E.preventDefault(),U.setShortcutIndex(S=>(S+(E.key==="ArrowDown"?1:U.filteredShortcuts.length-1))%U.filteredShortcuts.length);return}if(E.key==="Escape"){E.preventDefault(),U.setShortcutOpen(!1);return}if(E.key==="Enter"){E.preventDefault(),G(U.filteredShortcuts[U.shortcutIndex]?.command??U.filteredShortcuts[0].command);return}}const le=Date.now()-f.compositionEndedAtRef.current<100,re=f.isComposingRef.current||E.nativeEvent.isComposing;if(E.key==="Enter"&&!E.shiftKey&&(re||le)){le&&E.preventDefault();return}if(E.key==="Enter"&&!E.shiftKey){E.preventDefault(),M(U.input);return}},[U.input,U.shortcutOpen,U.filteredShortcuts,U.shortcutIndex,U.setShortcutIndex,U.setShortcutOpen,f,M,G]),F=Q.visibleMessages.length>0||Q.operationCards.length>0||Q.humanGateCards.length>0||Q.artifactCards.length>0||!!Q.interview,j=c.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":c.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,z=s.jsx($v,{origin:r,open:b,activeSessionId:g?.sessionId,sessions:W.sessionList,tree:_.tree,expanded:_.expandedDirs,treeError:_.treeError,onToggleOpen:()=>A(E=>!E),onCreate:()=>{W.createSession()},onActivate:E=>{W.activateSession(E)},onRename:(E,le)=>{W.updateSession(E,{title:le})},onSetState:(E,le)=>{W.updateSession(E,{state:le})},onDelete:E=>{W.deleteSession(E)},onRefreshTree:()=>{_.loadTree()},onToggleDir:_.toggleDir,onInsert:E=>U.setInput(le=>`${le}${le&&!le.endsWith(" ")?" ":""}@${E} `),onPreview:E=>{_.openPreview(E)}});return s.jsxs("div",{className:"oc-shell",children:[o?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。"]})]}),j&&s.jsx("div",{className:"oc-alert oc-alert-warning",children:j}),h&&s.jsxs("div",{className:"oc-alert oc-alert-error",children:[s.jsx("strong",{children:"出错了:"}),h]}),g?s.jsxs("div",{className:`oc-workspace${L?" has-process":""}`,children:[z,s.jsxs("div",{className:`oc-main${F?"":" is-landing"}`,children:[s.jsx(Kv,{previews:_.previews,activePath:_.activePreviewPath,loading:_.previewLoading,onActivate:_.setActivePreviewPath,onClose:_.closePreview}),s.jsx(Ag,{scrollContainerRef:ae,messagesEndRef:X,onScroll:K,hasThread:F,readiness:c.readiness,streaming:Q.streaming,streamingAssistantId:Q.streamingAssistantId,messagesCount:Q.messages.length,visibleCount:Q.visibleMessages.length,onLoadMore:()=>Q.setHistoryLimit(E=>E+50),turnGroups:Q.turnGroups,interview:Q.interview,interviewAnswer:k.interviewAnswer,onInterviewAnswerChange:k.setInterviewAnswer,onAnswerInterview:E=>{k.answerInterview(E)},onConfirmTaskKind:()=>{k.confirmTaskKind()},humanGateCards:Q.humanGateCards,operationCards:Q.operationCards,artifactCards:Q.artifactCards,origin:r,sessionId:g.sessionId,onNavigateWorkspace:c.onNavigateWorkspace,onSuggest:E=>{M(E)}}),s.jsx(wg,{composer:U,streaming:Q.streaming,hasThread:F,onSend:E=>{M(E)},onStop:ee,onKeyDown:q,onRunShortcut:G,models:Y.models,activeModel:Y.activeModel,activeModelRef:Y.activeModelRef,activeModelListed:Y.activeModelListed,activeThinkingLevel:Y.activeThinkingLevel,thinkingLevels:Y.thinkingLevels,onSwitchRuntime:E=>{Y.switchRuntime(E)},usage:Q.usage,unread:Q.unread,onCompact:()=>{W.compactSession()},toolCatalog:Y.toolCatalog,toolsOpen:Y.toolsOpen,onToggleTools:()=>{Y.setToolsOpen(E=>!E),Y.toolsOpen||H(!1)},onCloseTools:()=>Y.setToolsOpen(!1),toolsMenuRef:Y.toolsMenuRef,processSummary:Q.processSummary,processOpen:L,onToggleProcess:()=>{H(E=>!E),L||Y.setToolsOpen(!1)},runtimeContext:Y.runtimeContext,runtimeContextOpen:Y.runtimeContextOpen,onToggleRuntimeContext:()=>Y.setRuntimeContextOpen(E=>!E),onCloseRuntimeContext:()=>Y.setRuntimeContextOpen(!1),runtimeContextMenuRef:Y.runtimeContextMenuRef})]}),L&&s.jsx(Dg,{toolCalls:Q.toolCalls,onClose:()=>H(!1)})]}):s.jsxs("div",{className:"oc-workspace",children:[z,s.jsx("div",{className:"oc-main is-landing",children:s.jsx("div",{className:"oc-messages is-empty",children:s.jsx(Em,{mode:"no-session",readiness:c.readiness,onSuggest:async E=>{await W.createSession()&&await M(E)},onCreateSession:()=>{W.createSession()}})})})]})]})}function Fg(c){return c==="validate"||c==="apply"||c==="spine"?"contract":c}const Hm="X-Loop-Console-Confirmation",Lm="agent-worker console doctor --repo .",Zr=[{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)"}],Bm={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},Wg={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},qm={low:"低",medium:"中",high:"高"},Gm={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账"},Pg={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function hi(c){return Pg[c]??c}function Ym(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function gi(c){return`${c}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function eu(c,r={},u){const o={"Content-Type":"application/json",[Hm]:Ym()},f=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:o,body:JSON.stringify({action:c,actionParams:r,...u?{clientRequestId:u}:{}})});let h={};try{h=await f.json()}catch{h={ok:!1,error:{code:"INVALID_INPUT",message:"操作响应不是合法 JSON"}}}return{status:f.status,body:h}}const ey=new Set(["runDag","dagRerun","standaloneTaskRerun"]);function Xr(c){const r=(c.blockedReasons??[]).map(String),u=(c.blockingNodes??[]).map(f=>[f.nodeId,f.reasonCode].filter(Boolean).join(":")),o=[...r,...u].filter(Boolean);return o.length===0?"从节点重跑不具备安全资格(子图含 writer / unsafe shell / decision-gate 等)。可改用「完整重跑任务」,或另选只读安全子图的起始节点。":`从节点重跑不具备安全资格:${o.slice(0,6).join("; ")}${o.length>6?"…":""}。可改用「完整重跑任务」。`}async function xm(c,r=9e4){const u=Date.now();for(;Date.now()-u<r;){const o=await fetch(`/api/operator/v1/operations/${encodeURIComponent(c)}`,{credentials:"same-origin"});if(!o.ok)return null;const f=await o.json(),h=f.operation??f,m=h.state??"";if(m==="succeeded"||m==="failed"||m==="needs-reconcile"||m==="timed-out")return h;await new Promise(g=>setTimeout(g,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const ty={};function ny(){const[c,r]=v.useState(()=>Mm({env:ty?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[u,o]=v.useState(null),[f,h]=v.useState("setup-required"),[m,g]=v.useState(null),[y,b]=v.useState(null),[A,R]=v.useState(!1),[V,L]=v.useState(!1),[H,X]=v.useState(null),[ae,te]=v.useState(null),[U,_]=v.useState(null),[Q,W]=v.useState(null),[C,k]=v.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[Y,ne]=v.useState("setup"),ee=v.useCallback(F=>{ne(j=>Fg(typeof F=="function"?F(j):F))},[]),M=f==="setup-required",K=f==="degraded",G=v.useCallback(F=>{F!==c&&(X(null),_(null),te(null)),r(F)},[c]),q=v.useCallback(async()=>{try{const j=await(await fetch("/api/health")).json();o(j);const z=j.piReadiness??"setup-required";h(z),b(null),ee(z==="ready"||z==="degraded"?E=>E==="setup"?"import-prd":E:"setup")}catch(F){b(F instanceof Error?F.message:String(F))}try{const j=await(await fetch("/api/operator/v1/readiness")).json();g(j),j.state&&h(j.state)}catch{}},[ee]);return{nav:c,setNav:r,selectNav:G,health:u,readiness:f,setReadiness:h,readinessReport:m,healthError:y,loadHealth:q,busy:A,setBusy:R,observeBusy:V,setObserveBusy:L,opError:H,setOpError:X,opMessage:ae,setOpMessage:te,opErrorCode:U,setOpErrorCode:_,lastOpState:Q,setLastOpState:W,layers:C,setLayers:k,step:Y,setStep:ee,setupBlocked:M,degraded:K}}function ay(c){const{shell:r,applyInterviewPayload:u}=c,{setBusy:o,setOpError:f,setOpErrorCode:h,setOpMessage:m,setReadiness:g,setStep:y,setNav:b,setLastOpState:A,setLayers:R,step:V,nav:L}=r,[H,X]=v.useState(null),[ae,te]=v.useState([]),[U,_]=v.useState(!0),Q=v.useRef(null),[W,C]=v.useState(null),[k,Y]=v.useState(null),ne=v.useCallback(async(q,F={},j)=>{o(!0),f(null),h(null),m(null);try{const{status:z,body:E}=await eu(q,F,j?.clientRequestId);if(z===412||E.error?.code==="PI_SETUP_REQUIRED")return f(Kl(E.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),h(E.error?.code??"PI_SETUP_REQUIRED"),g("setup-required"),y("setup"),b("models"),E;if(z>=400||E.ok===!1)return f(Kl(E.error?.message??E.message??`操作失败(HTTP ${z})`)),h(E.error?.code??String(z)),A(E.state??`failed:${z}`),R(S=>({...S,command:E.error?.message??`failed:${E.error?.code??z}`})),E;if(E.operationId){const S=window.localStorage.getItem(Qt)?.trim();if(S&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(S)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[Hm]:Ym()},body:JSON.stringify({operationId:E.operationId})}).then(w=>{w.ok||console.warn("Operator Chat operation link failed",w.status)}).catch(w=>console.warn("Operator Chat operation link failed",w)),X(E.operationId),A(E.state??"accepted"),R(w=>({...w,command:E.state??"accepted",dag:q==="runDag"?"running":w.dag})),ey.has(q)){_(!0),m(`操作已接受,后台运行中:${E.operationId}(请看事件流;可同时打开 Observe)`);const w=E.operationId;xm(w,30*6e4).then(P=>{if(P){if(A(P.state??null),P.state==="failed"||P.state==="needs-reconcile"||P.state==="timed-out"){f(Kl(P.errorMessage??P.stderrPreview??`操作失败:${P.state}`)),h(P.errorCode??P.state??null),R(se=>({...se,command:`failed:${P.errorCode??P.state}`}));return}P.state==="succeeded"&&(m(`${q} 已成功`),R(se=>({...se,command:"succeeded"})))}})}else{m(`操作已接受:${E.operationId}`);const w=await xm(E.operationId);if(w){if(A(w.state??null),w.state==="failed"||w.state==="needs-reconcile"||w.state==="timed-out")return f(Kl(w.errorMessage??w.stderrPreview??`操作失败:${w.state}`)),h(w.errorCode??w.state??null),R(oe=>({...oe,command:`failed:${w.errorCode??w.state}`})),{ok:!1,operationId:E.operationId,state:w.state,error:{code:w.errorCode??w.state??"INTERNAL_ERROR",message:w.errorMessage??w.stderrPreview??`操作失败:${w.state}`}};m(w.errorMessage?`${q}:${w.errorMessage}`:`${q} 已成功`),R(oe=>({...oe,command:w.state??"succeeded"}));const P=w.result??{},se={ok:!0,operationId:E.operationId,state:w.state??"succeeded",result:P};(q==="interviewStart"||q==="interviewTurn"||q==="interviewSkip")&&u(P);const ie=P.confirmation;return ie?.confirmationId&&(C(ie.confirmationId),Y(P)),j?.advanceTo&&y(j.advanceTo),se}}}else m(`${q} 已完成`),A(E.state??"succeeded"),R(S=>({...S,command:"succeeded",verification:q==="contractValidate"||q==="spineCheck"?"ran":S.verification}));const le=E.result??{};(q==="interviewStart"||q==="interviewTurn"||q==="interviewSkip")&&u(le);const re=le.confirmation;return re?.confirmationId&&(C(re.confirmationId),Y(le)),j?.advanceTo&&y(j.advanceTo),E}catch(z){f(z instanceof Error?z.message:String(z));return}finally{o(!1)}},[u,o,f,h,m,g,y,b,A,R]),ee=v.useCallback(q=>{if(!q)return"无响应";if(q.error?.message)return q.error.message;if(q.message)return q.message;const F=q.result;if(F&&typeof F=="object")try{return JSON.stringify(F).slice(0,1200)}catch{return"已返回结果"}return q.ok===!1?"失败":"成功"},[]),M=v.useCallback(q=>{if(!q||q.ok===!1||q.error)return!1;const F=q.result;if(!F)return!0;if(typeof F.valid=="boolean")return F.valid;const j=F.result;return j&&typeof j.valid=="boolean"?j.valid:!0},[]),K=v.useCallback(async q=>{Q.current?.abort();const F=new AbortController;Q.current=F,te(j=>[...j,`开始跟随事件流 ${q}`]);try{const j=await fetch(`/api/operator/v1/operations/${encodeURIComponent(q)}/events`,{credentials:"same-origin",signal:F.signal});if(!j.ok||!j.body){te(re=>[...re,`事件流 HTTP ${j.status}`]);return}const z=j.body.getReader(),E=new TextDecoder;let le="";for(;U;){const{done:re,value:S}=await z.read();if(re)break;le+=E.decode(S,{stream:!0});const w=le.split(`
20
-
21
- `);le=w.pop()??"";for(const P of w){const se=P.split(`
22
- `).find(oe=>oe.startsWith("data:"));if(!se)continue;const ie=se.slice(5).trim();te(oe=>[...oe.slice(-80),ie.slice(0,240)])}}}catch(j){j.name!=="AbortError"&&te(z=>[...z,`事件流错误:${j instanceof Error?j.message:String(j)}`])}},[U]);v.useEffect(()=>(H&&U&&(V==="run"||L==="recovery")&&K(H),()=>Q.current?.abort()),[H,U,V,L,K]);const G=v.useCallback(()=>{_(!1),Q.current?.abort(),m("已停止跟随日志(未取消子进程)")},[m]);return{runAction:ne,summarizeEnvelope:ee,isActionSuccess:M,operationId:H,setOperationId:X,sseLog:ae,followSse:U,setFollowSse:_,stopFollowSse:G,confirmationId:W,setConfirmationId:C,confirmationDetails:k,setConfirmationDetails:Y}}const Jr=8*1024*1024,ly=10*1024*1024,yi=8,sy=".md,.markdown,.txt,text/markdown,text/plain",iy=[".md",".markdown",".txt"],tu=/\.[^.]+$/;function cy(c){const r=tu.exec(c.trim());return r?r[0].toLowerCase():""}function ry(c){const r=cy(c);return iy.includes(r)}function Fr(c){if(!Number.isFinite(c)||c<0)return"0 B";if(c<1024)return`${c} B`;if(c<1024*1024){const u=c/1024;return`${u>=10?u.toFixed(0):u.toFixed(1)} KiB`}const r=c/(1024*1024);return`${r>=10?r.toFixed(1):r.toFixed(2)} MiB`}function bn(c,r){return{ok:!1,code:c,message:r}}function uy(c,r){const u=c?Array.from(c):[],o=r?.maxFiles??yi,f=r?.existingCount??0;return u.length===0?bn("file-count","请选择至少一个 .md / .markdown / .txt 文件"):f+u.length>o?bn("file-count",`最多支持 ${o} 个文件(当前已有 ${f} 个)`):null}async function oy(c){const r=c.name?.trim()||"untitled.md";if(!ry(r))return bn("unsupported-extension","仅支持 .md、.markdown、.txt 文件");if(c.size>Jr)return bn("file-too-large",`文件不能超过 ${Fr(Jr)}`);let u;try{u=await c.arrayBuffer()}catch{return bn("read-failed","文件读取失败,请重试或直接粘贴")}let o;try{o=new TextDecoder("utf-8",{fatal:!0}).decode(u)}catch{return bn("invalid-utf8","文件不是有效 UTF-8,请另存为 UTF-8")}if(o.trim().length===0)return bn("empty-content","文件内容不能为空或只有空白");const f=new TextEncoder().encode(o).byteLength;return{ok:!0,text:o,fileName:r,sourceBytes:c.size,textBytes:f}}async function dy(c){if(c.length===0)return bn("file-count","请选择至少一个 .md / .markdown / .txt 文件");if(c.length>yi)return bn("file-count",`最多支持 ${yi} 个文件`);const r=[];for(const u of c){const o=await oy(u);if(!o.ok)return o;r.push({fileName:o.fileName,text:o.text,sourceBytes:o.sourceBytes,textBytes:o.textBytes})}return{ok:!0,documents:r}}function fy(c,r){const u=c.split(/\r?\n/);for(const f of u){const h=/^(#{1,6})\s+(.+)$/.exec(f.trim());if(h?.[2])return h[2].trim()}for(const f of u){const h=f.trim();if(h&&!/^---+$/.test(h)&&!/^```/.test(h)&&!/^<!--/.test(h))return h.replace(/^>\s+/,"").slice(0,120)}return r.replace(tu,"").trim()||"需求"}function my(c){return c.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"requirement"}function hy(c,r){const u=c.replace(tu,"").trim(),o=my(u);return o==="requirement"&&/[^\u0000-\u007f]/.test(u)?`part-${r+1}`:o==="requirement"?u?`part-${r+1}`:`part-${r+1}`:o}function py(c){const r=new Set;return c.map((u,o)=>{let f=hy(u.fileName,o);if(r.has(f)){let h=2;for(;r.has(`${f}-${h}`);)h+=1;f=`${f}-${h}`}return r.add(f),{name:f,content:u.text,fileName:u.fileName}})}function vy(c,r){if(c.length===0)return"";if(c.length===1)return c[0].text;const u=Math.min(Math.max(0,r?.primaryIndex??0),c.length-1),o=c[u],f=fy(o.text,o.fileName),m=[`<!-- composed-from: ${c.map(g=>g.fileName).join(", ")} -->`,"",`# ${f}`,""];for(const g of c)m.push(`## 来源:${g.fileName}`,"",g.text.trim(),"");return`${m.join(`
23
- `).trimEnd()}
24
- `}function gy(c,r,u){const o={action:c,actionParams:r};return new TextEncoder().encode(JSON.stringify(o)).byteLength<=ly}function yy(){return"最终内容导致请求体超过服务端限制,请缩小文档或减少文件数量"}function by(){const[c,r]=v.useState(`# 需求
25
-
26
- 实现 Loop Operator Console Happy Path:Interview → 契约落地 → DAG confirm → run。
27
- `),[u,o]=v.useState([]),[f,h]=v.useState(0),[m,g]=v.useState(!1),[y,b]=v.useState(null),[A,R]=v.useState(!1),[V,L]=v.useState(!1),H=v.useRef(0),X=v.useRef(0),ae=v.useCallback((M,K)=>{const G=M.length===0?0:Math.min(Math.max(0,K),M.length-1);h(G),r(vy(M,{primaryIndex:G})),g(!1)},[]),te=v.useCallback(async M=>{const K=uy(M,{existingCount:u.length});if(K){b(K.message);return}const G=Array.from(M),q=++X.current;R(!0),b(null);try{const F=await dy(G);if(q!==X.current)return;if(!F.ok){b(F.message);return}const j=[...u,...F.documents],z=u.length===0?0:f;o(j),u.length===0||!m?(ae(j,z),b(null)):b("已追加文件,未改正文(正文已手动编辑);可点「按文件重新合成」覆盖。")}catch{if(q!==X.current)return;b("文件读取失败,请重试或直接粘贴")}finally{q===X.current&&R(!1)}},[ae,m,u,f]),U=v.useCallback(M=>{r(M),u.length>0&&g(!0)},[u.length]),_=v.useCallback(M=>{h(M),m||ae(u,M)},[ae,m,u]),Q=v.useCallback((M,K)=>{const G=M+K,q=[...u],F=q[G];q[G]=q[M],q[M]=F;const j=f===M?G:f===G?M:f;o(q),h(j),m||ae(q,j)},[ae,m,u,f]),W=v.useCallback(M=>{const K=u.filter((q,F)=>F!==M),G=K.length===0?0:Math.min(f>=M?Math.max(0,f-1):f,Math.max(0,K.length-1));o(K),h(G),K.length===0?g(!1):m||ae(K,G)},[ae,m,u,f]),C=v.useCallback(()=>{o([]),h(0),g(!1),b(null)},[]),k=v.useCallback(()=>{m&&!window.confirm("将用当前文件列表重新合成正文,覆盖你在编辑区的修改。继续?")||(ae(u,f),b(null))},[ae,m,u,f]),Y=v.useCallback((M,K)=>{M.preventDefault(),M.stopPropagation(),!K&&(H.current+=1,L(!0))},[]),ne=v.useCallback(M=>{M.preventDefault(),M.stopPropagation(),H.current=Math.max(0,H.current-1),H.current===0&&L(!1)},[]),ee=v.useCallback((M,K)=>{M.preventDefault(),M.stopPropagation(),H.current=0,L(!1),!K&&te(M.dataTransfer.files)},[te]);return{prdText:c,setPrdText:r,onPrdTextChange:U,prdDocuments:u,prdPrimaryIndex:f,prdComposedDirty:m,prdFileError:y,setPrdFileError:b,prdFileReading:A,prdDragOver:V,loadPrdFromFiles:te,applyPrdComposition:ae,setPrimaryDocument:_,moveDocument:Q,removeDocument:W,clearDocuments:C,recomposeDocuments:k,onDragEnter:Y,onDragLeave:ne,onDrop:ee}}const xy={report:{id:"report",label:"查看报告",action:"dagReport",lane:"dag",guide:"看失败分类与建议动作(交接报告摘要)",commandHint:"loop-agent dag report --run-id <run-id> --json"},doctor:{id:"doctor",label:"Doctor 诊断",action:"doctor",lane:"dag",guide:"只读诊断:检查 Console / Pi / 仓库就绪,不是重跑前置",commandHint:"agent-worker console doctor --repo ."},decision:{id:"decision",label:"人工决策",lane:"dag",guide:"暂停等人时:先看 doctor 输出再做决策(经 CLI)",commandHint:"loop-agent dag doctor --run-id <run-id> --markdown"},resume:{id:"resume",label:"恢复运行",lane:"dag",guide:"仅当运行可安全 resume 时使用(经 CLI)",commandHint:"loop-agent task advance <task-id> --json"},reconcile:{id:"reconcile",label:"对账 / reconcile",requiresReason:!0,lane:"dag",guide:"状态不一致时先对账,再决定是否重跑(需原因)",commandHint:"loop-agent dag reconcile-run --run-id <run-id> --reason <structured-reason>"},regenerate:{id:"regenerate",label:"重新生成契约/计划",lane:"dag",guide:"契约/计划过期时:回任务页或经 CLI 重新 task advance(本页仅提示)",commandHint:"loop-agent task advance <task-id> --json"},observeLink:{id:"observeLink",label:"全屏观测",action:"observeLink",lane:"dag",guide:"打开完整 Inspect 画布;顶栏可返回操作台",commandHint:"agent-worker console serve --repo . --port 8790"},dagRerun:{id:"dagRerun",label:"从节点重跑",requiresReason:!0,action:"dagRerun",lane:"dag",guide:"终端失败默认首选:先 dagRerunPlan,plan 合格再 Human Gate 执行;provider 抖动/只读下游优先,勿无理由新开 task",commandHint:"loop-agent dag rerun --run-id <run-id> --from-node <node-id> --plan"},standaloneTaskRerun:{id:"standaloneTaskRerun",label:"完整重跑任务",requiresReason:!0,action:"standaloneTaskRerun",lane:"dag",guide:"整单重跑:仅当 from-node plan 不合格(writer/decision/fingerprint)或契约/源真变时;需确认原因",commandHint:"loop-agent dag rerun-task --run-id <run-id> --reason <text> --json"},workerTaskRetry:{id:"workerTaskRetry",label:"重新排队 Worker Task",requiresReason:!0,action:"workerTaskRetry",lane:"worker",guide:"仅 Worker 队列任务失败时使用,不要与 DAG 重跑混用",commandHint:"agent-worker task retry <task-id> --feature-id <feature-id> --repo . --reason <reason>"}},Sm={"validation-failed":["report","doctor","regenerate"],"contract-drift":["report","doctor","decision","reconcile","regenerate"],"runtime-mismatch":["report","doctor","reconcile","regenerate"],"pause-on-human":["decision","resume","report","doctor"],"verification-failed":["report","doctor","dagRerun","standaloneTaskRerun","resume","regenerate"],"orphan-unknown":["report","doctor","reconcile"],"terminal-failed":["report","doctor","dagRerun","standaloneTaskRerun","workerTaskRetry","regenerate"],"terminal-succeeded":["report","observeLink"],"needs-reconcile":["report","doctor","reconcile","regenerate"]};function Sy(c){return(Sm[c]??Sm["orphan-unknown"]).map(u=>xy[u])}function jy(c){const r=[],u=[];for(const o of c)o.lane==="worker"?u.push(o):r.push(o);return{dag:r,worker:u}}function Ny(c){return typeof c.action=="string"&&c.action.trim().length>0}function $m(c){return Sy(c).filter(Ny)}function Ry(c){const r=new Set($m(c).map(o=>o.id)),u=(...o)=>{for(const f of o)if(r.has(f))return f;return null};switch(c){case"terminal-failed":case"verification-failed":return u("dagRerun","standaloneTaskRerun","doctor","report");case"pause-on-human":return u("doctor","report");case"needs-reconcile":case"runtime-mismatch":case"contract-drift":return u("doctor","report");case"validation-failed":return u("doctor","report");case"terminal-succeeded":return u("observeLink","report");default:return u("doctor","report")}}function Cy(c){if(c.needsReconcile)return"needs-reconcile";const r=(c.errorCode??"").toLowerCase(),u=(c.operationState??"").toLowerCase(),o=(c.dagStatus??"").toLowerCase();return r.includes("validation")||r.includes("invalid")||u.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")||u.includes("paused")||o.includes("paused")||u.includes("awaiting")?"pause-on-human":r.includes("verif")||u.includes("verif")?"verification-failed":u==="succeeded"||u==="completed"||o==="succeeded"||o==="completed"?"terminal-succeeded":u==="failed"||u.includes("fail")||o==="failed"||r.includes("fail")?"terminal-failed":r.includes("reconcil")||u.includes("reconcil")?"needs-reconcile":"orphan-unknown"}const nu=new Set(["failed","error","partial_failed"]),Xm=new Set(["blocked","paused","awaiting_human"]);function bi(c){return(c??"").trim().toLowerCase()}function Ty(c){return nu.has(bi(c))}function jm(c){const r=bi(c.status);return nu.has(r)||r.includes("fail")?0:c.lifecycle==="paused"||r==="paused"?1:c.lifecycle==="active"?2:3}function Ay(c){return[...c].sort((r,u)=>{const o=jm(r)-jm(u);return o!==0?o:u.mtimeMs-r.mtimeMs})}function Ey(c){return Ay(c)[0]?.dagRunId}function Nm(c){const r=bi(c.status);return nu.has(r)?0:Xm.has(r)?1:2}function Km(c){return[...c].sort((r,u)=>{const o=Nm(r)-Nm(u);return o!==0?o:r.nodeId.localeCompare(u.nodeId)})}function ky(c){const r=Km(c);return r.find(o=>Ty(o.status)||Xm.has(bi(o.status)))?.nodeId??r[0]?.nodeId}function wy(c){const r=c.status?.trim()||c.lifecycle;return`${c.dagRunId.length>36?`${c.dagRunId.slice(0,18)}…${c.dagRunId.slice(-8)}`:c.dagRunId} · ${r}`}function Dy(c){const r=c.status?.trim()||"unknown",u=c.label?.trim();return u&&u!==c.nodeId?`${c.nodeId} · ${r} · ${u}`:`${c.nodeId} · ${r}`}function Oy(c){const u=[`operator-recovery: ${c.actionLabel?.trim()||"恢复"}`],o=c.dagRunId?.trim();if(o){const g=c.runStatus?.trim();u.push(g?`run=${o} (${g})`:`run=${o}`)}const f=c.fromNodeId?.trim();if(f){const g=c.nodeStatus?.trim();u.push(g?`from-node=${f} (${g})`:`from-node=${f}`)}const h=c.factClassLabel?.trim();h&&u.push(`fact=${h}`);const m=c.nodeError?.trim()||c.errorMessage?.trim()||(c.errorCode?.trim()?`code=${c.errorCode.trim()}`:"");return m&&u.push(`detail=${m.replace(/\s+/g," ").slice(0,280)}`),u.join(`
28
- `).slice(0,500)}function Qm(c){const r=c.trim();return r?r==="operator-recovery"||r.startsWith("operator-recovery:")||r.startsWith("recovery:"):!0}function My(c){const{shell:r,actions:u,taskId:o,dagRunId:f,fromNodeId:h,featureId:m,recoveryReason:g,recoveryReasonTouched:y,recoveryConfirm:b,recoveryPlanSummary:A,setRecoveryConfirm:R,setRecoveryPlanSummary:V,setRecoveryReport:L,setRecoveryReason:H,setRecoveryReasonTouched:X,buildCurrentRecoveryReason:ae,openFullCanvas:te}=c,{setOpError:U,setOpErrorCode:_,setOpMessage:Q,setBusy:W}=r,{runAction:C,isActionSuccess:k}=u,Y=v.useCallback(async ee=>{if(ee.requiresReason||(R(null),V(null)),ee.action==="doctor"){L(null),C("doctor",{});return}if(ee.action==="dagReport"||ee.id==="report"){const M=f.trim();if(M){R(null),V(null);const K=await C("dagReport",{runId:M}),G=K?.result??{},q=(G.raw?.runs??G.runs)?.[0];K&&K.ok!==!1&&!K.error&&q&&(L({runId:q.runId??M,title:q.title,status:q.status,category:q.productLineFailureCategory,recommendation:q.recoveryRecommendation?.summary??q.recommendedFollowUp??void 0}),Q(null));return}if(o.trim()){L(null),C("status",{taskId:o});return}U("查看报告需要先选择 DAG 运行 ID(或填写任务 ID)");return}if(ee.action==="observeLink"){L(null),te();return}if(ee.requiresReason){if(L(null),R(ee),V(null),ee.id!=="dagRerun"&&(U(null),_(null)),(!y||Qm(g))&&(H(ae(ee.label)),X(!1)),ee.id==="dagRerun"&&f.trim()&&h.trim()){W(!0);try{const{status:M,body:K}=await eu("dagRerunPlan",{runId:f.trim(),fromNode:h.trim()}),G=K.result??{};G&&typeof G=="object"&&("eligible"in G||G.planHash)&&V(G),M<400&&K.ok!==!1&&G.eligible!==!1?Q(null):G.eligible===!1?U(K.error?.message??Xr(G)):Q(K.error?.message??"无法预检重跑计划;确认后仍将尝试提交(CLI 可能尚未就绪)")}finally{W(!1)}}return}U(null),_(null),Q(`${ee.label}:请经 CLI — ${ee.commandHint??""}`)},[ae,f,h,te,g,y,C,W,U,_,Q,R,V,L,H,X,o]),ne=v.useCallback(async()=>{const ee=b;if(!ee)return;const M=g.trim();if(!M){U("恢复操作需要结构化原因");return}const K=gi(`recovery-${ee.id}`);if(R(null),ee.id==="dagRerun"){const G=f.trim(),q=h.trim();if(!G||!q){U("从节点重跑需要 DAG 运行 ID 与起始节点 ID");return}let F=A?.planHash?.trim(),j=A?.eligible;if(!F||j===void 0){const z=await C("dagRerunPlan",{runId:G,fromNode:q}),E=z?.result??{};if((E.planHash||E.eligible!==void 0)&&V(E),F=E.planHash?.trim()||F,j=E.eligible,E.eligible===!1){U(z?.error?.message??Xr(E));return}if(z&&z.ok===!1&&!F){U(z.error?.message??"无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}}if(j===!1){U(Xr(A??{}));return}if(!F){U("无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}await C("dagRerun",{runId:G,fromNode:q,planHash:F,reason:M},{clientRequestId:K});return}if(ee.id==="standaloneTaskRerun"){const G=f.trim();if(!G){U("完整重跑任务需要 DAG 运行 ID");return}const q={runId:G,reason:M,...o.trim()?{taskId:o.trim()}:{}},F=await C("prepareMutationGate",{action:"standaloneTaskRerun",actionParams:q});if(!k(F))return;const j=F?.result??F;if(!j.receiptId||!j.humanGateToken){U("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await C("standaloneTaskRerun",{...q,confirmationId:j.receiptId,humanGateToken:j.humanGateToken},{clientRequestId:K});return}if(ee.id==="workerTaskRetry"){const G=o.trim();if(!G){U("重新排队 Worker Task 需要任务 ID");return}const q={taskId:G,reason:M,...m.trim()?{featureId:m.trim()}:{}},F=await C("prepareMutationGate",{action:"workerTaskRetry",actionParams:q});if(!k(F))return;const j=F?.result??F;if(!j.receiptId||!j.humanGateToken){U("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await C("workerTaskRetry",{...q,confirmationId:j.receiptId,humanGateToken:j.humanGateToken},{clientRequestId:K});return}if(ee.id==="reconcile"){if(!f.trim()){U("对账恢复需要 DAG 运行 ID");return}Q(`${ee.label}:请经 CLI — ${ee.commandHint??""}`);return}Q(`${ee.label}:请经 CLI — ${ee.commandHint??""}`)},[f,m,h,b,A?.planHash,g,C,k,U,Q,R,V,o]);return{handleRecoveryCta:Y,submitRecoveryConfirm:ne}}function zy(c){const{shell:r,actions:u,wizard:o}=c,{nav:f,opError:h,opErrorCode:m,lastOpState:g,setOpError:y,setObserveBusy:b}=r,{taskId:A}=o,[R,V]=v.useState(""),[L,H]=v.useState(""),[X,ae]=v.useState(""),[te,U]=v.useState(""),[_,Q]=v.useState(!1),[W,C]=v.useState(null),[k,Y]=v.useState(null),[ne,ee]=v.useState([]),[M,K]=v.useState([]),[G,q]=v.useState(!1),[F,j]=v.useState(!1),[z,E]=v.useState(null),[le,re]=v.useState(!1),[S,w]=v.useState(!1),[P,se]=v.useState(null),[ie,oe]=v.useState("idle"),[me,Ee]=v.useState(null),[xe,Ke]=v.useState(null),[mt,ht]=v.useState(!1),pt=v.useCallback(()=>R.trim()?`/inspect/#/dag/${encodeURIComponent(R.trim())}?from=recovery`:"/inspect/#/",[R]),pe=v.useCallback(()=>{window.location.assign(pt())},[pt]),_e=v.useCallback(async()=>{if(R.trim())return R.trim();const Te=A.trim();if(!Te)return y("打开 DAG 检视需要任务 ID 或 DAG 运行 ID"),null;b(!0),y(null);try{const{status:Pe,body:He}=await eu("observeLink",{taskId:Te}),Nt=He.result??{};if(Pe>=400||He.ok===!1)return y(He.error?.message??"无法解析 DAG 画布地址"),oe("unavailable"),Ee(He.error?.message??null),null;const Ot=typeof Nt.dagRunId=="string"?Nt.dagRunId.trim():"";return Ot?(V(Ot),oe("match"),Ee(null),Ke(`/inspect/#/dag/${encodeURIComponent(Ot)}`),Ot):(y("尚未找到该任务的 DAG 运行,请稍后再打开检视"),oe("unavailable"),Ee(Nt.message??"未解析到 DAG run"),null)}catch(Pe){return y(Pe instanceof Error?Pe.message:String(Pe)),null}finally{b(!1)}},[R,A,y,b]),Fe=v.useCallback(async()=>{await _e()&&ht(!0)},[_e]),Ge=v.useCallback(async()=>{const Te=await _e();Te&&window.location.assign(`/inspect/#/dag/${encodeURIComponent(Te)}?from=recovery`)},[_e]),Pt=v.useCallback(async()=>{q(!0);try{const Te=A.trim(),Pe=new URLSearchParams;Te&&Pe.set("taskId",Te),Pe.set("limit","40");const He=await fetch(`/api/operator/v1/recovery/candidates?${Pe.toString()}`,{credentials:"same-origin"});if(!He.ok){ee([]);return}const Nt=await He.json();ee(Array.isArray(Nt.runs)?Nt.runs:[])}catch{ee([])}finally{q(!1)}},[A]),Vt=v.useCallback(async Te=>{const Pe=Te.trim();if(!Pe){K([]),E(null);return}j(!0);try{const He=await fetch(`/api/dag-runs/${encodeURIComponent(Pe)}`,{credentials:"same-origin"});if(!He.ok){K([]),E(null);return}const Nt=await He.json();E(typeof Nt.status=="string"?Nt.status:null);const Ot=Array.isArray(Nt.nodes)?Nt.nodes:[],dt=Km(Ot.map(at=>{const ut=(at.nodeId??at.id??"").trim();return ut?{nodeId:ut,status:at.status,label:at.label??at.name,errorPreview:at.errorPreview}:null}).filter(at=>at!==null));K(dt)}catch{K([]),E(null)}finally{j(!1)}},[]);v.useEffect(()=>{f==="recovery"&&Pt()},[f,A,Pt]),v.useEffect(()=>{if(f!=="recovery"||le||ne.length===0)return;const Te=R.trim(),Pe=Te?ne.some(He=>He.dagRunId===Te):!1;if(!Te||!Pe){const He=Ey(ne);He&&He!==Te&&V(He)}},[f,ne,R,le]),v.useEffect(()=>{f==="recovery"&&Vt(R)},[f,R,Vt]),v.useEffect(()=>{if(f!=="recovery"||S||M.length===0)return;const Te=L.trim(),Pe=Te?M.some(He=>He.nodeId===Te):!1;if(!Te||!Pe){const He=ky(M);He&&He!==Te&&H(He)}},[f,M,L,S]);const Dt=Cy({operationState:z?null:g,errorCode:z?null:m,dagStatus:z}),$n=v.useMemo(()=>$m(Dt),[Dt]),xi=v.useMemo(()=>jy($n),[$n]),Si=v.useMemo(()=>Ry(Dt),[Dt]),We=v.useMemo(()=>M.find(Te=>Te.nodeId===L.trim()),[M,L]),Zl=v.useRef(null);v.useEffect(()=>{k&&Zl.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[k?.id]);const Xn=v.useCallback(Te=>Oy({actionLabel:Te,dagRunId:R.trim()||void 0,fromNodeId:L.trim()||void 0,runStatus:z,nodeStatus:We?.status,nodeError:We?.errorPreview,factClassLabel:Gm[Dt],errorMessage:h,errorCode:m}),[R,L,h,m,Dt,z,We?.errorPreview,We?.status]);v.useEffect(()=>{if(f!=="recovery"||_&&!Qm(te))return;const Te=Xn(k?.label);Te&&Te!==te&&U(Te)},[f,R,L,z,We,Dt,h,m,k?.label,_,te,Xn]);const{handleRecoveryCta:Jl,submitRecoveryConfirm:fa}=My({shell:r,actions:u,taskId:A,dagRunId:R,fromNodeId:L,featureId:X,recoveryReason:te,recoveryReasonTouched:_,recoveryConfirm:k,recoveryPlanSummary:W,setRecoveryConfirm:Y,setRecoveryPlanSummary:C,setRecoveryReport:se,setRecoveryReason:U,setRecoveryReasonTouched:Q,buildCurrentRecoveryReason:Xn,openFullCanvas:Ge});return{dagRunId:R,setDagRunId:V,fromNodeId:L,setFromNodeId:H,featureId:X,setFeatureId:ae,recoveryReason:te,setRecoveryReason:U,recoveryReasonTouched:_,setRecoveryReasonTouched:Q,recoveryPlanSummary:W,recoveryConfirm:k,setRecoveryConfirm:Y,setRecoveryPlanSummary:C,recoveryRuns:ne,recoveryNodes:M,recoveryRunsLoading:G,recoveryNodesLoading:F,recoveryRunStatus:z,manualRunId:le,setManualRunId:re,manualNodeId:S,setManualNodeId:w,recoveryReport:P,setRecoveryReport:se,observeLinkStatus:ie,observeLinkMessage:me,observeUrl:xe,inspectSplitOpen:mt,setInspectSplitOpen:ht,inspectPath:pt,openFullInspect:pe,resolveDagRunForInspect:_e,openInspectSplit:Fe,openFullCanvas:Ge,loadRecoveryRuns:Pt,loadRecoveryNodes:Vt,recoveryFact:Dt,recoveryCtas:$n,recoveryLanes:xi,recommendedCtaId:Si,recoveryConfirmRef:Zl,buildCurrentRecoveryReason:Xn,handleRecoveryCta:Jl,submitRecoveryConfirm:fa}}function _y(c){const{shell:r,actions:u,prd:o}=c,{step:f,setStep:h,setOpMessage:m}=r,{runAction:g,isActionSuccess:y,summarizeEnvelope:b}=u,[A,R]=v.useState(""),[V,L]=v.useState(""),[H,X]=v.useState("standard"),ae=Zr.find(pe=>pe.kind===H)??Zr[0],[te,U]=v.useState(null),[_,Q]=v.useState(null),[W,C]=v.useState(""),[k,Y]=v.useState(null),[ne,ee]=v.useState(null),[M,K]=v.useState(null),[G,q]=v.useState(null),[F,j]=v.useState(null),[z,E]=v.useState(!1),[le,re]=v.useState(null),[S,w]=v.useState(null),P=v.useRef(!1),se=v.useCallback(()=>{K(null),q(null),j(null),E(!1),re(null),w(null),P.current=!1},[]),ie=v.useCallback(()=>{se(),h("contract")},[se,h]),oe=v.useCallback(pe=>{const _e=pe.session;_e?.sessionId&&U(_e.sessionId);const Fe=pe.question;Q(Fe),Y(pe.summary??null);const Ge=pe.assessmentId;typeof Ge=="string"&&Ge&&ee(Ge),(pe.complete===!0||typeof Ge=="string"&&Ge)&&(ie(),m(pe.skipped===!0?"已跳过访谈:已按推荐补齐草稿并签发评估":"访谈已完成:草稿已绑定完整评估结果"))},[ie,m]),me=v.useCallback(async(pe=!1)=>{const _e=A.trim();if(!_e)return;const Fe=`${_e}:${ne??""}`;if(!(!pe&&S===Fe&&M!==null)&&!P.current){P.current=!0,K(null),q(null),j(null),re(null),E(!1);try{const Ge=await g("contractValidate",{taskId:_e}),Pt=y(Ge);if(K(Pt),q(b(Ge)),!Pt){w(Fe),m("契约校验未通过:请先修正草稿后再应用");return}const Vt=await g("contractDiff",{taskId:_e});j(b(Vt)),w(Fe),m(y(Vt)?"校验与差异已就绪:确认后可应用契约":"校验通过,但差异查询失败(仍可查看下方摘要)")}finally{P.current=!1}}},[ne,S,M,y,g,m,b,A]),Ee=v.useCallback(async()=>{const pe=A.trim();if(!pe||!ne)return;const _e=await g("contractApply",{taskId:pe,assessmentId:ne},{clientRequestId:gi("apply")});if(!y(_e)){E(!1);return}E(!0);const Fe=await g("spineCheck",{taskId:pe});if(y(Fe)){re(!0),h("dag-confirm"),m("契约已应用并通过 Spine 审计,可生成并运行 DAG");return}re(!1),m("契约已应用,但 Spine 审计未通过:可重试 Spine")},[ne,y,g,m,h,A]),xe=v.useCallback(async()=>{const pe=A.trim();if(!pe)return;const _e=await g("spineCheck",{taskId:pe});if(y(_e)){re(!0),h("dag-confirm"),m("Spine 审计已通过,可生成并运行 DAG");return}re(!1)},[y,g,m,h,A]),Ke=v.useCallback(async()=>{const pe=u.confirmationId?.trim();if(!pe)return;const _e=u.confirmationDetails?.confirmation?.humanGateToken,Fe=await g("confirmDagConfirmation",{confirmationId:pe,humanGateToken:_e});y(Fe)&&(h("run"),await g("runDag",{confirmationId:pe},{clientRequestId:gi("run")}))},[u.confirmationId,u.confirmationDetails,y,g,h]);v.useEffect(()=>{f==="contract"&&A.trim()&&me(!1)},[f,A,ne,me]);const mt=v.useCallback(async()=>{const pe=o.prdDocuments.length>0?py(o.prdDocuments):void 0,_e={content:o.prdText,taskKind:H,...pe?{documents:pe}:{}};if(!gy("bootstrapFromPrd",_e)){o.setPrdFileError(yy());return}const Fe=await g("bootstrapFromPrd",_e);if(!Fe||Fe.ok===!1)return;const Ge=Fe.result??{};Ge.taskId&&R(Ge.taskId),Ge.title&&L(Ge.title),m(`已创建任务「${Ge.title??""}」(${Ge.taskId??""}),来源:${Ge.identitySource??"prd"}`),h("interview")},[o,g,m,h,H]),ht=[{id:"setup",label:"就绪检查"},{id:"import-prd",label:"导入需求"},{id:"interview",label:"需求访谈(可跳过)"},{id:"contract",label:"契约落地"},{id:"dag-confirm",label:"确认 DAG"},{id:"run",label:"运行"}],pt=ht.findIndex(pe=>pe.id===f);return{taskId:A,setTaskId:R,taskTitle:V,taskKind:H,setTaskKind:X,workflowMeta:ae,sessionId:te,question:_,answerText:W,setAnswerText:C,draftSummary:k,assessmentId:ne,contractValidateOk:M,contractValidateSummary:G,contractDiffSummary:F,contractApplied:z,spineOk:le,applyInterviewPayload:oe,runContractPreflight:me,applyContractThenSpine:Ee,retrySpineOnly:xe,confirmAndRunDag:Ke,importPrdAndCreate:mt,wizardSteps:ht,stepIndex:pt}}const Iy={chat:"对话",tasks:"任务",recovery:"恢复",night:"夜间",models:"模型与认证",settings:"设置"};async function Uy(c){return await import(c)}function Hy(c){const r=c.repoName?.trim();if(r)return r;const u=(c.repoRoot??"").split(/[\\/]/).filter(Boolean);return u.length?u[u.length-1]:"repository"}function Ly(c){const{nav:r,readiness:u,setupBlocked:o,degraded:f,health:h,inspectHref:m}=c,g=o||f?"models":"settings",y=o?"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。点击前往模型与认证。":f?"Pi 暂时降级:仍可恢复草稿与需求访谈。点击查看详情。":"Pi 已就绪。点击打开设置查看详情。";return{mode:"operate",activeTabHref:`#/${r}`,operateHref:"/#/",inspectHref:m,freshness:!1,readinessState:u,readinessHref:`#/${g}`,readinessTitle:y,repo:h?{name:Hy(h),fingerprint:h.repoFingerprint??"",version:h.packageVersion??"",product:h.productName??h.product??"",inspectReady:h.inspect?.ready}:null}}function By(c){const r=v.useRef(null),u=v.useRef(null),[o,f]=v.useState(!1),h=v.useMemo(()=>Ly(c),[c.nav,c.readiness,c.setupBlocked,c.degraded,c.health,c.inspectHref]),m=v.useRef(h);return m.current=h,v.useEffect(()=>{let g=!1;return Uy("/inspect/operator-chrome.js").then(y=>{g||!r.current||(u.current=y.mountOperatorChrome(r.current,m.current))}).catch(()=>{g||f(!0)}),()=>{g=!0,u.current?.destroy(),u.current=null}},[]),v.useEffect(()=>{u.current?.update(h)},[h]),s.jsxs(s.Fragment,{children:[s.jsx("div",{ref:r,"data-testid":"operator-chrome"}),o?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(`#/${c.nav}`),children:Iy[c.nav]}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(c.inspectHref),children:"观测"}),s.jsx("span",{role:"status",children:"共享导航加载失败,请刷新页面"})]}):null]})}function qy(c){return s.jsxs(s.Fragment,{children:[c.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:c.opError})]}):null,c.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:c.opMessage})]}):null]})}const Gy=[{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 Yy(c){if(!c)return null;const r=Date.parse(c);return Number.isNaN(r)?c:new Date(r).toLocaleString()}function $y(c){const r=c.readinessReport?.state??c.readiness,u=c.readinessReport?.probe,o=u?.details??{},f=c.readinessReport?.blockedActions??[],h=Yy(c.readinessReport?.generatedAt),m=c.readinessReport??{state:c.readiness,health:c.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:Bm[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:Gy.map(g=>{const y=u?.[g.key],b=o[g.detailKey],A=y===void 0;return s.jsxs("li",{className:`models-probe-item${A?" is-pending":y?" is-ok":" is-bad"}`,children:[s.jsx("span",{className:"models-probe-badge","aria-label":A?"未探测":y?"通过":"未通过",children:A?"—":y?"✓":"✕"}),s.jsxs("div",{className:"models-probe-body",children:[s.jsx("strong",{children:g.label}),s.jsx("span",{className:"muted",children:g.hint}),b?s.jsx("p",{className:"models-probe-detail",children:b}):null]})]},g.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:Lm})]}):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(g=>s.jsx("li",{children:s.jsx("code",{children:g})},g))})]}):null,s.jsxs("div",{className:"models-actions",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c.busy,onClick:c.onRefreshReadiness,children:"刷新就绪探测"}),h?s.jsxs("span",{className:"muted models-generated-at",children:["上次探测:",h]}):null]}),s.jsxs("details",{className:"models-raw-details",children:[s.jsx("summary",{children:"查看原始探测数据(调试)"}),s.jsx("pre",{className:"cmd models-raw-json",children:JSON.stringify(m,null,2)})]})]})}function Rm(c){const{lane:r,cta:u,planSummary:o,reason:f,busy:h,confirmRef:m}=c;return!u||u.lane!==r?null:s.jsxs("div",{ref:m,className:"recovery-confirm","data-testid":"recovery-confirm",children:[s.jsxs("h3",{children:["待确认:",u.label]}),s.jsx("p",{className:"muted",children:"请核对上方运行 / 节点与恢复原因,再点「确定」执行。"}),o?s.jsxs("div",{className:"recovery-plan-summary",children:[s.jsxs("p",{className:"muted",children:["计划 eligible=",String(o.eligible??"—")," · 风险=",qm[o.risk??""]??o.risk??"—"]}),o.effectiveFromNodeId?s.jsxs("p",{className:"muted",children:["有效起点:",o.effectiveFromNodeId]}):null,o.estimatedExecution?s.jsxs("p",{className:"muted",children:["将执行 ",o.estimatedExecution.nodeCount??"?"," 个节点 / ",o.estimatedExecution.piCallCount??"?"," 次 Pi;预计避免"," ",o.estimatedExecution.avoidedNodeCount??"?"," 个节点"]}):null,o.planHash?s.jsxs("p",{className:"muted",children:["planHash: ",s.jsxs("code",{children:[o.planHash.slice(0,16),"…"]})]}):null]}):u.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:h||!f.trim(),"data-testid":"recovery-confirm-submit",onClick:c.onSubmit,children:"确定"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:h,"data-testid":"recovery-confirm-cancel",onClick:c.onCancel,children:"取消"})]})]})}function Xy(c){const{shell:r,recovery:u,wizard:o}=c,{busy:f}=r,h={planSummary:u.recoveryPlanSummary,reason:u.recoveryReason,busy:f,confirmRef:u.recoveryConfirmRef,onSubmit:()=>{u.submitRecoveryConfirm()},onCancel:()=>{u.setRecoveryConfirm(null),u.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:["事实分类:",Gm[u.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:[o.taskId.trim()?`按任务 ${o.taskId.trim()} 拉取候选。`:"未填任务 ID 时列出最近 DAG 运行。","Doctor 诊断可选,不是重跑前置。"," ",s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f||u.recoveryRunsLoading,"data-testid":"recovery-refresh-candidates",onClick:()=>{u.loadRecoveryRuns()},children:u.recoveryRunsLoading?"刷新中…":"刷新候选"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"DAG 运行 ID"}),!u.manualRunId&&u.recoveryRuns.length>0?s.jsxs("select",{"data-testid":"recovery-run-select",value:u.dagRunId,disabled:f||u.recoveryRunsLoading,onChange:m=>{u.setManualRunId(!1),u.setManualNodeId(!1),u.setFromNodeId(""),u.setDagRunId(m.target.value),u.recoveryReasonTouched||u.setRecoveryReasonTouched(!1)},children:[u.recoveryRuns.some(m=>m.dagRunId===u.dagRunId)?null:s.jsx("option",{value:u.dagRunId||"",children:u.dagRunId?`${u.dagRunId}(当前)`:"— 请选择 —"}),u.recoveryRuns.map(m=>s.jsx("option",{value:m.dagRunId,children:wy(m)},m.dagRunId))]}):s.jsx("input",{"data-testid":"recovery-run-input",value:u.dagRunId,disabled:f,onChange:m=>{u.setManualRunId(!0),u.setDagRunId(m.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(!u.manualRunId&&u.recoveryRuns.length>0){u.setManualRunId(!0);return}u.setManualRunId(!1),u.loadRecoveryRuns()},children:!u.manualRunId&&u.recoveryRuns.length>0?"手动输入运行 ID":"刷新并改用下拉"})]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{className:"muted",children:["起始节点 ID(从节点重跑)",u.recoveryNodesLoading?" · 加载节点…":""]}),!u.manualNodeId&&u.recoveryNodes.length>0?s.jsxs("select",{"data-testid":"recovery-node-select",value:u.fromNodeId,disabled:f||u.recoveryNodesLoading,onChange:m=>{u.setManualNodeId(!1),u.setFromNodeId(m.target.value)},children:[u.recoveryNodes.some(m=>m.nodeId===u.fromNodeId)?null:s.jsx("option",{value:u.fromNodeId||"",children:u.fromNodeId?`${u.fromNodeId}(当前)`:"— 请选择 —"}),u.recoveryNodes.map(m=>s.jsx("option",{value:m.nodeId,children:Dy(m)},m.nodeId))]}):s.jsx("input",{"data-testid":"recovery-node-input",value:u.fromNodeId,disabled:f,onChange:m=>{u.setManualNodeId(!0),u.setFromNodeId(m.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(!u.manualNodeId&&u.recoveryNodes.length>0){u.setManualNodeId(!0);return}u.setManualNodeId(!1),u.loadRecoveryNodes(u.dagRunId)},children:!u.manualNodeId&&u.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:u.recoveryReason,disabled:f,rows:4,onChange:m=>{u.setRecoveryReasonTouched(!0),u.setRecoveryReason(m.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:()=>{u.setRecoveryReasonTouched(!1),u.setRecoveryReason(u.buildCurrentRecoveryReason(u.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:[u.recoveryLanes.dag.map(m=>{const g=m.id===u.recommendedCtaId;return s.jsxs("button",{type:"button",className:g?"btn btn-primary":"btn btn-secondary",disabled:f,title:m.guide,"aria-pressed":u.recoveryConfirm?.id===m.id?!0:void 0,"data-testid":`recovery-cta-${m.id}`,"data-recommended":g?"true":void 0,onClick:()=>{u.handleRecoveryCta(m)},children:[m.label,m.requiresReason?" *":""]},m.id)}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!u.dagRunId.trim(),"data-testid":"recovery-dag-preview",title:"在本页侧栏预览,可关闭返回",onClick:()=>{if(!u.dagRunId.trim()){r.setOpError("侧栏预览需要先选择 DAG 运行 ID");return}u.setInspectSplitOpen(!0)},children:"侧栏预览"})]}),u.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:()=>u.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:u.recoveryReport.runId})})]}),u.recoveryReport.title?s.jsxs("div",{children:[s.jsx("dt",{children:"标题"}),s.jsx("dd",{children:u.recoveryReport.title})]}):null,s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:u.recoveryReport.status??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"失败分类"}),s.jsx("dd",{children:u.recoveryReport.category??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"建议"}),s.jsx("dd",{children:u.recoveryReport.recommendation??"暂无结构化建议"})]})]}),s.jsxs("p",{className:"muted",children:["完整 Markdown 可用 CLI:",s.jsxs("code",{children:["loop-agent dag report --run-id"," ",u.recoveryReport.runId," --markdown"]})]})]}):null,s.jsx(Rm,{lane:"dag",cta:u.recoveryConfirm,...h})]}),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:o.taskId,disabled:f,onChange:m=>o.setTaskId(m.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:u.featureId,disabled:f,onChange:m=>u.setFeatureId(m.target.value.trim()),placeholder:"feature-id"})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-worker",children:u.recoveryLanes.worker.length>0?u.recoveryLanes.worker.map(m=>s.jsxs("button",{type:"button",className:m.id===u.recommendedCtaId?"btn btn-primary":"btn btn-secondary",disabled:f,title:m.guide,"data-testid":`recovery-cta-${m.id}`,"data-recommended":m.id===u.recommendedCtaId?"true":void 0,onClick:()=>{u.handleRecoveryCta(m)},children:[m.label,m.requiresReason?" *":""]},m.id)):s.jsx("p",{className:"muted","data-testid":"recovery-worker-unavailable",children:"当前事实分类下不提供 Worker 重排队。"})}),s.jsx(Rm,{lane:"worker",cta:u.recoveryConfirm,...h})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row",hidden:!0,children:u.recoveryCtas.map(m=>s.jsx("span",{children:m.id},m.id))}),u.observeLinkMessage?s.jsxs("p",{className:"muted",children:["[",Wg[u.observeLinkStatus],"]"," ",u.observeLinkMessage]}):null,u.observeUrl?s.jsx("p",{className:"muted",children:s.jsx("a",{className:"external-link",href:u.observeUrl,children:u.observeUrl})}):null]})}function Ky(c){const{health:r,readiness:u,healthError:o,layers:f,setupBlocked:h,degraded:m}=c;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:[Bm[u]??u,"(",u,")"]}),h?s.jsx("p",{className:"muted",children:"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。请前往「模型与认证」。"}):m?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 进程)"]})]})]}),o?s.jsx("p",{className:"error",children:o}):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:hi(f.command)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"DAG 生命周期"}),s.jsx("dd",{children:hi(f.dag)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"最终验证"}),s.jsx("dd",{children:hi(f.verification)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"晋升"}),s.jsx("dd",{children:hi(f.promote)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务关闭"}),s.jsx("dd",{children:"不可用(MVP)"})]})]})]})]})}function Qy(c){const{busy:r,degraded:u,taskId:o,assessmentId:f,contractValidateOk:h,contractValidateSummary:m,contractDiffSummary:g,contractApplied:y,spineOk:b,onRerunPreflight:A,onApplyContract:R,onRetrySpine:V}=c;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:"校验"}),":"," ",h===null?r?"进行中…":"等待开始":h?"通过":"未通过"]}),m?s.jsx("pre",{className:"cmd","data-testid":"contract-validate-summary",children:m}):null,s.jsxs("p",{children:[s.jsx("strong",{children:"差异"}),g?"":":尚未拉取"]}),g?s.jsx("pre",{className:"cmd","data-testid":"contract-diff-summary",children:g}):null,y?s.jsxs("p",{children:[s.jsx("strong",{children:"Spine"}),":"," ",b===null?"待检查":b?"通过":"未通过"]}):null]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r||!o.trim(),onClick:A,children:"重新校验"}),s.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"contract-apply",disabled:r||u||!f||h!==!0||y,onClick:R,children:"确认并应用契约"}),y&&b===!1?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:V,children:"重试 Spine"}):null]})]})}function Vy(c){const{busy:r,taskId:u,confirmationId:o,confirmationDetails:f,runAction:h,onConfirmAndRun:m}=c;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:()=>{h("prepareDagConfirmation",{taskId:u,dagHandle:`${u}.dag.json`,profile:"auto"})},children:"生成 DAG 并准备确认"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!o,onClick:m,children:"开始运行"})]}),o?s.jsxs("p",{className:"muted",children:["确认 ID: ",s.jsx("code",{children:o})]}):null]})}function Zy(c){const{busy:r,taskKind:u,onTaskKindChange:o,workflowHint:f,prd:h,onImport:m}=c,g=r||h.prdFileReading;return s.jsxs("div",{"data-testid":"panel-import-prd",children:[s.jsx("h3",{children:"导入需求"}),s.jsx("p",{className:"muted",children:"粘贴、选择或拖入一份或多份 PRD / 需求 Markdown。多文件会分别归档到 source/references,并合成一份可编辑正文。创建前可继续编辑。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"流程类型"}),s.jsx("select",{"data-testid":"workflow-kind-select",value:u,disabled:r||h.prdFileReading,onChange:y=>o(y.target.value),children:Zr.map(y=>s.jsx("option",{value:y.kind,children:y.label},y.kind))})]}),s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-hint",children:[f," · taskKind=",s.jsx("code",{children:u})]}),s.jsxs("div",{className:`prd-drop-zone${h.prdDragOver?" is-dragover":""}`,"data-testid":"prd-drop-zone","data-dragover":h.prdDragOver?"true":"false",onDragEnter:y=>h.onDragEnter(y,g),onDragOver:y=>{y.preventDefault(),y.stopPropagation()},onDragLeave:h.onDragLeave,onDrop:y=>h.onDrop(y,g),children:[s.jsxs("div",{className:"prd-upload-toolbar",children:[s.jsxs("label",{className:`btn btn-ghost prd-upload-btn${g?" is-disabled":""}`,children:["选择需求文档",s.jsx("input",{type:"file",accept:sy,multiple:!0,hidden:!0,disabled:g,"data-testid":"prd-file-input",onChange:y=>{const b=y.currentTarget;h.loadPrdFromFiles(b.files).finally(()=>{b.value=""})}})]}),s.jsxs("span",{className:"muted prd-upload-hint",children:["支持多文件 .md / .markdown / .txt,单文件最大"," ",Fr(Jr),",最多 ",yi," 个"]}),h.prdDocuments.length>0?s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"prd-recompose",disabled:g,onClick:h.recomposeDocuments,children:"按文件重新合成"}):null]}),h.prdDocuments.length>0?s.jsx("ul",{className:"prd-file-list","data-testid":"prd-file-list",children:h.prdDocuments.map((y,b)=>s.jsxs("li",{className:b===h.prdPrimaryIndex?"is-primary":void 0,"data-testid":`prd-file-item-${b}`,children:[s.jsxs("span",{className:"prd-file-item-name",children:[y.fileName,b===h.prdPrimaryIndex?s.jsx("span",{className:"prd-file-primary-tag",children:"主"}):null,s.jsxs("span",{className:"muted",children:[" ","· ",Fr(y.sourceBytes)]})]}),s.jsxs("span",{className:"prd-file-item-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||b===h.prdPrimaryIndex,onClick:()=>h.setPrimaryDocument(b),children:"设为主"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||b===0,onClick:()=>h.moveDocument(b,-1),children:"上移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||b===h.prdDocuments.length-1,onClick:()=>h.moveDocument(b,1),children:"下移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g,onClick:()=>h.removeDocument(b),children:"移除"})]})]},`${y.fileName}-${b}`))}):null,h.prdDocuments.length>0?s.jsxs("div",{className:"prd-file-meta",children:[s.jsxs("span",{children:["分卷=上传原件(将分别归档);正文=本会话采用稿",h.prdComposedDirty?"(已手动编辑)":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost prd-file-clear","data-testid":"prd-file-clear",disabled:g,onClick:h.clearDocuments,children:"清除来源列表"})]}):null,h.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:h.prdText,disabled:g,"data-testid":"prd-textarea",onChange:y=>h.onPrdTextChange(y.target.value)})]})]}),h.prdFileError?s.jsx("p",{className:"prd-file-error",role:"alert","aria-live":"polite","data-testid":"prd-file-error",children:h.prdFileError}):null,s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||h.prdFileReading||!h.prdText.trim(),onClick:m,children:"导入并创建任务"})})]})}function Jy(c){const{busy:r,taskId:u,taskTitle:o,taskKind:f,sessionId:h,question:m,answerText:g,onAnswerTextChange:y,draftSummary:b,assessmentId:A,runAction:R}=c;return s.jsxs("div",{"data-testid":"panel-interview",children:[s.jsx("h3",{children:"需求访谈(grill-me)"}),s.jsx("p",{className:"muted",children:"一次一问;也可跳过:系统会按推荐补齐草稿并签发评估,随后进入校验。 访谈中不可应用契约 / 运行 DAG / 对账。"}),b?s.jsx("pre",{className:"cmd","data-testid":"draft-summary",children:JSON.stringify(b,null,2)}):null,s.jsxs("div",{className:"cta-row",style:{marginBottom:"0.75rem"},children:[!h||!m?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!u.trim(),onClick:()=>{R("interviewStart",{taskId:u,title:o,taskKind:f})},children:"开始 / 继续访谈"}):null,s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"interview-skip",disabled:r||!u.trim(),onClick:()=>{R("interviewSkip",{taskId:u,title:o,taskKind:f})},children:"跳过访谈"})]}),h&&m?s.jsxs("div",{className:"interview-card",children:[s.jsxs("p",{className:"interview-q",children:[s.jsx("strong",{children:m.id})," · 风险=",qm[m.risk??""]??m.risk??"—"]}),s.jsx("p",{children:m.text}),m.recommendation?s.jsxs("p",{className:"muted",children:["推荐:",m.recommendation]}):null,s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"你的回答(覆盖推荐)"}),s.jsx("textarea",{rows:3,value:g,disabled:r,onChange:V=>y(V.target.value)})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:()=>{R("interviewTurn",{sessionId:h,questionId:m.id,response:"accept-recommendation"}).then(()=>y(""))},children:"接受推荐"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!g.trim(),onClick:()=>{R("interviewTurn",{sessionId:h,questionId:m.id,response:"override",text:g}).then(()=>y(""))},children:"提交自定义回答"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r||m.risk==="high",onClick:()=>{R("interviewTurn",{sessionId:h,questionId:m.id,response:"defer",text:g||m.recommendation}).then(()=>y(""))},children:"暂缓(非高风险)"})]})]}):null,A?s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:A})]}):null]})}function Fy(c){const{busy:r,confirmationId:u,operationId:o,dagRunId:f,taskId:h,observeBusy:m,sseLog:g,runAction:y,onStopFollow:b,onShowInspectSplit:A,onOpenInspectSplit:R}=c;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:o??"—"})]}),s.jsxs("div",{children:["确认 ID: ",s.jsx("code",{children:u??"—"})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!u,onClick:()=>{y("runDag",{confirmationId:u},{clientRequestId:gi("run")})},children:"重新运行"}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:b,children:"停止跟随日志"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!f.trim(),onClick:A,children:"打开检视"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:m||!f.trim()&&!h.trim(),title:"在本页侧栏预览,可关闭返回",onClick:R,children:"侧栏预览"})]}),s.jsx("pre",{className:"cmd","data-testid":"sse-log",children:g.join(`
29
- `)||"(尚无事件)"})]})}function Wy(c){const{shell:r,actions:u,wizard:o,prd:f,recovery:h}=c,{busy:m,step:g,setupBlocked:y,degraded:b}=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:o.wizardSteps.map((A,R)=>s.jsxs("li",{"data-active":g===A.id,"data-done":R<o.stepIndex,children:[s.jsx("span",{className:"step-index",children:String(R+1).padStart(2,"0")}),s.jsx("span",{className:"step-label",children:A.label})]},A.id))}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"任务 ID"}),s.jsx("input",{"data-testid":"task-id-input",value:o.taskId,disabled:m||y||g==="import-prd",placeholder:g==="import-prd"?"导入需求后自动生成":"task-id",onChange:A=>o.setTaskId(A.target.value.trim())})]}),o.taskTitle?s.jsxs("p",{className:"workflow-hint","data-testid":"task-title-chip",children:["任务名称:",o.taskTitle]}):null,g!=="import-prd"&&!y?s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-chip",children:["当前流程:",o.workflowMeta.label," ·"," ",s.jsx("code",{children:o.taskKind})]}):null,y||g==="setup"?s.jsxs("div",{className:"empty-state","data-testid":"setup-gate",children:[s.jsx("p",{className:"empty-title",children:"需要先完成设置"}),s.jsx("p",{className:"muted",children:"请先在「模型与认证」完成 Pi 就绪,再导入需求与访谈。"}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:m,onClick:()=>{r.selectNav("models"),u.runAction("refreshReadiness",{}).then(()=>r.loadHealth())},children:"刷新就绪状态"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:m,onClick:()=>{u.runAction("doctor",{})},children:"运行诊断"}),s.jsx("pre",{className:"cmd",children:Lm})]})]}):s.jsxs("div",{className:"wizard-body","data-testid":"wizard-body",children:[g==="import-prd"&&s.jsx(Zy,{busy:m,taskKind:o.taskKind,onTaskKindChange:o.setTaskKind,workflowHint:o.workflowMeta.hint,prd:f,onImport:()=>{o.importPrdAndCreate()}}),g==="interview"&&s.jsx(Jy,{busy:m,taskId:o.taskId,taskTitle:o.taskTitle,taskKind:o.taskKind,sessionId:o.sessionId,question:o.question,answerText:o.answerText,onAnswerTextChange:o.setAnswerText,draftSummary:o.draftSummary,assessmentId:o.assessmentId,runAction:u.runAction}),g==="contract"&&s.jsx(Qy,{busy:m,degraded:b,taskId:o.taskId,assessmentId:o.assessmentId,contractValidateOk:o.contractValidateOk,contractValidateSummary:o.contractValidateSummary,contractDiffSummary:o.contractDiffSummary,contractApplied:o.contractApplied,spineOk:o.spineOk,onRerunPreflight:()=>{o.runContractPreflight(!0)},onApplyContract:()=>{o.applyContractThenSpine()},onRetrySpine:()=>{o.retrySpineOnly()}}),g==="dag-confirm"&&s.jsx(Vy,{busy:m,taskId:o.taskId,confirmationId:u.confirmationId,confirmationDetails:u.confirmationDetails,runAction:u.runAction,onConfirmAndRun:()=>{o.confirmAndRunDag()}}),g==="run"&&s.jsx(Fy,{busy:m,confirmationId:u.confirmationId,operationId:u.operationId,dagRunId:h.dagRunId,taskId:o.taskId,observeBusy:r.observeBusy,sseLog:u.sseLog,runAction:u.runAction,onStopFollow:u.stopFollowSse,onShowInspectSplit:()=>h.setInspectSplitOpen(!0),onOpenInspectSplit:()=>{h.openInspectSplit()}})]})]})}const Py={};function eb(){const c=ny(),r=v.useRef(()=>{}),u=v.useCallback(A=>r.current(A),[]),o=ay({shell:c,applyInterviewPayload:u}),f=by(),h=_y({shell:c,actions:o,prd:f}),m=zy({shell:c,actions:o,wizard:h});v.useEffect(()=>{r.current=h.applyInterviewPayload}),v.useEffect(()=>{c.loadHealth()},[c.loadHealth]);const g=v.useCallback((A,R={})=>{c.selectNav(A),R.taskId&&h.setTaskId(R.taskId),R.dagRunId&&m.setDagRunId(R.dagRunId),R.fromNodeId&&m.setFromNodeId(R.fromNodeId),R.featureId&&m.setFeatureId(R.featureId);const V=zm(A,R);window.location.hash.replace(/^#/,"")!==V&&(window.location.hash=V)},[c.selectNav,h.setTaskId,m.setDagRunId,m.setFromNodeId,m.setFeatureId]),y=v.useCallback(()=>{const A=og(window.location);if(A){g(A.workspace,A);return}const R=Mm({env:Py?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location});g(R,{})},[g]);v.useEffect(()=>(y(),window.addEventListener("hashchange",y),()=>window.removeEventListener("hashchange",y)),[y]);const b=c.nav==="recovery"&&m.dagRunId.trim()?`/inspect/#/dag/${encodeURIComponent(m.dagRunId.trim())}?from=recovery`:"/inspect/#/";return s.jsx(s.Fragment,{children:s.jsxs("div",{className:`console-app${c.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(By,{nav:c.nav,readiness:c.readiness,setupBlocked:c.setupBlocked,degraded:c.degraded,health:c.health,inspectHref:b}),s.jsxs("div",{className:`console-shell${c.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(qy,{opError:c.opError,opMessage:c.opMessage}),s.jsxs("main",{className:`console-main${c.nav==="chat"?" console-main--fill":""}`,children:[c.nav==="tasks"?s.jsx(Wy,{shell:c,actions:o,wizard:h,prd:f,recovery:m}):null,c.nav==="recovery"?s.jsx(Xy,{shell:c,recovery:m,wizard:h}):null,c.nav==="night"?s.jsx(_v,{busy:c.busy,runAction:o.runAction,isActionSuccess:o.isActionSuccess,setOpError:c.setOpError}):null,c.nav==="models"?s.jsx($y,{busy:c.busy,readiness:c.readiness,readinessReport:c.readinessReport,health:c.health,onRefreshReadiness:()=>{o.runAction("refreshReadiness",{}).then(()=>c.loadHealth())}}):null,c.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(Jg,{origin:"",readiness:c.readiness,surface:"workspace",onNavigateWorkspace:g})]}):null,c.nav==="settings"?s.jsx(Ky,{health:c.health,readiness:c.readiness,healthError:c.healthError,layers:c.layers,setupBlocked:c.setupBlocked,degraded:c.degraded}):null]}),m.inspectSplitOpen&&m.dagRunId.trim()?s.jsx(jv,{dagRunId:m.dagRunId.trim(),nodeId:m.fromNodeId.trim()||void 0,onClose:()=>m.setInspectSplitOpen(!1),onOpenFull:m.openFullInspect}):null]})]})})}const Vm=document.getElementById("root");if(!Vm)throw new Error("Loop Operator Console: #root missing");xv.createRoot(Vm).render(s.jsx(v.StrictMode,{children:s.jsx(eb,{})}));