@tea-agent/loop-agent 0.33.7-beta.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +38 -17
  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-executor.js +4 -91
  8. package/dist/executors/shell-write-guard.js +26 -8
  9. package/dist/shared/operator/capabilities.js +72 -42
  10. package/dist/shared/resilient-git.js +133 -0
  11. package/dist/task/source-prepare/artifact-meta.js +137 -0
  12. package/dist/task/source-prepare/index.js +2 -0
  13. package/dist/task/source-prepare/parse-intent.js +58 -10
  14. package/dist/task/source-prepare/prepare.js +180 -16
  15. package/dist/task/source-prepare/reference-integrity.js +18 -2
  16. package/dist/task/source-prepare/semantic-intake.js +404 -0
  17. package/dist/worker/console/app-data.js +2 -0
  18. package/dist/worker/console/chat/chat-event-store.js +190 -25
  19. package/dist/worker/console/chat/model-resolver.js +17 -0
  20. package/dist/worker/console/chat/pi-console-config.js +250 -32
  21. package/dist/worker/console/chat/pi-runtime.js +1007 -188
  22. package/dist/worker/console/chat/resource-loader.js +5 -4
  23. package/dist/worker/console/chat/routes.js +495 -157
  24. package/dist/worker/console/chat/runtime-context.js +48 -12
  25. package/dist/worker/console/chat/runtime-selection.js +59 -0
  26. package/dist/worker/console/chat/session-store.js +39 -0
  27. package/dist/worker/console/chat/shortcuts.js +1 -0
  28. package/dist/worker/console/chat/tool-adapter.js +9 -3
  29. package/dist/worker/console/chat/tools.js +5 -1
  30. package/dist/worker/console/dag-execution-receipt.js +380 -0
  31. package/dist/worker/console/operator-actions.js +559 -68
  32. package/dist/worker/console/server.js +8 -15
  33. package/dist/worker/console/static/assets/index-BQkhJpV8.css +1 -0
  34. package/dist/worker/console/static/assets/index-CMHovlqG.js +32 -0
  35. package/dist/worker/console/static/index.html +2 -2
  36. package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +45 -8
  37. package/dist/worker/console/static-src/operator-chat/landing-density.js +23 -0
  38. package/dist/worker/console/static-src/operator-chat/refs.js +9 -0
  39. package/dist/worker/console/static-src/operator-chat/runtime-snapshot-store.js +257 -0
  40. package/dist/worker/console/static-src/operator-chat/session-title-watcher.js +128 -0
  41. package/dist/worker/console/static-src/operator-chat/sidebar-split.js +90 -0
  42. package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +37 -0
  43. package/dist/worker/console/static-src/operator-chat/useChatSessions.js +125 -22
  44. package/dist/worker/console/static-src/operator-chat/useChatStream.js +215 -184
  45. package/dist/worker/console/static-src/operator-chat/useChatThread.js +49 -5
  46. package/dist/worker/console/static-src/operator-chat/useComposer.js +17 -0
  47. package/dist/worker/console/static-src/operator-chat/useOverlayFocus.js +84 -0
  48. package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +225 -74
  49. package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +196 -0
  50. package/dist/worker/console/static-src/operator-chat/useWorkspaceLayout.js +58 -0
  51. package/dist/worker/console/static-src/operator-chat/workspace-layout-mode.js +31 -0
  52. package/dist/worker/delivery/final-verification.js +13 -5
  53. package/dist/worker/delivery/package.js +31 -19
  54. package/dist/worker/delivery/verification-bundle.js +6 -4
  55. package/dist/worker/observe/static/operator-chrome.css +5 -2
  56. package/dist/worker/observe/static/operator-chrome.js +6 -1
  57. package/dist/worker/observe/static/styles.css +39 -9
  58. package/dist/workflows/dag/backend-test-case-coverage-analysis.js +33 -462
  59. package/dist/workflows/dag/backend-test-case-manifest.js +0 -4
  60. package/dist/workflows/dag/backend-test-markdown-workflow.js +1 -25
  61. package/dist/workflows/dag/backend-test-module-stem.js +0 -5
  62. package/dist/workflows/dag/backend-test-pytest-collection.js +24 -345
  63. package/dist/workflows/dag/backend-test-scenario-param.js +82 -269
  64. package/dist/workflows/dag/backend-test-writer-completeness.js +16 -47
  65. package/dist/workflows/dag/dynamic-runtime/map.js +8 -24
  66. package/dist/workflows/dag/frontend-worktree-diff.js +12 -27
  67. package/dist/workflows/dag/init-hybrid.js +34 -46
  68. package/dist/workflows/dag/types.js +0 -7
  69. package/dist/workflows/dag/workspace-checkpoint.js +8 -27
  70. package/docs/templates/backend-test-dag.json +29 -32
  71. package/harness.json +1 -1
  72. package/package.json +1 -1
  73. package/skills/local-jacoco-coverage/SKILL.md +281 -0
  74. package/skills/local-jacoco-coverage/references/requirement-to-source-mapping.md +85 -0
  75. package/skills/local-jacoco-coverage/references/runtime-alignment.md +106 -0
  76. package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +148 -0
  77. package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +110 -0
  78. package/skills/loop-agent/references/command-reference.md +3 -1
  79. package/skills/loop-agent/references/source-and-plan-practice.md +13 -0
  80. package/skills/loop-agent/references/task-workflow.md +4 -0
  81. package/dist/worker/console/chat/instruction-skills.js +0 -217
  82. package/dist/worker/console/static/assets/index-CnUXAqxG.css +0 -1
  83. package/dist/worker/console/static/assets/index-CteJFFL2.js +0 -29
@@ -0,0 +1,32 @@
1
+ (function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))u(f);new MutationObserver(f=>{for(const m of f)if(m.type==="childList")for(const h of m.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&u(h)}).observe(document,{childList:!0,subtree:!0});function c(f){const m={};return f.integrity&&(m.integrity=f.integrity),f.referrerPolicy&&(m.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?m.credentials="include":f.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function u(f){if(f.ep)return;f.ep=!0;const m=c(f);fetch(f.href,m)}})();var Qc={exports:{}},el={};var dm;function Hv(){if(dm)return el;dm=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function c(u,f,m){var h=null;if(m!==void 0&&(h=""+m),f.key!==void 0&&(h=""+f.key),"key"in f){m={};for(var g in f)g!=="key"&&(m[g]=f[g])}else m=f;return f=m.ref,{$$typeof:i,type:u,key:h,ref:f!==void 0?f:null,props:m}}return el.Fragment=r,el.jsx=c,el.jsxs=c,el}var fm;function Bv(){return fm||(fm=1,Qc.exports=Hv()),Qc.exports}var s=Bv(),Vc={exports:{}},ye={};var mm;function qv(){if(mm)return ye;mm=1;var i=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),m=Symbol.for("react.consumer"),h=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),M=Symbol.iterator;function w(b){return b===null||typeof b!="object"?null:(b=M&&b[M]||b["@@iterator"],typeof b=="function"?b:null)}var I={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q=Object.assign,ae={};function se(b,k,V){this.props=b,this.context=k,this.refs=ae,this.updater=V||I}se.prototype.isReactComponent={},se.prototype.setState=function(b,k){if(typeof b!="object"&&typeof b!="function"&&b!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,b,k,"setState")},se.prototype.forceUpdate=function(b){this.updater.enqueueForceUpdate(this,b,"forceUpdate")};function T(){}T.prototype=se.prototype;function A(b,k,V){this.props=b,this.context=k,this.refs=ae,this.updater=V||I}var O=A.prototype=new T;O.constructor=A,q(O,se.prototype),O.isPureReactComponent=!0;var Z=Array.isArray;function L(){}var E={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function F(b,k,V){var $=V.ref;return{$$typeof:i,type:b,key:k,ref:$!==void 0?$:null,props:V}}function P(b,k){return F(b.type,k,b.props)}function K(b){return typeof b=="object"&&b!==null&&b.$$typeof===i}function W(b){var k={"=":"=0",":":"=2"};return"$"+b.replace(/[=:]/g,function(V){return k[V]})}var oe=/\/+/g;function X(b,k){return typeof b=="object"&&b!==null&&b.key!=null?W(""+b.key):k.toString(36)}function ce(b){switch(b.status){case"fulfilled":return b.value;case"rejected":throw b.reason;default:switch(typeof b.status=="string"?b.then(L,L):(b.status="pending",b.then(function(k){b.status==="pending"&&(b.status="fulfilled",b.value=k)},function(k){b.status==="pending"&&(b.status="rejected",b.reason=k)})),b.status){case"fulfilled":return b.value;case"rejected":throw b.reason}}throw b}function S(b,k,V,$,me){var re=typeof b;(re==="undefined"||re==="boolean")&&(b=null);var le=!1;if(b===null)le=!0;else switch(re){case"bigint":case"string":case"number":le=!0;break;case"object":switch(b.$$typeof){case i:case r:le=!0;break;case R:return le=b._init,S(le(b._payload),k,V,$,me)}}if(le)return me=me(b),le=$===""?"."+X(b,0):$,Z(me)?(V="",le!=null&&(V=le.replace(oe,"$&/")+"/"),S(me,k,V,"",function(Ae){return Ae})):me!=null&&(K(me)&&(me=P(me,V+(me.key==null||b&&b.key===me.key?"":(""+me.key).replace(oe,"$&/")+"/")+le)),k.push(me)),1;le=0;var de=$===""?".":$+":";if(Z(b))for(var ue=0;ue<b.length;ue++)$=b[ue],re=de+X($,ue),le+=S($,k,V,re,me);else if(ue=w(b),typeof ue=="function")for(b=ue.call(b),ue=0;!($=b.next()).done;)$=$.value,re=de+X($,ue++),le+=S($,k,V,re,me);else if(re==="object"){if(typeof b.then=="function")return S(ce(b),k,V,$,me);throw k=String(b),Error("Objects are not valid as a React child (found: "+(k==="[object Object]"?"object with keys {"+Object.keys(b).join(", ")+"}":k)+"). If you meant to render a collection of children, use an array instead.")}return le}function z(b,k,V){if(b==null)return b;var $=[],me=0;return S(b,$,"","",function(re){return k.call(V,re,me++)}),$}function _(b){if(b._status===-1){var k=b._result;k=k(),k.then(function(V){(b._status===0||b._status===-1)&&(b._status=1,b._result=V)},function(V){(b._status===0||b._status===-1)&&(b._status=2,b._result=V)}),b._status===-1&&(b._status=0,b._result=k)}if(b._status===1)return b._result.default;throw b._result}var ie=typeof reportError=="function"?reportError:function(b){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var k=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof b=="object"&&b!==null&&typeof b.message=="string"?String(b.message):String(b),error:b});if(!window.dispatchEvent(k))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",b);return}console.error(b)},ee={map:z,forEach:function(b,k,V){z(b,function(){k.apply(this,arguments)},V)},count:function(b){var k=0;return z(b,function(){k++}),k},toArray:function(b){return z(b,function(k){return k})||[]},only:function(b){if(!K(b))throw Error("React.Children.only expected to receive a single React element child.");return b}};return ye.Activity=j,ye.Children=ee,ye.Component=se,ye.Fragment=c,ye.Profiler=f,ye.PureComponent=A,ye.StrictMode=u,ye.Suspense=x,ye.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=E,ye.__COMPILER_RUNTIME={__proto__:null,c:function(b){return E.H.useMemoCache(b)}},ye.cache=function(b){return function(){return b.apply(null,arguments)}},ye.cacheSignal=function(){return null},ye.cloneElement=function(b,k,V){if(b==null)throw Error("The argument must be a React element, but you passed "+b+".");var $=q({},b.props),me=b.key;if(k!=null)for(re in k.key!==void 0&&(me=""+k.key),k)!Y.call(k,re)||re==="key"||re==="__self"||re==="__source"||re==="ref"&&k.ref===void 0||($[re]=k[re]);var re=arguments.length-2;if(re===1)$.children=V;else if(1<re){for(var le=Array(re),de=0;de<re;de++)le[de]=arguments[de+2];$.children=le}return F(b.type,me,$)},ye.createContext=function(b){return b={$$typeof:h,_currentValue:b,_currentValue2:b,_threadCount:0,Provider:null,Consumer:null},b.Provider=b,b.Consumer={$$typeof:m,_context:b},b},ye.createElement=function(b,k,V){var $,me={},re=null;if(k!=null)for($ in k.key!==void 0&&(re=""+k.key),k)Y.call(k,$)&&$!=="key"&&$!=="__self"&&$!=="__source"&&(me[$]=k[$]);var le=arguments.length-2;if(le===1)me.children=V;else if(1<le){for(var de=Array(le),ue=0;ue<le;ue++)de[ue]=arguments[ue+2];me.children=de}if(b&&b.defaultProps)for($ in le=b.defaultProps,le)me[$]===void 0&&(me[$]=le[$]);return F(b,re,me)},ye.createRef=function(){return{current:null}},ye.forwardRef=function(b){return{$$typeof:g,render:b}},ye.isValidElement=K,ye.lazy=function(b){return{$$typeof:R,_payload:{_status:-1,_result:b},_init:_}},ye.memo=function(b,k){return{$$typeof:y,type:b,compare:k===void 0?null:k}},ye.startTransition=function(b){var k=E.T,V={};E.T=V;try{var $=b(),me=E.S;me!==null&&me(V,$),typeof $=="object"&&$!==null&&typeof $.then=="function"&&$.then(L,ie)}catch(re){ie(re)}finally{k!==null&&V.types!==null&&(k.types=V.types),E.T=k}},ye.unstable_useCacheRefresh=function(){return E.H.useCacheRefresh()},ye.use=function(b){return E.H.use(b)},ye.useActionState=function(b,k,V){return E.H.useActionState(b,k,V)},ye.useCallback=function(b,k){return E.H.useCallback(b,k)},ye.useContext=function(b){return E.H.useContext(b)},ye.useDebugValue=function(){},ye.useDeferredValue=function(b,k){return E.H.useDeferredValue(b,k)},ye.useEffect=function(b,k){return E.H.useEffect(b,k)},ye.useEffectEvent=function(b){return E.H.useEffectEvent(b)},ye.useId=function(){return E.H.useId()},ye.useImperativeHandle=function(b,k,V){return E.H.useImperativeHandle(b,k,V)},ye.useInsertionEffect=function(b,k){return E.H.useInsertionEffect(b,k)},ye.useLayoutEffect=function(b,k){return E.H.useLayoutEffect(b,k)},ye.useMemo=function(b,k){return E.H.useMemo(b,k)},ye.useOptimistic=function(b,k){return E.H.useOptimistic(b,k)},ye.useReducer=function(b,k,V){return E.H.useReducer(b,k,V)},ye.useRef=function(b){return E.H.useRef(b)},ye.useState=function(b){return E.H.useState(b)},ye.useSyncExternalStore=function(b,k,V){return E.H.useSyncExternalStore(b,k,V)},ye.useTransition=function(){return E.H.useTransition()},ye.version="19.2.8",ye}var hm;function co(){return hm||(hm=1,Vc.exports=qv()),Vc.exports}var p=co(),Zc={exports:{}},tl={},Jc={exports:{}},Fc={};var pm;function Gv(){return pm||(pm=1,(function(i){function r(S,z){var _=S.length;S.push(z);e:for(;0<_;){var ie=_-1>>>1,ee=S[ie];if(0<f(ee,z))S[ie]=z,S[_]=ee,_=ie;else break e}}function c(S){return S.length===0?null:S[0]}function u(S){if(S.length===0)return null;var z=S[0],_=S.pop();if(_!==z){S[0]=_;e:for(var ie=0,ee=S.length,b=ee>>>1;ie<b;){var k=2*(ie+1)-1,V=S[k],$=k+1,me=S[$];if(0>f(V,_))$<ee&&0>f(me,V)?(S[ie]=me,S[$]=_,ie=$):(S[ie]=V,S[k]=_,ie=k);else if($<ee&&0>f(me,_))S[ie]=me,S[$]=_,ie=$;else break e}}return z}function f(S,z){var _=S.sortIndex-z.sortIndex;return _!==0?_:S.id-z.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var m=performance;i.unstable_now=function(){return m.now()}}else{var h=Date,g=h.now();i.unstable_now=function(){return h.now()-g}}var x=[],y=[],R=1,j=null,M=3,w=!1,I=!1,q=!1,ae=!1,se=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function O(S){for(var z=c(y);z!==null;){if(z.callback===null)u(y);else if(z.startTime<=S)u(y),z.sortIndex=z.expirationTime,r(x,z);else break;z=c(y)}}function Z(S){if(q=!1,O(S),!I)if(c(x)!==null)I=!0,L||(L=!0,W());else{var z=c(y);z!==null&&ce(Z,z.startTime-S)}}var L=!1,E=-1,Y=5,F=-1;function P(){return ae?!0:!(i.unstable_now()-F<Y)}function K(){if(ae=!1,L){var S=i.unstable_now();F=S;var z=!0;try{e:{I=!1,q&&(q=!1,T(E),E=-1),w=!0;var _=M;try{t:{for(O(S),j=c(x);j!==null&&!(j.expirationTime>S&&P());){var ie=j.callback;if(typeof ie=="function"){j.callback=null,M=j.priorityLevel;var ee=ie(j.expirationTime<=S);if(S=i.unstable_now(),typeof ee=="function"){j.callback=ee,O(S),z=!0;break t}j===c(x)&&u(x),O(S)}else u(x);j=c(x)}if(j!==null)z=!0;else{var b=c(y);b!==null&&ce(Z,b.startTime-S),z=!1}}break e}finally{j=null,M=_,w=!1}z=void 0}}finally{z?W():L=!1}}}var W;if(typeof A=="function")W=function(){A(K)};else if(typeof MessageChannel<"u"){var oe=new MessageChannel,X=oe.port2;oe.port1.onmessage=K,W=function(){X.postMessage(null)}}else W=function(){se(K,0)};function ce(S,z){E=se(function(){S(i.unstable_now())},z)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(S){S.callback=null},i.unstable_forceFrameRate=function(S){0>S||125<S?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Y=0<S?Math.floor(1e3/S):5},i.unstable_getCurrentPriorityLevel=function(){return M},i.unstable_next=function(S){switch(M){case 1:case 2:case 3:var z=3;break;default:z=M}var _=M;M=z;try{return S()}finally{M=_}},i.unstable_requestPaint=function(){ae=!0},i.unstable_runWithPriority=function(S,z){switch(S){case 1:case 2:case 3:case 4:case 5:break;default:S=3}var _=M;M=S;try{return z()}finally{M=_}},i.unstable_scheduleCallback=function(S,z,_){var ie=i.unstable_now();switch(typeof _=="object"&&_!==null?(_=_.delay,_=typeof _=="number"&&0<_?ie+_:ie):_=ie,S){case 1:var ee=-1;break;case 2:ee=250;break;case 5:ee=1073741823;break;case 4:ee=1e4;break;default:ee=5e3}return ee=_+ee,S={id:R++,callback:z,priorityLevel:S,startTime:_,expirationTime:ee,sortIndex:-1},_>ie?(S.sortIndex=_,r(y,S),c(x)===null&&S===c(y)&&(q?(T(E),E=-1):q=!0,ce(Z,_-ie))):(S.sortIndex=ee,r(x,S),I||w||(I=!0,L||(L=!0,W()))),S},i.unstable_shouldYield=P,i.unstable_wrapCallback=function(S){var z=M;return function(){var _=M;M=z;try{return S.apply(this,arguments)}finally{M=_}}}})(Fc)),Fc}var vm;function $v(){return vm||(vm=1,Jc.exports=Gv()),Jc.exports}var Wc={exports:{}},pt={};var gm;function Yv(){if(gm)return pt;gm=1;var i=co();function r(x){var y="https://react.dev/errors/"+x;if(1<arguments.length){y+="?args[]="+encodeURIComponent(arguments[1]);for(var R=2;R<arguments.length;R++)y+="&args[]="+encodeURIComponent(arguments[R])}return"Minified React error #"+x+"; visit "+y+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(){}var u={d:{f:c,r:function(){throw Error(r(522))},D:c,C:c,L:c,m:c,X:c,S:c,M:c},p:0,findDOMNode:null},f=Symbol.for("react.portal");function m(x,y,R){var j=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:f,key:j==null?null:""+j,children:x,containerInfo:y,implementation:R}}var h=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function g(x,y){if(x==="font")return"";if(typeof y=="string")return y==="use-credentials"?y:""}return pt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,pt.createPortal=function(x,y){var R=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!y||y.nodeType!==1&&y.nodeType!==9&&y.nodeType!==11)throw Error(r(299));return m(x,y,null,R)},pt.flushSync=function(x){var y=h.T,R=u.p;try{if(h.T=null,u.p=2,x)return x()}finally{h.T=y,u.p=R,u.d.f()}},pt.preconnect=function(x,y){typeof x=="string"&&(y?(y=y.crossOrigin,y=typeof y=="string"?y==="use-credentials"?y:"":void 0):y=null,u.d.C(x,y))},pt.prefetchDNS=function(x){typeof x=="string"&&u.d.D(x)},pt.preinit=function(x,y){if(typeof x=="string"&&y&&typeof y.as=="string"){var R=y.as,j=g(R,y.crossOrigin),M=typeof y.integrity=="string"?y.integrity:void 0,w=typeof y.fetchPriority=="string"?y.fetchPriority:void 0;R==="style"?u.d.S(x,typeof y.precedence=="string"?y.precedence:void 0,{crossOrigin:j,integrity:M,fetchPriority:w}):R==="script"&&u.d.X(x,{crossOrigin:j,integrity:M,fetchPriority:w,nonce:typeof y.nonce=="string"?y.nonce:void 0})}},pt.preinitModule=function(x,y){if(typeof x=="string")if(typeof y=="object"&&y!==null){if(y.as==null||y.as==="script"){var R=g(y.as,y.crossOrigin);u.d.M(x,{crossOrigin:R,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0})}}else y==null&&u.d.M(x)},pt.preload=function(x,y){if(typeof x=="string"&&typeof y=="object"&&y!==null&&typeof y.as=="string"){var R=y.as,j=g(R,y.crossOrigin);u.d.L(x,R,{crossOrigin:j,integrity:typeof y.integrity=="string"?y.integrity:void 0,nonce:typeof y.nonce=="string"?y.nonce:void 0,type:typeof y.type=="string"?y.type:void 0,fetchPriority:typeof y.fetchPriority=="string"?y.fetchPriority:void 0,referrerPolicy:typeof y.referrerPolicy=="string"?y.referrerPolicy:void 0,imageSrcSet:typeof y.imageSrcSet=="string"?y.imageSrcSet:void 0,imageSizes:typeof y.imageSizes=="string"?y.imageSizes:void 0,media:typeof y.media=="string"?y.media:void 0})}},pt.preloadModule=function(x,y){if(typeof x=="string")if(y){var R=g(y.as,y.crossOrigin);u.d.m(x,{as:typeof y.as=="string"&&y.as!=="script"?y.as:void 0,crossOrigin:R,integrity:typeof y.integrity=="string"?y.integrity:void 0})}else u.d.m(x)},pt.requestFormReset=function(x){u.d.r(x)},pt.unstable_batchedUpdates=function(x,y){return x(y)},pt.useFormState=function(x,y,R){return h.H.useFormState(x,y,R)},pt.useFormStatus=function(){return h.H.useHostTransitionStatus()},pt.version="19.2.8",pt}var ym;function Kv(){if(ym)return Wc.exports;ym=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(r){console.error(r)}}return i(),Wc.exports=Yv(),Wc.exports}var bm;function Xv(){if(bm)return tl;bm=1;var i=$v(),r=co(),c=Kv();function u(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function f(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function m(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function h(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function g(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function x(e){if(m(e)!==e)throw Error(u(188))}function y(e){var t=e.alternate;if(!t){if(t=m(e),t===null)throw Error(u(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var o=l.alternate;if(o===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===n)return x(l),e;if(o===a)return x(l),t;o=o.sibling}throw Error(u(188))}if(n.return!==a.return)n=l,a=o;else{for(var d=!1,v=l.child;v;){if(v===n){d=!0,n=l,a=o;break}if(v===a){d=!0,a=l,n=o;break}v=v.sibling}if(!d){for(v=o.child;v;){if(v===n){d=!0,n=o,a=l;break}if(v===a){d=!0,a=o,n=l;break}v=v.sibling}if(!d)throw Error(u(189))}}if(n.alternate!==a)throw Error(u(190))}if(n.tag!==3)throw Error(u(188));return n.stateNode.current===n?e:t}function R(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=R(e),t!==null)return t;e=e.sibling}return null}var j=Object.assign,M=Symbol.for("react.element"),w=Symbol.for("react.transitional.element"),I=Symbol.for("react.portal"),q=Symbol.for("react.fragment"),ae=Symbol.for("react.strict_mode"),se=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),A=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),Z=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),F=Symbol.for("react.activity"),P=Symbol.for("react.memo_cache_sentinel"),K=Symbol.iterator;function W(e){return e===null||typeof e!="object"?null:(e=K&&e[K]||e["@@iterator"],typeof e=="function"?e:null)}var oe=Symbol.for("react.client.reference");function X(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===oe?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case q:return"Fragment";case se:return"Profiler";case ae:return"StrictMode";case Z:return"Suspense";case L:return"SuspenseList";case F:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case I:return"Portal";case A:return e.displayName||"Context";case T:return(e._context.displayName||"Context")+".Consumer";case O:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case E:return t=e.displayName||null,t!==null?t:X(e.type)||"Memo";case Y:t=e._payload,e=e._init;try{return X(e(t))}catch{}}return null}var ce=Array.isArray,S=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,z=c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_={pending:!1,data:null,method:null,action:null},ie=[],ee=-1;function b(e){return{current:e}}function k(e){0>ee||(e.current=ie[ee],ie[ee]=null,ee--)}function V(e,t){ee++,ie[ee]=e.current,e.current=t}var $=b(null),me=b(null),re=b(null),le=b(null);function de(e,t){switch(V(re,t),V(me,e),V($,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?_f(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=_f(t),e=If(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}k($),V($,e)}function ue(){k($),k(me),k(re)}function Ae(e){e.memoizedState!==null&&V(le,e);var t=$.current,n=If(t,e.type);t!==n&&(V(me,e),V($,n))}function De(e){me.current===e&&(k($),k(me)),le.current===e&&(k(le),Js._currentValue=_)}var Ye,mt;function be(e){if(Ye===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ye=t&&t[1]||"",mt=-1<n.stack.indexOf(`
2
+ at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
3
+ `+Ye+e+mt}var Re=!1;function ze(e,t){if(!e||Re)return"";Re=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var te=function(){throw Error()};if(Object.defineProperty(te.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(te,[])}catch(G){var B=G}Reflect.construct(e,[],te)}else{try{te.call()}catch(G){B=G}e.call(te.prototype)}}else{try{throw Error()}catch(G){B=G}(te=e())&&typeof te.catch=="function"&&te.catch(function(){})}}catch(G){if(G&&B&&typeof G.stack=="string")return[G.stack,B.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=a.DetermineComponentFrameRoot(),d=o[0],v=o[1];if(d&&v){var N=d.split(`
4
+ `),H=v.split(`
5
+ `);for(l=a=0;a<N.length&&!N[a].includes("DetermineComponentFrameRoot");)a++;for(;l<H.length&&!H[l].includes("DetermineComponentFrameRoot");)l++;if(a===N.length||l===H.length)for(a=N.length-1,l=H.length-1;1<=a&&0<=l&&N[a]!==H[l];)l--;for(;1<=a&&0<=l;a--,l--)if(N[a]!==H[l]){if(a!==1||l!==1)do if(a--,l--,0>l||N[a]!==H[l]){var Q=`
6
+ `+N[a].replace(" at new "," at ");return e.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",e.displayName)),Q}while(1<=a&&0<=l);break}}}finally{Re=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?be(n):""}function qe(e,t){switch(e.tag){case 26:case 27:case 5:return be(e.type);case 16:return be("Lazy");case 13:return e.child!==t&&t!==null?be("Suspense Fallback"):be("Suspense");case 19:return be("SuspenseList");case 0:case 15:return ze(e.type,!1);case 11:return ze(e.type.render,!1);case 1:return ze(e.type,!0);case 31:return be("Activity");default:return""}}function It(e){try{var t="",n=null;do t+=qe(e,n),n=e,e=e.return;while(e);return t}catch(a){return`
7
+ Error generating stack: `+a.message+`
8
+ `+a.stack}}var zt=Object.prototype.hasOwnProperty,vt=i.unstable_scheduleCallback,en=i.unstable_cancelCallback,ya=i.unstable_shouldYield,ne=i.unstable_requestPaint,ve=i.unstable_now,Lt=i.unstable_getCurrentPriorityLevel,Ut=i.unstable_ImmediatePriority,il=i.unstable_UserBlockingPriority,ba=i.unstable_NormalPriority,Oe=i.unstable_LowPriority,at=i.unstable_IdlePriority,Ke=i.log,Tt=i.unstable_setDisableYieldValue,Ht=null,gt=null;function rt(e){if(typeof Ke=="function"&&Tt(e),gt&&typeof gt.setStrictMode=="function")try{gt.setStrictMode(Ht,e)}catch{}}var ht=Math.clz32?Math.clz32:Ch,Nh=Math.log,Rh=Math.LN2;function Ch(e){return e>>>=0,e===0?32:31-(Nh(e)/Rh|0)|0}var rl=256,cl=262144,ol=4194304;function Fn(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ul(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,o=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var v=a&134217727;return v!==0?(a=v&~o,a!==0?l=Fn(a):(d&=v,d!==0?l=Fn(d):n||(n=v&~e,n!==0&&(l=Fn(n))))):(v=a&~o,v!==0?l=Fn(v):d!==0?l=Fn(d):n||(n=a&~e,n!==0&&(l=Fn(n)))),l===0?0:t!==0&&t!==l&&(t&o)===0&&(o=l&-l,n=t&-t,o>=n||o===32&&(n&4194048)!==0)?t:l}function os(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Th(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ho(){var e=ol;return ol<<=1,(ol&62914560)===0&&(ol=4194304),e}function Ii(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function us(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Eh(e,t,n,a,l,o){var d=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var v=e.entanglements,N=e.expirationTimes,H=e.hiddenUpdates;for(n=d&~n;0<n;){var Q=31-ht(n),te=1<<Q;v[Q]=0,N[Q]=-1;var B=H[Q];if(B!==null)for(H[Q]=null,Q=0;Q<B.length;Q++){var G=B[Q];G!==null&&(G.lane&=-536870913)}n&=~te}a!==0&&po(e,a,0),o!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=o&~(d&~t))}function po(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-ht(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function vo(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-ht(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function go(e,t){var n=t&-t;return n=(n&42)!==0?1:zi(n),(n&(e.suspendedLanes|t))!==0?0:n}function zi(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 Li(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function yo(){var e=z.p;return e!==0?e:(e=window.event,e===void 0?32:sm(e.type))}function bo(e,t){var n=z.p;try{return z.p=e,t()}finally{z.p=n}}var Tn=Math.random().toString(36).slice(2),ct="__reactFiber$"+Tn,bt="__reactProps$"+Tn,xa="__reactContainer$"+Tn,Ui="__reactEvents$"+Tn,wh="__reactListeners$"+Tn,kh="__reactHandles$"+Tn,xo="__reactResources$"+Tn,ds="__reactMarker$"+Tn;function Hi(e){delete e[ct],delete e[bt],delete e[Ui],delete e[wh],delete e[kh]}function Sa(e){var t=e[ct];if(t)return t;for(var n=e.parentNode;n;){if(t=n[xa]||n[ct]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Gf(e);e!==null;){if(n=e[ct])return n;e=Gf(e)}return t}e=n,n=e.parentNode}return null}function ja(e){if(e=e[ct]||e[xa]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function fs(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(u(33))}function Na(e){var t=e[xo];return t||(t=e[xo]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function lt(e){e[ds]=!0}var So=new Set,jo={};function Wn(e,t){Ra(e,t),Ra(e+"Capture",t)}function Ra(e,t){for(jo[e]=t,e=0;e<t.length;e++)So.add(t[e])}var Ah=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),No={},Ro={};function Dh(e){return zt.call(Ro,e)?!0:zt.call(No,e)?!1:Ah.test(e)?Ro[e]=!0:(No[e]=!0,!1)}function dl(e,t,n){if(Dh(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function fl(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function ln(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Bt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Co(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Oh(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,o=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(d){n=""+d,o.call(this,d)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(d){n=""+d},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Bi(e){if(!e._valueTracker){var t=Co(e)?"checked":"value";e._valueTracker=Oh(e,t,""+e[t])}}function To(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Co(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function ml(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Mh=/[\n"\\]/g;function qt(e){return e.replace(Mh,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function qi(e,t,n,a,l,o,d,v){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Bt(t)):e.value!==""+Bt(t)&&(e.value=""+Bt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?Gi(e,d,Bt(t)):n!=null?Gi(e,d,Bt(n)):a!=null&&e.removeAttribute("value"),l==null&&o!=null&&(e.defaultChecked=!!o),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.name=""+Bt(v):e.removeAttribute("name")}function Eo(e,t,n,a,l,o,d,v){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.type=o),t!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||t!=null)){Bi(e);return}n=n!=null?""+Bt(n):"",t=t!=null?""+Bt(t):n,v||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=v?e.checked:!!a,e.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),Bi(e)}function Gi(e,t,n){t==="number"&&ml(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ca(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Bt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function wo(e,t,n){if(t!=null&&(t=""+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Bt(n):""}function ko(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(u(92));if(ce(a)){if(1<a.length)throw Error(u(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Bt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Bi(e)}function Ta(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var _h=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Ao(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||_h.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Do(e,t,n){if(t!=null&&typeof t!="object")throw Error(u(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&Ao(e,l,a)}else for(var o in t)t.hasOwnProperty(o)&&Ao(e,o,t[o])}function $i(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ih=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),zh=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function hl(e){return zh.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function rn(){}var Yi=null;function Ki(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ea=null,wa=null;function Oo(e){var t=ja(e);if(t&&(e=t.stateNode)){var n=e[bt]||null;e:switch(e=t.stateNode,t.type){case"input":if(qi(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+qt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[bt]||null;if(!l)throw Error(u(90));qi(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&&To(a)}break e;case"textarea":wo(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ca(e,!!n.multiple,t,!1)}}}var Xi=!1;function Mo(e,t,n){if(Xi)return e(t,n);Xi=!0;try{var a=e(t);return a}finally{if(Xi=!1,(Ea!==null||wa!==null)&&(ti(),Ea&&(t=Ea,e=wa,wa=Ea=null,Oo(t),e)))for(t=0;t<e.length;t++)Oo(e[t])}}function ms(e,t){var n=e.stateNode;if(n===null)return null;var a=n[bt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(u(231,t,typeof n));return n}var cn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qi=!1;if(cn)try{var hs={};Object.defineProperty(hs,"passive",{get:function(){Qi=!0}}),window.addEventListener("test",hs,hs),window.removeEventListener("test",hs,hs)}catch{Qi=!1}var En=null,Vi=null,pl=null;function _o(){if(pl)return pl;var e,t=Vi,n=t.length,a,l="value"in En?En.value:En.textContent,o=l.length;for(e=0;e<n&&t[e]===l[e];e++);var d=n-e;for(a=1;a<=d&&t[n-a]===l[o-a];a++);return pl=l.slice(e,1<a?1-a:void 0)}function vl(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 gl(){return!0}function Io(){return!1}function xt(e){function t(n,a,l,o,d){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=o,this.target=d,this.currentTarget=null;for(var v in e)e.hasOwnProperty(v)&&(n=e[v],this[v]=n?n(o):o[v]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?gl:Io,this.isPropagationStopped=Io,this}return j(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=gl)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=gl)},persist:function(){},isPersistent:gl}),t}var Pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},yl=xt(Pn),ps=j({},Pn,{view:0,detail:0}),Lh=xt(ps),Zi,Ji,vs,bl=j({},ps,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Wi,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!==vs&&(vs&&e.type==="mousemove"?(Zi=e.screenX-vs.screenX,Ji=e.screenY-vs.screenY):Ji=Zi=0,vs=e),Zi)},movementY:function(e){return"movementY"in e?e.movementY:Ji}}),zo=xt(bl),Uh=j({},bl,{dataTransfer:0}),Hh=xt(Uh),Bh=j({},ps,{relatedTarget:0}),Fi=xt(Bh),qh=j({},Pn,{animationName:0,elapsedTime:0,pseudoElement:0}),Gh=xt(qh),$h=j({},Pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Yh=xt($h),Kh=j({},Pn,{data:0}),Lo=xt(Kh),Xh={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Qh={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Vh={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zh(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Vh[e])?!!t[e]:!1}function Wi(){return Zh}var Jh=j({},ps,{key:function(e){if(e.key){var t=Xh[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=vl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Qh[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Wi,charCode:function(e){return e.type==="keypress"?vl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?vl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Fh=xt(Jh),Wh=j({},bl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Uo=xt(Wh),Ph=j({},ps,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Wi}),ep=xt(Ph),tp=j({},Pn,{propertyName:0,elapsedTime:0,pseudoElement:0}),np=xt(tp),ap=j({},bl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),sp=xt(ap),lp=j({},Pn,{newState:0,oldState:0}),ip=xt(lp),rp=[9,13,27,32],Pi=cn&&"CompositionEvent"in window,gs=null;cn&&"documentMode"in document&&(gs=document.documentMode);var cp=cn&&"TextEvent"in window&&!gs,Ho=cn&&(!Pi||gs&&8<gs&&11>=gs),Bo=" ",qo=!1;function Go(e,t){switch(e){case"keyup":return rp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $o(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ka=!1;function op(e,t){switch(e){case"compositionend":return $o(t);case"keypress":return t.which!==32?null:(qo=!0,Bo);case"textInput":return e=t.data,e===Bo&&qo?null:e;default:return null}}function up(e,t){if(ka)return e==="compositionend"||!Pi&&Go(e,t)?(e=_o(),pl=Vi=En=null,ka=!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 Ho&&t.locale!=="ko"?null:t.data;default:return null}}var dp={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Yo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!dp[e.type]:t==="textarea"}function Ko(e,t,n,a){Ea?wa?wa.push(a):wa=[a]:Ea=a,t=ci(t,"onChange"),0<t.length&&(n=new yl("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var ys=null,bs=null;function fp(e){wf(e,0)}function xl(e){var t=fs(e);if(To(t))return e}function Xo(e,t){if(e==="change")return t}var Qo=!1;if(cn){var er;if(cn){var tr="oninput"in document;if(!tr){var Vo=document.createElement("div");Vo.setAttribute("oninput","return;"),tr=typeof Vo.oninput=="function"}er=tr}else er=!1;Qo=er&&(!document.documentMode||9<document.documentMode)}function Zo(){ys&&(ys.detachEvent("onpropertychange",Jo),bs=ys=null)}function Jo(e){if(e.propertyName==="value"&&xl(bs)){var t=[];Ko(t,bs,e,Ki(e)),Mo(fp,t)}}function mp(e,t,n){e==="focusin"?(Zo(),ys=t,bs=n,ys.attachEvent("onpropertychange",Jo)):e==="focusout"&&Zo()}function hp(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return xl(bs)}function pp(e,t){if(e==="click")return xl(t)}function vp(e,t){if(e==="input"||e==="change")return xl(t)}function gp(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Et=typeof Object.is=="function"?Object.is:gp;function xs(e,t){if(Et(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!zt.call(t,l)||!Et(e[l],t[l]))return!1}return!0}function Fo(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Wo(e,t){var n=Fo(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=Fo(n)}}function Po(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Po(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function eu(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ml(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ml(e.document)}return t}function nr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var yp=cn&&"documentMode"in document&&11>=document.documentMode,Aa=null,ar=null,Ss=null,sr=!1;function tu(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;sr||Aa==null||Aa!==ml(a)||(a=Aa,"selectionStart"in a&&nr(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}),Ss&&xs(Ss,a)||(Ss=a,a=ci(ar,"onSelect"),0<a.length&&(t=new yl("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Aa)))}function ea(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Da={animationend:ea("Animation","AnimationEnd"),animationiteration:ea("Animation","AnimationIteration"),animationstart:ea("Animation","AnimationStart"),transitionrun:ea("Transition","TransitionRun"),transitionstart:ea("Transition","TransitionStart"),transitioncancel:ea("Transition","TransitionCancel"),transitionend:ea("Transition","TransitionEnd")},lr={},nu={};cn&&(nu=document.createElement("div").style,"AnimationEvent"in window||(delete Da.animationend.animation,delete Da.animationiteration.animation,delete Da.animationstart.animation),"TransitionEvent"in window||delete Da.transitionend.transition);function ta(e){if(lr[e])return lr[e];if(!Da[e])return e;var t=Da[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in nu)return lr[e]=t[n];return e}var au=ta("animationend"),su=ta("animationiteration"),lu=ta("animationstart"),bp=ta("transitionrun"),xp=ta("transitionstart"),Sp=ta("transitioncancel"),iu=ta("transitionend"),ru=new Map,ir="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(" ");ir.push("scrollEnd");function Jt(e,t){ru.set(e,t),Wn(t,[e])}var Sl=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Oa=0,rr=0;function jl(){for(var e=Oa,t=rr=Oa=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var l=Gt[t];Gt[t++]=null;var o=Gt[t];if(Gt[t++]=null,a!==null&&l!==null){var d=a.pending;d===null?l.next=l:(l.next=d.next,d.next=l),a.pending=l}o!==0&&cu(n,l,o)}}function Nl(e,t,n,a){Gt[Oa++]=e,Gt[Oa++]=t,Gt[Oa++]=n,Gt[Oa++]=a,rr|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function cr(e,t,n,a){return Nl(e,t,n,a),Rl(e)}function na(e,t){return Nl(e,null,null,t),Rl(e)}function cu(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,o=e.return;o!==null;)o.childLanes|=n,a=o.alternate,a!==null&&(a.childLanes|=n),o.tag===22&&(e=o.stateNode,e===null||e._visibility&1||(l=!0)),e=o,o=o.return;return e.tag===3?(o=e.stateNode,l&&t!==null&&(l=31-ht(n),e=o.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),o):null}function Rl(e){if(50<$s)throw $s=0,gc=null,Error(u(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Ma={};function jp(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wt(e,t,n,a){return new jp(e,t,n,a)}function or(e){return e=e.prototype,!(!e||!e.isReactComponent)}function on(e,t){var n=e.alternate;return n===null?(n=wt(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 ou(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Cl(e,t,n,a,l,o){var d=0;if(a=e,typeof e=="function")or(e)&&(d=1);else if(typeof e=="string")d=Ev(e,n,$.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case F:return e=wt(31,n,t,l),e.elementType=F,e.lanes=o,e;case q:return aa(n.children,l,o,t);case ae:d=8,l|=24;break;case se:return e=wt(12,n,t,l|2),e.elementType=se,e.lanes=o,e;case Z:return e=wt(13,n,t,l),e.elementType=Z,e.lanes=o,e;case L:return e=wt(19,n,t,l),e.elementType=L,e.lanes=o,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case A:d=10;break e;case T:d=9;break e;case O:d=11;break e;case E:d=14;break e;case Y:d=16,a=null;break e}d=29,n=Error(u(130,e===null?"null":typeof e,"")),a=null}return t=wt(d,n,t,l),t.elementType=e,t.type=a,t.lanes=o,t}function aa(e,t,n,a){return e=wt(7,e,a,t),e.lanes=n,e}function ur(e,t,n){return e=wt(6,e,null,t),e.lanes=n,e}function uu(e){var t=wt(18,null,null,0);return t.stateNode=e,t}function dr(e,t,n){return t=wt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var du=new WeakMap;function $t(e,t){if(typeof e=="object"&&e!==null){var n=du.get(e);return n!==void 0?n:(t={value:e,source:t,stack:It(t)},du.set(e,t),t)}return{value:e,source:t,stack:It(t)}}var _a=[],Ia=0,Tl=null,js=0,Yt=[],Kt=0,wn=null,tn=1,nn="";function un(e,t){_a[Ia++]=js,_a[Ia++]=Tl,Tl=e,js=t}function fu(e,t,n){Yt[Kt++]=tn,Yt[Kt++]=nn,Yt[Kt++]=wn,wn=e;var a=tn;e=nn;var l=32-ht(a)-1;a&=~(1<<l),n+=1;var o=32-ht(t)+l;if(30<o){var d=l-l%5;o=(a&(1<<d)-1).toString(32),a>>=d,l-=d,tn=1<<32-ht(t)+l|n<<l|a,nn=o+e}else tn=1<<o|n<<l|a,nn=e}function fr(e){e.return!==null&&(un(e,1),fu(e,1,0))}function mr(e){for(;e===Tl;)Tl=_a[--Ia],_a[Ia]=null,js=_a[--Ia],_a[Ia]=null;for(;e===wn;)wn=Yt[--Kt],Yt[Kt]=null,nn=Yt[--Kt],Yt[Kt]=null,tn=Yt[--Kt],Yt[Kt]=null}function mu(e,t){Yt[Kt++]=tn,Yt[Kt++]=nn,Yt[Kt++]=wn,tn=t.id,nn=t.overflow,wn=e}var ot=null,Ge=null,Ee=!1,kn=null,Xt=!1,hr=Error(u(519));function An(e){var t=Error(u(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Ns($t(t,e)),hr}function hu(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[ct]=e,t[bt]=a,n){case"dialog":Ne("cancel",t),Ne("close",t);break;case"iframe":case"object":case"embed":Ne("load",t);break;case"video":case"audio":for(n=0;n<Ks.length;n++)Ne(Ks[n],t);break;case"source":Ne("error",t);break;case"img":case"image":case"link":Ne("error",t),Ne("load",t);break;case"details":Ne("toggle",t);break;case"input":Ne("invalid",t),Eo(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":Ne("invalid",t);break;case"textarea":Ne("invalid",t),ko(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||Of(t.textContent,n)?(a.popover!=null&&(Ne("beforetoggle",t),Ne("toggle",t)),a.onScroll!=null&&Ne("scroll",t),a.onScrollEnd!=null&&Ne("scrollend",t),a.onClick!=null&&(t.onclick=rn),t=!0):t=!1,t||An(e,!0)}function pu(e){for(ot=e.return;ot;)switch(ot.tag){case 5:case 31:case 13:Xt=!1;return;case 27:case 3:Xt=!0;return;default:ot=ot.return}}function za(e){if(e!==ot)return!1;if(!Ee)return pu(e),Ee=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Oc(e.type,e.memoizedProps)),n=!n),n&&Ge&&An(e),pu(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));Ge=qf(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(317));Ge=qf(e)}else t===27?(t=Ge,Yn(e.type)?(e=Lc,Lc=null,Ge=e):Ge=t):Ge=ot?Vt(e.stateNode.nextSibling):null;return!0}function sa(){Ge=ot=null,Ee=!1}function pr(){var e=kn;return e!==null&&(Rt===null?Rt=e:Rt.push.apply(Rt,e),kn=null),e}function Ns(e){kn===null?kn=[e]:kn.push(e)}var vr=b(null),la=null,dn=null;function Dn(e,t,n){V(vr,t._currentValue),t._currentValue=n}function fn(e){e._currentValue=vr.current,k(vr)}function gr(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 yr(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var o=l.dependencies;if(o!==null){var d=l.child;o=o.firstContext;e:for(;o!==null;){var v=o;o=l;for(var N=0;N<t.length;N++)if(v.context===t[N]){o.lanes|=n,v=o.alternate,v!==null&&(v.lanes|=n),gr(o.return,n,e),a||(d=null);break e}o=v.next}}else if(l.tag===18){if(d=l.return,d===null)throw Error(u(341));d.lanes|=n,o=d.alternate,o!==null&&(o.lanes|=n),gr(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 La(e,t,n,a){e=null;for(var l=t,o=!1;l!==null;){if(!o){if((l.flags&524288)!==0)o=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var d=l.alternate;if(d===null)throw Error(u(387));if(d=d.memoizedProps,d!==null){var v=l.type;Et(l.pendingProps.value,d.value)||(e!==null?e.push(v):e=[v])}}else if(l===le.current){if(d=l.alternate,d===null)throw Error(u(387));d.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(Js):e=[Js])}l=l.return}e!==null&&yr(t,e,n,a),t.flags|=262144}function El(e){for(e=e.firstContext;e!==null;){if(!Et(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ia(e){la=e,dn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ut(e){return vu(la,e)}function wl(e,t){return la===null&&ia(e),vu(e,t)}function vu(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},dn===null){if(e===null)throw Error(u(308));dn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else dn=dn.next=t;return n}var Np=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},Rp=i.unstable_scheduleCallback,Cp=i.unstable_NormalPriority,Pe={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function br(){return{controller:new Np,data:new Map,refCount:0}}function Rs(e){e.refCount--,e.refCount===0&&Rp(Cp,function(){e.controller.abort()})}var Cs=null,xr=0,Ua=0,Ha=null;function Tp(e,t){if(Cs===null){var n=Cs=[];xr=0,Ua=Nc(),Ha={status:"pending",value:void 0,then:function(a){n.push(a)}}}return xr++,t.then(gu,gu),t}function gu(){if(--xr===0&&Cs!==null){Ha!==null&&(Ha.status="fulfilled");var e=Cs;Cs=null,Ua=0,Ha=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ep(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var yu=S.S;S.S=function(e,t){tf=ve(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Tp(e,t),yu!==null&&yu(e,t)};var ra=b(null);function Sr(){var e=ra.current;return e!==null?e:Be.pooledCache}function kl(e,t){t===null?V(ra,ra.current):V(ra,t.pool)}function bu(){var e=Sr();return e===null?null:{parent:Pe._currentValue,pool:e}}var Ba=Error(u(460)),jr=Error(u(474)),Al=Error(u(542)),Dl={then:function(){}};function xu(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Su(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(rn,rn),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Nu(e),e;default:if(typeof t.status=="string")t.then(rn,rn);else{if(e=Be,e!==null&&100<e.shellSuspendCounter)throw Error(u(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Nu(e),e}throw oa=t,Ba}}function ca(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(oa=n,Ba):n}}var oa=null;function ju(){if(oa===null)throw Error(u(459));var e=oa;return oa=null,e}function Nu(e){if(e===Ba||e===Al)throw Error(u(483))}var qa=null,Ts=0;function Ol(e){var t=Ts;return Ts+=1,qa===null&&(qa=[]),Su(qa,e,t)}function Es(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Ml(e,t){throw t.$$typeof===M?Error(u(525)):(e=Object.prototype.toString.call(t),Error(u(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function Ru(e){function t(D,C){if(e){var U=D.deletions;U===null?(D.deletions=[C],D.flags|=16):U.push(C)}}function n(D,C){if(!e)return null;for(;C!==null;)t(D,C),C=C.sibling;return null}function a(D){for(var C=new Map;D!==null;)D.key!==null?C.set(D.key,D):C.set(D.index,D),D=D.sibling;return C}function l(D,C){return D=on(D,C),D.index=0,D.sibling=null,D}function o(D,C,U){return D.index=U,e?(U=D.alternate,U!==null?(U=U.index,U<C?(D.flags|=67108866,C):U):(D.flags|=67108866,C)):(D.flags|=1048576,C)}function d(D){return e&&D.alternate===null&&(D.flags|=67108866),D}function v(D,C,U,J){return C===null||C.tag!==6?(C=ur(U,D.mode,J),C.return=D,C):(C=l(C,U),C.return=D,C)}function N(D,C,U,J){var pe=U.type;return pe===q?Q(D,C,U.props.children,J,U.key):C!==null&&(C.elementType===pe||typeof pe=="object"&&pe!==null&&pe.$$typeof===Y&&ca(pe)===C.type)?(C=l(C,U.props),Es(C,U),C.return=D,C):(C=Cl(U.type,U.key,U.props,null,D.mode,J),Es(C,U),C.return=D,C)}function H(D,C,U,J){return C===null||C.tag!==4||C.stateNode.containerInfo!==U.containerInfo||C.stateNode.implementation!==U.implementation?(C=dr(U,D.mode,J),C.return=D,C):(C=l(C,U.children||[]),C.return=D,C)}function Q(D,C,U,J,pe){return C===null||C.tag!==7?(C=aa(U,D.mode,J,pe),C.return=D,C):(C=l(C,U),C.return=D,C)}function te(D,C,U){if(typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint")return C=ur(""+C,D.mode,U),C.return=D,C;if(typeof C=="object"&&C!==null){switch(C.$$typeof){case w:return U=Cl(C.type,C.key,C.props,null,D.mode,U),Es(U,C),U.return=D,U;case I:return C=dr(C,D.mode,U),C.return=D,C;case Y:return C=ca(C),te(D,C,U)}if(ce(C)||W(C))return C=aa(C,D.mode,U,null),C.return=D,C;if(typeof C.then=="function")return te(D,Ol(C),U);if(C.$$typeof===A)return te(D,wl(D,C),U);Ml(D,C)}return null}function B(D,C,U,J){var pe=C!==null?C.key:null;if(typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint")return pe!==null?null:v(D,C,""+U,J);if(typeof U=="object"&&U!==null){switch(U.$$typeof){case w:return U.key===pe?N(D,C,U,J):null;case I:return U.key===pe?H(D,C,U,J):null;case Y:return U=ca(U),B(D,C,U,J)}if(ce(U)||W(U))return pe!==null?null:Q(D,C,U,J,null);if(typeof U.then=="function")return B(D,C,Ol(U),J);if(U.$$typeof===A)return B(D,C,wl(D,U),J);Ml(D,U)}return null}function G(D,C,U,J,pe){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return D=D.get(U)||null,v(C,D,""+J,pe);if(typeof J=="object"&&J!==null){switch(J.$$typeof){case w:return D=D.get(J.key===null?U:J.key)||null,N(C,D,J,pe);case I:return D=D.get(J.key===null?U:J.key)||null,H(C,D,J,pe);case Y:return J=ca(J),G(D,C,U,J,pe)}if(ce(J)||W(J))return D=D.get(U)||null,Q(C,D,J,pe,null);if(typeof J.then=="function")return G(D,C,U,Ol(J),pe);if(J.$$typeof===A)return G(D,C,U,wl(C,J),pe);Ml(C,J)}return null}function fe(D,C,U,J){for(var pe=null,we=null,he=C,Se=C=0,Te=null;he!==null&&Se<U.length;Se++){he.index>Se?(Te=he,he=null):Te=he.sibling;var ke=B(D,he,U[Se],J);if(ke===null){he===null&&(he=Te);break}e&&he&&ke.alternate===null&&t(D,he),C=o(ke,C,Se),we===null?pe=ke:we.sibling=ke,we=ke,he=Te}if(Se===U.length)return n(D,he),Ee&&un(D,Se),pe;if(he===null){for(;Se<U.length;Se++)he=te(D,U[Se],J),he!==null&&(C=o(he,C,Se),we===null?pe=he:we.sibling=he,we=he);return Ee&&un(D,Se),pe}for(he=a(he);Se<U.length;Se++)Te=G(he,D,Se,U[Se],J),Te!==null&&(e&&Te.alternate!==null&&he.delete(Te.key===null?Se:Te.key),C=o(Te,C,Se),we===null?pe=Te:we.sibling=Te,we=Te);return e&&he.forEach(function(Zn){return t(D,Zn)}),Ee&&un(D,Se),pe}function ge(D,C,U,J){if(U==null)throw Error(u(151));for(var pe=null,we=null,he=C,Se=C=0,Te=null,ke=U.next();he!==null&&!ke.done;Se++,ke=U.next()){he.index>Se?(Te=he,he=null):Te=he.sibling;var Zn=B(D,he,ke.value,J);if(Zn===null){he===null&&(he=Te);break}e&&he&&Zn.alternate===null&&t(D,he),C=o(Zn,C,Se),we===null?pe=Zn:we.sibling=Zn,we=Zn,he=Te}if(ke.done)return n(D,he),Ee&&un(D,Se),pe;if(he===null){for(;!ke.done;Se++,ke=U.next())ke=te(D,ke.value,J),ke!==null&&(C=o(ke,C,Se),we===null?pe=ke:we.sibling=ke,we=ke);return Ee&&un(D,Se),pe}for(he=a(he);!ke.done;Se++,ke=U.next())ke=G(he,D,Se,ke.value,J),ke!==null&&(e&&ke.alternate!==null&&he.delete(ke.key===null?Se:ke.key),C=o(ke,C,Se),we===null?pe=ke:we.sibling=ke,we=ke);return e&&he.forEach(function(Uv){return t(D,Uv)}),Ee&&un(D,Se),pe}function He(D,C,U,J){if(typeof U=="object"&&U!==null&&U.type===q&&U.key===null&&(U=U.props.children),typeof U=="object"&&U!==null){switch(U.$$typeof){case w:e:{for(var pe=U.key;C!==null;){if(C.key===pe){if(pe=U.type,pe===q){if(C.tag===7){n(D,C.sibling),J=l(C,U.props.children),J.return=D,D=J;break e}}else if(C.elementType===pe||typeof pe=="object"&&pe!==null&&pe.$$typeof===Y&&ca(pe)===C.type){n(D,C.sibling),J=l(C,U.props),Es(J,U),J.return=D,D=J;break e}n(D,C);break}else t(D,C);C=C.sibling}U.type===q?(J=aa(U.props.children,D.mode,J,U.key),J.return=D,D=J):(J=Cl(U.type,U.key,U.props,null,D.mode,J),Es(J,U),J.return=D,D=J)}return d(D);case I:e:{for(pe=U.key;C!==null;){if(C.key===pe)if(C.tag===4&&C.stateNode.containerInfo===U.containerInfo&&C.stateNode.implementation===U.implementation){n(D,C.sibling),J=l(C,U.children||[]),J.return=D,D=J;break e}else{n(D,C);break}else t(D,C);C=C.sibling}J=dr(U,D.mode,J),J.return=D,D=J}return d(D);case Y:return U=ca(U),He(D,C,U,J)}if(ce(U))return fe(D,C,U,J);if(W(U)){if(pe=W(U),typeof pe!="function")throw Error(u(150));return U=pe.call(U),ge(D,C,U,J)}if(typeof U.then=="function")return He(D,C,Ol(U),J);if(U.$$typeof===A)return He(D,C,wl(D,U),J);Ml(D,U)}return typeof U=="string"&&U!==""||typeof U=="number"||typeof U=="bigint"?(U=""+U,C!==null&&C.tag===6?(n(D,C.sibling),J=l(C,U),J.return=D,D=J):(n(D,C),J=ur(U,D.mode,J),J.return=D,D=J),d(D)):n(D,C)}return function(D,C,U,J){try{Ts=0;var pe=He(D,C,U,J);return qa=null,pe}catch(he){if(he===Ba||he===Al)throw he;var we=wt(29,he,null,D.mode);return we.lanes=J,we.return=D,we}}}var ua=Ru(!0),Cu=Ru(!1),On=!1;function Nr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Rr(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 Mn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function _n(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(Me&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Rl(e),cu(e,null,n),t}return Nl(e,a,t,n),Rl(e)}function ws(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,vo(e,n)}}function Cr(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?l=o=d:o=o.next=d,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Tr=!1;function ks(){if(Tr){var e=Ha;if(e!==null)throw e}}function As(e,t,n,a){Tr=!1;var l=e.updateQueue;On=!1;var o=l.firstBaseUpdate,d=l.lastBaseUpdate,v=l.shared.pending;if(v!==null){l.shared.pending=null;var N=v,H=N.next;N.next=null,d===null?o=H:d.next=H,d=N;var Q=e.alternate;Q!==null&&(Q=Q.updateQueue,v=Q.lastBaseUpdate,v!==d&&(v===null?Q.firstBaseUpdate=H:v.next=H,Q.lastBaseUpdate=N))}if(o!==null){var te=l.baseState;d=0,Q=H=N=null,v=o;do{var B=v.lane&-536870913,G=B!==v.lane;if(G?(Ce&B)===B:(a&B)===B){B!==0&&B===Ua&&(Tr=!0),Q!==null&&(Q=Q.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});e:{var fe=e,ge=v;B=t;var He=n;switch(ge.tag){case 1:if(fe=ge.payload,typeof fe=="function"){te=fe.call(He,te,B);break e}te=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=ge.payload,B=typeof fe=="function"?fe.call(He,te,B):fe,B==null)break e;te=j({},te,B);break e;case 2:On=!0}}B=v.callback,B!==null&&(e.flags|=64,G&&(e.flags|=8192),G=l.callbacks,G===null?l.callbacks=[B]:G.push(B))}else G={lane:B,tag:v.tag,payload:v.payload,callback:v.callback,next:null},Q===null?(H=Q=G,N=te):Q=Q.next=G,d|=B;if(v=v.next,v===null){if(v=l.shared.pending,v===null)break;G=v,v=G.next,G.next=null,l.lastBaseUpdate=G,l.shared.pending=null}}while(!0);Q===null&&(N=te),l.baseState=N,l.firstBaseUpdate=H,l.lastBaseUpdate=Q,o===null&&(l.shared.lanes=0),Hn|=d,e.lanes=d,e.memoizedState=te}}function Tu(e,t){if(typeof e!="function")throw Error(u(191,e));e.call(t)}function Eu(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Tu(n[e],t)}var Ga=b(null),_l=b(0);function wu(e,t){e=Sn,V(_l,e),V(Ga,t),Sn=e|t.baseLanes}function Er(){V(_l,Sn),V(Ga,Ga.current)}function wr(){Sn=_l.current,k(Ga),k(_l)}var kt=b(null),Qt=null;function In(e){var t=e.alternate;V(Je,Je.current&1),V(kt,e),Qt===null&&(t===null||Ga.current!==null||t.memoizedState!==null)&&(Qt=e)}function kr(e){V(Je,Je.current),V(kt,e),Qt===null&&(Qt=e)}function ku(e){e.tag===22?(V(Je,Je.current),V(kt,e),Qt===null&&(Qt=e)):zn()}function zn(){V(Je,Je.current),V(kt,kt.current)}function At(e){k(kt),Qt===e&&(Qt=null),k(Je)}var Je=b(0);function Il(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Ic(n)||zc(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 mn=0,xe=null,Le=null,et=null,zl=!1,$a=!1,da=!1,Ll=0,Ds=0,Ya=null,wp=0;function Qe(){throw Error(u(321))}function Ar(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Et(e[n],t[n]))return!1;return!0}function Dr(e,t,n,a,l,o){return mn=o,xe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,S.H=e===null||e.memoizedState===null?fd:Xr,da=!1,o=n(a,l),da=!1,$a&&(o=Du(t,n,a,l)),Au(e),o}function Au(e){S.H=_s;var t=Le!==null&&Le.next!==null;if(mn=0,et=Le=xe=null,zl=!1,Ds=0,Ya=null,t)throw Error(u(300));e===null||tt||(e=e.dependencies,e!==null&&El(e)&&(tt=!0))}function Du(e,t,n,a){xe=e;var l=0;do{if($a&&(Ya=null),Ds=0,$a=!1,25<=l)throw Error(u(301));if(l+=1,et=Le=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}S.H=md,o=t(n,a)}while($a);return o}function kp(){var e=S.H,t=e.useState()[0];return t=typeof t.then=="function"?Os(t):t,e=e.useState()[0],(Le!==null?Le.memoizedState:null)!==e&&(xe.flags|=1024),t}function Or(){var e=Ll!==0;return Ll=0,e}function Mr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function _r(e){if(zl){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}zl=!1}mn=0,et=Le=xe=null,$a=!1,Ds=Ll=0,Ya=null}function yt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return et===null?xe.memoizedState=et=e:et=et.next=e,et}function Fe(){if(Le===null){var e=xe.alternate;e=e!==null?e.memoizedState:null}else e=Le.next;var t=et===null?xe.memoizedState:et.next;if(t!==null)et=t,Le=e;else{if(e===null)throw xe.alternate===null?Error(u(467)):Error(u(310));Le=e,e={memoizedState:Le.memoizedState,baseState:Le.baseState,baseQueue:Le.baseQueue,queue:Le.queue,next:null},et===null?xe.memoizedState=et=e:et=et.next=e}return et}function Ul(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Os(e){var t=Ds;return Ds+=1,Ya===null&&(Ya=[]),e=Su(Ya,e,t),t=xe,(et===null?t.memoizedState:et.next)===null&&(t=t.alternate,S.H=t===null||t.memoizedState===null?fd:Xr),e}function Hl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Os(e);if(e.$$typeof===A)return ut(e)}throw Error(u(438,String(e)))}function Ir(e){var t=null,n=xe.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=xe.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Ul(),xe.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=P;return t.index++,n}function hn(e,t){return typeof t=="function"?t(e):t}function Bl(e){var t=Fe();return zr(t,Le,e)}function zr(e,t,n){var a=e.queue;if(a===null)throw Error(u(311));a.lastRenderedReducer=n;var l=e.baseQueue,o=a.pending;if(o!==null){if(l!==null){var d=l.next;l.next=o.next,o.next=d}t.baseQueue=l=o,a.pending=null}if(o=e.baseState,l===null)e.memoizedState=o;else{t=l.next;var v=d=null,N=null,H=t,Q=!1;do{var te=H.lane&-536870913;if(te!==H.lane?(Ce&te)===te:(mn&te)===te){var B=H.revertLane;if(B===0)N!==null&&(N=N.next={lane:0,revertLane:0,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null}),te===Ua&&(Q=!0);else if((mn&B)===B){H=H.next,B===Ua&&(Q=!0);continue}else te={lane:0,revertLane:H.revertLane,gesture:null,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},N===null?(v=N=te,d=o):N=N.next=te,xe.lanes|=B,Hn|=B;te=H.action,da&&n(o,te),o=H.hasEagerState?H.eagerState:n(o,te)}else B={lane:te,revertLane:H.revertLane,gesture:H.gesture,action:H.action,hasEagerState:H.hasEagerState,eagerState:H.eagerState,next:null},N===null?(v=N=B,d=o):N=N.next=B,xe.lanes|=te,Hn|=te;H=H.next}while(H!==null&&H!==t);if(N===null?d=o:N.next=v,!Et(o,e.memoizedState)&&(tt=!0,Q&&(n=Ha,n!==null)))throw n;e.memoizedState=o,e.baseState=d,e.baseQueue=N,a.lastRenderedState=o}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function Lr(e){var t=Fe(),n=t.queue;if(n===null)throw Error(u(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,o=t.memoizedState;if(l!==null){n.pending=null;var d=l=l.next;do o=e(o,d.action),d=d.next;while(d!==l);Et(o,t.memoizedState)||(tt=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,a]}function Ou(e,t,n){var a=xe,l=Fe(),o=Ee;if(o){if(n===void 0)throw Error(u(407));n=n()}else n=t();var d=!Et((Le||l).memoizedState,n);if(d&&(l.memoizedState=n,tt=!0),l=l.queue,Br(Iu.bind(null,a,l,e),[e]),l.getSnapshot!==t||d||et!==null&&et.memoizedState.tag&1){if(a.flags|=2048,Ka(9,{destroy:void 0},_u.bind(null,a,l,n,t),null),Be===null)throw Error(u(349));o||(mn&127)!==0||Mu(a,t,n)}return n}function Mu(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=xe.updateQueue,t===null?(t=Ul(),xe.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function _u(e,t,n,a){t.value=n,t.getSnapshot=a,zu(t)&&Lu(e)}function Iu(e,t,n){return n(function(){zu(t)&&Lu(e)})}function zu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Et(e,n)}catch{return!0}}function Lu(e){var t=na(e,2);t!==null&&Ct(t,e,2)}function Ur(e){var t=yt();if(typeof e=="function"){var n=e;if(e=n(),da){rt(!0);try{n()}finally{rt(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:hn,lastRenderedState:e},t}function Uu(e,t,n,a){return e.baseState=n,zr(e,Le,typeof a=="function"?a:hn)}function Ap(e,t,n,a,l){if($l(e))throw Error(u(485));if(e=t.action,e!==null){var o={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){o.listeners.push(d)}};S.T!==null?n(!0):o.isTransition=!1,a(o),n=t.pending,n===null?(o.next=t.pending=o,Hu(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Hu(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var o=S.T,d={};S.T=d;try{var v=n(l,a),N=S.S;N!==null&&N(d,v),Bu(e,t,v)}catch(H){Hr(e,t,H)}finally{o!==null&&d.types!==null&&(o.types=d.types),S.T=o}}else try{o=n(l,a),Bu(e,t,o)}catch(H){Hr(e,t,H)}}function Bu(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){qu(e,t,a)},function(a){return Hr(e,t,a)}):qu(e,t,n)}function qu(e,t,n){t.status="fulfilled",t.value=n,Gu(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Hu(e,n)))}function Hr(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,Gu(t),t=t.next;while(t!==a)}e.action=null}function Gu(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function $u(e,t){return t}function Yu(e,t){if(Ee){var n=Be.formState;if(n!==null){e:{var a=xe;if(Ee){if(Ge){t:{for(var l=Ge,o=Xt;l.nodeType!==8;){if(!o){l=null;break t}if(l=Vt(l.nextSibling),l===null){l=null;break t}}o=l.data,l=o==="F!"||o==="F"?l:null}if(l){Ge=Vt(l.nextSibling),a=l.data==="F!";break e}}An(a)}a=!1}a&&(t=n[0])}}return n=yt(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:$u,lastRenderedState:t},n.queue=a,n=od.bind(null,xe,a),a.dispatch=n,a=Ur(!1),o=Kr.bind(null,xe,!1,a.queue),a=yt(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=Ap.bind(null,xe,l,o,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function Ku(e){var t=Fe();return Xu(t,Le,e)}function Xu(e,t,n){if(t=zr(e,t,$u)[0],e=Bl(hn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Os(t)}catch(d){throw d===Ba?Al:d}else a=t;t=Fe();var l=t.queue,o=l.dispatch;return n!==t.memoizedState&&(xe.flags|=2048,Ka(9,{destroy:void 0},Dp.bind(null,l,n),null)),[a,o,e]}function Dp(e,t){e.action=t}function Qu(e){var t=Fe(),n=Le;if(n!==null)return Xu(t,n,e);Fe(),t=t.memoizedState,n=Fe();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Ka(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=xe.updateQueue,t===null&&(t=Ul(),xe.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function Vu(){return Fe().memoizedState}function ql(e,t,n,a){var l=yt();xe.flags|=e,l.memoizedState=Ka(1|t,{destroy:void 0},n,a===void 0?null:a)}function Gl(e,t,n,a){var l=Fe();a=a===void 0?null:a;var o=l.memoizedState.inst;Le!==null&&a!==null&&Ar(a,Le.memoizedState.deps)?l.memoizedState=Ka(t,o,n,a):(xe.flags|=e,l.memoizedState=Ka(1|t,o,n,a))}function Zu(e,t){ql(8390656,8,e,t)}function Br(e,t){Gl(2048,8,e,t)}function Op(e){xe.flags|=4;var t=xe.updateQueue;if(t===null)t=Ul(),xe.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Ju(e){var t=Fe().memoizedState;return Op({ref:t,nextImpl:e}),function(){if((Me&2)!==0)throw Error(u(440));return t.impl.apply(void 0,arguments)}}function Fu(e,t){return Gl(4,2,e,t)}function Wu(e,t){return Gl(4,4,e,t)}function Pu(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 ed(e,t,n){n=n!=null?n.concat([e]):null,Gl(4,4,Pu.bind(null,t,e),n)}function qr(){}function td(e,t){var n=Fe();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&Ar(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function nd(e,t){var n=Fe();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&Ar(t,a[1]))return a[0];if(a=e(),da){rt(!0);try{e()}finally{rt(!1)}}return n.memoizedState=[a,t],a}function Gr(e,t,n){return n===void 0||(mn&1073741824)!==0&&(Ce&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=af(),xe.lanes|=e,Hn|=e,n)}function ad(e,t,n,a){return Et(n,t)?n:Ga.current!==null?(e=Gr(e,n,a),Et(e,t)||(tt=!0),e):(mn&42)===0||(mn&1073741824)!==0&&(Ce&261930)===0?(tt=!0,e.memoizedState=n):(e=af(),xe.lanes|=e,Hn|=e,t)}function sd(e,t,n,a,l){var o=z.p;z.p=o!==0&&8>o?o:8;var d=S.T,v={};S.T=v,Kr(e,!1,t,n);try{var N=l(),H=S.S;if(H!==null&&H(v,N),N!==null&&typeof N=="object"&&typeof N.then=="function"){var Q=Ep(N,a);Ms(e,t,Q,Mt(e))}else Ms(e,t,a,Mt(e))}catch(te){Ms(e,t,{then:function(){},status:"rejected",reason:te},Mt())}finally{z.p=o,d!==null&&v.types!==null&&(d.types=v.types),S.T=d}}function Mp(){}function $r(e,t,n,a){if(e.tag!==5)throw Error(u(476));var l=ld(e).queue;sd(e,l,t,_,n===null?Mp:function(){return id(e),n(a)})}function ld(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hn,lastRenderedState:_},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:hn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function id(e){var t=ld(e);t.next===null&&(t=e.alternate.memoizedState),Ms(e,t.next.queue,{},Mt())}function Yr(){return ut(Js)}function rd(){return Fe().memoizedState}function cd(){return Fe().memoizedState}function _p(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Mt();e=Mn(n);var a=_n(t,e,n);a!==null&&(Ct(a,t,n),ws(a,t,n)),t={cache:br()},e.payload=t;return}t=t.return}}function Ip(e,t,n){var a=Mt();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},$l(e)?ud(t,n):(n=cr(e,t,n,a),n!==null&&(Ct(n,e,a),dd(n,t,a)))}function od(e,t,n){var a=Mt();Ms(e,t,n,a)}function Ms(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if($l(e))ud(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var d=t.lastRenderedState,v=o(d,n);if(l.hasEagerState=!0,l.eagerState=v,Et(v,d))return Nl(e,t,l,0),Be===null&&jl(),!1}catch{}if(n=cr(e,t,l,a),n!==null)return Ct(n,e,a),dd(n,t,a),!0}return!1}function Kr(e,t,n,a){if(a={lane:2,revertLane:Nc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},$l(e)){if(t)throw Error(u(479))}else t=cr(e,n,a,2),t!==null&&Ct(t,e,2)}function $l(e){var t=e.alternate;return e===xe||t!==null&&t===xe}function ud(e,t){$a=zl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function dd(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,vo(e,n)}}var _s={readContext:ut,use:Hl,useCallback:Qe,useContext:Qe,useEffect:Qe,useImperativeHandle:Qe,useLayoutEffect:Qe,useInsertionEffect:Qe,useMemo:Qe,useReducer:Qe,useRef:Qe,useState:Qe,useDebugValue:Qe,useDeferredValue:Qe,useTransition:Qe,useSyncExternalStore:Qe,useId:Qe,useHostTransitionStatus:Qe,useFormState:Qe,useActionState:Qe,useOptimistic:Qe,useMemoCache:Qe,useCacheRefresh:Qe};_s.useEffectEvent=Qe;var fd={readContext:ut,use:Hl,useCallback:function(e,t){return yt().memoizedState=[e,t===void 0?null:t],e},useContext:ut,useEffect:Zu,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,ql(4194308,4,Pu.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ql(4194308,4,e,t)},useInsertionEffect:function(e,t){ql(4,2,e,t)},useMemo:function(e,t){var n=yt();t=t===void 0?null:t;var a=e();if(da){rt(!0);try{e()}finally{rt(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=yt();if(n!==void 0){var l=n(t);if(da){rt(!0);try{n(t)}finally{rt(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=Ip.bind(null,xe,e),[a.memoizedState,e]},useRef:function(e){var t=yt();return e={current:e},t.memoizedState=e},useState:function(e){e=Ur(e);var t=e.queue,n=od.bind(null,xe,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:qr,useDeferredValue:function(e,t){var n=yt();return Gr(n,e,t)},useTransition:function(){var e=Ur(!1);return e=sd.bind(null,xe,e.queue,!0,!1),yt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=xe,l=yt();if(Ee){if(n===void 0)throw Error(u(407));n=n()}else{if(n=t(),Be===null)throw Error(u(349));(Ce&127)!==0||Mu(a,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,Zu(Iu.bind(null,a,o,e),[e]),a.flags|=2048,Ka(9,{destroy:void 0},_u.bind(null,a,o,n,t),null),n},useId:function(){var e=yt(),t=Be.identifierPrefix;if(Ee){var n=nn,a=tn;n=(a&~(1<<32-ht(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Ll++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=wp++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Yr,useFormState:Yu,useActionState:Yu,useOptimistic:function(e){var t=yt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Kr.bind(null,xe,!0,n),n.dispatch=t,[e,t]},useMemoCache:Ir,useCacheRefresh:function(){return yt().memoizedState=_p.bind(null,xe)},useEffectEvent:function(e){var t=yt(),n={impl:e};return t.memoizedState=n,function(){if((Me&2)!==0)throw Error(u(440));return n.impl.apply(void 0,arguments)}}},Xr={readContext:ut,use:Hl,useCallback:td,useContext:ut,useEffect:Br,useImperativeHandle:ed,useInsertionEffect:Fu,useLayoutEffect:Wu,useMemo:nd,useReducer:Bl,useRef:Vu,useState:function(){return Bl(hn)},useDebugValue:qr,useDeferredValue:function(e,t){var n=Fe();return ad(n,Le.memoizedState,e,t)},useTransition:function(){var e=Bl(hn)[0],t=Fe().memoizedState;return[typeof e=="boolean"?e:Os(e),t]},useSyncExternalStore:Ou,useId:rd,useHostTransitionStatus:Yr,useFormState:Ku,useActionState:Ku,useOptimistic:function(e,t){var n=Fe();return Uu(n,Le,e,t)},useMemoCache:Ir,useCacheRefresh:cd};Xr.useEffectEvent=Ju;var md={readContext:ut,use:Hl,useCallback:td,useContext:ut,useEffect:Br,useImperativeHandle:ed,useInsertionEffect:Fu,useLayoutEffect:Wu,useMemo:nd,useReducer:Lr,useRef:Vu,useState:function(){return Lr(hn)},useDebugValue:qr,useDeferredValue:function(e,t){var n=Fe();return Le===null?Gr(n,e,t):ad(n,Le.memoizedState,e,t)},useTransition:function(){var e=Lr(hn)[0],t=Fe().memoizedState;return[typeof e=="boolean"?e:Os(e),t]},useSyncExternalStore:Ou,useId:rd,useHostTransitionStatus:Yr,useFormState:Qu,useActionState:Qu,useOptimistic:function(e,t){var n=Fe();return Le!==null?Uu(n,Le,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Ir,useCacheRefresh:cd};md.useEffectEvent=Ju;function Qr(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:j({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Vr={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Mt(),l=Mn(a);l.payload=t,n!=null&&(l.callback=n),t=_n(e,l,a),t!==null&&(Ct(t,e,a),ws(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Mt(),l=Mn(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=_n(e,l,a),t!==null&&(Ct(t,e,a),ws(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Mt(),a=Mn(n);a.tag=2,t!=null&&(a.callback=t),t=_n(e,a,n),t!==null&&(Ct(t,e,n),ws(t,e,n))}};function hd(e,t,n,a,l,o,d){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,o,d):t.prototype&&t.prototype.isPureReactComponent?!xs(n,a)||!xs(l,o):!0}function pd(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&&Vr.enqueueReplaceState(t,t.state,null)}function fa(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=j({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function vd(e){Sl(e)}function gd(e){console.error(e)}function yd(e){Sl(e)}function Yl(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function bd(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 Zr(e,t,n){return n=Mn(n),n.tag=3,n.payload={element:null},n.callback=function(){Yl(e,t)},n}function xd(e){return e=Mn(e),e.tag=3,e}function Sd(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var o=a.value;e.payload=function(){return l(o)},e.callback=function(){bd(t,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(e.callback=function(){bd(t,n,a),typeof l!="function"&&(Bn===null?Bn=new Set([this]):Bn.add(this));var v=a.stack;this.componentDidCatch(a.value,{componentStack:v!==null?v:""})})}function zp(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&La(t,n,l,!0),n=kt.current,n!==null){switch(n.tag){case 31:case 13:return Qt===null?ni():n.alternate===null&&Ve===0&&(Ve=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===Dl?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),xc(e,a,l)),!1;case 22:return n.flags|=65536,a===Dl?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),xc(e,a,l)),!1}throw Error(u(435,n.tag))}return xc(e,a,l),ni(),!1}if(Ee)return t=kt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==hr&&(e=Error(u(422),{cause:a}),Ns($t(e,n)))):(a!==hr&&(t=Error(u(423),{cause:a}),Ns($t(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=$t(a,n),l=Zr(e.stateNode,a,l),Cr(e,l),Ve!==4&&(Ve=2)),!1;var o=Error(u(520),{cause:a});if(o=$t(o,n),Gs===null?Gs=[o]:Gs.push(o),Ve!==4&&(Ve=2),t===null)return!0;a=$t(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Zr(n.stateNode,a,e),Cr(n,e),!1;case 1:if(t=n.type,o=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||o!==null&&typeof o.componentDidCatch=="function"&&(Bn===null||!Bn.has(o))))return n.flags|=65536,l&=-l,n.lanes|=l,l=xd(l),Sd(l,e,n,a),Cr(n,l),!1}n=n.return}while(n!==null);return!1}var Jr=Error(u(461)),tt=!1;function dt(e,t,n,a){t.child=e===null?Cu(t,null,n,a):ua(t,e.child,n,a)}function jd(e,t,n,a,l){n=n.render;var o=t.ref;if("ref"in a){var d={};for(var v in a)v!=="ref"&&(d[v]=a[v])}else d=a;return ia(t),a=Dr(e,t,n,d,o,l),v=Or(),e!==null&&!tt?(Mr(e,t,l),pn(e,t,l)):(Ee&&v&&fr(t),t.flags|=1,dt(e,t,a,l),t.child)}function Nd(e,t,n,a,l){if(e===null){var o=n.type;return typeof o=="function"&&!or(o)&&o.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=o,Rd(e,t,o,a,l)):(e=Cl(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!sc(e,l)){var d=o.memoizedProps;if(n=n.compare,n=n!==null?n:xs,n(d,a)&&e.ref===t.ref)return pn(e,t,l)}return t.flags|=1,e=on(o,a),e.ref=t.ref,e.return=t,t.child=e}function Rd(e,t,n,a,l){if(e!==null){var o=e.memoizedProps;if(xs(o,a)&&e.ref===t.ref)if(tt=!1,t.pendingProps=a=o,sc(e,l))(e.flags&131072)!==0&&(tt=!0);else return t.lanes=e.lanes,pn(e,t,l)}return Fr(e,t,n,a,l)}function Cd(e,t,n,a){var l=a.children,o=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(o=o!==null?o.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~o}else a=0,t.child=null;return Td(e,t,o,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&kl(t,o!==null?o.cachePool:null),o!==null?wu(t,o):Er(),ku(t);else return a=t.lanes=536870912,Td(e,t,o!==null?o.baseLanes|n:n,n,a)}else o!==null?(kl(t,o.cachePool),wu(t,o),zn(),t.memoizedState=null):(e!==null&&kl(t,null),Er(),zn());return dt(e,t,l,n),t.child}function Is(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Td(e,t,n,a,l){var o=Sr();return o=o===null?null:{parent:Pe._currentValue,pool:o},t.memoizedState={baseLanes:n,cachePool:o},e!==null&&kl(t,null),Er(),ku(t),e!==null&&La(e,t,a,!0),t.childLanes=l,null}function Kl(e,t){return t=Ql({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Ed(e,t,n){return ua(t,e.child,null,n),e=Kl(t,t.pendingProps),e.flags|=2,At(t),t.memoizedState=null,e}function Lp(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Ee){if(a.mode==="hidden")return e=Kl(t,a),t.lanes=536870912,Is(null,e);if(kr(t),(e=Ge)?(e=Bf(e,Xt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wn!==null?{id:tn,overflow:nn}:null,retryLane:536870912,hydrationErrors:null},n=uu(e),n.return=t,t.child=n,ot=t,Ge=null)):e=null,e===null)throw An(t);return t.lanes=536870912,null}return Kl(t,a)}var o=e.memoizedState;if(o!==null){var d=o.dehydrated;if(kr(t),l)if(t.flags&256)t.flags&=-257,t=Ed(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(u(558));else if(tt||La(e,t,n,!1),l=(n&e.childLanes)!==0,tt||l){if(a=Be,a!==null&&(d=go(a,n),d!==0&&d!==o.retryLane))throw o.retryLane=d,na(e,d),Ct(a,e,d),Jr;ni(),t=Ed(e,t,n)}else e=o.treeContext,Ge=Vt(d.nextSibling),ot=t,Ee=!0,kn=null,Xt=!1,e!==null&&mu(t,e),t=Kl(t,a),t.flags|=4096;return t}return e=on(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Xl(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(u(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Fr(e,t,n,a,l){return ia(t),n=Dr(e,t,n,a,void 0,l),a=Or(),e!==null&&!tt?(Mr(e,t,l),pn(e,t,l)):(Ee&&a&&fr(t),t.flags|=1,dt(e,t,n,l),t.child)}function wd(e,t,n,a,l,o){return ia(t),t.updateQueue=null,n=Du(t,a,n,l),Au(e),a=Or(),e!==null&&!tt?(Mr(e,t,o),pn(e,t,o)):(Ee&&a&&fr(t),t.flags|=1,dt(e,t,n,o),t.child)}function kd(e,t,n,a,l){if(ia(t),t.stateNode===null){var o=Ma,d=n.contextType;typeof d=="object"&&d!==null&&(o=ut(d)),o=new n(a,o),t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=Vr,t.stateNode=o,o._reactInternals=t,o=t.stateNode,o.props=a,o.state=t.memoizedState,o.refs={},Nr(t),d=n.contextType,o.context=typeof d=="object"&&d!==null?ut(d):Ma,o.state=t.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(Qr(t,n,d,a),o.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(d=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),d!==o.state&&Vr.enqueueReplaceState(o,o.state,null),As(t,a,o,l),ks(),o.state=t.memoizedState),typeof o.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){o=t.stateNode;var v=t.memoizedProps,N=fa(n,v);o.props=N;var H=o.context,Q=n.contextType;d=Ma,typeof Q=="object"&&Q!==null&&(d=ut(Q));var te=n.getDerivedStateFromProps;Q=typeof te=="function"||typeof o.getSnapshotBeforeUpdate=="function",v=t.pendingProps!==v,Q||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(v||H!==d)&&pd(t,o,a,d),On=!1;var B=t.memoizedState;o.state=B,As(t,a,o,l),ks(),H=t.memoizedState,v||B!==H||On?(typeof te=="function"&&(Qr(t,n,te,a),H=t.memoizedState),(N=On||hd(t,n,N,a,B,H,d))?(Q||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=H),o.props=a,o.state=H,o.context=d,a=N):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{o=t.stateNode,Rr(e,t),d=t.memoizedProps,Q=fa(n,d),o.props=Q,te=t.pendingProps,B=o.context,H=n.contextType,N=Ma,typeof H=="object"&&H!==null&&(N=ut(H)),v=n.getDerivedStateFromProps,(H=typeof v=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(d!==te||B!==N)&&pd(t,o,a,N),On=!1,B=t.memoizedState,o.state=B,As(t,a,o,l),ks();var G=t.memoizedState;d!==te||B!==G||On||e!==null&&e.dependencies!==null&&El(e.dependencies)?(typeof v=="function"&&(Qr(t,n,v,a),G=t.memoizedState),(Q=On||hd(t,n,Q,a,B,G,N)||e!==null&&e.dependencies!==null&&El(e.dependencies))?(H||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(a,G,N),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(a,G,N)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=G),o.props=a,o.state=G,o.context=N,a=Q):(typeof o.componentDidUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||d===e.memoizedProps&&B===e.memoizedState||(t.flags|=1024),a=!1)}return o=a,Xl(e,t),a=(t.flags&128)!==0,o||a?(o=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:o.render(),t.flags|=1,e!==null&&a?(t.child=ua(t,e.child,null,l),t.child=ua(t,null,n,l)):dt(e,t,n,l),t.memoizedState=o.state,e=t.child):e=pn(e,t,l),e}function Ad(e,t,n,a){return sa(),t.flags|=256,dt(e,t,n,a),t.child}var Wr={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Pr(e){return{baseLanes:e,cachePool:bu()}}function ec(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Ot),e}function Dd(e,t,n){var a=t.pendingProps,l=!1,o=(t.flags&128)!==0,d;if((d=o)||(d=e!==null&&e.memoizedState===null?!1:(Je.current&2)!==0),d&&(l=!0,t.flags&=-129),d=(t.flags&32)!==0,t.flags&=-33,e===null){if(Ee){if(l?In(t):zn(),(e=Ge)?(e=Bf(e,Xt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:wn!==null?{id:tn,overflow:nn}:null,retryLane:536870912,hydrationErrors:null},n=uu(e),n.return=t,t.child=n,ot=t,Ge=null)):e=null,e===null)throw An(t);return zc(e)?t.lanes=32:t.lanes=536870912,null}var v=a.children;return a=a.fallback,l?(zn(),l=t.mode,v=Ql({mode:"hidden",children:v},l),a=aa(a,l,n,null),v.return=t,a.return=t,v.sibling=a,t.child=v,a=t.child,a.memoizedState=Pr(n),a.childLanes=ec(e,d,n),t.memoizedState=Wr,Is(null,a)):(In(t),tc(t,v))}var N=e.memoizedState;if(N!==null&&(v=N.dehydrated,v!==null)){if(o)t.flags&256?(In(t),t.flags&=-257,t=nc(e,t,n)):t.memoizedState!==null?(zn(),t.child=e.child,t.flags|=128,t=null):(zn(),v=a.fallback,l=t.mode,a=Ql({mode:"visible",children:a.children},l),v=aa(v,l,n,null),v.flags|=2,a.return=t,v.return=t,a.sibling=v,t.child=a,ua(t,e.child,null,n),a=t.child,a.memoizedState=Pr(n),a.childLanes=ec(e,d,n),t.memoizedState=Wr,t=Is(null,a));else if(In(t),zc(v)){if(d=v.nextSibling&&v.nextSibling.dataset,d)var H=d.dgst;d=H,a=Error(u(419)),a.stack="",a.digest=d,Ns({value:a,source:null,stack:null}),t=nc(e,t,n)}else if(tt||La(e,t,n,!1),d=(n&e.childLanes)!==0,tt||d){if(d=Be,d!==null&&(a=go(d,n),a!==0&&a!==N.retryLane))throw N.retryLane=a,na(e,a),Ct(d,e,a),Jr;Ic(v)||ni(),t=nc(e,t,n)}else Ic(v)?(t.flags|=192,t.child=e.child,t=null):(e=N.treeContext,Ge=Vt(v.nextSibling),ot=t,Ee=!0,kn=null,Xt=!1,e!==null&&mu(t,e),t=tc(t,a.children),t.flags|=4096);return t}return l?(zn(),v=a.fallback,l=t.mode,N=e.child,H=N.sibling,a=on(N,{mode:"hidden",children:a.children}),a.subtreeFlags=N.subtreeFlags&65011712,H!==null?v=on(H,v):(v=aa(v,l,n,null),v.flags|=2),v.return=t,a.return=t,a.sibling=v,t.child=a,Is(null,a),a=t.child,v=e.child.memoizedState,v===null?v=Pr(n):(l=v.cachePool,l!==null?(N=Pe._currentValue,l=l.parent!==N?{parent:N,pool:N}:l):l=bu(),v={baseLanes:v.baseLanes|n,cachePool:l}),a.memoizedState=v,a.childLanes=ec(e,d,n),t.memoizedState=Wr,Is(e.child,a)):(In(t),n=e.child,e=n.sibling,n=on(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 tc(e,t){return t=Ql({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function Ql(e,t){return e=wt(22,e,null,t),e.lanes=0,e}function nc(e,t,n){return ua(t,e.child,null,n),e=tc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Od(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),gr(e.return,t,n)}function ac(e,t,n,a,l,o){var d=e.memoizedState;d===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:o}:(d.isBackwards=t,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=l,d.treeForkCount=o)}function Md(e,t,n){var a=t.pendingProps,l=a.revealOrder,o=a.tail;a=a.children;var d=Je.current,v=(d&2)!==0;if(v?(d=d&1|2,t.flags|=128):d&=1,V(Je,d),dt(e,t,a,n),a=Ee?js:0,!v&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Od(e,n,t);else if(e.tag===19)Od(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&Il(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),ac(t,!1,l,n,o,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&Il(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}ac(t,!0,n,null,o,a);break;case"together":ac(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function pn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Hn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(La(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(u(153));if(t.child!==null){for(e=t.child,n=on(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=on(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function sc(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&El(e)))}function Up(e,t,n){switch(t.tag){case 3:de(t,t.stateNode.containerInfo),Dn(t,Pe,e.memoizedState.cache),sa();break;case 27:case 5:Ae(t);break;case 4:de(t,t.stateNode.containerInfo);break;case 10:Dn(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,kr(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(In(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Dd(e,t,n):(In(t),e=pn(e,t,n),e!==null?e.sibling:null);In(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(La(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Md(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),V(Je,Je.current),a)break;return null;case 22:return t.lanes=0,Cd(e,t,n,t.pendingProps);case 24:Dn(t,Pe,e.memoizedState.cache)}return pn(e,t,n)}function _d(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)tt=!0;else{if(!sc(e,n)&&(t.flags&128)===0)return tt=!1,Up(e,t,n);tt=(e.flags&131072)!==0}else tt=!1,Ee&&(t.flags&1048576)!==0&&fu(t,js,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=ca(t.elementType),t.type=e,typeof e=="function")or(e)?(a=fa(e,a),t.tag=1,t=kd(null,t,e,a,n)):(t.tag=0,t=Fr(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===O){t.tag=11,t=jd(null,t,e,a,n);break e}else if(l===E){t.tag=14,t=Nd(null,t,e,a,n);break e}}throw t=X(e)||e,Error(u(306,t,""))}}return t;case 0:return Fr(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=fa(a,t.pendingProps),kd(e,t,a,l,n);case 3:e:{if(de(t,t.stateNode.containerInfo),e===null)throw Error(u(387));a=t.pendingProps;var o=t.memoizedState;l=o.element,Rr(e,t),As(t,a,null,n);var d=t.memoizedState;if(a=d.cache,Dn(t,Pe,a),a!==o.cache&&yr(t,[Pe],n,!0),ks(),a=d.element,o.isDehydrated)if(o={element:a,isDehydrated:!1,cache:d.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Ad(e,t,a,n);break e}else if(a!==l){l=$t(Error(u(424)),t),Ns(l),t=Ad(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,Ge=Vt(e.firstChild),ot=t,Ee=!0,kn=null,Xt=!0,n=Cu(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(sa(),a===l){t=pn(e,t,n);break e}dt(e,t,a,n)}t=t.child}return t;case 26:return Xl(e,t),e===null?(n=Xf(t.type,null,t.pendingProps,null))?t.memoizedState=n:Ee||(n=t.type,e=t.pendingProps,a=oi(re.current).createElement(n),a[ct]=t,a[bt]=e,ft(a,n,e),lt(a),t.stateNode=a):t.memoizedState=Xf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Ae(t),e===null&&Ee&&(a=t.stateNode=$f(t.type,t.pendingProps,re.current),ot=t,Xt=!0,l=Ge,Yn(t.type)?(Lc=l,Ge=Vt(a.firstChild)):Ge=l),dt(e,t,t.pendingProps.children,n),Xl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ee&&((l=a=Ge)&&(a=hv(a,t.type,t.pendingProps,Xt),a!==null?(t.stateNode=a,ot=t,Ge=Vt(a.firstChild),Xt=!1,l=!0):l=!1),l||An(t)),Ae(t),l=t.type,o=t.pendingProps,d=e!==null?e.memoizedProps:null,a=o.children,Oc(l,o)?a=null:d!==null&&Oc(l,d)&&(t.flags|=32),t.memoizedState!==null&&(l=Dr(e,t,kp,null,null,n),Js._currentValue=l),Xl(e,t),dt(e,t,a,n),t.child;case 6:return e===null&&Ee&&((e=n=Ge)&&(n=pv(n,t.pendingProps,Xt),n!==null?(t.stateNode=n,ot=t,Ge=null,e=!0):e=!1),e||An(t)),null;case 13:return Dd(e,t,n);case 4:return de(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=ua(t,null,a,n):dt(e,t,a,n),t.child;case 11:return jd(e,t,t.type,t.pendingProps,n);case 7:return dt(e,t,t.pendingProps,n),t.child;case 8:return dt(e,t,t.pendingProps.children,n),t.child;case 12:return dt(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,Dn(t,t.type,a.value),dt(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ia(t),l=ut(l),a=a(l),t.flags|=1,dt(e,t,a,n),t.child;case 14:return Nd(e,t,t.type,t.pendingProps,n);case 15:return Rd(e,t,t.type,t.pendingProps,n);case 19:return Md(e,t,n);case 31:return Lp(e,t,n);case 22:return Cd(e,t,n,t.pendingProps);case 24:return ia(t),a=ut(Pe),e===null?(l=Sr(),l===null&&(l=Be,o=br(),l.pooledCache=o,o.refCount++,o!==null&&(l.pooledCacheLanes|=n),l=o),t.memoizedState={parent:a,cache:l},Nr(t),Dn(t,Pe,l)):((e.lanes&n)!==0&&(Rr(e,t),As(t,null,null,n),ks()),l=e.memoizedState,o=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Dn(t,Pe,a)):(a=o.cache,Dn(t,Pe,a),a!==l.cache&&yr(t,[Pe],n,!0))),dt(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(u(156,t.tag))}function vn(e){e.flags|=4}function lc(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(cf())e.flags|=8192;else throw oa=Dl,jr}else e.flags&=-16777217}function Id(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Ff(t))if(cf())e.flags|=8192;else throw oa=Dl,jr}function Vl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?ho():536870912,e.lanes|=t,Za|=t)}function zs(e,t){if(!Ee)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function $e(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function Hp(e,t,n){var a=t.pendingProps;switch(mr(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $e(t),null;case 1:return $e(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),fn(Pe),ue(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(za(t)?vn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,pr())),$e(t),null;case 26:var l=t.type,o=t.memoizedState;return e===null?(vn(t),o!==null?($e(t),Id(t,o)):($e(t),lc(t,l,null,a,n))):o?o!==e.memoizedState?(vn(t),$e(t),Id(t,o)):($e(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&vn(t),$e(t),lc(t,l,e,a,n)),null;case 27:if(De(t),n=re.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&vn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return $e(t),null}e=$.current,za(t)?hu(t):(e=$f(l,a,n),t.stateNode=e,vn(t))}return $e(t),null;case 5:if(De(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&vn(t);else{if(!a){if(t.stateNode===null)throw Error(u(166));return $e(t),null}if(o=$.current,za(t))hu(t);else{var d=oi(re.current);switch(o){case 1:o=d.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:o=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":o=d.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":o=d.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":o=d.createElement("div"),o.innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?o.multiple=!0:a.size&&(o.size=a.size);break;default:o=typeof a.is=="string"?d.createElement(l,{is:a.is}):d.createElement(l)}}o[ct]=t,o[bt]=a;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)o.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=o;e:switch(ft(o,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&vn(t)}}return $e(t),lc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&vn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(u(166));if(e=re.current,za(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=ot,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[ct]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Of(e.nodeValue,n)),e||An(t,!0)}else e=oi(e).createTextNode(a),e[ct]=t,t.stateNode=e}return $e(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=za(t),n!==null){if(e===null){if(!a)throw Error(u(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(u(557));e[ct]=t}else sa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;$e(t),e=!1}else n=pr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(At(t),t):(At(t),null);if((t.flags&128)!==0)throw Error(u(558))}return $e(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=za(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(u(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(u(317));l[ct]=t}else sa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;$e(t),l=!1}else l=pr(),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),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Vl(t,t.updateQueue),$e(t),null);case 4:return ue(),e===null&&Ec(t.stateNode.containerInfo),$e(t),null;case 10:return fn(t.type),$e(t),null;case 19:if(k(Je),a=t.memoizedState,a===null)return $e(t),null;if(l=(t.flags&128)!==0,o=a.rendering,o===null)if(l)zs(a,!1);else{if(Ve!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(o=Il(e),o!==null){for(t.flags|=128,zs(a,!1),e=o.updateQueue,t.updateQueue=e,Vl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ou(n,e),n=n.sibling;return V(Je,Je.current&1|2),Ee&&un(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&ve()>Pl&&(t.flags|=128,l=!0,zs(a,!1),t.lanes=4194304)}else{if(!l)if(e=Il(o),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Vl(t,e),zs(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!Ee)return $e(t),null}else 2*ve()-a.renderingStartTime>Pl&&n!==536870912&&(t.flags|=128,l=!0,zs(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(e=a.last,e!==null?e.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=ve(),e.sibling=null,n=Je.current,V(Je,l?n&1|2:n&1),Ee&&un(t,a.treeForkCount),e):($e(t),null);case 22:case 23:return At(t),wr(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&($e(t),t.subtreeFlags&6&&(t.flags|=8192)):$e(t),n=t.updateQueue,n!==null&&Vl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&k(ra),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),fn(Pe),$e(t),null;case 25:return null;case 30:return null}throw Error(u(156,t.tag))}function Bp(e,t){switch(mr(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return fn(Pe),ue(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return De(t),null;case 31:if(t.memoizedState!==null){if(At(t),t.alternate===null)throw Error(u(340));sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(At(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(u(340));sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return k(Je),null;case 4:return ue(),null;case 10:return fn(t.type),null;case 22:case 23:return At(t),wr(),e!==null&&k(ra),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return fn(Pe),null;case 25:return null;default:return null}}function zd(e,t){switch(mr(t),t.tag){case 3:fn(Pe),ue();break;case 26:case 27:case 5:De(t);break;case 4:ue();break;case 31:t.memoizedState!==null&&At(t);break;case 13:At(t);break;case 19:k(Je);break;case 10:fn(t.type);break;case 22:case 23:At(t),wr(),e!==null&&k(ra);break;case 24:fn(Pe)}}function Ls(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var o=n.create,d=n.inst;a=o(),d.destroy=a}n=n.next}while(n!==l)}}catch(v){Ie(t,t.return,v)}}function Ln(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var o=l.next;a=o;do{if((a.tag&e)===e){var d=a.inst,v=d.destroy;if(v!==void 0){d.destroy=void 0,l=t;var N=n,H=v;try{H()}catch(Q){Ie(l,N,Q)}}}a=a.next}while(a!==o)}}catch(Q){Ie(t,t.return,Q)}}function Ld(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Eu(t,n)}catch(a){Ie(e,e.return,a)}}}function Ud(e,t,n){n.props=fa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){Ie(e,t,a)}}function Us(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){Ie(e,t,l)}}function an(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){Ie(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){Ie(e,t,l)}else n.current=null}function Hd(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){Ie(e,e.return,l)}}function ic(e,t,n){try{var a=e.stateNode;cv(a,e.type,n,t),a[bt]=t}catch(l){Ie(e,e.return,l)}}function Bd(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Yn(e.type)||e.tag===4}function rc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Bd(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&&Yn(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 cc(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=rn));else if(a!==4&&(a===27&&Yn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(cc(e,t,n),e=e.sibling;e!==null;)cc(e,t,n),e=e.sibling}function Zl(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Yn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zl(e,t,n),e=e.sibling;e!==null;)Zl(e,t,n),e=e.sibling}function qd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);ft(t,a,n),t[ct]=e,t[bt]=n}catch(o){Ie(e,e.return,o)}}var gn=!1,nt=!1,oc=!1,Gd=typeof WeakSet=="function"?WeakSet:Set,it=null;function qp(e,t){if(e=e.containerInfo,Ac=vi,e=eu(e),nr(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,o=a.focusNode;a=a.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var d=0,v=-1,N=-1,H=0,Q=0,te=e,B=null;t:for(;;){for(var G;te!==n||l!==0&&te.nodeType!==3||(v=d+l),te!==o||a!==0&&te.nodeType!==3||(N=d+a),te.nodeType===3&&(d+=te.nodeValue.length),(G=te.firstChild)!==null;)B=te,te=G;for(;;){if(te===e)break t;if(B===n&&++H===l&&(v=d),B===o&&++Q===a&&(N=d),(G=te.nextSibling)!==null)break;te=B,B=te.parentNode}te=G}n=v===-1||N===-1?null:{start:v,end:N}}else n=null}n=n||{start:0,end:0}}else n=null;for(Dc={focusedElem:e,selectionRange:n},vi=!1,it=t;it!==null;)if(t=it,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,it=e;else for(;it!==null;){switch(t=it,o=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&o!==null){e=void 0,n=t,l=o.memoizedProps,o=o.memoizedState,a=n.stateNode;try{var fe=fa(n.type,l);e=a.getSnapshotBeforeUpdate(fe,o),a.__reactInternalSnapshotBeforeUpdate=e}catch(ge){Ie(n,n.return,ge)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)_c(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":_c(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(u(163))}if(e=t.sibling,e!==null){e.return=t.return,it=e;break}it=t.return}}function $d(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:bn(e,n),a&4&&Ls(5,n);break;case 1:if(bn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(d){Ie(n,n.return,d)}else{var l=fa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(d){Ie(n,n.return,d)}}a&64&&Ld(n),a&512&&Us(n,n.return);break;case 3:if(bn(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{Eu(e,t)}catch(d){Ie(n,n.return,d)}}break;case 27:t===null&&a&4&&qd(n);case 26:case 5:bn(e,n),t===null&&a&4&&Hd(n),a&512&&Us(n,n.return);break;case 12:bn(e,n);break;case 31:bn(e,n),a&4&&Xd(e,n);break;case 13:bn(e,n),a&4&&Qd(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Jp.bind(null,n),vv(e,n))));break;case 22:if(a=n.memoizedState!==null||gn,!a){t=t!==null&&t.memoizedState!==null||nt,l=gn;var o=nt;gn=a,(nt=t)&&!o?xn(e,n,(n.subtreeFlags&8772)!==0):bn(e,n),gn=l,nt=o}break;case 30:break;default:bn(e,n)}}function Yd(e){var t=e.alternate;t!==null&&(e.alternate=null,Yd(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Hi(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 Xe=null,St=!1;function yn(e,t,n){for(n=n.child;n!==null;)Kd(e,t,n),n=n.sibling}function Kd(e,t,n){if(gt&&typeof gt.onCommitFiberUnmount=="function")try{gt.onCommitFiberUnmount(Ht,n)}catch{}switch(n.tag){case 26:nt||an(n,t),yn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:nt||an(n,t);var a=Xe,l=St;Yn(n.type)&&(Xe=n.stateNode,St=!1),yn(e,t,n),Qs(n.stateNode),Xe=a,St=l;break;case 5:nt||an(n,t);case 6:if(a=Xe,l=St,Xe=null,yn(e,t,n),Xe=a,St=l,Xe!==null)if(St)try{(Xe.nodeType===9?Xe.body:Xe.nodeName==="HTML"?Xe.ownerDocument.body:Xe).removeChild(n.stateNode)}catch(o){Ie(n,t,o)}else try{Xe.removeChild(n.stateNode)}catch(o){Ie(n,t,o)}break;case 18:Xe!==null&&(St?(e=Xe,Uf(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),as(e)):Uf(Xe,n.stateNode));break;case 4:a=Xe,l=St,Xe=n.stateNode.containerInfo,St=!0,yn(e,t,n),Xe=a,St=l;break;case 0:case 11:case 14:case 15:Ln(2,n,t),nt||Ln(4,n,t),yn(e,t,n);break;case 1:nt||(an(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Ud(n,t,a)),yn(e,t,n);break;case 21:yn(e,t,n);break;case 22:nt=(a=nt)||n.memoizedState!==null,yn(e,t,n),nt=a;break;default:yn(e,t,n)}}function Xd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{as(e)}catch(n){Ie(t,t.return,n)}}}function Qd(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{as(e)}catch(n){Ie(t,t.return,n)}}function Gp(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Gd),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Gd),t;default:throw Error(u(435,e.tag))}}function Jl(e,t){var n=Gp(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=Fp.bind(null,e,a);a.then(l,l)}})}function jt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],o=e,d=t,v=d;e:for(;v!==null;){switch(v.tag){case 27:if(Yn(v.type)){Xe=v.stateNode,St=!1;break e}break;case 5:Xe=v.stateNode,St=!1;break e;case 3:case 4:Xe=v.stateNode.containerInfo,St=!0;break e}v=v.return}if(Xe===null)throw Error(u(160));Kd(o,d,l),Xe=null,St=!1,o=l.alternate,o!==null&&(o.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Vd(t,e),t=t.sibling}var Ft=null;function Vd(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:jt(t,e),Nt(e),a&4&&(Ln(3,e,e.return),Ls(3,e),Ln(5,e,e.return));break;case 1:jt(t,e),Nt(e),a&512&&(nt||n===null||an(n,n.return)),a&64&&gn&&(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=Ft;if(jt(t,e),Nt(e),a&512&&(nt||n===null||an(n,n.return)),a&4){var o=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":o=l.getElementsByTagName("title")[0],(!o||o[ds]||o[ct]||o.namespaceURI==="http://www.w3.org/2000/svg"||o.hasAttribute("itemprop"))&&(o=l.createElement(a),l.head.insertBefore(o,l.querySelector("head > title"))),ft(o,a,n),o[ct]=e,lt(o),a=o;break e;case"link":var d=Zf("link","href",l).get(a+(n.href||""));if(d){for(var v=0;v<d.length;v++)if(o=d[v],o.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&o.getAttribute("rel")===(n.rel==null?null:n.rel)&&o.getAttribute("title")===(n.title==null?null:n.title)&&o.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(v,1);break t}}o=l.createElement(a),ft(o,a,n),l.head.appendChild(o);break;case"meta":if(d=Zf("meta","content",l).get(a+(n.content||""))){for(v=0;v<d.length;v++)if(o=d[v],o.getAttribute("content")===(n.content==null?null:""+n.content)&&o.getAttribute("name")===(n.name==null?null:n.name)&&o.getAttribute("property")===(n.property==null?null:n.property)&&o.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(v,1);break t}}o=l.createElement(a),ft(o,a,n),l.head.appendChild(o);break;default:throw Error(u(468,a))}o[ct]=e,lt(o),a=o}e.stateNode=a}else Jf(l,e.type,e.stateNode);else e.stateNode=Vf(l,a,e.memoizedProps);else o!==a?(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,a===null?Jf(l,e.type,e.stateNode):Vf(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&ic(e,e.memoizedProps,n.memoizedProps)}break;case 27:jt(t,e),Nt(e),a&512&&(nt||n===null||an(n,n.return)),n!==null&&a&4&&ic(e,e.memoizedProps,n.memoizedProps);break;case 5:if(jt(t,e),Nt(e),a&512&&(nt||n===null||an(n,n.return)),e.flags&32){l=e.stateNode;try{Ta(l,"")}catch(fe){Ie(e,e.return,fe)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,ic(e,l,n!==null?n.memoizedProps:l)),a&1024&&(oc=!0);break;case 6:if(jt(t,e),Nt(e),a&4){if(e.stateNode===null)throw Error(u(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(fe){Ie(e,e.return,fe)}}break;case 3:if(fi=null,l=Ft,Ft=ui(t.containerInfo),jt(t,e),Ft=l,Nt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{as(t.containerInfo)}catch(fe){Ie(e,e.return,fe)}oc&&(oc=!1,Zd(e));break;case 4:a=Ft,Ft=ui(e.stateNode.containerInfo),jt(t,e),Nt(e),Ft=a;break;case 12:jt(t,e),Nt(e);break;case 31:jt(t,e),Nt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 13:jt(t,e),Nt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Wl=ve()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 22:l=e.memoizedState!==null;var N=n!==null&&n.memoizedState!==null,H=gn,Q=nt;if(gn=H||l,nt=Q||N,jt(t,e),nt=Q,gn=H,Nt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||N||gn||nt||ma(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){N=n=t;try{if(o=N.stateNode,l)d=o.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{v=N.stateNode;var te=N.memoizedProps.style,B=te!=null&&te.hasOwnProperty("display")?te.display:null;v.style.display=B==null||typeof B=="boolean"?"":(""+B).trim()}}catch(fe){Ie(N,N.return,fe)}}}else if(t.tag===6){if(n===null){N=t;try{N.stateNode.nodeValue=l?"":N.memoizedProps}catch(fe){Ie(N,N.return,fe)}}}else if(t.tag===18){if(n===null){N=t;try{var G=N.stateNode;l?Hf(G,!0):Hf(N.stateNode,!1)}catch(fe){Ie(N,N.return,fe)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Jl(e,n))));break;case 19:jt(t,e),Nt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Jl(e,a)));break;case 30:break;case 21:break;default:jt(t,e),Nt(e)}}function Nt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(Bd(a)){n=a;break}a=a.return}if(n==null)throw Error(u(160));switch(n.tag){case 27:var l=n.stateNode,o=rc(e);Zl(e,o,l);break;case 5:var d=n.stateNode;n.flags&32&&(Ta(d,""),n.flags&=-33);var v=rc(e);Zl(e,v,d);break;case 3:case 4:var N=n.stateNode.containerInfo,H=rc(e);cc(e,H,N);break;default:throw Error(u(161))}}catch(Q){Ie(e,e.return,Q)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Zd(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Zd(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function bn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)$d(e,t.alternate,t),t=t.sibling}function ma(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Ln(4,t,t.return),ma(t);break;case 1:an(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Ud(t,t.return,n),ma(t);break;case 27:Qs(t.stateNode);case 26:case 5:an(t,t.return),ma(t);break;case 22:t.memoizedState===null&&ma(t);break;case 30:ma(t);break;default:ma(t)}e=e.sibling}}function xn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,o=t,d=o.flags;switch(o.tag){case 0:case 11:case 15:xn(l,o,n),Ls(4,o);break;case 1:if(xn(l,o,n),a=o,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(H){Ie(a,a.return,H)}if(a=o,l=a.updateQueue,l!==null){var v=a.stateNode;try{var N=l.shared.hiddenCallbacks;if(N!==null)for(l.shared.hiddenCallbacks=null,l=0;l<N.length;l++)Tu(N[l],v)}catch(H){Ie(a,a.return,H)}}n&&d&64&&Ld(o),Us(o,o.return);break;case 27:qd(o);case 26:case 5:xn(l,o,n),n&&a===null&&d&4&&Hd(o),Us(o,o.return);break;case 12:xn(l,o,n);break;case 31:xn(l,o,n),n&&d&4&&Xd(l,o);break;case 13:xn(l,o,n),n&&d&4&&Qd(l,o);break;case 22:o.memoizedState===null&&xn(l,o,n),Us(o,o.return);break;case 30:break;default:xn(l,o,n)}t=t.sibling}}function uc(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&&Rs(n))}function dc(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rs(e))}function Wt(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Jd(e,t,n,a),t=t.sibling}function Jd(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Wt(e,t,n,a),l&2048&&Ls(9,t);break;case 1:Wt(e,t,n,a);break;case 3:Wt(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&&Rs(e)));break;case 12:if(l&2048){Wt(e,t,n,a),e=t.stateNode;try{var o=t.memoizedProps,d=o.id,v=o.onPostCommit;typeof v=="function"&&v(d,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(N){Ie(t,t.return,N)}}else Wt(e,t,n,a);break;case 31:Wt(e,t,n,a);break;case 13:Wt(e,t,n,a);break;case 23:break;case 22:o=t.stateNode,d=t.alternate,t.memoizedState!==null?o._visibility&2?Wt(e,t,n,a):Hs(e,t):o._visibility&2?Wt(e,t,n,a):(o._visibility|=2,Xa(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&uc(d,t);break;case 24:Wt(e,t,n,a),l&2048&&dc(t.alternate,t);break;default:Wt(e,t,n,a)}}function Xa(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var o=e,d=t,v=n,N=a,H=d.flags;switch(d.tag){case 0:case 11:case 15:Xa(o,d,v,N,l),Ls(8,d);break;case 23:break;case 22:var Q=d.stateNode;d.memoizedState!==null?Q._visibility&2?Xa(o,d,v,N,l):Hs(o,d):(Q._visibility|=2,Xa(o,d,v,N,l)),l&&H&2048&&uc(d.alternate,d);break;case 24:Xa(o,d,v,N,l),l&&H&2048&&dc(d.alternate,d);break;default:Xa(o,d,v,N,l)}t=t.sibling}}function Hs(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:Hs(n,a),l&2048&&uc(a.alternate,a);break;case 24:Hs(n,a),l&2048&&dc(a.alternate,a);break;default:Hs(n,a)}t=t.sibling}}var Bs=8192;function Qa(e,t,n){if(e.subtreeFlags&Bs)for(e=e.child;e!==null;)Fd(e,t,n),e=e.sibling}function Fd(e,t,n){switch(e.tag){case 26:Qa(e,t,n),e.flags&Bs&&e.memoizedState!==null&&wv(n,Ft,e.memoizedState,e.memoizedProps);break;case 5:Qa(e,t,n);break;case 3:case 4:var a=Ft;Ft=ui(e.stateNode.containerInfo),Qa(e,t,n),Ft=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Bs,Bs=16777216,Qa(e,t,n),Bs=a):Qa(e,t,n));break;default:Qa(e,t,n)}}function Wd(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 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];it=a,ef(a,e)}Wd(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Pd(e),e=e.sibling}function Pd(e){switch(e.tag){case 0:case 11:case 15:qs(e),e.flags&2048&&Ln(9,e,e.return);break;case 3:qs(e);break;case 12:qs(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fl(e)):qs(e);break;default:qs(e)}}function Fl(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];it=a,ef(a,e)}Wd(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Ln(8,t,t.return),Fl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Fl(t));break;default:Fl(t)}e=e.sibling}}function ef(e,t){for(;it!==null;){var n=it;switch(n.tag){case 0:case 11:case 15:Ln(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:Rs(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,it=a;else e:for(n=e;it!==null;){a=it;var l=a.sibling,o=a.return;if(Yd(a),a===n){it=null;break e}if(l!==null){l.return=o,it=l;break e}it=o}}}var $p={getCacheForType:function(e){var t=ut(Pe),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ut(Pe).controller.signal}},Yp=typeof WeakMap=="function"?WeakMap:Map,Me=0,Be=null,je=null,Ce=0,_e=0,Dt=null,Un=!1,Va=!1,fc=!1,Sn=0,Ve=0,Hn=0,ha=0,mc=0,Ot=0,Za=0,Gs=null,Rt=null,hc=!1,Wl=0,tf=0,Pl=1/0,ei=null,Bn=null,st=0,qn=null,Ja=null,jn=0,pc=0,vc=null,nf=null,$s=0,gc=null;function Mt(){return(Me&2)!==0&&Ce!==0?Ce&-Ce:S.T!==null?Nc():yo()}function af(){if(Ot===0)if((Ce&536870912)===0||Ee){var e=cl;cl<<=1,(cl&3932160)===0&&(cl=262144),Ot=e}else Ot=536870912;return e=kt.current,e!==null&&(e.flags|=32),Ot}function Ct(e,t,n){(e===Be&&(_e===2||_e===9)||e.cancelPendingCommit!==null)&&(Fa(e,0),Gn(e,Ce,Ot,!1)),us(e,n),((Me&2)===0||e!==Be)&&(e===Be&&((Me&2)===0&&(ha|=n),Ve===4&&Gn(e,Ce,Ot,!1)),sn(e))}function sf(e,t,n){if((Me&6)!==0)throw Error(u(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||os(e,t),l=a?Qp(e,t):bc(e,t,!0),o=a;do{if(l===0){Va&&!a&&Gn(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!Kp(n)){l=bc(e,t,!1),o=!1;continue}if(l===2){if(o=t,e.errorRecoveryDisabledLanes&o)var d=0;else d=e.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){t=d;e:{var v=e;l=Gs;var N=v.current.memoizedState.isDehydrated;if(N&&(Fa(v,d).flags|=256),d=bc(v,d,!1),d!==2){if(fc&&!N){v.errorRecoveryDisabledLanes|=o,ha|=o,l=4;break e}o=Rt,Rt=l,o!==null&&(Rt===null?Rt=o:Rt.push.apply(Rt,o))}l=d}if(o=!1,l!==2)continue}}if(l===1){Fa(e,0),Gn(e,t,0,!0);break}e:{switch(a=e,o=l,o){case 0:case 1:throw Error(u(345));case 4:if((t&4194048)!==t)break;case 6:Gn(a,t,Ot,!Un);break e;case 2:Rt=null;break;case 3:case 5:break;default:throw Error(u(329))}if((t&62914560)===t&&(l=Wl+300-ve(),10<l)){if(Gn(a,t,Ot,!Un),ul(a,0,!0)!==0)break e;jn=t,a.timeoutHandle=zf(lf.bind(null,a,n,Rt,ei,hc,t,Ot,ha,Za,Un,o,"Throttled",-0,0),l);break e}lf(a,n,Rt,ei,hc,t,Ot,ha,Za,Un,o,null,-0,0)}}break}while(!0);sn(e)}function lf(e,t,n,a,l,o,d,v,N,H,Q,te,B,G){if(e.timeoutHandle=-1,te=t.subtreeFlags,te&8192||(te&16785408)===16785408){te={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:rn},Fd(t,o,te);var fe=(o&62914560)===o?Wl-ve():(o&4194048)===o?tf-ve():0;if(fe=kv(te,fe),fe!==null){jn=o,e.cancelPendingCommit=fe(hf.bind(null,e,t,o,n,a,l,d,v,N,Q,te,null,B,G)),Gn(e,o,d,!H);return}}hf(e,t,o,n,a,l,d,v,N)}function Kp(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],o=l.getSnapshot;l=l.value;try{if(!Et(o(),l))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Gn(e,t,n,a){t&=~mc,t&=~ha,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var o=31-ht(l),d=1<<o;a[o]=-1,l&=~d}n!==0&&po(e,n,t)}function ti(){return(Me&6)===0?(Ys(0),!1):!0}function yc(){if(je!==null){if(_e===0)var e=je.return;else e=je,dn=la=null,_r(e),qa=null,Ts=0,e=je;for(;e!==null;)zd(e.alternate,e),e=e.return;je=null}}function Fa(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,dv(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),jn=0,yc(),Be=e,je=n=on(e.current,null),Ce=t,_e=0,Dt=null,Un=!1,Va=os(e,t),fc=!1,Za=Ot=mc=ha=Hn=Ve=0,Rt=Gs=null,hc=!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-ht(a),o=1<<l;t|=e[l],a&=~o}return Sn=t,jl(),n}function rf(e,t){xe=null,S.H=_s,t===Ba||t===Al?(t=ju(),_e=3):t===jr?(t=ju(),_e=4):_e=t===Jr?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Dt=t,je===null&&(Ve=1,Yl(e,$t(t,e.current)))}function cf(){var e=kt.current;return e===null?!0:(Ce&4194048)===Ce?Qt===null:(Ce&62914560)===Ce||(Ce&536870912)!==0?e===Qt:!1}function of(){var e=S.H;return S.H=_s,e===null?_s:e}function uf(){var e=S.A;return S.A=$p,e}function ni(){Ve=4,Un||(Ce&4194048)!==Ce&&kt.current!==null||(Va=!0),(Hn&134217727)===0&&(ha&134217727)===0||Be===null||Gn(Be,Ce,Ot,!1)}function bc(e,t,n){var a=Me;Me|=2;var l=of(),o=uf();(Be!==e||Ce!==t)&&(ei=null,Fa(e,t)),t=!1;var d=Ve;e:do try{if(_e!==0&&je!==null){var v=je,N=Dt;switch(_e){case 8:yc(),d=6;break e;case 3:case 2:case 9:case 6:kt.current===null&&(t=!0);var H=_e;if(_e=0,Dt=null,Wa(e,v,N,H),n&&Va){d=0;break e}break;default:H=_e,_e=0,Dt=null,Wa(e,v,N,H)}}Xp(),d=Ve;break}catch(Q){rf(e,Q)}while(!0);return t&&e.shellSuspendCounter++,dn=la=null,Me=a,S.H=l,S.A=o,je===null&&(Be=null,Ce=0,jl()),d}function Xp(){for(;je!==null;)df(je)}function Qp(e,t){var n=Me;Me|=2;var a=of(),l=uf();Be!==e||Ce!==t?(ei=null,Pl=ve()+500,Fa(e,t)):Va=os(e,t);e:do try{if(_e!==0&&je!==null){t=je;var o=Dt;t:switch(_e){case 1:_e=0,Dt=null,Wa(e,t,o,1);break;case 2:case 9:if(xu(o)){_e=0,Dt=null,ff(t);break}t=function(){_e!==2&&_e!==9||Be!==e||(_e=7),sn(e)},o.then(t,t);break e;case 3:_e=7;break e;case 4:_e=5;break e;case 7:xu(o)?(_e=0,Dt=null,ff(t)):(_e=0,Dt=null,Wa(e,t,o,7));break;case 5:var d=null;switch(je.tag){case 26:d=je.memoizedState;case 5:case 27:var v=je;if(d?Ff(d):v.stateNode.complete){_e=0,Dt=null;var N=v.sibling;if(N!==null)je=N;else{var H=v.return;H!==null?(je=H,ai(H)):je=null}break t}}_e=0,Dt=null,Wa(e,t,o,5);break;case 6:_e=0,Dt=null,Wa(e,t,o,6);break;case 8:yc(),Ve=6;break e;default:throw Error(u(462))}}Vp();break}catch(Q){rf(e,Q)}while(!0);return dn=la=null,S.H=a,S.A=l,Me=n,je!==null?0:(Be=null,Ce=0,jl(),Ve)}function Vp(){for(;je!==null&&!ya();)df(je)}function df(e){var t=_d(e.alternate,e,Sn);e.memoizedProps=e.pendingProps,t===null?ai(e):je=t}function ff(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=wd(n,t,t.pendingProps,t.type,void 0,Ce);break;case 11:t=wd(n,t,t.pendingProps,t.type.render,t.ref,Ce);break;case 5:_r(t);default:zd(n,t),t=je=ou(t,Sn),t=_d(n,t,Sn)}e.memoizedProps=e.pendingProps,t===null?ai(e):je=t}function Wa(e,t,n,a){dn=la=null,_r(t),qa=null,Ts=0;var l=t.return;try{if(zp(e,l,t,n,Ce)){Ve=1,Yl(e,$t(n,e.current)),je=null;return}}catch(o){if(l!==null)throw je=l,o;Ve=1,Yl(e,$t(n,e.current)),je=null;return}t.flags&32768?(Ee||a===1?e=!0:Va||(Ce&536870912)!==0?e=!1:(Un=e=!0,(a===2||a===9||a===3||a===6)&&(a=kt.current,a!==null&&a.tag===13&&(a.flags|=16384))),mf(t,e)):ai(t)}function ai(e){var t=e;do{if((t.flags&32768)!==0){mf(t,Un);return}e=t.return;var n=Hp(t.alternate,t,Sn);if(n!==null){je=n;return}if(t=t.sibling,t!==null){je=t;return}je=t=e}while(t!==null);Ve===0&&(Ve=5)}function mf(e,t){do{var n=Bp(e.alternate,e);if(n!==null){n.flags&=32767,je=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){je=e;return}je=e=n}while(e!==null);Ve=6,je=null}function hf(e,t,n,a,l,o,d,v,N){e.cancelPendingCommit=null;do si();while(st!==0);if((Me&6)!==0)throw Error(u(327));if(t!==null){if(t===e.current)throw Error(u(177));if(o=t.lanes|t.childLanes,o|=rr,Eh(e,n,o,d,v,N),e===Be&&(je=Be=null,Ce=0),Ja=t,qn=e,jn=n,pc=o,vc=l,nf=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Wp(ba,function(){return bf(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=S.T,S.T=null,l=z.p,z.p=2,d=Me,Me|=4;try{qp(e,t,n)}finally{Me=d,z.p=l,S.T=a}}st=1,pf(),vf(),gf()}}function pf(){if(st===1){st=0;var e=qn,t=Ja,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=S.T,S.T=null;var a=z.p;z.p=2;var l=Me;Me|=4;try{Vd(t,e);var o=Dc,d=eu(e.containerInfo),v=o.focusedElem,N=o.selectionRange;if(d!==v&&v&&v.ownerDocument&&Po(v.ownerDocument.documentElement,v)){if(N!==null&&nr(v)){var H=N.start,Q=N.end;if(Q===void 0&&(Q=H),"selectionStart"in v)v.selectionStart=H,v.selectionEnd=Math.min(Q,v.value.length);else{var te=v.ownerDocument||document,B=te&&te.defaultView||window;if(B.getSelection){var G=B.getSelection(),fe=v.textContent.length,ge=Math.min(N.start,fe),He=N.end===void 0?ge:Math.min(N.end,fe);!G.extend&&ge>He&&(d=He,He=ge,ge=d);var D=Wo(v,ge),C=Wo(v,He);if(D&&C&&(G.rangeCount!==1||G.anchorNode!==D.node||G.anchorOffset!==D.offset||G.focusNode!==C.node||G.focusOffset!==C.offset)){var U=te.createRange();U.setStart(D.node,D.offset),G.removeAllRanges(),ge>He?(G.addRange(U),G.extend(C.node,C.offset)):(U.setEnd(C.node,C.offset),G.addRange(U))}}}}for(te=[],G=v;G=G.parentNode;)G.nodeType===1&&te.push({element:G,left:G.scrollLeft,top:G.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;v<te.length;v++){var J=te[v];J.element.scrollLeft=J.left,J.element.scrollTop=J.top}}vi=!!Ac,Dc=Ac=null}finally{Me=l,z.p=a,S.T=n}}e.current=t,st=2}}function vf(){if(st===2){st=0;var e=qn,t=Ja,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=S.T,S.T=null;var a=z.p;z.p=2;var l=Me;Me|=4;try{$d(e,t.alternate,t)}finally{Me=l,z.p=a,S.T=n}}st=3}}function gf(){if(st===4||st===3){st=0,ne();var e=qn,t=Ja,n=jn,a=nf;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?st=5:(st=0,Ja=qn=null,yf(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(Bn=null),Li(n),t=t.stateNode,gt&&typeof gt.onCommitFiberRoot=="function")try{gt.onCommitFiberRoot(Ht,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=S.T,l=z.p,z.p=2,S.T=null;try{for(var o=e.onRecoverableError,d=0;d<a.length;d++){var v=a[d];o(v.value,{componentStack:v.stack})}}finally{S.T=t,z.p=l}}(jn&3)!==0&&si(),sn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===gc?$s++:($s=0,gc=e):$s=0,Ys(0)}}function yf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Rs(t)))}function si(){return pf(),vf(),gf(),bf()}function bf(){if(st!==5)return!1;var e=qn,t=pc;pc=0;var n=Li(jn),a=S.T,l=z.p;try{z.p=32>n?32:n,S.T=null,n=vc,vc=null;var o=qn,d=jn;if(st=0,Ja=qn=null,jn=0,(Me&6)!==0)throw Error(u(331));var v=Me;if(Me|=4,Pd(o.current),Jd(o,o.current,d,n),Me=v,Ys(0,!1),gt&&typeof gt.onPostCommitFiberRoot=="function")try{gt.onPostCommitFiberRoot(Ht,o)}catch{}return!0}finally{z.p=l,S.T=a,yf(e,t)}}function xf(e,t,n){t=$t(n,t),t=Zr(e.stateNode,t,2),e=_n(e,t,2),e!==null&&(us(e,2),sn(e))}function Ie(e,t,n){if(e.tag===3)xf(e,e,n);else for(;t!==null;){if(t.tag===3){xf(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(Bn===null||!Bn.has(a))){e=$t(n,e),n=xd(2),a=_n(t,n,2),a!==null&&(Sd(n,a,t,e),us(a,2),sn(a));break}}t=t.return}}function xc(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new Yp;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(fc=!0,l.add(n),e=Zp.bind(null,e,t,n),t.then(e,e))}function Zp(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Be===e&&(Ce&n)===n&&(Ve===4||Ve===3&&(Ce&62914560)===Ce&&300>ve()-Wl?(Me&2)===0&&Fa(e,0):mc|=n,Za===Ce&&(Za=0)),sn(e)}function Sf(e,t){t===0&&(t=ho()),e=na(e,t),e!==null&&(us(e,t),sn(e))}function Jp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Sf(e,n)}function Fp(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(u(314))}a!==null&&a.delete(t),Sf(e,n)}function Wp(e,t){return vt(e,t)}var li=null,Pa=null,Sc=!1,ii=!1,jc=!1,$n=0;function sn(e){e!==Pa&&e.next===null&&(Pa===null?li=Pa=e:Pa=Pa.next=e),ii=!0,Sc||(Sc=!0,ev())}function Ys(e,t){if(!jc&&ii){jc=!0;do for(var n=!1,a=li;a!==null;){if(e!==0){var l=a.pendingLanes;if(l===0)var o=0;else{var d=a.suspendedLanes,v=a.pingedLanes;o=(1<<31-ht(42|e)+1)-1,o&=l&~(d&~v),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,Cf(a,o))}else o=Ce,o=ul(a,a===Be?o:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(o&3)===0||os(a,o)||(n=!0,Cf(a,o));a=a.next}while(n);jc=!1}}function Pp(){jf()}function jf(){ii=Sc=!1;var e=0;$n!==0&&uv()&&(e=$n);for(var t=ve(),n=null,a=li;a!==null;){var l=a.next,o=Nf(a,t);o===0?(a.next=null,n===null?li=l:n.next=l,l===null&&(Pa=n)):(n=a,(e!==0||(o&3)!==0)&&(ii=!0)),a=l}st!==0&&st!==5||Ys(e),$n!==0&&($n=0)}function Nf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,o=e.pendingLanes&-62914561;0<o;){var d=31-ht(o),v=1<<d,N=l[d];N===-1?((v&n)===0||(v&a)!==0)&&(l[d]=Th(v,t)):N<=t&&(e.expiredLanes|=v),o&=~v}if(t=Be,n=Ce,n=ul(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(_e===2||_e===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&en(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||os(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&en(a),Li(n)){case 2:case 8:n=il;break;case 32:n=ba;break;case 268435456:n=at;break;default:n=ba}return a=Rf.bind(null,e),n=vt(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&en(a),e.callbackPriority=2,e.callbackNode=null,2}function Rf(e,t){if(st!==0&&st!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(si()&&e.callbackNode!==n)return null;var a=Ce;return a=ul(e,e===Be?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(sf(e,a,t),Nf(e,ve()),e.callbackNode!=null&&e.callbackNode===n?Rf.bind(null,e):null)}function Cf(e,t){if(si())return null;sf(e,t,!0)}function ev(){fv(function(){(Me&6)!==0?vt(Ut,Pp):jf()})}function Nc(){if($n===0){var e=Ua;e===0&&(e=rl,rl<<=1,(rl&261888)===0&&(rl=256)),$n=e}return $n}function Tf(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:hl(""+e)}function Ef(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 tv(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var o=Tf((l[bt]||null).action),d=a.submitter;d&&(t=(t=d[bt]||null)?Tf(t.formAction):d.getAttribute("formAction"),t!==null&&(o=t,d=null));var v=new yl("action","action",null,a,l);e.push({event:v,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if($n!==0){var N=d?Ef(l,d):new FormData(l);$r(n,{pending:!0,data:N,method:l.method,action:o},null,N)}}else typeof o=="function"&&(v.preventDefault(),N=d?Ef(l,d):new FormData(l),$r(n,{pending:!0,data:N,method:l.method,action:o},o,N))},currentTarget:l}]})}}for(var Rc=0;Rc<ir.length;Rc++){var Cc=ir[Rc],nv=Cc.toLowerCase(),av=Cc[0].toUpperCase()+Cc.slice(1);Jt(nv,"on"+av)}Jt(au,"onAnimationEnd"),Jt(su,"onAnimationIteration"),Jt(lu,"onAnimationStart"),Jt("dblclick","onDoubleClick"),Jt("focusin","onFocus"),Jt("focusout","onBlur"),Jt(bp,"onTransitionRun"),Jt(xp,"onTransitionStart"),Jt(Sp,"onTransitionCancel"),Jt(iu,"onTransitionEnd"),Ra("onMouseEnter",["mouseout","mouseover"]),Ra("onMouseLeave",["mouseout","mouseover"]),Ra("onPointerEnter",["pointerout","pointerover"]),Ra("onPointerLeave",["pointerout","pointerover"]),Wn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Wn("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Wn("onBeforeInput",["compositionend","keypress","textInput","paste"]),Wn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Wn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Wn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ks="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(" "),sv=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Ks));function wf(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var o=void 0;if(t)for(var d=a.length-1;0<=d;d--){var v=a[d],N=v.instance,H=v.currentTarget;if(v=v.listener,N!==o&&l.isPropagationStopped())break e;o=v,l.currentTarget=H;try{o(l)}catch(Q){Sl(Q)}l.currentTarget=null,o=N}else for(d=0;d<a.length;d++){if(v=a[d],N=v.instance,H=v.currentTarget,v=v.listener,N!==o&&l.isPropagationStopped())break e;o=v,l.currentTarget=H;try{o(l)}catch(Q){Sl(Q)}l.currentTarget=null,o=N}}}}function Ne(e,t){var n=t[Ui];n===void 0&&(n=t[Ui]=new Set);var a=e+"__bubble";n.has(a)||(kf(t,e,2,!1),n.add(a))}function Tc(e,t,n){var a=0;t&&(a|=4),kf(n,e,a,t)}var ri="_reactListening"+Math.random().toString(36).slice(2);function Ec(e){if(!e[ri]){e[ri]=!0,So.forEach(function(n){n!=="selectionchange"&&(sv.has(n)||Tc(n,!1,e),Tc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[ri]||(t[ri]=!0,Tc("selectionchange",!1,t))}}function kf(e,t,n,a){switch(sm(t)){case 2:var l=Ov;break;case 8:l=Mv;break;default:l=Gc}n=l.bind(null,t,n,e),l=void 0,!Qi||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 wc(e,t,n,a,l){var o=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var d=a.tag;if(d===3||d===4){var v=a.stateNode.containerInfo;if(v===l)break;if(d===4)for(d=a.return;d!==null;){var N=d.tag;if((N===3||N===4)&&d.stateNode.containerInfo===l)return;d=d.return}for(;v!==null;){if(d=Sa(v),d===null)return;if(N=d.tag,N===5||N===6||N===26||N===27){a=o=d;continue e}v=v.parentNode}}a=a.return}Mo(function(){var H=o,Q=Ki(n),te=[];e:{var B=ru.get(e);if(B!==void 0){var G=yl,fe=e;switch(e){case"keypress":if(vl(n)===0)break e;case"keydown":case"keyup":G=Fh;break;case"focusin":fe="focus",G=Fi;break;case"focusout":fe="blur",G=Fi;break;case"beforeblur":case"afterblur":G=Fi;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":G=zo;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":G=Hh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":G=ep;break;case au:case su:case lu:G=Gh;break;case iu:G=np;break;case"scroll":case"scrollend":G=Lh;break;case"wheel":G=sp;break;case"copy":case"cut":case"paste":G=Yh;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":G=Uo;break;case"toggle":case"beforetoggle":G=ip}var ge=(t&4)!==0,He=!ge&&(e==="scroll"||e==="scrollend"),D=ge?B!==null?B+"Capture":null:B;ge=[];for(var C=H,U;C!==null;){var J=C;if(U=J.stateNode,J=J.tag,J!==5&&J!==26&&J!==27||U===null||D===null||(J=ms(C,D),J!=null&&ge.push(Xs(C,J,U))),He)break;C=C.return}0<ge.length&&(B=new G(B,fe,null,n,Q),te.push({event:B,listeners:ge}))}}if((t&7)===0){e:{if(B=e==="mouseover"||e==="pointerover",G=e==="mouseout"||e==="pointerout",B&&n!==Yi&&(fe=n.relatedTarget||n.fromElement)&&(Sa(fe)||fe[xa]))break e;if((G||B)&&(B=Q.window===Q?Q:(B=Q.ownerDocument)?B.defaultView||B.parentWindow:window,G?(fe=n.relatedTarget||n.toElement,G=H,fe=fe?Sa(fe):null,fe!==null&&(He=m(fe),ge=fe.tag,fe!==He||ge!==5&&ge!==27&&ge!==6)&&(fe=null)):(G=null,fe=H),G!==fe)){if(ge=zo,J="onMouseLeave",D="onMouseEnter",C="mouse",(e==="pointerout"||e==="pointerover")&&(ge=Uo,J="onPointerLeave",D="onPointerEnter",C="pointer"),He=G==null?B:fs(G),U=fe==null?B:fs(fe),B=new ge(J,C+"leave",G,n,Q),B.target=He,B.relatedTarget=U,J=null,Sa(Q)===H&&(ge=new ge(D,C+"enter",fe,n,Q),ge.target=U,ge.relatedTarget=He,J=ge),He=J,G&&fe)t:{for(ge=lv,D=G,C=fe,U=0,J=D;J;J=ge(J))U++;J=0;for(var pe=C;pe;pe=ge(pe))J++;for(;0<U-J;)D=ge(D),U--;for(;0<J-U;)C=ge(C),J--;for(;U--;){if(D===C||C!==null&&D===C.alternate){ge=D;break t}D=ge(D),C=ge(C)}ge=null}else ge=null;G!==null&&Af(te,B,G,ge,!1),fe!==null&&He!==null&&Af(te,He,fe,ge,!0)}}e:{if(B=H?fs(H):window,G=B.nodeName&&B.nodeName.toLowerCase(),G==="select"||G==="input"&&B.type==="file")var we=Xo;else if(Yo(B))if(Qo)we=vp;else{we=hp;var he=mp}else G=B.nodeName,!G||G.toLowerCase()!=="input"||B.type!=="checkbox"&&B.type!=="radio"?H&&$i(H.elementType)&&(we=Xo):we=pp;if(we&&(we=we(e,H))){Ko(te,we,n,Q);break e}he&&he(e,B,H),e==="focusout"&&H&&B.type==="number"&&H.memoizedProps.value!=null&&Gi(B,"number",B.value)}switch(he=H?fs(H):window,e){case"focusin":(Yo(he)||he.contentEditable==="true")&&(Aa=he,ar=H,Ss=null);break;case"focusout":Ss=ar=Aa=null;break;case"mousedown":sr=!0;break;case"contextmenu":case"mouseup":case"dragend":sr=!1,tu(te,n,Q);break;case"selectionchange":if(yp)break;case"keydown":case"keyup":tu(te,n,Q)}var Se;if(Pi)e:{switch(e){case"compositionstart":var Te="onCompositionStart";break e;case"compositionend":Te="onCompositionEnd";break e;case"compositionupdate":Te="onCompositionUpdate";break e}Te=void 0}else ka?Go(e,n)&&(Te="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Te="onCompositionStart");Te&&(Ho&&n.locale!=="ko"&&(ka||Te!=="onCompositionStart"?Te==="onCompositionEnd"&&ka&&(Se=_o()):(En=Q,Vi="value"in En?En.value:En.textContent,ka=!0)),he=ci(H,Te),0<he.length&&(Te=new Lo(Te,e,null,n,Q),te.push({event:Te,listeners:he}),Se?Te.data=Se:(Se=$o(n),Se!==null&&(Te.data=Se)))),(Se=cp?op(e,n):up(e,n))&&(Te=ci(H,"onBeforeInput"),0<Te.length&&(he=new Lo("onBeforeInput","beforeinput",null,n,Q),te.push({event:he,listeners:Te}),he.data=Se)),tv(te,e,H,n,Q)}wf(te,t)})}function Xs(e,t,n){return{instance:e,listener:t,currentTarget:n}}function ci(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,o=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||o===null||(l=ms(e,n),l!=null&&a.unshift(Xs(e,l,o)),l=ms(e,t),l!=null&&a.push(Xs(e,l,o))),e.tag===3)return a;e=e.return}return[]}function lv(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Af(e,t,n,a,l){for(var o=t._reactName,d=[];n!==null&&n!==a;){var v=n,N=v.alternate,H=v.stateNode;if(v=v.tag,N!==null&&N===a)break;v!==5&&v!==26&&v!==27||H===null||(N=H,l?(H=ms(n,o),H!=null&&d.unshift(Xs(n,H,N))):l||(H=ms(n,o),H!=null&&d.push(Xs(n,H,N)))),n=n.return}d.length!==0&&e.push({event:t,listeners:d})}var iv=/\r\n?/g,rv=/\u0000|\uFFFD/g;function Df(e){return(typeof e=="string"?e:""+e).replace(iv,`
9
+ `).replace(rv,"")}function Of(e,t){return t=Df(t),Df(e)===t}function Ue(e,t,n,a,l,o){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||Ta(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&Ta(e,""+a);break;case"className":fl(e,"class",a);break;case"tabIndex":fl(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":fl(e,n,a);break;case"style":Do(e,a,o);break;case"data":if(t!=="object"){fl(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=hl(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof o=="function"&&(n==="formAction"?(t!=="input"&&Ue(e,t,"name",l.name,l,null),Ue(e,t,"formEncType",l.formEncType,l,null),Ue(e,t,"formMethod",l.formMethod,l,null),Ue(e,t,"formTarget",l.formTarget,l,null)):(Ue(e,t,"encType",l.encType,l,null),Ue(e,t,"method",l.method,l,null),Ue(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=hl(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=rn);break;case"onScroll":a!=null&&Ne("scroll",e);break;case"onScrollEnd":a!=null&&Ne("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(u(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(u(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=hl(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":Ne("beforetoggle",e),Ne("toggle",e),dl(e,"popover",a);break;case"xlinkActuate":ln(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":ln(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":ln(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":ln(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":ln(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":ln(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":ln(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":ln(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":ln(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":dl(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Ih.get(n)||n,dl(e,n,a))}}function kc(e,t,n,a,l,o){switch(n){case"style":Do(e,a,o);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(u(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(u(60));e.innerHTML=n}}break;case"children":typeof a=="string"?Ta(e,a):(typeof a=="number"||typeof a=="bigint")&&Ta(e,""+a);break;case"onScroll":a!=null&&Ne("scroll",e);break;case"onScrollEnd":a!=null&&Ne("scrollend",e);break;case"onClick":a!=null&&(e.onclick=rn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!jo.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),o=e[bt]||null,o=o!=null?o[n]:null,typeof o=="function"&&e.removeEventListener(t,o,l),typeof a=="function")){typeof o!="function"&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):dl(e,n,a)}}}function ft(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ne("error",e),Ne("load",e);var a=!1,l=!1,o;for(o in n)if(n.hasOwnProperty(o)){var d=n[o];if(d!=null)switch(o){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:Ue(e,t,o,d,n,null)}}l&&Ue(e,t,"srcSet",n.srcSet,n,null),a&&Ue(e,t,"src",n.src,n,null);return;case"input":Ne("invalid",e);var v=o=d=l=null,N=null,H=null;for(a in n)if(n.hasOwnProperty(a)){var Q=n[a];if(Q!=null)switch(a){case"name":l=Q;break;case"type":d=Q;break;case"checked":N=Q;break;case"defaultChecked":H=Q;break;case"value":o=Q;break;case"defaultValue":v=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(u(137,t));break;default:Ue(e,t,a,Q,n,null)}}Eo(e,o,v,N,H,d,l,!1);return;case"select":Ne("invalid",e),a=d=o=null;for(l in n)if(n.hasOwnProperty(l)&&(v=n[l],v!=null))switch(l){case"value":o=v;break;case"defaultValue":d=v;break;case"multiple":a=v;default:Ue(e,t,l,v,n,null)}t=o,n=d,e.multiple=!!a,t!=null?Ca(e,!!a,t,!1):n!=null&&Ca(e,!!a,n,!0);return;case"textarea":Ne("invalid",e),o=l=a=null;for(d in n)if(n.hasOwnProperty(d)&&(v=n[d],v!=null))switch(d){case"value":a=v;break;case"defaultValue":l=v;break;case"children":o=v;break;case"dangerouslySetInnerHTML":if(v!=null)throw Error(u(91));break;default:Ue(e,t,d,v,n,null)}ko(e,a,l,o);return;case"option":for(N in n)n.hasOwnProperty(N)&&(a=n[N],a!=null)&&(N==="selected"?e.selected=a&&typeof a!="function"&&typeof a!="symbol":Ue(e,t,N,a,n,null));return;case"dialog":Ne("beforetoggle",e),Ne("toggle",e),Ne("cancel",e),Ne("close",e);break;case"iframe":case"object":Ne("load",e);break;case"video":case"audio":for(a=0;a<Ks.length;a++)Ne(Ks[a],e);break;case"image":Ne("error",e),Ne("load",e);break;case"details":Ne("toggle",e);break;case"embed":case"source":case"link":Ne("error",e),Ne("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(H in n)if(n.hasOwnProperty(H)&&(a=n[H],a!=null))switch(H){case"children":case"dangerouslySetInnerHTML":throw Error(u(137,t));default:Ue(e,t,H,a,n,null)}return;default:if($i(t)){for(Q in n)n.hasOwnProperty(Q)&&(a=n[Q],a!==void 0&&kc(e,t,Q,a,n,void 0));return}}for(v in n)n.hasOwnProperty(v)&&(a=n[v],a!=null&&Ue(e,t,v,a,n,null))}function cv(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,o=null,d=null,v=null,N=null,H=null,Q=null;for(G in n){var te=n[G];if(n.hasOwnProperty(G)&&te!=null)switch(G){case"checked":break;case"value":break;case"defaultValue":N=te;default:a.hasOwnProperty(G)||Ue(e,t,G,null,a,te)}}for(var B in a){var G=a[B];if(te=n[B],a.hasOwnProperty(B)&&(G!=null||te!=null))switch(B){case"type":o=G;break;case"name":l=G;break;case"checked":H=G;break;case"defaultChecked":Q=G;break;case"value":d=G;break;case"defaultValue":v=G;break;case"children":case"dangerouslySetInnerHTML":if(G!=null)throw Error(u(137,t));break;default:G!==te&&Ue(e,t,B,G,a,te)}}qi(e,d,v,N,H,Q,o,l);return;case"select":G=d=v=B=null;for(o in n)if(N=n[o],n.hasOwnProperty(o)&&N!=null)switch(o){case"value":break;case"multiple":G=N;default:a.hasOwnProperty(o)||Ue(e,t,o,null,a,N)}for(l in a)if(o=a[l],N=n[l],a.hasOwnProperty(l)&&(o!=null||N!=null))switch(l){case"value":B=o;break;case"defaultValue":v=o;break;case"multiple":d=o;default:o!==N&&Ue(e,t,l,o,a,N)}t=v,n=d,a=G,B!=null?Ca(e,!!n,B,!1):!!a!=!!n&&(t!=null?Ca(e,!!n,t,!0):Ca(e,!!n,n?[]:"",!1));return;case"textarea":G=B=null;for(v in n)if(l=n[v],n.hasOwnProperty(v)&&l!=null&&!a.hasOwnProperty(v))switch(v){case"value":break;case"children":break;default:Ue(e,t,v,null,a,l)}for(d in a)if(l=a[d],o=n[d],a.hasOwnProperty(d)&&(l!=null||o!=null))switch(d){case"value":B=l;break;case"defaultValue":G=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(u(91));break;default:l!==o&&Ue(e,t,d,l,a,o)}wo(e,B,G);return;case"option":for(var fe in n)B=n[fe],n.hasOwnProperty(fe)&&B!=null&&!a.hasOwnProperty(fe)&&(fe==="selected"?e.selected=!1:Ue(e,t,fe,null,a,B));for(N in a)B=a[N],G=n[N],a.hasOwnProperty(N)&&B!==G&&(B!=null||G!=null)&&(N==="selected"?e.selected=B&&typeof B!="function"&&typeof B!="symbol":Ue(e,t,N,B,a,G));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 ge in n)B=n[ge],n.hasOwnProperty(ge)&&B!=null&&!a.hasOwnProperty(ge)&&Ue(e,t,ge,null,a,B);for(H in a)if(B=a[H],G=n[H],a.hasOwnProperty(H)&&B!==G&&(B!=null||G!=null))switch(H){case"children":case"dangerouslySetInnerHTML":if(B!=null)throw Error(u(137,t));break;default:Ue(e,t,H,B,a,G)}return;default:if($i(t)){for(var He in n)B=n[He],n.hasOwnProperty(He)&&B!==void 0&&!a.hasOwnProperty(He)&&kc(e,t,He,void 0,a,B);for(Q in a)B=a[Q],G=n[Q],!a.hasOwnProperty(Q)||B===G||B===void 0&&G===void 0||kc(e,t,Q,B,a,G);return}}for(var D in n)B=n[D],n.hasOwnProperty(D)&&B!=null&&!a.hasOwnProperty(D)&&Ue(e,t,D,null,a,B);for(te in a)B=a[te],G=n[te],!a.hasOwnProperty(te)||B===G||B==null&&G==null||Ue(e,t,te,B,a,G)}function Mf(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function ov(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],o=l.transferSize,d=l.initiatorType,v=l.duration;if(o&&v&&Mf(d)){for(d=0,v=l.responseEnd,a+=1;a<n.length;a++){var N=n[a],H=N.startTime;if(H>v)break;var Q=N.transferSize,te=N.initiatorType;Q&&Mf(te)&&(N=N.responseEnd,d+=Q*(N<v?1:(v-H)/(N-H)))}if(--a,t+=8*(o+d)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Ac=null,Dc=null;function oi(e){return e.nodeType===9?e:e.ownerDocument}function _f(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 If(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 Oc(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 Mc=null;function uv(){var e=window.event;return e&&e.type==="popstate"?e===Mc?!1:(Mc=e,!0):(Mc=null,!1)}var zf=typeof setTimeout=="function"?setTimeout:void 0,dv=typeof clearTimeout=="function"?clearTimeout:void 0,Lf=typeof Promise=="function"?Promise:void 0,fv=typeof queueMicrotask=="function"?queueMicrotask:typeof Lf<"u"?function(e){return Lf.resolve(null).then(e).catch(mv)}:zf;function mv(e){setTimeout(function(){throw e})}function Yn(e){return e==="head"}function Uf(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),as(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")Qs(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,Qs(n);for(var o=n.firstChild;o;){var d=o.nextSibling,v=o.nodeName;o[ds]||v==="SCRIPT"||v==="STYLE"||v==="LINK"&&o.rel.toLowerCase()==="stylesheet"||n.removeChild(o),o=d}}else n==="body"&&Qs(e.ownerDocument.body);n=l}while(n);as(t)}function Hf(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 _c(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":_c(n),Hi(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function hv(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[ds])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(o=e.getAttribute("rel"),o==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(o!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(o=e.getAttribute("src"),(o!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var o=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===o)return e}else return e;if(e=Vt(e.nextSibling),e===null)break}return null}function pv(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Vt(e.nextSibling),e===null))return null;return e}function Bf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Vt(e.nextSibling),e===null))return null;return e}function Ic(e){return e.data==="$?"||e.data==="$~"}function zc(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function vv(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Vt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Lc=null;function qf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Vt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Gf(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 $f(e,t,n){switch(t=oi(n),e){case"html":if(e=t.documentElement,!e)throw Error(u(452));return e;case"head":if(e=t.head,!e)throw Error(u(453));return e;case"body":if(e=t.body,!e)throw Error(u(454));return e;default:throw Error(u(451))}}function Qs(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Hi(e)}var Zt=new Map,Yf=new Set;function ui(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Nn=z.d;z.d={f:gv,r:yv,D:bv,C:xv,L:Sv,m:jv,X:Rv,S:Nv,M:Cv};function gv(){var e=Nn.f(),t=ti();return e||t}function yv(e){var t=ja(e);t!==null&&t.tag===5&&t.type==="form"?id(t):Nn.r(e)}var es=typeof document>"u"?null:document;function Kf(e,t,n){var a=es;if(a&&typeof t=="string"&&t){var l=qt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),Yf.has(l)||(Yf.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),ft(t,"link",e),lt(t),a.head.appendChild(t)))}}function bv(e){Nn.D(e),Kf("dns-prefetch",e,null)}function xv(e,t){Nn.C(e,t),Kf("preconnect",e,t)}function Sv(e,t,n){Nn.L(e,t,n);var a=es;if(a&&e&&t){var l='link[rel="preload"][as="'+qt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+qt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+qt(n.imageSizes)+'"]')):l+='[href="'+qt(e)+'"]';var o=l;switch(t){case"style":o=ts(e);break;case"script":o=ns(e)}Zt.has(o)||(e=j({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Zt.set(o,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(Vs(o))||t==="script"&&a.querySelector(Zs(o))||(t=a.createElement("link"),ft(t,"link",e),lt(t),a.head.appendChild(t)))}}function jv(e,t){Nn.m(e,t);var n=es;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+qt(a)+'"][href="'+qt(e)+'"]',o=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=ns(e)}if(!Zt.has(o)&&(e=j({rel:"modulepreload",href:e},t),Zt.set(o,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Zs(o)))return}a=n.createElement("link"),ft(a,"link",e),lt(a),n.head.appendChild(a)}}}function Nv(e,t,n){Nn.S(e,t,n);var a=es;if(a&&e){var l=Na(a).hoistableStyles,o=ts(e);t=t||"default";var d=l.get(o);if(!d){var v={loading:0,preload:null};if(d=a.querySelector(Vs(o)))v.loading=5;else{e=j({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Zt.get(o))&&Uc(e,n);var N=d=a.createElement("link");lt(N),ft(N,"link",e),N._p=new Promise(function(H,Q){N.onload=H,N.onerror=Q}),N.addEventListener("load",function(){v.loading|=1}),N.addEventListener("error",function(){v.loading|=2}),v.loading|=4,di(d,t,a)}d={type:"stylesheet",instance:d,count:1,state:v},l.set(o,d)}}}function Rv(e,t){Nn.X(e,t);var n=es;if(n&&e){var a=Na(n).hoistableScripts,l=ns(e),o=a.get(l);o||(o=n.querySelector(Zs(l)),o||(e=j({src:e,async:!0},t),(t=Zt.get(l))&&Hc(e,t),o=n.createElement("script"),lt(o),ft(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},a.set(l,o))}}function Cv(e,t){Nn.M(e,t);var n=es;if(n&&e){var a=Na(n).hoistableScripts,l=ns(e),o=a.get(l);o||(o=n.querySelector(Zs(l)),o||(e=j({src:e,async:!0,type:"module"},t),(t=Zt.get(l))&&Hc(e,t),o=n.createElement("script"),lt(o),ft(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},a.set(l,o))}}function Xf(e,t,n,a){var l=(l=re.current)?ui(l):null;if(!l)throw Error(u(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=ts(n.href),n=Na(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=ts(n.href);var o=Na(l).hoistableStyles,d=o.get(e);if(d||(l=l.ownerDocument||l,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,d),(o=l.querySelector(Vs(e)))&&!o._p&&(d.instance=o,d.state.loading=5),Zt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Zt.set(e,n),o||Tv(l,e,n,d.state))),t&&a===null)throw Error(u(528,""));return d}if(t&&a!==null)throw Error(u(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=ns(n),n=Na(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(u(444,e))}}function ts(e){return'href="'+qt(e)+'"'}function Vs(e){return'link[rel="stylesheet"]['+e+"]"}function Qf(e){return j({},e,{"data-precedence":e.precedence,precedence:null})}function Tv(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}),ft(t,"link",n),lt(t),e.head.appendChild(t))}function ns(e){return'[src="'+qt(e)+'"]'}function Zs(e){return"script[async]"+e}function Vf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+qt(n.href)+'"]');if(a)return t.instance=a,lt(a),a;var l=j({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),lt(a),ft(a,"style",l),di(a,n.precedence,e),t.instance=a;case"stylesheet":l=ts(n.href);var o=e.querySelector(Vs(l));if(o)return t.state.loading|=4,t.instance=o,lt(o),o;a=Qf(n),(l=Zt.get(l))&&Uc(a,l),o=(e.ownerDocument||e).createElement("link"),lt(o);var d=o;return d._p=new Promise(function(v,N){d.onload=v,d.onerror=N}),ft(o,"link",a),t.state.loading|=4,di(o,n.precedence,e),t.instance=o;case"script":return o=ns(n.src),(l=e.querySelector(Zs(o)))?(t.instance=l,lt(l),l):(a=n,(l=Zt.get(o))&&(a=j({},n),Hc(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),lt(l),ft(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(u(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,di(a,n.precedence,e));return t.instance}function di(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,o=l,d=0;d<a.length;d++){var v=a[d];if(v.dataset.precedence===t)o=v;else if(o!==l)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Uc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Hc(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var fi=null;function Zf(e,t,n){if(fi===null){var a=new Map,l=fi=new Map;l.set(n,a)}else l=fi,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var o=n[l];if(!(o[ds]||o[ct]||e==="link"&&o.getAttribute("rel")==="stylesheet")&&o.namespaceURI!=="http://www.w3.org/2000/svg"){var d=o.getAttribute(t)||"";d=e+d;var v=a.get(d);v?v.push(o):a.set(d,[o])}}return a}function Jf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Ev(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 Ff(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function wv(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=ts(a.href),o=t.querySelector(Vs(l));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=mi.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,lt(o);return}o=t.ownerDocument||t,a=Qf(a),(l=Zt.get(l))&&Uc(a,l),o=o.createElement("link"),lt(o);var d=o;d._p=new Promise(function(v,N){d.onload=v,d.onerror=N}),ft(o,"link",a),n.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=mi.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Bc=0;function kv(e,t){return e.stylesheets&&e.count===0&&pi(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&pi(e,e.stylesheets),e.unsuspend){var o=e.unsuspend;e.unsuspend=null,o()}},6e4+t);0<e.imgBytes&&Bc===0&&(Bc=62500*ov());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&pi(e,e.stylesheets),e.unsuspend)){var o=e.unsuspend;e.unsuspend=null,o()}},(e.imgBytes>Bc?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function mi(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)pi(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var hi=null;function pi(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,hi=new Map,t.forEach(Av,e),hi=null,mi.call(e))}function Av(e,t){if(!(t.state.loading&4)){var n=hi.get(e);if(n)var a=n.get(null);else{n=new Map,hi.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<l.length;o++){var d=l[o];(d.nodeName==="LINK"||d.getAttribute("media")!=="not all")&&(n.set(d.dataset.precedence,d),a=d)}a&&n.set(null,a)}l=t.instance,d=l.getAttribute("data-precedence"),o=n.get(d)||a,o===a&&n.set(null,l),n.set(d,l),this.count++,a=mi.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),o?o.parentNode.insertBefore(l,o.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var Js={$$typeof:A,Provider:null,Consumer:null,_currentValue:_,_currentValue2:_,_threadCount:0};function Dv(e,t,n,a,l,o,d,v,N){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=Ii(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ii(0),this.hiddenUpdates=Ii(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=o,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=N,this.incompleteTransitions=new Map}function Wf(e,t,n,a,l,o,d,v,N,H,Q,te){return e=new Dv(e,t,n,d,N,H,Q,te,v),t=1,o===!0&&(t|=24),o=wt(3,null,null,t),e.current=o,o.stateNode=e,t=br(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:a,isDehydrated:n,cache:t},Nr(o),e}function Pf(e){return e?(e=Ma,e):Ma}function em(e,t,n,a,l,o){l=Pf(l),a.context===null?a.context=l:a.pendingContext=l,a=Mn(t),a.payload={element:n},o=o===void 0?null:o,o!==null&&(a.callback=o),n=_n(e,a,t),n!==null&&(Ct(n,e,t),ws(n,e,t))}function tm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function qc(e,t){tm(e,t),(e=e.alternate)&&tm(e,t)}function nm(e){if(e.tag===13||e.tag===31){var t=na(e,67108864);t!==null&&Ct(t,e,67108864),qc(e,67108864)}}function am(e){if(e.tag===13||e.tag===31){var t=Mt();t=zi(t);var n=na(e,t);n!==null&&Ct(n,e,t),qc(e,t)}}var vi=!0;function Ov(e,t,n,a){var l=S.T;S.T=null;var o=z.p;try{z.p=2,Gc(e,t,n,a)}finally{z.p=o,S.T=l}}function Mv(e,t,n,a){var l=S.T;S.T=null;var o=z.p;try{z.p=8,Gc(e,t,n,a)}finally{z.p=o,S.T=l}}function Gc(e,t,n,a){if(vi){var l=$c(a);if(l===null)wc(e,t,a,gi,n),lm(e,a);else if(Iv(l,e,t,n,a))a.stopPropagation();else if(lm(e,a),t&4&&-1<_v.indexOf(e)){for(;l!==null;){var o=ja(l);if(o!==null)switch(o.tag){case 3:if(o=o.stateNode,o.current.memoizedState.isDehydrated){var d=Fn(o.pendingLanes);if(d!==0){var v=o;for(v.pendingLanes|=2,v.entangledLanes|=2;d;){var N=1<<31-ht(d);v.entanglements[1]|=N,d&=~N}sn(o),(Me&6)===0&&(Pl=ve()+500,Ys(0))}}break;case 31:case 13:v=na(o,2),v!==null&&Ct(v,o,2),ti(),qc(o,2)}if(o=$c(a),o===null&&wc(e,t,a,gi,n),o===l)break;l=o}l!==null&&a.stopPropagation()}else wc(e,t,a,null,n)}}function $c(e){return e=Ki(e),Yc(e)}var gi=null;function Yc(e){if(gi=null,e=Sa(e),e!==null){var t=m(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=h(t),e!==null)return e;e=null}else if(n===31){if(e=g(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return gi=e,null}function sm(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(Lt()){case Ut:return 2;case il:return 8;case ba:case Oe:return 32;case at:return 268435456;default:return 32}default:return 32}}var Kc=!1,Kn=null,Xn=null,Qn=null,Fs=new Map,Ws=new Map,Vn=[],_v="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 lm(e,t){switch(e){case"focusin":case"focusout":Kn=null;break;case"dragenter":case"dragleave":Xn=null;break;case"mouseover":case"mouseout":Qn=null;break;case"pointerover":case"pointerout":Fs.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Ws.delete(t.pointerId)}}function Ps(e,t,n,a,l,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:o,targetContainers:[l]},t!==null&&(t=ja(t),t!==null&&nm(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function Iv(e,t,n,a,l){switch(t){case"focusin":return Kn=Ps(Kn,e,t,n,a,l),!0;case"dragenter":return Xn=Ps(Xn,e,t,n,a,l),!0;case"mouseover":return Qn=Ps(Qn,e,t,n,a,l),!0;case"pointerover":var o=l.pointerId;return Fs.set(o,Ps(Fs.get(o)||null,e,t,n,a,l)),!0;case"gotpointercapture":return o=l.pointerId,Ws.set(o,Ps(Ws.get(o)||null,e,t,n,a,l)),!0}return!1}function im(e){var t=Sa(e.target);if(t!==null){var n=m(t);if(n!==null){if(t=n.tag,t===13){if(t=h(n),t!==null){e.blockedOn=t,bo(e.priority,function(){am(n)});return}}else if(t===31){if(t=g(n),t!==null){e.blockedOn=t,bo(e.priority,function(){am(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function yi(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=$c(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Yi=a,n.target.dispatchEvent(a),Yi=null}else return t=ja(n),t!==null&&nm(t),e.blockedOn=n,!1;t.shift()}return!0}function rm(e,t,n){yi(e)&&n.delete(t)}function zv(){Kc=!1,Kn!==null&&yi(Kn)&&(Kn=null),Xn!==null&&yi(Xn)&&(Xn=null),Qn!==null&&yi(Qn)&&(Qn=null),Fs.forEach(rm),Ws.forEach(rm)}function bi(e,t){e.blockedOn===t&&(e.blockedOn=null,Kc||(Kc=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,zv)))}var xi=null;function cm(e){xi!==e&&(xi=e,i.unstable_scheduleCallback(i.unstable_NormalPriority,function(){xi===e&&(xi=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(Yc(a||n)===null)continue;break}var o=ja(n);o!==null&&(e.splice(t,3),t-=3,$r(o,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function as(e){function t(N){return bi(N,e)}Kn!==null&&bi(Kn,e),Xn!==null&&bi(Xn,e),Qn!==null&&bi(Qn,e),Fs.forEach(t),Ws.forEach(t);for(var n=0;n<Vn.length;n++){var a=Vn[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<Vn.length&&(n=Vn[0],n.blockedOn===null);)im(n),n.blockedOn===null&&Vn.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],o=n[a+1],d=l[bt]||null;if(typeof o=="function")d||cm(n);else if(d){var v=null;if(o&&o.hasAttribute("formAction")){if(l=o,d=o[bt]||null)v=d.formAction;else if(Yc(l)!==null)continue}else v=d.action;typeof v=="function"?n[a+1]=v:(n.splice(a,3),a-=3),cm(n)}}}function om(){function e(o){o.canIntercept&&o.info==="react-transition"&&o.intercept({handler:function(){return new Promise(function(d){return l=d})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var o=navigation.currentEntry;o&&o.url!=null&&navigation.navigate(o.url,{state:o.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function Xc(e){this._internalRoot=e}Si.prototype.render=Xc.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(u(409));var n=t.current,a=Mt();em(n,a,e,t,null,null)},Si.prototype.unmount=Xc.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;em(e.current,2,null,e,null,null),ti(),t[xa]=null}};function Si(e){this._internalRoot=e}Si.prototype.unstable_scheduleHydration=function(e){if(e){var t=yo();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Vn.length&&t!==0&&t<Vn[n].priority;n++);Vn.splice(n,0,e),n===0&&im(e)}};var um=r.version;if(um!=="19.2.8")throw Error(u(527,um,"19.2.8"));z.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(u(188)):(e=Object.keys(e).join(","),Error(u(268,e)));return e=y(t),e=e!==null?R(e):null,e=e===null?null:e.stateNode,e};var Lv={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:S,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ji=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ji.isDisabled&&ji.supportsFiber)try{Ht=ji.inject(Lv),gt=ji}catch{}}return tl.createRoot=function(e,t){if(!f(e))throw Error(u(299));var n=!1,a="",l=vd,o=gd,d=yd;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(o=t.onCaughtError),t.onRecoverableError!==void 0&&(d=t.onRecoverableError)),t=Wf(e,1,!1,null,null,n,a,null,l,o,d,om),e[xa]=t.current,Ec(e),new Xc(t)},tl.hydrateRoot=function(e,t,n){if(!f(e))throw Error(u(299));var a=!1,l="",o=vd,d=gd,v=yd,N=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(o=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(v=n.onRecoverableError),n.formState!==void 0&&(N=n.formState)),t=Wf(e,1,!0,t,n??null,a,l,N,o,d,v,om),t.context=Pf(null),n=t.current,a=Mt(),a=zi(a),l=Mn(a),l.callback=null,_n(n,l,a),n=a,t.current.lanes=n,us(t,n),sn(t),e[xa]=t.current,Ec(e),new Si(t)},tl.version="19.2.8",tl}var xm;function Qv(){if(xm)return Zc.exports;xm=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(r){console.error(r)}}return i(),Zc.exports=Xv(),Zc.exports}var Vv=Qv();function pa(i){if(i==null)return null;if(typeof i=="string")return i.trim()||null;if(typeof i=="number"||typeof i=="boolean")return String(i);if(typeof i=="object"){const r=i;if(typeof r.text=="string"&&r.text.trim())return r.text.trim();if(typeof r.errorMessage=="string"&&r.errorMessage.trim())return r.errorMessage.trim();if(Array.isArray(r.content)){const c=r.content.map(u=>{if(typeof u=="string")return u;if(u&&typeof u=="object"){const f=u;if(typeof f.text=="string")return f.text}return""}).filter(Boolean);if(c.length)return c.join(`
10
+ `).slice(0,240)}if(typeof r.role=="string")return`${r.role} 消息`}return null}function Zv(i){const r=pa(i.at)??pa(i.timestamp)??pa(i.recordedAt)??"",c=pa(i.errorMessage)??pa(i.label)??pa(i.type)??pa(i.message)??"运行事件";return r?`${r} · ${c}`:c}function sl(i){return String(i.nodeId??i.id??"").trim()}function Pc(i){const r=sl(i);return String(i.label??i.name??(r||"未命名节点"))}function Sm(i,r){if(i.length===0)return;const c=r?.trim();if(c){const m=i.find(h=>sl(h)===c);if(m)return m}const u=i.find(m=>{const h=String(m.status??"").toLowerCase();return h.includes("fail")||h.includes("error")||h==="blocked"});return u||(i.find(m=>{const h=String(m.status??"").toLowerCase();return h==="running"||h==="in_progress"||h==="active"})??i[0])}function Jv({dagRunId:i,nodeId:r,onClose:c,onOpenFull:u}){const f=p.useRef(null),[m,h]=p.useState(null),[g,x]=p.useState([]),[y,R]=p.useState(null),[j,M]=p.useState(!0);p.useEffect(()=>{f.current?.focus();const se=T=>{T.key==="Escape"&&c()};return document.addEventListener("keydown",se),document.title=`检视 · DAG ${i} · Loop Operator`,()=>document.removeEventListener("keydown",se)},[i,c]),p.useEffect(()=>{const se=new AbortController;return M(!0),R(null),x([]),(async()=>{try{const T=await fetch(`/api/dag-runs/${encodeURIComponent(i)}`,{signal:se.signal,credentials:"same-origin"});if(!T.ok)throw new Error(`DAG 查询失败(HTTP ${T.status})`);const A=await T.json();if(se.signal.aborted)return;h(A);const O=Array.isArray(A.nodes)?A.nodes:[],Z=Sm(O,r),L=Z?sl(Z):r?.trim();if(L){const E=await fetch(`/api/dag-runs/${encodeURIComponent(i)}/nodes/${encodeURIComponent(L)}/session-events`,{signal:se.signal,credentials:"same-origin"});if(E.ok){const Y=await E.json();se.signal.aborted||x((Y.events??[]).slice(-20))}}}catch(T){se.signal.aborted||R(T instanceof Error?T.message:String(T))}finally{se.signal.aborted||M(!1)}})(),()=>se.abort()},[i,r]);const w=p.useMemo(()=>Array.isArray(m?.nodes)?m.nodes:[],[m]),I=Sm(w,r),q=I?sl(I):"",ae=String(m?.effectiveStatus??m?.status??(j?"加载中…":"未知"));return s.jsxs("aside",{className:"inspect-split-panel","aria-label":"DAG 紧凑检视",children:[s.jsxs("div",{className:"inspect-split-header",children:[s.jsxs("div",{children:[s.jsx("p",{className:"inspect-split-kicker",children:"Inspect"}),s.jsx("h2",{children:"检视 DAG"})]}),s.jsx("button",{ref:f,type:"button","aria-label":"关闭检视面板",onClick:c,children:"关闭"})]}),s.jsx("p",{className:"inspect-split-id",children:s.jsx("code",{children:i})}),y?s.jsx("p",{className:"error",children:y}):null,j&&!m?s.jsx("p",{className:"muted",children:"正在加载 DAG…"}):null,s.jsxs("dl",{className:"inspect-split-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:ae})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"当前节点"}),s.jsx("dd",{children:I?Pc(I):"暂无节点"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"节点状态"}),s.jsx("dd",{children:I?.status??"—"})]}),I?.errorPreview?s.jsxs("div",{children:[s.jsx("dt",{children:"错误摘要"}),s.jsx("dd",{children:I.errorPreview})]}):null]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["节点(",w.length,")"]}),w.length?s.jsx("ul",{className:"inspect-split-nodes",children:w.slice(0,24).map(se=>{const T=sl(se)||Pc(se),A=T===q;return s.jsxs("li",{"data-active":A?"true":void 0,className:A?"is-active":void 0,children:[s.jsx("span",{children:Pc(se)}),s.jsx("code",{children:se.status??"—"})]},T)})}):s.jsx("p",{className:"muted",children:j?"加载节点中…":"该运行暂无节点。"})]}),s.jsxs("section",{children:[s.jsxs("h3",{children:["最近事件",q?` · ${q}`:""]}),g.length?s.jsx("ul",{className:"inspect-split-events",children:g.map((se,T)=>s.jsx("li",{children:Zv(se)},`${se.at??T}-${T}`))}):s.jsx("p",{className:"muted",children:j?"加载事件中…":"节点事件将在可用时显示。"})]}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:u,children:"全屏观测"}),s.jsx("p",{className:"muted",children:"全屏后点顶栏「返回操作台」可回来。"})]})}function Fv(i){const{board:r,busy:c}=i;return s.jsxs("details",{className:"night-advanced","data-testid":"night-advanced",open:r.advancedOpen,onToggle:u=>r.setAdvancedOpen(u.target.open),children:[s.jsx("summary",{children:"高级 / Inspect"}),s.jsxs("p",{className:"muted",children:["只读深链:"," ",s.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-morning-btn",onClick:()=>{r.onMorningReport()},children:"早晨 night 报告"})}),r.morningPreview?s.jsx("pre",{className:"cmd","data-testid":"night-morning-preview",children:r.morningPreview}):null]})}function Ni(i){return!i||typeof i!="object"||Array.isArray(i)?null:i}function We(i,r){const c=i[r];return typeof c=="string"&&c.trim()?c.trim():void 0}function jm(i,r){const c=i[r];if(!Array.isArray(c))return;const u=c.filter(f=>typeof f=="string");return u.length>0?u:void 0}function Wv(i){const r=Ni(i);if(!r)return null;const c=Ni(r.result),u=[Ni(r.reviewPacket),c?Ni(c.reviewPacket):null,c,r].filter(Boolean);for(const f of u){const m=We(f,"scheduleId")??We(f,"id"),h=We(f,"gateToken")??We(f,"approveGate")??We(f,"writeSetGateToken");if(!(!m||!h))return{scheduleId:m,gateToken:h,...We(f,"featureId")?{featureId:We(f,"featureId")}:{},...We(f,"taskId")?{taskId:We(f,"taskId")}:{},...jm(f,"writeSet")?{writeSet:jm(f,"writeSet")}:{},...We(f,"worktreePath")?{worktreePath:We(f,"worktreePath")}:{},...We(f,"branch")?{branch:We(f,"branch")}:{},...We(f,"baseBranch")?{baseBranch:We(f,"baseBranch")}:{},...We(f,"baseCommit")?{baseCommit:We(f,"baseCommit")}:{},...We(f,"executeAtUtc")?{executeAtUtc:We(f,"executeAtUtc")}:{},...We(f,"taskCard")?{taskCard:We(f,"taskCard")}:{}}}return null}function Nm(i){return`docs/features/${i.trim().replace(/^\/+|\/+$/g,"")}`}function Pv(i){const r=i.trim(),c=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})/.exec(r);return c?`${c[1]} ${c[2]}`:null}function Rm(){const i=new Date;i.setHours(20,0,0,0);const r=c=>String(c).padStart(2,"0");return`${i.getFullYear()}-${r(i.getMonth()+1)}-${r(i.getDate())}T${r(i.getHours())}:${r(i.getMinutes())}`}function $m(i){if(!i)return"—";const r=Date.parse(i);if(Number.isNaN(r))return i;try{return new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"short",timeZone:"Asia/Shanghai"}).format(new Date(r))}catch{return i}}function eg(i){return i.mergeState==="pending-harvest"||/\bscheduler harvest\b/i.test(i.nextAction)}function tg(i){return i.status==="failed"||i.status==="human_required"||i.status==="cancelled"||/\bscheduler discard\b/i.test(i.nextAction)}function Ti(i){return i==="failed"||i==="human_required"}function ng(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Ym(i){return{submitted:"已提交",validating:"校验中",validated:"待预约确认",scheduled:"已预约",waiting:"等待触发",dispatching:"派发中",running:"执行中",succeeded:"成功",failed:"失败",human_required:"需人工",cancelled:"已取消",rejected:"已拒绝",cancel_requested:"取消中"}[i]??i}function ag(i){const{target:r,reason:c,onReasonChange:u,force:f,onForceChange:m,busy:h}=i;return s.jsxs("div",{className:"night-discard-card","data-testid":"night-discard-card",children:[s.jsx("h3",{children:"确认 Discard"}),s.jsxs("p",{className:"muted",children:[r.featureId,"/",r.taskId,"(",Ym(r.status),")"]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"原因"}),s.jsx("input",{"data-testid":"night-discard-reason",value:c,disabled:h,placeholder:"human discard reason",onChange:g=>u(g.target.value)})]}),Ti(r.status)?s.jsxs("label",{className:"field checkbox-field",children:[s.jsx("input",{type:"checkbox","data-testid":"night-discard-force",checked:f,disabled:h,onChange:g=>m(g.target.checked)}),s.jsx("span",{className:"muted",children:"强制 Discard(failed / human_required)"})]}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h||Ti(r.status)&&!f,"data-testid":"night-discard-confirm",onClick:i.onConfirm,children:"确认 Discard"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:h,onClick:i.onCancel,children:"返回"})]})]})}function sg(i){const{board:r}=i,{doctor:c,list:u,clockHint:f,doctorIssues:m,auxTicker:h}=r;return s.jsxs("div",{className:"night-health","data-testid":"night-health-bar",children:[s.jsxs("div",{className:"night-health-main",children:[s.jsx("span",{className:`night-health-pill${c?.ok===!1?" is-bad":""}`,children:c?.ok===!1?"Scheduler 异常":"Scheduler 健康"}),s.jsxs("span",{className:"muted",children:["计划 ",c?.scheduleCount??u?.summary.total??"—"," · 活动"," ",c?.activeCount??u?.summary.active??"—"]})]}),f?s.jsxs("p",{className:"muted night-health-hint","data-testid":"night-clock-hint",children:["时钟:",f.message,"(安装/启停请用 CLI:",s.jsx("code",{children:"agent-worker scheduler clock status --repo ."}),")"]}):s.jsxs("p",{className:"muted night-health-hint",children:["到点执行依赖本机 clock / tick,不在此面板安装。详见"," ",s.jsx("a",{className:"external-link",href:"/inspect/#/night",children:"/inspect/#/night"})]}),s.jsxs("div",{className:"night-aux-ticker","data-testid":"night-aux-ticker",children:[s.jsxs("p",{className:"night-aux-ticker-label",children:["开着 Console 时辅助 tick(每 ",h?.intervalSec??60,"s)"]}),s.jsx("p",{className:"muted night-health-hint","data-testid":"night-aux-ticker-disclaimer",children:h?.disclaimer??"仅在本 Console 进程开着时有效;过夜无人值守仍需 OS clock。"}),h?.lastOutcome?s.jsxs("p",{className:"muted","data-testid":"night-aux-ticker-last",children:["上次:",h.lastOutcome,h.running?"(进行中)":"",h.lastSummary?` · ${h.lastSummary}`:"",h.lastError?` · ${h.lastError}`:""]}):null]}),m.length>0?s.jsx("ul",{className:"night-doctor-list","data-testid":"night-doctor-findings",children:m.slice(0,4).map(g=>s.jsxs("li",{children:[s.jsx("strong",{children:g.severity})," ",g.message]},`${g.code}-${g.scheduleId??""}-${g.message}`))}):null]})}function lg(i){const{board:r,busy:c,onHarvest:u,onOpenDiscard:f}=i,{list:m}=r;return s.jsxs(s.Fragment,{children:[m?s.jsxs("div",{className:"night-kpi","data-testid":"night-kpi",children:[s.jsxs("span",{children:["合计 ",m.summary.total]}),s.jsxs("span",{children:["活动 ",m.summary.active]}),s.jsxs("span",{children:["待收成 ",m.summary.pendingHarvest]}),s.jsxs("span",{children:["需人工 ",m.summary.humanRequired]}),s.jsxs("span",{children:["失败 ",m.summary.failed]})]}):null,s.jsxs("div",{className:"night-board","data-testid":"night-board",children:[s.jsx("h3",{children:"计划列表"}),!m||m.schedules.length===0?s.jsxs("div",{className:"empty-state","data-testid":"night-board-empty",children:[s.jsx("p",{className:"empty-title",children:"暂无夜间计划"}),s.jsx("p",{className:"muted",children:"用下方向导预约第一个任务。"})]}):s.jsx("ul",{className:"night-schedule-list",children:m.schedules.map(h=>s.jsxs("li",{className:"night-schedule-row","data-testid":"night-schedule-row","data-status":h.status,children:[s.jsxs("div",{className:"night-schedule-head",children:[s.jsxs("strong",{children:[h.featureId,"/",h.taskId]}),s.jsx("span",{className:"night-status-chip",children:Ym(h.status)})]}),s.jsxs("p",{className:"muted",children:["执行 ",$m(h.executeAtUtc),h.mergeState?` · merge ${h.mergeState}`:"",h.taskCard?` · ${h.taskCard}`:""]}),h.waitingReason?s.jsxs("p",{className:"muted",children:["等待原因:",h.waitingReason]}):null,s.jsxs("p",{className:"muted night-next-action",children:["下一步:",h.nextAction]}),s.jsxs("div",{className:"cta-row",children:[eg(h)?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c,"data-testid":"night-row-harvest",onClick:()=>u(h),children:"Harvest"}):null,tg(h)?s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-row-discard",onClick:()=>f(h),children:"Discard"}):null,s.jsx("a",{className:"external-link",href:`/inspect/#/night/${encodeURIComponent(h.scheduleId)}`,children:"Inspect"})]})]},h.scheduleId))})]})]})}function ig(i){const{wizard:r,busy:c}=i;return s.jsxs("div",{className:"night-wizard","data-testid":"night-wizard",children:[s.jsx("h3",{children:"预约夜间任务"}),r.phase==="pick"?s.jsxs(s.Fragment,{children:[r.selectableTasks.length===0?s.jsxs("div",{className:"empty-state","data-testid":"night-task-empty",children:[s.jsx("p",{className:"empty-title",children:"没有可选任务"}),s.jsx("p",{className:"muted",children:"请先在 Feature Packet / Task Pool 中创建任务,再回到此处刷新。"})]}):s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Feature / Task"}),s.jsxs("select",{"data-testid":"night-task-select",value:r.selectedKey,disabled:c,onChange:u=>r.setSelectedKey(u.target.value),children:[s.jsx("option",{value:"",children:"选择任务…"}),r.selectableTasks.map(u=>{const f=`${u.featureId}::${u.taskId}`;return s.jsxs("option",{value:f,children:[u.featureId,"/",u.taskId,u.status?` · ${u.status}`:""]},f)})]})]}),r.derivedFeatureDir?s.jsxs("p",{className:"muted","data-testid":"night-feature-dir",children:["Feature 目录:",s.jsx("code",{children:r.derivedFeatureDir})]}):null,s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"本地执行时间"}),s.jsx("input",{type:"datetime-local","data-testid":"night-at",value:r.nightAt,disabled:c,onChange:u=>r.setNightAt(u.target.value)})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"任务卡片(可选)"}),s.jsx("input",{"data-testid":"night-task-card",value:r.taskCard,disabled:c,placeholder:"UCP-LOOP#11",onChange:u=>r.setTaskCard(u.target.value)})]}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c||!r.selectedKey||!r.nightAt,"data-testid":"night-prepare-btn",onClick:()=>{r.onPrepare()},children:"准备并审阅"})})]}):s.jsxs("div",{className:"night-review-card","data-testid":"night-review-card",children:[s.jsx("p",{className:"muted",children:"请确认 writeSet 与执行环境后预约。Token 已隐藏。"}),s.jsxs("dl",{className:"kv",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"Schedule"}),s.jsx("dd",{children:s.jsx("code",{children:r.review?.scheduleId})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务"}),s.jsxs("dd",{children:[r.review?.featureId,"/",r.review?.taskId]})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"执行时间 (UTC)"}),s.jsx("dd",{children:$m(r.review?.executeAtUtc)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Worktree"}),s.jsx("dd",{children:s.jsx("code",{children:r.review?.worktreePath??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"分支"}),s.jsx("dd",{children:s.jsx("code",{children:r.review?.branch??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Base"}),s.jsx("dd",{children:s.jsxs("code",{children:[r.review?.baseBranch??"—","@",(r.review?.baseCommit??"").slice(0,12)||"—"]})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"WriteSet"}),s.jsx("dd",{children:r.review?.writeSet&&r.review.writeSet.length>0?s.jsx("ul",{className:"night-writeset",children:r.review.writeSet.map(u=>s.jsx("li",{children:s.jsx("code",{children:u})},u))}):s.jsx("span",{className:"muted",children:"(未返回显式 writeSet)"})})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:c||!r.review,"data-testid":"night-confirm-add-btn",onClick:()=>{r.onConfirmAdd()},children:"确认预约"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:c,"data-testid":"night-review-back-btn",onClick:r.onCancelWizard,children:"返回修改"})]})]})]})}function rg(i){const{setOpError:r}=i,[c,u]=p.useState(null),[f,m]=p.useState(null),[h,g]=p.useState([]),[x,y]=p.useState(null),[R,j]=p.useState(!1),[M,w]=p.useState(!1),[I,q]=p.useState(null),[ae,se]=p.useState(null),T=p.useCallback(async()=>{j(!0),y(null);try{const[L,E,Y,F]=await Promise.all([fetch("/api/night-jobs",{credentials:"same-origin"}),fetch("/api/night-jobs/doctor",{credentials:"same-origin"}),fetch("/api/tasks",{credentials:"same-origin"}),fetch("/api/operator/v1/night-aux-ticker",{credentials:"same-origin"})]);if(!L.ok)throw new Error(`加载计划列表失败(HTTP ${L.status})`);const P=await L.json();if(u(P),E.ok?m(await E.json()):m(null),Y.ok){const K=await Y.json();g(Array.isArray(K)?K:[])}else g([]);if(F.ok){const K=await F.json();K.ticker&&se(K.ticker)}}catch(L){y(L instanceof Error?L.message:String(L))}finally{j(!1)}},[]);p.useEffect(()=>{T()},[T]);const A=p.useCallback(async()=>{try{const L=await fetch("/api/night-jobs/morning",{credentials:"same-origin"});if(!L.ok){r(`早晨报告加载失败(HTTP ${L.status})`);return}const E=await L.json();q(JSON.stringify(E,null,2).slice(0,4e3)),w(!0)}catch(L){r(L instanceof Error?L.message:String(L))}},[r]),O=(f?.findings??[]).filter(L=>L.severity==="error"||L.severity==="warning"),Z=(f?.findings??[]).find(L=>/clock/i.test(L.code)||/clock/i.test(L.message));return{list:c,doctor:f,tasks:h,loadError:x,loadingBoard:R,advancedOpen:M,setAdvancedOpen:w,morningPreview:I,auxTicker:ae,refreshBoard:T,onMorningReport:A,doctorIssues:O,clockHint:Z}}function cg(i){const{board:r,runAction:c,isActionSuccess:u,setOpError:f}=i,{tasks:m,refreshBoard:h}=r,[g,x]=p.useState("pick"),[y,R]=p.useState(""),[j,M]=p.useState(Rm),[w,I]=p.useState(""),[q,ae]=p.useState(null),[se,T]=p.useState(""),[A,O]=p.useState(null),[Z,L]=p.useState(!1),E=p.useMemo(()=>{const z=m.filter(_=>typeof _.featureId=="string"&&_.featureId.trim()&&_.taskId);return z.sort((_,ie)=>{const ee=_.featureId??"",b=ie.featureId??"";return ee!==b?ee.localeCompare(b):_.taskId.localeCompare(ie.taskId)}),z},[m]),Y=p.useMemo(()=>y?E.find(z=>`${z.featureId}::${z.taskId}`===y)??null:null,[E,y]),F=Y?.featureId?Nm(Y.featureId):"",P=p.useCallback(async(z,_,ie)=>{const ee=await c("prepareMutationGate",{action:z,actionParams:_});if(!u(ee))return;const b=ee?.result??ee,k=b.receiptId?b:b.result??b;if(!k.receiptId||!k.humanGateToken){f("prepareMutationGate 未返回可消费的 Human Gate receipt");return}return c(z,{..._,confirmationId:k.receiptId,humanGateToken:k.humanGateToken},{clientRequestId:ng(ie)})},[u,c,f]),K=p.useCallback(async()=>{if(!Y?.featureId){f("请先点选 Feature / Task");return}const z=Pv(j);if(!z){f("执行时间格式无效,请使用日期时间选择器");return}const _={featureDir:Nm(Y.featureId),taskId:Y.taskId,at:z,tz:"Asia/Shanghai",...w.trim()?{taskCard:w.trim()}:{}},ie=await P("workerAdmissionPrepare",_,"night-prepare");if(!u(ie))return;const ee=Wv(ie?.result??ie);if(!ee){f("准备成功但未解析到 scheduleId / gateToken。请刷新后重试,或查看 Inspect。");return}ae(ee),x("review")},[u,j,P,Y,f,w]),W=p.useCallback(async()=>{if(!q)return;const z=await P("workerSchedulerAdd",{scheduleId:q.scheduleId,approveGate:q.gateToken},"night-add");u(z)&&(ae(null),x("pick"),R(""),I(""),M(Rm()),await h())},[u,h,q,P]),oe=p.useCallback(()=>{x("pick"),ae(null)},[]),X=p.useCallback(async z=>{const _=await P("workerSchedulerHarvest",{scheduleId:z.scheduleId},"night-harvest");u(_)&&await h()},[u,h,P]),ce=p.useCallback(async()=>{if(!A)return;const z=se.trim()||"discard from console night workbench",_=Ti(A.status),ie=await P("workerSchedulerDiscard",{scheduleId:A.scheduleId,reason:z,..._||Z?{force:!0}:{}},"night-discard");u(ie)&&(O(null),T(""),L(!1),await h())},[se,A,Z,u,h,P]),S=p.useCallback(z=>{O(z),L(Ti(z.status)),T("")},[]);return{phase:g,selectedKey:y,setSelectedKey:R,nightAt:j,setNightAt:M,taskCard:w,setTaskCard:I,review:q,discardReason:se,setDiscardReason:T,discardTarget:A,setDiscardTarget:O,forceDiscard:Z,setForceDiscard:L,selectableTasks:E,derivedFeatureDir:F,onPrepare:K,onConfirmAdd:W,onCancelWizard:oe,onHarvest:X,onDiscard:ce,openDiscard:S}}function og({busy:i,runAction:r,isActionSuccess:c,setOpError:u}){const f=rg({setOpError:u}),m=cg({board:f,runAction:r,isActionSuccess:c,setOpError:u});return s.jsxs("section",{className:"panel night-workbench","aria-labelledby":"night-title","data-testid":"night-jobs-panel",children:[s.jsx("h2",{id:"night-title",children:"夜间任务"}),s.jsx("p",{className:"panel-lead",children:"白天点选任务并预约;列表查看状态;早晨在行内收成或丢弃。写操作仍经 Human Gate,列表复用 Inspect 投影。"}),s.jsx(sg,{board:f,busy:i}),s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:i||f.loadingBoard,"data-testid":"night-refresh-btn",onClick:()=>{f.refreshBoard()},children:"刷新看板"})}),f.loadError?s.jsx("p",{className:"error","data-testid":"night-load-error",children:f.loadError}):null,s.jsx(lg,{board:f,busy:i,onHarvest:h=>{m.onHarvest(h)},onOpenDiscard:m.openDiscard}),m.discardTarget?s.jsx(ag,{target:m.discardTarget,reason:m.discardReason,onReasonChange:m.setDiscardReason,force:m.forceDiscard,onForceChange:m.setForceDiscard,busy:i,onConfirm:()=>{m.onDiscard()},onCancel:()=>m.setDiscardTarget(null)}):null,s.jsx(ig,{wizard:m,busy:i}),s.jsx(Fv,{board:f,busy:i})]})}const ug=["command","path","file_path","filePath","pattern","query","glob","url"],dg=120,fg=800;function Cm(i){if(!(!i||typeof i!="object"||Array.isArray(i)))return i}function mg(i){if(i!=null){if(typeof i=="string"){const r=i.trim();if(!r)return;try{return Cm(JSON.parse(r))}catch{return}}return Cm(i)}}function hg(i,r){const c=dg,u=mg(i);if(!u){if(typeof i=="string"){const g=i.replace(/\s+/g," ").trim();return!g||g==="{}"?"":g.length>c?`${g.slice(0,c)}…`:g}return""}for(const g of ug){const x=u[g];if(typeof x=="string"&&x.trim()){const y=x.replace(/\s+/g," ").trim();return y.length>c?`${y.slice(0,c)}…`:y}}const f=Object.keys(u);if(f.length===0)return"";const m=u[f[0]],h=String(m??"").replace(/\s+/g," ").trim();return h?h.length>c?`${h.slice(0,c)}…`:h:""}function pg(i){if(i==null)return"";try{return typeof i=="string"?i:JSON.stringify(i,null,2)}catch{return String(i)}}function vg(i,r){if(i===void 0)return{text:"",truncated:!1};const c=r?.maxLen??fg;return i.length<=c?{text:i,truncated:!1}:{text:`${i.slice(0,c)}…`,truncated:!0}}function gg(i,r){if(r===void 0||!Number.isFinite(i)||!Number.isFinite(r))return;const c=Math.round((r-i)/1e3);return c>0?c:void 0}function _t(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function ll(i){return`${i}-${Math.random().toString(36).slice(2,10)}`}function eo(i,r){return new Promise((c,u)=>{if(r?.aborted){u(new DOMException("Aborted","AbortError"));return}const f=setTimeout(()=>{r?.removeEventListener("abort",m),c()},i),m=()=>{clearTimeout(f),u(new DOMException("Aborted","AbortError"))};r?.addEventListener("abort",m)})}function Km(i){return new Date(i).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function to(i){const r=new Date(i),c=new Date;return r.getFullYear()===c.getFullYear()&&r.getMonth()===c.getMonth()&&r.getDate()===c.getDate()?"今天":r.toLocaleDateString([],{month:"long",day:"numeric"})}function Tm(i){switch(i){case"mutation":return"变更";case"long-running":return"长任务";case"explore":return"探查";default:return"只读"}}function yg(i,r){return i?i.taskId===r.taskId&&i.updatedAt===r.updatedAt&&i.lastEventId===r.lastEventId&&i.operations.length===r.operations.length:!1}const Xm={status:"idle",snapshot:null,error:null,reloading:!1,reloadError:null,mutationBusy:!1,mutationToken:null};function Qm(i){if(!i||typeof i!="object")return{message:"runtime snapshot request failed"};const r=i,c=r.error;if(c&&typeof c=="object"){const u=c;return{...typeof u.code=="string"&&u.code?{code:u.code}:{},...typeof r.status=="number"?{status:r.status}:{},message:typeof u.message=="string"&&u.message?u.message:"runtime snapshot request failed"}}return{...typeof r.status=="number"?{status:r.status}:{},message:typeof r=="object"&&"message"in r&&typeof r.message=="string"&&r.message?r.message:"runtime snapshot request failed"}}function bg(i,r){switch(r.type){case"load-start":return{...i,sessionId:r.sessionId,status:"loading",error:null};case"load-success":return i.snapshot&&i.sessionId===r.sessionId&&r.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:r.sessionId,status:"ready",snapshot:r.snapshot,error:null,reloadError:null,reloading:!1};case"load-failure":return{...i,sessionId:r.sessionId,status:"error",error:r.error,snapshot:null};case"reload-start":return i.reloading?i:{...i,reloading:!0,reloadError:null,...i.status==="error"?{error:null}:{}};case"reload-success":return{...i,status:"ready",snapshot:r.snapshot,reloading:!1,reloadError:null,error:null,sessionId:r.snapshot.sessionId||i.sessionId};case"reload-failure":return{...i,reloading:!1,reloadError:r.error};case"mutation-start":return{...i,mutationBusy:!0,mutationToken:r.token};case"mutation-adopt":return i.mutationToken!==r.token||i.sessionId!==void 0&&i.sessionId!==r.sessionId||i.snapshot&&r.snapshot.revision<i.snapshot.revision?i:{...i,sessionId:r.sessionId,status:"ready",snapshot:r.snapshot,error:null,reloadError:null,reloading:!1};case"mutation-settle":return i.mutationToken!==r.token?i:{...i,mutationBusy:!1,mutationToken:null};case"mutation-reset":return{...i,mutationBusy:!1,mutationToken:null};case"reset":return{...Xm};default:return i}}function Vm(i){const r=i.selection;return{...r.model?{model:{provider:r.model.provider,modelId:r.model.id}}:{},...r.thinkingSelection==="auto"?r.effectiveThinkingLevel?{thinkingLevel:r.effectiveThinkingLevel}:{}:{thinkingLevel:r.thinkingSelection}}}function xg(i,r,c,u){const f=c&&c.sessionId===u?Vm(c):{},m=f.model??i?.model,h=f.thinkingLevel??i?.thinkingLevel;return{readOnly:r.readOnly,systemPrompt:r.systemPrompt,resources:r.resources,suffix:r.suffix,...m?{model:m}:{},...h?{thinkingLevel:h}:{}}}function Sg(i=Xm){let r=i;const c=new Set;return{getState:()=>r,dispatch:u=>{r=bg(r,u);for(const f of c)f();return r},subscribe:u=>(c.add(u),()=>c.delete(u))}}const Ze=Sg();let Jn;function Zm(i){return`/api/operator/v1/chat/sessions/${encodeURIComponent(i)}`}function jg(i){const r=Jn;if(Jn=i,!(r&&r.sessionId===i.sessionId&&r.origin===i.origin)){if((!r||r.sessionId!==i.sessionId)&&Ze.dispatch({type:"mutation-reset"}),!i.sessionId){Ze.dispatch({type:"reset"});return}Ze.dispatch({type:"load-start",sessionId:i.sessionId}),Jm(i.sessionId,i.origin)}}async function Jm(i,r){try{const c=await fetch(`${r}${Zm(i)}/runtime-snapshot`,{credentials:"include"}),u=await c.json().catch(()=>({}));if(Jn?.sessionId!==i)return;if(!c.ok){Ze.dispatch({type:"load-failure",sessionId:i,error:{...Qm(u),status:c.status}});return}if(!u.snapshot){Ze.dispatch({type:"load-failure",sessionId:i,error:{status:c.status,message:"runtime snapshot missing in response"}});return}Ze.dispatch({type:"load-success",sessionId:i,snapshot:u.snapshot})}catch(c){if(Jn?.sessionId!==i)return;Ze.dispatch({type:"load-failure",sessionId:i,error:{message:c instanceof Error?c.message:String(c)}})}}async function is(){const i=Jn;if(!i?.sessionId||Ze.getState().reloading)return!1;const r=i.sessionId;Ze.dispatch({type:"reload-start"});try{const c=await fetch(`${i.origin}${Zm(r)}/reload`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":_t()},body:"{}"}),u=await c.json().catch(()=>({}));return Jn?.sessionId!==r?!1:c.ok?u.snapshot?(Ze.dispatch({type:"reload-success",snapshot:u.snapshot}),!0):(Ze.dispatch({type:"reload-failure",error:{status:c.status,message:"reload succeeded but snapshot missing"}}),!1):(Ze.dispatch({type:"reload-failure",error:{...Qm(u),status:c.status}}),!1)}catch(c){return Jn?.sessionId!==r||Ze.dispatch({type:"reload-failure",error:{message:c instanceof Error?c.message:String(c)}}),!1}}async function rs(){const i=Jn;if(!i?.sessionId)return!1;const r=i.sessionId;return Ze.dispatch({type:"load-start",sessionId:r}),Jm(r,i.origin),!0}function Ng(i,r,c){return c?(Ze.dispatch({type:"mutation-adopt",token:i,sessionId:r,snapshot:c}),Ze.getState().snapshot===c):!1}function Rg(i,r,c){return c.sessionRef.current?.sessionId!==r||Ze.getState().mutationToken!==i?!1:(Ze.dispatch({type:"mutation-settle",token:i}),!0)}function cs(){return p.useSyncExternalStore(Ze.subscribe,Ze.getState)}function Cg(i){Ze.dispatch(i)}function Tg(){return Ze.getState()}const Em=()=>window.__CONSOLE_CONFIRMATION_TOKEN__??"";function Eg({origin:i}){const[r,c]=p.useState(null),[u,f]=p.useState(null),[m,h]=p.useState(null),[g,x]=p.useState(!1),y=cs(),R=y.snapshot,j=y.reloading,M=y.reloadError,w=R?.diagnostics??[],I=async T=>{c(T),h(null);{f(null);try{const A=await fetch(`${i}/api/operator/v1/pi/models-config`,{credentials:"include"}),O=await A.json();if(!A.ok)throw new Error(O.error?.message??"读取失败");f(O.data)}catch(A){h(A instanceof Error?A.message:String(A))}}},q=async T=>{x(!0),h(null);try{const A=await fetch(`${i}/api/operator/v1/pi/models-config`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Em()},body:JSON.stringify(T)}),O=await A.json();if(!A.ok)throw new Error(O.error?.message??"模型配置保存失败");f(O.data)}catch(A){h(A instanceof Error?A.message:String(A))}finally{x(!1)}},ae=async(T,A)=>{x(!0),h(null);try{const O=await fetch(`${i}/api/operator/v1/pi/models-config/test`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":Em()},body:JSON.stringify({provider:T,modelId:A})}),Z=await O.json();if(!O.ok)throw new Error(Z.error?.message??"模型测试失败");return Z.data?.available===!0}catch(O){return h(O instanceof Error?O.message:String(O)),!1}finally{x(!1)}},se=r==="models"?"Models":r==="skills"?"Skills":"Packages";return s.jsxs("div",{className:"oc-governance",children:[s.jsxs("div",{className:"oc-governance-links",children:[s.jsx("button",{type:"button",onClick:()=>{I("models")},children:"Models"}),s.jsx("button",{type:"button",className:r==="skills"?"is-active":"",onClick:()=>c("skills"),children:"Skills"}),s.jsx("button",{type:"button",className:r==="packages"?"is-active":"",onClick:()=>c("packages"),children:"Packages"})]}),r&&s.jsx("div",{className:"oc-resource-backdrop",onMouseDown:T=>{T.target===T.currentTarget&&c(null)},children:s.jsxs("section",{className:"oc-resource-panel",role:"dialog","aria-modal":"true","aria-label":se,children:[s.jsxs("header",{className:"oc-resource-panel-head",children:[s.jsxs("div",{className:"oc-resource-panel-head-copy",children:[s.jsx("strong",{children:se}),s.jsx("span",{className:"oc-resource-panel-meta",children:r==="models"?"models.json 管理(读写,经 mutation gate)":r==="skills"?"只读 · 当前 Pi session 实际加载的 Skills":"只读 · 当前 Pi session 实际解析的 Packages"})]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>c(null),children:"关闭"})]}),s.jsxs("div",{className:"oc-resource-panel-body",children:[w.length>0&&s.jsxs("div",{className:"oc-resource-diagnostics",children:[w.map((T,A)=>s.jsx("div",{className:`oc-resource-diagnostic${T.type==="error"?" is-error":""}`,role:T.type==="error"?"alert":void 0,children:s.jsxs("span",{children:[T.type,T.code?` ${T.code}`:"",":",T.message,T.path?`(${T.path})`:"",T.retryable?" · 可重试":""]})},A)),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{rs()},children:"重试"})]}),m&&s.jsx("p",{className:"oc-resource-error",children:m}),r==="models"&&s.jsx(wg,{busy:g,data:u,onMutate:q,onTest:ae}),r==="skills"&&s.jsx(kg,{status:y.status,loadError:y.error,skills:R?.skills,hasSession:!!R?.sessionId,hasDiagnostics:w.length>0}),r==="packages"&&s.jsx(Og,{status:y.status,loadError:y.error,packages:R?.packages,hasSession:!!R?.sessionId,hasDiagnostics:w.length>0})]}),s.jsxs("footer",{className:"oc-resource-panel-foot",children:[s.jsx("span",{className:"oc-resource-panel-meta",children:j?"正在重新加载会话…":M?`${M.code??"ERROR"}:${M.message}`:R?`revision ${R.revision} · ${R.loadedAt}`:"等待会话快照…"}),s.jsxs("div",{className:"oc-resource-panel-actions",children:[M&&s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{is()},children:"重试"}),y.status==="error"&&s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{rs()},children:"重新读取快照"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:j,onClick:()=>{is()},children:"重新加载会话"})]})]})]})})]})}function wg({busy:i,data:r,onMutate:c,onTest:u}){const[f,m]=p.useState(""),[h,g]=p.useState(""),[x,y]=p.useState(""),[R,j]=p.useState(null),M=async w=>{w.preventDefault(),!(!r||!f.trim()||!h.trim())&&(await c({expectedRevision:r.revision,action:"upsert-model",provider:f.trim(),model:{id:h.trim(),...x.trim()?{name:x.trim()}:{}}}),g(""),y(""))};return r?s.jsxs("div",{className:"oc-models-config",children:[s.jsx("p",{className:"oc-resource-panel-meta",children:"Console 不读取或写入 API key;credential 请通过 Pi CLI 配置。"}),r.providers.length===0?s.jsx("p",{className:"oc-resource-empty",children:"models.json 中暂无 Provider(真实空态;用 Pi CLI 配置)。"}):null,r.providers.map(w=>s.jsxs("article",{className:"oc-model-provider",children:[s.jsxs("div",{className:"oc-model-provider-head",children:[s.jsx("strong",{children:w.name}),s.jsx("span",{children:w.credential.configured?"credential configured":"credential 未配置"})]}),w.models.map(I=>s.jsxs("div",{className:"oc-model-row",children:[s.jsx("span",{children:I.name?`${I.name} (${I.id})`:I.id}),s.jsxs("div",{className:"oc-model-row-actions",children:[s.jsx("button",{type:"button",disabled:i,onClick:()=>{u(w.name,I.id).then(q=>j(`${w.name}/${I.id}: ${q?"可用":"不可用"}`))},children:"测试"}),s.jsx("button",{type:"button",disabled:i,onClick:()=>{window.confirm(`确认删除模型 ${w.name}/${I.id}?`)&&c({expectedRevision:r.revision,action:"remove-model",provider:w.name,model:{id:I.id}})},children:"删除"})]})]},I.id)),s.jsx("button",{type:"button",className:"oc-model-provider-remove",disabled:i,onClick:()=>{window.confirm(`确认删除 Provider ${w.name}?`)&&c({expectedRevision:r.revision,action:"remove-provider",provider:w.name})},children:"删除 Provider"})]},w.name)),R&&s.jsx("p",{className:"oc-model-test-result",children:R}),s.jsxs("form",{className:"oc-model-form",onSubmit:w=>{M(w)},children:[s.jsx("strong",{children:"新增或更新模型"}),s.jsx("input",{required:!0,placeholder:"Provider",value:f,onChange:w=>m(w.target.value)}),s.jsx("input",{required:!0,placeholder:"Model ID",value:h,onChange:w=>g(w.target.value)}),s.jsx("input",{placeholder:"显示名称(可选)",value:x,onChange:w=>y(w.target.value)}),s.jsx("button",{type:"submit",disabled:i,children:i?"保存中…":"保存模型"})]})]}):s.jsx("p",{className:"oc-resource-empty",children:"正在读取模型配置…"})}function Fm(i){return i.status==="loading"?s.jsx("p",{className:"oc-resource-empty",children:"会话快照加载中…"}):i.status==="error"?s.jsxs("div",{className:"oc-resource-error",role:"alert",children:[s.jsxs("span",{children:[i.loadError?.code?`${i.loadError.code}:`:"",i.loadError?.message??"会话快照读取失败"]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{rs()},children:"重试"})]}):i.hasSession?s.jsx("p",{className:"oc-resource-empty",children:i.emptyText}):s.jsx("p",{className:"oc-resource-empty",children:"当前没有活动会话;打开会话后显示真实资源清单(真实空态)。"})}function kg(i){const r=i.skills??[];if(i.status!=="ready"||!i.hasSession)return s.jsx(Fm,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未加载任何 Skills(真实空态)"});if(r.length===0&&!i.hasDiagnostics)return s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未加载任何 Skills(真实空态,未伪造列表)。"});const c=new Map;for(const u of r){const f=u.scope||"unknown",m=c.get(f)??[];m.push(u),c.set(f,m)}return s.jsx("div",{className:"oc-resource-lists",children:[...c.entries()].map(([u,f])=>s.jsxs("section",{className:"oc-resource-group",children:[s.jsxs("header",{className:"oc-resource-group-head",children:[s.jsx("strong",{children:u}),s.jsxs("span",{children:[f.length," 项"]})]}),s.jsx("ul",{className:"oc-resource-list",children:f.map(m=>s.jsxs("li",{className:"oc-resource-item",children:[s.jsxs("div",{className:"oc-resource-item-head",children:[s.jsx("strong",{children:m.name}),s.jsx("span",{children:m.enabled?"enabled":"disabled"})]}),m.description?s.jsx("p",{children:m.description}):null,s.jsx("code",{children:m.path}),m.source?s.jsxs("span",{className:"oc-resource-panel-meta",children:["source: ",m.source]}):null,Array.isArray(m.diagnostics)&&m.diagnostics.length>0?s.jsx("span",{className:"oc-resource-diagnostic",children:m.diagnostics.join(";")}):null]},`${u}:${m.path}`))})]},u))})}const Ag={extension:"Extensions",skill:"Skills",prompt:"Prompts",theme:"Themes"};function Dg(i){return Array.isArray(i.diagnostics)&&i.diagnostics.length>0?"error":i.enabled?i.version?"installed":"loaded":"disabled"}function Og(i){const r=i.packages??[];return i.status!=="ready"||!i.hasSession?s.jsx(Fm,{status:i.status,loadError:i.loadError,hasSession:i.hasSession,emptyText:"当前 session 未配置 Packages(真实空态)"}):r.length===0&&!i.hasDiagnostics?s.jsx("p",{className:"oc-resource-empty",children:"当前 session 未配置 Packages(真实空态,未伪造列表)。"}):s.jsx("div",{className:"oc-resource-lists",children:r.map(c=>{const u=Dg(c),f=new Map;for(const m of c.resolved??[]){const h=Ag[m.type]??m.type,g=f.get(h)??[];g.push(m),f.set(h,g)}return s.jsxs("article",{className:"oc-resource-item oc-package",children:[s.jsxs("div",{className:"oc-resource-item-head",children:[s.jsx("strong",{children:c.spec}),s.jsx("span",{className:`oc-package-status is-${u}`,children:u})]}),s.jsxs("p",{className:"oc-resource-panel-meta",children:[c.scope," · ",c.enabled?"loaded":"disabled"]}),c.packageName?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"package"}),s.jsx("code",{children:c.packageName})]}):null,c.version?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"installed"}),s.jsxs("code",{children:["v",c.version]})]}):null,c.configuredVersion?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"configured"}),s.jsx("code",{children:c.configuredVersion})]}):null,c.installedPath?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"installed path"}),s.jsx("code",{children:c.installedPath})]}):null,c.cwd?s.jsxs("p",{className:"oc-package-meta",children:[s.jsx("span",{children:"cwd"}),s.jsx("code",{children:c.cwd})]}):null,f.size>0?s.jsx("div",{className:"oc-package-resources",children:[...f.entries()].map(([m,h])=>s.jsxs("section",{className:"oc-package-group",children:[s.jsxs("header",{className:"oc-resource-group-head",children:[s.jsx("strong",{children:m}),s.jsxs("span",{children:[h.length," 项"]})]}),s.jsx("ul",{className:"oc-resource-sub-list",children:h.map((g,x)=>s.jsxs("li",{children:[s.jsx("span",{children:g.name||g.path}),s.jsxs("span",{className:"oc-resource-panel-meta",children:[g.scope,g.source?` · ${g.source}`:""]}),s.jsx("code",{children:g.path})]},`${m}:${x}`))})]},m))}):s.jsx("p",{className:"oc-resource-panel-meta",children:"未解析出扩展/技能/提示词/主题(真实空态)"}),Array.isArray(c.diagnostics)&&c.diagnostics.length>0?s.jsx("div",{className:"oc-package-diagnostics",children:c.diagnostics.map((m,h)=>s.jsx("span",{children:m},h))}):null]},`${c.scope}:${c.spec}`)})})}const Ei=10,Wm="loop-console.operator-chat.sidebar-split.v1",ga=45,Oi=28,Mi=70,wm=5,km=10;function ls(i){return Number.isFinite(i)?Math.min(Mi,Math.max(Oi,Math.round(i))):ga}function Mg(i){if(i==null||i==="")return null;const r=Number(i);if(!Number.isFinite(r))return null;const c=Math.round(r);return c<Oi||c>Mi?null:c}function _g(i=Pm()){if(!i)return ga;try{return Mg(i.getItem(Wm))??ga}catch{return ga}}function Am(i,r=Pm()){const c=ls(i);if(!r)return c;try{r.setItem(Wm,String(c))}catch{}return c}function Ig(i,r,c=!1){const u=ls(i);switch(r){case"ArrowUp":return ls(u-(c?km:wm));case"ArrowDown":return ls(u+(c?km:wm));case"Home":return Oi;case"End":return Mi;case"Enter":return ga;default:return null}}function Dm(i,r,c){if(!Number.isFinite(c)||c<=0)return ga;const u=(i-r)/c;return ls(u*100)}function Pm(){try{return typeof globalThis>"u"?null:globalThis.localStorage??null}catch{return null}}const Om='a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])';function eh(i){const{open:r,containerRef:c,triggerRef:u,onEscape:f}=i,m=p.useRef(null),h=p.useRef(!1);p.useEffect(()=>{if(r){if(!h.current){const g=document.activeElement;m.current=u?.current??(g instanceof HTMLElement?g:null);const x=c.current;x&&(x.querySelector(Om)??x).focus?.(),h.current=!0}return()=>{if(!h.current)return;const g=u?.current??m.current;g&&document.contains(g)&&g.focus(),m.current=null,h.current=!1}}h.current=!1},[r,c,u]),p.useEffect(()=>{if(!r)return;const g=c.current;if(!g)return;const x=y=>{if(y.key==="Escape"){y.preventDefault(),f?.();return}if(y.key!=="Tab")return;const R=Array.from(g.querySelectorAll(Om)).filter(I=>!I.hasAttribute("disabled")&&I.tabIndex!==-1);if(R.length===0){y.preventDefault(),g.focus?.();return}const j=R[0],M=R[R.length-1],w=document.activeElement;y.shiftKey?(w===j||!g.contains(w))&&(y.preventDefault(),M.focus()):(w===M||!g.contains(w))&&(y.preventDefault(),j.focus())};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[r,c,f])}function zg(i){return[...i].sort((r,c)=>r.kind!==c.kind?r.kind==="directory"?-1:1:r.name.localeCompare(c.name,void 0,{sensitivity:"base"}))}function Lg({open:i}){return s.jsx("svg",{className:`oc-tree-chevron${i?" is-open":""}`,width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:"M4.2 2.4 7.8 6 4.2 9.6",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ug({open:i}){return i?s.jsxs("svg",{className:"oc-tree-glyph is-folder-open",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:[s.jsx("path",{d:"M1.5 4.2h3.1l1.1 1.2H12a.8.8 0 0 1 .8.8v5a.8.8 0 0 1-.8.8H2a.8.8 0 0 1-.8-.8V5a.8.8 0 0 1 .8-.8Z",fill:"currentColor",opacity:"0.88"}),s.jsx("path",{d:"M1.8 5.8h10.4l-.7 5.2H2.5L1.8 5.8Z",fill:"currentColor",opacity:"0.55"})]}):s.jsx("svg",{className:"oc-tree-glyph is-folder",width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M1.5 3.8h3.2l1 1.1H12a.8.8 0 0 1 .8.8v5.5a.8.8 0 0 1-.8.8H2a.8.8 0 0 1-.8-.8V4.6a.8.8 0 0 1 .8-.8Z",fill:"currentColor",opacity:"0.78"})})}function Hg(){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 Bg(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M3 3.5h10v2H3v-2Zm0 3.5h10v2H3V7Zm0 3.5h7V13H3v-2Z",fill:"currentColor"})})}function qg(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M8 3v10M3 8h10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})}function Gg(){return s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:s.jsx("path",{d:"M8 2.2 13 4.5v3.2c0 3.1-2.1 5.5-5 6.3-2.9-.8-5-3.2-5-6.3V4.5L8 2.2Z",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinejoin:"round"})})}function $g(i){const r=i.sessions.slice(0,Ei),[c,u]=p.useState(()=>_g()),[f,m]=p.useState(!1),h=p.useRef(null),g=p.useRef(null),x=i.layoutMode==="comfortable"&&i.open,y=i.layoutMode==="compact",R=i.drawerOpen&&(i.layoutMode==="compact"||i.layoutMode==="narrow");eh({open:R,containerRef:g,triggerRef:i.drawerTriggerRef,onEscape:i.onCloseDrawer});const j=p.useCallback((T,A)=>{const O=ls(T);u(O),A&&Am(O)},[]),M=p.useCallback(T=>{const A=Ig(c,T.key,T.shiftKey);A!=null&&(T.preventDefault(),j(A,!0))},[j,c]),w=p.useCallback(T=>{T.preventDefault(),T.currentTarget.setPointerCapture(T.pointerId),m(!0);const O=h.current;if(!O)return;const Z=O.getBoundingClientRect();j(Dm(T.clientY,Z.top,Z.height),!1)},[j]),I=p.useCallback(T=>{if(!T.currentTarget.hasPointerCapture(T.pointerId))return;const A=h.current;if(!A)return;const O=A.getBoundingClientRect();j(Dm(T.clientY,O.top,O.height),!1)},[j]),q=p.useCallback(T=>{T.currentTarget.hasPointerCapture(T.pointerId)&&T.currentTarget.releasePointerCapture(T.pointerId),m(!1),Am(c)},[c]),ae=p.useCallback(()=>{j(ga,!0)},[j]),se=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"oc-sidebar-split",ref:h,style:{"--oc-session-share":`${c}%`,"--oc-repo-share":`${100-c}%`},"data-dragging":f?"true":"false",children:[s.jsxs("section",{className:"oc-sidebar-section oc-sessions",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"会话"}),s.jsxs("div",{className:"oc-sidebar-header-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onCreate,disabled:i.creatingSession,"aria-busy":i.creatingSession||void 0,children:i.creatingSession?"创建中…":"新建"}),i.layoutMode==="comfortable"?s.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:i.onToggleOpen,"aria-expanded":!0,"aria-label":"收起侧栏",title:"收起侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M8.8 2.6 5.2 7l3.6 4.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}):s.jsx("button",{type:"button",className:"oc-sidebar-toggle",onClick:i.onCloseDrawer,"aria-label":"关闭侧栏抽屉",title:"关闭",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M3.5 3.5 10.5 10.5M10.5 3.5 3.5 10.5",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round"})})})]})]}),s.jsxs("div",{className:"oc-session-scroll",children:[["active","archived"].map(T=>{const A=r.filter(O=>O.state===T);return A.length?s.jsxs("div",{className:"oc-session-group",children:[s.jsx("small",{children:T==="active"?"进行中":"已归档"}),A.map(O=>s.jsxs("div",{className:`oc-session-item${i.activeSessionId===O.sessionId?" is-active":""}`,children:[s.jsxs("button",{type:"button",className:"oc-session-main",onClick:()=>i.onActivate(O.sessionId),children:[s.jsxs("strong",{children:[O.title||O.displayTitle||"未命名对话",O.activeTurnId?" · 运行中":""]}),s.jsx("span",{children:new Date(O.updatedAt).toLocaleString()})]}),s.jsxs("div",{className:"oc-session-actions",children:[s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>{const Z=window.prompt("会话名称",O.title??"");Z!==null&&i.onRename(O.sessionId,Z)},children:"重命名"}),s.jsx("button",{type:"button",className:"oc-session-menu",onClick:()=>i.onSetState(O.sessionId,T==="active"?"archived":"active"),children:T==="active"?"归档":"恢复"}),s.jsx("button",{type:"button",className:"oc-session-menu oc-session-delete",onClick:()=>i.onDelete(O.sessionId),children:"删除"})]})]},O.sessionId))]},T):null}),r.length===0?s.jsx("p",{className:"oc-tree-empty",children:"暂无会话,点击上方新建。"}):null]})]}),s.jsx("div",{className:"oc-sidebar-separator",role:"separator","aria-orientation":"horizontal","aria-valuemin":Oi,"aria-valuemax":Mi,"aria-valuenow":c,"aria-label":"调整会话与仓库高度比例",tabIndex:0,onKeyDown:M,onPointerDown:w,onPointerMove:I,onPointerUp:q,onPointerCancel:q,onDoubleClick:ae}),s.jsxs("section",{className:"oc-sidebar-section oc-explorer",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"仓库"}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onRefreshTree,children:"刷新"})]}),s.jsx("p",{className:"oc-explorer-hint",children:"单击插入 @路径 · 双击预览"}),i.treeError&&s.jsx("p",{className:"oc-sidebar-error",children:i.treeError}),s.jsx("div",{className:"oc-tree-scroll",children:s.jsx(th,{entries:i.tree[""]??[],tree:i.tree,expanded:i.expanded,depth:0,onToggle:i.onToggleDir,onInsert:i.onInsert,onPreview:i.onPreview})})]})]}),s.jsx(Eg,{origin:i.origin})]});return s.jsxs(s.Fragment,{children:[y?s.jsxs("nav",{className:"oc-sidebar-rail","aria-label":"紧凑侧栏",children:[s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"打开会话与仓库",title:"会话与仓库","aria-expanded":R,onClick:()=>R?i.onCloseDrawer():i.onOpenDrawer(),children:s.jsx(Bg,{})}),s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":i.creatingSession?"创建会话中":"新建会话",title:i.creatingSession?"创建中…":"新建会话",onClick:i.onCreate,disabled:i.creatingSession,"aria-busy":i.creatingSession||void 0,children:s.jsx(qg,{})}),s.jsx("button",{type:"button",className:"oc-sidebar-rail-btn","aria-label":"治理入口",title:"治理",onClick:()=>R?i.onCloseDrawer():i.onOpenDrawer(),children:s.jsx(Gg,{})})]}):null,i.layoutMode==="comfortable"?s.jsx("aside",{className:`oc-sidebar${x?"":" is-collapsed"}`,"aria-label":"会话与仓库",children:x?se:s.jsx("button",{type:"button",className:"oc-sidebar-toggle is-collapsed",onClick:i.onToggleOpen,"aria-expanded":!1,"aria-label":"展开侧栏",title:"展开侧栏",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14","aria-hidden":"true",children:s.jsx("path",{d:"M5.2 2.6 8.8 7 5.2 11.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})})}):null,R?s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"oc-overlay-backdrop","aria-label":"关闭侧栏遮罩",onClick:i.onCloseDrawer}),s.jsx("aside",{ref:g,className:"oc-sidebar oc-sidebar-drawer","aria-label":"会话与仓库抽屉",role:"dialog","aria-modal":"true",tabIndex:-1,children:se})]}):null]})}function th(i){const r=p.useMemo(()=>zg(i.entries),[i.entries]);return r.length?s.jsx("ul",{className:"oc-tree",role:i.depth===0?"tree":"group",children:r.map(c=>{const u=c.name.startsWith(".");if(c.kind==="directory"){const f=i.expanded.has(c.path);return s.jsxs("li",{className:`oc-tree-node is-dir${f?" is-open":""}${u?" is-dot":""}`,role:"treeitem","aria-expanded":f,children:[s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-dir",onClick:()=>i.onToggle(c.path),style:{paddingLeft:`${8+i.depth*12}px`},children:[s.jsx(Lg,{open:f}),s.jsx(Ug,{open:f}),s.jsx("span",{className:"oc-tree-label",children:c.name})]}),f?s.jsx("div",{className:"oc-tree-children",style:{"--oc-tree-guide":`${14+i.depth*12}px`},children:s.jsx(th,{entries:i.tree[c.path]??[],tree:i.tree,expanded:i.expanded,depth:i.depth+1,onToggle:i.onToggle,onInsert:i.onInsert,onPreview:i.onPreview})}):null]},c.path)}return s.jsx("li",{className:`oc-tree-node is-file${u?" is-dot":""}`,role:"treeitem",children:s.jsx(Yg,{entry:c,depth:i.depth,onInsert:i.onInsert,onPreview:i.onPreview})},c.path)})}):s.jsx("p",{className:"oc-tree-empty",children:"此目录为空或没有可安全浏览的文件。"})}function Yg(i){const r=p.useRef(null);return p.useEffect(()=>()=>{r.current!==null&&window.clearTimeout(r.current)},[]),s.jsxs("button",{type:"button",className:"oc-tree-row oc-tree-file",style:{paddingLeft:`${8+i.depth*12}px`},title:"单击插入引用;双击预览",onClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{i.onInsert(i.entry.path),r.current=null},220)},onDoubleClick:()=>{r.current!==null&&window.clearTimeout(r.current),r.current=null,i.onPreview(i.entry.path)},children:[s.jsx("span",{className:"oc-tree-chevron-spacer","aria-hidden":"true"}),s.jsx(Hg,{}),s.jsx("span",{className:"oc-tree-label",children:i.entry.name})]})}function Kg(i){const r=i.previews.find(c=>c.path===i.activePath);return!r&&!i.loading?null:s.jsxs(s.Fragment,{children:[r&&s.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${r.path}`,children:[s.jsxs("header",{children:[s.jsx("div",{className:"oc-file-tabs",role:"tablist","aria-label":"文件预览 Tabs",children:i.previews.map(c=>s.jsx("button",{type:"button",role:"tab","aria-selected":c.path===r.path,className:c.path===r.path?"is-active":"",onClick:()=>i.onActivate(c.path),children:c.path},c.path))}),s.jsxs("span",{children:[r.bytes," bytes",r.truncated?" · 已截断":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>i.onClose(r.path),children:"关闭预览"})]}),s.jsx("pre",{children:s.jsx("code",{children:r.content})})]}),i.loading&&s.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const oo=[{command:"/task",label:"Task context",description:"查看当前任务、Draft 与 assessment",action:"focus-panel:task"},{command:"/contract",label:"Contract",description:"查看 contract diff 与 apply gate",action:"focus-panel:contract"},{command:"/dag",label:"DAG",description:"查看 DAG spine、确认与运行状态",action:"focus-panel:dag"},{command:"/interview",label:"Interview",description:"打开 Requirement Interview",action:"focus:interview"},{command:"/reload",label:"Reload session",description:"重新加载当前 Pi 会话的设置、扩展、技能、提示词、主题与上下文文件(不产生消息)",action:"reload"},{command:"/help",label:"Shortcuts",description:"显示可用 shortcut",action:"show-help"}];function Xg(i){const r=i.trim().split(/\s+/,1)[0]?.toLowerCase();if(!r?.startsWith("/"))return;const c=oo.find(u=>u.command===r);return c?{command:c.command,action:c.action}:{command:r,action:"unknown"}}const Mm={comfortableMin:620,compactMin:480};function Qg(i){return!Number.isFinite(i)||i<0?"extra-compact":i>=Mm.comfortableMin?"comfortable":i>=Mm.compactMin?"compact":"extra-compact"}function Vg(i){return`is-landing-${i}`}const Zg=[{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 nh(i){const r=i.readiness==="setup-required",c=!!i.disabled||r,u=i.density??"comfortable",f=i.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",m=i.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return s.jsxs("div",{className:`oc-empty ${Vg(u)}`,role:"status","data-landing-density":u,children:[s.jsxs("div",{className:"oc-empty-hero",children:[s.jsx("div",{className:"oc-empty-icon","aria-hidden":"true",children:"π"}),s.jsxs("div",{className:"oc-empty-copy",children:[s.jsx("h3",{children:f}),s.jsx("p",{children:m})]})]}),s.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:Zg.map(h=>s.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>i.onSuggest(h.prompt),disabled:c,children:[s.jsx("strong",{children:h.label}),s.jsx("span",{children:u==="extra-compact"?h.hint.replace(/[,,].*$/,""):h.hint})]},h.label))}),s.jsxs("ul",{className:"oc-empty-tips",children:[s.jsxs("li",{children:[s.jsx("kbd",{children:"@"}),s.jsx("span",{children:"引用仓库文件"})]}),s.jsxs("li",{children:[s.jsx("kbd",{children:"/"}),s.jsx("span",{children:"快捷命令"})]}),s.jsxs("li",{children:[s.jsx("kbd",{children:"Enter"}),s.jsx("span",{children:"发送 · Shift+Enter 换行"})]})]}),i.mode==="no-session"&&i.onCreateSession?s.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:i.onCreateSession,disabled:c,"aria-busy":i.disabled||void 0,children:r?"需先完成 Pi setup":i.disabled?"创建中…":"新建空白对话"}):null]})}function Jg(i){const{artifact:r}=i;return s.jsxs("section",{className:"oc-artifact-card","aria-label":`${r.kind} artifact`,children:[s.jsxs("header",{children:[s.jsx("strong",{children:r.title??r.artifactId}),s.jsx("span",{children:r.kind})]}),r.summary&&s.jsx("p",{children:r.summary}),r.reportText&&s.jsx("pre",{children:r.reportText}),r.htmlPreview&&s.jsx("iframe",{title:`${r.title??r.artifactId} preview`,sandbox:"",srcDoc:r.htmlPreview}),r.inspectHref&&s.jsx("a",{href:r.inspectHref,children:"查看详情"})]})}function Fg({card:i,origin:r,sessionId:c}){const[u,f]=p.useState(!1),[m,h]=p.useState(),g=async()=>{f(!0),h(void 0);try{const j=i.gateType==="dag-run"?i.state==="prepared"?"dag-confirm":"dag-run":i.gateType==="mutation"?"mutation-apply":"contract-apply",M=i.gateType==="dag-run"?{confirmationId:i.confirmationId,...i.state==="prepared"?{humanGateToken:i.humanGateToken}:{}}:{receiptId:i.receiptId,humanGateToken:i.humanGateToken},w=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/human-gate/${j}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},body:JSON.stringify(M)}),I=await w.json();if(!w.ok)throw new Error(I.error?.message??`HTTP ${w.status}`)}catch(j){h(j instanceof Error?j.message:String(j))}finally{f(!1)}},x=i.state==="prepared"||i.gateType==="dag-run"&&i.state==="confirmed",y=i.gateType==="contract-apply"?"Contract apply":i.gateType==="mutation"?"Mutation":"DAG run",R=i.gateType==="contract-apply"?"Apply":i.gateType==="mutation"?"Execute":i.state==="prepared"?"Confirm":"Run";return s.jsxs("section",{className:`oc-human-gate-card is-${i.state}`,"aria-label":`Human gate ${i.cardId}`,children:[s.jsxs("header",{children:[s.jsxs("div",{children:[s.jsx("small",{children:"HumanGateCard · 仅人类可确认"}),s.jsx("strong",{children:y})]}),s.jsx("span",{children:i.state})]}),i.contractDiffSummary&&s.jsx("p",{children:i.contractDiffSummary}),i.displayOnlyChallenges&&s.jsxs("div",{className:"oc-human-gate-challenges",children:[s.jsx("b",{children:"Challenge(仅展示,不是确认信号)"}),s.jsx("ul",{children:i.displayOnlyChallenges.map(j=>s.jsx("li",{children:j},j))})]}),i.dagSpine&&i.dagSpine.length>0&&s.jsxs("div",{children:[s.jsx("b",{children:"DAG spine"}),s.jsx("ol",{children:i.dagSpine.map(j=>s.jsx("li",{children:s.jsx("code",{children:j})},j))})]}),s.jsxs("footer",{children:[s.jsx("a",{href:i.inspectHref,children:"Inspect"}),s.jsx("button",{className:"btn btn-primary",type:"button",disabled:!x||u,onClick:()=>{g()},children:u?"提交中…":R})]}),m&&s.jsx("div",{className:"oc-human-gate-error",children:m})]})}const Pt="loop-console.operator-chat.active-session.v1",Wg="loop-console.operator-chat.default-landing.v1";function wi(i){const r=i?.trim().toLowerCase();if(r==="chat")return"chat";if(r==="tasks")return"tasks"}function ah(i){const r=i?.trim().toLowerCase();if(r==="chat"||r==="tasks"||r==="recovery"||r==="night"||r==="models"||r==="settings")return r}function sh(i){const r=c=>i.get(c)?.trim()||void 0;return{...r("taskId")?{taskId:r("taskId")}:{},...r("dagRunId")?{dagRunId:r("dagRunId")}:{},...r("fromNodeId")?{fromNodeId:r("fromNodeId")}:{},...r("featureId")?{featureId:r("featureId")}:{}}}function lh(i){const r=String(i??"").replace(/^#/,"");if(!r)return null;const c=r.indexOf("?"),u=c>=0?r.slice(0,c):r,f=c>=0?r.slice(c+1):"",m=(u||"/").split("?")[0]||"/";if(m==="/"||m==="")return null;const h=m.replace(/^\//,"").split("/")[0],g=ah(h);return g?{workspace:g,...sh(new URLSearchParams(f))}:null}function Pg(i){const r=new URLSearchParams(i.search),c=i.hash.startsWith("#")?i.hash.slice(1):i.hash,u=new URLSearchParams(c),f=ah(r.get("workspace")??r.get("landing")??u.get("workspace"));return f?{workspace:f,...sh(r)}:null}function ey(i){if(!i)return;const r=lh(i.hash);if(r)return r.workspace;const c=new URLSearchParams(i.search),u=wi(c.get("landing")??c.get("workspace"));if(u)return u;const f=i.hash.startsWith("#")?i.hash.slice(1):i.hash;return wi(new URLSearchParams(f).get("workspace"))}function ih(i){return ey(i.location)??wi(i.storage?.getItem(Wg))??wi(i.env)??"tasks"}function rh(i,r={}){const c=new URLSearchParams;for(const[m,h]of Object.entries(r))h?.trim()&&c.set(m,h.trim());const u=c.toString(),f=`/${i}`;return u?`${f}?${u}`:f}function ty(i,r={}){return`#${rh(i,r)}`}function ny(i){return lh(i.hash)??Pg(i)}function ay(i){const{operation:r}=i,c=r.inspectHref.startsWith("/")?`${i.origin}${r.inspectHref}`:r.inspectHref,u=r.state==="failed"||r.state==="timed-out"||r.state==="needs-reconcile",f=(h,g)=>{i.onNavigateWorkspace?i.onNavigateWorkspace(h,g):window.location.assign(ty(h,g))},m=[r.taskId?["task",r.taskId]:void 0,r.dagRunId?["dag",r.dagRunId]:void 0,r.featureId?["feature",r.featureId]:void 0,r.workerRunId?["worker",r.workerRunId]:void 0].filter(h=>!!h);return s.jsxs("section",{className:`oc-operation-card is-${r.state}`,"aria-label":`Operation ${r.operationId}`,children:[s.jsxs("header",{className:"oc-operation-head",children:[s.jsxs("div",{children:[s.jsx("div",{className:"oc-operation-kicker",children:"Operation"}),s.jsx("strong",{children:r.action})]}),s.jsx("span",{className:`oc-operation-state is-${r.state}`,children:r.state})]}),s.jsx("div",{className:"oc-operation-id",children:s.jsx("code",{children:r.operationId})}),m.length>0&&s.jsx("div",{className:"oc-operation-identities",children:m.map(([h,g])=>s.jsxs("span",{children:[s.jsx("b",{children:h})," ",g]},`${h}:${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:c,target:"_blank",rel:"noreferrer",children:"Inspect"}),r.taskId&&s.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("tasks",{taskId:r.taskId}),children:"打开 Task Ops"}),r.dagRunId&&s.jsx("a",{className:"btn btn-ghost",href:`${i.origin}/inspect/#/dag/${encodeURIComponent(r.dagRunId)}`,target:"_blank",rel:"noreferrer",children:"打开 Run / Inspect"}),u&&(r.dagRunId||r.taskId)&&s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("recovery",{taskId:r.taskId,dagRunId:r.dagRunId}),children:"打开 Recovery"}),s.jsx("time",{dateTime:r.updatedAt,children:new Date(r.updatedAt).toLocaleString()})]})]})}function sy(i){const{interview:r,interviewAnswer:c,onAnswerChange:u,onAnswer:f}=i;return s.jsxs("section",{className:"oc-draft-card","aria-label":"Requirement Interview",children:[s.jsxs("header",{children:[s.jsx("strong",{children:"Requirement Interview"}),s.jsx("span",{children:r.state})]}),r.question&&s.jsxs("div",{className:"oc-interview-bubble",children:[s.jsx("strong",{children:r.question.text}),s.jsxs("p",{children:["建议:",r.question.recommendation]}),s.jsx("textarea",{value:c,onChange:m=>u(m.target.value),placeholder:"输入答案"}),s.jsxs("div",{children:[s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>f("override"),disabled:!c.trim(),children:"提交答案"}),s.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>f("accept-recommendation"),children:"接受建议"})]})]}),r.draft&&s.jsxs("details",{open:!0,children:[s.jsxs("summary",{children:["TaskContractDraftV1 · ",r.draftSha256?.slice(0,12)]}),s.jsx("pre",{children:JSON.stringify(r.draft,null,2)})]}),r.assessment&&s.jsxs("div",{className:`oc-assessment${r.assessment.fresh?" is-fresh":""}`,children:[s.jsxs("strong",{children:["完整性:",r.assessment.outcome]}),(r.assessment.missingFields??[]).length>0&&s.jsxs("p",{children:["缺失:",r.assessment.missingFields?.join("、")]})]}),r.taskKindRecommendation&&s.jsxs("div",{className:"oc-task-kind-card",children:[s.jsx("span",{children:"taskKind 建议"}),s.jsx("strong",{children:r.taskKindRecommendation}),s.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>i.onConfirmTaskKind(),children:"由我确认"}),s.jsx("small",{children:"模型不能代替人类确认。"})]}),r.confirmedTaskKind&&s.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",s.jsx("strong",{children:r.confirmedTaskKind})]})]})}function ly(i){const r=[],c=i.split(`
11
+ `);let u=0,f=[];const m=()=>{const h=f.join(`
12
+ `).trimEnd();h&&r.push({type:"text",text:h}),f=[]};for(;u<c.length;){const h=c[u],g=h.match(/^\s*(`{3,}|~{3,})\s*([^\s`~]*)\s*$/);if(g){m();const x=g[1][0],y=(g[2]??"").trim(),R=[];for(u+=1;u<c.length;){const j=c[u];if(j.trim()===x.repeat(g[1].length)){u+=1;break}if(new RegExp(`^\\s*${x}{3,}`).test(j)){u+=1;break}R.push(j),u+=1}r.push({type:"code",lang:y,text:R.join(`
13
+ `)});continue}f.push(h),u+=1}return m(),r}const iy=/(`[^`]+`)|(\*\*[^*]+\*\*)|(\*[^*]+\*|_[^_]+_)|(~~[^~]+~~)|(\[[^\]]+\]\([^)\s]+\))/;function nl(i,r){const c=[];let u=i,f=0;for(;u.length>0;){const m=iy.exec(u);if(!m||m.index===void 0){c.push(u);break}m.index>0&&c.push(u.slice(0,m.index));const h=m[0],g=`${r}-i${f++}`;if(h.startsWith("`"))c.push(s.jsx("code",{children:h.slice(1,-1)},g));else if(h.startsWith("**"))c.push(s.jsx("strong",{children:h.slice(2,-2)},g));else if(h.startsWith("*")||h.startsWith("_"))c.push(s.jsx("em",{children:h.slice(1,-1)},g));else if(h.startsWith("~~"))c.push(s.jsx("s",{children:h.slice(2,-2)},g));else if(h.startsWith("[")){const x=h.match(/^\[([^\]]+)\]\(([^)\s]+)\)$/);x?c.push(s.jsx("a",{href:x[2],target:"_blank",rel:"noreferrer noopener",children:x[1]},g)):c.push(h)}u=u.slice(m.index+h.length)}return c}function ry({lang:i,text:r}){const[c,u]=p.useState(!1),f=()=>{navigator.clipboard?.writeText(r).then(()=>{u(!0),window.setTimeout(()=>u(!1),1600)},()=>{})};return s.jsxs("div",{className:"oc-codeblock",children:[s.jsxs("div",{className:"oc-codeblock-head",children:[s.jsx("span",{className:"oc-codeblock-lang",children:i||"text"}),s.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:f,children:c?"已复制":"复制"})]}),s.jsx("pre",{children:s.jsx("code",{children:r})})]})}function cy(i,r){const c=[],u=i.split(`
14
+ `);let f=0,m=0;for(;m<u.length;){const g=u[m].trim();if(g===""){m+=1;continue}const x=g.match(/^(#{1,4})\s+(.*)$/);if(x){const j=`h${x[1].length}`;c.push(s.jsx(j,{children:nl(x[2],`${r}-h${f}`)},`${r}-h${f++}`)),m+=1;continue}if(/^(---|\*\*\*|___)\s*$/.test(g)){c.push(s.jsx("hr",{},`${r}-hr${f++}`)),m+=1;continue}if(g.startsWith(">")){const R=[];for(;m<u.length&&u[m].trim().startsWith(">");)R.push(u[m].trim().replace(/^>\s?/,"")),m+=1;c.push(s.jsx("blockquote",{children:R.map((j,M)=>s.jsx("p",{children:nl(j,`${r}-bq${f}-${M}`)},M))},`${r}-bq${f++}`));continue}if(/^[-*+]\s+/.test(g)){const R=[];for(;m<u.length&&/^\s*[-*+]\s+/.test(u[m]);)R.push(u[m].trim().replace(/^[-*+]\s+/,"")),m+=1;c.push(s.jsx("ul",{children:R.map((j,M)=>s.jsx("li",{children:nl(j,`${r}-ul${f}-${M}`)},M))},`${r}-ul${f++}`));continue}if(/^\d+\.\s+/.test(g)){const R=[];for(;m<u.length&&/^\s*\d+\.\s+/.test(u[m]);)R.push(u[m].trim().replace(/^\d+\.\s+/,"")),m+=1;c.push(s.jsx("ol",{children:R.map((j,M)=>s.jsx("li",{children:nl(j,`${r}-ol${f}-${M}`)},M))},`${r}-ol${f++}`));continue}const y=[];for(;m<u.length&&u[m].trim()!==""&&!/^(#{1,4})\s+/.test(u[m].trim())&&!/^(---|\*\*\*|___)\s*$/.test(u[m].trim())&&!u[m].trim().startsWith(">")&&!/^[-*+]\s+/.test(u[m].trim())&&!/^\d+\.\s+/.test(u[m].trim());)y.push(u[m].trim()),m+=1;c.push(s.jsx("p",{children:nl(y.join(" "),`${r}-p${f}`)},`${r}-p${f++}`))}return c}function oy({text:i}){const r=ly(i);return s.jsx("div",{className:"oc-md",children:r.map((c,u)=>c.type==="code"?s.jsx(ry,{lang:c.lang,text:c.text},`cb-${u}`):s.jsx("div",{children:cy(c.text,`tx-${u}`)},`tx-${u}`))})}function uy(){return s.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[s.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),s.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function dy(){return s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:s.jsx("polyline",{points:"20 6 9 17 4 12"})})}function fy(){return s.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[s.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),s.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})}function my(){return s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:s.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}function ch(){return s.jsx("svg",{className:"oc-tool-chevron",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:s.jsx("polyline",{points:"4 2.5 7.5 6 4 9.5"})})}function hy(){return s.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:s.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})})}function oh(i){const[r,c]=p.useState(!1),u=()=>{navigator.clipboard?.writeText(i.text).then(()=>{c(!0),window.setTimeout(()=>c(!1),1600)},()=>{})};return s.jsx("button",{type:"button",className:`oc-message-copy${r?" is-copied":""}`,"aria-label":r?"已复制":"复制消息",title:r?"已复制":"复制",onClick:u,children:r?s.jsx(dy,{}):s.jsx(uy,{})})}function _m(i){const{message:r,streaming:c,activeAssistantId:u}=i,f=r.role==="user",m=f?"你":"π",h=f?"你":"助手",g=!f&&c&&u!==null&&r.id===u,x=g&&r.text.length===0,y=r.text.trim().length>0;return s.jsxs("div",{className:`oc-row ${f?"is-user":"is-assistant"}`,children:[s.jsxs("div",{className:"oc-meta",children:[s.jsx("span",{className:`oc-avatar ${f?"oc-avatar-user":"oc-avatar-assistant"}`,"aria-hidden":"true",children:m}),s.jsx("span",{className:"oc-role",children:h}),s.jsx("span",{className:"oc-time",children:Km(r.createdAt)}),y&&s.jsx(oh,{text:r.text})]}),s.jsxs("div",{className:`oc-bubble ${f?"oc-bubble-user":"oc-bubble-assistant"}`,children:[y?f?s.jsx("div",{style:{whiteSpace:"pre-wrap"},children:r.text}):s.jsx(oy,{text:r.text}):x?s.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,g&&y&&s.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function py(i){const r=[],c=[];let u,f=[];const m=h=>{for(const g of f)g.assistantMessageId||(g.assistantMessageId=h),g.turnId||(g.turnId=u);f=[]};for(const h of i){const g=Date.parse(h.at)||Date.now();if(h.role==="user"){u=`restored-${h.id}`,f=[],r.push({id:h.id,role:"user",text:h.text,createdAt:g});continue}if(h.role==="assistant"){u||(u=`restored-${h.id}`),r.push({id:h.id,role:"assistant",text:h.text,createdAt:g}),m(h.id);continue}if(h.role==="tool"){u||(u=`restored-tool-${h.id}`);const x={id:h.toolCallId||h.id,toolName:h.toolName||"tool",status:h.isError===!0?"error":"ok",resultText:h.text,result:h.text,createdAt:g,finishedAt:g,turnId:u};c.push(x),f.push(x)}}return{messages:r,toolCalls:c}}function vy(i){const r=i.messages.filter(g=>g.role==="user"||g.role==="assistant"),c=[];let u=null;const f=g=>{const x={key:g,assistants:[],tools:[],live:!1};return c.push(x),x};for(const g of r){if(g.role==="user"){u=f(`user-${g.id}`),u.user=g;continue}u||(u=f(`assistant-${g.id}`)),u.assistants.push(g)}c.length===0&&i.toolCalls.length>0&&c.push({key:"orphan-tools",assistants:[],tools:[],live:!1});const m=new Set,h=new Map;for(const g of c)for(const x of g.assistants)h.set(x.id,g);for(const g of i.toolCalls)if(g.assistantMessageId){const x=h.get(g.assistantMessageId);if(x){x.tools.push(g),m.add(g.id);continue}}for(const g of i.toolCalls)if(!m.has(g.id)&&g.turnId){const x=c.find(R=>R.tools.some(j=>j.turnId===g.turnId)||R.key===`turn-${g.turnId}`||R.user&&`restored-${R.user.id}`===g.turnId);if(x){x.tools.push(g),m.add(g.id);continue}const y=c.find(R=>g.turnId===`restored-${R.user?.id}`||R.assistants.some(j=>g.turnId===`restored-${j.id}`));if(y){y.tools.push(g),m.add(g.id);continue}}for(const g of i.toolCalls){if(m.has(g.id))continue;const x=c.find((y,R)=>{const j=y.user?.createdAt??y.assistants[0]?.createdAt??0,w=c[R+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return g.createdAt>=j&&g.createdAt<w});x?(x.tools.push(g),m.add(g.id)):c.length>0&&(c[c.length-1].tools.push(g),m.add(g.id))}for(const g of c)g.tools.sort((x,y)=>x.createdAt-y.createdAt),g.live=i.streaming&&i.activeAssistantId!==null&&g.assistants.some(x=>x.id===i.activeAssistantId);return c}function gy(i){const r=i.length,c=i.filter(m=>m.status==="error").length,u=i.filter(m=>m.status==="running").length,f=[`执行过程 · ${r} 工具`];return c>0?f.push(`${c} 出错`):u>0&&f.push("运行中"),{count:r,errorCount:c,runningCount:u,label:f.join(" · ")}}function uh(i){const{entry:r}=i,[c,u]=p.useState(r.status==="error"),[f,m]=p.useState(!1),h=r.status==="running"?"运行中":r.status==="error"?"出错":"完成",g=`is-${r.status}`,x=hg(r.args),y=gg(r.createdAt,r.finishedAt),R=vg(r.resultText,f?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return s.jsxs("div",{className:`oc-tool ${r.status==="error"?"is-error":""} ${r.status==="running"?"is-running":""}`,children:[s.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":c,onClick:()=>u(j=>!j),children:[s.jsx(ch,{}),s.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:s.jsx(hy,{})}),s.jsx("span",{className:"oc-tool-name",children:r.toolName}),x&&s.jsx("span",{className:"oc-tool-args",children:x}),y!==void 0&&s.jsxs("span",{className:"oc-tool-duration",children:[y,"s"]}),s.jsx("span",{className:`oc-tool-status ${g}`,children:h})]}),c&&s.jsxs("div",{className:"oc-tool-body",children:[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:pg(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:R.text}),R.truncated&&!f&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>m(!0),children:"展开全部"})]}),r.status==="running"&&r.resultText===void 0&&r.args===void 0&&s.jsx("div",{className:"oc-tool-section",children:s.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function yy(i){const{tools:r,defaultOpen:c}=i,[u,f]=p.useState(c),m=gy(r);return p.useEffect(()=>{c&&f(!0)},[c]),s.jsxs("div",{className:"oc-process-inline",children:[s.jsxs("button",{type:"button",className:`oc-process-inline-summary${u?" is-open":""}${m.errorCount>0?" is-error":m.runningCount>0?" is-running":""}`,"aria-expanded":u,onClick:()=>f(h=>!h),children:[s.jsx(ch,{}),s.jsx("span",{children:m.label})]}),u&&s.jsx("div",{className:"oc-process-inline-body",children:r.map(h=>s.jsx(uh,{entry:h},h.id))})]})}function by(i){const{scrollContainerRef:r,messagesEndRef:c,onScroll:u,hasThread:f,readiness:m,streaming:h,streamingAssistantId:g,messagesCount:x,visibleCount:y,onLoadMore:R,turnGroups:j,interview:M,humanGateCards:w,operationCards:I,artifactCards:q,origin:ae,sessionId:se}=i;return s.jsxs("div",{ref:r,className:`oc-messages${f?" has-thread":" is-empty"}`,onScroll:u,children:[f?null:s.jsx(nh,{mode:"empty-session",readiness:m,disabled:h,onSuggest:i.onSuggest}),f&&x>y&&s.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:R,children:"加载更早消息"}),f&&j.map((T,A)=>{const O=T.user??T.assistants[0],Z=A>0?j[A-1].user??j[A-1].assistants[0]:void 0,L=!!O&&(!Z||to(Z.createdAt)!==to(O.createdAt)),E=T.assistants[T.assistants.length-1];return s.jsxs("div",{className:"oc-turn-group",children:[L&&O&&s.jsx("div",{className:"oc-day-sep",children:to(O.createdAt)}),T.user&&s.jsx(_m,{message:T.user,streaming:h,activeAssistantId:g}),T.tools.length>0&&s.jsx(yy,{tools:T.tools,defaultOpen:T.live}),E&&s.jsx(_m,{message:E,streaming:h,activeAssistantId:g})]},T.key)}),M&&s.jsx(sy,{interview:M,interviewAnswer:i.interviewAnswer,onAnswerChange:i.onInterviewAnswerChange,onAnswer:i.onAnswerInterview,onConfirmTaskKind:i.onConfirmTaskKind}),w.map(T=>s.jsx(Fg,{card:T,origin:ae,sessionId:se},T.cardId)),I.map(T=>s.jsx(ay,{operation:T,origin:ae,onNavigateWorkspace:i.onNavigateWorkspace},T.operationId)),q.map(T=>s.jsx(Jg,{artifact:T},T.artifactId)),s.jsx("div",{ref:c})]})}function al(i){return i>=1e6?`${(i/1e6).toFixed(1)}M`:i>=1e3?`${(i/1e3).toFixed(1)}k`:i.toLocaleString()}function Im(i){const r=[],c=i.inputTokens??0,u=i.outputTokens??0,f=i.cacheReadTokens??0,m=i.cacheWriteTokens??0,h=i.cost??0;if(c>0&&r.push(`${al(c)} in`),u>0&&r.push(`${al(u)} out`),f>0&&r.push(`${al(f)} cache R`),m>0&&r.push(`${al(m)} cache W`),h>0&&r.push(h>=.01?`$${h.toFixed(2)}`:"<$0.01"),r.length===0){const g=i.totalTokens??0;return g>0?`${al(g)} tokens`:"—"}return r.join(" · ")}const xy={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function Sy(i,r){const c=r.trim().toLowerCase(),u=new Map;for(const f of i){if(c&&!f.provider.toLowerCase().includes(c)&&!f.id.toLowerCase().includes(c)&&!(f.name??"").toLowerCase().includes(c))continue;const m=u.get(f.provider)??[];m.push(f),u.set(f.provider,m)}return[...u.entries()].map(([f,m])=>({provider:f,models:m}))}function jy(i,r){const c=new Set,u=[],f=m=>{c.has(m)||(c.add(m),u.push({value:m,label:xy[m]??m,...m==="auto"&&r?{effective:r}:{}}))};f("auto");for(const m of i)f(m);return u}function ki(i,r){return`${i}/${r}`}function so(i){return{...i.modelProvider&&i.modelId?{model:{provider:i.modelProvider,modelId:i.modelId}}:{},...i.thinkingLevel?{thinkingLevel:i.thinkingLevel}:{}}}function dh(i,r){return{...i,model:r.model??i.model,thinkingLevel:r.thinkingLevel??i.thinkingLevel}}function Ny(i,r){const c=dh(i,r);return c.model?.provider===i.model?.provider&&c.model?.modelId===i.model?.modelId&&c.thinkingLevel===i.thinkingLevel}function Ry(){return s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function zm(i){const r=cs(),[c,u]=p.useState(!1),[f,m]=p.useState(""),[h,g]=p.useState(0),x=p.useRef(null),y=p.useRef(null),R=r.snapshot,j=r.status==="loading",M=r.status==="error"?r.error:null,w=R?(R.models??[]).map(T=>({provider:T.provider,id:T.id,...T.name?{name:T.name}:{},...T.hasCredentials!==void 0?{hasCredentials:T.hasCredentials}:{}})):i.models,I=p.useMemo(()=>Sy(w,f),[w,f]),q=p.useMemo(()=>I.flatMap(T=>T.models),[I]);p.useEffect(()=>{c&&(m(""),g(0),window.setTimeout(()=>y.current?.focus(),0))},[c]),p.useEffect(()=>{if(!c)return;const T=O=>{const Z=x.current;Z&&O.target instanceof Node&&!Z.contains(O.target)&&u(!1)},A=O=>{O.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",T),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",A)}},[c]);const ae=T=>{if(i.disabled)return;const A=q[T];A&&(u(!1),i.onSelect(A.provider,A.id))},se=T=>{if(T.key==="ArrowDown"){T.preventDefault(),g(A=>q.length?(A+1)%q.length:0);return}if(T.key==="ArrowUp"){T.preventDefault(),g(A=>q.length?(A-1+q.length)%q.length:0);return}if(T.key==="Enter"){T.preventDefault(),ae(h);return}if(T.key==="Escape"){T.preventDefault(),u(!1);return}};return s.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:x,children:[s.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":c,title:"选择模型",disabled:i.disabled,onClick:()=>u(T=>!T),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(Ry,{})]}),c&&s.jsxs("div",{className:"oc-select-panel oc-model-panel",role:"listbox","aria-label":"选择模型",children:[s.jsx("input",{ref:y,className:"oc-select-search",placeholder:"搜索模型或 Provider…",value:f,onChange:T=>{m(T.target.value),g(0)},onKeyDown:se}),j&&s.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),M&&s.jsxs("div",{className:"oc-select-status is-error",children:[s.jsxs("span",{children:[M.code?`${M.code}:`:"",M.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{rs()},children:"重试"})]}),!j&&!M&&I.length===0&&s.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),I.map(T=>s.jsxs("div",{className:"oc-model-group",children:[s.jsx("div",{className:"oc-model-group-head",children:T.provider}),T.models.map(A=>{const O=ki(A.provider,A.id),Z=O===i.activeModelRef,L=q[h]===A;return s.jsxs("button",{type:"button",role:"option","aria-selected":Z,disabled:i.disabled,className:`oc-select-option oc-model-option${L?" is-highlighted":""}${Z?" is-active":""}`,onMouseDown:E=>E.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(A.provider,A.id))},children:[s.jsxs("span",{className:"oc-model-option-name",children:[A.name?`${A.name} · `:"",A.id]}),Z&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},O)})]},T.provider))]})]})}function Cy(){return s.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:s.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ty(i){const r=cs(),[c,u]=p.useState(!1),[f,m]=p.useState(0),h=p.useRef(null),g=i.effectiveLevel??r.snapshot?.selection?.effectiveThinkingLevel,x=r.snapshot?.thinkingLevels?.length?r.snapshot.thinkingLevels.map(M=>M.value):void 0,y=p.useMemo(()=>jy(x??i.levels,g),[x,i.levels,g]);p.useEffect(()=>{c&&m(0)},[c]),p.useEffect(()=>{if(!c)return;const M=I=>{const q=h.current;q&&I.target instanceof Node&&!q.contains(I.target)&&u(!1)},w=I=>{I.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",M),document.addEventListener("keydown",w),()=>{document.removeEventListener("mousedown",M),document.removeEventListener("keydown",w)}},[c]);const R=M=>{if(i.disabled)return;const w=y[M];w&&(u(!1),i.onSelect(w.value))},j=M=>{if(M.key==="ArrowDown"){M.preventDefault(),m(w=>y.length?(w+1)%y.length:0);return}if(M.key==="ArrowUp"){M.preventDefault(),m(w=>y.length?(w-1+y.length)%y.length:0);return}if(M.key==="Enter"){M.preventDefault(),R(f);return}if(M.key==="Escape"){M.preventDefault(),u(!1);return}};return s.jsxs("div",{className:"oc-select-menu oc-thinking-menu",ref:h,children:[s.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":c,title:"思考等级",disabled:i.disabled,onClick:()=>u(M=>!M),children:[s.jsx("span",{className:"oc-select-trigger-label",children:i.triggerLabel}),s.jsx(Cy,{})]}),c&&s.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:j,children:y.map((M,w)=>{const I=M.value===i.activeValue,q=w===f;return s.jsxs("button",{type:"button",role:"option","aria-selected":I,disabled:i.disabled,className:`oc-select-option oc-thinking-option${q?" is-highlighted":""}${I?" is-active":""}`,onMouseDown:ae=>ae.preventDefault(),onClick:()=>{i.disabled||(u(!1),i.onSelect(M.value))},children:[s.jsx("span",{className:"oc-thinking-option-label",children:M.label}),M.value==="auto"&&M.effective?s.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",M.effective]}):null,I&&s.jsx("span",{className:"oc-model-option-check",children:"✓"})]},M.value)})})]})}function Ri(i){const r=Array.isArray(i.items)?i.items:void 0;return s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:i.title}),s.jsx("span",{className:"oc-runtime-context-meta",children:r?`${r.length} 项`:"未投影"})]}),r===void 0?s.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):r.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:i.emptyText}):s.jsx("ul",{className:"oc-runtime-context-resources",children:r.map((c,u)=>s.jsxs("li",{children:[s.jsx("strong",{children:c.name||c.path||"未命名资源"}),c.description?s.jsx("span",{children:c.description}):null,c.path?s.jsxs("code",{children:[c.path,c.baseDir?`(base: ${c.baseDir})`:""]}):null,s.jsxs("span",{className:"oc-runtime-context-meta",children:[c.scope?`scope ${c.scope}`:"",c.source?` · ${c.source}`:"",c.version?` · v${c.version}`:"",c.cwd?` · cwd ${c.cwd}`:""]}),i.renderPath?i.renderPath(c):null,c.error?s.jsx("span",{className:"oc-runtime-context-diag is-error",children:c.error}):null,Array.isArray(c.diagnostics)&&c.diagnostics.length>0?s.jsx("span",{className:"oc-runtime-context-diag",children:c.diagnostics.join(";")}):null,Array.isArray(c.resolved)&&c.resolved.length>0?s.jsx("code",{className:"oc-runtime-context-resolved",children:c.resolved.map(f=>`${f.type??"?"}:${f.name??f.path??"?"}`).join(" · ")}):null]},`${c.name??c.path??u}:${u}`))})]})}const Ey=p.forwardRef(function({open:r,onToggle:c,onClose:u,context:f},m){const h=cs(),g=h.reloading,x=h.reloadError,y=Array.isArray(f.resources.activeTools)?f.resources.activeTools:[],R=typeof f.resources.activeToolCount=="number"?f.resources.activeToolCount:y.length,j=f.systemPrompt.text??f.systemPrompt.summary??"",M=f.systemPrompt.charCount??j.length,w=f.resources;return s.jsxs("div",{className:"oc-runtime-context-menu",ref:m,children:[s.jsx("button",{type:"button",className:`btn btn-ghost oc-runtime-context-toggle${r?" is-active":""}`,"aria-expanded":r,"aria-controls":"oc-runtime-context-panel",onClick:c,children:"注入上下文"}),r&&s.jsxs("div",{id:"oc-runtime-context-panel",className:"oc-runtime-context-panel",role:"dialog","aria-label":"注入上下文",children:[s.jsxs("header",{className:"oc-runtime-context-head",children:[s.jsxs("div",{className:"oc-runtime-context-head-copy",children:[s.jsx("strong",{children:"注入上下文"}),s.jsx("span",{className:"oc-runtime-context-meta",children:"只读 · 本轮实际注入的 system prompt / 资源(已脱敏)"})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭",onClick:u,children:"关闭"})]}),s.jsxs("div",{className:"oc-runtime-context-body",children:[s.jsxs("div",{className:"oc-runtime-context-chips","aria-label":"摘要",children:[f.model&&s.jsxs("span",{className:"oc-runtime-context-chip",children:["模型"," ",s.jsx("code",{children:ki(f.model.provider,f.model.modelId)})]}),f.thinkingLevel&&s.jsxs("span",{className:"oc-runtime-context-chip",children:["思考 ",f.thinkingLevel]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["Prompt ",M.toLocaleString()," 字"]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["工具 ",R]}),s.jsxs("span",{className:"oc-runtime-context-chip",children:["资源面 ",String(f.resources.mode??"closed")]})]}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsxs("div",{children:[s.jsx("strong",{children:"System prompt"}),s.jsxs("code",{className:"oc-runtime-context-hash",children:[f.systemPrompt.hash.slice(0,12),"…"]})]}),j?s.jsx(oh,{text:j}):null]}),s.jsx("pre",{className:"oc-runtime-context-text",children:j||"(空)"})]}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"Session suffix"}),s.jsx("span",{className:"oc-runtime-context-meta",children:f.suffix.present?`${(f.suffix.charCount??0).toLocaleString()} 字`:"未注入"})]}),f.suffix.present?s.jsx("pre",{className:"oc-runtime-context-text",children:f.suffix.text??f.suffix.summary??"已注入"}):s.jsx("p",{className:"oc-runtime-context-empty",children:"本会话无额外 suffix"})]}),s.jsx(Ri,{title:"Context files",items:w.contextFiles?.map(I=>({name:I.path,path:I.path,description:`${I.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件(真实空态)"}),s.jsx(Ri,{title:"Skills",items:w.skills,emptyText:"该 session 未加载任何 Skills(真实空态)"}),s.jsx(Ri,{title:"Extensions",items:w.extensions,emptyText:"该 session 未加载任何 Extensions(真实空态)"}),s.jsx(Ri,{title:"Packages",items:w.packages,emptyText:"该 session 未配置 Packages(真实空态)"}),s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"Active tools"}),s.jsxs("span",{className:"oc-runtime-context-meta",children:[R," 个"]})]}),y.length===0?s.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):s.jsx("ul",{className:"oc-runtime-context-tools",children:y.map(I=>s.jsx("li",{children:s.jsx("code",{children:I})},I))})]}),Array.isArray(w.diagnostics)&&w.diagnostics.length>0&&s.jsxs("section",{className:"oc-runtime-context-section",children:[s.jsxs("header",{className:"oc-runtime-context-section-head",children:[s.jsx("strong",{children:"资源诊断"}),s.jsxs("span",{className:"oc-runtime-context-meta",children:[w.diagnostics.length," 条"]})]}),s.jsx("ul",{className:"oc-runtime-context-resources",children:w.diagnostics.map((I,q)=>s.jsxs("li",{children:[s.jsxs("span",{className:`oc-runtime-context-diag is-${I.type??"warning"}`,children:[I.type,": ",I.message]}),I.path?s.jsx("code",{children:I.path}):null]},q))})]}),s.jsxs("details",{className:"oc-runtime-context-raw",children:[s.jsx("summary",{children:"原始投影 JSON"}),s.jsx("pre",{children:JSON.stringify(f,null,2)})]})]}),s.jsxs("footer",{className:"oc-runtime-context-foot",children:[s.jsx("span",{className:"oc-runtime-context-meta",children:g?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g,onClick:()=>{is()},children:"重新加载会话"}),x&&s.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[x.code?`${x.code}:`:"",x.message,s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{is()},children:"重试"})]})]})]})]})});function wy(i){const{catalog:r,open:c,onToggle:u,onClose:f,menuRef:m}=i;return s.jsxs("div",{className:"oc-tools-menu oc-tools-menu--composer",ref:m,children:[s.jsxs("button",{type:"button",className:`oc-cap-chip oc-tools-toggle${c?" is-active":""}`,"aria-pressed":c,"aria-expanded":c,"aria-controls":"oc-tools-catalog",onClick:u,children:[r.total," 工具"]}),c&&s.jsxs("div",{id:"oc-tools-catalog",className:"oc-tools-catalog",role:"dialog","aria-label":"可用工具列表",children:[s.jsxs("header",{className:"oc-tools-catalog-head",children:[s.jsx("strong",{children:"可用工具"}),s.jsxs("span",{className:"oc-tools-catalog-meta",children:[r.total," 个 · 点选了解简介"]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-tools-catalog-close","aria-label":"关闭工具列表",onClick:f,children:"关闭"})]}),s.jsxs("div",{className:"oc-tools-catalog-body",children:[r.explore.length>0&&s.jsxs("section",{className:"oc-tools-group",children:[s.jsx("h4",{className:"oc-tools-group-title",children:"仓库探查"}),s.jsx("ul",{className:"oc-tools-list",children:r.explore.map(h=>s.jsxs("li",{className:"oc-tools-item",children:[s.jsxs("div",{className:"oc-tools-item-head",children:[s.jsx("code",{className:"oc-tools-name",children:h.toolId}),s.jsx("span",{className:"oc-tools-kind is-explore",children:Tm(h.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:h.description})]},h.toolId))})]}),s.jsxs("section",{className:"oc-tools-group",children:[s.jsx("h4",{className:"oc-tools-group-title",children:"Operator 动作"}),s.jsx("ul",{className:"oc-tools-list",children:r.operator.map(h=>s.jsxs("li",{className:"oc-tools-item",children:[s.jsxs("div",{className:"oc-tools-item-head",children:[s.jsx("code",{className:"oc-tools-name",children:h.toolId}),s.jsx("span",{className:`oc-tools-kind is-${h.kind??"read"}`,children:Tm(h.kind)})]}),s.jsx("p",{className:"oc-tools-desc",children:h.description}),h.cli&&s.jsxs("p",{className:"oc-tools-cli",children:["CLI: ",s.jsx("code",{children:h.cli})]})]},h.toolId))})]})]})]})]})}function ky(i){const{composer:r,streaming:c,hasThread:u}=i,f=!!i.compactControls,[m,h]=p.useState(!1),g=p.useRef(null),x=cs(),y=x.reloading,R=x.reloadError,M=x.mutationBusy||y||c;p.useEffect(()=>{f||h(!1)},[f]),p.useEffect(()=>{if(!m)return;const A=Z=>{const L=g.current;L&&Z.target instanceof Node&&!L.contains(Z.target)&&h(!1)},O=Z=>{Z.key==="Escape"&&h(!1)};return document.addEventListener("mousedown",A),document.addEventListener("keydown",O),()=>{document.removeEventListener("mousedown",A),document.removeEventListener("keydown",O)}},[m]);const w=p.useCallback(()=>{r.setInput(""),r.setShortcutOpen(!1),is()},[r.setInput,r.setShortcutOpen]),I=p.useCallback(A=>{const O=r.isComposingNow()||A.nativeEvent.isComposing,Z=r.recentlyComposedNow();if(A.key==="Enter"&&!A.shiftKey&&!O&&!Z){if(r.shortcutOpen&&r.filteredShortcuts.length>0){if((r.filteredShortcuts[r.shortcutIndex]??r.filteredShortcuts[0])?.command==="/reload"){A.preventDefault(),w();return}}else if(r.input.trim()==="/reload"){A.preventDefault(),w();return}}i.onKeyDown(A)},[r.isComposingNow,r.recentlyComposedNow,r.shortcutOpen,r.filteredShortcuts,r.shortcutIndex,r.input,w,i.onKeyDown]),q=p.useCallback(A=>{if(A==="/reload"){w();return}i.onRunShortcut(A)},[w,i.onRunShortcut]),ae=p.useCallback(()=>{if(r.input.trim()==="/reload"){w();return}i.onSend(r.input)},[r.input,w,i.onSend]),se=(()=>{const A=i.activeModelRef||"模型",O=A.split("/"),Z=O[O.length-1]||A;return Z.length>18?`${Z.slice(0,16)}…`:Z})(),T=s.jsxs(s.Fragment,{children:[f?null:s.jsx(zm,{models:i.models,activeModelRef:i.activeModelRef,triggerLabel:i.activeModelRef||"选择模型",disabled:M,onSelect:(A,O)=>i.onSwitchRuntime({provider:A,modelId:O})}),s.jsx(Ty,{levels:i.thinkingLevels,activeValue:i.activeThinkingLevel||"auto",triggerLabel:i.activeThinkingLevel||"auto",disabled:M,onSelect:A=>i.onSwitchRuntime({thinkingLevel:A})}),s.jsxs("span",{className:"oc-usage",title:Im(i.usage),children:[c?"运行中":"空闲",i.unread>0?` · ${i.unread} 未读`:""," · ",Im(i.usage)]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:i.onCompact,disabled:c||!u,title:u?c?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:"Compact"}),i.toolCatalog?s.jsx(wy,{catalog:i.toolCatalog,open:i.toolsOpen,onToggle:i.onToggleTools,onClose:i.onCloseTools,menuRef:i.toolsMenuRef}):null,i.processSummary&&s.jsxs("button",{type:"button",ref:i.processTriggerRef,className:`oc-process-summary is-${i.processSummary.statusKind}${i.processOpen?" is-open":""}`,"aria-pressed":i.processOpen,"aria-controls":"oc-process-panel",onClick:i.onToggleProcess,children:["全部工具 · ",i.processSummary.count," ·"," ",i.processSummary.statusLabel]}),i.runtimeContext&&s.jsx(Ey,{ref:i.runtimeContextMenuRef,open:i.runtimeContextOpen,onToggle:i.onToggleRuntimeContext,onClose:i.onCloseRuntimeContext,context:i.runtimeContext})]});return s.jsx("div",{className:`oc-composer${f?" is-compact-controls":""}`,children:s.jsxs("div",{className:"oc-composer-inner",children:[r.fileOptions.length>0&&s.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:r.fileOptions.map(A=>s.jsx("button",{type:"button",role:"option",onMouseDown:O=>O.preventDefault(),onClick:()=>r.insertFileReference(A),children:s.jsxs("code",{children:["@",A]})},A))}),r.pendingImages.length>0&&s.jsx("div",{className:"oc-attachment-list",children:r.pendingImages.map(A=>s.jsxs("span",{children:[A.name,s.jsx("button",{type:"button","aria-label":`移除 ${A.name}`,onClick:()=>r.removeImage(A),children:"×"})]},A.name))}),s.jsxs("div",{className:"oc-composer-toolbar",children:[s.jsxs("label",{className:"oc-attach-button",children:["添加图片",s.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,hidden:!0,onChange:A=>{r.addImagesFromFiles(Array.from(A.target.files??[]).slice(0,4)),A.target.value=""}})]}),f?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"oc-composer-primary-model",children:s.jsx(zm,{models:i.models,activeModelRef:i.activeModelRef,triggerLabel:se,disabled:M,onSelect:(A,O)=>i.onSwitchRuntime({provider:A,modelId:O})})}),s.jsxs("div",{className:"oc-composer-more",ref:g,children:[s.jsx("button",{type:"button",className:`oc-composer-more-btn${m?" is-open":""}`,"aria-expanded":m,"aria-haspopup":"menu","aria-label":"更多控制",title:"更多",onClick:()=>h(A=>!A),children:"更多"}),m?s.jsx("div",{className:"oc-composer-more-menu",role:"menu","aria-label":"低频控制",children:T}):null]})]}):s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),s.jsxs("span",{className:"oc-composer-hint",children:[s.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",s.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]})]}),y&&s.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),r.shortcutOpen&&r.filteredShortcuts.length>0&&s.jsx("div",{className:"oc-shortcut-palette",role:"listbox","aria-label":"Chat shortcuts",children:r.filteredShortcuts.map((A,O)=>s.jsxs("button",{type:"button",role:"option","aria-selected":O===r.shortcutIndex,className:O===r.shortcutIndex?"is-active":"",onMouseDown:Z=>Z.preventDefault(),onClick:()=>q(A.command),children:[s.jsx("code",{children:A.command}),s.jsxs("span",{children:[s.jsx("strong",{children:A.label}),s.jsx("small",{children:A.description})]})]},A.command))}),s.jsxs("div",{className:`oc-composer-shell${c?" is-busy":""}`,children:[s.jsx("textarea",{ref:r.textareaRef,className:"oc-textarea",value:r.input,rows:3,placeholder:c?"正在生成回复…(可直接发起新问题)":u?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:A=>r.handleInputChange(A.target.value),onKeyDown:I,onCompositionStart:r.onCompositionStart,onCompositionEnd:r.onCompositionEnd,disabled:c}),c?s.jsx("button",{type:"button",className:"oc-stop",title:"停止生成","aria-label":"停止生成",onClick:i.onStop,children:s.jsx(my,{})}):s.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:ae,disabled:!r.input.trim()&&r.pendingImages.length===0||y,children:s.jsx(fy,{})})]}),R&&s.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[s.jsxs("span",{children:[R.code?`${R.code}:`:"",R.message]}),s.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{is()},children:"重试"})]}),f?null:s.jsx("div",{className:"oc-runtime-controls",children:T})]})})}function Ay(i){const{toolCalls:r,onClose:c,overlay:u=!1}=i,f=p.useRef(null);return eh({open:u,containerRef:f,triggerRef:i.triggerRef,onEscape:c}),s.jsxs("aside",{ref:f,id:"oc-process-panel",className:`oc-process${u?" is-process-overlay":""}`,"aria-label":"全部工具",role:u?"dialog":void 0,"aria-modal":u?!0:void 0,tabIndex:-1,children:[s.jsxs("header",{className:"oc-process-head",children:[s.jsxs("div",{className:"oc-process-title",children:[s.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"全部工具",s.jsx("span",{className:"oc-process-count",children:r.length})]}),s.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭全部工具",onClick:c,children:"关闭"})]}),s.jsx("div",{className:"oc-process-timeline",children:r.length===0?s.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):r.map((m,h)=>s.jsxs("div",{className:`oc-process-item${h===0?" is-first":""}${h===r.length-1?" is-last":""}${m.status==="error"?" is-error":""}${m.status==="running"?" is-running":""}`,children:[s.jsx("div",{className:"oc-process-rail","aria-hidden":"true",children:s.jsx("span",{className:"oc-process-dot"})}),s.jsx("div",{className:"oc-process-time",children:Km(m.createdAt)}),s.jsx("div",{className:"oc-process-body",children:s.jsx(uh,{entry:m})})]},m.id))})]})}function Dy(){const i=p.useRef(null),r=p.useRef(!1),c=p.useRef(null),u=p.useRef(new Map),f=p.useRef(new Set),m=p.useRef(null),h=p.useRef(null),g=p.useRef(0),x=p.useRef(null),y=p.useRef(new Set),R=p.useRef(new Set),j=p.useRef(new Map),M=p.useRef(null),w=p.useRef(null),I=p.useRef(new Set),q=p.useRef(!1),ae=p.useRef(0);return p.useMemo(()=>({sessionRef:i,streamingRef:r,abortRef:c,sessionAbortControllersRef:u,inlineStreamSessionIdsRef:f,assistantIdRef:m,lastEventIdRef:h,sessionGenerationRef:g,eventsStreamStateRef:x,settledTurnIdsRef:y,seenEventIdsRef:R,turnAssistantIdsRef:j,reconnectAbortRef:M,activeTurnIdRef:w,usageResponseKeysRef:I,isComposingRef:q,compositionEndedAtRef:ae}),[i,r,c,u,f,m,h,g,x,y,R,j,M,w,I,q,ae])}const Oy=["operation","contract","dag","report","html"];function My(i){const r=i.artifact;if(!r||typeof r!="object")return;const c=r;if(!(c.schemaVersion!==1||typeof c.artifactId!="string"||!c.artifactId||typeof c.kind!="string"||!Oy.includes(c.kind)||typeof c.previewHash!="string")){for(const u of["title","summary","htmlPreview","reportText","inspectHref"])if(c[u]!==void 0&&typeof c[u]!="string")return;return c}}function _y(i,r){const c=i.findIndex(u=>u.artifactId===r.artifactId);return c<0?[...i,r]:i.map((u,f)=>f===c?{...u,...r}:u)}function Iy(i){if(!i||typeof i!="object")return;const r=i;if(!(r.schemaVersion!==1||typeof r.cardId!="string"||r.gateType!=="contract-apply"&&r.gateType!=="dag-run"||typeof r.taskId!="string"||typeof r.state!="string"||typeof r.expiresAt!="string"||typeof r.inspectHref!="string"||typeof r.previewHash!="string"))return r}function zy(i,r){const c=i.findIndex(f=>f.cardId===r.cardId);if(c<0)return[...i,r];const u=[...i];return u[c]=r,u}function Ly(i,r){const c=i.findIndex(u=>u.operationId===r.operationId);return c<0?[...i,r]:i.map((u,f)=>f===c?{...u,...r}:u)}function Uy(i){const r=i.operation;if(!r||typeof r!="object")return;const c=r;if(!(c.schemaVersion!==1||typeof c.operationId!="string"||typeof c.action!="string"||typeof c.state!="string"||typeof c.inspectHref!="string"||typeof c.createdAt!="string"||typeof c.updatedAt!="string"||typeof c.previewHash!="string"))return c}function Hy(i){const{refs:r,onReconcile:c,setError:u,setProcessOpen:f,setInterview:m,setHumanGateCards:h,setArtifactCards:g,setStreaming:x,setStreamingAssistantId:y,setUnread:R,setOperationCards:j,setUsage:M,setMessages:w,setToolCalls:I}=i;return(q,ae,se,T)=>{if(T?.generation!==void 0&&r.sessionGenerationRef.current!==T.generation)return;const A=T?.replay===!0;if(q==="stream_ready")return;if(q==="reconcile"){const E=typeof ae.reason=="string"?ae.reason:"cursor_expired";c?.({reason:E,...typeof ae.minSeq=="number"?{minSeq:ae.minSeq}:{},...typeof ae.epoch=="string"?{epoch:ae.epoch}:{},...typeof ae.latestTurnId=="string"?{latestTurnId:ae.latestTurnId}:{},...typeof ae.latestEventId=="string"?{latestEventId:ae.latestEventId}:ae.latestEventId===null?{latestEventId:null}:{}});return}const O=ae.data&&typeof ae.data=="object"?ae.data:ae,Z=typeof ae.turnId=="string"?ae.turnId:void 0;if(Z&&(q==="agent_start"||q==="message_update")&&r.settledTurnIdsRef.current.has(Z))return;let L=se;if(Z){const E=r.turnAssistantIdsRef.current.get(Z);E?L=E:r.turnAssistantIdsRef.current.set(Z,se)}if(q==="interview-turn"){m(E=>({...E??{},interviewSessionId:typeof O.interviewSessionId=="string"?O.interviewSessionId:E?.interviewSessionId,taskId:typeof O.taskId=="string"?O.taskId:E?.taskId,state:typeof O.state=="string"?O.state:E?.state,question:O.question&&typeof O.question=="object"?O.question:void 0}));return}if(q==="draft"){m(E=>({...E??{},taskId:typeof O.taskId=="string"?O.taskId:E?.taskId,draft:O.draft&&typeof O.draft=="object"?O.draft:E?.draft,draftSha256:typeof O.draftSha256=="string"?O.draftSha256:E?.draftSha256,taskKindRecommendation:typeof O.taskKindRecommendation=="string"?O.taskKindRecommendation:E?.taskKindRecommendation}));return}if(q==="assessment"){m(E=>({...E??{},assessment:O}));return}if(q==="taskKind-confirmed"){m(E=>({...E??{},confirmedTaskKind:typeof O.taskKind=="string"?O.taskKind:E?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(q==="human-gate-card"){const E=Iy(O);E&&h(Y=>zy(Y,E));return}if(q==="artifact-ref"){const E=My(O);E&&g(Y=>_y(Y,E));return}if(q==="agent_start"){if(A&&Z!==void 0&&Z!==r.activeTurnIdRef.current)return;Z&&(r.settledTurnIdsRef.current.delete(Z),r.activeTurnIdRef.current=Z),r.streamingRef.current=!0,x(!0),y(L);return}if(q==="agent_settled"||q==="agent_end"){if(Z&&r.settledTurnIdsRef.current.add(Z),q==="agent_end")return;Z===r.activeTurnIdRef.current&&(r.activeTurnIdRef.current=null),r.streamingRef.current=!1,x(!1),y(null),q==="agent_settled"&&!A&&typeof document<"u"&&document.hidden&&R(E=>E+1),w(E=>E.filter(Y=>!(Y.id===L&&Y.role==="assistant"&&!Y.text.trim()))),I(E=>E.map(Y=>Y.status==="running"&&Y.assistantMessageId===L?{...Y,status:"error",finishedAt:Date.now()}:Y));return}if(q==="operation-ref"||q==="operation-status"){const E=Uy(O);E&&j(Y=>Ly(Y,E));return}if(q==="usage"){if(A)return;const E=O,Y=typeof E.responseKey=="string"&&E.responseKey?E.responseKey:void 0;if(Y&&r.usageResponseKeysRef.current.has(Y))return;Y&&r.usageResponseKeysRef.current.add(Y),M(F=>{const P=E.inputTokens??0,K=E.outputTokens??0,W=E.cacheReadTokens??0,oe=E.cacheWriteTokens??0,X=E.totalTokens??P+K+W+oe;return{inputTokens:F.inputTokens+P,outputTokens:F.outputTokens+K,cacheReadTokens:F.cacheReadTokens+W,cacheWriteTokens:F.cacheWriteTokens+oe,totalTokens:F.totalTokens+X,cost:E.cost===void 0?F.cost:(F.cost??0)+E.cost}});return}if(q==="message_update"||q==="message_end"){if(A)return;const E=typeof O.text=="string"?O.text:"";w(Y=>Y.some(P=>P.id===L)?Y.map(P=>P.id===L?{...P,text:E}:P):[...Y,{id:L,role:"assistant",text:E,createdAt:Date.now()}])}else if(q==="tool_call"){const E=typeof O.toolCallId=="string"?O.toolCallId:ll("t"),Y=typeof O.toolName=="string"?O.toolName:"tool",F=typeof O.argsPreview=="string"?O.argsPreview:"{}",P=Date.now();I(K=>K.some(W=>W.id===E)?K.map(W=>W.id===E?{...W,args:F,status:"running",turnId:Z??W.turnId,assistantMessageId:L}:W):[...K,{id:E,toolName:Y,args:F,status:"running",createdAt:P,turnId:Z,assistantMessageId:L}])}else if(q==="tool_result"){const E=typeof O.toolCallId=="string"?O.toolCallId:ll("r"),Y=typeof O.toolName=="string"?O.toolName:"tool",F=O.isError===!0,P=typeof O.resultPreview=="string"?O.resultPreview:"{}",K=Date.now();F&&f(!0),I(W=>W.find(X=>X.id===E)?W.map(X=>X.id===E?{...X,result:P,resultText:P,status:F?"error":"ok",finishedAt:K,turnId:Z??X.turnId,assistantMessageId:X.assistantMessageId??L}:X):[...W,{id:E,toolName:Y,result:P,resultText:P,status:F?"error":"ok",createdAt:K,finishedAt:K,turnId:Z,assistantMessageId:L}])}else q==="error"&&u(typeof O.message=="string"?O.message:"chat error")}}const no={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function By(i){const{origin:r,refs:c,sessionId:u,setError:f,setProcessOpen:m,onReconcile:h}=i,[g,x]=p.useState([]),[y,R]=p.useState([]),[j,M]=p.useState([]),[w,I]=p.useState([]),[q,ae]=p.useState(50),[se,T]=p.useState(0),[A,O]=p.useState([]),[Z,L]=p.useState(null),[E,Y]=p.useState(null),[F,P]=p.useState(!1),[K,W]=p.useState(no),[oe,X]=p.useState(!1),[ce,S]=p.useState(null),[z]=p.useState(!1),_=p.useMemo(()=>Hy({refs:c,onReconcile:h,setError:f,setProcessOpen:m,setInterview:L,setHumanGateCards:O,setArtifactCards:I,setStreaming:X,setStreamingAssistantId:S,setUnread:T,setOperationCards:M,setUsage:W,setMessages:x,setToolCalls:R}),[c,h,f,m]),ie=p.useCallback((le,de,ue)=>{if(ue?.targetSessionId&&c.sessionRef.current?.sessionId!==ue.targetSessionId||ue?.generation!==void 0&&c.sessionGenerationRef.current!==ue.generation)return null;const Ae=le.split(`
15
+ `);let De="message",Ye="",mt=null;for(const ze of Ae)ze.startsWith("event: ")?De=ze.slice(7).trim():ze.startsWith("data: ")?Ye+=ze.slice(6):ze.startsWith("id: ")&&(mt=ze.slice(4).trim());if(!Ye)return mt;let be;try{be=JSON.parse(Ye)}catch{return mt}const Re=mt??(typeof be.eventId=="string"?be.eventId:null);if(Re){if(c.seenEventIdsRef.current.has(Re))return Re;c.seenEventIdsRef.current.add(Re)}return _(De,be,de,ue),mt??Re},[_,c]),ee=p.useCallback(async(le,de)=>{const ue=de?.background===!0;ue||P(!0);try{const Ae=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(le)}/context`,{credentials:"include"});if(!Ae.ok)return;const De=await Ae.json();De.context&&c.sessionRef.current?.sessionId===le&&Y(Ye=>yg(Ye,De.context)?Ye:De.context)}finally{ue||P(!1)}},[r,c]);p.useEffect(()=>{u&&ee(u)},[u,ee]),p.useEffect(()=>{if(!u)return;const le=window.setTimeout(()=>{ee(u,{background:!0})},350);return()=>window.clearTimeout(le)},[u,j,A,Z,ee]);const b=p.useMemo(()=>g.filter(le=>le.role!=="system"||z).slice(-q),[g,z,q]);p.useEffect(()=>{const le=()=>{document.hidden||T(0)};return document.addEventListener("visibilitychange",le),()=>document.removeEventListener("visibilitychange",le)},[]);const k=p.useMemo(()=>{if(y.length===0)return null;const le=y.filter(Ye=>Ye.status==="running"),de=y.filter(Ye=>Ye.status==="error"),ue=le[le.length-1];let Ae="完成",De="ok";return de.length>0?(Ae=`${de.length} 出错`,De="error"):le.length>0&&(Ae=ue?`正在调用 ${ue.toolName}`:"运行中",De="running"),{count:y.length,statusLabel:Ae,statusKind:De}},[y]),V=p.useMemo(()=>vy({messages:b,toolCalls:y,streaming:oe,activeAssistantId:ce}),[b,y,oe,ce]),$=p.useCallback(()=>{x([]),R([]),M([]),O([]),I([]),L(null),Y(null),W(no),X(!1),S(null),T(0),ae(50),c.usageResponseKeysRef.current=new Set},[c]),me=p.useCallback(le=>{x(le.messages),R(le.toolCalls),M([]),O([]),I([]),Y(null),L(null),W(no),c.usageResponseKeysRef.current=new Set,X(le.streaming),S(null),T(0),ae(50)},[c]),re=p.useCallback(async le=>{try{const de=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(le)}`,{credentials:"include"});if(!de.ok)return!1;const ue=await de.json();if(!ue.session||c.sessionRef.current?.sessionId!==le)return!1;const Ae=ue.session.activeTurnId??null;return c.activeTurnIdRef.current=Ae,c.streamingRef.current=!!Ae,c.lastEventIdRef.current=ue.lastEventId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,x((ue.session.messages??[]).filter(De=>De.role==="user"||De.role==="assistant").map(De=>({id:De.id,role:De.role,text:De.text,createdAt:Date.parse(De.at)||Date.now()}))),S(null),!0}catch{return!1}},[r,c,x,S]);return{messages:g,setMessages:x,toolCalls:y,setToolCalls:R,operationCards:j,artifactCards:w,historyLimit:q,setHistoryLimit:ae,unread:se,humanGateCards:A,interview:Z,setInterview:L,taskContext:E,contextLoading:F,usage:K,streaming:oe,setStreaming:X,streamingAssistantId:ce,setStreamingAssistantId:S,visibleMessages:b,turnGroups:V,processSummary:k,applyChatSseEvent:_,applySseBlock:ie,loadTaskContext:ee,resetForNewSession:$,applyActivatedSession:me,recoverSession:re}}class qy{constructor(r){this.options=r,this.fetchFn=r.fetchFn??fetch,this.backoffMs=r.backoffMs??1e3,this.deadlineMs=r.deadlineMs??3e4}options;eligible=new Set;controllers=new Map;fetchFn;backoffMs;deadlineMs;markEligible(r){this.eligible.add(r)}startIfEligible(r){if(!this.eligible.delete(r)||this.controllers.has(r))return;const c=new AbortController;this.controllers.set(r,c),this.run(r,c)}cancel(r){this.eligible.delete(r),this.controllers.get(r)?.abort(),this.controllers.delete(r)}reconcile(r){const c=new Set(r);for(const u of this.controllers.keys())c.has(u)||this.cancel(u)}dispose(){for(const r of this.controllers.values())r.abort();this.controllers.clear(),this.eligible.clear()}async run(r,c){let u;const f=new Set;let m=!1;const h=window.setTimeout(()=>{m=!0,c.abort()},this.deadlineMs);try{for(;!c.signal.aborted;){try{const g={Accept:"text/event-stream"};u&&(g["Last-Event-ID"]=u);const x=await this.fetchFn(`${this.options.origin}/api/operator/v1/chat/sessions/${encodeURIComponent(r)}/events`,{headers:g,credentials:"include",signal:c.signal});if(x.status===404||!x.body)return;if(!x.ok)throw new Error(`HTTP ${x.status}`);const y=x.body.getReader(),R=new TextDecoder;let j="";for(;;){const{done:M,value:w}=await y.read();if(M||c.signal.aborted)break;j+=R.decode(w,{stream:!0});const I=j.split(`
16
+
17
+ `);j=I.pop()??"";for(const q of I){const ae=q.split(`
18
+ `).find(T=>T.startsWith("id: "))?.slice(4);if(ae&&(u=ae),!ae||f.has(ae)||!q.includes("event: session_title"))continue;const se=q.split(`
19
+ `).find(T=>T.startsWith("data: "))?.slice(6);if(se)try{const T=JSON.parse(se),A=T.data?.title?.trim();if(!A)continue;if(f.add(ae),!this.options.hasSession(r)||(this.options.onTitle(r,{title:A,automatic:!!T.data?.automatic}),T.data?.automatic))return}catch{}}}}catch{if(c.signal.aborted)return}c.signal.aborted||await Gy(this.backoffMs,c.signal)}}finally{window.clearTimeout(h),this.controllers.get(r)===c&&this.controllers.delete(r),(m||!this.options.hasSession(r))&&this.options.refresh()}}}function Gy(i,r){return new Promise(c=>{const u=window.setTimeout(m,i),f=()=>m();function m(){window.clearTimeout(u),r.removeEventListener("abort",f),c()}r.addEventListener("abort",f,{once:!0})})}async function $y(i){if(i.creatingRef?.current)throw new Error("CREATE_SESSION_IN_FLIGHT");i.creatingRef&&(i.creatingRef.current=!0),i.setCreatingSession?.(!0);try{const r=await(i.fetchFn??fetch)(`${i.origin}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},credentials:"include",body:JSON.stringify(i.options??{})});if(!r.ok){const h=await r.json().catch(()=>({}));throw new Error(h.error?.message??`HTTP ${r.status}`)}const c=await r.json();if(!c.session)throw new Error("创建会话响应缺少 durable session");const u=c.session,f={sessionId:u.sessionId,...so(u)},m=[u,...i.sessionListRef.current.filter(h=>h.sessionId!==u.sessionId)].slice(0,Ei);return i.sessionListRef.current=m,i.setSessionList(m),i.titleWatcher?.markEligible(u.sessionId),i.refreshSessionList(),f}finally{i.creatingRef&&(i.creatingRef.current=!1),i.setCreatingSession?.(!1)}}function Yy(i){const{origin:r,refs:c,setSession:u,thread:f,composer:m,browser:h,setError:g,setProcessOpen:x,setAutoScroll:y}=i,{applyActivatedSession:R,resetForNewSession:j,setMessages:M}=f,{setInput:w,setPendingImages:I}=m,{setPreviews:q,setActivePreviewPath:ae}=h,[se,T]=p.useState([]),A=p.useRef([]);A.current=se;const O=p.useRef(null),[Z,L]=p.useState(!1),E=p.useRef(!1),Y=p.useRef(0),F=p.useCallback(()=>{c.sessionGenerationRef.current+=1,c.abortRef.current?.abort(),c.reconnectAbortRef.current?.abort();for(const _ of c.sessionAbortControllersRef.current.values())_.abort();c.sessionAbortControllersRef.current.clear(),c.reconnectAbortRef.current=null,c.eventsStreamStateRef.current=null,c.streamingRef.current=!1,c.abortRef.current=null,c.assistantIdRef.current=null,c.lastEventIdRef.current=null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.activeTurnIdRef.current=null,j(),w(""),I([]),q([]),ae(null),x(!1),y(!0)},[c,j,w,I,q,ae,x,y]),P=p.useCallback(async()=>{try{const _=await fetch(`${r}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!_.ok)return;const ie=(await _.json()).sessions??[],ee=ie.slice(0,Ei),b=ie.slice(Ei);if(T(ee),b.length===0)return;await Promise.all(b.map(V=>fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(V.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":_t()}}).catch(()=>{})));const k=c.sessionRef.current?.sessionId;k&&b.some(V=>V.sessionId===k)&&(Y.current+=1,c.sessionRef.current=null,F(),u(null),window.localStorage.removeItem(Pt))}catch{}},[r,c,F,u]),K=p.useCallback(async _=>{if(window.confirm("确定删除该会话?删除后不可恢复。"))try{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":_t()}})).ok){g("删除会话失败");return}O.current?.cancel(_),c.sessionRef.current?.sessionId===_&&(Y.current+=1,c.sessionRef.current=null,F(),u(null),window.localStorage.removeItem(Pt)),await P()}catch(ie){g(ie instanceof Error?ie.message:String(ie))}},[r,c,u,F,P,g]),W=p.useCallback(async _=>{const ie=++Y.current;try{const ee=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{credentials:"include"}),b=await ee.json();if(!ee.ok||!b.session)throw new Error(b.error?.message??"会话不可用");if(ie!==Y.current)return;const k={sessionId:b.session.sessionId,...so(b.session)};F(),c.sessionRef.current=k,c.streamingRef.current=!!b.session.activeTurnId,c.activeTurnIdRef.current=b.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(k),c.assistantIdRef.current=null,c.abortRef.current=c.sessionAbortControllersRef.current.get(_)??null,I([]),q([]),w(b.session.composerDraft??"");const V=py(b.session.messages??[]);R({messages:V.messages,toolCalls:V.toolCalls,streaming:!!b.session.activeTurnId}),window.localStorage.setItem(Pt,_),ae(null)}catch(ee){if(ie!==Y.current)return;g(ee instanceof Error?ee.message:String(ee))}},[r,c,u,I,q,w,R,F,ae,g]);p.useEffect(()=>{P()},[P]),O.current||(O.current=new qy({origin:r,hasSession:_=>A.current.some(ie=>ie.sessionId===_),onTitle:(_,ie)=>{T(ee=>ee.map(b=>b.sessionId!==_||ie.automatic&&b.title?b:ie.automatic?{...b,title:ie.title}:{...b,displayTitle:ie.title}))},refresh:P}));const oe=p.useCallback(_=>O.current?.startIfEligible(_),[]);p.useEffect(()=>{O.current?.reconcile(se.filter(_=>_.state!=="archived"&&!_.title).map(_=>_.sessionId))},[se]),p.useEffect(()=>()=>O.current?.dispose(),[]),p.useEffect(()=>{let _=!1;const ie=window.localStorage.getItem(Pt);if(!ie)return;const ee=++Y.current;return(async()=>{try{const b=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(ie)}`,{credentials:"include"});if(!b.ok){window.localStorage.removeItem(Pt);return}const k=await b.json();if(_||ee!==Y.current||!k.session)return;const V={sessionId:k.session.sessionId,...so(k.session)};c.sessionGenerationRef.current+=1,c.sessionRef.current=V,c.activeTurnIdRef.current=k.session.activeTurnId??null,c.seenEventIdsRef.current=new Set,c.turnAssistantIdsRef.current=new Map,c.settledTurnIdsRef.current=new Set,c.lastEventIdRef.current=null,u(V),w(k.session.composerDraft??""),M((k.session.messages??[]).filter($=>$.role==="user"||$.role==="assistant").map($=>({id:$.id,role:$.role,text:$.text,createdAt:Date.parse($.at)||Date.now()})))}catch{}})(),()=>{_=!0}},[r,c,u,w,M]);const X=p.useCallback(_=>$y({origin:r,sessionListRef:A,setSessionList:T,titleWatcher:O.current,refreshSessionList:P,options:_,setCreatingSession:L,creatingRef:E}),[r,P]),ce=p.useCallback(async _=>{if(E.current)return null;const ie=++Y.current;g(null);try{const ee=await X(_);return ie!==Y.current?null:(F(),c.sessionRef.current=ee,window.localStorage.setItem(Pt,ee.sessionId),u(ee),ee)}catch(ee){if(ie!==Y.current)return null;const b=ee instanceof Error?ee.message:String(ee);return b!=="CREATE_SESSION_IN_FLIGHT"&&g(b),null}},[c,u,g,F,X]),S=p.useCallback(async()=>{const _=c.sessionRef.current;if(!(!_||c.streamingRef.current))try{const ie=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_.sessionId)}/compact`,{method:"POST",credentials:"include",headers:{"x-loop-console-confirmation":_t()}}),ee=await ie.json().catch(()=>({}));if(!ie.ok){g(ee.error?.message??"上下文压缩失败");return}g(null)}catch(ie){g(ie instanceof Error?ie.message:"上下文压缩失败")}},[r,c,g]);return{sessionList:se,creatingSession:Z,activateSession:W,refreshSessionList:P,deleteSession:K,createSession:ce,updateSession:async(_,ie)=>{if(!(await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":_t()},body:JSON.stringify(ie)})).ok){g("会话更新失败");return}await P(),ie.state==="archived"&&O.current?.cancel(_),ie.state==="archived"&&c.sessionRef.current?.sessionId===_&&(Y.current+=1,c.sessionRef.current=null,F(),u(null),window.localStorage.removeItem(Pt))},watchSessionTitle:oe,compactSession:S}}function ss(i){const r=(i??"").trim();return r?/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(r)?"控制器版本已变更(Console 启动后代码被重新编译)。请重启 Console 后再试,一次会话中途不要升级/重建控制器。":/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(r)?"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。":/reopened Pi sessionId mismatch/i.test(r)?"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。":/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(r)?"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。":/force-required|requires --force/i.test(r)?"该终态需要强制 Discard。请确认后勾选强制再试。":r:"操作失败"}function Ky(i){return i.split(`
20
+ `).find(r=>r.startsWith("event: "))?.slice(7).trim()??"message"}function Xy(){return new Promise(i=>window.setTimeout(i,25))}function Qy(i){const{origin:r,refs:c,session:u,thread:f,composer:m,setError:h,setAutoScroll:g,recoveryVersion:x=0,watchSessionTitle:y}=i,{applySseBlock:R,setMessages:j,setStreaming:M,setStreamingAssistantId:w,streaming:I}=f,{setInput:q,setPendingImages:ae}=m,se=p.useCallback(async(L,E,Y)=>{for(;!Y.aborted;){const F=c.eventsStreamStateRef.current;if(!F||F.sessionId!==L||F.generation!==E)return;F.ready=!1;try{const P={Accept:"text/event-stream"},K=c.lastEventIdRef.current;K&&(P["Last-Event-ID"]=K);const W=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}/events`,{headers:P,credentials:"include",signal:Y});if(!W.ok||!W.body){if(W.status===404)return;await eo(2e3,Y);continue}const oe=W.body.getReader(),X=new TextDecoder;let ce="",S=!0;const z=ll("a");for(;;){const{done:ie,value:ee}=await oe.read();if(ie)break;ce+=X.decode(ee,{stream:!0});const b=ce.split(`
21
+
22
+ `);ce=b.pop()??"";for(const k of b){if(Ky(k)==="stream_ready"){const me=c.eventsStreamStateRef.current;me?.sessionId===L&&me.generation===E&&(me.ready=!0),S=!1;continue}const V=c.assistantIdRef.current??z,$=R(k,V,{replay:S,targetSessionId:L,generation:E});$&&(c.lastEventIdRef.current=$)}}const _=c.eventsStreamStateRef.current;_?.sessionId===L&&_.generation===E&&(_.ready=!1),await eo(1e3,Y)}catch{if(Y.aborted)return;await eo(2e3,Y)}}},[r,c,R]),T=p.useCallback((L,E)=>{const Y=c.eventsStreamStateRef.current;if(Y?.sessionId===L&&Y.generation===E&&c.reconnectAbortRef.current)return;c.reconnectAbortRef.current?.abort();const F=new AbortController;c.reconnectAbortRef.current=F,c.eventsStreamStateRef.current={sessionId:L,generation:E,ready:!1},se(L,E,F.signal)},[c,se]),A=p.useCallback(async(L,E)=>{T(L,E);const Y=Date.now()+5e3;for(;Date.now()<Y;){const F=c.eventsStreamStateRef.current;if(F?.sessionId===L&&F.generation===E&&F.ready)return;if(c.sessionRef.current?.sessionId!==L||c.sessionGenerationRef.current!==E)throw new Error("会话已切换");await Xy()}throw new Error("事件连接未就绪,请检查 Console 连接后重试")},[c,T]),O=p.useCallback(async(L,E)=>{const Y=c.sessionRef.current,F=c.sessionGenerationRef.current;if(!Y||!L.trim()&&E.length===0||c.streamingRef.current)return;try{await A(Y.sessionId,F)}catch(oe){c.sessionRef.current?.sessionId===Y.sessionId&&c.sessionGenerationRef.current===F&&h(ss(oe instanceof Error?oe.message:String(oe)));return}if(c.sessionRef.current?.sessionId!==Y.sessionId||c.sessionGenerationRef.current!==F)return;const P={id:ll("u"),role:"user",text:L.trim(),createdAt:Date.now()},K=ll("a");j(oe=>[...oe,P,{id:K,role:"assistant",text:"",createdAt:Date.now()}]),q(""),g(!0),h(null),c.streamingRef.current=!0,c.assistantIdRef.current=K,M(!0),w(K);const W=new AbortController;c.abortRef.current=W,c.sessionAbortControllersRef.current.set(Y.sessionId,W);try{const oe=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(Y.sessionId)}/turns`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},credentials:"include",body:JSON.stringify({text:L.trim()||"请查看附件图片。",images:E.map(({type:ce,mimeType:S,data:z})=>({type:ce,mimeType:S,data:z}))}),signal:W.signal}),X=await oe.json().catch(()=>({}));if(!oe.ok||!X.turnId)throw new Error(X.error?.message??`HTTP ${oe.status}`);if(y(Y.sessionId),c.sessionRef.current?.sessionId!==Y.sessionId||c.sessionGenerationRef.current!==F)return;c.activeTurnIdRef.current=X.turnId,c.turnAssistantIdsRef.current.set(X.turnId,K),ae([])}catch(oe){oe?.name!=="AbortError"&&c.sessionRef.current?.sessionId===Y.sessionId&&c.sessionGenerationRef.current===F&&(h(ss(oe instanceof Error?oe.message:String(oe))),c.streamingRef.current=!1,c.assistantIdRef.current=null,M(!1),w(null),j(X=>X.filter(ce=>ce.id!==K||ce.text.trim())))}finally{c.sessionAbortControllersRef.current.delete(Y.sessionId),c.abortRef.current===W&&(c.abortRef.current=null)}},[r,c,A,j,q,g,h,M,w,ae,y]),Z=p.useCallback(()=>{c.abortRef.current?.abort(),c.activeTurnIdRef.current&&c.settledTurnIdsRef.current.add(c.activeTurnIdRef.current),c.streamingRef.current=!1,c.activeTurnIdRef.current=null,M(!1),w(null),j(L=>L.filter(E=>!(E.id===c.assistantIdRef.current&&E.role==="assistant"&&!E.text.trim()))),c.assistantIdRef.current=null},[c,M,w,j]);return p.useEffect(()=>{if(!u||!I)return;const L=u.sessionId,E=c.sessionGenerationRef.current;let Y=!1;const F=async()=>{try{const oe=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(L)}/state`,{credentials:"include"}),X=await oe.json().catch(()=>({}));if(Y||!oe.ok||c.sessionRef.current?.sessionId!==L||c.sessionGenerationRef.current!==E)return;const ce=X.state?.activeTurnId??null;if(c.activeTurnIdRef.current=ce,ce!==null||!c.streamingRef.current)return;const S=c.assistantIdRef.current;c.streamingRef.current=!1,c.assistantIdRef.current=null,M(!1),w(null),j(z=>z.filter(_=>!(_.id===S&&_.role==="assistant"&&!_.text.trim())))}catch{}},P=()=>{document.visibilityState==="visible"&&F()},K=()=>{F()},W=window.setInterval(()=>{F()},15e3);return document.addEventListener("visibilitychange",P),window.addEventListener("online",K),()=>{Y=!0,window.clearInterval(W),document.removeEventListener("visibilitychange",P),window.removeEventListener("online",K)}},[r,c,u,I,M,w,j]),p.useEffect(()=>{if(!u)return;const L=c.sessionGenerationRef.current;return T(u.sessionId,L),()=>{const E=c.eventsStreamStateRef.current;E?.sessionId===u.sessionId&&E.generation===L&&(c.reconnectAbortRef.current?.abort(),c.reconnectAbortRef.current=null,c.eventsStreamStateRef.current=null)}},[u,x,c,T]),{sendPrompt:O,handleStop:Z,openEventsStream:se}}function Vy(i){const{origin:r,refs:c,thread:u,setError:f}=i,{interview:m,setInterview:h}=u,[g,x]=p.useState(""),y=p.useCallback(async()=>{const M=c.sessionRef.current;if(!M)return;const w=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!w)return;const I=await fetch(`${r}/api/operator/v1/chat/sessions/${M.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},credentials:"include",body:JSON.stringify({taskId:w})}),q=await I.json();if(!I.ok){f(q.error?.message??`HTTP ${I.status}`);return}h({interviewSessionId:q.interview?.sessionId,taskId:w,state:q.interview?.state,question:q.question,draft:q.draft?.draft,draftSha256:q.draft?.draftSha256,assessment:q.assessment})},[r,c,h,f]),R=p.useCallback(async M=>{const w=c.sessionRef.current;if(!w||!m?.interviewSessionId||!m.question)return;const I=await fetch(`${r}/api/operator/v1/chat/sessions/${w.sessionId}/interviews/${m.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},credentials:"include",body:JSON.stringify({questionId:m.question.id,response:M,...M==="override"?{text:g}:{}})}),q=await I.json();if(!I.ok){f(q.error?.message??`HTTP ${I.status}`);return}h(ae=>({...ae??{},state:q.interview?.state,question:q.question,draft:q.draft?.draft,draftSha256:q.draft?.draftSha256,assessment:q.assessment,taskKindRecommendation:q.taskKindRecommendation??ae?.taskKindRecommendation})),x("")},[r,c,m,g,h,f]),j=p.useCallback(async()=>{const M=c.sessionRef.current;if(!M||!m?.interviewSessionId||!m.taskKindRecommendation)return;const w=await fetch(`${r}/api/operator/v1/chat/sessions/${M.sessionId}/interviews/${m.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":_t()},credentials:"include",body:JSON.stringify({taskKind:m.taskKindRecommendation})}),I=await w.json();if(!w.ok){f(I.error?.message??`HTTP ${w.status}`);return}h(q=>({...q??{},confirmedTaskKind:q?.taskKindRecommendation,taskKindRecommendation:void 0,draft:I.draft?.draft,draftSha256:I.draft?.draftSha256,assessment:I.assessment}))},[r,c,m,h,f]);return{interviewAnswer:g,setInterviewAnswer:x,startInterview:y,answerInterview:R,confirmTaskKind:j}}function Zy(i){const{origin:r,refs:c,sessionId:u,setError:f}=i,[m,h]=p.useState({}),[g,x]=p.useState(new Set),[y,R]=p.useState(null),[j,M]=p.useState([]),[w,I]=p.useState(null),[q,ae]=p.useState(!1),se=p.useCallback(async(Z="")=>{try{R(null);const L=await fetch(`${r}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(Z)}`,{credentials:"include"}),E=await L.json();if(!L.ok)throw new Error(E.error?.message??"无法读取仓库目录");h(Y=>({...Y,[Z]:E.data?.entries??[]}))}catch(L){R(L instanceof Error?L.message:String(L))}},[r]);p.useEffect(()=>{se()},[se]);const T=p.useCallback(async Z=>{ae(!0);try{const L=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(Z)}`,{credentials:"include"}),E=await L.json();if(!L.ok||!E.data)throw new Error(E.error?.message??"无法预览文件");M(Y=>{const F=[...Y.filter(K=>K.path!==E.data.path),E.data],P=c.sessionRef.current?.sessionId;return P&&window.localStorage.setItem(`${Pt}.previews.${P}`,JSON.stringify(F.map(K=>K.path))),F}),I(E.data.path)}catch(L){f(L instanceof Error?L.message:String(L))}finally{ae(!1)}},[r,c,f]);p.useEffect(()=>{if(!u)return;let Z=[];try{const L=JSON.parse(window.localStorage.getItem(`${Pt}.previews.${u}`)??"[]");Array.isArray(L)&&(Z=L.filter(E=>typeof E=="string").slice(0,10))}catch{}Z.length&&Promise.all(Z.map(async L=>{const E=await fetch(`${r}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(L)}`,{credentials:"include"});if(E.ok)return(await E.json()).data})).then(L=>{if(c.sessionRef.current?.sessionId!==u)return;const E=L.filter(Y=>!!Y);M(E),I(E.at(-1)?.path??null)})},[r,u,c]);const A=p.useCallback(Z=>{x(L=>{const E=new Set(L);return E.has(Z)?E.delete(Z):E.add(Z),E}),m[Z]||se(Z)},[m,se]),O=p.useCallback(Z=>{M(L=>{const E=L.filter(Y=>Y.path!==Z);return u&&window.localStorage.setItem(`${Pt}.previews.${u}`,JSON.stringify(E.map(Y=>Y.path))),E}),I(L=>L===Z?j.find(E=>E.path!==Z)?.path??null:L)},[j,u]);return{tree:m,expandedDirs:g,treeError:y,previews:j,activePreviewPath:w,setActivePreviewPath:I,previewLoading:q,setPreviews:M,loadTree:se,openPreview:T,closePreview:O,toggleDir:A}}function Jy(i){const{origin:r,sessionId:c,refs:u,setError:f}=i,[m,h]=p.useState(""),[g,x]=p.useState([]),[y,R]=p.useState([]),[j,M]=p.useState(!1),[w,I]=p.useState(0),q=p.useRef(null),ae=p.useCallback(F=>{h(F),M(F.startsWith("/")),I(0)},[]);p.useEffect(()=>{if(!c)return;const F=m.slice(0,q.current?.selectionStart??m.length).match(/(?:^|\s)@([^\s@]*)$/);if(!F){x([]);return}const P=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/files?q=${encodeURIComponent(F[1]??"")}`).then(K=>K.ok?K.json():null).then(K=>x((K?.files??[]).map(W=>W.path)))},150);return()=>window.clearTimeout(P)},[r,c,m]);const se=p.useCallback(F=>{const P=q.current?.selectionStart??m.length,W=m.slice(0,P).search(/@[^\s@]*$/);W<0||(h(`${m.slice(0,W)}@${F} ${m.slice(P)}`),x([]))},[m]),T=p.useCallback(F=>{for(const P of Array.from(F).slice(0,4)){if(!P.type.startsWith("image/")||P.size>5*1024*1024){f("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const K=new FileReader;K.onload=()=>{const W=String(K.result??""),oe=W.slice(W.indexOf(",")+1);R(X=>[...X,{name:P.name,type:"image",mimeType:P.type,data:oe}].slice(0,4))},K.readAsDataURL(P)}},[f]),A=p.useCallback(F=>{R(P=>P.filter(K=>K!==F))},[]);p.useLayoutEffect(()=>{const F=q.current;F&&(F.style.height="auto",F.style.height=`${Math.min(F.scrollHeight,280)}px`)},[m]),p.useEffect(()=>{if(!c)return;const F=window.setTimeout(()=>{fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":_t()},body:JSON.stringify({text:m})})},400);return()=>window.clearTimeout(F)},[r,c,m]);const O=p.useMemo(()=>m.startsWith("/")?oo.filter(F=>F.command.startsWith(m.trim().split(/\s+/,1)[0].toLowerCase())):[],[m]),Z=p.useCallback(()=>{u.isComposingRef.current=!0},[u]),L=p.useCallback(()=>{u.isComposingRef.current=!1,u.compositionEndedAtRef.current=Date.now()},[u]),E=p.useCallback(()=>u.isComposingRef.current,[u]),Y=p.useCallback(()=>Date.now()-u.compositionEndedAtRef.current<100,[u]);return p.useEffect(()=>{jg({origin:r,sessionId:c,refs:u})},[r,c,u]),{input:m,setInput:h,handleInputChange:ae,fileOptions:g,pendingImages:y,setPendingImages:R,addImagesFromFiles:T,removeImage:A,shortcutOpen:j,setShortcutOpen:M,shortcutIndex:w,setShortcutIndex:I,filteredShortcuts:O,insertFileReference:se,textareaRef:q,onCompositionStart:Z,onCompositionEnd:L,isComposingNow:E,recentlyComposedNow:Y}}const Fy=[{toolId:"read",kind:"explore",description:"Pi 内置读取文件。"},{toolId:"write",kind:"explore",description:"Pi 内置写入文件(软约束:大改优先走 DAG)。"},{toolId:"edit",kind:"explore",description:"Pi 内置编辑文件(软约束:大改优先走 DAG)。"},{toolId:"bash",kind:"explore",description:"Pi 内置 shell 执行(软约束:优先受治路径)。"},{toolId:"grep",kind:"explore",description:"Pi 内置内容搜索。"},{toolId:"find",kind:"explore",description:"按名称查找文件路径。"},{toolId:"ls",kind:"explore",description:"列出目录内容。"},{toolId:"safe-read",kind:"explore",description:"安全读取仓库相对路径文件;拒绝敏感文件并自动脱敏 secret。"},{toolId:"safe-grep",kind:"explore",description:"安全搜索仓库内容;跳过敏感文件并自动脱敏搜索结果。"},{toolId:"git-status",kind:"explore",description:"固定参数执行 git status --porcelain(无 shell)。"},{toolId:"git-diff",kind:"explore",description:"固定参数查看 git diff;敏感路径不可查看且结果自动脱敏。"}];function Wy(i){if(!i)return null;const r=(i.tools??[]).map(u=>({toolId:u.toolId,action:u.action,description:u.description,kind:u.kind??"read",cli:u.cli})),c=[...Fy];return{explore:c,operator:r,total:c.length+r.length}}let Py=0;function eb(i){const{origin:r,session:c,setSession:u,refs:f,setError:m}=i,[h,g]=p.useState(null),[x,y]=p.useState([]),[R,j]=p.useState("idle"),[M,w]=p.useState(null),[I,q]=p.useState([]),[ae,se]=p.useState(null),[T,A]=p.useState(null),[O,Z]=p.useState(!1),[L,E]=p.useState(!1),[Y,F]=p.useState(!1),P=p.useRef(null),K=p.useRef(null),W=p.useRef(0);p.useEffect(()=>{W.current=-1,Z(!1)},[c?.sessionId,Z]);const X=cs().snapshot,ce=p.useCallback(async()=>{try{const re=await fetch(`${r}/api/operator/v1/chat/capabilities`);if(!re.ok)return;const le=await re.json();g(le)}catch{}},[r]);p.useEffect(()=>{ce()},[ce]);const S=p.useCallback(async()=>{if(!c){y([]),j("idle");return}const re=c.sessionId;j("loading"),w(null);try{const le=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}/models`,{credentials:"include"}),de=await le.json().catch(()=>null);if(f.sessionRef.current?.sessionId!==re)return;if(!le.ok||!de){j("error"),w(de?.error?.message??`模型列表读取失败(HTTP ${le.status})`);return}y(de.models??[]),q(de.thinkingLevels??[]),j("ready")}catch(le){if(f.sessionRef.current?.sessionId!==re)return;j("error"),w(le instanceof Error?le.message:String(le))}},[r,c,f]);p.useEffect(()=>{S()},[S]),p.useEffect(()=>{if(!c){se(null),A(null);return}const re=c.sessionId,le=`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(re)}`;A(null),fetch(`${le}/runtime-context`,{credentials:"include"}).then(async de=>{const ue=await de.json().catch(()=>null);if(!ue?.context||f.sessionRef.current?.sessionId!==re)return;const Ae=ue.context,De=Tg().snapshot;se(Ye=>xg(Ye,Ae,De,re))}).catch(()=>{f.sessionRef.current?.sessionId===re&&A("注入上下文读取失败,请重试")})},[r,c?.sessionId,f]),p.useEffect(()=>{if(!X||!c||X.sessionId!==c.sessionId)return;const re=Vm(X);u(le=>{if(!le||le.sessionId!==X.sessionId||Ny(le,re))return le;const de=dh(le,re);return f.sessionRef.current=de,de}),se(le=>{if(!le)return le;const de={...le,...re.model?{model:re.model}:{},...re.thinkingLevel?{thinkingLevel:re.thinkingLevel}:{}};return de.model?.provider===le.model?.provider&&de.model?.modelId===le.model?.modelId&&de.thinkingLevel===le.thinkingLevel?le:de})},[X,c?.sessionId,f,u,se]);const z=p.useCallback(async re=>{if(!c)return!1;const le=c.sessionId,de=++Py;W.current=de,Cg({type:"mutation-start",token:de}),Z(!0);try{const ue=await fetch(`${r}/api/operator/v1/chat/sessions/${encodeURIComponent(c.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":_t()},body:JSON.stringify(re)}),Ae=await ue.json().catch(()=>({}));return W.current!==de?!1:ue.ok?!Ae.session||f.sessionRef.current?.sessionId!==le?!1:Ng(de,le,Ae.snapshot):(f.sessionRef.current?.sessionId===le&&(m(Ae.error?.message??`模型或思考等级切换失败(HTTP ${ue.status})`),rs()),!1)}catch(ue){return W.current!==de||f.sessionRef.current?.sessionId===le&&m(ue instanceof Error?ue.message:String(ue)),!1}finally{Rg(de,le,f)&&W.current===de&&Z(!1)}},[r,c,f,u,m]);p.useEffect(()=>{if(!L)return;const re=de=>{const ue=P.current;ue&&de.target instanceof Node&&!ue.contains(de.target)&&E(!1)},le=de=>{de.key==="Escape"&&E(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",le),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",le)}},[L]),p.useEffect(()=>{if(!Y)return;const re=de=>{const ue=K.current;ue&&de.target instanceof Node&&!ue.contains(de.target)&&F(!1)},le=de=>{de.key==="Escape"&&F(!1)};return document.addEventListener("mousedown",re),document.addEventListener("keydown",le),()=>{document.removeEventListener("mousedown",re),document.removeEventListener("keydown",le)}},[Y]);const _=p.useMemo(()=>Wy(h),[h]),ie=X?(X.models??[]).map(re=>({provider:re.provider,id:re.id,...re.name?{name:re.name}:{},...re.hasCredentials!==void 0?{hasCredentials:re.hasCredentials}:{}})):x,ee=X?.thinkingLevels?.length?X.thinkingLevels.map(re=>re.value):I,b=c?.model??ae?.model,k=b?ki(b.provider,b.modelId):"",V=X?.selection?.thinkingSelection??c?.thinkingLevel??"",$=X?.selection?.effectiveThinkingLevel??c?.thinkingLevel??void 0,me=!k||ie.some(re=>ki(re.provider,re.id)===k);return{capabilities:h,models:ie,modelsStatus:R,modelsError:M,onRetryModels:()=>{S()},thinkingLevels:ee,runtimeContext:ae,runtimeContextError:T,onRetryRuntimeContext:()=>{A(null),rs()},toolsOpen:L,setToolsOpen:E,runtimeContextOpen:Y,setRuntimeContextOpen:F,toolsMenuRef:P,runtimeContextMenuRef:K,switchRuntime:z,switching:O,toolCatalog:_,activeModel:b,activeModelRef:k,activeThinkingLevel:V,effectiveThinkingLevel:$,activeModelListed:me}}const Lm={comfortableMin:1450,compactMin:1100};function tb(i){return!Number.isFinite(i)||i<0?"narrow":i>=Lm.comfortableMin?"comfortable":i>=Lm.compactMin?"compact":"narrow"}function nb(i){return i==="compact"||i==="narrow"}const ab={mode:"comfortable",width:1600,landingDensity:"comfortable",emptyHeight:720};function sb(i,r){const[c,u]=p.useState(ab);return p.useEffect(()=>{const f=i.current;if(!f||typeof ResizeObserver>"u")return;const m=()=>{const R=f.getBoundingClientRect().width,j=r?.current??null,M=j?j.getBoundingClientRect().height:720;u({mode:tb(R),width:R,landingDensity:Qg(M),emptyHeight:M})};m();const h=new ResizeObserver(()=>m());h.observe(f);let g=null;const x=()=>{const R=r?.current??null;R&&R!==g&&(g&&h.unobserve(g),h.observe(R),g=R,m())};x();const y=window.setInterval(x,250);return()=>{window.clearInterval(y),h.disconnect()}},[i,r]),c}function lb(i="none"){return{active:i}}function va(i,r){return{active:r}}function Rn(i={active:"none"}){return{active:"none"}}function ib(i){return{sidebarDrawerOpen:i.active==="sidebar-drawer",processOpen:i.active==="process",runtimeContextOpen:i.active==="runtime-context",toolsOpen:i.active==="tools"}}function rb(i){const{origin:r,surface:c="standalone"}=i,u=c==="workspace",f=Dy(),[m,h]=p.useState(null),[g,x]=p.useState(null),[y,R]=p.useState(!0),[j,M]=p.useState(!0),[w,I]=p.useState(()=>lb()),[q,ae]=p.useState(null),[se,T]=p.useState(0),A=p.useRef(null),O=p.useRef(null),Z=p.useRef(null),L=p.useRef(null),E=p.useRef(null),Y=p.useRef(null),F=p.useRef(null),P=sb(L,E),K=P.mode,W=ib(w),oe=W.processOpen,X=nb(K)&&oe,ce=p.useCallback(ne=>{I(ve=>{const Lt=ve.active==="process";return(typeof ne=="function"?ne(Lt):ne)?va(ve,"process"):ve.active==="process"?Rn(ve):ve})},[]),S=Jy({origin:r,sessionId:g?.sessionId,refs:f,setError:h}),z=Zy({origin:r,refs:f,sessionId:g?.sessionId,setError:h}),_=p.useRef(()=>{}),ie=p.useCallback(ne=>{_.current(ne)},[]),ee=By({origin:r,refs:f,sessionId:g?.sessionId,setError:h,setProcessOpen:ce,onReconcile:ie});_.current=ne=>{const ve=f.sessionRef.current?.sessionId;ve&&(async()=>await ee.recoverSession(ve)?(ae({id:Date.now(),message:"已自动恢复:会话事件已重新同步,可继续对话。"}),T(Ut=>Ut+1)):ae({id:Date.now(),message:"自动恢复未完成,将在重连时重试。"}))()};const b=Yy({origin:r,refs:f,setSession:x,thread:ee,composer:{setInput:S.setInput,setPendingImages:S.setPendingImages},browser:{setPreviews:z.setPreviews,setActivePreviewPath:z.setActivePreviewPath},setError:h,setProcessOpen:ce,setAutoScroll:M}),k=Qy({origin:r,refs:f,session:g,thread:ee,composer:{setInput:S.setInput,setPendingImages:S.setPendingImages},setError:h,setAutoScroll:M,recoveryVersion:se,watchSessionTitle:b.watchSessionTitle}),V=Vy({origin:r,refs:f,thread:ee,setError:h}),$=eb({origin:r,session:g,setSession:x,refs:f,setError:h});p.useEffect(()=>{$.toolsOpen&&w.active!=="tools"?I(ne=>va(ne,"tools")):!$.toolsOpen&&w.active==="tools"&&I(ne=>Rn(ne))},[$.toolsOpen,w.active]),p.useEffect(()=>{$.runtimeContextOpen&&w.active!=="runtime-context"?I(ne=>va(ne,"runtime-context")):!$.runtimeContextOpen&&w.active==="runtime-context"&&I(ne=>Rn(ne))},[$.runtimeContextOpen,w.active]),p.useEffect(()=>{w.active!=="tools"&&$.toolsOpen&&$.setToolsOpen(!1),w.active!=="runtime-context"&&$.runtimeContextOpen&&$.setRuntimeContextOpen(!1)},[w.active]);const{sendPrompt:me,handleStop:re}=k,le=p.useCallback(async ne=>{await me(ne,S.pendingImages)},[me,S.pendingImages]),de=p.useCallback(()=>{S.textareaRef.current?.focus()},[S.textareaRef]),ue=p.useCallback(()=>{I(ne=>ne.active==="sidebar-drawer"?Rn(ne):ne)},[]),Ae=p.useCallback(()=>{$.setToolsOpen(!1),$.setRuntimeContextOpen(!1),I(ne=>va(ne,"sidebar-drawer"))},[$.setToolsOpen,$.setRuntimeContextOpen]),De=p.useCallback(ne=>{b.activateSession(ne),ue(),queueMicrotask(()=>{O.current?.focus?.(),de()})},[b,ue,de]),Ye=p.useCallback(ne=>{S.setInput(ve=>`${ve}${ve&&!ve.endsWith(" ")?" ":""}@${ne} `),ue(),queueMicrotask(()=>de())},[S,ue,de]),mt=p.useCallback(ne=>{z.openPreview(ne),ue()},[z,ue]),be=p.useCallback(()=>{const ne=O.current;if(!ne)return;const ve=ne.scrollHeight-ne.scrollTop-ne.clientHeight<80;M(ve)},[]);p.useEffect(()=>{j&&A.current?.scrollIntoView({behavior:"smooth",block:"end"})},[ee.messages,j,ee.streaming]),p.useEffect(()=>{if(!q)return;const ne=window.setTimeout(()=>ae(null),6e3);return()=>window.clearTimeout(ne)},[q]);const Re=p.useCallback(ne=>{const ve=Xg(ne);S.setInput(""),S.setShortcutOpen(!1),ve&&(ve.action==="focus:interview"?V.startInterview():ve.action==="show-help"?h(`可用 shortcuts:${oo.map(Lt=>Lt.command).join("、")}`):ve.action.startsWith("focus-panel:")?Z.current?.scrollIntoView({behavior:"smooth",block:"nearest"}):h(`未知 shortcut:${ve.command}`))},[S.setInput,S.setShortcutOpen,V.startInterview]),ze=p.useCallback(ne=>{if(S.shortcutOpen&&S.filteredShortcuts.length>0&&!ne.nativeEvent.isComposing){if(ne.key==="ArrowDown"||ne.key==="ArrowUp"){ne.preventDefault(),S.setShortcutIndex(Ut=>(Ut+(ne.key==="ArrowDown"?1:S.filteredShortcuts.length-1))%S.filteredShortcuts.length);return}if(ne.key==="Escape"){ne.preventDefault(),S.setShortcutOpen(!1);return}if(ne.key==="Enter"){ne.preventDefault(),Re(S.filteredShortcuts[S.shortcutIndex]?.command??S.filteredShortcuts[0].command);return}}const ve=Date.now()-f.compositionEndedAtRef.current<100,Lt=f.isComposingRef.current||ne.nativeEvent.isComposing;if(ne.key==="Enter"&&!ne.shiftKey&&(Lt||ve)){ve&&ne.preventDefault();return}if(ne.key==="Enter"&&!ne.shiftKey){ne.preventDefault(),le(S.input);return}},[S.input,S.shortcutOpen,S.filteredShortcuts,S.shortcutIndex,S.setShortcutIndex,S.setShortcutOpen,f,le,Re]),qe=ee.visibleMessages.length>0||ee.operationCards.length>0||ee.humanGateCards.length>0||ee.artifactCards.length>0||!!ee.interview,It=i.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":i.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,zt=K==="compact"||K==="narrow",vt=s.jsx($g,{origin:r,open:y,layoutMode:K,drawerOpen:W.sidebarDrawerOpen,activeSessionId:g?.sessionId,sessions:b.sessionList,tree:z.tree,expanded:z.expandedDirs,treeError:z.treeError,onToggleOpen:()=>R(ne=>!ne),onOpenDrawer:Ae,onCloseDrawer:ue,onCreate:()=>{b.createSession()},creatingSession:b.creatingSession,onActivate:ne=>{W.sidebarDrawerOpen?De(ne):b.activateSession(ne)},onRename:(ne,ve)=>{b.updateSession(ne,{title:ve})},onSetState:(ne,ve)=>{b.updateSession(ne,{state:ve})},onDelete:ne=>{b.deleteSession(ne)},onRefreshTree:()=>{z.loadTree()},onToggleDir:z.toggleDir,onInsert:ne=>{W.sidebarDrawerOpen?Ye(ne):S.setInput(ve=>`${ve}${ve&&!ve.endsWith(" ")?" ":""}@${ne} `)},onPreview:ne=>{W.sidebarDrawerOpen?mt(ne):z.openPreview(ne)},drawerTriggerRef:Y}),en=["oc-workspace",oe&&!X?"has-process":"",X?"has-process-overlay":""].filter(Boolean).join(" "),ya=ne=>s.jsx("div",{className:"oc-messages is-empty",ref:E,"data-landing-density":P.landingDensity,children:s.jsx(nh,{mode:ne,readiness:i.readiness,density:P.landingDensity,onSuggest:async ve=>{b.creatingSession||(ne==="no-session"?await b.createSession()&&await le(ve):await le(ve))},disabled:b.creatingSession,onCreateSession:ne==="no-session"?()=>{b.createSession()}:void 0})});return s.jsxs("div",{className:"oc-shell",children:[u?null:s.jsxs("div",{className:"oc-banner",children:[s.jsxs("span",{className:"oc-banner-title",children:[s.jsx("span",{className:"oc-banner-dot","aria-hidden":"true"}),"对话"]}),s.jsxs("span",{className:"oc-banner-body",children:["用自然语言编排 loop-agent / agent-worker 的",s.jsx("strong",{children:"全部能力"}),"。这是 ",s.jsx("strong",{children:"Operator"})," 面:默认具备完整 Pi 工具(read/write/edit/bash/grep/find/ls)与 safe-* 探查、以及受策略约束的 operator action(ADR 0011)。",s.jsx("strong",{children:"软约束"}),":大改与高风险变更优先走受治 DAG 的 implement-pi / repair-pi 与 Human Gate,而非把 Chat 当作第二套 DAG kernel。"]})]}),It&&s.jsx("div",{className:"oc-alert oc-alert-warning",children:It}),m&&s.jsxs("div",{className:"oc-alert oc-alert-error",children:[s.jsx("strong",{children:"出错了:"}),m]}),q&&s.jsx("div",{className:"oc-alert oc-alert-warning",role:"status",children:q.message}),g?s.jsxs("div",{className:en,ref:L,"data-layout-mode":K,children:[vt,s.jsxs("div",{className:`oc-main${qe?"":" is-landing"}`,children:[K==="narrow"?s.jsx("div",{className:"oc-main-topbar",children:s.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:Y,"aria-label":"打开会话与仓库","aria-expanded":W.sidebarDrawerOpen,onClick:()=>W.sidebarDrawerOpen?ue():Ae(),children:"会话与仓库"})}):null,s.jsx(Kg,{previews:z.previews,activePath:z.activePreviewPath,loading:z.previewLoading,onActivate:z.setActivePreviewPath,onClose:z.closePreview}),qe?s.jsx(by,{scrollContainerRef:O,messagesEndRef:A,onScroll:be,hasThread:qe,readiness:i.readiness,streaming:ee.streaming,streamingAssistantId:ee.streamingAssistantId,messagesCount:ee.messages.length,visibleCount:ee.visibleMessages.length,onLoadMore:()=>ee.setHistoryLimit(ne=>ne+50),turnGroups:ee.turnGroups,interview:ee.interview,interviewAnswer:V.interviewAnswer,onInterviewAnswerChange:V.setInterviewAnswer,onAnswerInterview:ne=>{V.answerInterview(ne)},onConfirmTaskKind:()=>{V.confirmTaskKind()},humanGateCards:ee.humanGateCards,operationCards:ee.operationCards,artifactCards:ee.artifactCards,origin:r,sessionId:g.sessionId,onNavigateWorkspace:i.onNavigateWorkspace,onSuggest:ne=>{le(ne)}}):ya("empty-session"),s.jsx(ky,{composer:S,streaming:ee.streaming,hasThread:qe,compactControls:zt,onSend:ne=>{le(ne)},onStop:re,onKeyDown:ze,onRunShortcut:Re,models:$.models,activeModel:$.activeModel,activeModelRef:$.activeModelRef,activeModelListed:$.activeModelListed,activeThinkingLevel:$.activeThinkingLevel,thinkingLevels:$.thinkingLevels,onSwitchRuntime:ne=>{$.switchRuntime(ne)},usage:ee.usage,unread:ee.unread,onCompact:()=>{b.compactSession()},toolCatalog:$.toolCatalog,toolsOpen:$.toolsOpen,onToggleTools:()=>{$.toolsOpen?($.setToolsOpen(!1),I(ne=>Rn(ne))):($.setToolsOpen(!0),$.setRuntimeContextOpen(!1),I(ne=>va(ne,"tools")))},onCloseTools:()=>{$.setToolsOpen(!1),I(ne=>ne.active==="tools"?Rn(ne):ne)},toolsMenuRef:$.toolsMenuRef,processSummary:ee.processSummary,processOpen:oe,onToggleProcess:()=>{I(ne=>ne.active==="process"?Rn(ne):va(ne,"process")),oe||($.setToolsOpen(!1),$.setRuntimeContextOpen(!1))},processTriggerRef:F,runtimeContext:$.runtimeContext,runtimeContextOpen:$.runtimeContextOpen,onToggleRuntimeContext:()=>{$.runtimeContextOpen?($.setRuntimeContextOpen(!1),I(ne=>Rn(ne))):($.setRuntimeContextOpen(!0),$.setToolsOpen(!1),I(ne=>va(ne,"runtime-context")))},onCloseRuntimeContext:()=>{$.setRuntimeContextOpen(!1),I(ne=>ne.active==="runtime-context"?Rn(ne):ne)},runtimeContextMenuRef:$.runtimeContextMenuRef})]}),oe&&s.jsxs(s.Fragment,{children:[X?s.jsx("button",{type:"button",className:"oc-overlay-backdrop is-process","aria-label":"关闭执行过程遮罩",onClick:()=>ce(!1)}):null,s.jsx(Ay,{toolCalls:ee.toolCalls,overlay:X,onClose:()=>ce(!1),triggerRef:F})]})]}):s.jsxs("div",{className:en,ref:L,"data-layout-mode":K,children:[vt,s.jsxs("div",{className:"oc-main is-landing",children:[K==="narrow"?s.jsx("div",{className:"oc-main-topbar",children:s.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:Y,"aria-label":"打开会话与仓库","aria-expanded":W.sidebarDrawerOpen,onClick:()=>W.sidebarDrawerOpen?ue():Ae(),children:"会话与仓库"})}):null,ya("no-session")]})]})]})}function cb(i){return i==="validate"||i==="apply"||i==="spine"?"contract":i}const fh="X-Loop-Console-Confirmation",mh="agent-worker console doctor --repo .",lo=[{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)"}],hh={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},ob={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},ph={low:"低",medium:"中",high:"高"},vh={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账"},ub={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function Ci(i){return ub[i]??i}function gh(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Ai(i){return`${i}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function uo(i,r={},c){const u={"Content-Type":"application/json",[fh]:gh()},f=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:u,body:JSON.stringify({action:i,actionParams:r,...c?{clientRequestId:c}:{}})});let m={};try{m=await f.json()}catch{m={ok:!1,error:{code:"INVALID_INPUT",message:"操作响应不是合法 JSON"}}}return{status:f.status,body:m}}const db=new Set(["runDag","dagRerun","standaloneTaskRerun"]);function ao(i){const r=(i.blockedReasons??[]).map(String),c=(i.blockingNodes??[]).map(f=>[f.nodeId,f.reasonCode].filter(Boolean).join(":")),u=[...r,...c].filter(Boolean);return u.length===0?"从节点重跑不具备安全资格(子图含 writer / unsafe shell / decision-gate 等)。可改用「完整重跑任务」,或另选只读安全子图的起始节点。":`从节点重跑不具备安全资格:${u.slice(0,6).join("; ")}${u.length>6?"…":""}。可改用「完整重跑任务」。`}async function Um(i,r=9e4){const c=Date.now();for(;Date.now()-c<r;){const u=await fetch(`/api/operator/v1/operations/${encodeURIComponent(i)}`,{credentials:"same-origin"});if(!u.ok)return null;const f=await u.json(),m=f.operation??f,h=m.state??"";if(h==="succeeded"||h==="failed"||h==="needs-reconcile"||h==="timed-out")return m;await new Promise(g=>setTimeout(g,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const fb={};function mb(){const[i,r]=p.useState(()=>ih({env:fb?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[c,u]=p.useState(null),[f,m]=p.useState("setup-required"),[h,g]=p.useState(null),[x,y]=p.useState(null),[R,j]=p.useState(!1),[M,w]=p.useState(!1),[I,q]=p.useState(null),[ae,se]=p.useState(null),[T,A]=p.useState(null),[O,Z]=p.useState(null),[L,E]=p.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[Y,F]=p.useState("setup"),P=p.useCallback(ce=>{F(S=>cb(typeof ce=="function"?ce(S):ce))},[]),K=f==="setup-required",W=f==="degraded",oe=p.useCallback(ce=>{ce!==i&&(q(null),A(null),se(null)),r(ce)},[i]),X=p.useCallback(async()=>{try{const S=await(await fetch("/api/health")).json();u(S);const z=S.piReadiness??"setup-required";m(z),y(null),P(z==="ready"||z==="degraded"?_=>_==="setup"?"import-prd":_:"setup")}catch(ce){y(ce instanceof Error?ce.message:String(ce))}try{const S=await(await fetch("/api/operator/v1/readiness")).json();g(S),S.state&&m(S.state)}catch{}},[P]);return{nav:i,setNav:r,selectNav:oe,health:c,readiness:f,setReadiness:m,readinessReport:h,healthError:x,loadHealth:X,busy:R,setBusy:j,observeBusy:M,setObserveBusy:w,opError:I,setOpError:q,opMessage:ae,setOpMessage:se,opErrorCode:T,setOpErrorCode:A,lastOpState:O,setLastOpState:Z,layers:L,setLayers:E,step:Y,setStep:P,setupBlocked:K,degraded:W}}function hb(i){const{shell:r,applyInterviewPayload:c}=i,{setBusy:u,setOpError:f,setOpErrorCode:m,setOpMessage:h,setReadiness:g,setStep:x,setNav:y,setLastOpState:R,setLayers:j,step:M,nav:w}=r,[I,q]=p.useState(null),[ae,se]=p.useState([]),[T,A]=p.useState(!0),O=p.useRef(null),[Z,L]=p.useState(null),[E,Y]=p.useState(null),F=p.useCallback(async(X,ce={},S)=>{u(!0),f(null),m(null),h(null);try{const{status:z,body:_}=await uo(X,ce,S?.clientRequestId);if(z===412||_.error?.code==="PI_SETUP_REQUIRED")return f(ss(_.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),m(_.error?.code??"PI_SETUP_REQUIRED"),g("setup-required"),x("setup"),y("models"),_;if(z>=400||_.ok===!1)return f(ss(_.error?.message??_.message??`操作失败(HTTP ${z})`)),m(_.error?.code??String(z)),R(_.state??`failed:${z}`),j(b=>({...b,command:_.error?.message??`failed:${_.error?.code??z}`})),_;if(_.operationId){const b=window.localStorage.getItem(Pt)?.trim();if(b&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(b)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[fh]:gh()},body:JSON.stringify({operationId:_.operationId})}).then(k=>{k.ok||console.warn("Operator Chat operation link failed",k.status)}).catch(k=>console.warn("Operator Chat operation link failed",k)),q(_.operationId),R(_.state??"accepted"),j(k=>({...k,command:_.state??"accepted",dag:X==="runDag"?"running":k.dag})),db.has(X)){A(!0),h(`操作已接受,后台运行中:${_.operationId}(请看事件流;可同时打开 Observe)`);const k=_.operationId;Um(k,30*6e4).then(V=>{if(V){if(R(V.state??null),V.state==="failed"||V.state==="needs-reconcile"||V.state==="timed-out"){f(ss(V.errorMessage??V.stderrPreview??`操作失败:${V.state}`)),m(V.errorCode??V.state??null),j($=>({...$,command:`failed:${V.errorCode??V.state}`}));return}V.state==="succeeded"&&(h(`${X} 已成功`),j($=>({...$,command:"succeeded"})))}})}else{h(`操作已接受:${_.operationId}`);const k=await Um(_.operationId);if(k){if(R(k.state??null),k.state==="failed"||k.state==="needs-reconcile"||k.state==="timed-out")return f(ss(k.errorMessage??k.stderrPreview??`操作失败:${k.state}`)),m(k.errorCode??k.state??null),j(re=>({...re,command:`failed:${k.errorCode??k.state}`})),{ok:!1,operationId:_.operationId,state:k.state,error:{code:k.errorCode??k.state??"INTERNAL_ERROR",message:k.errorMessage??k.stderrPreview??`操作失败:${k.state}`}};h(k.errorMessage?`${X}:${k.errorMessage}`:`${X} 已成功`),j(re=>({...re,command:k.state??"succeeded"}));const V=k.result??{},$={ok:!0,operationId:_.operationId,state:k.state??"succeeded",result:V};(X==="interviewStart"||X==="interviewTurn"||X==="interviewSkip")&&c(V);const me=V.confirmation;return me?.confirmationId&&(L(me.confirmationId),Y(V)),S?.advanceTo&&x(S.advanceTo),$}}}else h(`${X} 已完成`),R(_.state??"succeeded"),j(b=>({...b,command:"succeeded",verification:X==="contractValidate"||X==="spineCheck"?"ran":b.verification}));const ie=_.result??{};(X==="interviewStart"||X==="interviewTurn"||X==="interviewSkip")&&c(ie);const ee=ie.confirmation;return ee?.confirmationId&&(L(ee.confirmationId),Y(ie)),S?.advanceTo&&x(S.advanceTo),_}catch(z){f(z instanceof Error?z.message:String(z));return}finally{u(!1)}},[c,u,f,m,h,g,x,y,R,j]),P=p.useCallback(X=>{if(!X)return"无响应";if(X.error?.message)return X.error.message;if(X.message)return X.message;const ce=X.result;if(ce&&typeof ce=="object")try{return JSON.stringify(ce).slice(0,1200)}catch{return"已返回结果"}return X.ok===!1?"失败":"成功"},[]),K=p.useCallback(X=>{if(!X||X.ok===!1||X.error)return!1;const ce=X.result;if(!ce)return!0;if(typeof ce.valid=="boolean")return ce.valid;const S=ce.result;return S&&typeof S.valid=="boolean"?S.valid:!0},[]),W=p.useCallback(async X=>{O.current?.abort();const ce=new AbortController;O.current=ce,se(S=>[...S,`开始跟随事件流 ${X}`]);try{const S=await fetch(`/api/operator/v1/operations/${encodeURIComponent(X)}/events`,{credentials:"same-origin",signal:ce.signal});if(!S.ok||!S.body){se(ee=>[...ee,`事件流 HTTP ${S.status}`]);return}const z=S.body.getReader(),_=new TextDecoder;let ie="";for(;T;){const{done:ee,value:b}=await z.read();if(ee)break;ie+=_.decode(b,{stream:!0});const k=ie.split(`
23
+
24
+ `);ie=k.pop()??"";for(const V of k){const $=V.split(`
25
+ `).find(re=>re.startsWith("data:"));if(!$)continue;const me=$.slice(5).trim();se(re=>[...re.slice(-80),me.slice(0,240)])}}}catch(S){S.name!=="AbortError"&&se(z=>[...z,`事件流错误:${S instanceof Error?S.message:String(S)}`])}},[T]);p.useEffect(()=>(I&&T&&(M==="run"||w==="recovery")&&W(I),()=>O.current?.abort()),[I,T,M,w,W]);const oe=p.useCallback(()=>{A(!1),O.current?.abort(),h("已停止跟随日志(未取消子进程)")},[h]);return{runAction:F,summarizeEnvelope:P,isActionSuccess:K,operationId:I,setOperationId:q,sseLog:ae,followSse:T,setFollowSse:A,stopFollowSse:oe,confirmationId:Z,setConfirmationId:L,confirmationDetails:E,setConfirmationDetails:Y}}const io=8*1024*1024,pb=10*1024*1024,Di=8,vb=".md,.markdown,.txt,text/markdown,text/plain",gb=[".md",".markdown",".txt"],fo=/\.[^.]+$/;function yb(i){const r=fo.exec(i.trim());return r?r[0].toLowerCase():""}function bb(i){const r=yb(i);return gb.includes(r)}function ro(i){if(!Number.isFinite(i)||i<0)return"0 B";if(i<1024)return`${i} B`;if(i<1024*1024){const c=i/1024;return`${c>=10?c.toFixed(0):c.toFixed(1)} KiB`}const r=i/(1024*1024);return`${r>=10?r.toFixed(1):r.toFixed(2)} MiB`}function Cn(i,r){return{ok:!1,code:i,message:r}}function xb(i,r){const c=i?Array.from(i):[],u=r?.maxFiles??Di,f=r?.existingCount??0;return c.length===0?Cn("file-count","请选择至少一个 .md / .markdown / .txt 文件"):f+c.length>u?Cn("file-count",`最多支持 ${u} 个文件(当前已有 ${f} 个)`):null}async function Sb(i){const r=i.name?.trim()||"untitled.md";if(!bb(r))return Cn("unsupported-extension","仅支持 .md、.markdown、.txt 文件");if(i.size>io)return Cn("file-too-large",`文件不能超过 ${ro(io)}`);let c;try{c=await i.arrayBuffer()}catch{return Cn("read-failed","文件读取失败,请重试或直接粘贴")}let u;try{u=new TextDecoder("utf-8",{fatal:!0}).decode(c)}catch{return Cn("invalid-utf8","文件不是有效 UTF-8,请另存为 UTF-8")}if(u.trim().length===0)return Cn("empty-content","文件内容不能为空或只有空白");const f=new TextEncoder().encode(u).byteLength;return{ok:!0,text:u,fileName:r,sourceBytes:i.size,textBytes:f}}async function jb(i){if(i.length===0)return Cn("file-count","请选择至少一个 .md / .markdown / .txt 文件");if(i.length>Di)return Cn("file-count",`最多支持 ${Di} 个文件`);const r=[];for(const c of i){const u=await Sb(c);if(!u.ok)return u;r.push({fileName:u.fileName,text:u.text,sourceBytes:u.sourceBytes,textBytes:u.textBytes})}return{ok:!0,documents:r}}function Nb(i,r){const c=i.split(/\r?\n/);for(const f of c){const m=/^(#{1,6})\s+(.+)$/.exec(f.trim());if(m?.[2])return m[2].trim()}for(const f of c){const m=f.trim();if(m&&!/^---+$/.test(m)&&!/^```/.test(m)&&!/^<!--/.test(m))return m.replace(/^>\s+/,"").slice(0,120)}return r.replace(fo,"").trim()||"需求"}function Rb(i){return i.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"requirement"}function Cb(i,r){const c=i.replace(fo,"").trim(),u=Rb(c);return u==="requirement"&&/[^\u0000-\u007f]/.test(c)?`part-${r+1}`:u==="requirement"?c?`part-${r+1}`:`part-${r+1}`:u}function Tb(i){const r=new Set;return i.map((c,u)=>{let f=Cb(c.fileName,u);if(r.has(f)){let m=2;for(;r.has(`${f}-${m}`);)m+=1;f=`${f}-${m}`}return r.add(f),{name:f,content:c.text,fileName:c.fileName}})}function Eb(i,r){if(i.length===0)return"";if(i.length===1)return i[0].text;const c=Math.min(Math.max(0,r?.primaryIndex??0),i.length-1),u=i[c],f=Nb(u.text,u.fileName),h=[`<!-- composed-from: ${i.map(g=>g.fileName).join(", ")} -->`,"",`# ${f}`,""];for(const g of i)h.push(`## 来源:${g.fileName}`,"",g.text.trim(),"");return`${h.join(`
26
+ `).trimEnd()}
27
+ `}function wb(i,r,c){const u={action:i,actionParams:r};return new TextEncoder().encode(JSON.stringify(u)).byteLength<=pb}function kb(){return"最终内容导致请求体超过服务端限制,请缩小文档或减少文件数量"}function Ab(){const[i,r]=p.useState(`# 需求
28
+
29
+ 实现 Loop Operator Console Happy Path:Interview → 契约落地 → DAG confirm → run。
30
+ `),[c,u]=p.useState([]),[f,m]=p.useState(0),[h,g]=p.useState(!1),[x,y]=p.useState(null),[R,j]=p.useState(!1),[M,w]=p.useState(!1),I=p.useRef(0),q=p.useRef(0),ae=p.useCallback((K,W)=>{const oe=K.length===0?0:Math.min(Math.max(0,W),K.length-1);m(oe),r(Eb(K,{primaryIndex:oe})),g(!1)},[]),se=p.useCallback(async K=>{const W=xb(K,{existingCount:c.length});if(W){y(W.message);return}const oe=Array.from(K),X=++q.current;j(!0),y(null);try{const ce=await jb(oe);if(X!==q.current)return;if(!ce.ok){y(ce.message);return}const S=[...c,...ce.documents],z=c.length===0?0:f;u(S),c.length===0||!h?(ae(S,z),y(null)):y("已追加文件,未改正文(正文已手动编辑);可点「按文件重新合成」覆盖。")}catch{if(X!==q.current)return;y("文件读取失败,请重试或直接粘贴")}finally{X===q.current&&j(!1)}},[ae,h,c,f]),T=p.useCallback(K=>{r(K),c.length>0&&g(!0)},[c.length]),A=p.useCallback(K=>{m(K),h||ae(c,K)},[ae,h,c]),O=p.useCallback((K,W)=>{const oe=K+W,X=[...c],ce=X[oe];X[oe]=X[K],X[K]=ce;const S=f===K?oe:f===oe?K:f;u(X),m(S),h||ae(X,S)},[ae,h,c,f]),Z=p.useCallback(K=>{const W=c.filter((X,ce)=>ce!==K),oe=W.length===0?0:Math.min(f>=K?Math.max(0,f-1):f,Math.max(0,W.length-1));u(W),m(oe),W.length===0?g(!1):h||ae(W,oe)},[ae,h,c,f]),L=p.useCallback(()=>{u([]),m(0),g(!1),y(null)},[]),E=p.useCallback(()=>{h&&!window.confirm("将用当前文件列表重新合成正文,覆盖你在编辑区的修改。继续?")||(ae(c,f),y(null))},[ae,h,c,f]),Y=p.useCallback((K,W)=>{K.preventDefault(),K.stopPropagation(),!W&&(I.current+=1,w(!0))},[]),F=p.useCallback(K=>{K.preventDefault(),K.stopPropagation(),I.current=Math.max(0,I.current-1),I.current===0&&w(!1)},[]),P=p.useCallback((K,W)=>{K.preventDefault(),K.stopPropagation(),I.current=0,w(!1),!W&&se(K.dataTransfer.files)},[se]);return{prdText:i,setPrdText:r,onPrdTextChange:T,prdDocuments:c,prdPrimaryIndex:f,prdComposedDirty:h,prdFileError:x,setPrdFileError:y,prdFileReading:R,prdDragOver:M,loadPrdFromFiles:se,applyPrdComposition:ae,setPrimaryDocument:A,moveDocument:O,removeDocument:Z,clearDocuments:L,recomposeDocuments:E,onDragEnter:Y,onDragLeave:F,onDrop:P}}const Db={report:{id:"report",label:"查看报告",action:"dagReport",lane:"dag",guide:"看失败分类与建议动作(交接报告摘要)",commandHint:"loop-agent dag report --run-id <run-id> --json"},doctor:{id:"doctor",label:"Doctor 诊断",action:"doctor",lane:"dag",guide:"只读诊断:检查 Console / Pi / 仓库就绪,不是重跑前置",commandHint:"agent-worker console doctor --repo ."},decision:{id:"decision",label:"人工决策",lane:"dag",guide:"暂停等人时:先看 doctor 输出再做决策(经 CLI)",commandHint:"loop-agent dag doctor --run-id <run-id> --markdown"},resume:{id:"resume",label:"恢复运行",lane:"dag",guide:"仅当运行可安全 resume 时使用(经 CLI)",commandHint:"loop-agent task advance <task-id> --json"},reconcile:{id:"reconcile",label:"对账 / reconcile",requiresReason:!0,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>"}},Hm={"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 Ob(i){return(Hm[i]??Hm["orphan-unknown"]).map(c=>Db[c])}function Mb(i){const r=[],c=[];for(const u of i)u.lane==="worker"?c.push(u):r.push(u);return{dag:r,worker:c}}function _b(i){return typeof i.action=="string"&&i.action.trim().length>0}function yh(i){return Ob(i).filter(_b)}function Ib(i){const r=new Set(yh(i).map(u=>u.id)),c=(...u)=>{for(const f of u)if(r.has(f))return f;return null};switch(i){case"terminal-failed":case"verification-failed":return c("dagRerun","standaloneTaskRerun","doctor","report");case"pause-on-human":return c("doctor","report");case"needs-reconcile":case"runtime-mismatch":case"contract-drift":return c("doctor","report");case"validation-failed":return c("doctor","report");case"terminal-succeeded":return c("observeLink","report");default:return c("doctor","report")}}function zb(i){if(i.needsReconcile)return"needs-reconcile";const r=(i.errorCode??"").toLowerCase(),c=(i.operationState??"").toLowerCase(),u=(i.dagStatus??"").toLowerCase();return r.includes("validation")||r.includes("invalid")||c.includes("validation")?"validation-failed":r.includes("contract")||r.includes("drift")||r.includes("binding")?"contract-drift":r.includes("runtime")||r.includes("mismatch")||r.includes("fingerprint")?"runtime-mismatch":r.includes("human")||c.includes("paused")||u.includes("paused")||c.includes("awaiting")?"pause-on-human":r.includes("verif")||c.includes("verif")?"verification-failed":c==="succeeded"||c==="completed"||u==="succeeded"||u==="completed"?"terminal-succeeded":c==="failed"||c.includes("fail")||u==="failed"||r.includes("fail")?"terminal-failed":r.includes("reconcil")||c.includes("reconcil")?"needs-reconcile":"orphan-unknown"}const mo=new Set(["failed","error","partial_failed"]),bh=new Set(["blocked","paused","awaiting_human"]);function _i(i){return(i??"").trim().toLowerCase()}function Lb(i){return mo.has(_i(i))}function Bm(i){const r=_i(i.status);return mo.has(r)||r.includes("fail")?0:i.lifecycle==="paused"||r==="paused"?1:i.lifecycle==="active"?2:3}function Ub(i){return[...i].sort((r,c)=>{const u=Bm(r)-Bm(c);return u!==0?u:c.mtimeMs-r.mtimeMs})}function Hb(i){return Ub(i)[0]?.dagRunId}function qm(i){const r=_i(i.status);return mo.has(r)?0:bh.has(r)?1:2}function xh(i){return[...i].sort((r,c)=>{const u=qm(r)-qm(c);return u!==0?u:r.nodeId.localeCompare(c.nodeId)})}function Bb(i){const r=xh(i);return r.find(u=>Lb(u.status)||bh.has(_i(u.status)))?.nodeId??r[0]?.nodeId}function qb(i){const r=i.status?.trim()||i.lifecycle;return`${i.dagRunId.length>36?`${i.dagRunId.slice(0,18)}…${i.dagRunId.slice(-8)}`:i.dagRunId} · ${r}`}function Gb(i){const r=i.status?.trim()||"unknown",c=i.label?.trim();return c&&c!==i.nodeId?`${i.nodeId} · ${r} · ${c}`:`${i.nodeId} · ${r}`}function $b(i){const c=[`operator-recovery: ${i.actionLabel?.trim()||"恢复"}`],u=i.dagRunId?.trim();if(u){const g=i.runStatus?.trim();c.push(g?`run=${u} (${g})`:`run=${u}`)}const f=i.fromNodeId?.trim();if(f){const g=i.nodeStatus?.trim();c.push(g?`from-node=${f} (${g})`:`from-node=${f}`)}const m=i.factClassLabel?.trim();m&&c.push(`fact=${m}`);const h=i.nodeError?.trim()||i.errorMessage?.trim()||(i.errorCode?.trim()?`code=${i.errorCode.trim()}`:"");return h&&c.push(`detail=${h.replace(/\s+/g," ").slice(0,280)}`),c.join(`
31
+ `).slice(0,500)}function Sh(i){const r=i.trim();return r?r==="operator-recovery"||r.startsWith("operator-recovery:")||r.startsWith("recovery:"):!0}function Yb(i){const{shell:r,actions:c,taskId:u,dagRunId:f,fromNodeId:m,featureId:h,recoveryReason:g,recoveryReasonTouched:x,recoveryConfirm:y,recoveryPlanSummary:R,setRecoveryConfirm:j,setRecoveryPlanSummary:M,setRecoveryReport:w,setRecoveryReason:I,setRecoveryReasonTouched:q,buildCurrentRecoveryReason:ae,openFullCanvas:se}=i,{setOpError:T,setOpErrorCode:A,setOpMessage:O,setBusy:Z}=r,{runAction:L,isActionSuccess:E}=c,Y=p.useCallback(async P=>{if(P.requiresReason||(j(null),M(null)),P.action==="doctor"){w(null),L("doctor",{});return}if(P.action==="dagReport"||P.id==="report"){const K=f.trim();if(K){j(null),M(null);const W=await L("dagReport",{runId:K}),oe=W?.result??{},X=(oe.raw?.runs??oe.runs)?.[0];W&&W.ok!==!1&&!W.error&&X&&(w({runId:X.runId??K,title:X.title,status:X.status,category:X.productLineFailureCategory,recommendation:X.recoveryRecommendation?.summary??X.recommendedFollowUp??void 0}),O(null));return}if(u.trim()){w(null),L("status",{taskId:u});return}T("查看报告需要先选择 DAG 运行 ID(或填写任务 ID)");return}if(P.action==="observeLink"){w(null),se();return}if(P.requiresReason){if(w(null),j(P),M(null),P.id!=="dagRerun"&&(T(null),A(null)),(!x||Sh(g))&&(I(ae(P.label)),q(!1)),P.id==="dagRerun"&&f.trim()&&m.trim()){Z(!0);try{const{status:K,body:W}=await uo("dagRerunPlan",{runId:f.trim(),fromNode:m.trim()}),oe=W.result??{};oe&&typeof oe=="object"&&("eligible"in oe||oe.planHash)&&M(oe),K<400&&W.ok!==!1&&oe.eligible!==!1?O(null):oe.eligible===!1?T(W.error?.message??ao(oe)):O(W.error?.message??"无法预检重跑计划;确认后仍将尝试提交(CLI 可能尚未就绪)")}finally{Z(!1)}}return}T(null),A(null),O(`${P.label}:请经 CLI — ${P.commandHint??""}`)},[ae,f,m,se,g,x,L,Z,T,A,O,j,M,w,I,q,u]),F=p.useCallback(async()=>{const P=y;if(!P)return;const K=g.trim();if(!K){T("恢复操作需要结构化原因");return}const W=Ai(`recovery-${P.id}`);if(j(null),P.id==="dagRerun"){const oe=f.trim(),X=m.trim();if(!oe||!X){T("从节点重跑需要 DAG 运行 ID 与起始节点 ID");return}let ce=R?.planHash?.trim(),S=R?.eligible;if(!ce||S===void 0){const z=await L("dagRerunPlan",{runId:oe,fromNode:X}),_=z?.result??{};if((_.planHash||_.eligible!==void 0)&&M(_),ce=_.planHash?.trim()||ce,S=_.eligible,_.eligible===!1){T(z?.error?.message??ao(_));return}if(z&&z.ok===!1&&!ce){T(z.error?.message??"无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}}if(S===!1){T(ao(R??{}));return}if(!ce){T("无法获取 planHash;请确认 loop-agent dag rerun --plan 可用");return}await L("dagRerun",{runId:oe,fromNode:X,planHash:ce,reason:K},{clientRequestId:W});return}if(P.id==="standaloneTaskRerun"){const oe=f.trim();if(!oe){T("完整重跑任务需要 DAG 运行 ID");return}const X={runId:oe,reason:K,...u.trim()?{taskId:u.trim()}:{}},ce=await L("prepareMutationGate",{action:"standaloneTaskRerun",actionParams:X});if(!E(ce))return;const S=ce?.result??ce;if(!S.receiptId||!S.humanGateToken){T("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await L("standaloneTaskRerun",{...X,confirmationId:S.receiptId,humanGateToken:S.humanGateToken},{clientRequestId:W});return}if(P.id==="workerTaskRetry"){const oe=u.trim();if(!oe){T("重新排队 Worker Task 需要任务 ID");return}const X={taskId:oe,reason:K,...h.trim()?{featureId:h.trim()}:{}},ce=await L("prepareMutationGate",{action:"workerTaskRetry",actionParams:X});if(!E(ce))return;const S=ce?.result??ce;if(!S.receiptId||!S.humanGateToken){T("prepareMutationGate 未返回可消费的 Human Gate receipt");return}await L("workerTaskRetry",{...X,confirmationId:S.receiptId,humanGateToken:S.humanGateToken},{clientRequestId:W});return}if(P.id==="reconcile"){if(!f.trim()){T("对账恢复需要 DAG 运行 ID");return}O(`${P.label}:请经 CLI — ${P.commandHint??""}`);return}O(`${P.label}:请经 CLI — ${P.commandHint??""}`)},[f,h,m,y,R?.planHash,g,L,E,T,O,j,M,u]);return{handleRecoveryCta:Y,submitRecoveryConfirm:F}}function Kb(i){const{shell:r,actions:c,wizard:u}=i,{nav:f,opError:m,opErrorCode:h,lastOpState:g,setOpError:x,setObserveBusy:y}=r,{taskId:R}=u,[j,M]=p.useState(""),[w,I]=p.useState(""),[q,ae]=p.useState(""),[se,T]=p.useState(""),[A,O]=p.useState(!1),[Z,L]=p.useState(null),[E,Y]=p.useState(null),[F,P]=p.useState([]),[K,W]=p.useState([]),[oe,X]=p.useState(!1),[ce,S]=p.useState(!1),[z,_]=p.useState(null),[ie,ee]=p.useState(!1),[b,k]=p.useState(!1),[V,$]=p.useState(null),[me,re]=p.useState("idle"),[le,de]=p.useState(null),[ue,Ae]=p.useState(null),[De,Ye]=p.useState(!1),mt=p.useCallback(()=>j.trim()?`/inspect/#/dag/${encodeURIComponent(j.trim())}?from=recovery`:"/inspect/#/",[j]),be=p.useCallback(()=>{window.location.assign(mt())},[mt]),Re=p.useCallback(async()=>{if(j.trim())return j.trim();const Oe=R.trim();if(!Oe)return x("打开 DAG 检视需要任务 ID 或 DAG 运行 ID"),null;y(!0),x(null);try{const{status:at,body:Ke}=await uo("observeLink",{taskId:Oe}),Tt=Ke.result??{};if(at>=400||Ke.ok===!1)return x(Ke.error?.message??"无法解析 DAG 画布地址"),re("unavailable"),de(Ke.error?.message??null),null;const Ht=typeof Tt.dagRunId=="string"?Tt.dagRunId.trim():"";return Ht?(M(Ht),re("match"),de(null),Ae(`/inspect/#/dag/${encodeURIComponent(Ht)}`),Ht):(x("尚未找到该任务的 DAG 运行,请稍后再打开检视"),re("unavailable"),de(Tt.message??"未解析到 DAG run"),null)}catch(at){return x(at instanceof Error?at.message:String(at)),null}finally{y(!1)}},[j,R,x,y]),ze=p.useCallback(async()=>{await Re()&&Ye(!0)},[Re]),qe=p.useCallback(async()=>{const Oe=await Re();Oe&&window.location.assign(`/inspect/#/dag/${encodeURIComponent(Oe)}?from=recovery`)},[Re]),It=p.useCallback(async()=>{X(!0);try{const Oe=R.trim(),at=new URLSearchParams;Oe&&at.set("taskId",Oe),at.set("limit","40");const Ke=await fetch(`/api/operator/v1/recovery/candidates?${at.toString()}`,{credentials:"same-origin"});if(!Ke.ok){P([]);return}const Tt=await Ke.json();P(Array.isArray(Tt.runs)?Tt.runs:[])}catch{P([])}finally{X(!1)}},[R]),zt=p.useCallback(async Oe=>{const at=Oe.trim();if(!at){W([]),_(null);return}S(!0);try{const Ke=await fetch(`/api/dag-runs/${encodeURIComponent(at)}`,{credentials:"same-origin"});if(!Ke.ok){W([]),_(null);return}const Tt=await Ke.json();_(typeof Tt.status=="string"?Tt.status:null);const Ht=Array.isArray(Tt.nodes)?Tt.nodes:[],gt=xh(Ht.map(rt=>{const ht=(rt.nodeId??rt.id??"").trim();return ht?{nodeId:ht,status:rt.status,label:rt.label??rt.name,errorPreview:rt.errorPreview}:null}).filter(rt=>rt!==null));W(gt)}catch{W([]),_(null)}finally{S(!1)}},[]);p.useEffect(()=>{f==="recovery"&&It()},[f,R,It]),p.useEffect(()=>{if(f!=="recovery"||ie||F.length===0)return;const Oe=j.trim(),at=Oe?F.some(Ke=>Ke.dagRunId===Oe):!1;if(!Oe||!at){const Ke=Hb(F);Ke&&Ke!==Oe&&M(Ke)}},[f,F,j,ie]),p.useEffect(()=>{f==="recovery"&&zt(j)},[f,j,zt]),p.useEffect(()=>{if(f!=="recovery"||b||K.length===0)return;const Oe=w.trim(),at=Oe?K.some(Ke=>Ke.nodeId===Oe):!1;if(!Oe||!at){const Ke=Bb(K);Ke&&Ke!==Oe&&I(Ke)}},[f,K,w,b]);const vt=zb({operationState:z?null:g,errorCode:z?null:h,dagStatus:z}),en=p.useMemo(()=>yh(vt),[vt]),ya=p.useMemo(()=>Mb(en),[en]),ne=p.useMemo(()=>Ib(vt),[vt]),ve=p.useMemo(()=>K.find(Oe=>Oe.nodeId===w.trim()),[K,w]),Lt=p.useRef(null);p.useEffect(()=>{E&&Lt.current?.scrollIntoView({behavior:"smooth",block:"nearest"})},[E?.id]);const Ut=p.useCallback(Oe=>$b({actionLabel:Oe,dagRunId:j.trim()||void 0,fromNodeId:w.trim()||void 0,runStatus:z,nodeStatus:ve?.status,nodeError:ve?.errorPreview,factClassLabel:vh[vt],errorMessage:m,errorCode:h}),[j,w,m,h,vt,z,ve?.errorPreview,ve?.status]);p.useEffect(()=>{if(f!=="recovery"||A&&!Sh(se))return;const Oe=Ut(E?.label);Oe&&Oe!==se&&T(Oe)},[f,j,w,z,ve,vt,m,h,E?.label,A,se,Ut]);const{handleRecoveryCta:il,submitRecoveryConfirm:ba}=Yb({shell:r,actions:c,taskId:R,dagRunId:j,fromNodeId:w,featureId:q,recoveryReason:se,recoveryReasonTouched:A,recoveryConfirm:E,recoveryPlanSummary:Z,setRecoveryConfirm:Y,setRecoveryPlanSummary:L,setRecoveryReport:$,setRecoveryReason:T,setRecoveryReasonTouched:O,buildCurrentRecoveryReason:Ut,openFullCanvas:qe});return{dagRunId:j,setDagRunId:M,fromNodeId:w,setFromNodeId:I,featureId:q,setFeatureId:ae,recoveryReason:se,setRecoveryReason:T,recoveryReasonTouched:A,setRecoveryReasonTouched:O,recoveryPlanSummary:Z,recoveryConfirm:E,setRecoveryConfirm:Y,setRecoveryPlanSummary:L,recoveryRuns:F,recoveryNodes:K,recoveryRunsLoading:oe,recoveryNodesLoading:ce,recoveryRunStatus:z,manualRunId:ie,setManualRunId:ee,manualNodeId:b,setManualNodeId:k,recoveryReport:V,setRecoveryReport:$,observeLinkStatus:me,observeLinkMessage:le,observeUrl:ue,inspectSplitOpen:De,setInspectSplitOpen:Ye,inspectPath:mt,openFullInspect:be,resolveDagRunForInspect:Re,openInspectSplit:ze,openFullCanvas:qe,loadRecoveryRuns:It,loadRecoveryNodes:zt,recoveryFact:vt,recoveryCtas:en,recoveryLanes:ya,recommendedCtaId:ne,recoveryConfirmRef:Lt,buildCurrentRecoveryReason:Ut,handleRecoveryCta:il,submitRecoveryConfirm:ba}}function Xb(i){const{shell:r,actions:c,prd:u}=i,{step:f,setStep:m,setOpMessage:h}=r,{runAction:g,isActionSuccess:x,summarizeEnvelope:y}=c,[R,j]=p.useState(""),[M,w]=p.useState(""),[I,q]=p.useState("standard"),ae=lo.find(be=>be.kind===I)??lo[0],[se,T]=p.useState(null),[A,O]=p.useState(null),[Z,L]=p.useState(""),[E,Y]=p.useState(null),[F,P]=p.useState(null),[K,W]=p.useState(null),[oe,X]=p.useState(null),[ce,S]=p.useState(null),[z,_]=p.useState(!1),[ie,ee]=p.useState(null),[b,k]=p.useState(null),V=p.useRef(!1),$=p.useCallback(()=>{W(null),X(null),S(null),_(!1),ee(null),k(null),V.current=!1},[]),me=p.useCallback(()=>{$(),m("contract")},[$,m]),re=p.useCallback(be=>{const Re=be.session;Re?.sessionId&&T(Re.sessionId);const ze=be.question;O(ze),Y(be.summary??null);const qe=be.assessmentId;typeof qe=="string"&&qe&&P(qe),(be.complete===!0||typeof qe=="string"&&qe)&&(me(),h(be.skipped===!0?"已跳过访谈:已按推荐补齐草稿并签发评估":"访谈已完成:草稿已绑定完整评估结果"))},[me,h]),le=p.useCallback(async(be=!1)=>{const Re=R.trim();if(!Re)return;const ze=`${Re}:${F??""}`;if(!(!be&&b===ze&&K!==null)&&!V.current){V.current=!0,W(null),X(null),S(null),ee(null),_(!1);try{const qe=await g("contractValidate",{taskId:Re}),It=x(qe);if(W(It),X(y(qe)),!It){k(ze),h("契约校验未通过:请先修正草稿后再应用");return}const zt=await g("contractDiff",{taskId:Re});S(y(zt)),k(ze),h(x(zt)?"校验与差异已就绪:确认后可应用契约":"校验通过,但差异查询失败(仍可查看下方摘要)")}finally{V.current=!1}}},[F,b,K,x,g,h,y,R]),de=p.useCallback(async()=>{const be=R.trim();if(!be||!F)return;const Re=await g("contractApply",{taskId:be,assessmentId:F},{clientRequestId:Ai("apply")});if(!x(Re)){_(!1);return}_(!0);const ze=await g("spineCheck",{taskId:be});if(x(ze)){ee(!0),m("dag-confirm"),h("契约已应用并通过 Spine 审计,可生成并运行 DAG");return}ee(!1),h("契约已应用,但 Spine 审计未通过:可重试 Spine")},[F,x,g,h,m,R]),ue=p.useCallback(async()=>{const be=R.trim();if(!be)return;const Re=await g("spineCheck",{taskId:be});if(x(Re)){ee(!0),m("dag-confirm"),h("Spine 审计已通过,可生成并运行 DAG");return}ee(!1)},[x,g,h,m,R]),Ae=p.useCallback(async()=>{const be=c.confirmationId?.trim();if(!be)return;const Re=c.confirmationDetails?.confirmation?.humanGateToken,ze=await g("confirmDagConfirmation",{confirmationId:be,humanGateToken:Re});x(ze)&&(m("run"),await g("runDag",{confirmationId:be},{clientRequestId:Ai("run")}))},[c.confirmationId,c.confirmationDetails,x,g,m]);p.useEffect(()=>{f==="contract"&&R.trim()&&le(!1)},[f,R,F,le]);const De=p.useCallback(async()=>{const be=u.prdDocuments.length>0?Tb(u.prdDocuments):void 0,Re={content:u.prdText,taskKind:I,...be?{documents:be}:{}};if(!wb("bootstrapFromPrd",Re)){u.setPrdFileError(kb());return}const ze=await g("bootstrapFromPrd",Re);if(!ze||ze.ok===!1)return;const qe=ze.result??{};qe.taskId&&j(qe.taskId),qe.title&&w(qe.title),h(`已创建任务「${qe.title??""}」(${qe.taskId??""}),来源:${qe.identitySource??"prd"}`),m("interview")},[u,g,h,m,I]),Ye=[{id:"setup",label:"就绪检查"},{id:"import-prd",label:"导入需求"},{id:"interview",label:"需求访谈(可跳过)"},{id:"contract",label:"契约落地"},{id:"dag-confirm",label:"确认 DAG"},{id:"run",label:"运行"}],mt=Ye.findIndex(be=>be.id===f);return{taskId:R,setTaskId:j,taskTitle:M,taskKind:I,setTaskKind:q,workflowMeta:ae,sessionId:se,question:A,answerText:Z,setAnswerText:L,draftSummary:E,assessmentId:F,contractValidateOk:K,contractValidateSummary:oe,contractDiffSummary:ce,contractApplied:z,spineOk:ie,applyInterviewPayload:re,runContractPreflight:le,applyContractThenSpine:de,retrySpineOnly:ue,confirmAndRunDag:Ae,importPrdAndCreate:De,wizardSteps:Ye,stepIndex:mt}}const Qb={chat:"对话",tasks:"任务",recovery:"恢复",night:"夜间",models:"模型与认证",settings:"设置"};async function Vb(i){return await import(i)}function Zb(i){const r=i.repoName?.trim();if(r)return r;const c=(i.repoRoot??"").split(/[\\/]/).filter(Boolean);return c.length?c[c.length-1]:"repository"}function Jb(i){const{nav:r,readiness:c,setupBlocked:u,degraded:f,health:m,inspectHref:h}=i,g=u||f?"models":"settings",x=u?"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。点击前往模型与认证。":f?"Pi 暂时降级:仍可恢复草稿与需求访谈。点击查看详情。":"Pi 已就绪。点击打开设置查看详情。";return{mode:"operate",activeTabHref:`#/${r}`,operateHref:"/#/",inspectHref:h,freshness:!1,readinessState:c,readinessHref:`#/${g}`,readinessTitle:x,repo:m?{name:Zb(m),fingerprint:m.repoFingerprint??"",version:m.packageVersion??"",product:m.productName??m.product??"",inspectReady:m.inspect?.ready}:null}}function Fb(i){const r=p.useRef(null),c=p.useRef(null),[u,f]=p.useState(!1),m=p.useMemo(()=>Jb(i),[i.nav,i.readiness,i.setupBlocked,i.degraded,i.health,i.inspectHref]),h=p.useRef(m);return h.current=m,p.useEffect(()=>{let g=!1;return Vb("/inspect/operator-chrome.js").then(x=>{g||!r.current||(c.current=x.mountOperatorChrome(r.current,h.current))}).catch(()=>{g||f(!0)}),()=>{g=!0,c.current?.destroy(),c.current=null}},[]),p.useEffect(()=>{c.current?.update(m)},[m]),s.jsxs(s.Fragment,{children:[s.jsx("div",{ref:r,"data-testid":"operator-chrome"}),u?s.jsxs("nav",{className:"operator-chrome-fallback","aria-label":"操作工作区",children:[s.jsx("button",{type:"button",onClick:()=>window.location.assign("/#/"),children:"Loop Agent"}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(`#/${i.nav}`),children:Qb[i.nav]}),s.jsx("button",{type:"button",onClick:()=>window.location.assign(i.inspectHref),children:"观测"}),s.jsx("span",{role:"status",children:"共享导航加载失败,请刷新页面"})]}):null]})}function Wb(i){return s.jsxs(s.Fragment,{children:[i.opError?s.jsxs("div",{className:"flash flash-error","data-testid":"op-error",children:[s.jsx("span",{className:"flash-label",children:"错误"}),s.jsx("p",{className:"flash-body",children:i.opError})]}):null,i.opMessage?s.jsxs("div",{className:"flash flash-info","data-testid":"op-message",children:[s.jsx("span",{className:"flash-label",children:"状态"}),s.jsx("p",{className:"flash-body",children:i.opMessage})]}):null]})}const Pb=[{key:"sdkAvailable",detailKey:"sdkMessage",label:"Pi SDK",hint:"Node 侧 Pi SDK 可加载"},{key:"authReady",detailKey:"authMessage",label:"认证凭据",hint:"Pi auth / provider 密钥已配置"},{key:"modelsAvailable",detailKey:"modelsMessage",label:"可用模型",hint:"harness.json executors.pi(LOW/MED/HIGH)可在 Pi 凭据面解析"},{key:"interviewSessionOk",detailKey:"sessionMessage",label:"访谈会话",hint:"Interview 会话预检通过"}];function ex(i){if(!i)return null;const r=Date.parse(i);return Number.isNaN(r)?i:new Date(r).toLocaleString()}function tx(i){const r=i.readinessReport?.state??i.readiness,c=i.readinessReport?.probe,u=c?.details??{},f=i.readinessReport?.blockedActions??[],m=ex(i.readinessReport?.generatedAt),h=i.readinessReport??{state:i.readiness,health:i.health};return s.jsxs("section",{className:"panel models-page","aria-labelledby":"models-title",children:[s.jsxs("div",{className:"models-header",children:[s.jsx("h2",{id:"models-title",children:"模型与认证"}),s.jsx("span",{className:"models-status-pill","data-state":r,"data-testid":"models-readiness-pill",children:hh[r]??r})]}),s.jsxs("p",{className:"panel-lead",children:["复用 Pi ModelRuntime 凭据平面;密钥不会回传到页面。请用"," ",s.jsx("code",{children:"pi"})," 或 Pi 认证存储完成配置,然后刷新就绪探测。"]}),s.jsxs("section",{className:"models-probe-card","aria-labelledby":"models-probe-title","data-testid":"readiness-details",children:[s.jsx("h3",{id:"models-probe-title",className:"models-subtitle",children:"就绪检查"}),s.jsx("ul",{className:"models-probe-list",children:Pb.map(g=>{const x=c?.[g.key],y=u[g.detailKey],R=x===void 0;return s.jsxs("li",{className:`models-probe-item${R?" is-pending":x?" is-ok":" is-bad"}`,children:[s.jsx("span",{className:"models-probe-badge","aria-label":R?"未探测":x?"通过":"未通过",children:R?"—":x?"✓":"✕"}),s.jsxs("div",{className:"models-probe-body",children:[s.jsx("strong",{children:g.label}),s.jsx("span",{className:"muted",children:g.hint}),y?s.jsx("p",{className:"models-probe-detail",children:y}):null]})]},g.key)})})]}),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:mh})]}):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:i.busy,onClick:i.onRefreshReadiness,children:"刷新就绪探测"}),m?s.jsxs("span",{className:"muted models-generated-at",children:["上次探测:",m]}):null]}),s.jsxs("details",{className:"models-raw-details",children:[s.jsx("summary",{children:"查看原始探测数据(调试)"}),s.jsx("pre",{className:"cmd models-raw-json",children:JSON.stringify(h,null,2)})]})]})}function Gm(i){const{lane:r,cta:c,planSummary:u,reason:f,busy:m,confirmRef:h}=i;return!c||c.lane!==r?null:s.jsxs("div",{ref:h,className:"recovery-confirm","data-testid":"recovery-confirm",children:[s.jsxs("h3",{children:["待确认:",c.label]}),s.jsx("p",{className:"muted",children:"请核对上方运行 / 节点与恢复原因,再点「确定」执行。"}),u?s.jsxs("div",{className:"recovery-plan-summary",children:[s.jsxs("p",{className:"muted",children:["计划 eligible=",String(u.eligible??"—")," · 风险=",ph[u.risk??""]??u.risk??"—"]}),u.effectiveFromNodeId?s.jsxs("p",{className:"muted",children:["有效起点:",u.effectiveFromNodeId]}):null,u.estimatedExecution?s.jsxs("p",{className:"muted",children:["将执行 ",u.estimatedExecution.nodeCount??"?"," 个节点 / ",u.estimatedExecution.piCallCount??"?"," 次 Pi;预计避免"," ",u.estimatedExecution.avoidedNodeCount??"?"," 个节点"]}):null,u.planHash?s.jsxs("p",{className:"muted",children:["planHash: ",s.jsxs("code",{children:[u.planHash.slice(0,16),"…"]})]}):null]}):c.id==="dagRerun"?s.jsx("p",{className:"muted",children:"未加载计划摘要;点「确定」前将再次尝试资格检查。"}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:m||!f.trim(),"data-testid":"recovery-confirm-submit",onClick:i.onSubmit,children:"确定"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:m,"data-testid":"recovery-confirm-cancel",onClick:i.onCancel,children:"取消"})]})]})}function nx(i){const{shell:r,recovery:c,wizard:u}=i,{busy:f}=r,m={planSummary:c.recoveryPlanSummary,reason:c.recoveryReason,busy:f,confirmRef:c.recoveryConfirmRef,onSubmit:()=>{c.submitRecoveryConfirm()},onCancel:()=>{c.setRecoveryConfirm(null),c.setRecoveryPlanSummary(null)}};return s.jsxs("section",{className:"panel","aria-labelledby":"recovery-title",children:[s.jsx("h2",{id:"recovery-title",children:"恢复"}),s.jsxs("p",{className:"muted",children:["事实分类:",vh[c.recoveryFact]," · 无 Cancel · 无「直接改代码」"]}),s.jsxs("ol",{className:"muted recovery-steps",children:[s.jsx("li",{children:"上方选 DAG 运行 / 节点,用「DAG 运行恢复」动作"}),s.jsx("li",{children:"Worker 队列失败才用下方「Worker Task 重排队」(二者不要混用)"}),s.jsx("li",{children:"带 * 的动作:核对预填原因 → 点下方「确定」"})]}),s.jsxs("p",{className:"muted",children:[u.taskId.trim()?`按任务 ${u.taskId.trim()} 拉取候选。`:"未填任务 ID 时列出最近 DAG 运行。","Doctor 诊断可选,不是重跑前置。"," ",s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f||c.recoveryRunsLoading,"data-testid":"recovery-refresh-candidates",onClick:()=>{c.loadRecoveryRuns()},children:c.recoveryRunsLoading?"刷新中…":"刷新候选"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"DAG 运行 ID"}),!c.manualRunId&&c.recoveryRuns.length>0?s.jsxs("select",{"data-testid":"recovery-run-select",value:c.dagRunId,disabled:f||c.recoveryRunsLoading,onChange:h=>{c.setManualRunId(!1),c.setManualNodeId(!1),c.setFromNodeId(""),c.setDagRunId(h.target.value),c.recoveryReasonTouched||c.setRecoveryReasonTouched(!1)},children:[c.recoveryRuns.some(h=>h.dagRunId===c.dagRunId)?null:s.jsx("option",{value:c.dagRunId||"",children:c.dagRunId?`${c.dagRunId}(当前)`:"— 请选择 —"}),c.recoveryRuns.map(h=>s.jsx("option",{value:h.dagRunId,children:qb(h)},h.dagRunId))]}):s.jsx("input",{"data-testid":"recovery-run-input",value:c.dagRunId,disabled:f,onChange:h=>{c.setManualRunId(!0),c.setDagRunId(h.target.value.trim())},placeholder:"dag-run-id(子图/完整重跑)"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-run-manual-toggle",onClick:()=>{if(!c.manualRunId&&c.recoveryRuns.length>0){c.setManualRunId(!0);return}c.setManualRunId(!1),c.loadRecoveryRuns()},children:!c.manualRunId&&c.recoveryRuns.length>0?"手动输入运行 ID":"刷新并改用下拉"})]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{className:"muted",children:["起始节点 ID(从节点重跑)",c.recoveryNodesLoading?" · 加载节点…":""]}),!c.manualNodeId&&c.recoveryNodes.length>0?s.jsxs("select",{"data-testid":"recovery-node-select",value:c.fromNodeId,disabled:f||c.recoveryNodesLoading,onChange:h=>{c.setManualNodeId(!1),c.setFromNodeId(h.target.value)},children:[c.recoveryNodes.some(h=>h.nodeId===c.fromNodeId)?null:s.jsx("option",{value:c.fromNodeId||"",children:c.fromNodeId?`${c.fromNodeId}(当前)`:"— 请选择 —"}),c.recoveryNodes.map(h=>s.jsx("option",{value:h.nodeId,children:Gb(h)},h.nodeId))]}):s.jsx("input",{"data-testid":"recovery-node-input",value:c.fromNodeId,disabled:f,onChange:h=>{c.setManualNodeId(!0),c.setFromNodeId(h.target.value.trim())},placeholder:"例如 review-verdict-recovery-pi"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-node-manual-toggle",onClick:()=>{if(!c.manualNodeId&&c.recoveryNodes.length>0){c.setManualNodeId(!0);return}c.setManualNodeId(!1),c.loadRecoveryNodes(c.dagRunId)},children:!c.manualNodeId&&c.recoveryNodes.length>0?"手动输入节点 ID":"刷新并改用下拉"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"恢复原因(已按 run/节点失败事实自动预填,可编辑)"}),s.jsx("textarea",{"data-testid":"recovery-reason",value:c.recoveryReason,disabled:f,rows:4,onChange:h=>{c.setRecoveryReasonTouched(!0),c.setRecoveryReason(h.target.value)},placeholder:"将自动预填 operator-recovery / run / from-node / detail"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:f,"data-testid":"recovery-reason-refresh",onClick:()=>{c.setRecoveryReasonTouched(!1),c.setRecoveryReason(c.buildCurrentRecoveryReason(c.recoveryConfirm?.label))},children:"重新预填原因"})]}),s.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-dag",children:[s.jsx("h3",{children:"DAG 运行恢复"}),s.jsx("p",{className:"muted",children:"针对 `.harness/dag-runs` 的 Agent DAG 运行。橙色为当前建议;带 * 需确认原因。"}),s.jsxs("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-dag",children:[c.recoveryLanes.dag.map(h=>{const g=h.id===c.recommendedCtaId;return s.jsxs("button",{type:"button",className:g?"btn btn-primary":"btn btn-secondary",disabled:f,title:h.guide,"aria-pressed":c.recoveryConfirm?.id===h.id?!0:void 0,"data-testid":`recovery-cta-${h.id}`,"data-recommended":g?"true":void 0,onClick:()=>{c.handleRecoveryCta(h)},children:[h.label,h.requiresReason?" *":""]},h.id)}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!c.dagRunId.trim(),"data-testid":"recovery-dag-preview",title:"在本页侧栏预览,可关闭返回",onClick:()=>{if(!c.dagRunId.trim()){r.setOpError("侧栏预览需要先选择 DAG 运行 ID");return}c.setInspectSplitOpen(!0)},children:"侧栏预览"})]}),c.recoveryReport?s.jsxs("div",{className:"recovery-report","data-testid":"recovery-report",children:[s.jsxs("div",{className:"recovery-report-header",children:[s.jsx("h3",{children:"交接报告摘要"}),s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"recovery-report-close",onClick:()=>c.setRecoveryReport(null),children:"关闭"})]}),s.jsxs("dl",{className:"recovery-report-facts",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"运行"}),s.jsx("dd",{children:s.jsx("code",{children:c.recoveryReport.runId})})]}),c.recoveryReport.title?s.jsxs("div",{children:[s.jsx("dt",{children:"标题"}),s.jsx("dd",{children:c.recoveryReport.title})]}):null,s.jsxs("div",{children:[s.jsx("dt",{children:"状态"}),s.jsx("dd",{children:c.recoveryReport.status??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"失败分类"}),s.jsx("dd",{children:c.recoveryReport.category??"—"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"建议"}),s.jsx("dd",{children:c.recoveryReport.recommendation??"暂无结构化建议"})]})]}),s.jsxs("p",{className:"muted",children:["完整 Markdown 可用 CLI:",s.jsxs("code",{children:["loop-agent dag report --run-id"," ",c.recoveryReport.runId," --markdown"]})]})]}):null,s.jsx(Gm,{lane:"dag",cta:c.recoveryConfirm,...m})]}),s.jsxs("div",{className:"recovery-lane","data-testid":"recovery-lane-worker",children:[s.jsx("h3",{children:"Worker Task 重排队"}),s.jsx("p",{className:"muted",children:"针对 agent-worker Task Pool,不是 DAG run。需要 Task ID;Feature ID 可选。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Task ID(Worker 重排队必填)"}),s.jsx("input",{"data-testid":"recovery-worker-task-id",value:u.taskId,disabled:f,onChange:h=>u.setTaskId(h.target.value.trim()),placeholder:"harness / worker task-id"})]}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"Feature ID(可选)"}),s.jsx("input",{"data-testid":"recovery-feature-id",value:c.featureId,disabled:f,onChange:h=>c.setFeatureId(h.target.value.trim()),placeholder:"feature-id"})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row-worker",children:c.recoveryLanes.worker.length>0?c.recoveryLanes.worker.map(h=>s.jsxs("button",{type:"button",className:h.id===c.recommendedCtaId?"btn btn-primary":"btn btn-secondary",disabled:f,title:h.guide,"data-testid":`recovery-cta-${h.id}`,"data-recommended":h.id===c.recommendedCtaId?"true":void 0,onClick:()=>{c.handleRecoveryCta(h)},children:[h.label,h.requiresReason?" *":""]},h.id)):s.jsx("p",{className:"muted","data-testid":"recovery-worker-unavailable",children:"当前事实分类下不提供 Worker 重排队。"})}),s.jsx(Gm,{lane:"worker",cta:c.recoveryConfirm,...m})]}),s.jsx("div",{className:"recovery-cta-row","data-testid":"recovery-cta-row",hidden:!0,children:c.recoveryCtas.map(h=>s.jsx("span",{children:h.id},h.id))}),c.observeLinkMessage?s.jsxs("p",{className:"muted",children:["[",ob[c.observeLinkStatus],"]"," ",c.observeLinkMessage]}):null,c.observeUrl?s.jsx("p",{className:"muted",children:s.jsx("a",{className:"external-link",href:c.observeUrl,children:c.observeUrl})}):null]})}function ax(i){const{health:r,readiness:c,healthError:u,layers:f,setupBlocked:m,degraded:h}=i;return s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"panel","aria-labelledby":"settings-title",children:[s.jsx("h2",{id:"settings-title",children:"设置"}),s.jsxs("dl",{className:"kv",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"产品"}),s.jsx("dd",{children:r?.productName??"Loop Operator Console"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库根目录"}),s.jsx("dd",{children:s.jsx("code",{children:r?.repoRoot??"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"仓库指纹"}),s.jsx("dd",{children:s.jsx("code",{title:r?.repoFingerprint??void 0,children:r?.repoFingerprint?`${r.repoFingerprint.slice(0,12)}…`:"—"})})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Pi 就绪"}),s.jsxs("dd",{children:[s.jsxs("code",{children:[hh[c]??c,"(",c,")"]}),m?s.jsx("p",{className:"muted",children:"Pi SDK / 认证 / 模型未就绪。不提供纯表单兜底。请前往「模型与认证」。"}):h?s.jsx("p",{className:"muted",children:"Pi 暂时降级:仍可恢复草稿与需求访谈。"}):null]})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Inspect"}),s.jsxs("dd",{children:[s.jsx("code",{children:"/inspect/"}),"(同一 Console 进程)"]})]})]}),u?s.jsx("p",{className:"error",children:u}):null]}),s.jsxs("section",{className:"panel","aria-labelledby":"layers-title",children:[s.jsx("h2",{id:"layers-title",children:"完成语义分层"}),s.jsx("p",{className:"muted",children:"MVP 不执行收尾提交;不显示「任务已关闭/已交付」。"}),s.jsxs("dl",{className:"kv","data-testid":"completion-layers",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"命令"}),s.jsx("dd",{children:Ci(f.command)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"DAG 生命周期"}),s.jsx("dd",{children:Ci(f.dag)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"最终验证"}),s.jsx("dd",{children:Ci(f.verification)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"晋升"}),s.jsx("dd",{children:Ci(f.promote)})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"任务关闭"}),s.jsx("dd",{children:"不可用(MVP)"})]})]})]})]})}function sx(i){const{busy:r,degraded:c,taskId:u,assessmentId:f,contractValidateOk:m,contractValidateSummary:h,contractDiffSummary:g,contractApplied:x,spineOk:y,onRerunPreflight:R,onApplyContract:j,onRetrySpine:M}=i;return s.jsxs("div",{"data-testid":"panel-contract",children:[s.jsx("h3",{children:"契约落地"}),s.jsx("p",{className:"muted",children:"进入本步后自动跑确定性校验与差异(非 AI 代判)。写入仓库仍需你人工确认一次;应用成功后会自动跑 Spine 审计。"}),s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:f??"—"})]}),s.jsxs("div",{className:"contract-checks",children:[s.jsxs("p",{children:[s.jsx("strong",{children:"校验"}),":"," ",m===null?r?"进行中…":"等待开始":m?"通过":"未通过"]}),h?s.jsx("pre",{className:"cmd","data-testid":"contract-validate-summary",children:h}):null,s.jsxs("p",{children:[s.jsx("strong",{children:"差异"}),g?"":":尚未拉取"]}),g?s.jsx("pre",{className:"cmd","data-testid":"contract-diff-summary",children:g}):null,x?s.jsxs("p",{children:[s.jsx("strong",{children:"Spine"}),":"," ",y===null?"待检查":y?"通过":"未通过"]}):null]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r||!u.trim(),onClick:R,children:"重新校验"}),s.jsx("button",{type:"button",className:"btn btn-primary","data-testid":"contract-apply",disabled:r||c||!f||m!==!0||x,onClick:j,children:"确认并应用契约"}),x&&y===!1?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:M,children:"重试 Spine"}):null]})]})}function lx(i){const{busy:r,taskId:c,confirmationId:u,confirmationDetails:f,runAction:m,onConfirmAndRun:h}=i;return s.jsxs("div",{"data-testid":"panel-dag-confirm",children:[s.jsx("h3",{children:"DAG 确认(§5.5)"}),s.jsxs("ul",{className:"checklist",children:[s.jsx("li",{children:"源绑定(source)"}),s.jsx("li",{children:"Writer 写集范围(writer-scope)"}),s.jsx("li",{children:"验证命令(verification)"}),s.jsx("li",{children:"人工门禁(human-gates)"})]}),f?s.jsx("pre",{className:"cmd",children:JSON.stringify(f,null,2).slice(0,4e3)}):null,s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:()=>{m("prepareDagConfirmation",{taskId:c,dagHandle:`${c}.dag.json`,profile:"auto"})},children:"生成 DAG 并准备确认"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!u,onClick:h,children:"开始运行"})]}),u?s.jsxs("p",{className:"muted",children:["确认 ID: ",s.jsx("code",{children:u})]}):null]})}function ix(i){const{busy:r,taskKind:c,onTaskKindChange:u,workflowHint:f,prd:m,onImport:h}=i,g=r||m.prdFileReading;return s.jsxs("div",{"data-testid":"panel-import-prd",children:[s.jsx("h3",{children:"导入需求"}),s.jsx("p",{className:"muted",children:"粘贴、选择或拖入一份或多份 PRD / 需求 Markdown。多文件会分别归档到 source/references,并合成一份可编辑正文。创建前可继续编辑。"}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"流程类型"}),s.jsx("select",{"data-testid":"workflow-kind-select",value:c,disabled:r||m.prdFileReading,onChange:x=>u(x.target.value),children:lo.map(x=>s.jsx("option",{value:x.kind,children:x.label},x.kind))})]}),s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-hint",children:[f," · taskKind=",s.jsx("code",{children:c})]}),s.jsxs("div",{className:`prd-drop-zone${m.prdDragOver?" is-dragover":""}`,"data-testid":"prd-drop-zone","data-dragover":m.prdDragOver?"true":"false",onDragEnter:x=>m.onDragEnter(x,g),onDragOver:x=>{x.preventDefault(),x.stopPropagation()},onDragLeave:m.onDragLeave,onDrop:x=>m.onDrop(x,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:vb,multiple:!0,hidden:!0,disabled:g,"data-testid":"prd-file-input",onChange:x=>{const y=x.currentTarget;m.loadPrdFromFiles(y.files).finally(()=>{y.value=""})}})]}),s.jsxs("span",{className:"muted prd-upload-hint",children:["支持多文件 .md / .markdown / .txt,单文件最大"," ",ro(io),",最多 ",Di," 个"]}),m.prdDocuments.length>0?s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"prd-recompose",disabled:g,onClick:m.recomposeDocuments,children:"按文件重新合成"}):null]}),m.prdDocuments.length>0?s.jsx("ul",{className:"prd-file-list","data-testid":"prd-file-list",children:m.prdDocuments.map((x,y)=>s.jsxs("li",{className:y===m.prdPrimaryIndex?"is-primary":void 0,"data-testid":`prd-file-item-${y}`,children:[s.jsxs("span",{className:"prd-file-item-name",children:[x.fileName,y===m.prdPrimaryIndex?s.jsx("span",{className:"prd-file-primary-tag",children:"主"}):null,s.jsxs("span",{className:"muted",children:[" ","· ",ro(x.sourceBytes)]})]}),s.jsxs("span",{className:"prd-file-item-actions",children:[s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===m.prdPrimaryIndex,onClick:()=>m.setPrimaryDocument(y),children:"设为主"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===0,onClick:()=>m.moveDocument(y,-1),children:"上移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g||y===m.prdDocuments.length-1,onClick:()=>m.moveDocument(y,1),children:"下移"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:g,onClick:()=>m.removeDocument(y),children:"移除"})]})]},`${x.fileName}-${y}`))}):null,m.prdDocuments.length>0?s.jsxs("div",{className:"prd-file-meta",children:[s.jsxs("span",{children:["分卷=上传原件(将分别归档);正文=本会话采用稿",m.prdComposedDirty?"(已手动编辑)":""]}),s.jsx("button",{type:"button",className:"btn btn-ghost prd-file-clear","data-testid":"prd-file-clear",disabled:g,onClick:m.clearDocuments,children:"清除来源列表"})]}):null,m.prdDragOver?s.jsx("p",{className:"prd-drop-hint","data-testid":"prd-drop-hint",children:"释放以载入"}):null,s.jsxs("label",{className:"field prd-text-field",children:[s.jsx("span",{className:"muted",children:"PRD Markdown"}),s.jsx("textarea",{rows:10,value:m.prdText,disabled:g,"data-testid":"prd-textarea",onChange:x=>m.onPrdTextChange(x.target.value)})]})]}),m.prdFileError?s.jsx("p",{className:"prd-file-error",role:"alert","aria-live":"polite","data-testid":"prd-file-error",children:m.prdFileError}):null,s.jsx("div",{className:"cta-row",children:s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||m.prdFileReading||!m.prdText.trim(),onClick:h,children:"导入并创建任务"})})]})}function rx(i){const{busy:r,taskId:c,taskTitle:u,taskKind:f,sessionId:m,question:h,answerText:g,onAnswerTextChange:x,draftSummary:y,assessmentId:R,runAction:j}=i;return s.jsxs("div",{"data-testid":"panel-interview",children:[s.jsx("h3",{children:"需求访谈(grill-me)"}),s.jsx("p",{className:"muted",children:"一次一问;也可跳过:系统会按推荐补齐草稿并签发评估,随后进入校验。 访谈中不可应用契约 / 运行 DAG / 对账。"}),y?s.jsx("pre",{className:"cmd","data-testid":"draft-summary",children:JSON.stringify(y,null,2)}):null,s.jsxs("div",{className:"cta-row",style:{marginBottom:"0.75rem"},children:[!m||!h?s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!c.trim(),onClick:()=>{j("interviewStart",{taskId:c,title:u,taskKind:f})},children:"开始 / 继续访谈"}):null,s.jsx("button",{type:"button",className:"btn btn-ghost","data-testid":"interview-skip",disabled:r||!c.trim(),onClick:()=>{j("interviewSkip",{taskId:c,title:u,taskKind:f})},children:"跳过访谈"})]}),m&&h?s.jsxs("div",{className:"interview-card",children:[s.jsxs("p",{className:"interview-q",children:[s.jsx("strong",{children:h.id})," · 风险=",ph[h.risk??""]??h.risk??"—"]}),s.jsx("p",{children:h.text}),h.recommendation?s.jsxs("p",{className:"muted",children:["推荐:",h.recommendation]}):null,s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"你的回答(覆盖推荐)"}),s.jsx("textarea",{rows:3,value:g,disabled:r,onChange:M=>x(M.target.value)})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r,onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"accept-recommendation"}).then(()=>x(""))},children:"接受推荐"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!g.trim(),onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"override",text:g}).then(()=>x(""))},children:"提交自定义回答"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:r||h.risk==="high",onClick:()=>{j("interviewTurn",{sessionId:m,questionId:h.id,response:"defer",text:g||h.recommendation}).then(()=>x(""))},children:"暂缓(非高风险)"})]})]}):null,R?s.jsxs("p",{className:"muted",children:["评估 ID: ",s.jsx("code",{children:R})]}):null]})}function cx(i){const{busy:r,confirmationId:c,operationId:u,dagRunId:f,taskId:m,observeBusy:h,sseLog:g,runAction:x,onStopFollow:y,onShowInspectSplit:R,onOpenInspectSplit:j}=i;return s.jsxs("div",{"data-testid":"panel-run",children:[s.jsx("h3",{children:"运行详情"}),s.jsxs("div",{className:"meta-row",children:[s.jsxs("div",{children:["操作 ID: ",s.jsx("code",{children:u??"—"})]}),s.jsxs("div",{children:["确认 ID: ",s.jsx("code",{children:c??"—"})]})]}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:r||!c,onClick:()=>{x("runDag",{confirmationId:c},{clientRequestId:Ai("run")})},children:"重新运行"}),s.jsx("button",{type:"button",className:"btn btn-secondary",onClick:y,children:"停止跟随日志"}),s.jsx("button",{type:"button",className:"btn btn-secondary",disabled:!f.trim(),onClick:R,children:"打开检视"}),s.jsx("button",{type:"button",className:"btn btn-ghost",disabled:h||!f.trim()&&!m.trim(),title:"在本页侧栏预览,可关闭返回",onClick:j,children:"侧栏预览"})]}),s.jsx("pre",{className:"cmd","data-testid":"sse-log",children:g.join(`
32
+ `)||"(尚无事件)"})]})}function ox(i){const{shell:r,actions:c,wizard:u,prd:f,recovery:m}=i,{busy:h,step:g,setupBlocked:x,degraded:y}=r;return s.jsxs("section",{className:"panel task-ops","aria-labelledby":"task-ops-title",children:[s.jsx("h2",{id:"task-ops-title",children:"任务操作"}),s.jsx("p",{className:"panel-lead",children:"按 Happy Path 推进;契约落地一步内自动校验,人工确认写入。"}),s.jsx("ol",{className:"wizard-steps","data-testid":"wizard-steps",children:u.wizardSteps.map((R,j)=>s.jsxs("li",{"data-active":g===R.id,"data-done":j<u.stepIndex,children:[s.jsx("span",{className:"step-index",children:String(j+1).padStart(2,"0")}),s.jsx("span",{className:"step-label",children:R.label})]},R.id))}),s.jsxs("label",{className:"field",children:[s.jsx("span",{className:"muted",children:"任务 ID"}),s.jsx("input",{"data-testid":"task-id-input",value:u.taskId,disabled:h||x||g==="import-prd",placeholder:g==="import-prd"?"导入需求后自动生成":"task-id",onChange:R=>u.setTaskId(R.target.value.trim())})]}),u.taskTitle?s.jsxs("p",{className:"workflow-hint","data-testid":"task-title-chip",children:["任务名称:",u.taskTitle]}):null,g!=="import-prd"&&!x?s.jsxs("p",{className:"workflow-hint","data-testid":"workflow-kind-chip",children:["当前流程:",u.workflowMeta.label," ·"," ",s.jsx("code",{children:u.taskKind})]}):null,x||g==="setup"?s.jsxs("div",{className:"empty-state","data-testid":"setup-gate",children:[s.jsx("p",{className:"empty-title",children:"需要先完成设置"}),s.jsx("p",{className:"muted",children:"请先在「模型与认证」完成 Pi 就绪,再导入需求与访谈。"}),s.jsxs("div",{className:"cta-row",children:[s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h,onClick:()=>{r.selectNav("models"),c.runAction("refreshReadiness",{}).then(()=>r.loadHealth())},children:"刷新就绪状态"}),s.jsx("button",{type:"button",className:"btn btn-primary",disabled:h,onClick:()=>{c.runAction("doctor",{})},children:"运行诊断"}),s.jsx("pre",{className:"cmd",children:mh})]})]}):s.jsxs("div",{className:"wizard-body","data-testid":"wizard-body",children:[g==="import-prd"&&s.jsx(ix,{busy:h,taskKind:u.taskKind,onTaskKindChange:u.setTaskKind,workflowHint:u.workflowMeta.hint,prd:f,onImport:()=>{u.importPrdAndCreate()}}),g==="interview"&&s.jsx(rx,{busy:h,taskId:u.taskId,taskTitle:u.taskTitle,taskKind:u.taskKind,sessionId:u.sessionId,question:u.question,answerText:u.answerText,onAnswerTextChange:u.setAnswerText,draftSummary:u.draftSummary,assessmentId:u.assessmentId,runAction:c.runAction}),g==="contract"&&s.jsx(sx,{busy:h,degraded:y,taskId:u.taskId,assessmentId:u.assessmentId,contractValidateOk:u.contractValidateOk,contractValidateSummary:u.contractValidateSummary,contractDiffSummary:u.contractDiffSummary,contractApplied:u.contractApplied,spineOk:u.spineOk,onRerunPreflight:()=>{u.runContractPreflight(!0)},onApplyContract:()=>{u.applyContractThenSpine()},onRetrySpine:()=>{u.retrySpineOnly()}}),g==="dag-confirm"&&s.jsx(lx,{busy:h,taskId:u.taskId,confirmationId:c.confirmationId,confirmationDetails:c.confirmationDetails,runAction:c.runAction,onConfirmAndRun:()=>{u.confirmAndRunDag()}}),g==="run"&&s.jsx(cx,{busy:h,confirmationId:c.confirmationId,operationId:c.operationId,dagRunId:m.dagRunId,taskId:u.taskId,observeBusy:r.observeBusy,sseLog:c.sseLog,runAction:c.runAction,onStopFollow:c.stopFollowSse,onShowInspectSplit:()=>m.setInspectSplitOpen(!0),onOpenInspectSplit:()=>{m.openInspectSplit()}})]})]})}const ux={};function dx(){const i=mb(),r=p.useRef(()=>{}),c=p.useCallback(R=>r.current(R),[]),u=hb({shell:i,applyInterviewPayload:c}),f=Ab(),m=Xb({shell:i,actions:u,prd:f}),h=Kb({shell:i,actions:u,wizard:m});p.useEffect(()=>{r.current=m.applyInterviewPayload}),p.useEffect(()=>{i.loadHealth()},[i.loadHealth]);const g=p.useCallback((R,j={})=>{i.selectNav(R),j.taskId&&m.setTaskId(j.taskId),j.dagRunId&&h.setDagRunId(j.dagRunId),j.fromNodeId&&h.setFromNodeId(j.fromNodeId),j.featureId&&h.setFeatureId(j.featureId);const M=rh(R,j);window.location.hash.replace(/^#/,"")!==M&&(window.location.hash=M)},[i.selectNav,m.setTaskId,h.setDagRunId,h.setFromNodeId,h.setFeatureId]),x=p.useCallback(()=>{const R=ny(window.location);if(R){g(R.workspace,R);return}const j=ih({env:ux?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location});g(j,{})},[g]);p.useEffect(()=>(x(),window.addEventListener("hashchange",x),()=>window.removeEventListener("hashchange",x)),[x]);const y=i.nav==="recovery"&&h.dagRunId.trim()?`/inspect/#/dag/${encodeURIComponent(h.dagRunId.trim())}?from=recovery`:"/inspect/#/";return s.jsx(s.Fragment,{children:s.jsxs("div",{className:`console-app${i.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(Fb,{nav:i.nav,readiness:i.readiness,setupBlocked:i.setupBlocked,degraded:i.degraded,health:i.health,inspectHref:y}),s.jsxs("div",{className:`console-shell${i.nav==="chat"?" is-chat-focus":""}`,children:[s.jsx(Wb,{opError:i.opError,opMessage:i.opMessage}),s.jsxs("main",{className:`console-main${i.nav==="chat"?" console-main--fill":""}`,children:[i.nav==="tasks"?s.jsx(ox,{shell:i,actions:u,wizard:m,prd:f,recovery:h}):null,i.nav==="recovery"?s.jsx(nx,{shell:i,recovery:h,wizard:m}):null,i.nav==="night"?s.jsx(og,{busy:i.busy,runAction:u.runAction,isActionSuccess:u.isActionSuccess,setOpError:i.setOpError}):null,i.nav==="models"?s.jsx(tx,{busy:i.busy,readiness:i.readiness,readinessReport:i.readinessReport,health:i.health,onRefreshReadiness:()=>{u.runAction("refreshReadiness",{}).then(()=>i.loadHealth())}}):null,i.nav==="chat"?s.jsxs("section",{className:"panel panel--chat","aria-labelledby":"chat-title",children:[s.jsx("h2",{id:"chat-title",className:"sr-only",children:"对话"}),s.jsx(rb,{origin:"",readiness:i.readiness,surface:"workspace",onNavigateWorkspace:g})]}):null,i.nav==="settings"?s.jsx(ax,{health:i.health,readiness:i.readiness,healthError:i.healthError,layers:i.layers,setupBlocked:i.setupBlocked,degraded:i.degraded}):null]}),h.inspectSplitOpen&&h.dagRunId.trim()?s.jsx(Jv,{dagRunId:h.dagRunId.trim(),nodeId:h.fromNodeId.trim()||void 0,onClose:()=>h.setInspectSplitOpen(!1),onOpenFull:h.openFullInspect}):null]})]})})}const jh=document.getElementById("root");if(!jh)throw new Error("Loop Operator Console: #root missing");Vv.createRoot(jh).render(s.jsx(p.StrictMode,{children:s.jsx(dx,{})}));